]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/vect-movi.c
testsuite: auto-wipe dump files
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / aarch64 / vect-movi.c
1 /* { dg-do run } */
2 /* { dg-options "-O3 --save-temps -fno-inline" } */
3
4 extern void abort (void);
5
6 #define N 16
7
8 static void
9 movi_msl8 (int *__restrict a)
10 {
11 int i;
12
13 /* { dg-final { scan-assembler "movi\\tv\[0-9\]+\.\[42\]s, 0xab, msl 8" } } */
14 for (i = 0; i < N; i++)
15 a[i] = 0xabff;
16 }
17
18 static void
19 movi_msl16 (int *__restrict a)
20 {
21 int i;
22
23 /* { dg-final { scan-assembler "movi\\tv\[0-9\]+\.\[42\]s, 0xab, msl 16" } } */
24 for (i = 0; i < N; i++)
25 a[i] = 0xabffff;
26 }
27
28 static void
29 mvni_msl8 (int *__restrict a)
30 {
31 int i;
32
33 /* { dg-final { scan-assembler "mvni\\tv\[0-9\]+\.\[42\]s, 0xab, msl 8" } } */
34 for (i = 0; i < N; i++)
35 a[i] = 0xffff5400;
36 }
37
38 static void
39 mvni_msl16 (int *__restrict a)
40 {
41 int i;
42
43 /* { dg-final { scan-assembler "mvni\\tv\[0-9\]+\.\[42\]s, 0xab, msl 16" } } */
44 for (i = 0; i < N; i++)
45 a[i] = 0xff540000;
46 }
47
48 int
49 main (void)
50 {
51 int a[N] = { 0 };
52 int i;
53
54 #define CHECK_ARRAY(a, val) \
55 for (i = 0; i < N; i++) \
56 if (a[i] != val) \
57 abort ();
58
59 movi_msl8 (a);
60 CHECK_ARRAY (a, 0xabff);
61
62 movi_msl16 (a);
63 CHECK_ARRAY (a, 0xabffff);
64
65 mvni_msl8 (a);
66 CHECK_ARRAY (a, 0xffff5400);
67
68 mvni_msl16 (a);
69 CHECK_ARRAY (a, 0xff540000);
70
71 return 0;
72 }
73