public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH v1] RISC-V: Refine the mask generation for vec_init case 2
@ 2023-11-15  3:48 pan2.li
  2023-11-15  5:04 ` juzhe.zhong
  2023-11-15  7:12 ` [PATCH v2] " pan2.li
  0 siblings, 2 replies; 7+ messages in thread
From: pan2.li @ 2023-11-15  3:48 UTC (permalink / raw)
  To: gcc-patches; +Cc: juzhe.zhong, pan2.li, yanzhang.wang, kito.cheng

From: Pan Li <pan2.li@intel.com>

We take vec_init element int mode when generate the mask for
case 2. But actually we don't need as many bits as the element.
The extra bigger mode may introduce some unnecessary insns.
For example as below code:

typedef int64_t v16di __attribute__ ((vector_size (16 * 8)));

void __attribute__ ((noinline, noclone))
  foo (int64_t *out, int64_t x, int64_t y)
{
  v16di v = {y, x, y, x, y, x, y, x, y, x, y, x, y, x, y, x};
  *(v16di *) out = v;
}

We will have VDImode when generate the 0b0101010101010101 mask but
actually VHImode is good enough here. This patch would like to
refine the mask generation to avoid:
1. Unnecessary scalar to generate big constant mask.
2. Unnecessary vector insn to v0 mask.

Before this patch:
foo:
  li      a5,-1431654400
  li      a4,-1431654400               <== unnecessary insn
  addi    a5,a5,-1365                  <== unnecessary insn
  addi    a4,a4,-1366
  slli    a5,a5,32                     <== unnecessary insn
  add     a5,a5,a4                     <== unnecessary insn
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.v.x v8,a2
  vmv.s.x v16,a5
  vmv1r.v v0,v16                       <== unnecessary insn
  vmerge.vxm      v8,v8,a1,v0
  vse64.v v8,0(a0)
  ret

After this patch:
foo:
  li      a5,-20480
  addiw   a5,a5,-1366
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.s.x v0,a5
  vmv.v.x v8,a2
  vmerge.vxm      v8,v8,a1,v0
  vs8r.v  v8,0(a0)
  ret

gcc/ChangeLog:

	* config/riscv/riscv-v.cc (rvv_builder::get_merge_scalar_mask):
	Add inner_mode mask arg for mask int mode.
	(get_repeating_sequence_dup_machine_mode): Add mask_bit_mode arg
	to get the good enough vector int mode on precision.
	(expand_vector_init_merge_repeating_sequence): Pass required args
	to above func.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c: New test.

Signed-off-by: Pan Li <pan2.li@intel.com>
---
 gcc/config/riscv/riscv-v.cc                   | 54 ++++++++++++++-----
 .../vls-vlmax/init-repeat-sequence-10.c       | 28 ++++++++++
 .../vls-vlmax/init-repeat-sequence-11.c       | 26 +++++++++
 .../vls-vlmax/init-repeat-sequence-6.c        | 27 ++++++++++
 .../vls-vlmax/init-repeat-sequence-7.c        | 25 +++++++++
 .../vls-vlmax/init-repeat-sequence-8.c        | 27 ++++++++++
 .../vls-vlmax/init-repeat-sequence-9.c        | 25 +++++++++
 7 files changed, 200 insertions(+), 12 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c

diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc
index 265a298f447..ffb645eccf3 100644
--- a/gcc/config/riscv/riscv-v.cc
+++ b/gcc/config/riscv/riscv-v.cc
@@ -416,7 +416,7 @@ public:
   bool repeating_sequence_use_merge_profitable_p ();
   bool combine_sequence_use_slideup_profitable_p ();
   bool combine_sequence_use_merge_profitable_p ();
-  rtx get_merge_scalar_mask (unsigned int) const;
+  rtx get_merge_scalar_mask (unsigned int, machine_mode) const;
 
   bool single_step_npatterns_p () const;
   bool npatterns_all_equal_p () const;
@@ -592,7 +592,8 @@ rvv_builder::get_merged_repeating_sequence ()
    To merge "b", the mask should be 0101....
 */
 rtx
-rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
+rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern,
+				    machine_mode inner_mode) const
 {
   unsigned HOST_WIDE_INT mask = 0;
   unsigned HOST_WIDE_INT base_mask = (1ULL << index_in_pattern);
@@ -611,7 +612,7 @@ rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
   for (int i = 0; i < limit; i++)
     mask |= base_mask << (i * npatterns ());
 
-  return gen_int_mode (mask, inner_int_mode ());
+  return gen_int_mode (mask, inner_mode);
 }
 
 /* Return true if the variable-length vector is single step.
@@ -919,17 +920,45 @@ emit_vlmax_decompress_insn (rtx target, rtx op0, rtx op1, rtx mask)
 /* Emit merge instruction.  */
 
 static machine_mode
-get_repeating_sequence_dup_machine_mode (const rvv_builder &builder)
+get_repeating_sequence_dup_machine_mode (const rvv_builder &builder,
+					 machine_mode mask_bit_mode)
 {
-  poly_uint64 dup_nunits = GET_MODE_NUNITS (builder.mode ());
+  unsigned mask_precision = GET_MODE_PRECISION (mask_bit_mode).to_constant ();
+  unsigned mask_scalar_size = mask_precision > builder.inner_bits_size ()
+    ? builder.inner_bits_size () : mask_precision;
 
-  if (known_ge (GET_MODE_SIZE (builder.mode ()), BYTES_PER_RISCV_VECTOR))
+  scalar_mode inner_mode;
+  unsigned minimal_bits_size;
+
+  switch (mask_scalar_size)
     {
-      dup_nunits = exact_div (BYTES_PER_RISCV_VECTOR,
-	builder.inner_bytes_size ());
+      case 8:
+	inner_mode = QImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 8; /* AKA RVVMF8.  */
+	break;
+      case 16:
+	inner_mode = HImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 4; /* AKA RVVMF4.  */
+	break;
+      case 32:
+	inner_mode = SImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 2; /* AKA RVVMF2.  */
+	break;
+      case 64:
+	inner_mode = DImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 1; /* AKA RVVM1.  */
+	break;
+      default:
+	gcc_unreachable ();
+	break;
     }
 
-  return get_vector_mode (builder.inner_int_mode (), dup_nunits).require ();
+  gcc_assert (mask_precision % mask_scalar_size == 0);
+
+  uint64_t dup_nunit = mask_precision > mask_scalar_size
+    ? mask_precision / mask_scalar_size : minimal_bits_size / mask_scalar_size;
+
+  return get_vector_mode (inner_mode, dup_nunit).require ();
 }
 
 /* Expand series const vector.  */
