value-range: Fix handling of POLY_INT_CST anti-ranges [PR96146]
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve / acle / general / dupq_10.c
blobf8f797c9747c620f73df4174db70b767fb8b5163
1 /* { dg-do run { target aarch64_sve_hw } } */
2 /* { dg-options "-O2" } */
4 #include <arm_sve.h>
6 svbool_t __attribute__ ((noipa))
7 make_b8 (int8_t x0, int8_t x1, int8_t x2, int8_t x3,
8 int8_t x4, int8_t x5, int8_t x6, int8_t x7,
9 int8_t x8, int8_t x9, int8_t xa, int8_t xb,
10 int8_t xc, int8_t xd, int8_t xe, int8_t xf)
12 return svdupq_b8 (x0, x1, x2, x3, x4, x5, x6, x7,
13 x8, x9, xa, xb, xc, xd, xe, xf);
16 svbool_t __attribute__ ((noipa))
17 make_b16 (int16_t x0, int16_t x1, int16_t x2, int16_t x3,
18 int16_t x4, int16_t x5, int16_t x6, int16_t x7)
20 return svdupq_b16 (x0, x1, x2, x3, x4, x5, x6, x7);
23 svbool_t __attribute__ ((noipa))
24 make_b32 (int32_t x0, int32_t x1, int32_t x2, int32_t x3)
26 return svdupq_b32 (x0, x1, x2, x3);
29 svbool_t __attribute__ ((noipa))
30 make_b64 (int64_t x0, int64_t x1)
32 return svdupq_b64 (x0, x1);
35 int8_t a[16] = { 1, 0, 0, -3, 0, 9, 11, 0, 0, 1, 0, -4, 9, 9, 0, 0 };
37 int
38 main ()
40 svbool_t pg = svptrue_pat_b8 (SV_VL16);
41 svbool_t b8 = make_b8 (a[0], a[1], a[2], a[3],
42 a[4], a[5], a[6], a[7],
43 a[8], a[9], a[10], a[11],
44 a[12], a[13], a[14], a[15]);
45 if (svptest_any (svptrue_b8 (),
46 sveor_z (pg, b8, svcmpne (pg, svld1 (pg, a), 0))))
47 __builtin_abort ();
49 svbool_t b16 = make_b16 (a[0], a[1], a[2], a[3],
50 a[4], a[5], a[6], a[7]);
51 if (svptest_any (svptrue_b16 (),
52 sveor_z (pg, b16, svcmpne (pg, svld1sb_u16 (pg, a), 0))))
53 __builtin_abort ();
55 svbool_t b32 = make_b32 (a[0], a[1], a[2], a[3]);
56 if (svptest_any (svptrue_b32 (),
57 sveor_z (pg, b32, svcmpne (pg, svld1sb_u32 (pg, a), 0))))
58 __builtin_abort ();
60 svbool_t b64 = make_b64 (a[0], a[1]);
61 if (svptest_any (svptrue_b64 (),
62 sveor_z (pg, b64, svcmpne (pg, svld1sb_u64 (pg, a), 0))))
63 __builtin_abort ();
65 return 0;