slovo/tests/array-direct-scalars-value-flow.checked.lower
2026-05-22 08:38:43 +02:00

106 lines
2.9 KiB
Plaintext

program main
fn make_i32_values(base: i32) -> (array i32 3)
array : (array i32 3)
var base : i32
binary + : i32
var base : i32
int 1 : i32
binary + : i32
var base : i32
int 2 : i32
fn make_i64_values(base: i64) -> (array i64 3)
array : (array i64 3)
var base : i64
binary + : i64
var base : i64
i64 1 : i64
binary + : i64
var base : i64
i64 2 : i64
fn make_f64_values(base: f64) -> (array f64 3)
array : (array f64 3)
var base : f64
binary + : f64
var base : f64
float 1 : f64
binary + : f64
var base : f64
float 2 : f64
fn make_flags(first: bool) -> (array bool 3)
array : (array bool 3)
var first : bool
bool false : bool
bool true : bool
fn i32_at(values: (array i32 3), i: i32) -> i32
index : i32
var values : (array i32 3)
var i : i32
fn i64_at(values: (array i64 3), i: i32) -> i64
index : i64
var values : (array i64 3)
var i : i32
fn f64_at(values: (array f64 3), i: i32) -> f64
index : f64
var values : (array f64 3)
var i : i32
fn bool_at(values: (array bool 3), i: i32) -> bool
index : bool
var values : (array bool 3)
var i : i32
fn i64_local_array_flow(i: i32) -> i64
local let values : unit
call make_i64_values : (array i64 3)
i64 40 : i64
call i64_at : i64
var values : (array i64 3)
var i : i32
fn f64_parameter_local_copy(values: (array f64 3), i: i32) -> f64
local let copy : unit
var values : (array f64 3)
index : f64
var copy : (array f64 3)
var i : i32
fn echo_flags(values: (array bool 3)) -> (array bool 3)
var values : (array bool 3)
fn bool_call_return_index(i: i32) -> bool
index : bool
call make_flags : (array bool 3)
bool true : bool
var i : i32
fn main() -> i32
if : i32
call bool_call_return_index : bool
int 0 : i32
int 0 : i32
int 1 : i32
test "i32 array parameter value flow"
binary = : bool
call i32_at : i32
call make_i32_values : (array i32 3)
int 7 : i32
int 0 : i32
int 7 : i32
test "i64 array local call value flow"
binary = : bool
call i64_local_array_flow : i64
int 2 : i32
i64 42 : i64
test "f64 array parameter local copy"
binary = : bool
call f64_parameter_local_copy : f64
call make_f64_values : (array f64 3)
float 4 : f64
int 1 : i32
float 5 : f64
test "bool array dynamic index"
call bool_at : bool
call make_flags : (array bool 3)
bool true : bool
int 2 : i32
test "bool array return call value flow"
index : bool
call echo_flags : (array bool 3)
call make_flags : (array bool 3)
bool false : bool
int 2 : i32