arm: fix typo in dg-require-effective-target [PR118089]
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / vect-bitfield-read-3.c
blobf2a43c39f50ee4f4a517e49f252610b39509e10e
1 /* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */
2 /* { dg-require-effective-target vect_int } */
3 /* { dg-require-effective-target vect_shift } */
5 #include <stdarg.h>
6 #include "tree-vect.h"
7 #include <stdbool.h>
9 extern void abort(void);
11 typedef struct {
12 int c;
13 int b;
14 bool a : 1;
15 int d : 31;
16 } struct_t;
18 #define N 16
19 #define ELT_F { 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x7FFFFFFF }
20 #define ELT_T { 0xFFFFFFFF, 0xFFFFFFFF, 1, 0x7FFFFFFF }
22 struct_t vect_false[N] = { ELT_F, ELT_F, ELT_F, ELT_F, ELT_F, ELT_F, ELT_F, ELT_F,
23 ELT_F, ELT_F, ELT_F, ELT_F, ELT_F, ELT_F, ELT_F, ELT_F };
24 struct_t vect_true[N] = { ELT_F, ELT_F, ELT_T, ELT_F, ELT_F, ELT_F, ELT_F, ELT_F,
25 ELT_F, ELT_F, ELT_T, ELT_F, ELT_F, ELT_F, ELT_F, ELT_F };
26 int main (void)
28 unsigned ret = 0;
29 for (unsigned i = 0; i < N; i++)
31 ret |= vect_false[i].a;
33 if (ret)
34 abort ();
36 for (unsigned i = 0; i < N; i++)
38 ret |= vect_true[i].a;
40 if (!ret)
41 abort ();
43 return 0;
46 /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
47 /* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */