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