Skip to content

Instantly share code, notes, and snippets.

@MaikKlein
Created November 20, 2018 08:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MaikKlein/f55507a6348747d4b8d7343942df2383 to your computer and use it in GitHub Desktop.
Save MaikKlein/f55507a6348747d4b8d7343942df2383 to your computer and use it in GitHub Desktop.
; SPIR-V
; Version: 1.0
; Generator: Google rspirv; 0
; Bound: 1822
; Schema: 0
OpCapability Shader
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %28 "fragment" %43 %47 %53
OpExecutionMode %28 OriginUpperLeft
OpName %f32 "f32"
OpName %rlsl_math__vector__Vec2_f32_ "rlsl_math::vector::Vec2<f32>"
OpMemberName %rlsl_math__entry__Input 0 "data"
OpName %rlsl_math__entry__Input "rlsl_math::entry::Input"
OpName %rlsl_math__entry__Input "rlsl_math::entry::Input<rlsl_math::constants::N0, rlsl_math::vector::Vec2<f32>>"
OpName %_mut_rlsl_math__entry__Input_rlsl_math__constants__N0__rlsl_math__vector__Vec2_f32__ "*mut rlsl_math::entry::Input<rlsl_math::constants::N0, rlsl_math::vector::Vec2<f32>>"
OpName %rlsl_math__vector__Vec4_f32_ "rlsl_math::vector::Vec4<f32>"
OpMemberName %rlsl_math__entry__Output 0 "data"
OpName %rlsl_math__entry__Output "rlsl_math::entry::Output"
OpName %rlsl_math__entry__Output "rlsl_math::entry::Output<rlsl_math::constants::N0, rlsl_math::vector::Vec4<f32>>"
OpName %_mut_rlsl_math__entry__Output_rlsl_math__constants__N0__rlsl_math__vector__Vec4_f32__ "*mut rlsl_math::entry::Output<rlsl_math::constants::N0, rlsl_math::vector::Vec4<f32>>"
OpMemberName %rlsl_math__entry__Uniform 0 "data"
OpName %rlsl_math__entry__Uniform "rlsl_math::entry::Uniform"
OpName %rlsl_math__entry__Uniform "rlsl_math::entry::Uniform<rlsl_math::constants::N0, rlsl_math::constants::N0, f32>"
OpName %_mut_rlsl_math__entry__Uniform_rlsl_math__constants__N0__rlsl_math__constants__N0__f32_ "*mut rlsl_math::entry::Uniform<rlsl_math::constants::N0, rlsl_math::constants::N0, f32>"
OpMemberName %rlsl_math__entry__Fragment 0 "frag_coord"
OpName %rlsl_math__entry__Fragment "rlsl_math::entry::Fragment"
OpName %rlsl_math__entry__Fragment "rlsl_math::entry::Fragment"
OpName %_mut_rlsl_math__entry__Fragment "*mut rlsl_math::entry::Fragment"
OpName %__ "()"
OpName %fn__ "fn()"
OpName %_mut_rlsl_math__vector__Vec4_f32_ "*mut rlsl_math::vector::Vec4<f32>"
OpName %_mut_rlsl_math__vector__Vec2_f32_ "*mut rlsl_math::vector::Vec2<f32>"
OpName %_mut_f32 "*mut f32"
OpName %std__marker__PhantomData "std::marker::PhantomData"
OpName %std__marker__PhantomData "std::marker::PhantomData<rlsl_math::constants::N0>"
OpName %_mut_std__marker__PhantomData_rlsl_math__constants__N0_ "*mut std::marker::PhantomData<rlsl_math::constants::N0>"
OpName %bb0 "bb0"
OpName %_mut_rlsl_math__entry__Input_rlsl_math__constants__N0__rlsl_math__vector__Vec2_f32___0 "*mut rlsl_math::entry::Input<rlsl_math::constants::N0, rlsl_math::vector::Vec2<f32>>"
OpName %u32 "u32"
OpName %_mut_rlsl_math__vector__Vec2_f32__0 "*mut rlsl_math::vector::Vec2<f32>"
OpName %_mut_rlsl_math__entry__Uniform_rlsl_math__constants__N0__rlsl_math__constants__N0__f32__0 "*mut rlsl_math::entry::Uniform<rlsl_math::constants::N0, rlsl_math::constants::N0, f32>"
OpName %_mut_f32_0 "*mut f32"
OpName %bb1 "bb1"
OpName %_mut_rlsl_math__vector__Vec4_f32__0 "*mut rlsl_math::vector::Vec4<f32>"
OpMemberName %rlsl_math__random__Rng 0 "seed"
OpName %rlsl_math__random__Rng "rlsl_math::random::Rng"
OpName %rlsl_math__random__Rng "rlsl_math::random::Rng"
OpName %_mut_rlsl_math__random__Rng "*mut rlsl_math::random::Rng"
OpName %fn__mut_rlsl_math__random__Rng_____f32 "fn(&mut rlsl_math::random::Rng) -> f32"
OpName %rlsl_math__random__Rng__random "rlsl_math::random::Rng::random"
OpName %bb0_0 "bb0"
OpName %bb1_0 "bb1"
OpName %bb2 "bb2"
OpName %std__prelude__v1__None "std::prelude::v1::None"
OpName %rlsl_math__vector__Vec3_f32_ "rlsl_math::vector::Vec3<f32>"
OpMemberName %rlsl_math__unit__Unit 0 "inner"
OpName %rlsl_math__unit__Unit "rlsl_math::unit::Unit"
OpName %rlsl_math__unit__Unit "rlsl_math::unit::Unit<rlsl_math::vector::Vec3<f32>>"
OpMemberName %issues__ray__RayHit 0 "position"
OpMemberName %issues__ray__RayHit 1 "normal"
OpMemberName %issues__ray__RayHit 2 "color"
OpName %issues__ray__RayHit "issues::ray::RayHit"
OpName %issues__ray__RayHit "issues::ray::RayHit"
OpMemberName %std__prelude__v1__Some 0 "0"
OpName %std__prelude__v1__Some "std::prelude::v1::Some"
OpMemberName %std__option__Option 0 "0"
OpName %std__option__Option "std::option::Option"
OpName %std__option__Option "std::option::Option<issues::ray::RayHit>"
OpMemberName %issues__ray__Ray 0 "origin"
OpMemberName %issues__ray__Ray 1 "dir"
OpName %issues__ray__Ray "issues::ray::Ray"
OpName %issues__ray__Ray "issues::ray::Ray"
OpMemberName %issues__ray__Sphere 0 "origin"
OpMemberName %issues__ray__Sphere 1 "radius"
OpMemberName %issues__ray__Sphere 2 "color"
OpName %issues__ray__Sphere "issues::ray::Sphere"
OpName %issues__ray__Sphere "issues::ray::Sphere"
OpName %_issues__ray__Sphere__2_ "[issues::ray::Sphere; 2]"
OpName %_mut__issues__ray__Sphere__2_ "*mut [issues::ray::Sphere; 2]"
OpName %fn_issues__ray__Ray____issues__ray__Sphere__2______std__option__Option_issues__ray__RayHit_ "fn(issues::ray::Ray, &[issues::ray::Sphere; 2]) -> std::option::Option<issues::ray::RayHit>"
OpName %issues__ray__intersect_spheres "issues::ray::intersect_spheres"
OpName %_mut_issues__ray__Ray "*mut issues::ray::Ray"
OpName %_mut_std__option__Option_issues__ray__RayHit_ "*mut std::option::Option<issues::ray::RayHit>"
OpName %_mut_usize "*mut usize"
OpName %_mut_bool "*mut bool"
OpName %_mut_issues__ray__Sphere "*mut issues::ray::Sphere"
OpName %i32 "i32"
OpName %_mut_isize "*mut isize"
OpName %_mut_issues__ray__RayHit "*mut issues::ray::RayHit"
OpName %_usize__bool_ "(usize, bool)"
OpName %_mut__usize__bool_ "*mut (usize, bool)"
OpName %bb0_1 "bb0"
OpName %_mut_u32 "*mut u32"
OpName %bb1_1 "bb1"
OpName %bb3 "bb3"
OpName %bb4 "bb4"
OpName %bb5 "bb5"
OpName %bb6 "bb6"
OpName %bb7 "bb7"
OpName %bb10 "bb10"
OpName %bb8 "bb8"
OpName %_usize__usize_ "(usize, usize)"
OpName %bb9 "bb9"
OpName %bb11 "bb11"
OpName %bb2_0 "bb2"
OpName %fn_rlsl_math__vector__Vec3_f32___rlsl_math__vector__Vec3_f32______rlsl_math__vector__Vec3_f32_ "fn(rlsl_math::vector::Vec3<f32>, rlsl_math::vector::Vec3<f32>) -> rlsl_math::vector::Vec3<f32>"
OpName %_rlsl_math__vector__Vec3_T__as_std__ops__Add___add "<rlsl_math::vector::Vec3<T> as std::ops::Add>::add"
OpName %_mut_rlsl_math__vector__Vec3_f32_ "*mut rlsl_math::vector::Vec3<f32>"
OpName %bb0_2 "bb0"
OpName %bb1_2 "bb1"
OpName %bb2_1 "bb2"
OpName %bb3_0 "bb3"
OpName %_rlsl_math__vector__Vec3_T__as_std__ops__Sub___sub "<rlsl_math::vector::Vec3<T> as std::ops::Sub>::sub"
OpName %bb0_3 "bb0"
OpName %bb1_3 "bb1"
OpName %bb2_2 "bb2"
OpName %bb3_1 "bb3"
OpName %fn_rlsl_math__vector__Vec3_f32___rlsl_math__vector__Vec3_f32______f32 "fn(rlsl_math::vector::Vec3<f32>, rlsl_math::vector::Vec3<f32>) -> f32"
OpName %_rlsl_math__vector__Vec3_T__as_rlsl_math__vector__Vector___dot "<rlsl_math::vector::Vec3<T> as rlsl_math::vector::Vector>::dot"
OpName %bb0_4 "bb0"
OpName %bb1_4 "bb1"
OpName %bb2_3 "bb2"
OpName %bb3_2 "bb3"
OpName %bb4_0 "bb4"
OpName %bb5_0 "bb5"
OpName %_closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___ "[closure@DefId(5/1:12 ~ issues[4451]::ray[0]::color[0]::{{closure}}[0])]"
OpName %fn__closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0_____issues__ray__RayHit_____rlsl_math__vector__Vec3_f32_ "fn([closure@DefId(5/1:12 ~ issues[4451]::ray[0]::color[0]::{{closure}}[0])], issues::ray::RayHit) -> rlsl_math::vector::Vec3<f32>"
OpName %issues__ray__color____closure__ "issues::ray::color::{{closure}}"
OpName %_mut__closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___ "*mut [closure@DefId(5/1:12 ~ issues[4451]::ray[0]::color[0]::{{closure}}[0])]"
OpName %bb0_5 "bb0"
OpName %fn_f32__f32_____f32 "fn(f32, f32) -> f32"
OpName %_f32_as_std__ops__Mul___mul "<f32 as std::ops::Mul>::mul"
OpName %bb0_6 "bb0"
OpName %fn_rlsl_math__vector__Vec2_f32___f32_____rlsl_math__vector__Vec4_f32_ "fn(rlsl_math::vector::Vec2<f32>, f32) -> rlsl_math::vector::Vec4<f32>"
OpName %issues__ray__render "issues::ray::render"
OpName %_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ "*mut rlsl_math::unit::Unit<rlsl_math::vector::Vec3<f32>>"
OpName %std__prelude__v1__None_0 "std::prelude::v1::None"
OpMemberName %std__prelude__v1__Some_0 0 "0"
OpName %std__prelude__v1__Some_0 "std::prelude::v1::Some"
OpMemberName %std__option__Option_0 0 "0"
OpName %std__option__Option_0 "std::option::Option"
OpName %std__option__Option_0 "std::option::Option<rlsl_math::vector::Vec3<f32>>"
OpName %_mut_std__option__Option_rlsl_math__vector__Vec3_f32__ "*mut std::option::Option<rlsl_math::vector::Vec3<f32>>"
OpName %_closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__ "[closure@DefId(5/1:13 ~ issues[4451]::ray[0]::render[0]::{{closure}}[0]) 0:rlsl_math::vector::Vec2<f32>]"
OpName %_mut__closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__ "*mut [closure@DefId(5/1:13 ~ issues[4451]::ray[0]::render[0]::{{closure}}[0]) 0:rlsl_math::vector::Vec2<f32>]"
OpName %bb0_7 "bb0"
OpName %bb1_5 "bb1"
OpName %bb2_4 "bb2"
OpName %bb3_3 "bb3"
OpName %bb4_1 "bb4"
OpName %bb7_0 "bb7"
OpName %bb5_1 "bb5"
OpName %bb6_0 "bb6"
OpName %fn_issues__ray__Sphere__issues__ray__Ray_____std__option__Option_issues__ray__RayHit_ "fn(issues::ray::Sphere, issues::ray::Ray) -> std::option::Option<issues::ray::RayHit>"
OpName %issues__ray__Sphere__intersect "issues::ray::Sphere::intersect"
OpMemberName %std__prelude__v1__Ok 0 "0"
OpName %std__prelude__v1__Ok "std::prelude::v1::Ok"
OpName %std__option__NoneError "std::option::NoneError"
OpName %std__option__NoneError "std::option::NoneError"
OpMemberName %std__prelude__v1__Err 0 "0"
OpName %std__prelude__v1__Err "std::prelude::v1::Err"
OpMemberName %std__result__Result 0 "0"
OpMemberName %std__result__Result 1 "0"
OpName %std__result__Result "std::result::Result"
OpName %std__result__Result "std::result::Result<rlsl_math::vector::Vec2<f32>, std::option::NoneError>"
OpName %_mut_std__result__Result_rlsl_math__vector__Vec2_f32___std__option__NoneError_ "*mut std::result::Result<rlsl_math::vector::Vec2<f32>, std::option::NoneError>"
OpName %std__prelude__v1__None_1 "std::prelude::v1::None"
OpMemberName %std__prelude__v1__Some_1 0 "0"
OpName %std__prelude__v1__Some_1 "std::prelude::v1::Some"
OpMemberName %std__option__Option_1 0 "0"
OpName %std__option__Option_1 "std::option::Option"
OpName %std__option__Option_1 "std::option::Option<rlsl_math::vector::Vec2<f32>>"
OpName %_mut_std__option__Option_rlsl_math__vector__Vec2_f32__ "*mut std::option::Option<rlsl_math::vector::Vec2<f32>>"
OpName %_mut_std__option__NoneError "*mut std::option::NoneError"
OpName %_closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0___ "[closure@DefId(4/1:122 ~ rlsl_math[8627]::vector[0]::{{impl}}[39]::min[0]::{{closure}}[0])]"
OpName %_mut__closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0___ "*mut [closure@DefId(4/1:122 ~ rlsl_math[8627]::vector[0]::{{impl}}[39]::min[0]::{{closure}}[0])]"
OpName %bb0_8 "bb0"
OpName %bb1_6 "bb1"
OpName %bb12 "bb12"
OpName %bb13 "bb13"
OpName %bb2_5 "bb2"
OpName %bb14 "bb14"
OpName %bb3_4 "bb3"
OpName %bb5_2 "bb5"
OpName %bb7_1 "bb7"
OpName %bb4_2 "bb4"
OpName %bb15 "bb15"
OpName %bb8_0 "bb8"
OpName %bb17 "bb17"
OpName %bb9_0 "bb9"
OpName %bb10_0 "bb10"
OpName %bb11_0 "bb11"
OpName %bb16 "bb16"
OpName %bb18 "bb18"
OpName %bb19 "bb19"
OpName %bb6_1 "bb6"
OpName %_f32_as_std__ops__Div___div "<f32 as std::ops::Div>::div"
OpName %bb0_9 "bb0"
OpName %fn_issues__ray__Ray__f32_____rlsl_math__vector__Vec3_f32_ "fn(issues::ray::Ray, f32) -> rlsl_math::vector::Vec3<f32>"
OpName %issues__ray__Ray__position "issues::ray::Ray::position"
OpName %bb0_10 "bb0"
OpName %bb1_7 "bb1"
OpName %bb2_6 "bb2"
OpName %fn___issues__ray__Sphere__2______usize "fn(&[issues::ray::Sphere; 2]) -> usize"
OpName %__T_____as_rlsl_math__Array_T____length "<[T; _] as rlsl_math::Array<T>>::length"
OpName %bb0_11 "bb0"
OpName %fn_rlsl_math__vector__Vec3_f32______f32 "fn(rlsl_math::vector::Vec3<f32>) -> f32"
OpName %rlsl_math__vector__Vector__length "rlsl_math::vector::Vector::length"
OpName %bb0_12 "bb0"
OpName %bb1_8 "bb1"
OpName %bb2_7 "bb2"
OpName %fn_rlsl_math__vector__Vec3_f32______rlsl_math__vector__Vec3_f32_ "fn(rlsl_math::vector::Vec3<f32>) -> rlsl_math::vector::Vec3<f32>"
OpName %_rlsl_math__vector__Vec3_T__as_rlsl_math__vector__Vector___normalize "<rlsl_math::vector::Vec3<T> as rlsl_math::vector::Vector>::normalize"
OpName %bb0_13 "bb0"
OpName %bb2_8 "bb2"
OpName %bb1_9 "bb1"
OpName %fn_rlsl_math__vector__Vec3_f32___f32_____rlsl_math__vector__Vec3_f32_ "fn(rlsl_math::vector::Vec3<f32>, f32) -> rlsl_math::vector::Vec3<f32>"
OpName %_rlsl_math__vector__Vec3_T__as_std__ops__Div_T____div "<rlsl_math::vector::Vec3<T> as std::ops::Div<T>>::div"
OpName %bb0_14 "bb0"
OpName %bb1_10 "bb1"
OpName %bb2_9 "bb2"
OpName %bb3_5 "bb3"
OpName %_rlsl_math__vector__Vec3_T__as_std__ops__Mul_T____mul "<rlsl_math::vector::Vec3<T> as std::ops::Mul<T>>::mul"
OpName %bb0_15 "bb0"
OpName %bb1_11 "bb1"
OpName %bb2_10 "bb2"
OpName %bb3_6 "bb3"
OpName %fn_rlsl_math__vector__Vec2_f32___f32___closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0________f32 "fn(rlsl_math::vector::Vec2<f32>, f32, [closure@DefId(4/1:122 ~ rlsl_math[8627]::vector[0]::{{impl}}[39]::min[0]::{{closure}}[0])]) -> f32"
OpName %_rlsl_math__vector__Vec2_T____fold "<rlsl_math::vector::Vec2<T>>::fold"
OpName %_f32__f32_ "(f32, f32)"
OpName %_mut__f32__f32_ "*mut (f32, f32)"
OpName %bb0_16 "bb0"
OpName %bb3_7 "bb3"
OpName %bb4_3 "bb4"
OpName %bb5_3 "bb5"
OpName %fn__closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32_______rlsl_math__vector__Vec3_f32_ "fn([closure@DefId(5/1:13 ~ issues[4451]::ray[0]::render[0]::{{closure}}[0]) 0:rlsl_math::vector::Vec2<f32>]) -> rlsl_math::vector::Vec3<f32>"
OpName %issues__ray__render____closure__ "issues::ray::render::{{closure}}"
OpName %bb0_17 "bb0"
OpName %bb1_12 "bb1"
OpName %fn_rlsl_math__vector__Vec3_f32___rlsl_math__vector__Vec3_f32___f32_____rlsl_math__vector__Vec3_f32_ "fn(rlsl_math::vector::Vec3<f32>, rlsl_math::vector::Vec3<f32>, f32) -> rlsl_math::vector::Vec3<f32>"
OpName %_rlsl_math__vector__Vec3_T____lerp "<rlsl_math::vector::Vec3<T>>::lerp"
OpName %bb0_18 "bb0"
OpName %bb1_13 "bb1"
OpName %bb2_11 "bb2"
OpName %bb3_8 "bb3"
OpName %bb4_4 "bb4"
OpName %bb5_4 "bb5"
OpName %bb6_2 "bb6"
OpName %bb7_2 "bb7"
OpName %bb8_1 "bb8"
OpName %bb9_1 "bb9"
OpName %bb10_1 "bb10"
OpName %bb11_1 "bb11"
OpName %fn_rlsl_math__vector__Vec2_f32___f32_____rlsl_math__vector__Vec2_f32_ "fn(rlsl_math::vector::Vec2<f32>, f32) -> rlsl_math::vector::Vec2<f32>"
OpName %_rlsl_math__vector__Vec2_T__as_std__ops__Sub_T____sub "<rlsl_math::vector::Vec2<T> as std::ops::Sub<T>>::sub"
OpName %bb0_19 "bb0"
OpName %bb1_14 "bb1"
OpName %bb2_12 "bb2"
OpName %fn_f32_____f32 "fn(f32) -> f32"
OpName %_f32_as_rlsl_math__num__Float___sqrt "<f32 as rlsl_math::num::Float>::sqrt"
OpName %bb0_20 "bb0"
OpName %bb1_15 "bb1"
OpName %fn__f32___f32_____bool "fn(&f32, &f32) -> bool"
OpName %std__cmp__impls___impl_std__cmp__PartialOrd_for_f32___lt "std::cmp::impls::<impl std::cmp::PartialOrd for f32>::lt"
OpName %bb0_21 "bb0"
OpName %_f32_as_std__ops__Sub___sub "<f32 as std::ops::Sub>::sub"
OpName %bb0_22 "bb0"
OpName %_f32_as_std__ops__Add___add "<f32 as std::ops::Add>::add"
OpName %bb0_23 "bb0"
OpName %fn______f32 "fn() -> f32"
OpName %_f32_as_rlsl_math__num__Float___one "<f32 as rlsl_math::num::Float>::one"
OpName %bb0_24 "bb0"
OpName %fn_std__option__Option_issues__ray__RayHit____closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0________std__option__Option_rlsl_math__vector__Vec3_f32__ "fn(std::option::Option<issues::ray::RayHit>, [closure@DefId(5/1:12 ~ issues[4451]::ray[0]::color[0]::{{closure}}[0])]) -> std::option::Option<rlsl_math::vector::Vec3<f32>>"
OpName %_std__option__Option_T____map "<std::option::Option<T>>::map"
OpName %_issues__ray__RayHit__ "(issues::ray::RayHit,)"
OpName %_mut__issues__ray__RayHit__ "*mut (issues::ray::RayHit,)"
OpName %bb0_25 "bb0"
OpName %bb3_9 "bb3"
OpName %bb4_5 "bb4"
OpName %bb5_5 "bb5"
OpName %bb2_13 "bb2"
OpName %bb20 "bb20"
OpName %bb6_3 "bb6"
OpName %bb12_0 "bb12"
OpName %bb19_0 "bb19"
OpName %bb7_3 "bb7"
OpName %bb16_0 "bb16"
OpName %bb14_0 "bb14"
OpName %bb15_0 "bb15"
OpName %bb17_0 "bb17"
OpName %bb18_0 "bb18"
OpName %bb13_0 "bb13"
OpName %_rlsl_math__vector__Vec2_T__as_std__ops__Mul_T____mul "<rlsl_math::vector::Vec2<T> as std::ops::Mul<T>>::mul"
OpName %bb0_26 "bb0"
OpName %bb1_16 "bb1"
OpName %bb2_14 "bb2"
OpMemberName %std__prelude__v1__Ok_0 0 "0"
OpName %std__prelude__v1__Ok_0 "std::prelude::v1::Ok"
OpMemberName %std__prelude__v1__Err_0 0 "0"
OpName %std__prelude__v1__Err_0 "std::prelude::v1::Err"
OpMemberName %std__result__Result_0 0 "0"
OpMemberName %std__result__Result_0 1 "0"
OpName %std__result__Result_0 "std::result::Result"
OpName %std__result__Result_0 "std::result::Result<rlsl_math::vector::Vec3<f32>, std::option::NoneError>"
OpName %fn_std__option__Option_rlsl_math__vector__Vec3_f32____std__option__NoneError_____std__result__Result_rlsl_math__vector__Vec3_f32___std__option__NoneError_ "fn(std::option::Option<rlsl_math::vector::Vec3<f32>>, std::option::NoneError) -> std::result::Result<rlsl_math::vector::Vec3<f32>, std::option::NoneError>"
OpName %_std__option__Option_T____ok_or "<std::option::Option<T>>::ok_or"
OpName %_mut_std__result__Result_rlsl_math__vector__Vec3_f32___std__option__NoneError_ "*mut std::result::Result<rlsl_math::vector::Vec3<f32>, std::option::NoneError>"
OpName %bb0_27 "bb0"
OpName %bb3_10 "bb3"
OpName %bb4_6 "bb4"
OpName %bb2_15 "bb2"
OpName %bb19_1 "bb19"
OpName %bb5_6 "bb5"
OpName %bb11_2 "bb11"
OpName %bb18_1 "bb18"
OpName %bb7_4 "bb7"
OpName %bb15_1 "bb15"
OpName %bb13_1 "bb13"
OpName %bb14_1 "bb14"
OpName %bb16_1 "bb16"
OpName %bb17_1 "bb17"
OpName %bb12_1 "bb12"
OpName %_rlsl_math__vector__Vec3_T__as_std__ops__Mul___mul "<rlsl_math::vector::Vec3<T> as std::ops::Mul>::mul"
OpName %bb0_28 "bb0"
OpName %bb1_17 "bb1"
OpName %bb2_16 "bb2"
OpName %bb3_11 "bb3"
OpName %fn__mut_rlsl_math__random__Rng__issues__ray__Ray____issues__ray__Sphere__2___usize_____std__option__Option_rlsl_math__vector__Vec3_f32__ "fn(&mut rlsl_math::random::Rng, issues::ray::Ray, &[issues::ray::Sphere; 2], usize) -> std::option::Option<rlsl_math::vector::Vec3<f32>>"
OpName %issues__ray__color "issues::ray::color"
OpName %bb0_29 "bb0"
OpName %bb1_18 "bb1"
OpName %bb2_17 "bb2"
OpName %bb19_2 "bb19"
OpName %bb3_12 "bb3"
OpName %bb27 "bb27"
OpName %bb5_7 "bb5"
OpName %bb6_4 "bb6"
OpName %bb4_7 "bb4"
OpName %bb7_5 "bb7"
OpName %bb8_2 "bb8"
OpName %bb9_2 "bb9"
OpName %bb10_2 "bb10"
OpName %bb11_3 "bb11"
OpName %bb12_2 "bb12"
OpName %bb21 "bb21"
OpName %bb20_0 "bb20"
OpName %bb13_2 "bb13"
OpName %bb22 "bb22"
OpName %bb14_2 "bb14"
OpName %bb15_2 "bb15"
OpName %bb16_2 "bb16"
OpName %bb26 "bb26"
OpName %bb24 "bb24"
OpName %bb23 "bb23"
OpName %bb25 "bb25"
OpName %bb17_2 "bb17"
OpName %fn___issues__ray__Sphere__2___usize_____issues__ray__Sphere "fn(&[issues::ray::Sphere; 2], usize) -> issues::ray::Sphere"
OpName %__T_____as_rlsl_math__Array_T____get "<[T; _] as rlsl_math::Array<T>>::get"
OpName %bb0_30 "bb0"
OpName %bb1_19 "bb1"
OpName %fn__mut__closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0_____f32__f32_____f32 "fn(&mut [closure@DefId(4/1:122 ~ rlsl_math[8627]::vector[0]::{{impl}}[39]::min[0]::{{closure}}[0])], f32, f32) -> f32"
OpName %_rlsl_math__vector__Vec2_T____min____closure__ "<rlsl_math::vector::Vec2<T>>::min::{{closure}}"
OpName %bb0_31 "bb0"
OpName %bb1_20 "bb1"
OpName %bb2_18 "bb2"
OpName %bb3_13 "bb3"
OpName %bb5_8 "bb5"
OpName %bb4_8 "bb4"
OpName %fn_std__option__Option_rlsl_math__vector__Vec3_f32_____closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32_______rlsl_math__vector__Vec3_f32_ "fn(std::option::Option<rlsl_math::vector::Vec3<f32>>, [closure@DefId(5/1:13 ~ issues[4451]::ray[0]::render[0]::{{closure}}[0]) 0:rlsl_math::vector::Vec2<f32>]) -> rlsl_math::vector::Vec3<f32>"
OpName %_std__option__Option_T____unwrap_or_else "<std::option::Option<T>>::unwrap_or_else"
OpName %_mut___ "*mut ()"
OpName %bb0_32 "bb0"
OpName %bb3_14 "bb3"
OpName %bb4_9 "bb4"
OpName %bb2_19 "bb2"
OpName %bb6_5 "bb6"
OpName %bb20_1 "bb20"
OpName %bb5_9 "bb5"
OpName %bb12_3 "bb12"
OpName %bb19_3 "bb19"
OpName %bb7_6 "bb7"
OpName %bb16_3 "bb16"
OpName %bb14_3 "bb14"
OpName %bb15_3 "bb15"
OpName %bb17_3 "bb17"
OpName %bb18_2 "bb18"
OpName %bb13_3 "bb13"
OpName %fn_std__option__Option_rlsl_math__vector__Vec2_f32____std__option__NoneError_____std__result__Result_rlsl_math__vector__Vec2_f32___std__option__NoneError_ "fn(std::option::Option<rlsl_math::vector::Vec2<f32>>, std::option::NoneError) -> std::result::Result<rlsl_math::vector::Vec2<f32>, std::option::NoneError>"
OpName %_std__option__Option_T____ok_or_0 "<std::option::Option<T>>::ok_or"
OpName %bb0_33 "bb0"
OpName %bb3_15 "bb3"
OpName %bb4_10 "bb4"
OpName %bb2_20 "bb2"
OpName %bb19_4 "bb19"
OpName %bb5_10 "bb5"
OpName %bb11_4 "bb11"
OpName %bb18_3 "bb18"
OpName %bb7_7 "bb7"
OpName %bb15_4 "bb15"
OpName %bb13_4 "bb13"
OpName %bb14_4 "bb14"
OpName %bb16_4 "bb16"
OpName %bb17_4 "bb17"
OpName %bb12_4 "bb12"
OpName %fn_f32__f32__f32_____std__option__Option_rlsl_math__vector__Vec2_f32__ "fn(f32, f32, f32) -> std::option::Option<rlsl_math::vector::Vec2<f32>>"
OpName %rlsl_math__polynomial__quadratic "rlsl_math::polynomial::quadratic"
OpName %bb0_34 "bb0"
OpName %bb1_21 "bb1"
OpName %bb2_21 "bb2"
OpName %bb4_11 "bb4"
OpName %bb5_11 "bb5"
OpName %bb6_6 "bb6"
OpName %bb3_16 "bb3"
OpMemberDecorate %rlsl_math__entry__Input 0 Offset 0
OpDecorate %rlsl_math__entry__Input Block
OpMemberDecorate %rlsl_math__entry__Input 0 Location 0
OpMemberDecorate %rlsl_math__entry__Output 0 Offset 0
OpDecorate %rlsl_math__entry__Output Block
OpMemberDecorate %rlsl_math__entry__Output 0 Location 0
OpMemberDecorate %rlsl_math__entry__Uniform 0 Offset 0
OpDecorate %rlsl_math__entry__Uniform Block
OpMemberDecorate %rlsl_math__entry__Fragment 0 Offset 0
OpDecorate %rlsl_math__entry__Fragment Block
OpMemberDecorate %rlsl_math__entry__Fragment 0 BuiltIn FragCoord
OpDecorate %50 DescriptorSet 0
OpDecorate %50 Binding 0
OpMemberDecorate %rlsl_math__random__Rng 0 Offset 0
OpMemberDecorate %rlsl_math__unit__Unit 0 Offset 0
OpMemberDecorate %issues__ray__RayHit 0 Offset 0
OpMemberDecorate %issues__ray__RayHit 1 Offset 16
OpMemberDecorate %issues__ray__RayHit 2 Offset 32
OpMemberDecorate %issues__ray__Ray 0 Offset 0
OpMemberDecorate %issues__ray__Ray 1 Offset 16
OpMemberDecorate %issues__ray__Sphere 0 Offset 0
OpMemberDecorate %issues__ray__Sphere 1 Offset 12
OpMemberDecorate %issues__ray__Sphere 2 Offset 16
%bool = OpTypeBool
%f32 = OpTypeFloat 32
%rlsl_math__vector__Vec2_f32_ = OpTypeVector %f32 2
%rlsl_math__entry__Input = OpTypeStruct %rlsl_math__vector__Vec2_f32_
%_mut_rlsl_math__entry__Input_rlsl_math__constants__N0__rlsl_math__vector__Vec2_f32__ = OpTypePointer Input %rlsl_math__entry__Input
%43 = OpVariable %_mut_rlsl_math__entry__Input_rlsl_math__constants__N0__rlsl_math__vector__Vec2_f32__ Input
%rlsl_math__vector__Vec4_f32_ = OpTypeVector %f32 4
%rlsl_math__entry__Output = OpTypeStruct %rlsl_math__vector__Vec4_f32_
%_mut_rlsl_math__entry__Output_rlsl_math__constants__N0__rlsl_math__vector__Vec4_f32__ = OpTypePointer Output %rlsl_math__entry__Output
%47 = OpVariable %_mut_rlsl_math__entry__Output_rlsl_math__constants__N0__rlsl_math__vector__Vec4_f32__ Output
%rlsl_math__entry__Uniform = OpTypeStruct %f32
%_mut_rlsl_math__entry__Uniform_rlsl_math__constants__N0__rlsl_math__constants__N0__f32_ = OpTypePointer Uniform %rlsl_math__entry__Uniform
%50 = OpVariable %_mut_rlsl_math__entry__Uniform_rlsl_math__constants__N0__rlsl_math__constants__N0__f32_ Uniform
%rlsl_math__entry__Fragment = OpTypeStruct %rlsl_math__vector__Vec4_f32_
%_mut_rlsl_math__entry__Fragment = OpTypePointer Input %rlsl_math__entry__Fragment
%53 = OpVariable %_mut_rlsl_math__entry__Fragment Input
%__ = OpTypeVoid
%fn__ = OpTypeFunction %__
%_mut_rlsl_math__vector__Vec4_f32_ = OpTypePointer Function %rlsl_math__vector__Vec4_f32_
%_mut_rlsl_math__vector__Vec2_f32_ = OpTypePointer Function %rlsl_math__vector__Vec2_f32_
%_mut_f32 = OpTypePointer Function %f32
%std__marker__PhantomData = OpTypeStruct
%_mut_std__marker__PhantomData_rlsl_math__constants__N0_ = OpTypePointer Function %std__marker__PhantomData
%_mut_rlsl_math__entry__Input_rlsl_math__constants__N0__rlsl_math__vector__Vec2_f32___0 = OpTypePointer Function %rlsl_math__entry__Input
%u32 = OpTypeInt 32 0
%u32_0 = OpConstant %u32 0
%_mut_rlsl_math__vector__Vec2_f32__0 = OpTypePointer Input %rlsl_math__vector__Vec2_f32_
%_mut_rlsl_math__entry__Uniform_rlsl_math__constants__N0__rlsl_math__constants__N0__f32__0 = OpTypePointer Function %rlsl_math__entry__Uniform
%_mut_f32_0 = OpTypePointer Uniform %f32
%_mut_rlsl_math__vector__Vec4_f32__0 = OpTypePointer Output %rlsl_math__vector__Vec4_f32_
%rlsl_math__random__Rng = OpTypeStruct %f32
%_mut_rlsl_math__random__Rng = OpTypePointer Function %rlsl_math__random__Rng
%fn__mut_rlsl_math__random__Rng_____f32 = OpTypeFunction %f32 %_mut_rlsl_math__random__Rng
%f32_1 = OpConstant %f32 1
%f32_4000 = OpConstant %f32 4000
%std__prelude__v1__None = OpTypeStruct
%rlsl_math__vector__Vec3_f32_ = OpTypeVector %f32 3
%rlsl_math__unit__Unit = OpTypeStruct %rlsl_math__vector__Vec3_f32_
%issues__ray__RayHit = OpTypeStruct %rlsl_math__vector__Vec3_f32_ %rlsl_math__unit__Unit %rlsl_math__vector__Vec3_f32_
%std__prelude__v1__Some = OpTypeStruct %issues__ray__RayHit
%std__option__Option = OpTypeStruct %std__prelude__v1__None %std__prelude__v1__Some %u32
%issues__ray__Ray = OpTypeStruct %rlsl_math__vector__Vec3_f32_ %rlsl_math__unit__Unit
%u32_2 = OpConstant %u32 2
%issues__ray__Sphere = OpTypeStruct %rlsl_math__vector__Vec3_f32_ %f32 %rlsl_math__vector__Vec3_f32_
%_issues__ray__Sphere__2_ = OpTypeArray %issues__ray__Sphere %u32_2
%_mut__issues__ray__Sphere__2_ = OpTypePointer Function %_issues__ray__Sphere__2_
%fn_issues__ray__Ray____issues__ray__Sphere__2______std__option__Option_issues__ray__RayHit_ = OpTypeFunction %std__option__Option %issues__ray__Ray %_mut__issues__ray__Sphere__2_
%_mut_issues__ray__Ray = OpTypePointer Function %issues__ray__Ray
%_mut_std__option__Option_issues__ray__RayHit_ = OpTypePointer Function %std__option__Option
%_mut_usize = OpTypePointer Function %u32
%_mut_bool = OpTypePointer Function %u32
%_mut_issues__ray__Sphere = OpTypePointer Function %issues__ray__Sphere
%i32 = OpTypeInt 32 1
%_mut_isize = OpTypePointer Function %i32
%_mut_issues__ray__RayHit = OpTypePointer Function %issues__ray__RayHit
%_usize__bool_ = OpTypeStruct %u32 %u32
%_mut__usize__bool_ = OpTypePointer Function %_usize__bool_
%_mut_u32 = OpTypePointer Function %u32
%u32_2_0 = OpConstant %u32 2
%u32_0_0 = OpConstant %u32 0
%u32_1 = OpConstant %u32 1
%u32_1_0 = OpConstant %u32 1
%_usize__usize_ = OpTypeStruct %u32 %u32
%fn_rlsl_math__vector__Vec3_f32___rlsl_math__vector__Vec3_f32______rlsl_math__vector__Vec3_f32_ = OpTypeFunction %rlsl_math__vector__Vec3_f32_ %rlsl_math__vector__Vec3_f32_ %rlsl_math__vector__Vec3_f32_
%_mut_rlsl_math__vector__Vec3_f32_ = OpTypePointer Function %rlsl_math__vector__Vec3_f32_
%fn_rlsl_math__vector__Vec3_f32___rlsl_math__vector__Vec3_f32______f32 = OpTypeFunction %f32 %rlsl_math__vector__Vec3_f32_ %rlsl_math__vector__Vec3_f32_
%_closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___ = OpTypeStruct
%fn__closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0_____issues__ray__RayHit_____rlsl_math__vector__Vec3_f32_ = OpTypeFunction %rlsl_math__vector__Vec3_f32_ %_closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___ %issues__ray__RayHit
%_mut__closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___ = OpTypePointer Function %_closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___
%fn_f32__f32_____f32 = OpTypeFunction %f32 %f32 %f32
%fn_rlsl_math__vector__Vec2_f32___f32_____rlsl_math__vector__Vec4_f32_ = OpTypeFunction %rlsl_math__vector__Vec4_f32_ %rlsl_math__vector__Vec2_f32_ %f32
%_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ = OpTypePointer Function %rlsl_math__unit__Unit
%std__prelude__v1__None_0 = OpTypeStruct
%std__prelude__v1__Some_0 = OpTypeStruct %rlsl_math__vector__Vec3_f32_
%std__option__Option_0 = OpTypeStruct %std__prelude__v1__None_0 %std__prelude__v1__Some_0 %u32
%_mut_std__option__Option_rlsl_math__vector__Vec3_f32__ = OpTypePointer Function %std__option__Option_0
%_closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__ = OpTypeStruct %rlsl_math__vector__Vec2_f32_
%_mut__closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__ = OpTypePointer Function %_closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__
%f32_0 = OpConstant %f32 0
%f32_2 = OpConstant %f32 2
%f32_n1 = OpConstant %f32 -1
%f32_n100_5 = OpConstant %f32 -100.5
%f32_0_400000006 = OpConstant %f32 0.400000006
%f32_100 = OpConstant %f32 100
%f32_0_200000003 = OpConstant %f32 0.200000003
%f32_0_100000001 = OpConstant %f32 0.100000001
%f32_0_5 = OpConstant %f32 0.5
%u32_5000 = OpConstant %u32 5000
%u32_3 = OpConstant %u32 3
%fn_issues__ray__Sphere__issues__ray__Ray_____std__option__Option_issues__ray__RayHit_ = OpTypeFunction %std__option__Option %issues__ray__Sphere %issues__ray__Ray
%std__prelude__v1__Ok = OpTypeStruct %rlsl_math__vector__Vec2_f32_
%std__option__NoneError = OpTypeStruct
%std__prelude__v1__Err = OpTypeStruct %std__option__NoneError
%std__result__Result = OpTypeStruct %std__prelude__v1__Ok %std__prelude__v1__Err %u32
%_mut_std__result__Result_rlsl_math__vector__Vec2_f32___std__option__NoneError_ = OpTypePointer Function %std__result__Result
%std__prelude__v1__None_1 = OpTypeStruct
%std__prelude__v1__Some_1 = OpTypeStruct %rlsl_math__vector__Vec2_f32_
%std__option__Option_1 = OpTypeStruct %std__prelude__v1__None_1 %std__prelude__v1__Some_1 %u32
%_mut_std__option__Option_rlsl_math__vector__Vec2_f32__ = OpTypePointer Function %std__option__Option_1
%_mut_std__option__NoneError = OpTypePointer Function %std__option__NoneError
%_closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0___ = OpTypeStruct
%_mut__closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0___ = OpTypePointer Function %_closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0___
%fn_issues__ray__Ray__f32_____rlsl_math__vector__Vec3_f32_ = OpTypeFunction %rlsl_math__vector__Vec3_f32_ %issues__ray__Ray %f32
%fn___issues__ray__Sphere__2______usize = OpTypeFunction %u32 %_mut__issues__ray__Sphere__2_
%fn_rlsl_math__vector__Vec3_f32______f32 = OpTypeFunction %f32 %rlsl_math__vector__Vec3_f32_
%fn_rlsl_math__vector__Vec3_f32______rlsl_math__vector__Vec3_f32_ = OpTypeFunction %rlsl_math__vector__Vec3_f32_ %rlsl_math__vector__Vec3_f32_
%fn_rlsl_math__vector__Vec3_f32___f32_____rlsl_math__vector__Vec3_f32_ = OpTypeFunction %rlsl_math__vector__Vec3_f32_ %rlsl_math__vector__Vec3_f32_ %f32
%fn_rlsl_math__vector__Vec2_f32___f32___closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0________f32 = OpTypeFunction %f32 %rlsl_math__vector__Vec2_f32_ %f32 %_closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0___
%_f32__f32_ = OpTypeStruct %f32 %f32
%_mut__f32__f32_ = OpTypePointer Function %_f32__f32_
%fn__closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32_______rlsl_math__vector__Vec3_f32_ = OpTypeFunction %rlsl_math__vector__Vec3_f32_ %_closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__
%fn_rlsl_math__vector__Vec3_f32___rlsl_math__vector__Vec3_f32___f32_____rlsl_math__vector__Vec3_f32_ = OpTypeFunction %rlsl_math__vector__Vec3_f32_ %rlsl_math__vector__Vec3_f32_ %rlsl_math__vector__Vec3_f32_ %f32
%fn_rlsl_math__vector__Vec2_f32___f32_____rlsl_math__vector__Vec2_f32_ = OpTypeFunction %rlsl_math__vector__Vec2_f32_ %rlsl_math__vector__Vec2_f32_ %f32
%fn_f32_____f32 = OpTypeFunction %f32 %f32
%fn__f32___f32_____bool = OpTypeFunction %u32 %_mut_f32 %_mut_f32
%fn______f32 = OpTypeFunction %f32
%fn_std__option__Option_issues__ray__RayHit____closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0________std__option__Option_rlsl_math__vector__Vec3_f32__ = OpTypeFunction %std__option__Option_0 %std__option__Option %_closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___
%_issues__ray__RayHit__ = OpTypeStruct %issues__ray__RayHit
%_mut__issues__ray__RayHit__ = OpTypePointer Function %_issues__ray__RayHit__
%u32_0_1 = OpConstant %u32 0
%u32_1_1 = OpConstant %u32 1
%std__prelude__v1__Ok_0 = OpTypeStruct %rlsl_math__vector__Vec3_f32_
%std__prelude__v1__Err_0 = OpTypeStruct %std__option__NoneError
%std__result__Result_0 = OpTypeStruct %std__prelude__v1__Ok_0 %std__prelude__v1__Err_0 %u32
%fn_std__option__Option_rlsl_math__vector__Vec3_f32____std__option__NoneError_____std__result__Result_rlsl_math__vector__Vec3_f32___std__option__NoneError_ = OpTypeFunction %std__result__Result_0 %std__option__Option_0 %std__option__NoneError
%_mut_std__result__Result_rlsl_math__vector__Vec3_f32___std__option__NoneError_ = OpTypePointer Function %std__result__Result_0
%fn__mut_rlsl_math__random__Rng__issues__ray__Ray____issues__ray__Sphere__2___usize_____std__option__Option_rlsl_math__vector__Vec3_f32__ = OpTypeFunction %std__option__Option_0 %_mut_rlsl_math__random__Rng %issues__ray__Ray %_mut__issues__ray__Sphere__2_ %u32
%fn___issues__ray__Sphere__2___usize_____issues__ray__Sphere = OpTypeFunction %issues__ray__Sphere %_mut__issues__ray__Sphere__2_ %u32
%fn__mut__closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0_____f32__f32_____f32 = OpTypeFunction %f32 %_mut__closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0___ %f32 %f32
%fn_std__option__Option_rlsl_math__vector__Vec3_f32_____closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32_______rlsl_math__vector__Vec3_f32_ = OpTypeFunction %rlsl_math__vector__Vec3_f32_ %std__option__Option_0 %_closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__
%_mut___ = OpTypePointer Function %__
%fn_std__option__Option_rlsl_math__vector__Vec2_f32____std__option__NoneError_____std__result__Result_rlsl_math__vector__Vec2_f32___std__option__NoneError_ = OpTypeFunction %std__result__Result %std__option__Option_1 %std__option__NoneError
%fn_f32__f32__f32_____std__option__Option_rlsl_math__vector__Vec2_f32__ = OpTypeFunction %std__option__Option_1 %f32 %f32 %f32
%f32_4 = OpConstant %f32 4
%28 = OpFunction %__ None %fn__
%56 = OpLabel
%60 = OpVariable %_mut_rlsl_math__vector__Vec4_f32_ Function
%62 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
%64 = OpVariable %_mut_f32 Function
%67 = OpVariable %_mut_std__marker__PhantomData_rlsl_math__constants__N0_ Function
OpBranch %bb0
%bb0 = OpLabel
%72 = OpAccessChain %_mut_rlsl_math__vector__Vec2_f32__0 %43 %u32_0
%73 = OpLoad %rlsl_math__vector__Vec2_f32_ %72
OpStore %62 %73
%76 = OpAccessChain %_mut_f32_0 %50 %u32_0
%77 = OpLoad %f32 %76
OpStore %64 %77
%78 = OpLoad %rlsl_math__vector__Vec2_f32_ %62
%79 = OpLoad %f32 %64
%80 = OpFunctionCall %rlsl_math__vector__Vec4_f32_ %issues__ray__render %78 %79
OpStore %60 %80
OpBranch %bb1
%bb1 = OpLabel
%81 = OpLoad %rlsl_math__vector__Vec4_f32_ %60
%83 = OpAccessChain %_mut_rlsl_math__vector__Vec4_f32__0 %47 %u32_0
OpStore %83 %81
OpReturn
OpFunctionEnd
%rlsl_math__random__Rng__random = OpFunction %f32 None %fn__mut_rlsl_math__random__Rng_____f32
%87 = OpFunctionParameter %_mut_rlsl_math__random__Rng
%88 = OpLabel
%89 = OpVariable %_mut_f32 Function
%93 = OpVariable %_mut_f32 Function
%94 = OpVariable %_mut_f32 Function
%95 = OpVariable %_mut_f32 Function
OpBranch %bb0_0
%bb0_0 = OpLabel
%96 = OpAccessChain %_mut_f32 %87 %u32_0
%97 = OpLoad %f32 %96
%99 = OpFAdd %f32 %97 %f32_1
%100 = OpAccessChain %_mut_f32 %87 %u32_0
OpStore %100 %99
%101 = OpAccessChain %_mut_f32 %87 %u32_0
%102 = OpLoad %f32 %101
OpStore %95 %102
%103 = OpLoad %f32 %95
%104 = OpExtInst %f32 %1 Sin %103
OpStore %94 %104
OpBranch %bb1_0
%bb1_0 = OpLabel
%105 = OpLoad %f32 %94
%107 = OpFMul %f32 %105 %f32_4000
OpStore %93 %107
%108 = OpLoad %f32 %93
%109 = OpExtInst %f32 %1 Fract %108
OpStore %89 %109
OpBranch %bb2
%bb2 = OpLabel
%110 = OpLoad %f32 %89
OpReturnValue %110
OpFunctionEnd
%issues__ray__intersect_spheres = OpFunction %std__option__Option None %fn_issues__ray__Ray____issues__ray__Sphere__2______std__option__Option_issues__ray__RayHit_
%123 = OpFunctionParameter %issues__ray__Ray
%124 = OpFunctionParameter %_mut__issues__ray__Sphere__2_
%125 = OpLabel
%127 = OpVariable %_mut_issues__ray__Ray Function
OpStore %127 %123
%129 = OpVariable %_mut_std__option__Option_issues__ray__RayHit_ Function
%142 = OpVariable %_mut_std__option__Option_issues__ray__RayHit_ Function
%144 = OpVariable %_mut_usize Function
%146 = OpVariable %_mut_bool Function
%147 = OpVariable %_mut_usize Function
%148 = OpVariable %_mut_usize Function
%149 = OpVariable %_mut_std__option__Option_issues__ray__RayHit_ Function
%151 = OpVariable %_mut_issues__ray__Sphere Function
%152 = OpVariable %_mut_usize Function
%155 = OpVariable %_mut_isize Function
%157 = OpVariable %_mut_issues__ray__RayHit Function
%158 = OpVariable %_mut_isize Function
%161 = OpVariable %_mut__usize__bool_ Function
%162 = OpVariable %_mut_std__option__Option_issues__ray__RayHit_ Function
OpBranch %bb0_1
%bb0_1 = OpLabel
%165 = OpAccessChain %_mut_u32 %142 %u32_2_0
OpStore %165 %u32_0
OpStore %144 %u32_0_0
OpBranch %bb1_1
%bb1_1 = OpLabel
%167 = OpLoad %u32 %144
OpStore %147 %167
%168 = OpFunctionCall %u32 %__T_____as_rlsl_math__Array_T____length %124
OpStore %148 %168
OpLoopMerge %bb11 %bb9 None
OpBranch %bb3
%bb3 = OpLabel
%169 = OpLoad %u32 %147
%170 = OpLoad %u32 %148
%171 = OpULessThan %bool %169 %170
%173 = OpSelect %u32 %171 %u32_1 %u32_0
OpStore %146 %173
%174 = OpLoad %u32 %146
%175 = OpIEqual %bool %174 %u32_0
OpBranchConditional %175 %bb11 %bb4
%bb4 = OpLabel
%176 = OpLoad %u32 %144
OpStore %152 %176
%177 = OpLoad %u32 %152
%178 = OpFunctionCall %issues__ray__Sphere %__T_____as_rlsl_math__Array_T____get %124 %177
OpStore %151 %178
OpBranch %bb5
%bb5 = OpLabel
%179 = OpLoad %issues__ray__Sphere %151
%180 = OpLoad %issues__ray__Ray %127
%181 = OpFunctionCall %std__option__Option %issues__ray__Sphere__intersect %179 %180
OpStore %149 %181
OpBranch %bb6
%bb6 = OpLabel
%182 = OpAccessChain %_mut_u32 %149 %u32_2_0
%183 = OpLoad %u32 %182
%184 = OpBitcast %i32 %183
OpStore %155 %184
%185 = OpAccessChain %_mut_u32 %149 %u32_2_0
%186 = OpLoad %u32 %185
%187 = OpBitcast %i32 %186
OpStore %158 %187
%188 = OpLoad %i32 %158
%189 = OpIEqual %bool %188 %u32_1
OpSelectionMerge %bb10 None
OpBranchConditional %189 %bb7 %bb10
%bb7 = OpLabel
%190 = OpAccessChain %_mut_issues__ray__RayHit %149 %u32_1 %u32_0
%191 = OpLoad %issues__ray__RayHit %190
OpStore %157 %191
%192 = OpLoad %issues__ray__RayHit %157
%193 = OpAccessChain %_mut_issues__ray__RayHit %142 %u32_1 %u32_0
OpStore %193 %192
%194 = OpAccessChain %_mut_u32 %142 %u32_2_0
OpStore %194 %u32_1
OpBranch %bb10
%bb10 = OpLabel
OpBranch %bb8
%bb8 = OpLabel
%195 = OpLoad %u32 %144
%198 = OpIAddCarry %_usize__usize_ %195 %u32_1_0
%199 = OpCompositeExtract %u32 %198 0
%200 = OpCompositeExtract %u32 %198 1
%201 = OpBitcast %u32 %200
%202 = OpCompositeConstruct %_usize__bool_ %199 %200
OpStore %161 %202
OpBranch %bb9
%bb9 = OpLabel
%203 = OpAccessChain %_mut_usize %161 %u32_0
%204 = OpLoad %u32 %203
OpStore %144 %204
OpBranch %bb1_1
%bb11 = OpLabel
OpBranch %bb2_0
%bb2_0 = OpLabel
%205 = OpLoad %std__option__Option %142
OpStore %162 %205
%206 = OpLoad %std__option__Option %162
OpStore %129 %206
%207 = OpLoad %std__option__Option %129
OpReturnValue %207
OpFunctionEnd
%_rlsl_math__vector__Vec3_T__as_std__ops__Add___add = OpFunction %rlsl_math__vector__Vec3_f32_ None %fn_rlsl_math__vector__Vec3_f32___rlsl_math__vector__Vec3_f32______rlsl_math__vector__Vec3_f32_
%209 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%210 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%211 = OpLabel
%213 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %213 %209
%214 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %214 %210
%215 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%220 = OpVariable %_mut_f32 Function
%221 = OpVariable %_mut_f32 Function
%222 = OpVariable %_mut_f32 Function
%223 = OpVariable %_mut_f32 Function
%224 = OpVariable %_mut_f32 Function
%225 = OpVariable %_mut_f32 Function
%226 = OpVariable %_mut_f32 Function
%227 = OpVariable %_mut_f32 Function
%228 = OpVariable %_mut_f32 Function
OpBranch %bb0_2
%bb0_2 = OpLabel
%229 = OpAccessChain %_mut_f32 %213 %u32_0
%230 = OpLoad %f32 %229
OpStore %221 %230
%231 = OpAccessChain %_mut_f32 %214 %u32_0
%232 = OpLoad %f32 %231
OpStore %222 %232
%233 = OpLoad %f32 %221
%234 = OpLoad %f32 %222
%235 = OpFunctionCall %f32 %_f32_as_std__ops__Add___add %233 %234
OpStore %220 %235
OpBranch %bb1_2
%bb1_2 = OpLabel
%236 = OpAccessChain %_mut_f32 %213 %u32_1
%237 = OpLoad %f32 %236
OpStore %224 %237
%238 = OpAccessChain %_mut_f32 %214 %u32_1
%239 = OpLoad %f32 %238
OpStore %225 %239
%240 = OpLoad %f32 %224
%241 = OpLoad %f32 %225
%242 = OpFunctionCall %f32 %_f32_as_std__ops__Add___add %240 %241
OpStore %223 %242
OpBranch %bb2_1
%bb2_1 = OpLabel
%243 = OpAccessChain %_mut_f32 %213 %u32_2_0
%244 = OpLoad %f32 %243
OpStore %227 %244
%245 = OpAccessChain %_mut_f32 %214 %u32_2_0
%246 = OpLoad %f32 %245
OpStore %228 %246
%247 = OpLoad %f32 %227
%248 = OpLoad %f32 %228
%249 = OpFunctionCall %f32 %_f32_as_std__ops__Add___add %247 %248
OpStore %226 %249
OpBranch %bb3_0
%bb3_0 = OpLabel
%250 = OpLoad %f32 %220
%251 = OpAccessChain %_mut_f32 %215 %u32_0
OpStore %251 %250
%252 = OpLoad %f32 %223
%253 = OpAccessChain %_mut_f32 %215 %u32_1
OpStore %253 %252
%254 = OpLoad %f32 %226
%255 = OpAccessChain %_mut_f32 %215 %u32_2_0
OpStore %255 %254
%256 = OpLoad %rlsl_math__vector__Vec3_f32_ %215
OpReturnValue %256
OpFunctionEnd
%_rlsl_math__vector__Vec3_T__as_std__ops__Sub___sub = OpFunction %rlsl_math__vector__Vec3_f32_ None %fn_rlsl_math__vector__Vec3_f32___rlsl_math__vector__Vec3_f32______rlsl_math__vector__Vec3_f32_
%257 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%258 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%259 = OpLabel
%260 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %260 %257
%261 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %261 %258
%262 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%267 = OpVariable %_mut_f32 Function
%268 = OpVariable %_mut_f32 Function
%269 = OpVariable %_mut_f32 Function
%270 = OpVariable %_mut_f32 Function
%271 = OpVariable %_mut_f32 Function
%272 = OpVariable %_mut_f32 Function
%273 = OpVariable %_mut_f32 Function
%274 = OpVariable %_mut_f32 Function
%275 = OpVariable %_mut_f32 Function
OpBranch %bb0_3
%bb0_3 = OpLabel
%276 = OpAccessChain %_mut_f32 %260 %u32_0
%277 = OpLoad %f32 %276
OpStore %268 %277
%278 = OpAccessChain %_mut_f32 %261 %u32_0
%279 = OpLoad %f32 %278
OpStore %269 %279
%280 = OpLoad %f32 %268
%281 = OpLoad %f32 %269
%282 = OpFunctionCall %f32 %_f32_as_std__ops__Sub___sub %280 %281
OpStore %267 %282
OpBranch %bb1_3
%bb1_3 = OpLabel
%283 = OpAccessChain %_mut_f32 %260 %u32_1
%284 = OpLoad %f32 %283
OpStore %271 %284
%285 = OpAccessChain %_mut_f32 %261 %u32_1
%286 = OpLoad %f32 %285
OpStore %272 %286
%287 = OpLoad %f32 %271
%288 = OpLoad %f32 %272
%289 = OpFunctionCall %f32 %_f32_as_std__ops__Sub___sub %287 %288
OpStore %270 %289
OpBranch %bb2_2
%bb2_2 = OpLabel
%290 = OpAccessChain %_mut_f32 %260 %u32_2_0
%291 = OpLoad %f32 %290
OpStore %274 %291
%292 = OpAccessChain %_mut_f32 %261 %u32_2_0
%293 = OpLoad %f32 %292
OpStore %275 %293
%294 = OpLoad %f32 %274
%295 = OpLoad %f32 %275
%296 = OpFunctionCall %f32 %_f32_as_std__ops__Sub___sub %294 %295
OpStore %273 %296
OpBranch %bb3_1
%bb3_1 = OpLabel
%297 = OpLoad %f32 %267
%298 = OpAccessChain %_mut_f32 %262 %u32_0
OpStore %298 %297
%299 = OpLoad %f32 %270
%300 = OpAccessChain %_mut_f32 %262 %u32_1
OpStore %300 %299
%301 = OpLoad %f32 %273
%302 = OpAccessChain %_mut_f32 %262 %u32_2_0
OpStore %302 %301
%303 = OpLoad %rlsl_math__vector__Vec3_f32_ %262
OpReturnValue %303
OpFunctionEnd
%_rlsl_math__vector__Vec3_T__as_rlsl_math__vector__Vector___dot = OpFunction %f32 None %fn_rlsl_math__vector__Vec3_f32___rlsl_math__vector__Vec3_f32______f32
%305 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%306 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%307 = OpLabel
%308 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %308 %305
%309 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %309 %306
%310 = OpVariable %_mut_f32 Function
%317 = OpVariable %_mut_f32 Function
%318 = OpVariable %_mut_f32 Function
%319 = OpVariable %_mut_f32 Function
%320 = OpVariable %_mut_f32 Function
%321 = OpVariable %_mut_f32 Function
%322 = OpVariable %_mut_f32 Function
%323 = OpVariable %_mut_f32 Function
%324 = OpVariable %_mut_f32 Function
%325 = OpVariable %_mut_f32 Function
%326 = OpVariable %_mut_f32 Function
OpBranch %bb0_4
%bb0_4 = OpLabel
%327 = OpAccessChain %_mut_f32 %308 %u32_0
%328 = OpLoad %f32 %327
OpStore %319 %328
%329 = OpAccessChain %_mut_f32 %309 %u32_0
%330 = OpLoad %f32 %329
OpStore %320 %330
%331 = OpLoad %f32 %319
%332 = OpLoad %f32 %320
%333 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %331 %332
OpStore %318 %333
OpBranch %bb1_4
%bb1_4 = OpLabel
%334 = OpAccessChain %_mut_f32 %308 %u32_1
%335 = OpLoad %f32 %334
OpStore %322 %335
%336 = OpAccessChain %_mut_f32 %309 %u32_1
%337 = OpLoad %f32 %336
OpStore %323 %337
%338 = OpLoad %f32 %322
%339 = OpLoad %f32 %323
%340 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %338 %339
OpStore %321 %340
OpBranch %bb2_3
%bb2_3 = OpLabel
%341 = OpLoad %f32 %318
%342 = OpLoad %f32 %321
%343 = OpFunctionCall %f32 %_f32_as_std__ops__Add___add %341 %342
OpStore %317 %343
OpBranch %bb3_2
%bb3_2 = OpLabel
%344 = OpAccessChain %_mut_f32 %308 %u32_2_0
%345 = OpLoad %f32 %344
OpStore %325 %345
%346 = OpAccessChain %_mut_f32 %309 %u32_2_0
%347 = OpLoad %f32 %346
OpStore %326 %347
%348 = OpLoad %f32 %325
%349 = OpLoad %f32 %326
%350 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %348 %349
OpStore %324 %350
OpBranch %bb4_0
%bb4_0 = OpLabel
%351 = OpLoad %f32 %317
%352 = OpLoad %f32 %324
%353 = OpFunctionCall %f32 %_f32_as_std__ops__Add___add %351 %352
OpStore %310 %353
OpBranch %bb5_0
%bb5_0 = OpLabel
%354 = OpLoad %f32 %310
OpReturnValue %354
OpFunctionEnd
%issues__ray__color____closure__ = OpFunction %rlsl_math__vector__Vec3_f32_ None %fn__closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0_____issues__ray__RayHit_____rlsl_math__vector__Vec3_f32_
%357 = OpFunctionParameter %_closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___
%358 = OpFunctionParameter %issues__ray__RayHit
%359 = OpLabel
%361 = OpVariable %_mut__closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___ Function
OpStore %361 %357
%362 = OpVariable %_mut_issues__ray__RayHit Function
OpStore %362 %358
%363 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%365 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpBranch %bb0_5
%bb0_5 = OpLabel
%366 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %362 %u32_2_0
%367 = OpLoad %rlsl_math__vector__Vec3_f32_ %366
OpStore %365 %367
%368 = OpLoad %rlsl_math__vector__Vec3_f32_ %365
OpStore %363 %368
%369 = OpLoad %rlsl_math__vector__Vec3_f32_ %363
OpReturnValue %369
OpFunctionEnd
%_f32_as_std__ops__Mul___mul = OpFunction %f32 None %fn_f32__f32_____f32
%371 = OpFunctionParameter %f32
%372 = OpFunctionParameter %f32
%373 = OpLabel
%374 = OpVariable %_mut_f32 Function
OpStore %374 %371
%375 = OpVariable %_mut_f32 Function
OpStore %375 %372
%376 = OpVariable %_mut_f32 Function
%378 = OpVariable %_mut_f32 Function
%379 = OpVariable %_mut_f32 Function
OpBranch %bb0_6
%bb0_6 = OpLabel
%380 = OpLoad %f32 %374
OpStore %378 %380
%381 = OpLoad %f32 %375
OpStore %379 %381
%382 = OpLoad %f32 %378
%383 = OpLoad %f32 %379
%384 = OpFMul %f32 %382 %383
OpStore %376 %384
%385 = OpLoad %f32 %376
OpReturnValue %385
OpFunctionEnd
%issues__ray__render = OpFunction %rlsl_math__vector__Vec4_f32_ None %fn_rlsl_math__vector__Vec2_f32___f32_____rlsl_math__vector__Vec4_f32_
%387 = OpFunctionParameter %rlsl_math__vector__Vec2_f32_
%388 = OpFunctionParameter %f32
%389 = OpLabel
%390 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
OpStore %390 %387
%391 = OpVariable %_mut_f32 Function
OpStore %391 %388
%392 = OpVariable %_mut_rlsl_math__vector__Vec4_f32_ Function
%401 = OpVariable %_mut_rlsl_math__random__Rng Function
%402 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%403 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%404 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%405 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
%406 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
%407 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
%408 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%409 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%410 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%411 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%412 = OpVariable %_mut_issues__ray__Ray Function
%413 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%415 = OpVariable %_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ Function
%416 = OpVariable %_mut_issues__ray__Sphere Function
%417 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%418 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%419 = OpVariable %_mut_issues__ray__Sphere Function
%420 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%421 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%422 = OpVariable %_mut__issues__ray__Sphere__2_ Function
%423 = OpVariable %_mut_issues__ray__Sphere Function
%424 = OpVariable %_mut_issues__ray__Sphere Function
%425 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%430 = OpVariable %_mut_std__option__Option_rlsl_math__vector__Vec3_f32__ Function
%431 = OpVariable %_mut_issues__ray__Ray Function
%434 = OpVariable %_mut__closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__ Function
%435 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
%436 = OpVariable %_mut_f32 Function
%437 = OpVariable %_mut_f32 Function
%438 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%439 = OpVariable %_mut_f32 Function
%440 = OpVariable %_mut_f32 Function
%441 = OpVariable %_mut_f32 Function
OpBranch %bb0_7
%bb0_7 = OpLabel
%443 = OpAccessChain %_mut_f32 %401 %u32_0
OpStore %443 %f32_0
%444 = OpAccessChain %_mut_f32 %402 %u32_0
OpStore %444 %f32_0
%445 = OpAccessChain %_mut_f32 %402 %u32_1
OpStore %445 %f32_0
%446 = OpAccessChain %_mut_f32 %402 %u32_2_0
OpStore %446 %f32_1
%447 = OpLoad %rlsl_math__vector__Vec2_f32_ %390
OpStore %407 %447
%448 = OpLoad %rlsl_math__vector__Vec2_f32_ %407
%450 = OpFunctionCall %rlsl_math__vector__Vec2_f32_ %_rlsl_math__vector__Vec2_T__as_std__ops__Mul_T____mul %448 %f32_2
OpStore %406 %450
OpBranch %bb1_5
%bb1_5 = OpLabel
%451 = OpLoad %rlsl_math__vector__Vec2_f32_ %406
%452 = OpFunctionCall %rlsl_math__vector__Vec2_f32_ %_rlsl_math__vector__Vec2_T__as_std__ops__Sub_T____sub %451 %f32_1
OpStore %405 %452
OpBranch %bb2_4
%bb2_4 = OpLabel
%453 = OpAccessChain %_mut_f32 %405 %u32_0
%454 = OpLoad %f32 %453
OpStore %436 %454
%455 = OpAccessChain %_mut_f32 %405 %u32_1
%456 = OpLoad %f32 %455
OpStore %437 %456
%457 = OpLoad %f32 %436
%458 = OpAccessChain %_mut_f32 %404 %u32_0
OpStore %458 %457
%459 = OpLoad %f32 %437
%460 = OpAccessChain %_mut_f32 %404 %u32_1
OpStore %460 %459
%461 = OpAccessChain %_mut_f32 %404 %u32_2_0
OpStore %461 %f32_0
%462 = OpAccessChain %_mut_f32 %408 %u32_0
OpStore %462 %f32_1
%464 = OpAccessChain %_mut_f32 %408 %u32_1
OpStore %464 %f32_n1
%465 = OpAccessChain %_mut_f32 %408 %u32_2_0
OpStore %465 %f32_1
%466 = OpLoad %rlsl_math__vector__Vec3_f32_ %404
%467 = OpLoad %rlsl_math__vector__Vec3_f32_ %408
%468 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_std__ops__Mul___mul %466 %467
OpStore %403 %468
OpBranch %bb3_3
%bb3_3 = OpLabel
%469 = OpAccessChain %_mut_f32 %409 %u32_0
OpStore %469 %f32_0
%470 = OpAccessChain %_mut_f32 %409 %u32_1
OpStore %470 %f32_0
%471 = OpAccessChain %_mut_f32 %409 %u32_2_0
OpStore %471 %f32_0
%472 = OpLoad %rlsl_math__vector__Vec3_f32_ %402
OpStore %411 %472
%473 = OpLoad %rlsl_math__vector__Vec3_f32_ %411
%474 = OpLoad %rlsl_math__vector__Vec3_f32_ %403
%475 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_std__ops__Add___add %473 %474
OpStore %410 %475
OpBranch %bb4_1
%bb4_1 = OpLabel
%476 = OpLoad %rlsl_math__vector__Vec3_f32_ %409
OpStore %413 %476
%477 = OpLoad %rlsl_math__vector__Vec3_f32_ %410
%478 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_rlsl_math__vector__Vector___normalize %477
OpStore %438 %478
OpBranch %bb7_0
%bb7_0 = OpLabel
%479 = OpLoad %rlsl_math__vector__Vec3_f32_ %438
%480 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %415 %u32_0
OpStore %480 %479
%481 = OpLoad %rlsl_math__vector__Vec3_f32_ %413
%482 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %412 %u32_0
OpStore %482 %481
%483 = OpLoad %rlsl_math__unit__Unit %415
%484 = OpAccessChain %_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ %412 %u32_1
OpStore %484 %483
%485 = OpAccessChain %_mut_f32 %417 %u32_0
OpStore %485 %f32_0
%487 = OpAccessChain %_mut_f32 %417 %u32_1
OpStore %487 %f32_n100_5
%488 = OpAccessChain %_mut_f32 %417 %u32_2_0
OpStore %488 %f32_n1
%490 = OpAccessChain %_mut_f32 %418 %u32_0
OpStore %490 %f32_0_400000006
%491 = OpAccessChain %_mut_f32 %418 %u32_1
OpStore %491 %f32_0_400000006
%492 = OpAccessChain %_mut_f32 %418 %u32_2_0
OpStore %492 %f32_0_400000006
%493 = OpLoad %rlsl_math__vector__Vec3_f32_ %417
%494 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %416 %u32_0
OpStore %494 %493
%496 = OpAccessChain %_mut_f32 %416 %u32_1
OpStore %496 %f32_100
%497 = OpLoad %rlsl_math__vector__Vec3_f32_ %418
%498 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %416 %u32_2_0
OpStore %498 %497
%499 = OpAccessChain %_mut_f32 %420 %u32_0
OpStore %499 %f32_0
%500 = OpAccessChain %_mut_f32 %420 %u32_1
OpStore %500 %f32_0
%501 = OpAccessChain %_mut_f32 %420 %u32_2_0
OpStore %501 %f32_1
%502 = OpAccessChain %_mut_f32 %421 %u32_0
OpStore %502 %f32_1
%504 = OpAccessChain %_mut_f32 %421 %u32_1
OpStore %504 %f32_0_200000003
%506 = OpAccessChain %_mut_f32 %421 %u32_2_0
OpStore %506 %f32_0_100000001
%507 = OpLoad %rlsl_math__vector__Vec3_f32_ %420
%508 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %419 %u32_0
OpStore %508 %507
%510 = OpAccessChain %_mut_f32 %419 %u32_1
OpStore %510 %f32_0_5
%511 = OpLoad %rlsl_math__vector__Vec3_f32_ %421
%512 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %419 %u32_2_0
OpStore %512 %511
%513 = OpLoad %issues__ray__Sphere %416
OpStore %423 %513
%514 = OpLoad %issues__ray__Sphere %419
OpStore %424 %514
%515 = OpLoad %issues__ray__Sphere %423
%516 = OpLoad %issues__ray__Sphere %424
%517 = OpCompositeConstruct %_issues__ray__Sphere__2_ %515 %516
OpStore %422 %517
%518 = OpLoad %issues__ray__Ray %412
OpStore %431 %518
%519 = OpLoad %issues__ray__Ray %431
%521 = OpFunctionCall %std__option__Option_0 %issues__ray__color %401 %519 %422 %u32_5000
OpStore %430 %521
OpBranch %bb5_1
%bb5_1 = OpLabel
%522 = OpLoad %rlsl_math__vector__Vec2_f32_ %390
OpStore %435 %522
%523 = OpLoad %rlsl_math__vector__Vec2_f32_ %435
%524 = OpAccessChain %_mut_rlsl_math__vector__Vec2_f32_ %434 %u32_0
OpStore %524 %523
%525 = OpLoad %std__option__Option_0 %430
%526 = OpLoad %_closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__ %434
%527 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_std__option__Option_T____unwrap_or_else %525 %526
OpStore %425 %527
OpBranch %bb6_0
%bb6_0 = OpLabel
%528 = OpAccessChain %_mut_f32 %425 %u32_0
%529 = OpLoad %f32 %528
OpStore %439 %529
%530 = OpAccessChain %_mut_f32 %425 %u32_1
%531 = OpLoad %f32 %530
OpStore %440 %531
%532 = OpAccessChain %_mut_f32 %425 %u32_2_0
%533 = OpLoad %f32 %532
OpStore %441 %533
%534 = OpLoad %f32 %439
%535 = OpAccessChain %_mut_f32 %392 %u32_0
OpStore %535 %534
%536 = OpLoad %f32 %440
%537 = OpAccessChain %_mut_f32 %392 %u32_1
OpStore %537 %536
%538 = OpLoad %f32 %441
%539 = OpAccessChain %_mut_f32 %392 %u32_2_0
OpStore %539 %538
%541 = OpAccessChain %_mut_f32 %392 %u32_3
OpStore %541 %f32_1
%542 = OpLoad %rlsl_math__vector__Vec4_f32_ %392
OpReturnValue %542
OpFunctionEnd
%issues__ray__Sphere__intersect = OpFunction %std__option__Option None %fn_issues__ray__Sphere__issues__ray__Ray_____std__option__Option_issues__ray__RayHit_
%544 = OpFunctionParameter %issues__ray__Sphere
%545 = OpFunctionParameter %issues__ray__Ray
%546 = OpLabel
%547 = OpVariable %_mut_issues__ray__Sphere Function
OpStore %547 %544
%548 = OpVariable %_mut_issues__ray__Ray Function
OpStore %548 %545
%549 = OpVariable %_mut_std__option__Option_issues__ray__RayHit_ Function
%570 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%571 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%572 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%573 = OpVariable %_mut_f32 Function
%574 = OpVariable %_mut_f32 Function
%575 = OpVariable %_mut_f32 Function
%576 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%577 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%578 = OpVariable %_mut_f32 Function
%579 = OpVariable %_mut_f32 Function
%580 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%581 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%582 = OpVariable %_mut_f32 Function
%583 = OpVariable %_mut_f32 Function
%584 = OpVariable %_mut_f32 Function
%585 = OpVariable %_mut_f32 Function
%591 = OpVariable %_mut_std__result__Result_rlsl_math__vector__Vec2_f32___std__option__NoneError_ Function
%596 = OpVariable %_mut_std__option__Option_rlsl_math__vector__Vec2_f32__ Function
%597 = OpVariable %_mut_isize Function
%599 = OpVariable %_mut_std__option__NoneError Function
%600 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
%601 = OpVariable %_mut_isize Function
%602 = OpVariable %_mut_std__option__NoneError Function
%603 = OpVariable %_mut_bool Function
%604 = OpVariable %_mut_f32 Function
%605 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%606 = OpVariable %_mut_issues__ray__Ray Function
%607 = OpVariable %_mut_f32 Function
%608 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%609 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%610 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%611 = OpVariable %_mut_issues__ray__RayHit Function
%612 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%613 = OpVariable %_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ Function
%614 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%615 = OpVariable %_mut_issues__ray__RayHit Function
%616 = OpVariable %_mut_std__option__NoneError Function
%617 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
%618 = OpVariable %_mut_f32 Function
%621 = OpVariable %_mut__closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0___ Function
%622 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpBranch %bb0_8
%bb0_8 = OpLabel
%623 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %548 %u32_0
%624 = OpLoad %rlsl_math__vector__Vec3_f32_ %623
OpStore %571 %624
%625 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %547 %u32_0
%626 = OpLoad %rlsl_math__vector__Vec3_f32_ %625
OpStore %572 %626
%627 = OpLoad %rlsl_math__vector__Vec3_f32_ %571
%628 = OpLoad %rlsl_math__vector__Vec3_f32_ %572
%629 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_std__ops__Sub___sub %627 %628
OpStore %570 %629
OpBranch %bb1_6
%bb1_6 = OpLabel
%630 = OpAccessChain %_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ %548 %u32_1
%631 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %630 %u32_0
%632 = OpLoad %rlsl_math__vector__Vec3_f32_ %631
OpStore %576 %632
%633 = OpLoad %rlsl_math__vector__Vec3_f32_ %570
OpStore %577 %633
%634 = OpLoad %rlsl_math__vector__Vec3_f32_ %576
%635 = OpLoad %rlsl_math__vector__Vec3_f32_ %577
%636 = OpFunctionCall %f32 %_rlsl_math__vector__Vec3_T__as_rlsl_math__vector__Vector___dot %634 %635
OpStore %575 %636
OpBranch %bb12
%bb12 = OpLabel
%637 = OpLoad %f32 %575
%638 = OpFMul %f32 %f32_2 %637
OpStore %574 %638
%639 = OpLoad %rlsl_math__vector__Vec3_f32_ %570
OpStore %580 %639
%640 = OpLoad %rlsl_math__vector__Vec3_f32_ %570
OpStore %581 %640
%641 = OpLoad %rlsl_math__vector__Vec3_f32_ %580
%642 = OpLoad %rlsl_math__vector__Vec3_f32_ %581
%643 = OpFunctionCall %f32 %_rlsl_math__vector__Vec3_T__as_rlsl_math__vector__Vector___dot %641 %642
OpStore %579 %643
OpBranch %bb13
%bb13 = OpLabel
%644 = OpAccessChain %_mut_f32 %547 %u32_1
%645 = OpLoad %f32 %644
OpStore %583 %645
%646 = OpAccessChain %_mut_f32 %547 %u32_1
%647 = OpLoad %f32 %646
OpStore %584 %647
%648 = OpLoad %f32 %583
%649 = OpLoad %f32 %584
%650 = OpFMul %f32 %648 %649
OpStore %582 %650
%651 = OpLoad %f32 %579
%652 = OpLoad %f32 %582
%653 = OpFSub %f32 %651 %652
OpStore %578 %653
%654 = OpLoad %f32 %574
%655 = OpLoad %f32 %578
%656 = OpFunctionCall %std__option__Option_1 %rlsl_math__polynomial__quadratic %f32_1 %654 %655
OpStore %596 %656
OpBranch %bb2_5
%bb2_5 = OpLabel
%657 = OpLoad %std__option__Option_1 %596
%658 = OpLoad %std__option__NoneError %616
%659 = OpFunctionCall %std__result__Result %_std__option__Option_T____ok_or_0 %657 %658
OpStore %591 %659
OpBranch %bb14
%bb14 = OpLabel
%660 = OpAccessChain %_mut_u32 %591 %u32_2_0
%661 = OpLoad %u32 %660
%662 = OpBitcast %i32 %661
OpStore %597 %662
%663 = OpAccessChain %_mut_u32 %591 %u32_2_0
%664 = OpLoad %u32 %663
%665 = OpBitcast %i32 %664
OpStore %601 %665
%666 = OpLoad %i32 %601
OpSelectionMerge %bb19 None
OpSwitch %666 %bb3_4 0 %bb4_2 1 %bb5_2
%bb3_4 = OpLabel
OpUnreachable
%bb5_2 = OpLabel
%667 = OpAccessChain %_mut_std__option__NoneError %591 %u32_1 %u32_0
%668 = OpLoad %std__option__NoneError %667
OpStore %599 %668
%669 = OpLoad %std__option__NoneError %599
OpStore %602 %669
%670 = OpAccessChain %_mut_u32 %549 %u32_2_0
OpStore %670 %u32_0
OpBranch %bb7_1
%bb7_1 = OpLabel
OpBranch %bb19
%bb4_2 = OpLabel
%671 = OpAccessChain %_mut_rlsl_math__vector__Vec2_f32_ %591 %u32_0 %u32_0
%672 = OpLoad %rlsl_math__vector__Vec2_f32_ %671
OpStore %600 %672
%673 = OpLoad %rlsl_math__vector__Vec2_f32_ %600
OpStore %617 %673
%674 = OpAccessChain %_mut_f32 %600 %u32_0
%675 = OpLoad %f32 %674
OpStore %618 %675
%676 = OpLoad %rlsl_math__vector__Vec2_f32_ %617
%677 = OpLoad %f32 %618
%678 = OpLoad %_closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0___ %621
%679 = OpFunctionCall %f32 %_rlsl_math__vector__Vec2_T____fold %676 %677 %678
OpStore %585 %679
OpBranch %bb15
%bb15 = OpLabel
%680 = OpLoad %f32 %585
OpStore %604 %680
%681 = OpLoad %f32 %604
%682 = OpFOrdLessThan %bool %681 %f32_0
%683 = OpSelect %u32 %682 %u32_1 %u32_0
OpStore %603 %683
%684 = OpLoad %u32 %603
%685 = OpIEqual %bool %684 %u32_0
OpSelectionMerge %bb18 None
OpBranchConditional %685 %bb9_0 %bb8_0
%bb8_0 = OpLabel
%686 = OpAccessChain %_mut_u32 %549 %u32_2_0
OpStore %686 %u32_0
OpBranch %bb17
%bb17 = OpLabel
OpBranch %bb18
%bb9_0 = OpLabel
%687 = OpLoad %issues__ray__Ray %548
OpStore %606 %687
%688 = OpLoad %f32 %585
OpStore %607 %688
%689 = OpLoad %issues__ray__Ray %606
%690 = OpLoad %f32 %607
%691 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %issues__ray__Ray__position %689 %690
OpStore %605 %691
OpBranch %bb10_0
%bb10_0 = OpLabel
%692 = OpLoad %rlsl_math__vector__Vec3_f32_ %605
OpStore %609 %692
%693 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %547 %u32_0
%694 = OpLoad %rlsl_math__vector__Vec3_f32_ %693
OpStore %610 %694
%695 = OpLoad %rlsl_math__vector__Vec3_f32_ %609
%696 = OpLoad %rlsl_math__vector__Vec3_f32_ %610
%697 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_std__ops__Sub___sub %695 %696
OpStore %608 %697
OpBranch %bb11_0
%bb11_0 = OpLabel
%698 = OpLoad %rlsl_math__vector__Vec3_f32_ %605
OpStore %612 %698
%699 = OpLoad %rlsl_math__vector__Vec3_f32_ %608
%700 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_rlsl_math__vector__Vector___normalize %699
OpStore %622 %700
OpBranch %bb16
%bb16 = OpLabel
%701 = OpLoad %rlsl_math__vector__Vec3_f32_ %622
%702 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %613 %u32_0
OpStore %702 %701
%703 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %547 %u32_2_0
%704 = OpLoad %rlsl_math__vector__Vec3_f32_ %703
OpStore %614 %704
%705 = OpLoad %rlsl_math__vector__Vec3_f32_ %612
%706 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %611 %u32_0
OpStore %706 %705
%707 = OpLoad %rlsl_math__unit__Unit %613
%708 = OpAccessChain %_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ %611 %u32_1
OpStore %708 %707
%709 = OpLoad %rlsl_math__vector__Vec3_f32_ %614
%710 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %611 %u32_2_0
OpStore %710 %709
%711 = OpLoad %issues__ray__RayHit %611
OpStore %615 %711
%712 = OpLoad %issues__ray__RayHit %615
%713 = OpAccessChain %_mut_issues__ray__RayHit %549 %u32_1 %u32_0
OpStore %713 %712
%714 = OpAccessChain %_mut_u32 %549 %u32_2_0
OpStore %714 %u32_1
OpBranch %bb18
%bb18 = OpLabel
OpBranch %bb19
%bb19 = OpLabel
OpBranch %bb6_1
%bb6_1 = OpLabel
%715 = OpLoad %std__option__Option %549
OpReturnValue %715
OpFunctionEnd
%_f32_as_std__ops__Div___div = OpFunction %f32 None %fn_f32__f32_____f32
%716 = OpFunctionParameter %f32
%717 = OpFunctionParameter %f32
%718 = OpLabel
%719 = OpVariable %_mut_f32 Function
OpStore %719 %716
%720 = OpVariable %_mut_f32 Function
OpStore %720 %717
%721 = OpVariable %_mut_f32 Function
%723 = OpVariable %_mut_f32 Function
%724 = OpVariable %_mut_f32 Function
OpBranch %bb0_9
%bb0_9 = OpLabel
%725 = OpLoad %f32 %719
OpStore %723 %725
%726 = OpLoad %f32 %720
OpStore %724 %726
%727 = OpLoad %f32 %723
%728 = OpLoad %f32 %724
%729 = OpFDiv %f32 %727 %728
OpStore %721 %729
%730 = OpLoad %f32 %721
OpReturnValue %730
OpFunctionEnd
%issues__ray__Ray__position = OpFunction %rlsl_math__vector__Vec3_f32_ None %fn_issues__ray__Ray__f32_____rlsl_math__vector__Vec3_f32_
%732 = OpFunctionParameter %issues__ray__Ray
%733 = OpFunctionParameter %f32
%734 = OpLabel
%735 = OpVariable %_mut_issues__ray__Ray Function
OpStore %735 %732
%736 = OpVariable %_mut_f32 Function
OpStore %736 %733
%737 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%741 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%742 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%743 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpBranch %bb0_10
%bb0_10 = OpLabel
%744 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %735 %u32_0
%745 = OpLoad %rlsl_math__vector__Vec3_f32_ %744
OpStore %741 %745
%746 = OpAccessChain %_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ %735 %u32_1
%747 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %746 %u32_0
%748 = OpLoad %rlsl_math__vector__Vec3_f32_ %747
OpStore %743 %748
%749 = OpLoad %rlsl_math__vector__Vec3_f32_ %743
%750 = OpLoad %f32 %736
%751 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_std__ops__Mul_T____mul %749 %750
OpStore %742 %751
OpBranch %bb1_7
%bb1_7 = OpLabel
%752 = OpLoad %rlsl_math__vector__Vec3_f32_ %741
%753 = OpLoad %rlsl_math__vector__Vec3_f32_ %742
%754 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_std__ops__Add___add %752 %753
OpStore %737 %754
OpBranch %bb2_6
%bb2_6 = OpLabel
%755 = OpLoad %rlsl_math__vector__Vec3_f32_ %737
OpReturnValue %755
OpFunctionEnd
%__T_____as_rlsl_math__Array_T____length = OpFunction %u32 None %fn___issues__ray__Sphere__2______usize
%757 = OpFunctionParameter %_mut__issues__ray__Sphere__2_
%758 = OpLabel
%759 = OpVariable %_mut_usize Function
OpBranch %bb0_11
%bb0_11 = OpLabel
OpStore %759 %u32_2
%761 = OpLoad %u32 %759
OpReturnValue %761
OpFunctionEnd
%rlsl_math__vector__Vector__length = OpFunction %f32 None %fn_rlsl_math__vector__Vec3_f32______f32
%763 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%764 = OpLabel
%765 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %765 %763
%766 = OpVariable %_mut_f32 Function
%770 = OpVariable %_mut_f32 Function
%771 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%772 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpBranch %bb0_12
%bb0_12 = OpLabel
%773 = OpLoad %rlsl_math__vector__Vec3_f32_ %765
OpStore %771 %773
%774 = OpLoad %rlsl_math__vector__Vec3_f32_ %765
OpStore %772 %774
%775 = OpLoad %rlsl_math__vector__Vec3_f32_ %771
%776 = OpLoad %rlsl_math__vector__Vec3_f32_ %772
%777 = OpFunctionCall %f32 %_rlsl_math__vector__Vec3_T__as_rlsl_math__vector__Vector___dot %775 %776
OpStore %770 %777
OpBranch %bb1_8
%bb1_8 = OpLabel
%778 = OpLoad %f32 %770
%779 = OpFunctionCall %f32 %_f32_as_rlsl_math__num__Float___sqrt %778
OpStore %766 %779
OpBranch %bb2_7
%bb2_7 = OpLabel
%780 = OpLoad %f32 %766
OpReturnValue %780
OpFunctionEnd
%_rlsl_math__vector__Vec3_T__as_rlsl_math__vector__Vector___normalize = OpFunction %rlsl_math__vector__Vec3_f32_ None %fn_rlsl_math__vector__Vec3_f32______rlsl_math__vector__Vec3_f32_
%782 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%783 = OpLabel
%784 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %784 %782
%785 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%789 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%790 = OpVariable %_mut_f32 Function
%791 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpBranch %bb0_13
%bb0_13 = OpLabel
%792 = OpLoad %rlsl_math__vector__Vec3_f32_ %784
OpStore %789 %792
%793 = OpLoad %rlsl_math__vector__Vec3_f32_ %784
OpStore %791 %793
%794 = OpLoad %rlsl_math__vector__Vec3_f32_ %791
%795 = OpFunctionCall %f32 %rlsl_math__vector__Vector__length %794
OpStore %790 %795
OpBranch %bb2_8
%bb2_8 = OpLabel
%796 = OpLoad %rlsl_math__vector__Vec3_f32_ %789
%797 = OpLoad %f32 %790
%798 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_std__ops__Div_T____div %796 %797
OpStore %785 %798
OpBranch %bb1_9
%bb1_9 = OpLabel
%799 = OpLoad %rlsl_math__vector__Vec3_f32_ %785
OpReturnValue %799
OpFunctionEnd
%_rlsl_math__vector__Vec3_T__as_std__ops__Div_T____div = OpFunction %rlsl_math__vector__Vec3_f32_ None %fn_rlsl_math__vector__Vec3_f32___f32_____rlsl_math__vector__Vec3_f32_
%801 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%802 = OpFunctionParameter %f32
%803 = OpLabel
%804 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %804 %801
%805 = OpVariable %_mut_f32 Function
OpStore %805 %802
%806 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%811 = OpVariable %_mut_f32 Function
%812 = OpVariable %_mut_f32 Function
%813 = OpVariable %_mut_f32 Function
%814 = OpVariable %_mut_f32 Function
%815 = OpVariable %_mut_f32 Function
%816 = OpVariable %_mut_f32 Function
%817 = OpVariable %_mut_f32 Function
%818 = OpVariable %_mut_f32 Function
%819 = OpVariable %_mut_f32 Function
OpBranch %bb0_14
%bb0_14 = OpLabel
%820 = OpAccessChain %_mut_f32 %804 %u32_0
%821 = OpLoad %f32 %820
OpStore %812 %821
%822 = OpLoad %f32 %805
OpStore %813 %822
%823 = OpLoad %f32 %812
%824 = OpLoad %f32 %813
%825 = OpFunctionCall %f32 %_f32_as_std__ops__Div___div %823 %824
OpStore %811 %825
OpBranch %bb1_10
%bb1_10 = OpLabel
%826 = OpAccessChain %_mut_f32 %804 %u32_1
%827 = OpLoad %f32 %826
OpStore %815 %827
%828 = OpLoad %f32 %805
OpStore %816 %828
%829 = OpLoad %f32 %815
%830 = OpLoad %f32 %816
%831 = OpFunctionCall %f32 %_f32_as_std__ops__Div___div %829 %830
OpStore %814 %831
OpBranch %bb2_9
%bb2_9 = OpLabel
%832 = OpAccessChain %_mut_f32 %804 %u32_2_0
%833 = OpLoad %f32 %832
OpStore %818 %833
%834 = OpLoad %f32 %805
OpStore %819 %834
%835 = OpLoad %f32 %818
%836 = OpLoad %f32 %819
%837 = OpFunctionCall %f32 %_f32_as_std__ops__Div___div %835 %836
OpStore %817 %837
OpBranch %bb3_5
%bb3_5 = OpLabel
%838 = OpLoad %f32 %811
%839 = OpAccessChain %_mut_f32 %806 %u32_0
OpStore %839 %838
%840 = OpLoad %f32 %814
%841 = OpAccessChain %_mut_f32 %806 %u32_1
OpStore %841 %840
%842 = OpLoad %f32 %817
%843 = OpAccessChain %_mut_f32 %806 %u32_2_0
OpStore %843 %842
%844 = OpLoad %rlsl_math__vector__Vec3_f32_ %806
OpReturnValue %844
OpFunctionEnd
%_rlsl_math__vector__Vec3_T__as_std__ops__Mul_T____mul = OpFunction %rlsl_math__vector__Vec3_f32_ None %fn_rlsl_math__vector__Vec3_f32___f32_____rlsl_math__vector__Vec3_f32_
%845 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%846 = OpFunctionParameter %f32
%847 = OpLabel
%848 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %848 %845
%849 = OpVariable %_mut_f32 Function
OpStore %849 %846
%850 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%855 = OpVariable %_mut_f32 Function
%856 = OpVariable %_mut_f32 Function
%857 = OpVariable %_mut_f32 Function
%858 = OpVariable %_mut_f32 Function
%859 = OpVariable %_mut_f32 Function
%860 = OpVariable %_mut_f32 Function
%861 = OpVariable %_mut_f32 Function
%862 = OpVariable %_mut_f32 Function
%863 = OpVariable %_mut_f32 Function
OpBranch %bb0_15
%bb0_15 = OpLabel
%864 = OpAccessChain %_mut_f32 %848 %u32_0
%865 = OpLoad %f32 %864
OpStore %856 %865
%866 = OpLoad %f32 %849
OpStore %857 %866
%867 = OpLoad %f32 %856
%868 = OpLoad %f32 %857
%869 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %867 %868
OpStore %855 %869
OpBranch %bb1_11
%bb1_11 = OpLabel
%870 = OpAccessChain %_mut_f32 %848 %u32_1
%871 = OpLoad %f32 %870
OpStore %859 %871
%872 = OpLoad %f32 %849
OpStore %860 %872
%873 = OpLoad %f32 %859
%874 = OpLoad %f32 %860
%875 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %873 %874
OpStore %858 %875
OpBranch %bb2_10
%bb2_10 = OpLabel
%876 = OpAccessChain %_mut_f32 %848 %u32_2_0
%877 = OpLoad %f32 %876
OpStore %862 %877
%878 = OpLoad %f32 %849
OpStore %863 %878
%879 = OpLoad %f32 %862
%880 = OpLoad %f32 %863
%881 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %879 %880
OpStore %861 %881
OpBranch %bb3_6
%bb3_6 = OpLabel
%882 = OpLoad %f32 %855
%883 = OpAccessChain %_mut_f32 %850 %u32_0
OpStore %883 %882
%884 = OpLoad %f32 %858
%885 = OpAccessChain %_mut_f32 %850 %u32_1
OpStore %885 %884
%886 = OpLoad %f32 %861
%887 = OpAccessChain %_mut_f32 %850 %u32_2_0
OpStore %887 %886
%888 = OpLoad %rlsl_math__vector__Vec3_f32_ %850
OpReturnValue %888
OpFunctionEnd
%_rlsl_math__vector__Vec2_T____fold = OpFunction %f32 None %fn_rlsl_math__vector__Vec2_f32___f32___closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0________f32
%890 = OpFunctionParameter %rlsl_math__vector__Vec2_f32_
%891 = OpFunctionParameter %f32
%892 = OpFunctionParameter %_closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0___
%893 = OpLabel
%894 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
OpStore %894 %890
%895 = OpVariable %_mut_f32 Function
OpStore %895 %891
%896 = OpVariable %_mut__closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0___ Function
OpStore %896 %892
%897 = OpVariable %_mut_f32 Function
%904 = OpVariable %_mut_f32 Function
%907 = OpVariable %_mut__f32__f32_ Function
%908 = OpVariable %_mut_f32 Function
%909 = OpVariable %_mut_f32 Function
%910 = OpVariable %_mut__f32__f32_ Function
%911 = OpVariable %_mut_f32 Function
OpBranch %bb0_16
%bb0_16 = OpLabel
%912 = OpAccessChain %_mut_f32 %894 %u32_0
%913 = OpLoad %f32 %912
OpStore %908 %913
%914 = OpLoad %f32 %895
%915 = OpAccessChain %_mut_f32 %907 %u32_0
OpStore %915 %914
%916 = OpLoad %f32 %908
%917 = OpAccessChain %_mut_f32 %907 %u32_1
OpStore %917 %916
%918 = OpAccessChain %_mut_f32 %907 %u32_0
%919 = OpLoad %f32 %918
%920 = OpAccessChain %_mut_f32 %907 %u32_1
%921 = OpLoad %f32 %920
%922 = OpFunctionCall %f32 %_rlsl_math__vector__Vec2_T____min____closure__ %896 %919 %921
OpStore %904 %922
OpBranch %bb3_7
%bb3_7 = OpLabel
%923 = OpAccessChain %_mut_f32 %894 %u32_1
%924 = OpLoad %f32 %923
OpStore %911 %924
%925 = OpLoad %f32 %904
%926 = OpAccessChain %_mut_f32 %910 %u32_0
OpStore %926 %925
%927 = OpLoad %f32 %911
%928 = OpAccessChain %_mut_f32 %910 %u32_1
OpStore %928 %927
%929 = OpAccessChain %_mut_f32 %910 %u32_0
%930 = OpLoad %f32 %929
%931 = OpAccessChain %_mut_f32 %910 %u32_1
%932 = OpLoad %f32 %931
%933 = OpFunctionCall %f32 %_rlsl_math__vector__Vec2_T____min____closure__ %896 %930 %932
OpStore %909 %933
OpBranch %bb4_3
%bb4_3 = OpLabel
%934 = OpLoad %f32 %909
OpStore %897 %934
OpBranch %bb5_3
%bb5_3 = OpLabel
%935 = OpLoad %f32 %897
OpReturnValue %935
OpFunctionEnd
%issues__ray__render____closure__ = OpFunction %rlsl_math__vector__Vec3_f32_ None %fn__closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32_______rlsl_math__vector__Vec3_f32_
%937 = OpFunctionParameter %_closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__
%938 = OpLabel
%939 = OpVariable %_mut__closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__ Function
OpStore %939 %937
%940 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%943 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%944 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%945 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%946 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%947 = OpVariable %_mut_f32 Function
OpBranch %bb0_17
%bb0_17 = OpLabel
%948 = OpAccessChain %_mut_f32 %943 %u32_0
OpStore %948 %f32_0_200000003
%949 = OpAccessChain %_mut_f32 %943 %u32_1
OpStore %949 %f32_0_5
%950 = OpAccessChain %_mut_f32 %943 %u32_2_0
OpStore %950 %f32_1
%951 = OpAccessChain %_mut_f32 %944 %u32_0
OpStore %951 %f32_1
%952 = OpAccessChain %_mut_f32 %944 %u32_1
OpStore %952 %f32_1
%953 = OpAccessChain %_mut_f32 %944 %u32_2_0
OpStore %953 %f32_1
%954 = OpLoad %rlsl_math__vector__Vec3_f32_ %943
OpStore %945 %954
%955 = OpLoad %rlsl_math__vector__Vec3_f32_ %944
OpStore %946 %955
%956 = OpAccessChain %_mut_f32 %939 %u32_0 %u32_1
%957 = OpLoad %f32 %956
OpStore %947 %957
%958 = OpLoad %rlsl_math__vector__Vec3_f32_ %945
%959 = OpLoad %rlsl_math__vector__Vec3_f32_ %946
%960 = OpLoad %f32 %947
%961 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T____lerp %958 %959 %960
OpStore %940 %961
OpBranch %bb1_12
%bb1_12 = OpLabel
%962 = OpLoad %rlsl_math__vector__Vec3_f32_ %940
OpReturnValue %962
OpFunctionEnd
%_rlsl_math__vector__Vec3_T____lerp = OpFunction %rlsl_math__vector__Vec3_f32_ None %fn_rlsl_math__vector__Vec3_f32___rlsl_math__vector__Vec3_f32___f32_____rlsl_math__vector__Vec3_f32_
%964 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%965 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%966 = OpFunctionParameter %f32
%967 = OpLabel
%968 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %968 %964
%969 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %969 %965
%970 = OpVariable %_mut_f32 Function
OpStore %970 %966
%971 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%984 = OpVariable %_mut_f32 Function
%985 = OpVariable %_mut_f32 Function
%986 = OpVariable %_mut_f32 Function
%987 = OpVariable %_mut_f32 Function
%988 = OpVariable %_mut_f32 Function
%989 = OpVariable %_mut_f32 Function
%990 = OpVariable %_mut_f32 Function
%991 = OpVariable %_mut_f32 Function
%992 = OpVariable %_mut_f32 Function
%993 = OpVariable %_mut_f32 Function
%994 = OpVariable %_mut_f32 Function
%995 = OpVariable %_mut_f32 Function
%996 = OpVariable %_mut_f32 Function
%997 = OpVariable %_mut_f32 Function
%998 = OpVariable %_mut_f32 Function
%999 = OpVariable %_mut_f32 Function
%1000 = OpVariable %_mut_f32 Function
%1001 = OpVariable %_mut_f32 Function
%1002 = OpVariable %_mut_f32 Function
%1003 = OpVariable %_mut_f32 Function
%1004 = OpVariable %_mut_f32 Function
%1005 = OpVariable %_mut_f32 Function
%1006 = OpVariable %_mut_f32 Function
%1007 = OpVariable %_mut_f32 Function
OpBranch %bb0_18
%bb0_18 = OpLabel
%1008 = OpFunctionCall %f32 %_f32_as_rlsl_math__num__Float___one
OpStore %985 %1008
OpBranch %bb1_13
%bb1_13 = OpLabel
%1009 = OpLoad %f32 %970
OpStore %986 %1009
%1010 = OpLoad %f32 %985
%1011 = OpLoad %f32 %986
%1012 = OpFunctionCall %f32 %_f32_as_std__ops__Sub___sub %1010 %1011
OpStore %984 %1012
OpBranch %bb2_11
%bb2_11 = OpLabel
%1013 = OpLoad %f32 %984
OpStore %989 %1013
%1014 = OpAccessChain %_mut_f32 %968 %u32_0
%1015 = OpLoad %f32 %1014
OpStore %990 %1015
%1016 = OpLoad %f32 %989
%1017 = OpLoad %f32 %990
%1018 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %1016 %1017
OpStore %988 %1018
OpBranch %bb3_8
%bb3_8 = OpLabel
%1019 = OpLoad %f32 %970
OpStore %992 %1019
%1020 = OpAccessChain %_mut_f32 %969 %u32_0
%1021 = OpLoad %f32 %1020
OpStore %993 %1021
%1022 = OpLoad %f32 %992
%1023 = OpLoad %f32 %993
%1024 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %1022 %1023
OpStore %991 %1024
OpBranch %bb4_4
%bb4_4 = OpLabel
%1025 = OpLoad %f32 %988
%1026 = OpLoad %f32 %991
%1027 = OpFunctionCall %f32 %_f32_as_std__ops__Add___add %1025 %1026
OpStore %987 %1027
OpBranch %bb5_4
%bb5_4 = OpLabel
%1028 = OpLoad %f32 %984
OpStore %996 %1028
%1029 = OpAccessChain %_mut_f32 %968 %u32_1
%1030 = OpLoad %f32 %1029
OpStore %997 %1030
%1031 = OpLoad %f32 %996
%1032 = OpLoad %f32 %997
%1033 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %1031 %1032
OpStore %995 %1033
OpBranch %bb6_2
%bb6_2 = OpLabel
%1034 = OpLoad %f32 %970
OpStore %999 %1034
%1035 = OpAccessChain %_mut_f32 %969 %u32_1
%1036 = OpLoad %f32 %1035
OpStore %1000 %1036
%1037 = OpLoad %f32 %999
%1038 = OpLoad %f32 %1000
%1039 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %1037 %1038
OpStore %998 %1039
OpBranch %bb7_2
%bb7_2 = OpLabel
%1040 = OpLoad %f32 %995
%1041 = OpLoad %f32 %998
%1042 = OpFunctionCall %f32 %_f32_as_std__ops__Add___add %1040 %1041
OpStore %994 %1042
OpBranch %bb8_1
%bb8_1 = OpLabel
%1043 = OpLoad %f32 %984
OpStore %1003 %1043
%1044 = OpAccessChain %_mut_f32 %968 %u32_2_0
%1045 = OpLoad %f32 %1044
OpStore %1004 %1045
%1046 = OpLoad %f32 %1003
%1047 = OpLoad %f32 %1004
%1048 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %1046 %1047
OpStore %1002 %1048
OpBranch %bb9_1
%bb9_1 = OpLabel
%1049 = OpLoad %f32 %970
OpStore %1006 %1049
%1050 = OpAccessChain %_mut_f32 %969 %u32_2_0
%1051 = OpLoad %f32 %1050
OpStore %1007 %1051
%1052 = OpLoad %f32 %1006
%1053 = OpLoad %f32 %1007
%1054 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %1052 %1053
OpStore %1005 %1054
OpBranch %bb10_1
%bb10_1 = OpLabel
%1055 = OpLoad %f32 %1002
%1056 = OpLoad %f32 %1005
%1057 = OpFunctionCall %f32 %_f32_as_std__ops__Add___add %1055 %1056
OpStore %1001 %1057
OpBranch %bb11_1
%bb11_1 = OpLabel
%1058 = OpLoad %f32 %987
%1059 = OpAccessChain %_mut_f32 %971 %u32_0
OpStore %1059 %1058
%1060 = OpLoad %f32 %994
%1061 = OpAccessChain %_mut_f32 %971 %u32_1
OpStore %1061 %1060
%1062 = OpLoad %f32 %1001
%1063 = OpAccessChain %_mut_f32 %971 %u32_2_0
OpStore %1063 %1062
%1064 = OpLoad %rlsl_math__vector__Vec3_f32_ %971
OpReturnValue %1064
OpFunctionEnd
%_rlsl_math__vector__Vec2_T__as_std__ops__Sub_T____sub = OpFunction %rlsl_math__vector__Vec2_f32_ None %fn_rlsl_math__vector__Vec2_f32___f32_____rlsl_math__vector__Vec2_f32_
%1066 = OpFunctionParameter %rlsl_math__vector__Vec2_f32_
%1067 = OpFunctionParameter %f32
%1068 = OpLabel
%1069 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
OpStore %1069 %1066
%1070 = OpVariable %_mut_f32 Function
OpStore %1070 %1067
%1071 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
%1075 = OpVariable %_mut_f32 Function
%1076 = OpVariable %_mut_f32 Function
%1077 = OpVariable %_mut_f32 Function
%1078 = OpVariable %_mut_f32 Function
%1079 = OpVariable %_mut_f32 Function
%1080 = OpVariable %_mut_f32 Function
OpBranch %bb0_19
%bb0_19 = OpLabel
%1081 = OpAccessChain %_mut_f32 %1069 %u32_0
%1082 = OpLoad %f32 %1081
OpStore %1076 %1082
%1083 = OpLoad %f32 %1070
OpStore %1077 %1083
%1084 = OpLoad %f32 %1076
%1085 = OpLoad %f32 %1077
%1086 = OpFunctionCall %f32 %_f32_as_std__ops__Sub___sub %1084 %1085
OpStore %1075 %1086
OpBranch %bb1_14
%bb1_14 = OpLabel
%1087 = OpAccessChain %_mut_f32 %1069 %u32_1
%1088 = OpLoad %f32 %1087
OpStore %1079 %1088
%1089 = OpLoad %f32 %1070
OpStore %1080 %1089
%1090 = OpLoad %f32 %1079
%1091 = OpLoad %f32 %1080
%1092 = OpFunctionCall %f32 %_f32_as_std__ops__Sub___sub %1090 %1091
OpStore %1078 %1092
OpBranch %bb2_12
%bb2_12 = OpLabel
%1093 = OpLoad %f32 %1075
%1094 = OpAccessChain %_mut_f32 %1071 %u32_0
OpStore %1094 %1093
%1095 = OpLoad %f32 %1078
%1096 = OpAccessChain %_mut_f32 %1071 %u32_1
OpStore %1096 %1095
%1097 = OpLoad %rlsl_math__vector__Vec2_f32_ %1071
OpReturnValue %1097
OpFunctionEnd
%_f32_as_rlsl_math__num__Float___sqrt = OpFunction %f32 None %fn_f32_____f32
%1099 = OpFunctionParameter %f32
%1100 = OpLabel
%1101 = OpVariable %_mut_f32 Function
OpStore %1101 %1099
%1102 = OpVariable %_mut_f32 Function
OpBranch %bb0_20
%bb0_20 = OpLabel
%1105 = OpLoad %f32 %1101
%1106 = OpExtInst %f32 %1 Sqrt %1105
OpStore %1102 %1106
OpBranch %bb1_15
%bb1_15 = OpLabel
%1107 = OpLoad %f32 %1102
OpReturnValue %1107
OpFunctionEnd
%std__cmp__impls___impl_std__cmp__PartialOrd_for_f32___lt = OpFunction %u32 None %fn__f32___f32_____bool
%1109 = OpFunctionParameter %_mut_f32
%1110 = OpFunctionParameter %_mut_f32
%1111 = OpLabel
%1112 = OpVariable %_mut_bool Function
%1114 = OpVariable %_mut_f32 Function
%1115 = OpVariable %_mut_f32 Function
OpBranch %bb0_21
%bb0_21 = OpLabel
%1116 = OpLoad %f32 %1109
OpStore %1114 %1116
%1117 = OpLoad %f32 %1110
OpStore %1115 %1117
%1118 = OpLoad %f32 %1114
%1119 = OpLoad %f32 %1115
%1120 = OpFOrdLessThan %bool %1118 %1119
%1121 = OpSelect %u32 %1120 %u32_1 %u32_0
OpStore %1112 %1121
%1122 = OpLoad %u32 %1112
OpReturnValue %1122
OpFunctionEnd
%_f32_as_std__ops__Sub___sub = OpFunction %f32 None %fn_f32__f32_____f32
%1123 = OpFunctionParameter %f32
%1124 = OpFunctionParameter %f32
%1125 = OpLabel
%1126 = OpVariable %_mut_f32 Function
OpStore %1126 %1123
%1127 = OpVariable %_mut_f32 Function
OpStore %1127 %1124
%1128 = OpVariable %_mut_f32 Function
%1130 = OpVariable %_mut_f32 Function
%1131 = OpVariable %_mut_f32 Function
OpBranch %bb0_22
%bb0_22 = OpLabel
%1132 = OpLoad %f32 %1126
OpStore %1130 %1132
%1133 = OpLoad %f32 %1127
OpStore %1131 %1133
%1134 = OpLoad %f32 %1130
%1135 = OpLoad %f32 %1131
%1136 = OpFSub %f32 %1134 %1135
OpStore %1128 %1136
%1137 = OpLoad %f32 %1128
OpReturnValue %1137
OpFunctionEnd
%_f32_as_std__ops__Add___add = OpFunction %f32 None %fn_f32__f32_____f32
%1138 = OpFunctionParameter %f32
%1139 = OpFunctionParameter %f32
%1140 = OpLabel
%1141 = OpVariable %_mut_f32 Function
OpStore %1141 %1138
%1142 = OpVariable %_mut_f32 Function
OpStore %1142 %1139
%1143 = OpVariable %_mut_f32 Function
%1145 = OpVariable %_mut_f32 Function
%1146 = OpVariable %_mut_f32 Function
OpBranch %bb0_23
%bb0_23 = OpLabel
%1147 = OpLoad %f32 %1141
OpStore %1145 %1147
%1148 = OpLoad %f32 %1142
OpStore %1146 %1148
%1149 = OpLoad %f32 %1145
%1150 = OpLoad %f32 %1146
%1151 = OpFAdd %f32 %1149 %1150
OpStore %1143 %1151
%1152 = OpLoad %f32 %1143
OpReturnValue %1152
OpFunctionEnd
%_f32_as_rlsl_math__num__Float___one = OpFunction %f32 None %fn______f32
%1154 = OpLabel
%1155 = OpVariable %_mut_f32 Function
OpBranch %bb0_24
%bb0_24 = OpLabel
OpStore %1155 %f32_1
%1157 = OpLoad %f32 %1155
OpReturnValue %1157
OpFunctionEnd
%_std__option__Option_T____map = OpFunction %std__option__Option_0 None %fn_std__option__Option_issues__ray__RayHit____closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0________std__option__Option_rlsl_math__vector__Vec3_f32__
%1159 = OpFunctionParameter %std__option__Option
%1160 = OpFunctionParameter %_closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___
%1161 = OpLabel
%1162 = OpVariable %_mut_std__option__Option_issues__ray__RayHit_ Function
OpStore %1162 %1159
%1163 = OpVariable %_mut__closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___ Function
OpStore %1163 %1160
%1164 = OpVariable %_mut_std__option__Option_rlsl_math__vector__Vec3_f32__ Function
%1186 = OpVariable %_mut_isize Function
%1187 = OpVariable %_mut_issues__ray__RayHit Function
%1188 = OpVariable %_mut_isize Function
%1189 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1190 = OpVariable %_mut__closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___ Function
%1193 = OpVariable %_mut__issues__ray__RayHit__ Function
%1194 = OpVariable %_mut_issues__ray__RayHit Function
%1195 = OpVariable %_mut_bool Function
%1196 = OpVariable %_mut_bool Function
%1197 = OpVariable %_mut_isize Function
%1198 = OpVariable %_mut_isize Function
OpBranch %bb0_25
%bb0_25 = OpLabel
OpStore %1195 %u32_0_1
OpStore %1196 %u32_0_1
OpStore %1195 %u32_1_1
OpStore %1196 %u32_1_1
%1201 = OpAccessChain %_mut_u32 %1162 %u32_2_0
%1202 = OpLoad %u32 %1201
%1203 = OpBitcast %i32 %1202
OpStore %1186 %1203
%1204 = OpAccessChain %_mut_u32 %1162 %u32_2_0
%1205 = OpLoad %u32 %1204
%1206 = OpBitcast %i32 %1205
OpStore %1188 %1206
%1207 = OpLoad %i32 %1188
OpSelectionMerge %bb20 None
OpSwitch %1207 %bb3_9 0 %bb2_13 1 %bb4_5
%bb3_9 = OpLabel
OpUnreachable
%bb4_5 = OpLabel
OpStore %1195 %u32_0_1
%1208 = OpAccessChain %_mut_issues__ray__RayHit %1162 %u32_1 %u32_0
%1209 = OpLoad %issues__ray__RayHit %1208
OpStore %1187 %1209
OpStore %1196 %u32_0_1
%1210 = OpLoad %_closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___ %1163
OpStore %1190 %1210
%1211 = OpLoad %issues__ray__RayHit %1187
OpStore %1194 %1211
%1212 = OpLoad %issues__ray__RayHit %1194
%1213 = OpAccessChain %_mut_issues__ray__RayHit %1193 %u32_0
OpStore %1213 %1212
%1214 = OpLoad %_closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___ %1190
%1215 = OpAccessChain %_mut_issues__ray__RayHit %1193 %u32_0
%1216 = OpLoad %issues__ray__RayHit %1215
%1217 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %issues__ray__color____closure__ %1214 %1216
OpStore %1189 %1217
OpBranch %bb5_5
%bb5_5 = OpLabel
%1218 = OpLoad %rlsl_math__vector__Vec3_f32_ %1189
%1219 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %1164 %u32_1 %u32_0
OpStore %1219 %1218
%1220 = OpAccessChain %_mut_u32 %1164 %u32_2_0
OpStore %1220 %u32_1
OpBranch %bb20
%bb2_13 = OpLabel
%1221 = OpAccessChain %_mut_u32 %1164 %u32_2_0
OpStore %1221 %u32_0
OpBranch %bb20
%bb20 = OpLabel
OpBranch %bb6_3
%bb6_3 = OpLabel
%1222 = OpLoad %u32 %1196
%1223 = OpIEqual %bool %1222 %u32_0
OpSelectionMerge %bb19_0 None
OpBranchConditional %1223 %bb19_0 %bb12_0
%bb12_0 = OpLabel
OpStore %1196 %u32_0_1
OpBranch %bb19_0
%bb19_0 = OpLabel
OpBranch %bb7_3
%bb7_3 = OpLabel
%1224 = OpAccessChain %_mut_u32 %1162 %u32_2_0
%1225 = OpLoad %u32 %1224
%1226 = OpBitcast %i32 %1225
OpStore %1198 %1226
%1227 = OpLoad %i32 %1198
%1228 = OpIEqual %bool %1227 %u32_1
OpSelectionMerge %bb18_0 None
OpBranchConditional %1228 %bb14_0 %bb16_0
%bb16_0 = OpLabel
OpBranch %bb18_0
%bb14_0 = OpLabel
%1229 = OpLoad %u32 %1195
%1230 = OpIEqual %bool %1229 %u32_0
OpSelectionMerge %bb17_0 None
OpBranchConditional %1230 %bb17_0 %bb15_0
%bb15_0 = OpLabel
OpStore %1195 %u32_0_1
OpBranch %bb17_0
%bb17_0 = OpLabel
OpBranch %bb18_0
%bb18_0 = OpLabel
OpBranch %bb13_0
%bb13_0 = OpLabel
%1231 = OpLoad %std__option__Option_0 %1164
OpReturnValue %1231
OpFunctionEnd
%_rlsl_math__vector__Vec2_T__as_std__ops__Mul_T____mul = OpFunction %rlsl_math__vector__Vec2_f32_ None %fn_rlsl_math__vector__Vec2_f32___f32_____rlsl_math__vector__Vec2_f32_
%1232 = OpFunctionParameter %rlsl_math__vector__Vec2_f32_
%1233 = OpFunctionParameter %f32
%1234 = OpLabel
%1235 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
OpStore %1235 %1232
%1236 = OpVariable %_mut_f32 Function
OpStore %1236 %1233
%1237 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
%1241 = OpVariable %_mut_f32 Function
%1242 = OpVariable %_mut_f32 Function
%1243 = OpVariable %_mut_f32 Function
%1244 = OpVariable %_mut_f32 Function
%1245 = OpVariable %_mut_f32 Function
%1246 = OpVariable %_mut_f32 Function
OpBranch %bb0_26
%bb0_26 = OpLabel
%1247 = OpAccessChain %_mut_f32 %1235 %u32_0
%1248 = OpLoad %f32 %1247
OpStore %1242 %1248
%1249 = OpLoad %f32 %1236
OpStore %1243 %1249
%1250 = OpLoad %f32 %1242
%1251 = OpLoad %f32 %1243
%1252 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %1250 %1251
OpStore %1241 %1252
OpBranch %bb1_16
%bb1_16 = OpLabel
%1253 = OpAccessChain %_mut_f32 %1235 %u32_1
%1254 = OpLoad %f32 %1253
OpStore %1245 %1254
%1255 = OpLoad %f32 %1236
OpStore %1246 %1255
%1256 = OpLoad %f32 %1245
%1257 = OpLoad %f32 %1246
%1258 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %1256 %1257
OpStore %1244 %1258
OpBranch %bb2_14
%bb2_14 = OpLabel
%1259 = OpLoad %f32 %1241
%1260 = OpAccessChain %_mut_f32 %1237 %u32_0
OpStore %1260 %1259
%1261 = OpLoad %f32 %1244
%1262 = OpAccessChain %_mut_f32 %1237 %u32_1
OpStore %1262 %1261
%1263 = OpLoad %rlsl_math__vector__Vec2_f32_ %1237
OpReturnValue %1263
OpFunctionEnd
%_std__option__Option_T____ok_or = OpFunction %std__result__Result_0 None %fn_std__option__Option_rlsl_math__vector__Vec3_f32____std__option__NoneError_____std__result__Result_rlsl_math__vector__Vec3_f32___std__option__NoneError_
%1268 = OpFunctionParameter %std__option__Option_0
%1269 = OpFunctionParameter %std__option__NoneError
%1270 = OpLabel
%1271 = OpVariable %_mut_std__option__Option_rlsl_math__vector__Vec3_f32__ Function
OpStore %1271 %1268
%1272 = OpVariable %_mut_std__option__NoneError Function
OpStore %1272 %1269
%1274 = OpVariable %_mut_std__result__Result_rlsl_math__vector__Vec3_f32___std__option__NoneError_ Function
%1295 = OpVariable %_mut_isize Function
%1296 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1297 = OpVariable %_mut_isize Function
%1298 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1299 = OpVariable %_mut_std__option__NoneError Function
%1300 = OpVariable %_mut_bool Function
%1301 = OpVariable %_mut_bool Function
%1302 = OpVariable %_mut_isize Function
%1303 = OpVariable %_mut_isize Function
OpBranch %bb0_27
%bb0_27 = OpLabel
OpStore %1300 %u32_0_1
OpStore %1301 %u32_0_1
OpStore %1300 %u32_1_1
OpStore %1301 %u32_1_1
%1304 = OpAccessChain %_mut_u32 %1271 %u32_2_0
%1305 = OpLoad %u32 %1304
%1306 = OpBitcast %i32 %1305
OpStore %1295 %1306
%1307 = OpAccessChain %_mut_u32 %1271 %u32_2_0
%1308 = OpLoad %u32 %1307
%1309 = OpBitcast %i32 %1308
OpStore %1297 %1309
%1310 = OpLoad %i32 %1297
OpSelectionMerge %bb19_1 None
OpSwitch %1310 %bb3_10 0 %bb2_15 1 %bb4_6
%bb3_10 = OpLabel
OpUnreachable
%bb4_6 = OpLabel
OpStore %1300 %u32_0_1
%1311 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %1271 %u32_1 %u32_0
%1312 = OpLoad %rlsl_math__vector__Vec3_f32_ %1311
OpStore %1296 %1312
%1313 = OpLoad %rlsl_math__vector__Vec3_f32_ %1296
OpStore %1298 %1313
%1314 = OpLoad %rlsl_math__vector__Vec3_f32_ %1298
%1315 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %1274 %u32_0 %u32_0
OpStore %1315 %1314
%1316 = OpAccessChain %_mut_u32 %1274 %u32_2_0
OpStore %1316 %u32_0
OpBranch %bb19_1
%bb2_15 = OpLabel
OpStore %1301 %u32_0_1
%1317 = OpLoad %std__option__NoneError %1272
OpStore %1299 %1317
%1318 = OpLoad %std__option__NoneError %1299
%1319 = OpAccessChain %_mut_std__option__NoneError %1274 %u32_1 %u32_0
OpStore %1319 %1318
%1320 = OpAccessChain %_mut_u32 %1274 %u32_2_0
OpStore %1320 %u32_1
OpBranch %bb19_1
%bb19_1 = OpLabel
OpBranch %bb5_6
%bb5_6 = OpLabel
%1321 = OpLoad %u32 %1301
%1322 = OpIEqual %bool %1321 %u32_0
OpSelectionMerge %bb18_1 None
OpBranchConditional %1322 %bb18_1 %bb11_2
%bb11_2 = OpLabel
OpStore %1301 %u32_0_1
OpBranch %bb18_1
%bb18_1 = OpLabel
OpBranch %bb7_4
%bb7_4 = OpLabel
%1323 = OpAccessChain %_mut_u32 %1271 %u32_2_0
%1324 = OpLoad %u32 %1323
%1325 = OpBitcast %i32 %1324
OpStore %1303 %1325
%1326 = OpLoad %i32 %1303
%1327 = OpIEqual %bool %1326 %u32_1
OpSelectionMerge %bb17_1 None
OpBranchConditional %1327 %bb13_1 %bb15_1
%bb15_1 = OpLabel
OpBranch %bb17_1
%bb13_1 = OpLabel
%1328 = OpLoad %u32 %1300
%1329 = OpIEqual %bool %1328 %u32_0
OpSelectionMerge %bb16_1 None
OpBranchConditional %1329 %bb16_1 %bb14_1
%bb14_1 = OpLabel
OpStore %1300 %u32_0_1
OpBranch %bb16_1
%bb16_1 = OpLabel
OpBranch %bb17_1
%bb17_1 = OpLabel
OpBranch %bb12_1
%bb12_1 = OpLabel
%1330 = OpLoad %std__result__Result_0 %1274
OpReturnValue %1330
OpFunctionEnd
%_rlsl_math__vector__Vec3_T__as_std__ops__Mul___mul = OpFunction %rlsl_math__vector__Vec3_f32_ None %fn_rlsl_math__vector__Vec3_f32___rlsl_math__vector__Vec3_f32______rlsl_math__vector__Vec3_f32_
%1331 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%1332 = OpFunctionParameter %rlsl_math__vector__Vec3_f32_
%1333 = OpLabel
%1334 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %1334 %1331
%1335 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpStore %1335 %1332
%1336 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1341 = OpVariable %_mut_f32 Function
%1342 = OpVariable %_mut_f32 Function
%1343 = OpVariable %_mut_f32 Function
%1344 = OpVariable %_mut_f32 Function
%1345 = OpVariable %_mut_f32 Function
%1346 = OpVariable %_mut_f32 Function
%1347 = OpVariable %_mut_f32 Function
%1348 = OpVariable %_mut_f32 Function
%1349 = OpVariable %_mut_f32 Function
OpBranch %bb0_28
%bb0_28 = OpLabel
%1350 = OpAccessChain %_mut_f32 %1334 %u32_0
%1351 = OpLoad %f32 %1350
OpStore %1342 %1351
%1352 = OpAccessChain %_mut_f32 %1335 %u32_0
%1353 = OpLoad %f32 %1352
OpStore %1343 %1353
%1354 = OpLoad %f32 %1342
%1355 = OpLoad %f32 %1343
%1356 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %1354 %1355
OpStore %1341 %1356
OpBranch %bb1_17
%bb1_17 = OpLabel
%1357 = OpAccessChain %_mut_f32 %1334 %u32_1
%1358 = OpLoad %f32 %1357
OpStore %1345 %1358
%1359 = OpAccessChain %_mut_f32 %1335 %u32_1
%1360 = OpLoad %f32 %1359
OpStore %1346 %1360
%1361 = OpLoad %f32 %1345
%1362 = OpLoad %f32 %1346
%1363 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %1361 %1362
OpStore %1344 %1363
OpBranch %bb2_16
%bb2_16 = OpLabel
%1364 = OpAccessChain %_mut_f32 %1334 %u32_2_0
%1365 = OpLoad %f32 %1364
OpStore %1348 %1365
%1366 = OpAccessChain %_mut_f32 %1335 %u32_2_0
%1367 = OpLoad %f32 %1366
OpStore %1349 %1367
%1368 = OpLoad %f32 %1348
%1369 = OpLoad %f32 %1349
%1370 = OpFunctionCall %f32 %_f32_as_std__ops__Mul___mul %1368 %1369
OpStore %1347 %1370
OpBranch %bb3_11
%bb3_11 = OpLabel
%1371 = OpLoad %f32 %1341
%1372 = OpAccessChain %_mut_f32 %1336 %u32_0
OpStore %1372 %1371
%1373 = OpLoad %f32 %1344
%1374 = OpAccessChain %_mut_f32 %1336 %u32_1
OpStore %1374 %1373
%1375 = OpLoad %f32 %1347
%1376 = OpAccessChain %_mut_f32 %1336 %u32_2_0
OpStore %1376 %1375
%1377 = OpLoad %rlsl_math__vector__Vec3_f32_ %1336
OpReturnValue %1377
OpFunctionEnd
%issues__ray__color = OpFunction %std__option__Option_0 None %fn__mut_rlsl_math__random__Rng__issues__ray__Ray____issues__ray__Sphere__2___usize_____std__option__Option_rlsl_math__vector__Vec3_f32__
%1379 = OpFunctionParameter %_mut_rlsl_math__random__Rng
%1380 = OpFunctionParameter %issues__ray__Ray
%1381 = OpFunctionParameter %_mut__issues__ray__Sphere__2_
%1382 = OpFunctionParameter %u32
%1383 = OpLabel
%1384 = OpVariable %_mut_issues__ray__Ray Function
OpStore %1384 %1380
%1385 = OpVariable %_mut_usize Function
OpStore %1385 %1382
%1386 = OpVariable %_mut_std__option__Option_rlsl_math__vector__Vec3_f32__ Function
%1415 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1416 = OpVariable %_mut_std__result__Result_rlsl_math__vector__Vec3_f32___std__option__NoneError_ Function
%1417 = OpVariable %_mut_std__option__Option_rlsl_math__vector__Vec3_f32__ Function
%1418 = OpVariable %_mut_std__option__Option_issues__ray__RayHit_ Function
%1419 = OpVariable %_mut_issues__ray__Ray Function
%1420 = OpVariable %_mut__closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___ Function
%1421 = OpVariable %_mut_isize Function
%1422 = OpVariable %_mut_std__option__NoneError Function
%1423 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1424 = OpVariable %_mut_isize Function
%1425 = OpVariable %_mut_std__option__NoneError Function
%1426 = OpVariable %_mut_usize Function
%1427 = OpVariable %_mut_std__option__Option_issues__ray__RayHit_ Function
%1428 = OpVariable %_mut_issues__ray__Ray Function
%1429 = OpVariable %_mut_isize Function
%1430 = OpVariable %_mut_issues__ray__RayHit Function
%1431 = OpVariable %_mut_isize Function
%1432 = OpVariable %_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ Function
%1433 = OpVariable %_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ Function
%1434 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1435 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1436 = OpVariable %_mut_f32 Function
%1437 = OpVariable %_mut_f32 Function
%1438 = OpVariable %_mut_f32 Function
%1439 = OpVariable %_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ Function
%1440 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1441 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1442 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1443 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1444 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1445 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1446 = OpVariable %_mut__usize__bool_ Function
%1447 = OpVariable %_mut_bool Function
%1448 = OpVariable %_mut_usize Function
%1449 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1450 = OpVariable %_mut_std__option__NoneError Function
%1451 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1452 = OpVariable %_mut_f32 Function
%1453 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1454 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
OpBranch %bb0_29
%bb0_29 = OpLabel
%1455 = OpLoad %issues__ray__Ray %1384
OpStore %1419 %1455
%1456 = OpLoad %issues__ray__Ray %1419
%1457 = OpFunctionCall %std__option__Option %issues__ray__intersect_spheres %1456 %1381
OpStore %1418 %1457
OpBranch %bb1_18
%bb1_18 = OpLabel
%1458 = OpLoad %std__option__Option %1418
%1459 = OpLoad %_closure_DefId_5_1_12___issues_4451___ray_0___color_0_____closure___0___ %1420
%1460 = OpFunctionCall %std__option__Option_0 %_std__option__Option_T____map %1458 %1459
OpStore %1417 %1460
OpBranch %bb2_17
%bb2_17 = OpLabel
%1461 = OpLoad %std__option__Option_0 %1417
%1462 = OpLoad %std__option__NoneError %1450
%1463 = OpFunctionCall %std__result__Result_0 %_std__option__Option_T____ok_or %1461 %1462
OpStore %1416 %1463
OpBranch %bb19_2
%bb19_2 = OpLabel
%1464 = OpAccessChain %_mut_u32 %1416 %u32_2_0
%1465 = OpLoad %u32 %1464
%1466 = OpBitcast %i32 %1465
OpStore %1421 %1466
%1467 = OpAccessChain %_mut_u32 %1416 %u32_2_0
%1468 = OpLoad %u32 %1467
%1469 = OpBitcast %i32 %1468
OpStore %1424 %1469
%1470 = OpLoad %i32 %1424
OpSelectionMerge %bb27 None
OpSwitch %1470 %bb3_12 0 %bb4_7 1 %bb27
%bb3_12 = OpLabel
OpUnreachable
%bb27 = OpLabel
OpBranch %bb5_7
%bb5_7 = OpLabel
%1471 = OpAccessChain %_mut_std__option__NoneError %1416 %u32_1 %u32_0
%1472 = OpLoad %std__option__NoneError %1471
OpStore %1422 %1472
%1473 = OpLoad %std__option__NoneError %1422
OpStore %1425 %1473
%1474 = OpAccessChain %_mut_u32 %1386 %u32_2_0
OpStore %1474 %u32_0
OpBranch %bb6_4
%bb6_4 = OpLabel
%1475 = OpLoad %std__option__Option_0 %1386
OpReturnValue %1475
%bb4_7 = OpLabel
%1476 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %1416 %u32_0 %u32_0
%1477 = OpLoad %rlsl_math__vector__Vec3_f32_ %1476
OpStore %1423 %1477
%1478 = OpLoad %rlsl_math__vector__Vec3_f32_ %1423
OpStore %1415 %1478
OpStore %1426 %u32_0_0
OpBranch %bb7_5
%bb7_5 = OpLabel
%1479 = OpLoad %issues__ray__Ray %1384
OpStore %1428 %1479
%1480 = OpLoad %issues__ray__Ray %1428
%1481 = OpFunctionCall %std__option__Option %issues__ray__intersect_spheres %1480 %1381
OpStore %1427 %1481
OpLoopMerge %bb26 %bb17_2 None
OpBranch %bb8_2
%bb8_2 = OpLabel
%1482 = OpAccessChain %_mut_u32 %1427 %u32_2_0
%1483 = OpLoad %u32 %1482
%1484 = OpBitcast %i32 %1483
OpStore %1429 %1484
%1485 = OpAccessChain %_mut_u32 %1427 %u32_2_0
%1486 = OpLoad %u32 %1485
%1487 = OpBitcast %i32 %1486
OpStore %1431 %1487
%1488 = OpLoad %i32 %1431
%1489 = OpIEqual %bool %1488 %u32_1
OpBranchConditional %1489 %bb9_2 %bb26
%bb9_2 = OpLabel
%1490 = OpAccessChain %_mut_issues__ray__RayHit %1427 %u32_1 %u32_0
%1491 = OpLoad %issues__ray__RayHit %1490
OpStore %1430 %1491
%1492 = OpAccessChain %_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ %1430 %u32_1
%1493 = OpLoad %rlsl_math__unit__Unit %1492
OpStore %1433 %1493
%1494 = OpFunctionCall %f32 %rlsl_math__random__Rng__random %1379
OpStore %1436 %1494
OpBranch %bb10_2
%bb10_2 = OpLabel
%1495 = OpFunctionCall %f32 %rlsl_math__random__Rng__random %1379
OpStore %1437 %1495
OpBranch %bb11_3
%bb11_3 = OpLabel
%1496 = OpFunctionCall %f32 %rlsl_math__random__Rng__random %1379
OpStore %1438 %1496
OpBranch %bb12_2
%bb12_2 = OpLabel
%1497 = OpLoad %f32 %1436
%1498 = OpAccessChain %_mut_f32 %1435 %u32_0
OpStore %1498 %1497
%1499 = OpLoad %f32 %1437
%1500 = OpAccessChain %_mut_f32 %1435 %u32_1
OpStore %1500 %1499
%1501 = OpLoad %f32 %1438
%1502 = OpAccessChain %_mut_f32 %1435 %u32_2_0
OpStore %1502 %1501
%1503 = OpLoad %rlsl_math__vector__Vec3_f32_ %1435
OpStore %1451 %1503
%1504 = OpLoad %rlsl_math__vector__Vec3_f32_ %1435
OpStore %1453 %1504
%1505 = OpLoad %rlsl_math__vector__Vec3_f32_ %1453
%1506 = OpFunctionCall %f32 %rlsl_math__vector__Vector__length %1505
OpStore %1452 %1506
OpBranch %bb21
%bb21 = OpLabel
%1507 = OpLoad %rlsl_math__vector__Vec3_f32_ %1451
%1508 = OpLoad %f32 %1452
%1509 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_std__ops__Div_T____div %1507 %1508
OpStore %1434 %1509
OpBranch %bb20_0
%bb20_0 = OpLabel
%1510 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %1433 %u32_0
%1511 = OpLoad %rlsl_math__vector__Vec3_f32_ %1510
OpStore %1441 %1511
%1512 = OpLoad %rlsl_math__vector__Vec3_f32_ %1441
%1513 = OpLoad %rlsl_math__vector__Vec3_f32_ %1434
%1514 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_std__ops__Add___add %1512 %1513
OpStore %1440 %1514
OpBranch %bb13_2
%bb13_2 = OpLabel
%1515 = OpLoad %rlsl_math__vector__Vec3_f32_ %1440
%1516 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_rlsl_math__vector__Vector___normalize %1515
OpStore %1454 %1516
OpBranch %bb22
%bb22 = OpLabel
%1517 = OpLoad %rlsl_math__vector__Vec3_f32_ %1454
%1518 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %1439 %u32_0
OpStore %1518 %1517
%1519 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %1430 %u32_0
%1520 = OpLoad %rlsl_math__vector__Vec3_f32_ %1519
OpStore %1442 %1520
%1521 = OpLoad %rlsl_math__vector__Vec3_f32_ %1442
%1522 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %1384 %u32_0
OpStore %1522 %1521
%1523 = OpLoad %rlsl_math__unit__Unit %1439
%1524 = OpAccessChain %_mut_rlsl_math__unit__Unit_rlsl_math__vector__Vec3_f32__ %1384 %u32_1
OpStore %1524 %1523
%1525 = OpLoad %rlsl_math__vector__Vec3_f32_ %1415
OpStore %1444 %1525
%1526 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %1430 %u32_2_0
%1527 = OpLoad %rlsl_math__vector__Vec3_f32_ %1526
OpStore %1445 %1527
%1528 = OpLoad %rlsl_math__vector__Vec3_f32_ %1444
%1529 = OpLoad %rlsl_math__vector__Vec3_f32_ %1445
%1530 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %_rlsl_math__vector__Vec3_T__as_std__ops__Mul___mul %1528 %1529
OpStore %1443 %1530
OpBranch %bb14_2
%bb14_2 = OpLabel
%1531 = OpLoad %rlsl_math__vector__Vec3_f32_ %1443
OpStore %1415 %1531
%1532 = OpLoad %u32 %1426
%1533 = OpIAddCarry %_usize__usize_ %1532 %u32_1_0
%1534 = OpCompositeExtract %u32 %1533 0
%1535 = OpCompositeExtract %u32 %1533 1
%1536 = OpBitcast %u32 %1535
%1537 = OpCompositeConstruct %_usize__bool_ %1534 %1535
OpStore %1446 %1537
OpBranch %bb15_2
%bb15_2 = OpLabel
%1538 = OpAccessChain %_mut_usize %1446 %u32_0
%1539 = OpLoad %u32 %1538
OpStore %1426 %1539
%1540 = OpLoad %u32 %1426
OpStore %1448 %1540
%1541 = OpLoad %u32 %1448
%1542 = OpLoad %u32 %1385
%1543 = OpUGreaterThan %bool %1541 %1542
%1544 = OpSelect %u32 %1543 %u32_1 %u32_0
OpStore %1447 %1544
%1545 = OpLoad %u32 %1447
%1546 = OpIEqual %bool %1545 %u32_0
OpSelectionMerge %bb25 None
OpBranchConditional %1546 %bb25 %bb16_2
%bb16_2 = OpLabel
OpBranch %bb26
%bb26 = OpLabel
OpBranch %bb24
%bb24 = OpLabel
%1547 = OpLoad %rlsl_math__vector__Vec3_f32_ %1415
OpStore %1449 %1547
%1548 = OpLoad %rlsl_math__vector__Vec3_f32_ %1449
%1549 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %1386 %u32_1 %u32_0
OpStore %1549 %1548
%1550 = OpAccessChain %_mut_u32 %1386 %u32_2_0
OpStore %1550 %u32_1
OpBranch %bb23
%bb23 = OpLabel
%1551 = OpLoad %std__option__Option_0 %1386
OpReturnValue %1551
%bb25 = OpLabel
OpBranch %bb17_2
%bb17_2 = OpLabel
OpBranch %bb7_5
OpFunctionEnd
%__T_____as_rlsl_math__Array_T____get = OpFunction %issues__ray__Sphere None %fn___issues__ray__Sphere__2___usize_____issues__ray__Sphere
%1553 = OpFunctionParameter %_mut__issues__ray__Sphere__2_
%1554 = OpFunctionParameter %u32
%1555 = OpLabel
%1556 = OpVariable %_mut_usize Function
OpStore %1556 %1554
%1557 = OpVariable %_mut_issues__ray__Sphere Function
%1560 = OpVariable %_mut_issues__ray__Sphere Function
%1561 = OpVariable %_mut_bool Function
OpBranch %bb0_30
%bb0_30 = OpLabel
%1562 = OpLoad %u32 %1556
%1563 = OpULessThan %bool %1562 %u32_2
%1564 = OpSelect %u32 %1563 %u32_1 %u32_0
OpStore %1561 %1564
OpBranch %bb1_19
%bb1_19 = OpLabel
%1565 = OpLoad %u32 %1556
%1566 = OpAccessChain %_mut_issues__ray__Sphere %1553 %1565
%1567 = OpLoad %issues__ray__Sphere %1566
OpStore %1560 %1567
%1568 = OpLoad %issues__ray__Sphere %1560
OpStore %1557 %1568
%1569 = OpLoad %issues__ray__Sphere %1557
OpReturnValue %1569
OpFunctionEnd
%_rlsl_math__vector__Vec2_T____min____closure__ = OpFunction %f32 None %fn__mut__closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0_____f32__f32_____f32
%1571 = OpFunctionParameter %_mut__closure_DefId_4_1_122___rlsl_math_8627___vector_0_____impl___39___min_0_____closure___0___
%1572 = OpFunctionParameter %f32
%1573 = OpFunctionParameter %f32
%1574 = OpLabel
%1575 = OpVariable %_mut_f32 Function
OpStore %1575 %1572
%1576 = OpVariable %_mut_f32 Function
OpStore %1576 %1573
%1577 = OpVariable %_mut_f32 Function
%1584 = OpVariable %_mut_bool Function
%1585 = OpVariable %_mut_f32 Function
%1586 = OpVariable %_mut_f32 Function
OpBranch %bb0_31
%bb0_31 = OpLabel
%1587 = OpFunctionCall %u32 %std__cmp__impls___impl_std__cmp__PartialOrd_for_f32___lt %1576 %1575
OpStore %1584 %1587
OpBranch %bb1_20
%bb1_20 = OpLabel
%1588 = OpLoad %u32 %1584
%1589 = OpIEqual %bool %1588 %u32_0
OpSelectionMerge %bb5_8 None
OpBranchConditional %1589 %bb3_13 %bb2_18
%bb2_18 = OpLabel
%1590 = OpLoad %f32 %1576
OpStore %1585 %1590
%1591 = OpLoad %f32 %1585
OpStore %1577 %1591
OpBranch %bb5_8
%bb3_13 = OpLabel
%1592 = OpLoad %f32 %1575
OpStore %1586 %1592
%1593 = OpLoad %f32 %1586
OpStore %1577 %1593
OpBranch %bb5_8
%bb5_8 = OpLabel
OpBranch %bb4_8
%bb4_8 = OpLabel
%1594 = OpLoad %f32 %1577
OpReturnValue %1594
OpFunctionEnd
%_std__option__Option_T____unwrap_or_else = OpFunction %rlsl_math__vector__Vec3_f32_ None %fn_std__option__Option_rlsl_math__vector__Vec3_f32_____closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32_______rlsl_math__vector__Vec3_f32_
%1596 = OpFunctionParameter %std__option__Option_0
%1597 = OpFunctionParameter %_closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__
%1598 = OpLabel
%1599 = OpVariable %_mut_std__option__Option_rlsl_math__vector__Vec3_f32__ Function
OpStore %1599 %1596
%1600 = OpVariable %_mut__closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__ Function
OpStore %1600 %1597
%1601 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1623 = OpVariable %_mut_isize Function
%1624 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1625 = OpVariable %_mut_isize Function
%1626 = OpVariable %_mut_rlsl_math__vector__Vec3_f32_ Function
%1627 = OpVariable %_mut__closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__ Function
%1629 = OpVariable %_mut___ Function
%1630 = OpVariable %_mut_bool Function
%1631 = OpVariable %_mut_bool Function
%1632 = OpVariable %_mut_isize Function
%1633 = OpVariable %_mut_isize Function
OpBranch %bb0_32
%bb0_32 = OpLabel
OpStore %1630 %u32_0_1
OpStore %1631 %u32_0_1
OpStore %1630 %u32_1_1
OpStore %1631 %u32_1_1
%1634 = OpAccessChain %_mut_u32 %1599 %u32_2_0
%1635 = OpLoad %u32 %1634
%1636 = OpBitcast %i32 %1635
OpStore %1623 %1636
%1637 = OpAccessChain %_mut_u32 %1599 %u32_2_0
%1638 = OpLoad %u32 %1637
%1639 = OpBitcast %i32 %1638
OpStore %1625 %1639
%1640 = OpLoad %i32 %1625
OpSelectionMerge %bb20_1 None
OpSwitch %1640 %bb3_14 0 %bb2_19 1 %bb4_9
%bb3_14 = OpLabel
OpUnreachable
%bb4_9 = OpLabel
OpStore %1630 %u32_0_1
%1641 = OpAccessChain %_mut_rlsl_math__vector__Vec3_f32_ %1599 %u32_1 %u32_0
%1642 = OpLoad %rlsl_math__vector__Vec3_f32_ %1641
OpStore %1624 %1642
%1643 = OpLoad %rlsl_math__vector__Vec3_f32_ %1624
OpStore %1626 %1643
%1644 = OpLoad %rlsl_math__vector__Vec3_f32_ %1626
OpStore %1601 %1644
OpBranch %bb20_1
%bb2_19 = OpLabel
OpStore %1631 %u32_0_1
%1645 = OpLoad %_closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__ %1600
OpStore %1627 %1645
%1646 = OpLoad %_closure_DefId_5_1_13___issues_4451___ray_0___render_0_____closure___0___0_rlsl_math__vector__Vec2_f32__ %1627
%1647 = OpFunctionCall %rlsl_math__vector__Vec3_f32_ %issues__ray__render____closure__ %1646
OpStore %1601 %1647
OpBranch %bb6_5
%bb6_5 = OpLabel
OpBranch %bb20_1
%bb20_1 = OpLabel
OpBranch %bb5_9
%bb5_9 = OpLabel
%1648 = OpLoad %u32 %1631
%1649 = OpIEqual %bool %1648 %u32_0
OpSelectionMerge %bb19_3 None
OpBranchConditional %1649 %bb19_3 %bb12_3
%bb12_3 = OpLabel
OpStore %1631 %u32_0_1
OpBranch %bb19_3
%bb19_3 = OpLabel
OpBranch %bb7_6
%bb7_6 = OpLabel
%1650 = OpAccessChain %_mut_u32 %1599 %u32_2_0
%1651 = OpLoad %u32 %1650
%1652 = OpBitcast %i32 %1651
OpStore %1633 %1652
%1653 = OpLoad %i32 %1633
%1654 = OpIEqual %bool %1653 %u32_1
OpSelectionMerge %bb18_2 None
OpBranchConditional %1654 %bb14_3 %bb16_3
%bb16_3 = OpLabel
OpBranch %bb18_2
%bb14_3 = OpLabel
%1655 = OpLoad %u32 %1630
%1656 = OpIEqual %bool %1655 %u32_0
OpSelectionMerge %bb17_3 None
OpBranchConditional %1656 %bb17_3 %bb15_3
%bb15_3 = OpLabel
OpStore %1630 %u32_0_1
OpBranch %bb17_3
%bb17_3 = OpLabel
OpBranch %bb18_2
%bb18_2 = OpLabel
OpBranch %bb13_3
%bb13_3 = OpLabel
%1657 = OpLoad %rlsl_math__vector__Vec3_f32_ %1601
OpReturnValue %1657
OpFunctionEnd
%_std__option__Option_T____ok_or_0 = OpFunction %std__result__Result None %fn_std__option__Option_rlsl_math__vector__Vec2_f32____std__option__NoneError_____std__result__Result_rlsl_math__vector__Vec2_f32___std__option__NoneError_
%1659 = OpFunctionParameter %std__option__Option_1
%1660 = OpFunctionParameter %std__option__NoneError
%1661 = OpLabel
%1662 = OpVariable %_mut_std__option__Option_rlsl_math__vector__Vec2_f32__ Function
OpStore %1662 %1659
%1663 = OpVariable %_mut_std__option__NoneError Function
OpStore %1663 %1660
%1664 = OpVariable %_mut_std__result__Result_rlsl_math__vector__Vec2_f32___std__option__NoneError_ Function
%1685 = OpVariable %_mut_isize Function
%1686 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
%1687 = OpVariable %_mut_isize Function
%1688 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
%1689 = OpVariable %_mut_std__option__NoneError Function
%1690 = OpVariable %_mut_bool Function
%1691 = OpVariable %_mut_bool Function
%1692 = OpVariable %_mut_isize Function
%1693 = OpVariable %_mut_isize Function
OpBranch %bb0_33
%bb0_33 = OpLabel
OpStore %1690 %u32_0_1
OpStore %1691 %u32_0_1
OpStore %1690 %u32_1_1
OpStore %1691 %u32_1_1
%1694 = OpAccessChain %_mut_u32 %1662 %u32_2_0
%1695 = OpLoad %u32 %1694
%1696 = OpBitcast %i32 %1695
OpStore %1685 %1696
%1697 = OpAccessChain %_mut_u32 %1662 %u32_2_0
%1698 = OpLoad %u32 %1697
%1699 = OpBitcast %i32 %1698
OpStore %1687 %1699
%1700 = OpLoad %i32 %1687
OpSelectionMerge %bb19_4 None
OpSwitch %1700 %bb3_15 0 %bb2_20 1 %bb4_10
%bb3_15 = OpLabel
OpUnreachable
%bb4_10 = OpLabel
OpStore %1690 %u32_0_1
%1701 = OpAccessChain %_mut_rlsl_math__vector__Vec2_f32_ %1662 %u32_1 %u32_0
%1702 = OpLoad %rlsl_math__vector__Vec2_f32_ %1701
OpStore %1686 %1702
%1703 = OpLoad %rlsl_math__vector__Vec2_f32_ %1686
OpStore %1688 %1703
%1704 = OpLoad %rlsl_math__vector__Vec2_f32_ %1688
%1705 = OpAccessChain %_mut_rlsl_math__vector__Vec2_f32_ %1664 %u32_0 %u32_0
OpStore %1705 %1704
%1706 = OpAccessChain %_mut_u32 %1664 %u32_2_0
OpStore %1706 %u32_0
OpBranch %bb19_4
%bb2_20 = OpLabel
OpStore %1691 %u32_0_1
%1707 = OpLoad %std__option__NoneError %1663
OpStore %1689 %1707
%1708 = OpLoad %std__option__NoneError %1689
%1709 = OpAccessChain %_mut_std__option__NoneError %1664 %u32_1 %u32_0
OpStore %1709 %1708
%1710 = OpAccessChain %_mut_u32 %1664 %u32_2_0
OpStore %1710 %u32_1
OpBranch %bb19_4
%bb19_4 = OpLabel
OpBranch %bb5_10
%bb5_10 = OpLabel
%1711 = OpLoad %u32 %1691
%1712 = OpIEqual %bool %1711 %u32_0
OpSelectionMerge %bb18_3 None
OpBranchConditional %1712 %bb18_3 %bb11_4
%bb11_4 = OpLabel
OpStore %1691 %u32_0_1
OpBranch %bb18_3
%bb18_3 = OpLabel
OpBranch %bb7_7
%bb7_7 = OpLabel
%1713 = OpAccessChain %_mut_u32 %1662 %u32_2_0
%1714 = OpLoad %u32 %1713
%1715 = OpBitcast %i32 %1714
OpStore %1693 %1715
%1716 = OpLoad %i32 %1693
%1717 = OpIEqual %bool %1716 %u32_1
OpSelectionMerge %bb17_4 None
OpBranchConditional %1717 %bb13_4 %bb15_4
%bb15_4 = OpLabel
OpBranch %bb17_4
%bb13_4 = OpLabel
%1718 = OpLoad %u32 %1690
%1719 = OpIEqual %bool %1718 %u32_0
OpSelectionMerge %bb16_4 None
OpBranchConditional %1719 %bb16_4 %bb14_4
%bb14_4 = OpLabel
OpStore %1690 %u32_0_1
OpBranch %bb16_4
%bb16_4 = OpLabel
OpBranch %bb17_4
%bb17_4 = OpLabel
OpBranch %bb12_4
%bb12_4 = OpLabel
%1720 = OpLoad %std__result__Result %1664
OpReturnValue %1720
OpFunctionEnd
%rlsl_math__polynomial__quadratic = OpFunction %std__option__Option_1 None %fn_f32__f32__f32_____std__option__Option_rlsl_math__vector__Vec2_f32__
%1722 = OpFunctionParameter %f32
%1723 = OpFunctionParameter %f32
%1724 = OpFunctionParameter %f32
%1725 = OpLabel
%1726 = OpVariable %_mut_f32 Function
OpStore %1726 %1722
%1727 = OpVariable %_mut_f32 Function
OpStore %1727 %1723
%1728 = OpVariable %_mut_f32 Function
OpStore %1728 %1724
%1729 = OpVariable %_mut_std__option__Option_rlsl_math__vector__Vec2_f32__ Function
%1737 = OpVariable %_mut_f32 Function
%1738 = OpVariable %_mut_f32 Function
%1739 = OpVariable %_mut_f32 Function
%1740 = OpVariable %_mut_f32 Function
%1741 = OpVariable %_mut_f32 Function
%1742 = OpVariable %_mut_f32 Function
%1743 = OpVariable %_mut_f32 Function
%1744 = OpVariable %_mut_bool Function
%1745 = OpVariable %_mut_f32 Function
%1746 = OpVariable %_mut_f32 Function
%1747 = OpVariable %_mut_f32 Function
%1748 = OpVariable %_mut_f32 Function
%1749 = OpVariable %_mut_f32 Function
%1750 = OpVariable %_mut_f32 Function
%1751 = OpVariable %_mut_f32 Function
%1752 = OpVariable %_mut_f32 Function
%1753 = OpVariable %_mut_f32 Function
%1754 = OpVariable %_mut_f32 Function
%1755 = OpVariable %_mut_f32 Function
%1756 = OpVariable %_mut_f32 Function
%1757 = OpVariable %_mut_f32 Function
%1758 = OpVariable %_mut_f32 Function
%1759 = OpVariable %_mut_f32 Function
%1760 = OpVariable %_mut_f32 Function
%1761 = OpVariable %_mut_f32 Function
%1762 = OpVariable %_mut_rlsl_math__vector__Vec2_f32_ Function
OpBranch %bb0_34
%bb0_34 = OpLabel
%1763 = OpLoad %f32 %1727
OpStore %1739 %1763
%1764 = OpLoad %f32 %1727
OpStore %1740 %1764
%1765 = OpLoad %f32 %1739
%1766 = OpLoad %f32 %1740
%1767 = OpFMul %f32 %1765 %1766
OpStore %1738 %1767
%1768 = OpLoad %f32 %1726
OpStore %1743 %1768
%1770 = OpLoad %f32 %1743
%1771 = OpFMul %f32 %f32_4 %1770
OpStore %1742 %1771
%1772 = OpLoad %f32 %1742
%1773 = OpLoad %f32 %1728
%1774 = OpFMul %f32 %1772 %1773
OpStore %1741 %1774
%1775 = OpLoad %f32 %1738
%1776 = OpLoad %f32 %1741
%1777 = OpFSub %f32 %1775 %1776
OpStore %1737 %1777
%1778 = OpLoad %f32 %1737
OpStore %1745 %1778
%1779 = OpLoad %f32 %1745
%1780 = OpFOrdLessThan %bool %1779 %f32_0
%1781 = OpSelect %u32 %1780 %u32_1 %u32_0
OpStore %1744 %1781
%1782 = OpLoad %u32 %1744
%1783 = OpIEqual %bool %1782 %u32_0
OpSelectionMerge %bb6_6 None
OpBranchConditional %1783 %bb2_21 %bb1_21
%bb1_21 = OpLabel
%1784 = OpAccessChain %_mut_u32 %1729 %u32_2_0
OpStore %1784 %u32_0
OpBranch %bb6_6
%bb2_21 = OpLabel
%1785 = OpLoad %f32 %1726
OpStore %1747 %1785
%1786 = OpLoad %f32 %1747
%1787 = OpFMul %f32 %f32_2 %1786
OpStore %1746 %1787
%1788 = OpLoad %f32 %1727
OpStore %1751 %1788
%1789 = OpLoad %f32 %1751
%1790 = OpFMul %f32 %f32_n1 %1789
OpStore %1750 %1790
%1791 = OpLoad %f32 %1737
OpStore %1753 %1791
%1792 = OpLoad %f32 %1753
%1793 = OpExtInst %f32 %1 Sqrt %1792
OpStore %1752 %1793
OpBranch %bb4_11
%bb4_11 = OpLabel
%1794 = OpLoad %f32 %1750
%1795 = OpLoad %f32 %1752
%1796 = OpFAdd %f32 %1794 %1795
OpStore %1749 %1796
%1797 = OpLoad %f32 %1746
OpStore %1754 %1797
%1798 = OpLoad %f32 %1749
%1799 = OpLoad %f32 %1754
%1800 = OpFDiv %f32 %1798 %1799
OpStore %1748 %1800
%1801 = OpLoad %f32 %1727
OpStore %1758 %1801
%1802 = OpLoad %f32 %1758
%1803 = OpFMul %f32 %f32_n1 %1802
OpStore %1757 %1803
%1804 = OpLoad %f32 %1737
OpStore %1760 %1804
%1805 = OpLoad %f32 %1760
%1806 = OpExtInst %f32 %1 Sqrt %1805
OpStore %1759 %1806
OpBranch %bb5_11
%bb5_11 = OpLabel
%1807 = OpLoad %f32 %1757
%1808 = OpLoad %f32 %1759
%1809 = OpFSub %f32 %1807 %1808
OpStore %1756 %1809
%1810 = OpLoad %f32 %1746
OpStore %1761 %1810
%1811 = OpLoad %f32 %1756
%1812 = OpLoad %f32 %1761
%1813 = OpFDiv %f32 %1811 %1812
OpStore %1755 %1813
%1814 = OpLoad %f32 %1748
%1815 = OpAccessChain %_mut_f32 %1762 %u32_0
OpStore %1815 %1814
%1816 = OpLoad %f32 %1755
%1817 = OpAccessChain %_mut_f32 %1762 %u32_1
OpStore %1817 %1816
%1818 = OpLoad %rlsl_math__vector__Vec2_f32_ %1762
%1819 = OpAccessChain %_mut_rlsl_math__vector__Vec2_f32_ %1729 %u32_1 %u32_0
OpStore %1819 %1818
%1820 = OpAccessChain %_mut_u32 %1729 %u32_2_0
OpStore %1820 %u32_1
OpBranch %bb6_6
%bb6_6 = OpLabel
OpBranch %bb3_16
%bb3_16 = OpLabel
%1821 = OpLoad %std__option__Option_1 %1729
OpReturnValue %1821
OpFunctionEnd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment