/* { dg-do compile } */ | |
/* { dg-options "-O2 -fdump-tree-dce4" } */ | |
void foo1 (int *restrict a, int *restrict b, int *restrict c, | |
int *restrict d, int *restrict res, int n) | |
{ | |
for (int i = 0; i < n; i++) | |
res[i] = a[i] ? b[i] : (c[i] ? b[i] : d[i]); | |
} | |
/* After tail-merging (run during PRE) we should end up merging the two | |
blocks dereferencing 'b', ending up with two iftmp assigns and the | |
iftmp PHI def. */ | |
/* { dg-final { scan-tree-dump-times "iftmp\[^\r\n\]* = " 3 "dce4" } } */ |