aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/inline_matmul_19.f90
blob: bf83238786607178fcfbe050d99c8d969a2aa71b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  ! { dg-do  run }
  ! { dg-options "-ffrontend-optimize" }
  ! PR 81974 - this used to cause an ICE.
  
  implicit none
      COMPLEX(kind=kind(0d0)), DIMENSION(3, 3) :: R
      REAL(kind=kind(0d0)), DIMENSION(3, 3)    :: M,a,b
      complex(8), dimension(3,3) :: res, c
      integer :: i, j, k
      c = 0
      call random_number(m)
      call random_number(a)
      call random_number(b)
      r = cmplx(a, b, 8)
      do k=1,3
         do j=1,3
            do i=1,3
               c(k,j) = c(k,j) + conjg(r(i,k)) * m(i,j)
            end do
         end do
      end do
      res = MATMUL(TRANSPOSE(CONJG(R)), M)
      if (any(abs(res-c) >= 1e-6)) STOP 1
      c = 0
      do k=1,3
         do j=1,3
            do i=1,3
               c(i,k) = c(i,k) + m(i,j) * conjg(r(k,j))
            end do
         end do
      end do
      res = matmul(m, transpose(conjg(r)))
      if (any(abs(res-c) >= 1e-6)) STOP 2
      END