1 /* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */
2 /* { dg-require-effective-target vect_shift } */
3 /* { dg-require-effective-target vect_long_long } */
8 extern void abort(void);
17 #define ELT0 {0x7FFFFFFFUL, 3, 0}
18 #define ELT1 {0x7FFFFFFFUL, 3, 1}
19 #define ELT2 {0x7FFFFFFFUL, 3, 2}
20 #define ELT3 {0x7FFFFFFFUL, 3, 3}
23 = { ELT0
, ELT1
, ELT2
, ELT3
, ELT0
, ELT1
, ELT2
, ELT3
,
24 ELT0
, ELT1
, ELT2
, ELT3
, ELT0
, ELT1
, ELT2
, ELT3
,
25 ELT0
, ELT1
, ELT2
, ELT3
, ELT0
, ELT1
, ELT2
, ELT3
,
26 ELT0
, ELT1
, ELT2
, ELT3
, ELT0
, ELT1
, ELT2
, ELT3
};
28 int __attribute__ ((noipa
))
29 f(struct s
*ptr
, unsigned n
) {
31 for (int i
= 0; i
< n
; ++i
)
40 if (f(&A
[0], N
) != RES
)
46 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
48 /* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */