Text · 1071 bytes Raw Blame History
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