| /* PR tree-optimization/111150 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O1 -fdump-tree-forwprop1 -Wno-psabi" } */ |
| |
| typedef int v4si __attribute((__vector_size__(4 * sizeof(int)))); |
| |
| /* Before the patch, VEC_COND_EXPR was generated for each statement in the |
| function. This resulted in 3 VEC_COND_EXPR. */ |
| v4si f1_(v4si a, v4si b, v4si c, v4si d) { |
| v4si X = a == b; |
| v4si Y = c == d; |
| return (X != Y); |
| } |
| |
| v4si f2_(v4si a, v4si b, v4si c, v4si d) { |
| v4si X = a == b; |
| v4si Y = c == d; |
| return (X == Y); |
| } |
| |
| /* For each testcase, should produce only one VEC_COND_EXPR for X^Y. */ |
| /* { dg-final { scan-tree-dump-times " VEC_COND_EXPR " 2 "forwprop1" } } */ |
| /* { dg-final { scan-tree-dump-times " == " 4 "forwprop1" } } */ |