@@ -2130,9 +2159,9 @@ expand_vector_init_merge_repeating_sequence (rtx target,
      since we don't have such instruction in RVV.
      Instead, we should use INT mode (QI/HI/SI/DI) with integer move
      instruction to generate the mask data we want.  */
-  machine_mode mask_int_mode
-    = get_repeating_sequence_dup_machine_mode (builder);
   machine_mode mask_bit_mode = get_mask_mode (builder.mode ());
+  machine_mode mask_int_mode
+    = get_repeating_sequence_dup_machine_mode (builder, mask_bit_mode);
   uint64_t full_nelts = builder.full_nelts ().to_constant ();
 
   /* Step 1: Broadcast the first pattern.  */
@@ -2143,7 +2172,8 @@ expand_vector_init_merge_repeating_sequence (rtx target,
   for (unsigned int i = 1; i < builder.npatterns (); i++)
     {
       /* Step 2-1: Generate mask register v0 for each merge.  */
-      rtx merge_mask = builder.get_merge_scalar_mask (i);
+      rtx merge_mask
+	= builder.get_merge_scalar_mask (i, GET_MODE_INNER (mask_int_mode));
       rtx mask = gen_reg_rtx (mask_bit_mode);
       rtx dup = gen_reg_rtx (mask_int_mode);
 
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
new file mode 100644
index 00000000000..ccce5052dc2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx32di __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32di:
+**   vsetvli\s+[axt][0-9]+,\s*zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx32di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
new file mode 100644
index 00000000000..a62eee8a5ae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx32df __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32df:
+**   vsetvli\s+[axt][0-9]+\s*,zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32df (double a, double b, double *out)
+{
+  vnx32df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
new file mode 100644
index 00000000000..4f8a78b3161
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
new file mode 100644
index 00000000000..f0d14db8fa8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
new file mode 100644
index 00000000000..fd986e6b649
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
new file mode 100644
index 00000000000..753221ffdbf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
-- 
2.34.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1] RISC-V: Refine the mask generation for vec_init case 2
  2023-11-15  3:48 [PATCH v1] RISC-V: Refine the mask generation for vec_init case 2 pan2.li
@ 2023-11-15  5:04 ` juzhe.zhong
  2023-11-15  7:12 ` [PATCH v2] " pan2.li
  1 sibling, 0 replies; 7+ messages in thread
From: juzhe.zhong @ 2023-11-15  5:04 UTC (permalink / raw)
  To: pan2.li, gcc-patches; +Cc: pan2.li, yanzhang.wang, kito.cheng

[-- Attachment #1: Type: text/plain, Size: 14747 bytes --]

Could you test it  v4096qi ?
Also, VLS modes need to be tested.



juzhe.zhong@rivai.ai
 
From: pan2.li
Date: 2023-11-15 11:48
To: gcc-patches
CC: juzhe.zhong; pan2.li; yanzhang.wang; kito.cheng
Subject: [PATCH v1] RISC-V: Refine the mask generation for vec_init case 2
From: Pan Li <pan2.li@intel.com>
 
We take vec_init element int mode when generate the mask for
case 2. But actually we don't need as many bits as the element.
The extra bigger mode may introduce some unnecessary insns.
For example as below code:
 
typedef int64_t v16di __attribute__ ((vector_size (16 * 8)));
 
void __attribute__ ((noinline, noclone))
  foo (int64_t *out, int64_t x, int64_t y)
{
  v16di v = {y, x, y, x, y, x, y, x, y, x, y, x, y, x, y, x};
  *(v16di *) out = v;
}
 
We will have VDImode when generate the 0b0101010101010101 mask but
actually VHImode is good enough here. This patch would like to
refine the mask generation to avoid:
1. Unnecessary scalar to generate big constant mask.
2. Unnecessary vector insn to v0 mask.
 
Before this patch:
foo:
  li      a5,-1431654400
  li      a4,-1431654400               <== unnecessary insn
  addi    a5,a5,-1365                  <== unnecessary insn
  addi    a4,a4,-1366
  slli    a5,a5,32                     <== unnecessary insn
  add     a5,a5,a4                     <== unnecessary insn
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.v.x v8,a2
  vmv.s.x v16,a5
  vmv1r.v v0,v16                       <== unnecessary insn
  vmerge.vxm      v8,v8,a1,v0
  vse64.v v8,0(a0)
  ret
 
After this patch:
foo:
  li      a5,-20480
  addiw   a5,a5,-1366
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.s.x v0,a5
  vmv.v.x v8,a2
  vmerge.vxm      v8,v8,a1,v0
  vs8r.v  v8,0(a0)
  ret
 
gcc/ChangeLog:
 
* config/riscv/riscv-v.cc (rvv_builder::get_merge_scalar_mask):
Add inner_mode mask arg for mask int mode.
(get_repeating_sequence_dup_machine_mode): Add mask_bit_mode arg
to get the good enough vector int mode on precision.
(expand_vector_init_merge_repeating_sequence): Pass required args
to above func.
 
gcc/testsuite/ChangeLog:
 
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c: New test.
 
Signed-off-by: Pan Li <pan2.li@intel.com>
---
gcc/config/riscv/riscv-v.cc                   | 54 ++++++++++++++-----
.../vls-vlmax/init-repeat-sequence-10.c       | 28 ++++++++++
.../vls-vlmax/init-repeat-sequence-11.c       | 26 +++++++++
.../vls-vlmax/init-repeat-sequence-6.c        | 27 ++++++++++
.../vls-vlmax/init-repeat-sequence-7.c        | 25 +++++++++
.../vls-vlmax/init-repeat-sequence-8.c        | 27 ++++++++++
.../vls-vlmax/init-repeat-sequence-9.c        | 25 +++++++++
7 files changed, 200 insertions(+), 12 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
 
diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc
index 265a298f447..ffb645eccf3 100644
--- a/gcc/config/riscv/riscv-v.cc
+++ b/gcc/config/riscv/riscv-v.cc
@@ -416,7 +416,7 @@ public:
   bool repeating_sequence_use_merge_profitable_p ();
   bool combine_sequence_use_slideup_profitable_p ();
   bool combine_sequence_use_merge_profitable_p ();
-  rtx get_merge_scalar_mask (unsigned int) const;
+  rtx get_merge_scalar_mask (unsigned int, machine_mode) const;
   bool single_step_npatterns_p () const;
   bool npatterns_all_equal_p () const;
@@ -592,7 +592,8 @@ rvv_builder::get_merged_repeating_sequence ()
    To merge "b", the mask should be 0101....
*/
rtx
-rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
+rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern,
+     machine_mode inner_mode) const
{
   unsigned HOST_WIDE_INT mask = 0;
   unsigned HOST_WIDE_INT base_mask = (1ULL << index_in_pattern);
@@ -611,7 +612,7 @@ rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
   for (int i = 0; i < limit; i++)
     mask |= base_mask << (i * npatterns ());
-  return gen_int_mode (mask, inner_int_mode ());
+  return gen_int_mode (mask, inner_mode);
}
/* Return true if the variable-length vector is single step.
@@ -919,17 +920,45 @@ emit_vlmax_decompress_insn (rtx target, rtx op0, rtx op1, rtx mask)
/* Emit merge instruction.  */
static machine_mode
-get_repeating_sequence_dup_machine_mode (const rvv_builder &builder)
+get_repeating_sequence_dup_machine_mode (const rvv_builder &builder,
+ machine_mode mask_bit_mode)
{
-  poly_uint64 dup_nunits = GET_MODE_NUNITS (builder.mode ());
+  unsigned mask_precision = GET_MODE_PRECISION (mask_bit_mode).to_constant ();
+  unsigned mask_scalar_size = mask_precision > builder.inner_bits_size ()
+    ? builder.inner_bits_size () : mask_precision;
-  if (known_ge (GET_MODE_SIZE (builder.mode ()), BYTES_PER_RISCV_VECTOR))
+  scalar_mode inner_mode;
+  unsigned minimal_bits_size;
+
+  switch (mask_scalar_size)
     {
-      dup_nunits = exact_div (BYTES_PER_RISCV_VECTOR,
- builder.inner_bytes_size ());
+      case 8:
+ inner_mode = QImode;
+ minimal_bits_size = TARGET_MIN_VLEN / 8; /* AKA RVVMF8.  */
+ break;
+      case 16:
+ inner_mode = HImode;
+ minimal_bits_size = TARGET_MIN_VLEN / 4; /* AKA RVVMF4.  */
+ break;
+      case 32:
+ inner_mode = SImode;
+ minimal_bits_size = TARGET_MIN_VLEN / 2; /* AKA RVVMF2.  */
+ break;
+      case 64:
+ inner_mode = DImode;
+ minimal_bits_size = TARGET_MIN_VLEN / 1; /* AKA RVVM1.  */
+ break;
+      default:
+ gcc_unreachable ();
+ break;
     }
-  return get_vector_mode (builder.inner_int_mode (), dup_nunits).require ();
+  gcc_assert (mask_precision % mask_scalar_size == 0);
+
+  uint64_t dup_nunit = mask_precision > mask_scalar_size
+    ? mask_precision / mask_scalar_size : minimal_bits_size / mask_scalar_size;
+
+  return get_vector_mode (inner_mode, dup_nunit).require ();
}
/* Expand series const vector.  */
@@ -2130,9 +2159,9 @@ expand_vector_init_merge_repeating_sequence (rtx target,
      since we don't have such instruction in RVV.
      Instead, we should use INT mode (QI/HI/SI/DI) with integer move
      instruction to generate the mask data we want.  */
-  machine_mode mask_int_mode
-    = get_repeating_sequence_dup_machine_mode (builder);
   machine_mode mask_bit_mode = get_mask_mode (builder.mode ());
+  machine_mode mask_int_mode
+    = get_repeating_sequence_dup_machine_mode (builder, mask_bit_mode);
   uint64_t full_nelts = builder.full_nelts ().to_constant ();
   /* Step 1: Broadcast the first pattern.  */
@@ -2143,7 +2172,8 @@ expand_vector_init_merge_repeating_sequence (rtx target,
   for (unsigned int i = 1; i < builder.npatterns (); i++)
     {
       /* Step 2-1: Generate mask register v0 for each merge.  */
-      rtx merge_mask = builder.get_merge_scalar_mask (i);
+      rtx merge_mask
+ = builder.get_merge_scalar_mask (i, GET_MODE_INNER (mask_int_mode));
       rtx mask = gen_reg_rtx (mask_bit_mode);
       rtx dup = gen_reg_rtx (mask_int_mode);
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
new file mode 100644
index 00000000000..ccce5052dc2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx32di __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32di:
+**   vsetvli\s+[axt][0-9]+,\s*zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx32di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
new file mode 100644
index 00000000000..a62eee8a5ae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx32df __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32df:
+**   vsetvli\s+[axt][0-9]+\s*,zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32df (double a, double b, double *out)
+{
+  vnx32df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
new file mode 100644
index 00000000000..4f8a78b3161
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
new file mode 100644
index 00000000000..f0d14db8fa8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
new file mode 100644
index 00000000000..fd986e6b649
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
new file mode 100644
index 00000000000..753221ffdbf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
-- 
2.34.1
 
 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
  2023-11-15  3:48 [PATCH v1] RISC-V: Refine the mask generation for vec_init case 2 pan2.li
  2023-11-15  5:04 ` juzhe.zhong
@ 2023-11-15  7:12 ` pan2.li
  2023-11-15  7:23   ` juzhe.zhong
  1 sibling, 1 reply; 7+ messages in thread
From: pan2.li @ 2023-11-15  7:12 UTC (permalink / raw)
  To: gcc-patches; +Cc: juzhe.zhong, pan2.li, yanzhang.wang, kito.cheng

From: Pan Li <pan2.li@intel.com>

Update in v2:
1. Add more test cases for fixed-vlmax.
2, Add test cases for vls mode.

Original log:

We take vec_init element int mode when generate the mask for
case 2. But actually we don't need as many bits as the element.
The extra bigger mode may introduce some unnecessary insns.
For example as below code:

typedef int64_t v16di __attribute__ ((vector_size (16 * 8)));

void __attribute__ ((noinline, noclone))
  foo (int64_t *out, int64_t x, int64_t y)
{
  v16di v = {y, x, y, x, y, x, y, x, y, x, y, x, y, x, y, x};
  *(v16di *) out = v;
}

We will have VDImode when generate the 0b0101010101010101 mask but
actually VHImode is good enough here. This patch would like to
refine the mask generation to avoid:
1. Unnecessary scalar to generate big constant mask.
2. Unnecessary vector insn to v0 mask.

Before this patch:
foo:
  li      a5,-1431654400
  li      a4,-1431654400               <== unnecessary insn
  addi    a5,a5,-1365                  <== unnecessary insn
  addi    a4,a4,-1366
  slli    a5,a5,32                     <== unnecessary insn
  add     a5,a5,a4                     <== unnecessary insn
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.v.x v8,a2
  vmv.s.x v16,a5
  vmv1r.v v0,v16                       <== unnecessary insn
  vmerge.vxm      v8,v8,a1,v0
  vse64.v v8,0(a0)
  ret

After this patch:
foo:
  li      a5,-20480
  addiw   a5,a5,-1366
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.s.x v0,a5
  vmv.v.x v8,a2
  vmerge.vxm      v8,v8,a1,v0
  vs8r.v  v8,0(a0)
  ret

gcc/ChangeLog:

	* config/riscv/riscv-v.cc (rvv_builder::get_merge_scalar_mask):
	Add inner_mode mask arg for mask int mode.
	(get_repeating_sequence_dup_machine_mode): Add mask_bit_mode arg
	to get the good enough vector int mode on precision.
	(expand_vector_init_merge_repeating_sequence): Pass required args
	to above func.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c: New test.

Signed-off-by: Pan Li <pan2.li@intel.com>
---
 gcc/config/riscv/riscv-v.cc                   |  54 +-
 .../vls-vlmax/init-repeat-sequence-10.c       |  28 +
 .../vls-vlmax/init-repeat-sequence-11.c       |  26 +
 .../vls-vlmax/init-repeat-sequence-12.c       | 279 ++++++++
 .../vls-vlmax/init-repeat-sequence-13.c       |  57 ++
 .../vls-vlmax/init-repeat-sequence-14.c       |  87 +++
 .../vls-vlmax/init-repeat-sequence-15.c       | 151 ++++
 .../vls-vlmax/init-repeat-sequence-6.c        |  27 +
 .../vls-vlmax/init-repeat-sequence-7.c        |  25 +
 .../vls-vlmax/init-repeat-sequence-8.c        |  27 +
 .../vls-vlmax/init-repeat-sequence-9.c        |  25 +
 .../rvv/autovec/vls/init-repeat-sequence-0.c  | 654 ++++++++++++++++++
 .../rvv/autovec/vls/init-repeat-sequence-1.c  | 654 ++++++++++++++++++
 .../rvv/autovec/vls/init-repeat-sequence-2.c  | 337 +++++++++
 .../rvv/autovec/vls/init-repeat-sequence-3.c  | 337 +++++++++
 .../rvv/autovec/vls/init-repeat-sequence-4.c  | 178 +++++
 .../rvv/autovec/vls/init-repeat-sequence-5.c  | 178 +++++
 .../rvv/autovec/vls/init-repeat-sequence-6.c  |  55 ++
 .../rvv/autovec/vls/init-repeat-sequence-7.c  | 337 +++++++++
 .../rvv/autovec/vls/init-repeat-sequence-8.c  | 178 +++++
 20 files changed, 3682 insertions(+), 12 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c

diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc
index 265a298f447..ffb645eccf3 100644
--- a/gcc/config/riscv/riscv-v.cc
+++ b/gcc/config/riscv/riscv-v.cc
@@ -416,7 +416,7 @@ public:
   bool repeating_sequence_use_merge_profitable_p ();
   bool combine_sequence_use_slideup_profitable_p ();
   bool combine_sequence_use_merge_profitable_p ();
-  rtx get_merge_scalar_mask (unsigned int) const;
+  rtx get_merge_scalar_mask (unsigned int, machine_mode) const;
 
   bool single_step_npatterns_p () const;
   bool npatterns_all_equal_p () const;
@@ -592,7 +592,8 @@ rvv_builder::get_merged_repeating_sequence ()
    To merge "b", the mask should be 0101....
 */
 rtx
-rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
+rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern,
+				    machine_mode inner_mode) const
 {
   unsigned HOST_WIDE_INT mask = 0;
   unsigned HOST_WIDE_INT base_mask = (1ULL << index_in_pattern);
@@ -611,7 +612,7 @@ rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
   for (int i = 0; i < limit; i++)
     mask |= base_mask << (i * npatterns ());
 
-  return gen_int_mode (mask, inner_int_mode ());
+  return gen_int_mode (mask, inner_mode);
 }
 
 /* Return true if the variable-length vector is single step.
@@ -919,17 +920,45 @@ emit_vlmax_decompress_insn (rtx target, rtx op0, rtx op1, rtx mask)
 /* Emit merge instruction.  */
 
 static machine_mode
-get_repeating_sequence_dup_machine_mode (const rvv_builder &builder)
+get_repeating_sequence_dup_machine_mode (const rvv_builder &builder,
+					 machine_mode mask_bit_mode)
 {
-  poly_uint64 dup_nunits = GET_MODE_NUNITS (builder.mode ());
+  unsigned mask_precision = GET_MODE_PRECISION (mask_bit_mode).to_constant ();
+  unsigned mask_scalar_size = mask_precision > builder.inner_bits_size ()
+    ? builder.inner_bits_size () : mask_precision;
 
-  if (known_ge (GET_MODE_SIZE (builder.mode ()), BYTES_PER_RISCV_VECTOR))
+  scalar_mode inner_mode;
+  unsigned minimal_bits_size;
+
+  switch (mask_scalar_size)
     {
-      dup_nunits = exact_div (BYTES_PER_RISCV_VECTOR,
-	builder.inner_bytes_size ());
+      case 8:
+	inner_mode = QImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 8; /* AKA RVVMF8.  */
+	break;
+      case 16:
+	inner_mode = HImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 4; /* AKA RVVMF4.  */
+	break;
+      case 32:
+	inner_mode = SImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 2; /* AKA RVVMF2.  */
+	break;
+      case 64:
+	inner_mode = DImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 1; /* AKA RVVM1.  */
+	break;
+      default:
+	gcc_unreachable ();
+	break;
     }
 
-  return get_vector_mode (builder.inner_int_mode (), dup_nunits).require ();
+  gcc_assert (mask_precision % mask_scalar_size == 0);
+
+  uint64_t dup_nunit = mask_precision > mask_scalar_size
+    ? mask_precision / mask_scalar_size : minimal_bits_size / mask_scalar_size;
+
+  return get_vector_mode (inner_mode, dup_nunit).require ();
 }
 
 /* Expand series const vector.  */
@@ -2130,9 +2159,9 @@ expand_vector_init_merge_repeating_sequence (rtx target,
      since we don't have such instruction in RVV.
      Instead, we should use INT mode (QI/HI/SI/DI) with integer move
      instruction to generate the mask data we want.  */
-  machine_mode mask_int_mode
-    = get_repeating_sequence_dup_machine_mode (builder);
   machine_mode mask_bit_mode = get_mask_mode (builder.mode ());
+  machine_mode mask_int_mode
+    = get_repeating_sequence_dup_machine_mode (builder, mask_bit_mode);
   uint64_t full_nelts = builder.full_nelts ().to_constant ();
 
   /* Step 1: Broadcast the first pattern.  */
@@ -2143,7 +2172,8 @@ expand_vector_init_merge_repeating_sequence (rtx target,
   for (unsigned int i = 1; i < builder.npatterns (); i++)
     {
       /* Step 2-1: Generate mask register v0 for each merge.  */
-      rtx merge_mask = builder.get_merge_scalar_mask (i);
+      rtx merge_mask
+	= builder.get_merge_scalar_mask (i, GET_MODE_INNER (mask_int_mode));
       rtx mask = gen_reg_rtx (mask_bit_mode);
       rtx dup = gen_reg_rtx (mask_int_mode);
 
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
new file mode 100644
index 00000000000..ccce5052dc2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx32di __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32di:
+**   vsetvli\s+[axt][0-9]+,\s*zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx32di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
new file mode 100644
index 00000000000..a62eee8a5ae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx32df __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32df:
+**   vsetvli\s+[axt][0-9]+\s*,zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32df (double a, double b, double *out)
+{
+  vnx32df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
new file mode 100644
index 00000000000..92cf29985d5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
@@ -0,0 +1,279 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int8_t vnx4096qi __attribute__ ((vector_size (4096)));
+
+/*
+** f_vnx4096qi:
+**   ...
+**   vsetvli\s+[axt][0-9]+,\s*zero,\s*e16,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx4096qi (int8_t a, int8_t b, int8_t *out)
+{
+  vnx4096qi v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx4096qi *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
new file mode 100644
index 00000000000..e3ec3a106f7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
@@ -0,0 +1,57 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx512di __attribute__ ((vector_size (512 * 8)));
+
+/*
+** f_vnx512di:
+**   ...
+**   vsetivli\s+zero,\s*8,\s*e64,\s*m1,\s*ta,\s*ma
+**   vmv\.v\.x\s+v0,[atx][0-9]+
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e64,\s*m8,\s*ta,\s*ma
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx512di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx512di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx512di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
new file mode 100644
index 00000000000..23a4ea68b34
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
@@ -0,0 +1,87 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int32_t vnx1024si __attribute__ ((vector_size (1024 * 4)));
+
+/*
+** f_vnx1024si:
+**   ...
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e64,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx1024si (int32_t a, int32_t b, int32_t *out)
+{
+  vnx1024si v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx1024si *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
new file mode 100644
index 00000000000..37c08a1c328
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
@@ -0,0 +1,151 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int16_t vnx2048hi __attribute__ ((vector_size (2048 * 2)));
+
+/*
+** f_vnx2048hi:
+**   ...
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e32,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx2048hi (int16_t a, int16_t b, int16_t *out)
+{
+  vnx2048hi v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx2048hi *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
new file mode 100644
index 00000000000..4f8a78b3161
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
new file mode 100644
index 00000000000..f0d14db8fa8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
new file mode 100644
index 00000000000..fd986e6b649
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
new file mode 100644
index 00000000000..753221ffdbf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
new file mode 100644
index 00000000000..9bb21d7ab18
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
@@ -0,0 +1,654 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4qi, int8_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8qi, int8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16qi, int8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32qi, int8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64qi, int8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128qi, int8_t, 128, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256qi, int8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512qi, int8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024qi, int8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048qi, int8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v4096qi, int8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
new file mode 100644
index 00000000000..e5934ac382c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
@@ -0,0 +1,654 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4uqi, uint8_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8uqi, uint8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16uqi, uint8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32uqi, uint8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64uqi, uint8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128uqi, uint8_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256uqi, uint8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512uqi, uint8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024uqi, uint8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048uqi, uint8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v4096uqi, uint8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
new file mode 100644
index 00000000000..7b30e2b5c75
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4hi, int16_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8hi, int16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16hi, int16_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32hi, int16_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64hi, int16_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128hi, int16_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256hi, int16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512hi, int16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024hi, int16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048hi, int16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
new file mode 100644
index 00000000000..d3efc9aca3d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4uhi, uint16_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8uhi, uint16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16uhi, uint16_t, 16, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32uhi, uint16_t, 32, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1)
+DEF_REPEAT (v64uhi, uint16_t, 64, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v128uhi, uint16_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256uhi, uint16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512uhi, uint16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024uhi, uint16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1)
+DEF_REPEAT (
+  v2048uhi, uint16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
new file mode 100644
index 00000000000..a9d1e87965e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4si, int32_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8si, int32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16si, int32_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32si, int32_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64si, int32_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128si, int32_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256si, int32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512si, int32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024si, int32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
new file mode 100644
index 00000000000..b528c8036b9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4usi, uint32_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8usi, uint32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16usi, uint32_t, 16, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32usi, uint32_t, 32, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1)
+DEF_REPEAT (v64usi, uint32_t, 64, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v128usi, uint32_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256usi, uint32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512usi, uint32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024usi, uint32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
new file mode 100644
index 00000000000..5c36d86e0cf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
@@ -0,0 +1,55 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v16di, int64_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32di, int64_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64di, int64_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128di, int64_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256di, int64_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x\s+v0,\s*[atx][0-9]+} 2 } } */
+/* { dg-final { scan-assembler-times {vmv\.s\.x\s+v0,\s*[atx][0-9]+} 3 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
new file mode 100644
index 00000000000..1087b60ab29
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4hf, _Float16, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8hf, _Float16, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16hf, _Float16, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32hf, _Float16, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64hf, _Float16, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128hf, _Float16, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256hf, _Float16, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512hf, _Float16, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024hf, _Float16, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048hf, _Float16, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
new file mode 100644
index 00000000000..f0d40dfa700
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4sf, float, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8sf, float, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16sf, float, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32sf, float, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64sf, float, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128sf, float, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256sf, float, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512sf, float, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024sf, float, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
-- 
2.34.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
  2023-11-15  7:12 ` [PATCH v2] " pan2.li
@ 2023-11-15  7:23   ` juzhe.zhong
  2023-11-15  7:30     ` Li, Pan2
  0 siblings, 1 reply; 7+ messages in thread
From: juzhe.zhong @ 2023-11-15  7:23 UTC (permalink / raw)
  To: pan2.li, gcc-patches; +Cc: pan2.li, yanzhang.wang, kito.cheng

Could you add a run test ?

juzhe.zhong@rivai.ai
 
From: pan2.li
Date: 2023-11-15 15:12
To: gcc-patches
CC: juzhe.zhong; pan2.li; yanzhang.wang; kito.cheng
Subject: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
From: Pan Li <pan2.li@intel.com>
 
Update in v2:
1. Add more test cases for fixed-vlmax.
2, Add test cases for vls mode.
 
Original log:
 
We take vec_init element int mode when generate the mask for
case 2. But actually we don't need as many bits as the element.
The extra bigger mode may introduce some unnecessary insns.
For example as below code:
 
typedef int64_t v16di __attribute__ ((vector_size (16 * 8)));
 
void __attribute__ ((noinline, noclone))
  foo (int64_t *out, int64_t x, int64_t y)
{
  v16di v = {y, x, y, x, y, x, y, x, y, x, y, x, y, x, y, x};
  *(v16di *) out = v;
}
 
We will have VDImode when generate the 0b0101010101010101 mask but
actually VHImode is good enough here. This patch would like to
refine the mask generation to avoid:
1. Unnecessary scalar to generate big constant mask.
2. Unnecessary vector insn to v0 mask.
 
Before this patch:
foo:
  li      a5,-1431654400
  li      a4,-1431654400               <== unnecessary insn
  addi    a5,a5,-1365                  <== unnecessary insn
  addi    a4,a4,-1366
  slli    a5,a5,32                     <== unnecessary insn
  add     a5,a5,a4                     <== unnecessary insn
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.v.x v8,a2
  vmv.s.x v16,a5
  vmv1r.v v0,v16                       <== unnecessary insn
  vmerge.vxm      v8,v8,a1,v0
  vse64.v v8,0(a0)
  ret
 
After this patch:
foo:
  li      a5,-20480
  addiw   a5,a5,-1366
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.s.x v0,a5
  vmv.v.x v8,a2
  vmerge.vxm      v8,v8,a1,v0
  vs8r.v  v8,0(a0)
  ret
 
gcc/ChangeLog:
 
* config/riscv/riscv-v.cc (rvv_builder::get_merge_scalar_mask):
Add inner_mode mask arg for mask int mode.
(get_repeating_sequence_dup_machine_mode): Add mask_bit_mode arg
to get the good enough vector int mode on precision.
(expand_vector_init_merge_repeating_sequence): Pass required args
to above func.
 
gcc/testsuite/ChangeLog:
 
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c: New test.
 
Signed-off-by: Pan Li <pan2.li@intel.com>
---
gcc/config/riscv/riscv-v.cc                   |  54 +-
.../vls-vlmax/init-repeat-sequence-10.c       |  28 +
.../vls-vlmax/init-repeat-sequence-11.c       |  26 +
.../vls-vlmax/init-repeat-sequence-12.c       | 279 ++++++++
.../vls-vlmax/init-repeat-sequence-13.c       |  57 ++
.../vls-vlmax/init-repeat-sequence-14.c       |  87 +++
.../vls-vlmax/init-repeat-sequence-15.c       | 151 ++++
.../vls-vlmax/init-repeat-sequence-6.c        |  27 +
.../vls-vlmax/init-repeat-sequence-7.c        |  25 +
.../vls-vlmax/init-repeat-sequence-8.c        |  27 +
.../vls-vlmax/init-repeat-sequence-9.c        |  25 +
.../rvv/autovec/vls/init-repeat-sequence-0.c  | 654 ++++++++++++++++++
.../rvv/autovec/vls/init-repeat-sequence-1.c  | 654 ++++++++++++++++++
.../rvv/autovec/vls/init-repeat-sequence-2.c  | 337 +++++++++
.../rvv/autovec/vls/init-repeat-sequence-3.c  | 337 +++++++++
.../rvv/autovec/vls/init-repeat-sequence-4.c  | 178 +++++
.../rvv/autovec/vls/init-repeat-sequence-5.c  | 178 +++++
.../rvv/autovec/vls/init-repeat-sequence-6.c  |  55 ++
.../rvv/autovec/vls/init-repeat-sequence-7.c  | 337 +++++++++
.../rvv/autovec/vls/init-repeat-sequence-8.c  | 178 +++++
20 files changed, 3682 insertions(+), 12 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
 
diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc
index 265a298f447..ffb645eccf3 100644
--- a/gcc/config/riscv/riscv-v.cc
+++ b/gcc/config/riscv/riscv-v.cc
@@ -416,7 +416,7 @@ public:
   bool repeating_sequence_use_merge_profitable_p ();
   bool combine_sequence_use_slideup_profitable_p ();
   bool combine_sequence_use_merge_profitable_p ();
-  rtx get_merge_scalar_mask (unsigned int) const;
+  rtx get_merge_scalar_mask (unsigned int, machine_mode) const;
   bool single_step_npatterns_p () const;
   bool npatterns_all_equal_p () const;
@@ -592,7 +592,8 @@ rvv_builder::get_merged_repeating_sequence ()
    To merge "b", the mask should be 0101....
*/
rtx
-rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
+rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern,
+	    machine_mode inner_mode) const
{
   unsigned HOST_WIDE_INT mask = 0;
   unsigned HOST_WIDE_INT base_mask = (1ULL << index_in_pattern);
@@ -611,7 +612,7 @@ rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
   for (int i = 0; i < limit; i++)
     mask |= base_mask << (i * npatterns ());
-  return gen_int_mode (mask, inner_int_mode ());
+  return gen_int_mode (mask, inner_mode);
}
/* Return true if the variable-length vector is single step.
@@ -919,17 +920,45 @@ emit_vlmax_decompress_insn (rtx target, rtx op0, rtx op1, rtx mask)
/* Emit merge instruction.  */
static machine_mode
-get_repeating_sequence_dup_machine_mode (const rvv_builder &builder)
+get_repeating_sequence_dup_machine_mode (const rvv_builder &builder,
+	machine_mode mask_bit_mode)
{
-  poly_uint64 dup_nunits = GET_MODE_NUNITS (builder.mode ());
+  unsigned mask_precision = GET_MODE_PRECISION (mask_bit_mode).to_constant ();
+  unsigned mask_scalar_size = mask_precision > builder.inner_bits_size ()
+    ? builder.inner_bits_size () : mask_precision;
-  if (known_ge (GET_MODE_SIZE (builder.mode ()), BYTES_PER_RISCV_VECTOR))
+  scalar_mode inner_mode;
+  unsigned minimal_bits_size;
+
+  switch (mask_scalar_size)
     {
-      dup_nunits = exact_div (BYTES_PER_RISCV_VECTOR,
-	builder.inner_bytes_size ());
+      case 8:
+	inner_mode = QImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 8; /* AKA RVVMF8.  */
+	break;
+      case 16:
+	inner_mode = HImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 4; /* AKA RVVMF4.  */
+	break;
+      case 32:
+	inner_mode = SImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 2; /* AKA RVVMF2.  */
+	break;
+      case 64:
+	inner_mode = DImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 1; /* AKA RVVM1.  */
+	break;
+      default:
+	gcc_unreachable ();
+	break;
     }
-  return get_vector_mode (builder.inner_int_mode (), dup_nunits).require ();
+  gcc_assert (mask_precision % mask_scalar_size == 0);
+
+  uint64_t dup_nunit = mask_precision > mask_scalar_size
+    ? mask_precision / mask_scalar_size : minimal_bits_size / mask_scalar_size;
+
+  return get_vector_mode (inner_mode, dup_nunit).require ();
}
/* Expand series const vector.  */
@@ -2130,9 +2159,9 @@ expand_vector_init_merge_repeating_sequence (rtx target,
      since we don't have such instruction in RVV.
      Instead, we should use INT mode (QI/HI/SI/DI) with integer move
      instruction to generate the mask data we want.  */
-  machine_mode mask_int_mode
-    = get_repeating_sequence_dup_machine_mode (builder);
   machine_mode mask_bit_mode = get_mask_mode (builder.mode ());
+  machine_mode mask_int_mode
+    = get_repeating_sequence_dup_machine_mode (builder, mask_bit_mode);
   uint64_t full_nelts = builder.full_nelts ().to_constant ();
   /* Step 1: Broadcast the first pattern.  */
@@ -2143,7 +2172,8 @@ expand_vector_init_merge_repeating_sequence (rtx target,
   for (unsigned int i = 1; i < builder.npatterns (); i++)
     {
       /* Step 2-1: Generate mask register v0 for each merge.  */
-      rtx merge_mask = builder.get_merge_scalar_mask (i);
+      rtx merge_mask
+	= builder.get_merge_scalar_mask (i, GET_MODE_INNER (mask_int_mode));
       rtx mask = gen_reg_rtx (mask_bit_mode);
       rtx dup = gen_reg_rtx (mask_int_mode);
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
new file mode 100644
index 00000000000..ccce5052dc2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx32di __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32di:
+**   vsetvli\s+[axt][0-9]+,\s*zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx32di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
new file mode 100644
index 00000000000..a62eee8a5ae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx32df __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32df:
+**   vsetvli\s+[axt][0-9]+\s*,zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32df (double a, double b, double *out)
+{
+  vnx32df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
new file mode 100644
index 00000000000..92cf29985d5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
@@ -0,0 +1,279 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int8_t vnx4096qi __attribute__ ((vector_size (4096)));
+
+/*
+** f_vnx4096qi:
+**   ...
+**   vsetvli\s+[axt][0-9]+,\s*zero,\s*e16,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx4096qi (int8_t a, int8_t b, int8_t *out)
+{
+  vnx4096qi v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx4096qi *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
new file mode 100644
index 00000000000..e3ec3a106f7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
@@ -0,0 +1,57 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx512di __attribute__ ((vector_size (512 * 8)));
+
+/*
+** f_vnx512di:
+**   ...
+**   vsetivli\s+zero,\s*8,\s*e64,\s*m1,\s*ta,\s*ma
+**   vmv\.v\.x\s+v0,[atx][0-9]+
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e64,\s*m8,\s*ta,\s*ma
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx512di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx512di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx512di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
new file mode 100644
index 00000000000..23a4ea68b34
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
@@ -0,0 +1,87 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int32_t vnx1024si __attribute__ ((vector_size (1024 * 4)));
+
+/*
+** f_vnx1024si:
+**   ...
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e64,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx1024si (int32_t a, int32_t b, int32_t *out)
+{
+  vnx1024si v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx1024si *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
new file mode 100644
index 00000000000..37c08a1c328
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
@@ -0,0 +1,151 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int16_t vnx2048hi __attribute__ ((vector_size (2048 * 2)));
+
+/*
+** f_vnx2048hi:
+**   ...
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e32,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx2048hi (int16_t a, int16_t b, int16_t *out)
+{
+  vnx2048hi v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx2048hi *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
new file mode 100644
index 00000000000..4f8a78b3161
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
new file mode 100644
index 00000000000..f0d14db8fa8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
new file mode 100644
index 00000000000..fd986e6b649
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
new file mode 100644
index 00000000000..753221ffdbf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
new file mode 100644
index 00000000000..9bb21d7ab18
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
@@ -0,0 +1,654 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4qi, int8_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8qi, int8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16qi, int8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32qi, int8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64qi, int8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128qi, int8_t, 128, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256qi, int8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512qi, int8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024qi, int8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048qi, int8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v4096qi, int8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
new file mode 100644
index 00000000000..e5934ac382c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
@@ -0,0 +1,654 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4uqi, uint8_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8uqi, uint8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16uqi, uint8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32uqi, uint8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64uqi, uint8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128uqi, uint8_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256uqi, uint8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512uqi, uint8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024uqi, uint8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048uqi, uint8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v4096uqi, uint8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
new file mode 100644
index 00000000000..7b30e2b5c75
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4hi, int16_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8hi, int16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16hi, int16_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32hi, int16_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64hi, int16_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128hi, int16_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256hi, int16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512hi, int16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024hi, int16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048hi, int16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
new file mode 100644
index 00000000000..d3efc9aca3d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4uhi, uint16_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8uhi, uint16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16uhi, uint16_t, 16, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32uhi, uint16_t, 32, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1)
+DEF_REPEAT (v64uhi, uint16_t, 64, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v128uhi, uint16_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256uhi, uint16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512uhi, uint16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024uhi, uint16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1)
+DEF_REPEAT (
+  v2048uhi, uint16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
new file mode 100644
index 00000000000..a9d1e87965e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4si, int32_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8si, int32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16si, int32_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32si, int32_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64si, int32_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128si, int32_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256si, int32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512si, int32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024si, int32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
new file mode 100644
index 00000000000..b528c8036b9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4usi, uint32_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8usi, uint32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16usi, uint32_t, 16, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32usi, uint32_t, 32, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1)
+DEF_REPEAT (v64usi, uint32_t, 64, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v128usi, uint32_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256usi, uint32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512usi, uint32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024usi, uint32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
new file mode 100644
index 00000000000..5c36d86e0cf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
@@ -0,0 +1,55 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v16di, int64_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32di, int64_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64di, int64_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128di, int64_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256di, int64_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x\s+v0,\s*[atx][0-9]+} 2 } } */
+/* { dg-final { scan-assembler-times {vmv\.s\.x\s+v0,\s*[atx][0-9]+} 3 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
new file mode 100644
index 00000000000..1087b60ab29
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4hf, _Float16, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8hf, _Float16, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16hf, _Float16, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32hf, _Float16, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64hf, _Float16, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128hf, _Float16, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256hf, _Float16, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512hf, _Float16, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024hf, _Float16, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048hf, _Float16, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
new file mode 100644
index 00000000000..f0d40dfa700
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4sf, float, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8sf, float, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16sf, float, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32sf, float, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64sf, float, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128sf, float, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256sf, float, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512sf, float, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024sf, float, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
--
2.34.1
 
 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
  2023-11-15  7:23   ` juzhe.zhong
@ 2023-11-15  7:30     ` Li, Pan2
  2023-11-15  7:37       ` juzhe.zhong
  0 siblings, 1 reply; 7+ messages in thread
From: Li, Pan2 @ 2023-11-15  7:30 UTC (permalink / raw)
  To: juzhe.zhong, gcc-patches; +Cc: Wang, Yanzhang, kito.cheng

Run test cases are not involved as we have 3 run test cases like init-repeat-sequence-run-1/2/3.c already.
The run test cases for this patch would be very similar to existing ones.

Pan

-----Original Message-----
From: juzhe.zhong@rivai.ai <juzhe.zhong@rivai.ai> 
Sent: Wednesday, November 15, 2023 3:23 PM
To: Li, Pan2 <pan2.li@intel.com>; gcc-patches <gcc-patches@gcc.gnu.org>
Cc: Li, Pan2 <pan2.li@intel.com>; Wang, Yanzhang <yanzhang.wang@intel.com>; kito.cheng <kito.cheng@gmail.com>
Subject: Re: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2

Could you add a run test ?

juzhe.zhong@rivai.ai
 
From: pan2.li
Date: 2023-11-15 15:12
To: gcc-patches
CC: juzhe.zhong; pan2.li; yanzhang.wang; kito.cheng
Subject: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
From: Pan Li <pan2.li@intel.com>
 
Update in v2:
1. Add more test cases for fixed-vlmax.
2, Add test cases for vls mode.
 
Original log:
 
We take vec_init element int mode when generate the mask for
case 2. But actually we don't need as many bits as the element.
The extra bigger mode may introduce some unnecessary insns.
For example as below code:
 
typedef int64_t v16di __attribute__ ((vector_size (16 * 8)));
 
void __attribute__ ((noinline, noclone))
  foo (int64_t *out, int64_t x, int64_t y)
{
  v16di v = {y, x, y, x, y, x, y, x, y, x, y, x, y, x, y, x};
  *(v16di *) out = v;
}
 
We will have VDImode when generate the 0b0101010101010101 mask but
actually VHImode is good enough here. This patch would like to
refine the mask generation to avoid:
1. Unnecessary scalar to generate big constant mask.
2. Unnecessary vector insn to v0 mask.
 
Before this patch:
foo:
  li      a5,-1431654400
  li      a4,-1431654400               <== unnecessary insn
  addi    a5,a5,-1365                  <== unnecessary insn
  addi    a4,a4,-1366
  slli    a5,a5,32                     <== unnecessary insn
  add     a5,a5,a4                     <== unnecessary insn
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.v.x v8,a2
  vmv.s.x v16,a5
  vmv1r.v v0,v16                       <== unnecessary insn
  vmerge.vxm      v8,v8,a1,v0
  vse64.v v8,0(a0)
  ret
 
After this patch:
foo:
  li      a5,-20480
  addiw   a5,a5,-1366
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.s.x v0,a5
  vmv.v.x v8,a2
  vmerge.vxm      v8,v8,a1,v0
  vs8r.v  v8,0(a0)
  ret
 
gcc/ChangeLog:
 
* config/riscv/riscv-v.cc (rvv_builder::get_merge_scalar_mask):
Add inner_mode mask arg for mask int mode.
(get_repeating_sequence_dup_machine_mode): Add mask_bit_mode arg
to get the good enough vector int mode on precision.
(expand_vector_init_merge_repeating_sequence): Pass required args
to above func.
 
gcc/testsuite/ChangeLog:
 
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c: New test.
 
Signed-off-by: Pan Li <pan2.li@intel.com>
---
gcc/config/riscv/riscv-v.cc                   |  54 +-
.../vls-vlmax/init-repeat-sequence-10.c       |  28 +
.../vls-vlmax/init-repeat-sequence-11.c       |  26 +
.../vls-vlmax/init-repeat-sequence-12.c       | 279 ++++++++
.../vls-vlmax/init-repeat-sequence-13.c       |  57 ++
.../vls-vlmax/init-repeat-sequence-14.c       |  87 +++
.../vls-vlmax/init-repeat-sequence-15.c       | 151 ++++
.../vls-vlmax/init-repeat-sequence-6.c        |  27 +
.../vls-vlmax/init-repeat-sequence-7.c        |  25 +
.../vls-vlmax/init-repeat-sequence-8.c        |  27 +
.../vls-vlmax/init-repeat-sequence-9.c        |  25 +
.../rvv/autovec/vls/init-repeat-sequence-0.c  | 654 ++++++++++++++++++
.../rvv/autovec/vls/init-repeat-sequence-1.c  | 654 ++++++++++++++++++
.../rvv/autovec/vls/init-repeat-sequence-2.c  | 337 +++++++++
.../rvv/autovec/vls/init-repeat-sequence-3.c  | 337 +++++++++
.../rvv/autovec/vls/init-repeat-sequence-4.c  | 178 +++++
.../rvv/autovec/vls/init-repeat-sequence-5.c  | 178 +++++
.../rvv/autovec/vls/init-repeat-sequence-6.c  |  55 ++
.../rvv/autovec/vls/init-repeat-sequence-7.c  | 337 +++++++++
.../rvv/autovec/vls/init-repeat-sequence-8.c  | 178 +++++
20 files changed, 3682 insertions(+), 12 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
 
diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc
index 265a298f447..ffb645eccf3 100644
--- a/gcc/config/riscv/riscv-v.cc
+++ b/gcc/config/riscv/riscv-v.cc
@@ -416,7 +416,7 @@ public:
   bool repeating_sequence_use_merge_profitable_p ();
   bool combine_sequence_use_slideup_profitable_p ();
   bool combine_sequence_use_merge_profitable_p ();
-  rtx get_merge_scalar_mask (unsigned int) const;
+  rtx get_merge_scalar_mask (unsigned int, machine_mode) const;
   bool single_step_npatterns_p () const;
   bool npatterns_all_equal_p () const;
@@ -592,7 +592,8 @@ rvv_builder::get_merged_repeating_sequence ()
    To merge "b", the mask should be 0101....
*/
rtx
-rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
+rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern,
+	    machine_mode inner_mode) const
{
   unsigned HOST_WIDE_INT mask = 0;
   unsigned HOST_WIDE_INT base_mask = (1ULL << index_in_pattern);
@@ -611,7 +612,7 @@ rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
   for (int i = 0; i < limit; i++)
     mask |= base_mask << (i * npatterns ());
-  return gen_int_mode (mask, inner_int_mode ());
+  return gen_int_mode (mask, inner_mode);
}
/* Return true if the variable-length vector is single step.
@@ -919,17 +920,45 @@ emit_vlmax_decompress_insn (rtx target, rtx op0, rtx op1, rtx mask)
/* Emit merge instruction.  */
static machine_mode
-get_repeating_sequence_dup_machine_mode (const rvv_builder &builder)
+get_repeating_sequence_dup_machine_mode (const rvv_builder &builder,
+	machine_mode mask_bit_mode)
{
-  poly_uint64 dup_nunits = GET_MODE_NUNITS (builder.mode ());
+  unsigned mask_precision = GET_MODE_PRECISION (mask_bit_mode).to_constant ();
+  unsigned mask_scalar_size = mask_precision > builder.inner_bits_size ()
+    ? builder.inner_bits_size () : mask_precision;
-  if (known_ge (GET_MODE_SIZE (builder.mode ()), BYTES_PER_RISCV_VECTOR))
+  scalar_mode inner_mode;
+  unsigned minimal_bits_size;
+
+  switch (mask_scalar_size)
     {
-      dup_nunits = exact_div (BYTES_PER_RISCV_VECTOR,
-	builder.inner_bytes_size ());
+      case 8:
+	inner_mode = QImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 8; /* AKA RVVMF8.  */
+	break;
+      case 16:
+	inner_mode = HImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 4; /* AKA RVVMF4.  */
+	break;
+      case 32:
+	inner_mode = SImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 2; /* AKA RVVMF2.  */
+	break;
+      case 64:
+	inner_mode = DImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 1; /* AKA RVVM1.  */
+	break;
+      default:
+	gcc_unreachable ();
+	break;
     }
-  return get_vector_mode (builder.inner_int_mode (), dup_nunits).require ();
+  gcc_assert (mask_precision % mask_scalar_size == 0);
+
+  uint64_t dup_nunit = mask_precision > mask_scalar_size
+    ? mask_precision / mask_scalar_size : minimal_bits_size / mask_scalar_size;
+
+  return get_vector_mode (inner_mode, dup_nunit).require ();
}
/* Expand series const vector.  */
@@ -2130,9 +2159,9 @@ expand_vector_init_merge_repeating_sequence (rtx target,
      since we don't have such instruction in RVV.
      Instead, we should use INT mode (QI/HI/SI/DI) with integer move
      instruction to generate the mask data we want.  */
-  machine_mode mask_int_mode
-    = get_repeating_sequence_dup_machine_mode (builder);
   machine_mode mask_bit_mode = get_mask_mode (builder.mode ());
+  machine_mode mask_int_mode
+    = get_repeating_sequence_dup_machine_mode (builder, mask_bit_mode);
   uint64_t full_nelts = builder.full_nelts ().to_constant ();
   /* Step 1: Broadcast the first pattern.  */
@@ -2143,7 +2172,8 @@ expand_vector_init_merge_repeating_sequence (rtx target,
   for (unsigned int i = 1; i < builder.npatterns (); i++)
     {
       /* Step 2-1: Generate mask register v0 for each merge.  */
-      rtx merge_mask = builder.get_merge_scalar_mask (i);
+      rtx merge_mask
+	= builder.get_merge_scalar_mask (i, GET_MODE_INNER (mask_int_mode));
       rtx mask = gen_reg_rtx (mask_bit_mode);
       rtx dup = gen_reg_rtx (mask_int_mode);
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
new file mode 100644
index 00000000000..ccce5052dc2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx32di __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32di:
+**   vsetvli\s+[axt][0-9]+,\s*zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx32di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
new file mode 100644
index 00000000000..a62eee8a5ae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx32df __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32df:
+**   vsetvli\s+[axt][0-9]+\s*,zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32df (double a, double b, double *out)
+{
+  vnx32df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
new file mode 100644
index 00000000000..92cf29985d5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
@@ -0,0 +1,279 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int8_t vnx4096qi __attribute__ ((vector_size (4096)));
+
+/*
+** f_vnx4096qi:
+**   ...
+**   vsetvli\s+[axt][0-9]+,\s*zero,\s*e16,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx4096qi (int8_t a, int8_t b, int8_t *out)
+{
+  vnx4096qi v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx4096qi *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
new file mode 100644
index 00000000000..e3ec3a106f7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
@@ -0,0 +1,57 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx512di __attribute__ ((vector_size (512 * 8)));
+
+/*
+** f_vnx512di:
+**   ...
+**   vsetivli\s+zero,\s*8,\s*e64,\s*m1,\s*ta,\s*ma
+**   vmv\.v\.x\s+v0,[atx][0-9]+
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e64,\s*m8,\s*ta,\s*ma
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx512di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx512di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx512di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
new file mode 100644
index 00000000000..23a4ea68b34
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
@@ -0,0 +1,87 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int32_t vnx1024si __attribute__ ((vector_size (1024 * 4)));
+
+/*
+** f_vnx1024si:
+**   ...
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e64,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx1024si (int32_t a, int32_t b, int32_t *out)
+{
+  vnx1024si v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx1024si *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
new file mode 100644
index 00000000000..37c08a1c328
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
@@ -0,0 +1,151 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int16_t vnx2048hi __attribute__ ((vector_size (2048 * 2)));
+
+/*
+** f_vnx2048hi:
+**   ...
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e32,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx2048hi (int16_t a, int16_t b, int16_t *out)
+{
+  vnx2048hi v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx2048hi *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
new file mode 100644
index 00000000000..4f8a78b3161
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
new file mode 100644
index 00000000000..f0d14db8fa8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
new file mode 100644
index 00000000000..fd986e6b649
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
new file mode 100644
index 00000000000..753221ffdbf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
new file mode 100644
index 00000000000..9bb21d7ab18
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
@@ -0,0 +1,654 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4qi, int8_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8qi, int8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16qi, int8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32qi, int8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64qi, int8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128qi, int8_t, 128, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256qi, int8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512qi, int8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024qi, int8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048qi, int8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v4096qi, int8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
new file mode 100644
index 00000000000..e5934ac382c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
@@ -0,0 +1,654 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4uqi, uint8_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8uqi, uint8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16uqi, uint8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32uqi, uint8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64uqi, uint8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128uqi, uint8_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256uqi, uint8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512uqi, uint8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024uqi, uint8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048uqi, uint8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v4096uqi, uint8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
new file mode 100644
index 00000000000..7b30e2b5c75
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4hi, int16_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8hi, int16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16hi, int16_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32hi, int16_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64hi, int16_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128hi, int16_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256hi, int16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512hi, int16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024hi, int16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048hi, int16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
new file mode 100644
index 00000000000..d3efc9aca3d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4uhi, uint16_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8uhi, uint16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16uhi, uint16_t, 16, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32uhi, uint16_t, 32, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1)
+DEF_REPEAT (v64uhi, uint16_t, 64, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v128uhi, uint16_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256uhi, uint16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512uhi, uint16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024uhi, uint16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1)
+DEF_REPEAT (
+  v2048uhi, uint16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
new file mode 100644
index 00000000000..a9d1e87965e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4si, int32_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8si, int32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16si, int32_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32si, int32_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64si, int32_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128si, int32_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256si, int32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512si, int32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024si, int32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
new file mode 100644
index 00000000000..b528c8036b9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4usi, uint32_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8usi, uint32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16usi, uint32_t, 16, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32usi, uint32_t, 32, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1)
+DEF_REPEAT (v64usi, uint32_t, 64, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v128usi, uint32_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256usi, uint32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512usi, uint32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024usi, uint32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
new file mode 100644
index 00000000000..5c36d86e0cf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
@@ -0,0 +1,55 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v16di, int64_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32di, int64_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64di, int64_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128di, int64_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256di, int64_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x\s+v0,\s*[atx][0-9]+} 2 } } */
+/* { dg-final { scan-assembler-times {vmv\.s\.x\s+v0,\s*[atx][0-9]+} 3 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
new file mode 100644
index 00000000000..1087b60ab29
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4hf, _Float16, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8hf, _Float16, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16hf, _Float16, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32hf, _Float16, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64hf, _Float16, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128hf, _Float16, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256hf, _Float16, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512hf, _Float16, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024hf, _Float16, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048hf, _Float16, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
new file mode 100644
index 00000000000..f0d40dfa700
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4sf, float, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8sf, float, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16sf, float, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32sf, float, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64sf, float, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128sf, float, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256sf, float, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512sf, float, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024sf, float, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
--
2.34.1
 
 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: RE: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
  2023-11-15  7:30     ` Li, Pan2
@ 2023-11-15  7:37       ` juzhe.zhong
  2023-11-15  7:42         ` Li, Pan2
  0 siblings, 1 reply; 7+ messages in thread
From: juzhe.zhong @ 2023-11-15  7:37 UTC (permalink / raw)
  To: pan2.li, gcc-patches; +Cc: yanzhang.wang, kito.cheng

OK。LGTM。

juzhe.zhong@rivai.ai
 
From: Li, Pan2
Date: 2023-11-15 15:30
To: juzhe.zhong@rivai.ai; gcc-patches
CC: Wang, Yanzhang; kito.cheng
Subject: RE: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
Run test cases are not involved as we have 3 run test cases like init-repeat-sequence-run-1/2/3.c already.
The run test cases for this patch would be very similar to existing ones.
 
Pan
 
-----Original Message-----
From: juzhe.zhong@rivai.ai <juzhe.zhong@rivai.ai>
Sent: Wednesday, November 15, 2023 3:23 PM
To: Li, Pan2 <pan2.li@intel.com>; gcc-patches <gcc-patches@gcc.gnu.org>
Cc: Li, Pan2 <pan2.li@intel.com>; Wang, Yanzhang <yanzhang.wang@intel.com>; kito.cheng <kito.cheng@gmail.com>
Subject: Re: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
 
Could you add a run test ?
 
juzhe.zhong@rivai.ai
 
From: pan2.li
Date: 2023-11-15 15:12
To: gcc-patches
CC: juzhe.zhong; pan2.li; yanzhang.wang; kito.cheng
Subject: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
From: Pan Li <pan2.li@intel.com>
 
Update in v2:
1. Add more test cases for fixed-vlmax.
2, Add test cases for vls mode.
 
Original log:
 
We take vec_init element int mode when generate the mask for
case 2. But actually we don't need as many bits as the element.
The extra bigger mode may introduce some unnecessary insns.
For example as below code:
 
typedef int64_t v16di __attribute__ ((vector_size (16 * 8)));
 
void __attribute__ ((noinline, noclone))
  foo (int64_t *out, int64_t x, int64_t y)
{
  v16di v = {y, x, y, x, y, x, y, x, y, x, y, x, y, x, y, x};
  *(v16di *) out = v;
}
 
We will have VDImode when generate the 0b0101010101010101 mask but
actually VHImode is good enough here. This patch would like to
refine the mask generation to avoid:
1. Unnecessary scalar to generate big constant mask.
2. Unnecessary vector insn to v0 mask.
 
Before this patch:
foo:
  li      a5,-1431654400
  li      a4,-1431654400               <== unnecessary insn
  addi    a5,a5,-1365                  <== unnecessary insn
  addi    a4,a4,-1366
  slli    a5,a5,32                     <== unnecessary insn
  add     a5,a5,a4                     <== unnecessary insn
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.v.x v8,a2
  vmv.s.x v16,a5
  vmv1r.v v0,v16                       <== unnecessary insn
  vmerge.vxm      v8,v8,a1,v0
  vse64.v v8,0(a0)
  ret
 
After this patch:
foo:
  li      a5,-20480
  addiw   a5,a5,-1366
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.s.x v0,a5
  vmv.v.x v8,a2
  vmerge.vxm      v8,v8,a1,v0
  vs8r.v  v8,0(a0)
  ret
 
gcc/ChangeLog:
 
* config/riscv/riscv-v.cc (rvv_builder::get_merge_scalar_mask):
Add inner_mode mask arg for mask int mode.
(get_repeating_sequence_dup_machine_mode): Add mask_bit_mode arg
to get the good enough vector int mode on precision.
(expand_vector_init_merge_repeating_sequence): Pass required args
to above func.
 
gcc/testsuite/ChangeLog:
 
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c: New test.
 
Signed-off-by: Pan Li <pan2.li@intel.com>
---
gcc/config/riscv/riscv-v.cc                   |  54 +-
.../vls-vlmax/init-repeat-sequence-10.c       |  28 +
.../vls-vlmax/init-repeat-sequence-11.c       |  26 +
.../vls-vlmax/init-repeat-sequence-12.c       | 279 ++++++++
.../vls-vlmax/init-repeat-sequence-13.c       |  57 ++
.../vls-vlmax/init-repeat-sequence-14.c       |  87 +++
.../vls-vlmax/init-repeat-sequence-15.c       | 151 ++++
.../vls-vlmax/init-repeat-sequence-6.c        |  27 +
.../vls-vlmax/init-repeat-sequence-7.c        |  25 +
.../vls-vlmax/init-repeat-sequence-8.c        |  27 +
.../vls-vlmax/init-repeat-sequence-9.c        |  25 +
.../rvv/autovec/vls/init-repeat-sequence-0.c  | 654 ++++++++++++++++++
.../rvv/autovec/vls/init-repeat-sequence-1.c  | 654 ++++++++++++++++++
.../rvv/autovec/vls/init-repeat-sequence-2.c  | 337 +++++++++
.../rvv/autovec/vls/init-repeat-sequence-3.c  | 337 +++++++++
.../rvv/autovec/vls/init-repeat-sequence-4.c  | 178 +++++
.../rvv/autovec/vls/init-repeat-sequence-5.c  | 178 +++++
.../rvv/autovec/vls/init-repeat-sequence-6.c  |  55 ++
.../rvv/autovec/vls/init-repeat-sequence-7.c  | 337 +++++++++
.../rvv/autovec/vls/init-repeat-sequence-8.c  | 178 +++++
20 files changed, 3682 insertions(+), 12 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
 
diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc
index 265a298f447..ffb645eccf3 100644
--- a/gcc/config/riscv/riscv-v.cc
+++ b/gcc/config/riscv/riscv-v.cc
@@ -416,7 +416,7 @@ public:
   bool repeating_sequence_use_merge_profitable_p ();
   bool combine_sequence_use_slideup_profitable_p ();
   bool combine_sequence_use_merge_profitable_p ();
-  rtx get_merge_scalar_mask (unsigned int) const;
+  rtx get_merge_scalar_mask (unsigned int, machine_mode) const;
   bool single_step_npatterns_p () const;
   bool npatterns_all_equal_p () const;
@@ -592,7 +592,8 @@ rvv_builder::get_merged_repeating_sequence ()
    To merge "b", the mask should be 0101....
*/
rtx
-rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
+rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern,
+	    machine_mode inner_mode) const
{
   unsigned HOST_WIDE_INT mask = 0;
   unsigned HOST_WIDE_INT base_mask = (1ULL << index_in_pattern);
@@ -611,7 +612,7 @@ rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
   for (int i = 0; i < limit; i++)
     mask |= base_mask << (i * npatterns ());
-  return gen_int_mode (mask, inner_int_mode ());
+  return gen_int_mode (mask, inner_mode);
}
/* Return true if the variable-length vector is single step.
@@ -919,17 +920,45 @@ emit_vlmax_decompress_insn (rtx target, rtx op0, rtx op1, rtx mask)
/* Emit merge instruction.  */
static machine_mode
-get_repeating_sequence_dup_machine_mode (const rvv_builder &builder)
+get_repeating_sequence_dup_machine_mode (const rvv_builder &builder,
+	machine_mode mask_bit_mode)
{
-  poly_uint64 dup_nunits = GET_MODE_NUNITS (builder.mode ());
+  unsigned mask_precision = GET_MODE_PRECISION (mask_bit_mode).to_constant ();
+  unsigned mask_scalar_size = mask_precision > builder.inner_bits_size ()
+    ? builder.inner_bits_size () : mask_precision;
-  if (known_ge (GET_MODE_SIZE (builder.mode ()), BYTES_PER_RISCV_VECTOR))
+  scalar_mode inner_mode;
+  unsigned minimal_bits_size;
+
+  switch (mask_scalar_size)
     {
-      dup_nunits = exact_div (BYTES_PER_RISCV_VECTOR,
-	builder.inner_bytes_size ());
+      case 8:
+	inner_mode = QImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 8; /* AKA RVVMF8.  */
+	break;
+      case 16:
+	inner_mode = HImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 4; /* AKA RVVMF4.  */
+	break;
+      case 32:
+	inner_mode = SImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 2; /* AKA RVVMF2.  */
+	break;
+      case 64:
+	inner_mode = DImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 1; /* AKA RVVM1.  */
+	break;
+      default:
+	gcc_unreachable ();
+	break;
     }
-  return get_vector_mode (builder.inner_int_mode (), dup_nunits).require ();
+  gcc_assert (mask_precision % mask_scalar_size == 0);
+
+  uint64_t dup_nunit = mask_precision > mask_scalar_size
+    ? mask_precision / mask_scalar_size : minimal_bits_size / mask_scalar_size;
+
+  return get_vector_mode (inner_mode, dup_nunit).require ();
}
/* Expand series const vector.  */
@@ -2130,9 +2159,9 @@ expand_vector_init_merge_repeating_sequence (rtx target,
      since we don't have such instruction in RVV.
      Instead, we should use INT mode (QI/HI/SI/DI) with integer move
      instruction to generate the mask data we want.  */
-  machine_mode mask_int_mode
-    = get_repeating_sequence_dup_machine_mode (builder);
   machine_mode mask_bit_mode = get_mask_mode (builder.mode ());
+  machine_mode mask_int_mode
+    = get_repeating_sequence_dup_machine_mode (builder, mask_bit_mode);
   uint64_t full_nelts = builder.full_nelts ().to_constant ();
   /* Step 1: Broadcast the first pattern.  */
@@ -2143,7 +2172,8 @@ expand_vector_init_merge_repeating_sequence (rtx target,
   for (unsigned int i = 1; i < builder.npatterns (); i++)
     {
       /* Step 2-1: Generate mask register v0 for each merge.  */
-      rtx merge_mask = builder.get_merge_scalar_mask (i);
+      rtx merge_mask
+	= builder.get_merge_scalar_mask (i, GET_MODE_INNER (mask_int_mode));
       rtx mask = gen_reg_rtx (mask_bit_mode);
       rtx dup = gen_reg_rtx (mask_int_mode);
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
new file mode 100644
index 00000000000..ccce5052dc2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx32di __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32di:
+**   vsetvli\s+[axt][0-9]+,\s*zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx32di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
new file mode 100644
index 00000000000..a62eee8a5ae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx32df __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32df:
+**   vsetvli\s+[axt][0-9]+\s*,zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32df (double a, double b, double *out)
+{
+  vnx32df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
new file mode 100644
index 00000000000..92cf29985d5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
@@ -0,0 +1,279 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int8_t vnx4096qi __attribute__ ((vector_size (4096)));
+
+/*
+** f_vnx4096qi:
+**   ...
+**   vsetvli\s+[axt][0-9]+,\s*zero,\s*e16,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx4096qi (int8_t a, int8_t b, int8_t *out)
+{
+  vnx4096qi v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx4096qi *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
new file mode 100644
index 00000000000..e3ec3a106f7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
@@ -0,0 +1,57 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx512di __attribute__ ((vector_size (512 * 8)));
+
+/*
+** f_vnx512di:
+**   ...
+**   vsetivli\s+zero,\s*8,\s*e64,\s*m1,\s*ta,\s*ma
+**   vmv\.v\.x\s+v0,[atx][0-9]+
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e64,\s*m8,\s*ta,\s*ma
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx512di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx512di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx512di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
new file mode 100644
index 00000000000..23a4ea68b34
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
@@ -0,0 +1,87 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int32_t vnx1024si __attribute__ ((vector_size (1024 * 4)));
+
+/*
+** f_vnx1024si:
+**   ...
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e64,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx1024si (int32_t a, int32_t b, int32_t *out)
+{
+  vnx1024si v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx1024si *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
new file mode 100644
index 00000000000..37c08a1c328
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
@@ -0,0 +1,151 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int16_t vnx2048hi __attribute__ ((vector_size (2048 * 2)));
+
+/*
+** f_vnx2048hi:
+**   ...
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e32,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx2048hi (int16_t a, int16_t b, int16_t *out)
+{
+  vnx2048hi v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx2048hi *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
new file mode 100644
index 00000000000..4f8a78b3161
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
new file mode 100644
index 00000000000..f0d14db8fa8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
new file mode 100644
index 00000000000..fd986e6b649
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
new file mode 100644
index 00000000000..753221ffdbf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
new file mode 100644
index 00000000000..9bb21d7ab18
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
@@ -0,0 +1,654 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4qi, int8_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8qi, int8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16qi, int8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32qi, int8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64qi, int8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128qi, int8_t, 128, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256qi, int8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512qi, int8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024qi, int8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048qi, int8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v4096qi, int8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
new file mode 100644
index 00000000000..e5934ac382c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
@@ -0,0 +1,654 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4uqi, uint8_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8uqi, uint8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16uqi, uint8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32uqi, uint8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64uqi, uint8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128uqi, uint8_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256uqi, uint8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512uqi, uint8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024uqi, uint8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048uqi, uint8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v4096uqi, uint8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
new file mode 100644
index 00000000000..7b30e2b5c75
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4hi, int16_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8hi, int16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16hi, int16_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32hi, int16_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64hi, int16_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128hi, int16_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256hi, int16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512hi, int16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024hi, int16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048hi, int16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
new file mode 100644
index 00000000000..d3efc9aca3d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4uhi, uint16_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8uhi, uint16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16uhi, uint16_t, 16, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32uhi, uint16_t, 32, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1)
+DEF_REPEAT (v64uhi, uint16_t, 64, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v128uhi, uint16_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256uhi, uint16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512uhi, uint16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024uhi, uint16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1)
+DEF_REPEAT (
+  v2048uhi, uint16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
new file mode 100644
index 00000000000..a9d1e87965e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4si, int32_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8si, int32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16si, int32_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32si, int32_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64si, int32_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128si, int32_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256si, int32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512si, int32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024si, int32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
new file mode 100644
index 00000000000..b528c8036b9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4usi, uint32_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8usi, uint32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16usi, uint32_t, 16, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32usi, uint32_t, 32, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1)
+DEF_REPEAT (v64usi, uint32_t, 64, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v128usi, uint32_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256usi, uint32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512usi, uint32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024usi, uint32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
new file mode 100644
index 00000000000..5c36d86e0cf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
@@ -0,0 +1,55 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v16di, int64_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32di, int64_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64di, int64_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128di, int64_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256di, int64_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x\s+v0,\s*[atx][0-9]+} 2 } } */
+/* { dg-final { scan-assembler-times {vmv\.s\.x\s+v0,\s*[atx][0-9]+} 3 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
new file mode 100644
index 00000000000..1087b60ab29
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4hf, _Float16, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8hf, _Float16, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16hf, _Float16, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32hf, _Float16, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64hf, _Float16, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128hf, _Float16, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256hf, _Float16, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512hf, _Float16, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024hf, _Float16, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048hf, _Float16, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
new file mode 100644
index 00000000000..f0d40dfa700
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4sf, float, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8sf, float, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16sf, float, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32sf, float, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64sf, float, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128sf, float, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256sf, float, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512sf, float, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024sf, float, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
--
2.34.1
 
 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: RE: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
  2023-11-15  7:37       ` juzhe.zhong
@ 2023-11-15  7:42         ` Li, Pan2
  0 siblings, 0 replies; 7+ messages in thread
From: Li, Pan2 @ 2023-11-15  7:42 UTC (permalink / raw)
  To: juzhe.zhong, gcc-patches; +Cc: Wang, Yanzhang, kito.cheng

Committed, thanks Juzhe.

Pan

-----Original Message-----
From: juzhe.zhong@rivai.ai <juzhe.zhong@rivai.ai> 
Sent: Wednesday, November 15, 2023 3:37 PM
To: Li, Pan2 <pan2.li@intel.com>; gcc-patches <gcc-patches@gcc.gnu.org>
Cc: Wang, Yanzhang <yanzhang.wang@intel.com>; kito.cheng <kito.cheng@gmail.com>
Subject: Re: RE: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2

OK。LGTM。

juzhe.zhong@rivai.ai
 
From: Li, Pan2
Date: 2023-11-15 15:30
To: juzhe.zhong@rivai.ai; gcc-patches
CC: Wang, Yanzhang; kito.cheng
Subject: RE: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
Run test cases are not involved as we have 3 run test cases like init-repeat-sequence-run-1/2/3.c already.
The run test cases for this patch would be very similar to existing ones.
 
Pan
 
-----Original Message-----
From: juzhe.zhong@rivai.ai <juzhe.zhong@rivai.ai>
Sent: Wednesday, November 15, 2023 3:23 PM
To: Li, Pan2 <pan2.li@intel.com>; gcc-patches <gcc-patches@gcc.gnu.org>
Cc: Li, Pan2 <pan2.li@intel.com>; Wang, Yanzhang <yanzhang.wang@intel.com>; kito.cheng <kito.cheng@gmail.com>
Subject: Re: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
 
Could you add a run test ?
 
juzhe.zhong@rivai.ai
 
From: pan2.li
Date: 2023-11-15 15:12
To: gcc-patches
CC: juzhe.zhong; pan2.li; yanzhang.wang; kito.cheng
Subject: [PATCH v2] RISC-V: Refine the mask generation for vec_init case 2
From: Pan Li <pan2.li@intel.com>
 
Update in v2:
1. Add more test cases for fixed-vlmax.
2, Add test cases for vls mode.
 
Original log:
 
We take vec_init element int mode when generate the mask for
case 2. But actually we don't need as many bits as the element.
The extra bigger mode may introduce some unnecessary insns.
For example as below code:
 
typedef int64_t v16di __attribute__ ((vector_size (16 * 8)));
 
void __attribute__ ((noinline, noclone))
  foo (int64_t *out, int64_t x, int64_t y)
{
  v16di v = {y, x, y, x, y, x, y, x, y, x, y, x, y, x, y, x};
  *(v16di *) out = v;
}
 
We will have VDImode when generate the 0b0101010101010101 mask but
actually VHImode is good enough here. This patch would like to
refine the mask generation to avoid:
1. Unnecessary scalar to generate big constant mask.
2. Unnecessary vector insn to v0 mask.
 
Before this patch:
foo:
  li      a5,-1431654400
  li      a4,-1431654400               <== unnecessary insn
  addi    a5,a5,-1365                  <== unnecessary insn
  addi    a4,a4,-1366
  slli    a5,a5,32                     <== unnecessary insn
  add     a5,a5,a4                     <== unnecessary insn
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.v.x v8,a2
  vmv.s.x v16,a5
  vmv1r.v v0,v16                       <== unnecessary insn
  vmerge.vxm      v8,v8,a1,v0
  vse64.v v8,0(a0)
  ret
 
After this patch:
foo:
  li      a5,-20480
  addiw   a5,a5,-1366
  vsetivli        zero,16,e64,m8,ta,ma
  vmv.s.x v0,a5
  vmv.v.x v8,a2
  vmerge.vxm      v8,v8,a1,v0
  vs8r.v  v8,0(a0)
  ret
 
gcc/ChangeLog:
 
* config/riscv/riscv-v.cc (rvv_builder::get_merge_scalar_mask):
Add inner_mode mask arg for mask int mode.
(get_repeating_sequence_dup_machine_mode): Add mask_bit_mode arg
to get the good enough vector int mode on precision.
(expand_vector_init_merge_repeating_sequence): Pass required args
to above func.
 
gcc/testsuite/ChangeLog:
 
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c: New test.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c: New test.
* gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c: New test.
 
Signed-off-by: Pan Li <pan2.li@intel.com>
---
gcc/config/riscv/riscv-v.cc                   |  54 +-
.../vls-vlmax/init-repeat-sequence-10.c       |  28 +
.../vls-vlmax/init-repeat-sequence-11.c       |  26 +
.../vls-vlmax/init-repeat-sequence-12.c       | 279 ++++++++
.../vls-vlmax/init-repeat-sequence-13.c       |  57 ++
.../vls-vlmax/init-repeat-sequence-14.c       |  87 +++
.../vls-vlmax/init-repeat-sequence-15.c       | 151 ++++
.../vls-vlmax/init-repeat-sequence-6.c        |  27 +
.../vls-vlmax/init-repeat-sequence-7.c        |  25 +
.../vls-vlmax/init-repeat-sequence-8.c        |  27 +
.../vls-vlmax/init-repeat-sequence-9.c        |  25 +
.../rvv/autovec/vls/init-repeat-sequence-0.c  | 654 ++++++++++++++++++
.../rvv/autovec/vls/init-repeat-sequence-1.c  | 654 ++++++++++++++++++
.../rvv/autovec/vls/init-repeat-sequence-2.c  | 337 +++++++++
.../rvv/autovec/vls/init-repeat-sequence-3.c  | 337 +++++++++
.../rvv/autovec/vls/init-repeat-sequence-4.c  | 178 +++++
.../rvv/autovec/vls/init-repeat-sequence-5.c  | 178 +++++
.../rvv/autovec/vls/init-repeat-sequence-6.c  |  55 ++
.../rvv/autovec/vls/init-repeat-sequence-7.c  | 337 +++++++++
.../rvv/autovec/vls/init-repeat-sequence-8.c  | 178 +++++
20 files changed, 3682 insertions(+), 12 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
 
diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc
index 265a298f447..ffb645eccf3 100644
--- a/gcc/config/riscv/riscv-v.cc
+++ b/gcc/config/riscv/riscv-v.cc
@@ -416,7 +416,7 @@ public:
   bool repeating_sequence_use_merge_profitable_p ();
   bool combine_sequence_use_slideup_profitable_p ();
   bool combine_sequence_use_merge_profitable_p ();
-  rtx get_merge_scalar_mask (unsigned int) const;
+  rtx get_merge_scalar_mask (unsigned int, machine_mode) const;
   bool single_step_npatterns_p () const;
   bool npatterns_all_equal_p () const;
@@ -592,7 +592,8 @@ rvv_builder::get_merged_repeating_sequence ()
    To merge "b", the mask should be 0101....
*/
rtx
-rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
+rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern,
+	    machine_mode inner_mode) const
{
   unsigned HOST_WIDE_INT mask = 0;
   unsigned HOST_WIDE_INT base_mask = (1ULL << index_in_pattern);
@@ -611,7 +612,7 @@ rvv_builder::get_merge_scalar_mask (unsigned int index_in_pattern) const
   for (int i = 0; i < limit; i++)
     mask |= base_mask << (i * npatterns ());
-  return gen_int_mode (mask, inner_int_mode ());
+  return gen_int_mode (mask, inner_mode);
}
/* Return true if the variable-length vector is single step.
@@ -919,17 +920,45 @@ emit_vlmax_decompress_insn (rtx target, rtx op0, rtx op1, rtx mask)
/* Emit merge instruction.  */
static machine_mode
-get_repeating_sequence_dup_machine_mode (const rvv_builder &builder)
+get_repeating_sequence_dup_machine_mode (const rvv_builder &builder,
+	machine_mode mask_bit_mode)
{
-  poly_uint64 dup_nunits = GET_MODE_NUNITS (builder.mode ());
+  unsigned mask_precision = GET_MODE_PRECISION (mask_bit_mode).to_constant ();
+  unsigned mask_scalar_size = mask_precision > builder.inner_bits_size ()
+    ? builder.inner_bits_size () : mask_precision;
-  if (known_ge (GET_MODE_SIZE (builder.mode ()), BYTES_PER_RISCV_VECTOR))
+  scalar_mode inner_mode;
+  unsigned minimal_bits_size;
+
+  switch (mask_scalar_size)
     {
-      dup_nunits = exact_div (BYTES_PER_RISCV_VECTOR,
-	builder.inner_bytes_size ());
+      case 8:
+	inner_mode = QImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 8; /* AKA RVVMF8.  */
+	break;
+      case 16:
+	inner_mode = HImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 4; /* AKA RVVMF4.  */
+	break;
+      case 32:
+	inner_mode = SImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 2; /* AKA RVVMF2.  */
+	break;
+      case 64:
+	inner_mode = DImode;
+	minimal_bits_size = TARGET_MIN_VLEN / 1; /* AKA RVVM1.  */
+	break;
+      default:
+	gcc_unreachable ();
+	break;
     }
-  return get_vector_mode (builder.inner_int_mode (), dup_nunits).require ();
+  gcc_assert (mask_precision % mask_scalar_size == 0);
+
+  uint64_t dup_nunit = mask_precision > mask_scalar_size
+    ? mask_precision / mask_scalar_size : minimal_bits_size / mask_scalar_size;
+
+  return get_vector_mode (inner_mode, dup_nunit).require ();
}
/* Expand series const vector.  */
@@ -2130,9 +2159,9 @@ expand_vector_init_merge_repeating_sequence (rtx target,
      since we don't have such instruction in RVV.
      Instead, we should use INT mode (QI/HI/SI/DI) with integer move
      instruction to generate the mask data we want.  */
-  machine_mode mask_int_mode
-    = get_repeating_sequence_dup_machine_mode (builder);
   machine_mode mask_bit_mode = get_mask_mode (builder.mode ());
+  machine_mode mask_int_mode
+    = get_repeating_sequence_dup_machine_mode (builder, mask_bit_mode);
   uint64_t full_nelts = builder.full_nelts ().to_constant ();
   /* Step 1: Broadcast the first pattern.  */
@@ -2143,7 +2172,8 @@ expand_vector_init_merge_repeating_sequence (rtx target,
   for (unsigned int i = 1; i < builder.npatterns (); i++)
     {
       /* Step 2-1: Generate mask register v0 for each merge.  */
-      rtx merge_mask = builder.get_merge_scalar_mask (i);
+      rtx merge_mask
+	= builder.get_merge_scalar_mask (i, GET_MODE_INNER (mask_int_mode));
       rtx mask = gen_reg_rtx (mask_bit_mode);
       rtx dup = gen_reg_rtx (mask_int_mode);
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
new file mode 100644
index 00000000000..ccce5052dc2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx32di __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32di:
+**   vsetvli\s+[axt][0-9]+,\s*zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx32di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
new file mode 100644
index 00000000000..a62eee8a5ae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx32df __attribute__ ((vector_size (32 * 8)));
+
+/*
+** f_vnx32df:
+**   vsetvli\s+[axt][0-9]+\s*,zero,\s*e64,\s*m2,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs2r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx32df (double a, double b, double *out)
+{
+  vnx32df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx32df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
new file mode 100644
index 00000000000..92cf29985d5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
@@ -0,0 +1,279 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int8_t vnx4096qi __attribute__ ((vector_size (4096)));
+
+/*
+** f_vnx4096qi:
+**   ...
+**   vsetvli\s+[axt][0-9]+,\s*zero,\s*e16,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx4096qi (int8_t a, int8_t b, int8_t *out)
+{
+  vnx4096qi v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx4096qi *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
new file mode 100644
index 00000000000..e3ec3a106f7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
@@ -0,0 +1,57 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx512di __attribute__ ((vector_size (512 * 8)));
+
+/*
+** f_vnx512di:
+**   ...
+**   vsetivli\s+zero,\s*8,\s*e64,\s*m1,\s*ta,\s*ma
+**   vmv\.v\.x\s+v0,[atx][0-9]+
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e64,\s*m8,\s*ta,\s*ma
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx512di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx512di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx512di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
new file mode 100644
index 00000000000..23a4ea68b34
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
@@ -0,0 +1,87 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int32_t vnx1024si __attribute__ ((vector_size (1024 * 4)));
+
+/*
+** f_vnx1024si:
+**   ...
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e64,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx1024si (int32_t a, int32_t b, int32_t *out)
+{
+  vnx1024si v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx1024si *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
new file mode 100644
index 00000000000..37c08a1c328
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
@@ -0,0 +1,151 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl4096b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int16_t vnx2048hi __attribute__ ((vector_size (2048 * 2)));
+
+/*
+** f_vnx2048hi:
+**   ...
+**   vsetvli\s+[atx][0-9]+,\s*zero,\s*e32,\s*m8,\s*ta,\s*ma
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx2048hi (int16_t a, int16_t b, int16_t *out)
+{
+  vnx2048hi v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx2048hi *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
new file mode 100644
index 00000000000..4f8a78b3161
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
new file mode 100644
index 00000000000..f0d14db8fa8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m8,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs8r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
new file mode 100644
index 00000000000..fd986e6b649
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include <stdint-gcc.h>
+
+typedef int64_t vnx16di __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16di:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vmv\.v\.x\s+v[0-9]+,\s*[axt][0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vmerge\.vxm\s+v[0-9]+,\s*v[0-9]+,\s*[axt][0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16di (int64_t a, int64_t b, int64_t *out)
+{
+  vnx16di v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16di *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
new file mode 100644
index 00000000000..753221ffdbf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+typedef double vnx16df __attribute__ ((vector_size (16 * 8)));
+
+/*
+** f_vnx16df:
+**   vsetivli\s+zero,\s*16,\s*e64,\s*m1,\s*ta,\s*ma
+**   ...
+**   vfmv\.v\.f\s+v[0-9]+,\s*[af]+[0-9]+
+**   ...
+**   vmv\.s\.x\s+v0,\s*[axt][0-9]+
+**   vfmerge\.vfm\s+v[0-9]+,\s*v[0-9]+,\s*[af]+[0-9]+,\s*v0
+**   vs1r\.v\s+v[0-9]+,\s*0\([axt][0-9]+\)
+**   ret
+*/
+__attribute__ ((noipa)) void
+f_vnx16df (double a, double b, double *out)
+{
+  vnx16df v = {
+    a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b,
+  };
+  *(vnx16df *) out = v;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
new file mode 100644
index 00000000000..9bb21d7ab18
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
@@ -0,0 +1,654 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4qi, int8_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8qi, int8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16qi, int8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32qi, int8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64qi, int8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128qi, int8_t, 128, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256qi, int8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512qi, int8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024qi, int8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048qi, int8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v4096qi, int8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
new file mode 100644
index 00000000000..e5934ac382c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
@@ -0,0 +1,654 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4uqi, uint8_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8uqi, uint8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16uqi, uint8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32uqi, uint8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64uqi, uint8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128uqi, uint8_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256uqi, uint8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512uqi, uint8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024uqi, uint8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048uqi, uint8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v4096uqi, uint8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
new file mode 100644
index 00000000000..7b30e2b5c75
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4hi, int16_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8hi, int16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16hi, int16_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32hi, int16_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64hi, int16_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128hi, int16_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256hi, int16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512hi, int16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024hi, int16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048hi, int16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
new file mode 100644
index 00000000000..d3efc9aca3d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4uhi, uint16_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8uhi, uint16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16uhi, uint16_t, 16, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32uhi, uint16_t, 32, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1)
+DEF_REPEAT (v64uhi, uint16_t, 64, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v128uhi, uint16_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256uhi, uint16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512uhi, uint16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024uhi, uint16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1)
+DEF_REPEAT (
+  v2048uhi, uint16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
new file mode 100644
index 00000000000..a9d1e87965e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4si, int32_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8si, int32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16si, int32_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32si, int32_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64si, int32_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128si, int32_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256si, int32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512si, int32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024si, int32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
new file mode 100644
index 00000000000..b528c8036b9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4usi, uint32_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8usi, uint32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16usi, uint32_t, 16, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32usi, uint32_t, 32, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1)
+DEF_REPEAT (v64usi, uint32_t, 64, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v128usi, uint32_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256usi, uint32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512usi, uint32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024usi, uint32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
new file mode 100644
index 00000000000..5c36d86e0cf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
@@ -0,0 +1,55 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v16di, int64_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32di, int64_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64di, int64_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128di, int64_t, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256di, int64_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x\s+v0,\s*[atx][0-9]+} 2 } } */
+/* { dg-final { scan-assembler-times {vmv\.s\.x\s+v0,\s*[atx][0-9]+} 3 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
new file mode 100644
index 00000000000..1087b60ab29
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4hf, _Float16, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8hf, _Float16, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16hf, _Float16, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32hf, _Float16, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64hf, _Float16, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128hf, _Float16, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256hf, _Float16, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512hf, _Float16, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024hf, _Float16, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+DEF_REPEAT (
+  v2048hf, _Float16, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
new file mode 100644
index 00000000000..f0d40dfa700
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4sf, float, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8sf, float, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16sf, float, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32sf, float, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1)
+DEF_REPEAT (v64sf, float, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1)
+DEF_REPEAT (v128sf, float, 128, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+	    var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+	    var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v256sf, float, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v512sf, float, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+  v1024sf, float, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+  var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+  var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vmv1r\.v\s+v0,\s*v[0-9]+} } } */
--
2.34.1
 
 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-11-15  7:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-15  3:48 [PATCH v1] RISC-V: Refine the mask generation for vec_init case 2 pan2.li
2023-11-15  5:04 ` juzhe.zhong
2023-11-15  7:12 ` [PATCH v2] " pan2.li
2023-11-15  7:23   ` juzhe.zhong
2023-11-15  7:30     ` Li, Pan2
2023-11-15  7:37       ` juzhe.zhong
2023-11-15  7:42         ` Li, Pan2

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).