/* PR target/51968 */
/* { dg-do compile } */
/* { dg-require-effective-target arm_softfp_ok } */
/* { dg-require-effective-target arm_neon_ok } */
/* { dg-options "-O2 -march=armv7-a -mfloat-abi=softfp -mfpu=neon" } */
#include <arm_neon.h>

struct T { int8x8x2_t val; };
int y;

void
foo (int8x8_t z, int8x8_t x, int16x8_t b, int8x8_t n)
{
  if (y)
    {
      struct T m;
      m.val = vuzp_s8 (z, x);
    }
  for (;;)
    {
      int8x16_t g;
      int8x8_t h, j, k;
      struct T m;
      j = vqmovn_s16 (b);
      g = vcombine_s8 (j, h);
      k = vget_low_s8 (g);
      m.val = vuzp_s8 (k, n);
    }
}
