! { dg-do run }
! { dg-options "-O -fdump-tree-original" }
! Test that expressions in subroutine calls are also optimized
program main
  implicit none
  character(len=4) :: c
  c = 'abcd'
  call yes(c == c)
  call no(c /= c)
end program main

subroutine yes(a)
  implicit none
  logical, intent(in) :: a
  if (.not. a) call abort
end subroutine yes

subroutine no(a)
  implicit none
  logical, intent(in) :: a
  if (a) call abort
end subroutine no

! { dg-final { scan-tree-dump-times "gfortran_compare_string" 0 "original" } }
! { dg-final { cleanup-tree-dump "original" } }

