2 /* { dg-options "-O2 -fno-inline -fpredictive-commoning -fdump-tree-pcom-details-blocks" } */
4 int arr
[105] = {2, 3, 5, 7, 11};
5 int x
[105] = {2, 3, 5, 7, 11};
6 int result0
[10] = {2, 3, 5, 7, 11};
7 int result1
[10] = {0, 0, 0, 0, 0, 0, -1, -2, -2};
9 extern void abort (void);
11 int __attribute__((noinline
)) foo (int * __restrict__ a
, int * __restrict__ b
, int len
, int flag
)
14 for (i
= 0; i
< len
; i
++)
25 void check (int *a
, int *res
, int len
, int sum
, int val
)
32 for (i
= 0; i
< len
; i
++)
41 sum
= foo (arr
, x
, 0, 0);
42 check (arr
, result0
, 10, sum
, 0);
44 sum
= foo (arr
, x
, 6, 0);
45 check (arr
, result1
, 10, sum
, 11);
49 /* { dg-final { scan-tree-dump "Store-stores chain" "pcom"} } */
50 /* { dg-final { scan-tree-dump "Store-loads chain" "pcom"} } */
51 /* { dg-final { scan-tree-dump-not "Invalid sum" "pcom" } } */