1 /* { dg-do assemble } */
2 /* { dg-options "-O3 --save-temps --param=vect-epilogues-nomask=0" } */
3
4 #pragma GCC target "+nosve"
5
6 #define TYPE1 int
7 #define TYPE2 long long
8 #define SHIFT 32
9
10 void foo (TYPE2 * restrict a, TYPE1 * restrict d, int n)
11 {
12 for( int i = 0; i < n; i++ )
13 d[i] = a[i] >> SHIFT;
14 }
15
16 /* { dg-final { scan-assembler-times {\tuzp2\t} 1 } } */
17 /* { dg-final { scan-assembler-not {\tshrn\t} } } */
18 /* { dg-final { scan-assembler-not {\tshrn2\t} } } */