/* { dg-do compile { target { aarch64*-*-* } } } */
/* { dg-options "-O2" } */

#include "arm_neon.h"

int32x2_t
foo (int a)
{
  int32x2_t arg1;
  int32x2_t arg2;
  int32x2_t result;
  arg1 = vcreate_s32 (UINT64_C (0x0000ffffffffffff));
  arg2 = vcreate_s32 (UINT64_C (0x16497fffffffffff));
  /* The correct line number is in the preamble to the error message,
     not in the final line (which is all that dg-error inspects). Hence,
     we have to tell dg-error to ignore the line number.  */
  result = vrsra_n_s32 (arg1, arg2, a);
  /* { dg-error "must be a constant immediate" "" { target *-*-* } 0 } */
  return result;
}
