diff options
author | Tamar Christina <tamar.christina@arm.com> | 2024-02-07 10:57:05 +0000 |
---|---|---|
committer | Tamar Christina <tamar.christina@arm.com> | 2024-02-07 10:57:05 +0000 |
commit | 194d0956ef5992d4e453bde3eb5772dc077f610c (patch) | |
tree | f935cb87665e8f34fd2f124b2421e3b993178316 | |
parent | 29998cc8a21b3a52f706275923166cd1f95d0555 (diff) | |
download | gcc-194d0956ef5992d4e453bde3eb5772dc077f610c.zip gcc-194d0956ef5992d4e453bde3eb5772dc077f610c.tar.gz gcc-194d0956ef5992d4e453bde3eb5772dc077f610c.tar.bz2 |
middle-end: add additional runtime test for [PR113467]
This just adds an additional runtime testcase for the fixed issue.
gcc/testsuite/ChangeLog:
PR tree-optimization/113467
* gcc.dg/vect/vect-early-break_110-pr113467.c: New test.
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-early-break_110-pr113467.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/vect-early-break_110-pr113467.c b/gcc/testsuite/gcc.dg/vect/vect-early-break_110-pr113467.c new file mode 100644 index 0000000..1e2c47b --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-early-break_110-pr113467.c @@ -0,0 +1,52 @@ +/* { dg-add-options vect_early_break } */ +/* { dg-require-effective-target vect_early_break } */ +/* { dg-require-effective-target vect_long_long } */ + +/* { dg-final { scan-tree-dump-not "LOOP VECTORIZED" "vect" } } */ + +#include "tree-vect.h" +#include <stdint.h> + +typedef struct gcry_mpi *gcry_mpi_t; +struct gcry_mpi { + int nlimbs; + unsigned long *d; +}; + +long gcry_mpi_add_ui_up; +void gcry_mpi_add_ui(gcry_mpi_t w, gcry_mpi_t u, unsigned v) { + gcry_mpi_add_ui_up = *w->d; + if (u) { + uint64_t *res_ptr = w->d, *s1_ptr = w->d; + int s1_size = u->nlimbs; + unsigned s2_limb = v, x = *s1_ptr++; + s2_limb += x; + *res_ptr++ = s2_limb; + if (x) + while (--s1_size) { + x = *s1_ptr++ + 1; + *res_ptr++ = x; + if (x) { + break; + } + } + } +} + +int main() +{ + check_vect (); + + static struct gcry_mpi sv; + static uint64_t vals[] = {4294967288ULL, 191ULL, 4160749568ULL, 4294963263ULL, + 127ULL, 4294950912ULL, 255ULL, 4294901760ULL, + 534781951ULL, 33546240ULL, 4294967292ULL, 4294960127ULL, + 4292872191ULL, 4294967295ULL, 4294443007ULL, 3ULL}; + gcry_mpi_t v = &sv; + v->nlimbs = 16; + v->d = vals; + + gcry_mpi_add_ui(v, v, 8); + if (v->d[1] != 192) + __builtin_abort(); +} |