brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 7d0eb83 Raw
60 lines · plain
1! Test that dead code elimination after lowering does not merge2! blocks. This test was added because block merging on the3! code below created a block with a fir.shape<> block argument4! which FIR codegen is not intended to support.5! RUN: bbc -emit-hlfir -o - %s | FileCheck %s6 7subroutine test(res, selector, x1, x2, x3, x4, x5, x6, x7, x8)8  integer :: res9  character(*) :: selector10  real(8), dimension(7) :: x1, x2, x3, x4, x5, x6, x7, x811  interface12   integer function foo(x)13     real(8) :: x(:)14   end function15  end interface16  select case (selector)17    case ("01")18      res = foo(x1)19      res = foo(x1)20    case ("02")21      res = foo(x2)22      res = foo(x2)23    case ("03")24      res = foo(x3)25      res = foo(x3)26    case ("04")27      res = foo(x4)28      res = foo(x4)29    case ("05")30      res = foo(x5)31      res = foo(x5)32    case ("06")33      res = foo(x6)34      res = foo(x6)35    case ("07")36      res = foo(x7)37      res = foo(x7)38    case ("08")39      res = foo(x8)40      res = foo(x8)41    case default42   end select43end subroutine44! CHECK: fir.call @_QPfoo45! CHECK: fir.call @_QPfoo46! CHECK: fir.call @_QPfoo47! CHECK: fir.call @_QPfoo48! CHECK: fir.call @_QPfoo49! CHECK: fir.call @_QPfoo50! CHECK: fir.call @_QPfoo51! CHECK: fir.call @_QPfoo52! CHECK: fir.call @_QPfoo53! CHECK: fir.call @_QPfoo54! CHECK: fir.call @_QPfoo55! CHECK: fir.call @_QPfoo56! CHECK: fir.call @_QPfoo57! CHECK: fir.call @_QPfoo58! CHECK: fir.call @_QPfoo59! CHECK: fir.call @_QPfoo60