/* { dg-do run } */
/* { dg-options "-O3 -mpower8-vector -Wno-psabi" } */
/* { dg-require-effective-target p8vector_hw } */

#ifndef CHECK_H
#define CHECK_H "sse2-check.h"
#endif

#include CHECK_H

#ifndef TEST
#define TEST sse2_test_psllw_1
#endif

#include <emmintrin.h>

#define TEST_FUNC(id, N) \
  static __m128i \
  __attribute__((noinline, unused)) \
  test##id (__m128i s1) \
  { \
    return _mm_slli_epi16 (s1, N);  \
  }

TEST_FUNC(0, 0)
TEST_FUNC(15, 15)
TEST_FUNC(16, 16)
TEST_FUNC(neg1, -1)
TEST_FUNC(neg16, -16)
TEST_FUNC(neg32, -32)
TEST_FUNC(neg64, -64)
TEST_FUNC(neg128, -128)

#define TEST_CODE(id, N) \
  { \
    short e[8] = {0}; \
    union128i_w u, s; \
    int i; \
    s.x = _mm_set_epi16 (1, 2, 3, 4, 5, 6, 0x7000, 0x9000); \
    u.x = test##id (s.x); \
    if (N >= 0 && N < 16) \
      for (i = 0; i < 8; i++) \
        e[i] = s.a[i] << (N * (N >= 0)); \
    if (check_union128i_w (u, e)) \
      abort (); \
  }

static void
TEST (void)
{
  TEST_CODE(0, 0);
  TEST_CODE(15, 15);
  TEST_CODE(16, 16);
  TEST_CODE(neg1, -1);
  TEST_CODE(neg16, -16);
  TEST_CODE(neg32, -32);
  TEST_CODE(neg64, -64);
  TEST_CODE(neg128, -128);
}
