/* { dg-do compile } */
/* { dg-options "-march=rv64gcv_zvl512b -mabi=lp64d -O3 -mrvv-vector-bits=zvl -fno-schedule-insns -fno-schedule-insns2" } */
/* { dg-final { check-function-bodies "**" "" } } */
+/* { dg-skip-if "" { *-*-* } { "-mrvv-max-lmul=dynamic" } } */
#define MAX 10
struct s { struct s *n; } *p;
CMP_VI (ne_unsigned_int, unsigned int, n, !=, 15)
CMP_VI (ne_unsigned_long, unsigned long, n, !=, 15)
-/* { dg-final { scan-assembler-times {vmsne\.vi} 16 } } */
+/* { dg-final { scan-assembler-times {vmsne\.vi} 16 { target {
+ any-opts "-mrvv-max-lmul=m1"
+ } } } } */
+
+/* { dg-final { scan-assembler-times {vmsne\.vi} 10 { target {
+ any-opts "-mrvv-max-lmul=m2"
+ } } } } */
+
+/* { dg-final { scan-assembler-times {vmsne\.vi} 8 { target {
+ any-opts "-mrvv-max-lmul=m4" "-mrvv-max-lmul=m8" "-mrvv-max-lmul=dynamic"
+ } } } } */
+
/* { dg-final { scan-assembler-not {vmsne\.vv} } } */
CMP_VI (ne_unsigned_int, unsigned int, n, !=, -16)
CMP_VI (ne_unsigned_long, unsigned long, n, !=, -16)
-/* { dg-final { scan-assembler-times {vmsne\.vi} 13 } } */
+/* { dg-final { scan-assembler-times {vmsne\.vi} 13 { target {
+ any-opts "-mrvv-max-lmul=m1"
+ } } } } */
+
+/* { dg-final { scan-assembler-times {vmsne\.vi} 7 { target {
+ any-opts "-mrvv-max-lmul=m2"
+ } } } } */
+
+/* { dg-final { scan-assembler-times {vmsne\.vi} 5 { target {
+ any-opts "-mrvv-max-lmul=m4" "-mrvv-max-lmul=m8" "-mrvv-max-lmul=dynamic"
+ } } } } */
+
/* { dg-final { scan-assembler-not {vmsne\.vv} } } */
CMP_VI (eq_unsigned_int, unsigned int, n, ==, 15)
CMP_VI (eq_unsigned_long, unsigned long, n, ==, 15)
-/* { dg-final { scan-assembler-times {vmseq\.vi} 16 } } */
+/* { dg-final { scan-assembler-times {vmseq\.vi} 16 { target {
+ any-opts "-mrvv-max-lmul=m1"
+ } } } } */
+
+/* { dg-final { scan-assembler-times {vmseq\.vi} 10 { target {
+ any-opts "-mrvv-max-lmul=m2"
+ } } } } */
+
+/* { dg-final { scan-assembler-times {vmseq\.vi} 8 { target {
+ any-opts "-mrvv-max-lmul=m4" "-mrvv-max-lmul=m8" "-mrvv-max-lmul=dynamic"
+ } } } } */
+
/* { dg-final { scan-assembler-not {vmseq\.vv} } } */
CMP_VI (eq_unsigned_int, unsigned int, n, ==, -16)
CMP_VI (eq_unsigned_long, unsigned long, n, ==, -16)
-/* { dg-final { scan-assembler-times {vmseq\.vi} 13 } } */
+/* { dg-final { scan-assembler-times {vmseq\.vi} 13 { target {
+ any-opts "-mrvv-max-lmul=m1"
+ } } } } */
+
+/* { dg-final { scan-assembler-times {vmseq\.vi} 13 { target {
+ any-opts "-mrvv-max-lmul=m2"
+ } } } } */
+
+/* { dg-final { scan-assembler-times {vmseq\.vi} 13 { target {
+ any-opts "-mrvv-max-lmul=m4" "-mrvv-max-lmul=m8" "-mrvv-max-lmul=dynamic"
+ } } } } */
+
/* { dg-final { scan-assembler-not {vmseq\.vv} } } */
CMP_VI (le_unsigned_int, unsigned int, n, <=, 15)
CMP_VI (le_unsigned_long, unsigned long, n, <=, 15)
-/* { dg-final { scan-assembler-times {vmsle\.vi} 7 } } */
-/* { dg-final { scan-assembler-times {vmsleu\.vi} 9 } } */
+/* { dg-final { scan-assembler-times {vmsle\.vi} 7 { target {
+ any-opts "-mrvv-max-lmul=m1"
+ } } } } */
+/* { dg-final { scan-assembler-times {vmsleu\.vi} 9 { target {
+ any-opts "-mrvv-max-lmul=m1"
+ } } } } */
+
+/* { dg-final { scan-assembler-times {vmsle\.vi} 4 { target {
+ any-opts "-mrvv-max-lmul=m2"
+ } } } } */
+/* { dg-final { scan-assembler-times {vmsleu\.vi} 6 { target {
+ any-opts "-mrvv-max-lmul=m2"
+ } } } } */
+
+/* { dg-final { scan-assembler-times {vmsle\.vi} 3 { target {
+ any-opts "-mrvv-max-lmul=m4" "-mrvv-max-lmul=m8" "-mrvv-max-lmul=dynamic"
+ } } } } */
+/* { dg-final { scan-assembler-times {vmsleu\.vi} 5 { target {
+ any-opts "-mrvv-max-lmul=m4" "-mrvv-max-lmul=m4" "-mrvv-max-lmul=dynamic"
+ } } } } */
+
/* { dg-final { scan-assembler-not {vmsle\.vv} } } */
/* { dg-final { scan-assembler-not {vmsleu\.vv} } } */