diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/riscv')
-rw-r--r-- | gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118154-1.c | 23 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118154-2.c | 31 |
2 files changed, 54 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118154-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118154-1.c new file mode 100644 index 0000000..5538656 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118154-1.c @@ -0,0 +1,23 @@ +/* { dg-do run } */ +/* { dg-require-effective-target riscv_v_ok } */ +/* { dg-add-options riscv_v } */ +/* { dg-additional-options "-std=gnu99 -Wno-pedantic" } */ + +long a; +char b; +char c[22][484]; +int main() { + for (int e = 4; e < 33; e++) { + for (int f = 0; f < 3; f++) + for (int g = 0; g < 18; g++) { + c[f][g * 22] = 1; + a = ({ a > 1 ? a : 1; }); + } + for (int i = 0; i < 33; i++) + for (int h = 0; h < 6; h++) + for (int j = 0; j < 17; j++) + b = ({ b > 17 ? b : 17; }); + } + if (c[1][44] != 1) + __builtin_abort (); +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118154-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118154-2.c new file mode 100644 index 0000000..4172f29 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118154-2.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ +/* { dg-require-effective-target riscv_v_ok } */ +/* { dg-add-options riscv_v } */ +/* { dg-additional-options "-std=gnu99 -Wno-pedantic" } */ + +long a; +signed char b; +long long d; +signed char c[22][22][484]; +void m(long long *l, int n) { *l ^= n + (*l >> 2); } +int main() { + signed char l = 35; + for (signed char f = 4; f; f++) { + for (signed g = 0; g < 022; g += 4) + for (signed char h = 0; h < 022; h++) { + c[9][g][h * 22 + h] = l; + a = ({ a > 4095 ? a : 4095; }); + } + for (int i = 0; i < 22; i += 3) + for (signed char j = 1; j; j++) + for (signed char k = 0; k < 022; k++) + b = ({ b > 19 ? b : 19; }); + } + for (long f = 0; f < 22; ++f) + for (long g = 0; g < 22; ++g) + for (long h = 0; h < 22; ++h) + for (long i = 0; i < 22; ++i) + m(&d, c[f][g][h * 2 + i]); + if (d != 38) + __builtin_abort (); +} |