re PR target/39152 (Revision 144098 breaks 416.gamess in SPEC CPU 2006)
gcc/ 2009-02-13 H.J. Lu <hongjiu.lu@intel.com> PR target/39152 * config/i386/i386.md: Restrict the new peephole2 to move between the general purpose registers. gcc/testsuite/ 2009-02-13 H.J. Lu <hongjiu.lu@intel.com> PR target/39152 * gfortran.dg/gomp/pr39152.f90: New. From-SVN: r144158
This commit is contained in:
parent
53f648e2a4
commit
72f4e3a7f7
|
@ -1,3 +1,9 @@
|
|||
2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR target/39152
|
||||
* config/i386/i386.md: Restrict the new peephole2 to move
|
||||
between the general purpose registers.
|
||||
|
||||
2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR target/39162
|
||||
|
|
|
@ -20736,7 +20736,9 @@
|
|||
[(match_dup 0)
|
||||
(match_operand:SI 2 "memory_operand" "")]))
|
||||
(clobber (reg:CC FLAGS_REG))])]
|
||||
"operands[0] != operands[1]"
|
||||
"operands[0] != operands[1]
|
||||
&& GENERAL_REGNO_P (REGNO (operands[0]))
|
||||
&& GENERAL_REGNO_P (REGNO (operands[1]))"
|
||||
[(set (match_dup 0) (match_dup 4))
|
||||
(parallel [(set (match_dup 0)
|
||||
(match_op_dup 3 [(match_dup 0) (match_dup 1)]))
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR target/39152
|
||||
* gfortran.dg/gomp/pr39152.f90: New.
|
||||
|
||||
2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR target/39162
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
! { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
|
||||
! { dg-options "-march=i486 -fopenmp -mavx -O3 -funroll-all-loops" }
|
||||
|
||||
call test_workshare
|
||||
|
||||
contains
|
||||
subroutine test_workshare
|
||||
integer :: i, j, k, l, m
|
||||
double precision, dimension (64) :: d, e
|
||||
integer, dimension (10) :: f, g
|
||||
integer, dimension (16, 16) :: a, b, c
|
||||
integer, dimension (16) :: n
|
||||
!$omp parallel num_threads (4) private (j, k)
|
||||
!$omp barrier
|
||||
!$omp workshare
|
||||
where (g .lt. 0)
|
||||
f = 100
|
||||
elsewhere
|
||||
where (g .gt. 6) f = f + sum (g)
|
||||
f = 300 + f
|
||||
end where
|
||||
!$omp end workshare nowait
|
||||
!$omp workshare
|
||||
forall (j = 1:16, k = 1:16) b (k, j) = a (j, k)
|
||||
forall (j = 2:16, n (17 - j) / 4 * 4 .ne. n (17 - j))
|
||||
n (j) = n (j - 1) * n (j)
|
||||
end forall
|
||||
!$omp endworkshare
|
||||
!$omp end parallel
|
||||
|
||||
end subroutine test_workshare
|
||||
end
|
Loading…
Reference in New Issue