PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / avx512vl-vpsrad-3.c
blob2e3f92b58b7361a5983091ff32e489f3cc694573
1 /* { dg-do assemble { target { avx512vl && { ! ia32 } } } } */
2 /* { dg-options "-O2 -mavx512vl" } */
4 #include <x86intrin.h>
6 void
7 f1 (__m128i x, int y)
9 register __m128i a __asm ("xmm16");
10 a = x;
11 asm volatile ("" : "+v" (a));
12 a = _mm_srai_epi32 (a, y);
13 asm volatile ("" : "+v" (a));
16 void
17 f2 (__m128i x)
19 register __m128i a __asm ("xmm16");
20 a = x;
21 asm volatile ("" : "+v" (a));
22 a = _mm_srai_epi32 (a, 16);
23 asm volatile ("" : "+v" (a));
26 void
27 f3 (__m256i x, int y)
29 register __m256i a __asm ("xmm16");
30 a = x;
31 asm volatile ("" : "+v" (a));
32 a = _mm256_srai_epi32 (a, y);
33 asm volatile ("" : "+v" (a));
36 void
37 f4 (__m256i x)
39 register __m256i a __asm ("xmm16");
40 a = x;
41 asm volatile ("" : "+v" (a));
42 a = _mm256_srai_epi32 (a, 16);
43 asm volatile ("" : "+v" (a));