(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arm/
mve/
pr108443-run.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2" } */
       3  /* { dg-require-effective-target arm_mve_hw } */
       4  /* { dg-add-options arm_v8_1m_mve } */
       5  #include "pr108443.c"
       6  
       7  extern void abort (void);
       8  
       9  void __attribute__ ((noipa)) partial_write_cst (uint32_t *, uint32x4_t);
      10  
      11  void
      12  __attribute__ ((noipa)) partial_write (uint32_t *a, uint32x4_t v, unsigned short p)
      13  {
      14    vstrwq_p_u32 (a, v, p);
      15  }
      16  
      17  int main (void)
      18  {
      19    unsigned short p = 0x00CC;
      20    uint32_t a[] = {0, 0, 0, 0};
      21    uint32_t b[] = {0, 0, 0, 0};
      22    uint32x4_t v = vdupq_n_u32 (0xFFFFFFFFU);
      23    partial_write_cst (&a[0], v);
      24    partial_write (&b[0], v, p);
      25    if (__builtin_memcmp (&a[0], &b[0], 16) != 0)
      26      abort ();
      27  
      28    return 0;
      29  }