1! { dg-do  run }
2! { dg-options "-ffrontend-optimize -fdump-tree-optimized" }
3! PR 66041 - this used to ICE with an incomplete fix for the PR.
4program main
5  implicit none
6  type :: t
7    real :: c
8  end type t
9  type(t), dimension(1,-2:0) :: a1
10  real, dimension(3,2) :: b1
11  real, dimension(2) :: c1
12  real, dimension(1,2) :: c2
13
14  data a1%c /17., -23., 29./
15  data b1 / 2.,  -3.,  5.,  -7., 11., -13./
16
17  c1 = matmul(a1(1,:)%c, b1)
18  if (any (c1-[248., -749.] /= 0.)) STOP 1
19
20  c2 = matmul(a1%c, b1)
21  if (any (c2-reshape([248., -749.],shape(c2)) /= 0.)) STOP 2
22end program main
23
24! { dg-final { scan-tree-dump-times "_gfortran_matmul" 0 "optimized" } }
25