1 /* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */
2 /* { dg-require-effective-target vect_int } */
3 /* { dg-require-effective-target vect_shift } */
9 extern void abort(void);
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
};
29 for (unsigned i
= 0; i
< N
; i
++)
31 ret
|= vect_false
[i
].a
;
36 for (unsigned i
= 0; i
< N
; i
++)
38 ret
|= vect_true
[i
].a
;
46 /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
47 /* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */