diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/vect/pr56541.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/pr56541.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/pr56541.c b/gcc/testsuite/gcc.dg/vect/pr56541.c new file mode 100644 index 00000000000..16b8d7cb75b --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr56541.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target vect_int } */ +/* { dg-require-effective-target vect_float } */ +/* { dg-require-effective-target vect_condition } */ + +float a,b,c,d; + +float z[1024]; int ok[1024]; +const float rBig = 150.; + +void foo() +{ + int i; + + for (i=0; i!=1024; ++i) + { + float rR = a*z[i]; + float rL = b*z[i]; + float rMin = (rR<rL) ? rR : rL; + float rMax = (rR<rL) ? rL : rR; + rMin = (rMax>0) ? rMin : rBig; + rMin = (rMin>0) ? rMin : rMax; + ok[i] = rMin-c<rMax+d; + } +} + +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ |