| 1 | suite "ir/lowering" |
| 2 | |
| 3 | case "arithmetic_lowering" |
| 4 | source "../../../test_programs/arithmetic.f90" |
| 5 | armfortas => ir, optir |
| 6 | expect ir contains "func @arithmetic() -> void" |
| 7 | expect ir contains "iadd" |
| 8 | expect ir contains "call @afs_write_int" |
| 9 | expect optir contains "iadd" |
| 10 | end |
| 11 | |
| 12 | case "function_call_by_reference" |
| 13 | source "../../fixtures/runtime/function_call.f90" |
| 14 | armfortas => ir, optir |
| 15 | expect ir contains "func @square(%0: ptr<i32>) -> i32" |
| 16 | expect ir contains "call @square(%0)" |
| 17 | expect ir contains "imul" |
| 18 | expect optir contains "call @square(%0)" |
| 19 | end |
| 20 | |
| 21 | case "select_type_lowering" |
| 22 | source "../../../test_programs/select_type.f90" |
| 23 | armfortas => ir, optir |
| 24 | expect ir contains "type_is_match_" |
| 25 | expect ir contains "select_type_end_" |
| 26 | expect ir contains "call @afs_write_real" |
| 27 | expect optir contains "type_is_match_" |
| 28 | end |
| 29 | |
| 30 | case "where_construct_lowering" |
| 31 | source "../../fixtures/runtime/where_construct.f90" |
| 32 | armfortas => ir, optir |
| 33 | expect ir contains "where_check_" |
| 34 | expect ir contains "call @afs_allocate_1d" |
| 35 | expect ir contains "call @afs_deallocate_array" |
| 36 | expect optir contains "where_check_" |
| 37 | end |