blob: e3102beed1a8977213391fd8d5dd9b31aab8e61d [file] [log] [blame]
/* PR target/85323 */
/* { dg-do compile } */
/* { dg-options "-O2 -mavx512vl -mavx512bw -fdump-tree-optimized" } */
/* { dg-final { scan-tree-dump-times "return x_\[0-9]*.D.;" 3 "optimized" } } */
#include <x86intrin.h>
__m128i
foo (__m128i x)
{
x = _mm_sllv_epi64 (x, _mm_set1_epi32 (0));
x = _mm_sllv_epi32 (x, _mm_set1_epi32 (0));
x = _mm_sllv_epi16 (x, _mm_set1_epi32 (0));
x = _mm_srlv_epi64 (x, _mm_set1_epi32 (0));
x = _mm_srlv_epi32 (x, _mm_set1_epi32 (0));
x = _mm_srlv_epi16 (x, _mm_set1_epi32 (0));
x = _mm_srav_epi64 (x, _mm_set1_epi32 (0));
x = _mm_srav_epi32 (x, _mm_set1_epi32 (0));
x = _mm_srav_epi16 (x, _mm_set1_epi32 (0));
return x;
}
__m256i
bar (__m256i x)
{
x = _mm256_sllv_epi64 (x, _mm256_set1_epi32 (0));
x = _mm256_sllv_epi32 (x, _mm256_set1_epi32 (0));
x = _mm256_sllv_epi16 (x, _mm256_set1_epi32 (0));
x = _mm256_srlv_epi64 (x, _mm256_set1_epi32 (0));
x = _mm256_srlv_epi32 (x, _mm256_set1_epi32 (0));
x = _mm256_srlv_epi16 (x, _mm256_set1_epi32 (0));
x = _mm256_srav_epi64 (x, _mm256_set1_epi32 (0));
x = _mm256_srav_epi32 (x, _mm256_set1_epi32 (0));
x = _mm256_srav_epi16 (x, _mm256_set1_epi32 (0));
return x;
}
__m512i
baz (__m512i x)
{
x = _mm512_sllv_epi64 (x, _mm512_setzero_epi32 ());
x = _mm512_sllv_epi32 (x, _mm512_setzero_epi32 ());
x = _mm512_sllv_epi16 (x, _mm512_setzero_epi32 ());
x = _mm512_srlv_epi64 (x, _mm512_setzero_epi32 ());
x = _mm512_srlv_epi32 (x, _mm512_setzero_epi32 ());
x = _mm512_srlv_epi16 (x, _mm512_setzero_epi32 ());
x = _mm512_srav_epi64 (x, _mm512_setzero_epi32 ());
x = _mm512_srav_epi32 (x, _mm512_setzero_epi32 ());
x = _mm512_srav_epi16 (x, _mm512_setzero_epi32 ());
return x;
}