The following fixes $subject.

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2016-05-06  Richard Biener  <rguent...@suse.de>

        PR tree-optimization/70960
        * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.

        * gfortran.fortran-torture/compile/pr70960.f90: New testcase.

Index: gcc/tree-if-conv.c
===================================================================
*** gcc/tree-if-conv.c  (revision 235945)
--- gcc/tree-if-conv.c  (working copy)
*************** ifcvt_walk_pattern_tree (tree var, vec<g
*** 2462,2467 ****
--- 2462,2470 ----
    enum tree_code code;
    gimple *def_stmt;
  
+   if (TREE_CODE (var) != SSA_NAME)
+     return;
+ 
    def_stmt = SSA_NAME_DEF_STMT (var);
    if (gimple_code (def_stmt) != GIMPLE_ASSIGN)
      return;
Index: gcc/testsuite/gfortran.fortran-torture/compile/pr70960.f90
===================================================================
*** gcc/testsuite/gfortran.fortran-torture/compile/pr70960.f90  (revision 0)
--- gcc/testsuite/gfortran.fortran-torture/compile/pr70960.f90  (working copy)
***************
*** 0 ****
--- 1,10 ----
+   SUBROUTINE calbrec(a,ai,error)
+     REAL(KIND=8)                            :: a(3,3), ai(3,3)
+     DO i = 1, 3
+        il = 1
+        IF (i==1) il = 2
+        DO j = 1, 3
+           ai(j,i) = (-1.0_8)**(i+j)*det*(a(il,jl)*a(iu,ju)-a(il,ju)*a(iu,jl))
+        END DO
+     END DO
+   END SUBROUTINE calbrec

Reply via email to