| /* { dg-do run { target aarch64_sve_hw } } */ |
| /* { dg-options "-O3 --param vect-partial-vector-usage=1" } */ |
| |
| #define N 0x1100 |
| |
| #include "reduc_12.c" |
| |
| int |
| main (void) |
| { |
| unsigned short x[N]; |
| for (int i = 0; i < N; ++i) |
| x[i] = (i + 1) * (i + 2); |
| |
| if (add_loop (x, 0, 10) != 10 |
| || add_loop (x, 11, 42) != 614 |
| || add_loop (x, 0x100, 84) != 22100 |
| || add_loop (x, 0xfff, 20) != 20500 |
| || max_loop (x, 0, 10) != 10 |
| || max_loop (x, 11, 131) != 132 |
| || max_loop (x, 11, 133) != 133 |
| || max_loop (x, 0x100, 65279) != 65280 |
| || max_loop (x, 0x100, 65281) != 65281 |
| || max_loop (x, 0xfff, 65503) != 65504 |
| || max_loop (x, 0xfff, 65505) != 65505 |
| || or_loop (x, 0, 0x71) != 0x71 |
| || or_loop (x, 11, 0) != 0xfe |
| || or_loop (x, 11, 0xb3c) != 0xbfe |
| || or_loop (x, 0x80, 0) != 0x7ffe |
| || or_loop (x, 0x80, 1) != 0x7fff |
| || or_loop (x, 0xb4, 0) != 0x7ffe |
| || or_loop (x, 0xb4, 1) != 0x7fff |
| || or_loop (x, 0xb5, 0) != 0xfffe |
| || or_loop (x, 0xb5, 1) != 0xffff |
| || eor_loop (x, 0, 0x3e) != 0x3e |
| || eor_loop (x, 11, 0) != 0xe8 |
| || eor_loop (x, 11, 0x1ff) != 0x117 |
| || eor_loop (x, 0x100, 0) != 0xcf00 |
| || eor_loop (x, 0x100, 0xeee) != 0xc1ee |
| || eor_loop (x, 0xfff, 0) != 0xa000 |
| || eor_loop (x, 0xfff, 0x8888) != 0x2888) |
| __builtin_abort (); |
| |
| for (int i = 0; i < N; ++i) |
| x[i] = ~x[i]; |
| |
| if (min_loop (x, 0, 10000) != 10000 |
| || min_loop (x, 11, 65404) != 65403 |
| || min_loop (x, 11, 65402) != 65402 |
| || min_loop (x, 0x100, 256) != 255 |
| || min_loop (x, 0x100, 254) != 254 |
| || min_loop (x, 0xfff, 32) != 31 |
| || min_loop (x, 0xfff, 30) != 30 |
| || and_loop (x, 0, 0x1234) != 0x1234 |
| || and_loop (x, 11, 0xffff) != 0xff01 |
| || and_loop (x, 11, 0xcdef) != 0xcd01 |
| || and_loop (x, 0x80, 0xffff) != 0x8001 |
| || and_loop (x, 0x80, 0xfffe) != 0x8000 |
| || and_loop (x, 0xb4, 0xffff) != 0x8001 |
| || and_loop (x, 0xb4, 0xfffe) != 0x8000 |
| || and_loop (x, 0xb5, 0xffff) != 1 |
| || and_loop (x, 0xb5, 0xfffe) != 0) |
| __builtin_abort (); |
| |
| return 0; |
| } |