Skip to content

Instantly share code, notes, and snippets.

@MaikKlein
Created September 23, 2018 11:58
Show Gist options
  • Save MaikKlein/9abbd249b276eec84084642201a72c6d to your computer and use it in GitHub Desktop.
Save MaikKlein/9abbd249b276eec84084642201a72c6d to your computer and use it in GitHub Desktop.
; SPIR-V
; Version: 1.0
; Generator: Google rspirv; 0
; Bound: 1333
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %20 "fragment" %35 %39 %45
OpExecutionMode %20 OriginUpperLeft
OpMemberName %_ZN9rlsl_math5entry5Input 0 "data"
OpName %_ZN9rlsl_math5entry5Input "_ZN9rlsl_math5entry5Input"
OpMemberName %_ZN9rlsl_math5entry6Output 0 "data"
OpName %_ZN9rlsl_math5entry6Output "_ZN9rlsl_math5entry6Output"
OpMemberName %_ZN9rlsl_math5entry7Uniform 0 "data"
OpName %_ZN9rlsl_math5entry7Uniform "_ZN9rlsl_math5entry7Uniform"
OpMemberName %_ZN9rlsl_math5entry8Fragment 0 "frag_coord"
OpName %_ZN9rlsl_math5entry8Fragment "_ZN9rlsl_math5entry8Fragment"
OpMemberName %_ZN9rlsl_math4unit4Unit 0 "inner"
OpName %_ZN9rlsl_math4unit4Unit "_ZN9rlsl_math4unit4Unit"
OpMemberName %_ZN3ray3Ray 0 "origin"
OpMemberName %_ZN3ray3Ray 1 "dir"
OpName %_ZN3ray3Ray "_ZN3ray3Ray"
OpMemberName %_ZN3ray6Sphere 0 "origin"
OpMemberName %_ZN3ray6Sphere 1 "radius"
OpName %_ZN3ray6Sphere "_ZN3ray6Sphere"
OpName %_ZN4core6option6Option4None "_ZN4core6option6Option4None"
OpMemberName %_ZN3ray6RayHit 0 "dist"
OpMemberName %_ZN3ray6RayHit 1 "position"
OpMemberName %_ZN3ray6RayHit 2 "normal"
OpName %_ZN3ray6RayHit "_ZN3ray6RayHit"
OpMemberName %_ZN4core6option6Option4Some 0 "0"
OpName %_ZN4core6option6Option4Some "_ZN4core6option6Option4Some"
OpMemberName %_ZN4core6option6Option 0 "0"
OpName %_ZN4core6option6Option "_ZN4core6option6Option"
OpName %_ZN4core6marker11PhantomData "_ZN4core6marker11PhantomData"
OpName %bb0 "bb0"
OpName %bb1 "bb1"
OpName %bb2 "bb2"
OpName %bb3 "bb3"
OpName %bb14 "bb14"
OpName %bb4 "bb4"
OpName %bb5 "bb5"
OpName %bb6 "bb6"
OpName %bb7 "bb7"
OpName %bb8 "bb8"
OpName %bb13 "bb13"
OpName %bb9 "bb9"
OpName %bb11 "bb11"
OpName %bb15 "bb15"
OpName %bb16 "bb16"
OpName %bb12 "bb12"
OpName %bb17 "bb17"
OpName %bb10 "bb10"
OpName %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul "_ZN45_$LT$f32$u20$as$u20$core..ops..arith..Mul$GT$3mul"
OpName %bb0_0 "bb0"
OpName %_ZN83__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Mul_LT_T_GT__GT_3mul "_ZN83_$LT$rlsl_math..vector..Vec3$LT$T$GT$$u20$as$u20$core..ops..arith..Mul$LT$T$GT$$GT$3mul"
OpName %bb0_1 "bb0"
OpName %bb1_0 "bb1"
OpName %bb2_0 "bb2"
OpName %bb3_0 "bb3"
OpName %_ZN83__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Div_LT_T_GT__GT_3div "_ZN83_$LT$rlsl_math..vector..Vec3$LT$T$GT$$u20$as$u20$core..ops..arith..Div$LT$T$GT$$GT$3div"
OpName %bb0_2 "bb0"
OpName %bb1_1 "bb1"
OpName %bb2_1 "bb2"
OpName %bb3_1 "bb3"
OpName %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Div_GT_3div "_ZN45_$LT$f32$u20$as$u20$core..ops..arith..Div$GT$3div"
OpName %bb0_3 "bb0"
OpName %_ZN9rlsl_math6vector6Vector6length "_ZN9rlsl_math6vector6Vector6length"
OpName %bb0_4 "bb0"
OpName %bb1_2 "bb1"
OpName %bb2_2 "bb2"
OpName %_ZN41__LT_rlsl_math__vector__Vec2_LT_T_GT__GT_4fold "_ZN41_$LT$rlsl_math..vector..Vec2$LT$T$GT$$GT$4fold"
OpName %bb0_5 "bb0"
OpName %bb3_2 "bb3"
OpName %bb4_0 "bb4"
OpName %bb5_0 "bb5"
OpName %_ZN4core3cmp5impls55__LT_impl_u20_core__cmp__PartialOrd_u20_for_u20_f32_GT_2lt "_ZN4core3cmp5impls55_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$f32$GT$2lt"
OpName %bb0_6 "bb0"
OpName %_ZN41__LT_rlsl_math__vector__Vec3_LT_T_GT__GT_4lerp "_ZN41_$LT$rlsl_math..vector..Vec3$LT$T$GT$$GT$4lerp"
OpName %bb0_7 "bb0"
OpName %bb1_3 "bb1"
OpName %bb2_3 "bb2"
OpName %bb3_3 "bb3"
OpName %bb4_1 "bb4"
OpName %bb5_1 "bb5"
OpName %bb6_0 "bb6"
OpName %bb7_0 "bb7"
OpName %bb8_0 "bb8"
OpName %bb9_0 "bb9"
OpName %bb10_0 "bb10"
OpName %bb11_0 "bb11"
OpName %_ZN45__LT_f32_u20_as_u20_rlsl_math__num__Float_GT_4sqrt "_ZN45_$LT$f32$u20$as$u20$rlsl_math..num..Float$GT$4sqrt"
OpName %bb0_8 "bb0"
OpName %bb1_4 "bb1"
OpName %_ZN78__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_rlsl_math__vector__Vector_GT_9normalize "_ZN78_$LT$rlsl_math..vector..Vec3$LT$T$GT$$u20$as$u20$rlsl_math..vector..Vector$GT$9normalize"
OpName %bb0_9 "bb0"
OpName %bb2_4 "bb2"
OpName %bb1_5 "bb1"
OpName %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Sub_GT_3sub "_ZN45_$LT$f32$u20$as$u20$core..ops..arith..Sub$GT$3sub"
OpName %bb0_10 "bb0"
OpName %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Add_GT_3add "_ZN45_$LT$f32$u20$as$u20$core..ops..arith..Add$GT$3add"
OpName %bb0_11 "bb0"
OpName %_ZN45__LT_f32_u20_as_u20_rlsl_math__num__Float_GT_3one "_ZN45_$LT$f32$u20$as$u20$rlsl_math..num..Float$GT$3one"
OpName %bb0_12 "bb0"
OpName %_ZN3ray3Ray8position "_ZN3ray3Ray8position"
OpName %bb0_13 "bb0"
OpName %bb1_6 "bb1"
OpName %bb2_5 "bb2"
OpName %_ZN3ray6Sphere3new "_ZN3ray6Sphere3new"
OpName %bb0_14 "bb0"
OpName %_ZN83__LT_rlsl_math__vector__Vec2_LT_T_GT__u20_as_u20_core__ops__arith__Sub_LT_T_GT__GT_3sub "_ZN83_$LT$rlsl_math..vector..Vec2$LT$T$GT$$u20$as$u20$core..ops..arith..Sub$LT$T$GT$$GT$3sub"
OpName %bb0_15 "bb0"
OpName %bb1_7 "bb1"
OpName %bb2_6 "bb2"
OpName %_ZN74__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Add_GT_3add "_ZN74_$LT$rlsl_math..vector..Vec3$LT$T$GT$$u20$as$u20$core..ops..arith..Add$GT$3add"
OpName %bb0_16 "bb0"
OpName %bb1_8 "bb1"
OpName %bb2_7 "bb2"
OpName %bb3_4 "bb3"
OpName %_ZN45__LT_f32_u20_as_u20_rlsl_math__num__Float_GT_3sin "_ZN45_$LT$f32$u20$as$u20$rlsl_math..num..Float$GT$3sin"
OpName %bb0_17 "bb0"
OpName %bb1_9 "bb1"
OpName %_ZN83__LT_rlsl_math__vector__Vec2_LT_T_GT__u20_as_u20_core__ops__arith__Mul_LT_T_GT__GT_3mul "_ZN83_$LT$rlsl_math..vector..Vec2$LT$T$GT$$u20$as$u20$core..ops..arith..Mul$LT$T$GT$$GT$3mul"
OpName %bb0_18 "bb0"
OpName %bb1_10 "bb1"
OpName %bb2_8 "bb2"
OpName %_ZN41__LT_rlsl_math__vector__Vec2_LT_T_GT__GT_10from_polar "_ZN41_$LT$rlsl_math..vector..Vec2$LT$T$GT$$GT$10from_polar"
OpName %bb0_19 "bb0"
OpName %bb1_11 "bb1"
OpName %bb2_9 "bb2"
OpName %bb3_5 "bb3"
OpName %bb4_2 "bb4"
OpName %_ZN3ray6Sphere9intersect "_ZN3ray6Sphere9intersect"
OpMemberName %_ZN4core6result6Result2Ok 0 "0"
OpName %_ZN4core6result6Result2Ok "_ZN4core6result6Result2Ok"
OpName %_ZN4core6option9NoneError "_ZN4core6option9NoneError"
OpMemberName %_ZN4core6result6Result3Err 0 "0"
OpName %_ZN4core6result6Result3Err "_ZN4core6result6Result3Err"
OpMemberName %_ZN4core6result6Result 0 "0"
OpMemberName %_ZN4core6result6Result 1 "0"
OpName %_ZN4core6result6Result "_ZN4core6result6Result"
OpName %_ZN4core6option6Option4None_0 "_ZN4core6option6Option4None"
OpMemberName %_ZN4core6option6Option4Some_0 0 "0"
OpName %_ZN4core6option6Option4Some_0 "_ZN4core6option6Option4Some"
OpMemberName %_ZN4core6option6Option_0 0 "0"
OpName %_ZN4core6option6Option_0 "_ZN4core6option6Option"
OpName %bb0_20 "bb0"
OpName %bb1_12 "bb1"
OpName %bb12_0 "bb12"
OpName %bb13_0 "bb13"
OpName %bb2_10 "bb2"
OpName %bb14_0 "bb14"
OpName %bb3_6 "bb3"
OpName %bb5_2 "bb5"
OpName %bb7_1 "bb7"
OpName %bb4_3 "bb4"
OpName %bb15_0 "bb15"
OpName %bb8_1 "bb8"
OpName %bb17_0 "bb17"
OpName %bb9_1 "bb9"
OpName %bb10_1 "bb10"
OpName %bb11_1 "bb11"
OpName %bb16_0 "bb16"
OpName %bb18 "bb18"
OpName %bb19 "bb19"
OpName %bb6_1 "bb6"
OpName %_ZN3ray3Ray3new "_ZN3ray3Ray3new"
OpName %bb0_21 "bb0"
OpName %_ZN74__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Sub_GT_3sub "_ZN74_$LT$rlsl_math..vector..Vec3$LT$T$GT$$u20$as$u20$core..ops..arith..Sub$GT$3sub"
OpName %bb0_22 "bb0"
OpName %bb1_13 "bb1"
OpName %bb2_11 "bb2"
OpName %bb3_7 "bb3"
OpName %_ZN41__LT_rlsl_math__vector__Vec2_LT_T_GT__GT_3min28__u7b__u7b_closure_u7d__u7d_ "_ZN41_$LT$rlsl_math..vector..Vec2$LT$T$GT$$GT$3min28_$u7b$$u7b$closure$u7d$$u7d$"
OpName %bb0_23 "bb0"
OpName %bb1_14 "bb1"
OpName %bb2_12 "bb2"
OpName %bb3_8 "bb3"
OpName %bb5_3 "bb5"
OpName %bb4_4 "bb4"
OpName %_ZN38__LT_core__option__Option_LT_T_GT__GT_5ok_or "_ZN38_$LT$core..option..Option$LT$T$GT$$GT$5ok_or"
OpName %bb0_24 "bb0"
OpName %bb3_9 "bb3"
OpName %bb4_5 "bb4"
OpName %bb2_13 "bb2"
OpName %bb21 "bb21"
OpName %bb5_4 "bb5"
OpName %bb11_2 "bb11"
OpName %bb20 "bb20"
OpName %bb7_2 "bb7"
OpName %bb15_1 "bb15"
OpName %bb13_1 "bb13"
OpName %bb14_1 "bb14"
OpName %bb18_0 "bb18"
OpName %bb19_0 "bb19"
OpName %bb12_1 "bb12"
OpName %_ZN9rlsl_math10polynomial9quadratic "_ZN9rlsl_math10polynomial9quadratic"
OpName %bb0_25 "bb0"
OpName %bb1_15 "bb1"
OpName %bb2_14 "bb2"
OpName %bb4_6 "bb4"
OpName %bb5_5 "bb5"
OpName %bb6_2 "bb6"
OpName %bb3_10 "bb3"
OpName %_ZN78__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_rlsl_math__vector__Vector_GT_3dot "_ZN78_$LT$rlsl_math..vector..Vec3$LT$T$GT$$u20$as$u20$rlsl_math..vector..Vector$GT$3dot"
OpName %bb0_26 "bb0"
OpName %bb1_16 "bb1"
OpName %bb2_15 "bb2"
OpName %bb3_11 "bb3"
OpName %bb4_7 "bb4"
OpName %bb5_6 "bb5"
OpName %_ZN45__LT_f32_u20_as_u20_rlsl_math__num__Float_GT_3cos "_ZN45_$LT$f32$u20$as$u20$rlsl_math..num..Float$GT$3cos"
OpName %bb0_27 "bb0"
OpName %bb1_17 "bb1"
OpMemberDecorate %_ZN9rlsl_math5entry5Input 0 Offset 0
OpDecorate %_ZN9rlsl_math5entry5Input Block
OpMemberDecorate %_ZN9rlsl_math5entry5Input 0 Location 0
OpMemberDecorate %_ZN9rlsl_math5entry6Output 0 Offset 0
OpDecorate %_ZN9rlsl_math5entry6Output Block
OpMemberDecorate %_ZN9rlsl_math5entry6Output 0 Location 0
OpMemberDecorate %_ZN9rlsl_math5entry7Uniform 0 Offset 0
OpDecorate %_ZN9rlsl_math5entry7Uniform Block
OpMemberDecorate %_ZN9rlsl_math5entry8Fragment 0 Offset 0
OpDecorate %_ZN9rlsl_math5entry8Fragment Block
OpMemberDecorate %_ZN9rlsl_math5entry8Fragment 0 BuiltIn FragCoord
OpDecorate %42 DescriptorSet 0
OpDecorate %42 Binding 0
OpMemberDecorate %_ZN9rlsl_math4unit4Unit 0 Offset 0
OpMemberDecorate %_ZN3ray3Ray 0 Offset 0
OpMemberDecorate %_ZN3ray3Ray 1 Offset 16
OpMemberDecorate %_ZN3ray6Sphere 0 Offset 0
OpMemberDecorate %_ZN3ray6Sphere 1 Offset 12
OpMemberDecorate %_ZN3ray6RayHit 0 Offset 0
OpMemberDecorate %_ZN3ray6RayHit 1 Offset 16
OpMemberDecorate %_ZN3ray6RayHit 2 Offset 32
%float = OpTypeFloat 32
%v2float = OpTypeVector %float 2
%_ZN9rlsl_math5entry5Input = OpTypeStruct %v2float
%_ptr_Input__ZN9rlsl_math5entry5Input = OpTypePointer Input %_ZN9rlsl_math5entry5Input
%35 = OpVariable %_ptr_Input__ZN9rlsl_math5entry5Input Input
%v4float = OpTypeVector %float 4
%_ZN9rlsl_math5entry6Output = OpTypeStruct %v4float
%_ptr_Output__ZN9rlsl_math5entry6Output = OpTypePointer Output %_ZN9rlsl_math5entry6Output
%39 = OpVariable %_ptr_Output__ZN9rlsl_math5entry6Output Output
%_ZN9rlsl_math5entry7Uniform = OpTypeStruct %float
%_ptr_Uniform__ZN9rlsl_math5entry7Uniform = OpTypePointer Uniform %_ZN9rlsl_math5entry7Uniform
%42 = OpVariable %_ptr_Uniform__ZN9rlsl_math5entry7Uniform Uniform
%_ZN9rlsl_math5entry8Fragment = OpTypeStruct %v4float
%_ptr_Input__ZN9rlsl_math5entry8Fragment = OpTypePointer Input %_ZN9rlsl_math5entry8Fragment
%45 = OpVariable %_ptr_Input__ZN9rlsl_math5entry8Fragment Input
%void = OpTypeVoid
%47 = OpTypeFunction %void
%_ptr_Function_v2float = OpTypePointer Function %v2float
%_ptr_Function_float = OpTypePointer Function %float
%v3float = OpTypeVector %float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
%_ZN9rlsl_math4unit4Unit = OpTypeStruct %v3float
%_ZN3ray3Ray = OpTypeStruct %v3float %_ZN9rlsl_math4unit4Unit
%_ptr_Function__ZN3ray3Ray = OpTypePointer Function %_ZN3ray3Ray
%_ptr_Function__ZN9rlsl_math4unit4Unit = OpTypePointer Function %_ZN9rlsl_math4unit4Unit
%_ZN3ray6Sphere = OpTypeStruct %v3float %float
%_ptr_Function__ZN3ray6Sphere = OpTypePointer Function %_ZN3ray6Sphere
%uint = OpTypeInt 32 0
%_ZN4core6option6Option4None = OpTypeStruct
%_ZN3ray6RayHit = OpTypeStruct %float %v3float %_ZN9rlsl_math4unit4Unit
%_ZN4core6option6Option4Some = OpTypeStruct %_ZN3ray6RayHit
%_ZN4core6option6Option = OpTypeStruct %_ZN4core6option6Option4None %_ZN4core6option6Option4Some %uint
%_ptr_Function__ZN4core6option6Option = OpTypePointer Function %_ZN4core6option6Option
%_ptr_Function_v4float = OpTypePointer Function %v4float
%int = OpTypeInt 32 1
%_ptr_Function_int = OpTypePointer Function %int
%_ptr_Function__ZN3ray6RayHit = OpTypePointer Function %_ZN3ray6RayHit
%_ZN4core6marker11PhantomData = OpTypeStruct
%_ptr_Function__ZN4core6marker11PhantomData = OpTypePointer Function %_ZN4core6marker11PhantomData
%_ptr_Function__ZN9rlsl_math5entry5Input = OpTypePointer Function %_ZN9rlsl_math5entry5Input
%_ptr_Input_v2float = OpTypePointer Input %v2float
%uint_0 = OpConstant %uint 0
%_ptr_Function__ZN9rlsl_math5entry7Uniform = OpTypePointer Function %_ZN9rlsl_math5entry7Uniform
%_ptr_Uniform_float = OpTypePointer Uniform %float
%float_2 = OpConstant %float 2
%float_1 = OpConstant %float 1
%uint_1 = OpConstant %uint 1
%float_0 = OpConstant %float 0
%uint_2 = OpConstant %uint 2
%float_8 = OpConstant %float 8
%float_n4 = OpConstant %float -4
%_ptr_Function_uint = OpTypePointer Function %uint
%float_0_200000003 = OpConstant %float 0.200000003
%float_0_5 = OpConstant %float 0.5
%uint_3 = OpConstant %uint 3
%float_0_899999976 = OpConstant %float 0.899999976
%float_0_100000001 = OpConstant %float 0.100000001
%_ptr_Output_v4float = OpTypePointer Output %v4float
%293 = OpTypeFunction %float %float %float
%309 = OpTypeFunction %v3float %v3float %float
%413 = OpTypeFunction %float %v3float
%_struct_432 = OpTypeStruct
%433 = OpTypeFunction %float %v2float %float %_struct_432
%_ptr_Function__struct_432 = OpTypePointer Function %_struct_432
%_struct_450 = OpTypeStruct %float %float
%_ptr_Function__struct_450 = OpTypePointer Function %_struct_450
%bool = OpTypeBool
%482 = OpTypeFunction %bool %_ptr_Function_float %_ptr_Function_float
%_ptr_Function_bool = OpTypePointer Function %bool
%497 = OpTypeFunction %v3float %v3float %v3float %float
%599 = OpTypeFunction %float %float
%609 = OpTypeFunction %v3float %v3float
%658 = OpTypeFunction %float
%663 = OpTypeFunction %v3float %_ptr_Function__ZN3ray3Ray %float
%687 = OpTypeFunction %_ZN3ray6Sphere %v3float %float
%700 = OpTypeFunction %v2float %v2float %float
%733 = OpTypeFunction %v3float %v3float %v3float
%822 = OpTypeFunction %v2float %float %float
%861 = OpTypeFunction %_ZN4core6option6Option %_ptr_Function__ZN3ray6Sphere %_ZN3ray3Ray
%_ZN4core6result6Result2Ok = OpTypeStruct %v2float
%_ZN4core6option9NoneError = OpTypeStruct
%_ZN4core6result6Result3Err = OpTypeStruct %_ZN4core6option9NoneError
%_ZN4core6result6Result = OpTypeStruct %_ZN4core6result6Result2Ok %_ZN4core6result6Result3Err %uint
%_ptr_Function__ZN4core6result6Result = OpTypePointer Function %_ZN4core6result6Result
%_ZN4core6option6Option4None_0 = OpTypeStruct
%_ZN4core6option6Option4Some_0 = OpTypeStruct %v2float
%_ZN4core6option6Option_0 = OpTypeStruct %_ZN4core6option6Option4None_0 %_ZN4core6option6Option4Some_0 %uint
%_ptr_Function__ZN4core6option6Option_0 = OpTypePointer Function %_ZN4core6option6Option_0
%_ptr_Function__ZN4core6option9NoneError = OpTypePointer Function %_ZN4core6option9NoneError
%1025 = OpTypeFunction %_ZN3ray3Ray %v3float %_ZN9rlsl_math4unit4Unit
%1085 = OpTypeFunction %float %_ptr_Function__struct_432 %float %float
%1109 = OpTypeFunction %_ZN4core6result6Result %_ZN4core6option6Option_0 %_ZN4core6option9NoneError
%false = OpConstantFalse %bool
%true = OpConstantTrue %bool
%1173 = OpTypeFunction %_ZN4core6option6Option_0 %float %float %float
%float_4 = OpConstant %float 4
%float_n1 = OpConstant %float -1
%1273 = OpTypeFunction %float %v3float %v3float
%20 = OpFunction %void None %47
%48 = OpLabel
%68 = OpVariable %_ptr_Function_v2float Function
%69 = OpVariable %_ptr_Function_v2float Function
%71 = OpVariable %_ptr_Function_float Function
%72 = OpVariable %_ptr_Function_float Function
%75 = OpVariable %_ptr_Function_v3float Function
%76 = OpVariable %_ptr_Function_v2float Function
%77 = OpVariable %_ptr_Function_v2float Function
%78 = OpVariable %_ptr_Function_v2float Function
%79 = OpVariable %_ptr_Function_v3float Function
%80 = OpVariable %_ptr_Function_v3float Function
%81 = OpVariable %_ptr_Function_v3float Function
%82 = OpVariable %_ptr_Function_v3float Function
%83 = OpVariable %_ptr_Function_v3float Function
%87 = OpVariable %_ptr_Function__ZN3ray3Ray Function
%88 = OpVariable %_ptr_Function_v3float Function
%90 = OpVariable %_ptr_Function__ZN9rlsl_math4unit4Unit Function
%91 = OpVariable %_ptr_Function_v3float Function
%92 = OpVariable %_ptr_Function_v2float Function
%93 = OpVariable %_ptr_Function_float Function
%96 = OpVariable %_ptr_Function__ZN3ray6Sphere Function
%97 = OpVariable %_ptr_Function_v3float Function
%104 = OpVariable %_ptr_Function__ZN4core6option6Option Function
%105 = OpVariable %_ptr_Function_v3float Function
%107 = OpVariable %_ptr_Function_v4float Function
%110 = OpVariable %_ptr_Function_int Function
%112 = OpVariable %_ptr_Function__ZN3ray6RayHit Function
%113 = OpVariable %_ptr_Function_int Function
%114 = OpVariable %_ptr_Function_v3float Function
%115 = OpVariable %_ptr_Function_v3float Function
%116 = OpVariable %_ptr_Function_v3float Function
%117 = OpVariable %_ptr_Function_v3float Function
%118 = OpVariable %_ptr_Function_float Function
%119 = OpVariable %_ptr_Function_v3float Function
%120 = OpVariable %_ptr_Function_v3float Function
%121 = OpVariable %_ptr_Function_v3float Function
%122 = OpVariable %_ptr_Function_float Function
%123 = OpVariable %_ptr_Function_float Function
%124 = OpVariable %_ptr_Function_v3float Function
%125 = OpVariable %_ptr_Function_v3float Function
%126 = OpVariable %_ptr_Function_v3float Function
%127 = OpVariable %_ptr_Function_v3float Function
%128 = OpVariable %_ptr_Function_v3float Function
%129 = OpVariable %_ptr_Function_v4float Function
%130 = OpVariable %_ptr_Function_float Function
%131 = OpVariable %_ptr_Function_float Function
%132 = OpVariable %_ptr_Function_v3float Function
%133 = OpVariable %_ptr_Function_float Function
%134 = OpVariable %_ptr_Function_float Function
%137 = OpVariable %_ptr_Function__ZN4core6marker11PhantomData Function
%138 = OpVariable %_ptr_Function_float Function
%139 = OpVariable %_ptr_Function_float Function
%140 = OpVariable %_ptr_Function_float Function
%141 = OpVariable %_ptr_Function_float Function
%142 = OpVariable %_ptr_Function_float Function
%143 = OpVariable %_ptr_Function_float Function
OpBranch %bb0
%bb0 = OpLabel
%147 = OpAccessChain %_ptr_Input_v2float %35 %uint_0
%148 = OpLoad %v2float %147
OpStore %69 %148
%151 = OpAccessChain %_ptr_Uniform_float %42 %uint_0
%152 = OpLoad %float %151
OpStore %72 %152
%153 = OpLoad %v2float %69
OpStore %78 %153
%154 = OpLoad %v2float %78
%156 = OpFunctionCall %v2float %_ZN83__LT_rlsl_math__vector__Vec2_LT_T_GT__u20_as_u20_core__ops__arith__Mul_LT_T_GT__GT_3mul %154 %float_2
OpStore %77 %156
OpBranch %bb1
%bb1 = OpLabel
%157 = OpLoad %v2float %77
%159 = OpFunctionCall %v2float %_ZN83__LT_rlsl_math__vector__Vec2_LT_T_GT__u20_as_u20_core__ops__arith__Sub_LT_T_GT__GT_3sub %157 %float_1
OpStore %76 %159
OpBranch %bb2
%bb2 = OpLabel
%160 = OpAccessChain %_ptr_Function_float %76 %uint_0
%161 = OpLoad %float %160
OpStore %130 %161
%163 = OpAccessChain %_ptr_Function_float %76 %uint_1
%164 = OpLoad %float %163
OpStore %131 %164
%165 = OpLoad %float %130
%166 = OpAccessChain %_ptr_Function_float %75 %uint_0
OpStore %166 %165
%167 = OpLoad %float %131
%168 = OpAccessChain %_ptr_Function_float %75 %uint_1
OpStore %168 %167
%171 = OpAccessChain %_ptr_Function_float %75 %uint_2
OpStore %171 %float_0
%172 = OpAccessChain %_ptr_Function_float %79 %uint_0
OpStore %172 %float_0
%173 = OpAccessChain %_ptr_Function_float %79 %uint_1
OpStore %173 %float_0
%174 = OpAccessChain %_ptr_Function_float %79 %uint_2
OpStore %174 %float_1
%175 = OpAccessChain %_ptr_Function_float %80 %uint_0
OpStore %175 %float_0
%176 = OpAccessChain %_ptr_Function_float %80 %uint_1
OpStore %176 %float_0
%177 = OpAccessChain %_ptr_Function_float %80 %uint_2
OpStore %177 %float_0
%178 = OpLoad %v3float %79
OpStore %82 %178
%179 = OpLoad %v3float %75
OpStore %83 %179
%180 = OpLoad %v3float %82
%181 = OpLoad %v3float %83
%182 = OpFunctionCall %v3float %_ZN74__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Add_GT_3add %180 %181
OpStore %81 %182
OpBranch %bb3
%bb3 = OpLabel
%183 = OpLoad %v3float %80
OpStore %88 %183
%184 = OpLoad %v3float %81
%185 = OpFunctionCall %v3float %_ZN78__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_rlsl_math__vector__Vector_GT_9normalize %184
OpStore %132 %185
OpBranch %bb14
%bb14 = OpLabel
%186 = OpLoad %v3float %132
%187 = OpAccessChain %_ptr_Function_v3float %90 %uint_0
OpStore %187 %186
%188 = OpLoad %v3float %88
%189 = OpLoad %_ZN9rlsl_math4unit4Unit %90
%190 = OpFunctionCall %_ZN3ray3Ray %_ZN3ray3Ray3new %188 %189
OpStore %87 %190
OpBranch %bb4
%bb4 = OpLabel
%191 = OpLoad %float %72
%192 = OpFMul %float %float_1 %191
OpStore %93 %192
%193 = OpLoad %float %93
%194 = OpFunctionCall %v2float %_ZN41__LT_rlsl_math__vector__Vec2_LT_T_GT__GT_10from_polar %193 %float_2
OpStore %92 %194
OpBranch %bb5
%bb5 = OpLabel
%195 = OpAccessChain %_ptr_Function_float %92 %uint_0
%196 = OpLoad %float %195
OpStore %133 %196
%197 = OpAccessChain %_ptr_Function_float %92 %uint_1
%198 = OpLoad %float %197
OpStore %134 %198
%199 = OpLoad %float %133
%200 = OpAccessChain %_ptr_Function_float %91 %uint_0
OpStore %200 %199
%201 = OpLoad %float %134
%202 = OpAccessChain %_ptr_Function_float %91 %uint_1
OpStore %202 %201
%204 = OpAccessChain %_ptr_Function_float %91 %uint_2
OpStore %204 %float_8
%205 = OpLoad %v3float %91
OpStore %97 %205
%206 = OpLoad %v3float %97
%207 = OpFunctionCall %_ZN3ray6Sphere %_ZN3ray6Sphere3new %206 %float_1
OpStore %96 %207
OpBranch %bb6
%bb6 = OpLabel
%208 = OpLoad %_ZN3ray3Ray %87
%209 = OpFunctionCall %_ZN4core6option6Option %_ZN3ray6Sphere9intersect %96 %208
OpStore %104 %209
OpBranch %bb7
%bb7 = OpLabel
%210 = OpAccessChain %_ptr_Function_float %105 %uint_0
OpStore %210 %float_2
%212 = OpAccessChain %_ptr_Function_float %105 %uint_1
OpStore %212 %float_n4
%213 = OpAccessChain %_ptr_Function_float %105 %uint_2
OpStore %213 %float_0
%215 = OpAccessChain %_ptr_Function_uint %104 %uint_2
%216 = OpLoad %uint %215
%217 = OpBitcast %int %216
OpStore %110 %217
%218 = OpAccessChain %_ptr_Function_uint %104 %uint_2
%219 = OpLoad %uint %218
%220 = OpBitcast %int %219
OpStore %113 %220
%221 = OpLoad %int %113
OpSelectionMerge %bb17 None
OpSwitch %221 %bb8 1 %bb9
%bb8 = OpLabel
%222 = OpAccessChain %_ptr_Function_float %69 %uint_1
%223 = OpLoad %float %222
OpStore %123 %223
%224 = OpAccessChain %_ptr_Function_float %124 %uint_0
OpStore %224 %float_1
%225 = OpAccessChain %_ptr_Function_float %124 %uint_1
OpStore %225 %float_1
%226 = OpAccessChain %_ptr_Function_float %124 %uint_2
OpStore %226 %float_1
%228 = OpAccessChain %_ptr_Function_float %125 %uint_0
OpStore %228 %float_0_200000003
%230 = OpAccessChain %_ptr_Function_float %125 %uint_1
OpStore %230 %float_0_5
%231 = OpAccessChain %_ptr_Function_float %125 %uint_2
OpStore %231 %float_1
%232 = OpLoad %v3float %125
OpStore %127 %232
%233 = OpLoad %v3float %124
OpStore %128 %233
%234 = OpLoad %v3float %127
%235 = OpLoad %v3float %128
%236 = OpLoad %float %123
%237 = OpFunctionCall %v3float %_ZN41__LT_rlsl_math__vector__Vec3_LT_T_GT__GT_4lerp %234 %235 %236
OpStore %126 %237
OpBranch %bb13
%bb13 = OpLabel
%238 = OpAccessChain %_ptr_Function_float %126 %uint_0
%239 = OpLoad %float %238
OpStore %141 %239
%240 = OpAccessChain %_ptr_Function_float %126 %uint_1
%241 = OpLoad %float %240
OpStore %142 %241
%242 = OpAccessChain %_ptr_Function_float %126 %uint_2
%243 = OpLoad %float %242
OpStore %143 %243
%244 = OpLoad %float %141
%245 = OpAccessChain %_ptr_Function_float %107 %uint_0
OpStore %245 %244
%246 = OpLoad %float %142
%247 = OpAccessChain %_ptr_Function_float %107 %uint_1
OpStore %247 %246
%248 = OpLoad %float %143
%249 = OpAccessChain %_ptr_Function_float %107 %uint_2
OpStore %249 %248
%251 = OpAccessChain %_ptr_Function_float %107 %uint_3
OpStore %251 %float_1
OpBranch %bb17
%bb9 = OpLabel
%252 = OpAccessChain %_ptr_Function__ZN3ray6RayHit %104 %uint_1 %uint_0
%253 = OpLoad %_ZN3ray6RayHit %252
OpStore %112 %253
%254 = OpLoad %v3float %105
OpStore %116 %254
%255 = OpAccessChain %_ptr_Function_v3float %112 %uint_1
%256 = OpLoad %v3float %255
OpStore %117 %256
%257 = OpLoad %v3float %116
%258 = OpLoad %v3float %117
%259 = OpFunctionCall %v3float %_ZN74__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Sub_GT_3sub %257 %258
OpStore %115 %259
OpBranch %bb11
%bb11 = OpLabel
%260 = OpLoad %v3float %115
%261 = OpFunctionCall %v3float %_ZN78__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_rlsl_math__vector__Vector_GT_9normalize %260
OpStore %114 %261
OpBranch %bb15
%bb15 = OpLabel
%262 = OpAccessChain %_ptr_Function__ZN9rlsl_math4unit4Unit %112 %uint_2
%263 = OpAccessChain %_ptr_Function_v3float %262 %uint_0
%264 = OpLoad %v3float %263
OpStore %119 %264
%265 = OpLoad %v3float %114
%266 = OpLoad %v3float %119
%267 = OpFunctionCall %float %_ZN78__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_rlsl_math__vector__Vector_GT_3dot %265 %266
OpStore %118 %267
OpBranch %bb16
%bb16 = OpLabel
%269 = OpAccessChain %_ptr_Function_float %121 %uint_0
OpStore %269 %float_0_899999976
%271 = OpAccessChain %_ptr_Function_float %121 %uint_1
OpStore %271 %float_0_100000001
%272 = OpAccessChain %_ptr_Function_float %121 %uint_2
OpStore %272 %float_0_100000001
%273 = OpLoad %v3float %121
%274 = OpLoad %float %118
%275 = OpFunctionCall %v3float %_ZN83__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Mul_LT_T_GT__GT_3mul %273 %274
OpStore %120 %275
OpBranch %bb12
%bb12 = OpLabel
%276 = OpAccessChain %_ptr_Function_float %120 %uint_0
%277 = OpLoad %float %276
OpStore %138 %277
%278 = OpAccessChain %_ptr_Function_float %120 %uint_1
%279 = OpLoad %float %278
OpStore %139 %279
%280 = OpAccessChain %_ptr_Function_float %120 %uint_2
%281 = OpLoad %float %280
OpStore %140 %281
%282 = OpLoad %float %138
%283 = OpAccessChain %_ptr_Function_float %107 %uint_0
OpStore %283 %282
%284 = OpLoad %float %139
%285 = OpAccessChain %_ptr_Function_float %107 %uint_1
OpStore %285 %284
%286 = OpLoad %float %140
%287 = OpAccessChain %_ptr_Function_float %107 %uint_2
OpStore %287 %286
%288 = OpAccessChain %_ptr_Function_float %107 %uint_3
OpStore %288 %float_1
OpBranch %bb17
%bb17 = OpLabel
OpBranch %bb10
%bb10 = OpLabel
%289 = OpLoad %v4float %107
OpStore %129 %289
%290 = OpLoad %v4float %129
%292 = OpAccessChain %_ptr_Output_v4float %39 %uint_0
OpStore %292 %290
OpReturn
OpFunctionEnd
%_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul = OpFunction %float None %293
%294 = OpFunctionParameter %float
%295 = OpFunctionParameter %float
%296 = OpLabel
%297 = OpVariable %_ptr_Function_float Function
OpStore %297 %294
%298 = OpVariable %_ptr_Function_float Function
OpStore %298 %295
%299 = OpVariable %_ptr_Function_float Function
%301 = OpVariable %_ptr_Function_float Function
%302 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_0
%bb0_0 = OpLabel
%303 = OpLoad %float %297
OpStore %301 %303
%304 = OpLoad %float %298
OpStore %302 %304
%305 = OpLoad %float %301
%306 = OpLoad %float %302
%307 = OpFMul %float %305 %306
OpStore %299 %307
%308 = OpLoad %float %299
OpReturnValue %308
OpFunctionEnd
%_ZN83__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Mul_LT_T_GT__GT_3mul = OpFunction %v3float None %309
%310 = OpFunctionParameter %v3float
%311 = OpFunctionParameter %float
%312 = OpLabel
%313 = OpVariable %_ptr_Function_v3float Function
OpStore %313 %310
%314 = OpVariable %_ptr_Function_float Function
OpStore %314 %311
%315 = OpVariable %_ptr_Function_v3float Function
%320 = OpVariable %_ptr_Function_float Function
%321 = OpVariable %_ptr_Function_float Function
%322 = OpVariable %_ptr_Function_float Function
%323 = OpVariable %_ptr_Function_float Function
%324 = OpVariable %_ptr_Function_float Function
%325 = OpVariable %_ptr_Function_float Function
%326 = OpVariable %_ptr_Function_float Function
%327 = OpVariable %_ptr_Function_float Function
%328 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_1
%bb0_1 = OpLabel
%329 = OpAccessChain %_ptr_Function_float %313 %uint_0
%330 = OpLoad %float %329
OpStore %321 %330
%331 = OpLoad %float %314
OpStore %322 %331
%332 = OpLoad %float %321
%333 = OpLoad %float %322
%334 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %332 %333
OpStore %320 %334
OpBranch %bb1_0
%bb1_0 = OpLabel
%335 = OpAccessChain %_ptr_Function_float %313 %uint_1
%336 = OpLoad %float %335
OpStore %324 %336
%337 = OpLoad %float %314
OpStore %325 %337
%338 = OpLoad %float %324
%339 = OpLoad %float %325
%340 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %338 %339
OpStore %323 %340
OpBranch %bb2_0
%bb2_0 = OpLabel
%341 = OpAccessChain %_ptr_Function_float %313 %uint_2
%342 = OpLoad %float %341
OpStore %327 %342
%343 = OpLoad %float %314
OpStore %328 %343
%344 = OpLoad %float %327
%345 = OpLoad %float %328
%346 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %344 %345
OpStore %326 %346
OpBranch %bb3_0
%bb3_0 = OpLabel
%347 = OpLoad %float %320
%348 = OpAccessChain %_ptr_Function_float %315 %uint_0
OpStore %348 %347
%349 = OpLoad %float %323
%350 = OpAccessChain %_ptr_Function_float %315 %uint_1
OpStore %350 %349
%351 = OpLoad %float %326
%352 = OpAccessChain %_ptr_Function_float %315 %uint_2
OpStore %352 %351
%353 = OpLoad %v3float %315
OpReturnValue %353
OpFunctionEnd
%_ZN83__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Div_LT_T_GT__GT_3div = OpFunction %v3float None %309
%354 = OpFunctionParameter %v3float
%355 = OpFunctionParameter %float
%356 = OpLabel
%357 = OpVariable %_ptr_Function_v3float Function
OpStore %357 %354
%358 = OpVariable %_ptr_Function_float Function
OpStore %358 %355
%359 = OpVariable %_ptr_Function_v3float Function
%364 = OpVariable %_ptr_Function_float Function
%365 = OpVariable %_ptr_Function_float Function
%366 = OpVariable %_ptr_Function_float Function
%367 = OpVariable %_ptr_Function_float Function
%368 = OpVariable %_ptr_Function_float Function
%369 = OpVariable %_ptr_Function_float Function
%370 = OpVariable %_ptr_Function_float Function
%371 = OpVariable %_ptr_Function_float Function
%372 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_2
%bb0_2 = OpLabel
%373 = OpAccessChain %_ptr_Function_float %357 %uint_0
%374 = OpLoad %float %373
OpStore %365 %374
%375 = OpLoad %float %358
OpStore %366 %375
%376 = OpLoad %float %365
%377 = OpLoad %float %366
%378 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Div_GT_3div %376 %377
OpStore %364 %378
OpBranch %bb1_1
%bb1_1 = OpLabel
%379 = OpAccessChain %_ptr_Function_float %357 %uint_1
%380 = OpLoad %float %379
OpStore %368 %380
%381 = OpLoad %float %358
OpStore %369 %381
%382 = OpLoad %float %368
%383 = OpLoad %float %369
%384 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Div_GT_3div %382 %383
OpStore %367 %384
OpBranch %bb2_1
%bb2_1 = OpLabel
%385 = OpAccessChain %_ptr_Function_float %357 %uint_2
%386 = OpLoad %float %385
OpStore %371 %386
%387 = OpLoad %float %358
OpStore %372 %387
%388 = OpLoad %float %371
%389 = OpLoad %float %372
%390 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Div_GT_3div %388 %389
OpStore %370 %390
OpBranch %bb3_1
%bb3_1 = OpLabel
%391 = OpLoad %float %364
%392 = OpAccessChain %_ptr_Function_float %359 %uint_0
OpStore %392 %391
%393 = OpLoad %float %367
%394 = OpAccessChain %_ptr_Function_float %359 %uint_1
OpStore %394 %393
%395 = OpLoad %float %370
%396 = OpAccessChain %_ptr_Function_float %359 %uint_2
OpStore %396 %395
%397 = OpLoad %v3float %359
OpReturnValue %397
OpFunctionEnd
%_ZN45__LT_f32_u20_as_u20_core__ops__arith__Div_GT_3div = OpFunction %float None %293
%398 = OpFunctionParameter %float
%399 = OpFunctionParameter %float
%400 = OpLabel
%401 = OpVariable %_ptr_Function_float Function
OpStore %401 %398
%402 = OpVariable %_ptr_Function_float Function
OpStore %402 %399
%403 = OpVariable %_ptr_Function_float Function
%405 = OpVariable %_ptr_Function_float Function
%406 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_3
%bb0_3 = OpLabel
%407 = OpLoad %float %401
OpStore %405 %407
%408 = OpLoad %float %402
OpStore %406 %408
%409 = OpLoad %float %405
%410 = OpLoad %float %406
%411 = OpFDiv %float %409 %410
OpStore %403 %411
%412 = OpLoad %float %403
OpReturnValue %412
OpFunctionEnd
%_ZN9rlsl_math6vector6Vector6length = OpFunction %float None %413
%414 = OpFunctionParameter %v3float
%415 = OpLabel
%416 = OpVariable %_ptr_Function_v3float Function
OpStore %416 %414
%417 = OpVariable %_ptr_Function_float Function
%421 = OpVariable %_ptr_Function_float Function
%422 = OpVariable %_ptr_Function_v3float Function
%423 = OpVariable %_ptr_Function_v3float Function
OpBranch %bb0_4
%bb0_4 = OpLabel
%424 = OpLoad %v3float %416
OpStore %422 %424
%425 = OpLoad %v3float %416
OpStore %423 %425
%426 = OpLoad %v3float %422
%427 = OpLoad %v3float %423
%428 = OpFunctionCall %float %_ZN78__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_rlsl_math__vector__Vector_GT_3dot %426 %427
OpStore %421 %428
OpBranch %bb1_2
%bb1_2 = OpLabel
%429 = OpLoad %float %421
%430 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_rlsl_math__num__Float_GT_4sqrt %429
OpStore %417 %430
OpBranch %bb2_2
%bb2_2 = OpLabel
%431 = OpLoad %float %417
OpReturnValue %431
OpFunctionEnd
%_ZN41__LT_rlsl_math__vector__Vec2_LT_T_GT__GT_4fold = OpFunction %float None %433
%434 = OpFunctionParameter %v2float
%435 = OpFunctionParameter %float
%436 = OpFunctionParameter %_struct_432
%437 = OpLabel
%438 = OpVariable %_ptr_Function_v2float Function
OpStore %438 %434
%439 = OpVariable %_ptr_Function_float Function
OpStore %439 %435
%441 = OpVariable %_ptr_Function__struct_432 Function
OpStore %441 %436
%442 = OpVariable %_ptr_Function_float Function
%449 = OpVariable %_ptr_Function_float Function
%452 = OpVariable %_ptr_Function__struct_450 Function
%453 = OpVariable %_ptr_Function_float Function
%454 = OpVariable %_ptr_Function_float Function
%455 = OpVariable %_ptr_Function__struct_450 Function
%456 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_5
%bb0_5 = OpLabel
%457 = OpAccessChain %_ptr_Function_float %438 %uint_0
%458 = OpLoad %float %457
OpStore %453 %458
%459 = OpLoad %float %439
%460 = OpAccessChain %_ptr_Function_float %452 %uint_0
OpStore %460 %459
%461 = OpLoad %float %453
%462 = OpAccessChain %_ptr_Function_float %452 %uint_1
OpStore %462 %461
%463 = OpAccessChain %_ptr_Function_float %452 %uint_0
%464 = OpLoad %float %463
%465 = OpAccessChain %_ptr_Function_float %452 %uint_1
%466 = OpLoad %float %465
%467 = OpFunctionCall %float %_ZN41__LT_rlsl_math__vector__Vec2_LT_T_GT__GT_3min28__u7b__u7b_closure_u7d__u7d_ %441 %464 %466
OpStore %449 %467
OpBranch %bb3_2
%bb3_2 = OpLabel
%468 = OpAccessChain %_ptr_Function_float %438 %uint_1
%469 = OpLoad %float %468
OpStore %456 %469
%470 = OpLoad %float %449
%471 = OpAccessChain %_ptr_Function_float %455 %uint_0
OpStore %471 %470
%472 = OpLoad %float %456
%473 = OpAccessChain %_ptr_Function_float %455 %uint_1
OpStore %473 %472
%474 = OpAccessChain %_ptr_Function_float %455 %uint_0
%475 = OpLoad %float %474
%476 = OpAccessChain %_ptr_Function_float %455 %uint_1
%477 = OpLoad %float %476
%478 = OpFunctionCall %float %_ZN41__LT_rlsl_math__vector__Vec2_LT_T_GT__GT_3min28__u7b__u7b_closure_u7d__u7d_ %441 %475 %477
OpStore %454 %478
OpBranch %bb4_0
%bb4_0 = OpLabel
%479 = OpLoad %float %454
OpStore %442 %479
OpBranch %bb5_0
%bb5_0 = OpLabel
%480 = OpLoad %float %442
OpReturnValue %480
OpFunctionEnd
%_ZN4core3cmp5impls55__LT_impl_u20_core__cmp__PartialOrd_u20_for_u20_f32_GT_2lt = OpFunction %bool None %482
%483 = OpFunctionParameter %_ptr_Function_float
%484 = OpFunctionParameter %_ptr_Function_float
%485 = OpLabel
%487 = OpVariable %_ptr_Function_bool Function
%489 = OpVariable %_ptr_Function_float Function
%490 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_6
%bb0_6 = OpLabel
%491 = OpLoad %float %483
OpStore %489 %491
%492 = OpLoad %float %484
OpStore %490 %492
%493 = OpLoad %float %489
%494 = OpLoad %float %490
%495 = OpFOrdLessThan %bool %493 %494
OpStore %487 %495
%496 = OpLoad %bool %487
OpReturnValue %496
OpFunctionEnd
%_ZN41__LT_rlsl_math__vector__Vec3_LT_T_GT__GT_4lerp = OpFunction %v3float None %497
%498 = OpFunctionParameter %v3float
%499 = OpFunctionParameter %v3float
%500 = OpFunctionParameter %float
%501 = OpLabel
%502 = OpVariable %_ptr_Function_v3float Function
OpStore %502 %498
%503 = OpVariable %_ptr_Function_v3float Function
OpStore %503 %499
%504 = OpVariable %_ptr_Function_float Function
OpStore %504 %500
%505 = OpVariable %_ptr_Function_v3float Function
%518 = OpVariable %_ptr_Function_float Function
%519 = OpVariable %_ptr_Function_float Function
%520 = OpVariable %_ptr_Function_float Function
%521 = OpVariable %_ptr_Function_float Function
%522 = OpVariable %_ptr_Function_float Function
%523 = OpVariable %_ptr_Function_float Function
%524 = OpVariable %_ptr_Function_float Function
%525 = OpVariable %_ptr_Function_float Function
%526 = OpVariable %_ptr_Function_float Function
%527 = OpVariable %_ptr_Function_float Function
%528 = OpVariable %_ptr_Function_float Function
%529 = OpVariable %_ptr_Function_float Function
%530 = OpVariable %_ptr_Function_float Function
%531 = OpVariable %_ptr_Function_float Function
%532 = OpVariable %_ptr_Function_float Function
%533 = OpVariable %_ptr_Function_float Function
%534 = OpVariable %_ptr_Function_float Function
%535 = OpVariable %_ptr_Function_float Function
%536 = OpVariable %_ptr_Function_float Function
%537 = OpVariable %_ptr_Function_float Function
%538 = OpVariable %_ptr_Function_float Function
%539 = OpVariable %_ptr_Function_float Function
%540 = OpVariable %_ptr_Function_float Function
%541 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_7
%bb0_7 = OpLabel
%542 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_rlsl_math__num__Float_GT_3one
OpStore %519 %542
OpBranch %bb1_3
%bb1_3 = OpLabel
%543 = OpLoad %float %504
OpStore %520 %543
%544 = OpLoad %float %519
%545 = OpLoad %float %520
%546 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Sub_GT_3sub %544 %545
OpStore %518 %546
OpBranch %bb2_3
%bb2_3 = OpLabel
%547 = OpLoad %float %518
OpStore %523 %547
%548 = OpAccessChain %_ptr_Function_float %502 %uint_0
%549 = OpLoad %float %548
OpStore %524 %549
%550 = OpLoad %float %523
%551 = OpLoad %float %524
%552 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %550 %551
OpStore %522 %552
OpBranch %bb3_3
%bb3_3 = OpLabel
%553 = OpLoad %float %504
OpStore %526 %553
%554 = OpAccessChain %_ptr_Function_float %503 %uint_0
%555 = OpLoad %float %554
OpStore %527 %555
%556 = OpLoad %float %526
%557 = OpLoad %float %527
%558 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %556 %557
OpStore %525 %558
OpBranch %bb4_1
%bb4_1 = OpLabel
%559 = OpLoad %float %522
%560 = OpLoad %float %525
%561 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Add_GT_3add %559 %560
OpStore %521 %561
OpBranch %bb5_1
%bb5_1 = OpLabel
%562 = OpLoad %float %518
OpStore %530 %562
%563 = OpAccessChain %_ptr_Function_float %502 %uint_1
%564 = OpLoad %float %563
OpStore %531 %564
%565 = OpLoad %float %530
%566 = OpLoad %float %531
%567 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %565 %566
OpStore %529 %567
OpBranch %bb6_0
%bb6_0 = OpLabel
%568 = OpLoad %float %504
OpStore %533 %568
%569 = OpAccessChain %_ptr_Function_float %503 %uint_1
%570 = OpLoad %float %569
OpStore %534 %570
%571 = OpLoad %float %533
%572 = OpLoad %float %534
%573 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %571 %572
OpStore %532 %573
OpBranch %bb7_0
%bb7_0 = OpLabel
%574 = OpLoad %float %529
%575 = OpLoad %float %532
%576 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Add_GT_3add %574 %575
OpStore %528 %576
OpBranch %bb8_0
%bb8_0 = OpLabel
%577 = OpLoad %float %518
OpStore %537 %577
%578 = OpAccessChain %_ptr_Function_float %502 %uint_2
%579 = OpLoad %float %578
OpStore %538 %579
%580 = OpLoad %float %537
%581 = OpLoad %float %538
%582 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %580 %581
OpStore %536 %582
OpBranch %bb9_0
%bb9_0 = OpLabel
%583 = OpLoad %float %504
OpStore %540 %583
%584 = OpAccessChain %_ptr_Function_float %503 %uint_2
%585 = OpLoad %float %584
OpStore %541 %585
%586 = OpLoad %float %540
%587 = OpLoad %float %541
%588 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %586 %587
OpStore %539 %588
OpBranch %bb10_0
%bb10_0 = OpLabel
%589 = OpLoad %float %536
%590 = OpLoad %float %539
%591 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Add_GT_3add %589 %590
OpStore %535 %591
OpBranch %bb11_0
%bb11_0 = OpLabel
%592 = OpLoad %float %521
%593 = OpAccessChain %_ptr_Function_float %505 %uint_0
OpStore %593 %592
%594 = OpLoad %float %528
%595 = OpAccessChain %_ptr_Function_float %505 %uint_1
OpStore %595 %594
%596 = OpLoad %float %535
%597 = OpAccessChain %_ptr_Function_float %505 %uint_2
OpStore %597 %596
%598 = OpLoad %v3float %505
OpReturnValue %598
OpFunctionEnd
%_ZN45__LT_f32_u20_as_u20_rlsl_math__num__Float_GT_4sqrt = OpFunction %float None %599
%600 = OpFunctionParameter %float
%601 = OpLabel
%602 = OpVariable %_ptr_Function_float Function
OpStore %602 %600
%603 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_8
%bb0_8 = OpLabel
%606 = OpLoad %float %602
%607 = OpExtInst %float %1 Sqrt %606
OpStore %603 %607
OpBranch %bb1_4
%bb1_4 = OpLabel
%608 = OpLoad %float %603
OpReturnValue %608
OpFunctionEnd
%_ZN78__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_rlsl_math__vector__Vector_GT_9normalize = OpFunction %v3float None %609
%610 = OpFunctionParameter %v3float
%611 = OpLabel
%612 = OpVariable %_ptr_Function_v3float Function
OpStore %612 %610
%613 = OpVariable %_ptr_Function_v3float Function
%617 = OpVariable %_ptr_Function_v3float Function
%618 = OpVariable %_ptr_Function_float Function
%619 = OpVariable %_ptr_Function_v3float Function
OpBranch %bb0_9
%bb0_9 = OpLabel
%620 = OpLoad %v3float %612
OpStore %617 %620
%621 = OpLoad %v3float %612
OpStore %619 %621
%622 = OpLoad %v3float %619
%623 = OpFunctionCall %float %_ZN9rlsl_math6vector6Vector6length %622
OpStore %618 %623
OpBranch %bb2_4
%bb2_4 = OpLabel
%624 = OpLoad %v3float %617
%625 = OpLoad %float %618
%626 = OpFunctionCall %v3float %_ZN83__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Div_LT_T_GT__GT_3div %624 %625
OpStore %613 %626
OpBranch %bb1_5
%bb1_5 = OpLabel
%627 = OpLoad %v3float %613
OpReturnValue %627
OpFunctionEnd
%_ZN45__LT_f32_u20_as_u20_core__ops__arith__Sub_GT_3sub = OpFunction %float None %293
%628 = OpFunctionParameter %float
%629 = OpFunctionParameter %float
%630 = OpLabel
%631 = OpVariable %_ptr_Function_float Function
OpStore %631 %628
%632 = OpVariable %_ptr_Function_float Function
OpStore %632 %629
%633 = OpVariable %_ptr_Function_float Function
%635 = OpVariable %_ptr_Function_float Function
%636 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_10
%bb0_10 = OpLabel
%637 = OpLoad %float %631
OpStore %635 %637
%638 = OpLoad %float %632
OpStore %636 %638
%639 = OpLoad %float %635
%640 = OpLoad %float %636
%641 = OpFSub %float %639 %640
OpStore %633 %641
%642 = OpLoad %float %633
OpReturnValue %642
OpFunctionEnd
%_ZN45__LT_f32_u20_as_u20_core__ops__arith__Add_GT_3add = OpFunction %float None %293
%643 = OpFunctionParameter %float
%644 = OpFunctionParameter %float
%645 = OpLabel
%646 = OpVariable %_ptr_Function_float Function
OpStore %646 %643
%647 = OpVariable %_ptr_Function_float Function
OpStore %647 %644
%648 = OpVariable %_ptr_Function_float Function
%650 = OpVariable %_ptr_Function_float Function
%651 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_11
%bb0_11 = OpLabel
%652 = OpLoad %float %646
OpStore %650 %652
%653 = OpLoad %float %647
OpStore %651 %653
%654 = OpLoad %float %650
%655 = OpLoad %float %651
%656 = OpFAdd %float %654 %655
OpStore %648 %656
%657 = OpLoad %float %648
OpReturnValue %657
OpFunctionEnd
%_ZN45__LT_f32_u20_as_u20_rlsl_math__num__Float_GT_3one = OpFunction %float None %658
%659 = OpLabel
%660 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_12
%bb0_12 = OpLabel
OpStore %660 %float_1
%662 = OpLoad %float %660
OpReturnValue %662
OpFunctionEnd
%_ZN3ray3Ray8position = OpFunction %v3float None %663
%664 = OpFunctionParameter %_ptr_Function__ZN3ray3Ray
%665 = OpFunctionParameter %float
%666 = OpLabel
%667 = OpVariable %_ptr_Function_float Function
OpStore %667 %665
%668 = OpVariable %_ptr_Function_v3float Function
%672 = OpVariable %_ptr_Function_v3float Function
%673 = OpVariable %_ptr_Function_v3float Function
%674 = OpVariable %_ptr_Function_v3float Function
OpBranch %bb0_13
%bb0_13 = OpLabel
%675 = OpAccessChain %_ptr_Function_v3float %664 %uint_0
%676 = OpLoad %v3float %675
OpStore %672 %676
%677 = OpAccessChain %_ptr_Function__ZN9rlsl_math4unit4Unit %664 %uint_1
%678 = OpAccessChain %_ptr_Function_v3float %677 %uint_0
%679 = OpLoad %v3float %678
OpStore %674 %679
%680 = OpLoad %v3float %674
%681 = OpLoad %float %667
%682 = OpFunctionCall %v3float %_ZN83__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Mul_LT_T_GT__GT_3mul %680 %681
OpStore %673 %682
OpBranch %bb1_6
%bb1_6 = OpLabel
%683 = OpLoad %v3float %672
%684 = OpLoad %v3float %673
%685 = OpFunctionCall %v3float %_ZN74__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Add_GT_3add %683 %684
OpStore %668 %685
OpBranch %bb2_5
%bb2_5 = OpLabel
%686 = OpLoad %v3float %668
OpReturnValue %686
OpFunctionEnd
%_ZN3ray6Sphere3new = OpFunction %_ZN3ray6Sphere None %687
%688 = OpFunctionParameter %v3float
%689 = OpFunctionParameter %float
%690 = OpLabel
%691 = OpVariable %_ptr_Function_v3float Function
OpStore %691 %688
%692 = OpVariable %_ptr_Function_float Function
OpStore %692 %689
%693 = OpVariable %_ptr_Function__ZN3ray6Sphere Function
OpBranch %bb0_14
%bb0_14 = OpLabel
%695 = OpLoad %v3float %691
%696 = OpAccessChain %_ptr_Function_v3float %693 %uint_0
OpStore %696 %695
%697 = OpLoad %float %692
%698 = OpAccessChain %_ptr_Function_float %693 %uint_1
OpStore %698 %697
%699 = OpLoad %_ZN3ray6Sphere %693
OpReturnValue %699
OpFunctionEnd
%_ZN83__LT_rlsl_math__vector__Vec2_LT_T_GT__u20_as_u20_core__ops__arith__Sub_LT_T_GT__GT_3sub = OpFunction %v2float None %700
%701 = OpFunctionParameter %v2float
%702 = OpFunctionParameter %float
%703 = OpLabel
%704 = OpVariable %_ptr_Function_v2float Function
OpStore %704 %701
%705 = OpVariable %_ptr_Function_float Function
OpStore %705 %702
%706 = OpVariable %_ptr_Function_v2float Function
%710 = OpVariable %_ptr_Function_float Function
%711 = OpVariable %_ptr_Function_float Function
%712 = OpVariable %_ptr_Function_float Function
%713 = OpVariable %_ptr_Function_float Function
%714 = OpVariable %_ptr_Function_float Function
%715 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_15
%bb0_15 = OpLabel
%716 = OpAccessChain %_ptr_Function_float %704 %uint_0
%717 = OpLoad %float %716
OpStore %711 %717
%718 = OpLoad %float %705
OpStore %712 %718
%719 = OpLoad %float %711
%720 = OpLoad %float %712
%721 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Sub_GT_3sub %719 %720
OpStore %710 %721
OpBranch %bb1_7
%bb1_7 = OpLabel
%722 = OpAccessChain %_ptr_Function_float %704 %uint_1
%723 = OpLoad %float %722
OpStore %714 %723
%724 = OpLoad %float %705
OpStore %715 %724
%725 = OpLoad %float %714
%726 = OpLoad %float %715
%727 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Sub_GT_3sub %725 %726
OpStore %713 %727
OpBranch %bb2_6
%bb2_6 = OpLabel
%728 = OpLoad %float %710
%729 = OpAccessChain %_ptr_Function_float %706 %uint_0
OpStore %729 %728
%730 = OpLoad %float %713
%731 = OpAccessChain %_ptr_Function_float %706 %uint_1
OpStore %731 %730
%732 = OpLoad %v2float %706
OpReturnValue %732
OpFunctionEnd
%_ZN74__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Add_GT_3add = OpFunction %v3float None %733
%734 = OpFunctionParameter %v3float
%735 = OpFunctionParameter %v3float
%736 = OpLabel
%737 = OpVariable %_ptr_Function_v3float Function
OpStore %737 %734
%738 = OpVariable %_ptr_Function_v3float Function
OpStore %738 %735
%739 = OpVariable %_ptr_Function_v3float Function
%744 = OpVariable %_ptr_Function_float Function
%745 = OpVariable %_ptr_Function_float Function
%746 = OpVariable %_ptr_Function_float Function
%747 = OpVariable %_ptr_Function_float Function
%748 = OpVariable %_ptr_Function_float Function
%749 = OpVariable %_ptr_Function_float Function
%750 = OpVariable %_ptr_Function_float Function
%751 = OpVariable %_ptr_Function_float Function
%752 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_16
%bb0_16 = OpLabel
%753 = OpAccessChain %_ptr_Function_float %737 %uint_0
%754 = OpLoad %float %753
OpStore %745 %754
%755 = OpAccessChain %_ptr_Function_float %738 %uint_0
%756 = OpLoad %float %755
OpStore %746 %756
%757 = OpLoad %float %745
%758 = OpLoad %float %746
%759 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Add_GT_3add %757 %758
OpStore %744 %759
OpBranch %bb1_8
%bb1_8 = OpLabel
%760 = OpAccessChain %_ptr_Function_float %737 %uint_1
%761 = OpLoad %float %760
OpStore %748 %761
%762 = OpAccessChain %_ptr_Function_float %738 %uint_1
%763 = OpLoad %float %762
OpStore %749 %763
%764 = OpLoad %float %748
%765 = OpLoad %float %749
%766 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Add_GT_3add %764 %765
OpStore %747 %766
OpBranch %bb2_7
%bb2_7 = OpLabel
%767 = OpAccessChain %_ptr_Function_float %737 %uint_2
%768 = OpLoad %float %767
OpStore %751 %768
%769 = OpAccessChain %_ptr_Function_float %738 %uint_2
%770 = OpLoad %float %769
OpStore %752 %770
%771 = OpLoad %float %751
%772 = OpLoad %float %752
%773 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Add_GT_3add %771 %772
OpStore %750 %773
OpBranch %bb3_4
%bb3_4 = OpLabel
%774 = OpLoad %float %744
%775 = OpAccessChain %_ptr_Function_float %739 %uint_0
OpStore %775 %774
%776 = OpLoad %float %747
%777 = OpAccessChain %_ptr_Function_float %739 %uint_1
OpStore %777 %776
%778 = OpLoad %float %750
%779 = OpAccessChain %_ptr_Function_float %739 %uint_2
OpStore %779 %778
%780 = OpLoad %v3float %739
OpReturnValue %780
OpFunctionEnd
%_ZN45__LT_f32_u20_as_u20_rlsl_math__num__Float_GT_3sin = OpFunction %float None %599
%781 = OpFunctionParameter %float
%782 = OpLabel
%783 = OpVariable %_ptr_Function_float Function
OpStore %783 %781
%784 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_17
%bb0_17 = OpLabel
%787 = OpLoad %float %783
%788 = OpExtInst %float %1 Sin %787
OpStore %784 %788
OpBranch %bb1_9
%bb1_9 = OpLabel
%789 = OpLoad %float %784
OpReturnValue %789
OpFunctionEnd
%_ZN83__LT_rlsl_math__vector__Vec2_LT_T_GT__u20_as_u20_core__ops__arith__Mul_LT_T_GT__GT_3mul = OpFunction %v2float None %700
%790 = OpFunctionParameter %v2float
%791 = OpFunctionParameter %float
%792 = OpLabel
%793 = OpVariable %_ptr_Function_v2float Function
OpStore %793 %790
%794 = OpVariable %_ptr_Function_float Function
OpStore %794 %791
%795 = OpVariable %_ptr_Function_v2float Function
%799 = OpVariable %_ptr_Function_float Function
%800 = OpVariable %_ptr_Function_float Function
%801 = OpVariable %_ptr_Function_float Function
%802 = OpVariable %_ptr_Function_float Function
%803 = OpVariable %_ptr_Function_float Function
%804 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_18
%bb0_18 = OpLabel
%805 = OpAccessChain %_ptr_Function_float %793 %uint_0
%806 = OpLoad %float %805
OpStore %800 %806
%807 = OpLoad %float %794
OpStore %801 %807
%808 = OpLoad %float %800
%809 = OpLoad %float %801
%810 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %808 %809
OpStore %799 %810
OpBranch %bb1_10
%bb1_10 = OpLabel
%811 = OpAccessChain %_ptr_Function_float %793 %uint_1
%812 = OpLoad %float %811
OpStore %803 %812
%813 = OpLoad %float %794
OpStore %804 %813
%814 = OpLoad %float %803
%815 = OpLoad %float %804
%816 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %814 %815
OpStore %802 %816
OpBranch %bb2_8
%bb2_8 = OpLabel
%817 = OpLoad %float %799
%818 = OpAccessChain %_ptr_Function_float %795 %uint_0
OpStore %818 %817
%819 = OpLoad %float %802
%820 = OpAccessChain %_ptr_Function_float %795 %uint_1
OpStore %820 %819
%821 = OpLoad %v2float %795
OpReturnValue %821
OpFunctionEnd
%_ZN41__LT_rlsl_math__vector__Vec2_LT_T_GT__GT_10from_polar = OpFunction %v2float None %822
%823 = OpFunctionParameter %float
%824 = OpFunctionParameter %float
%825 = OpLabel
%826 = OpVariable %_ptr_Function_float Function
OpStore %826 %823
%827 = OpVariable %_ptr_Function_float Function
OpStore %827 %824
%828 = OpVariable %_ptr_Function_v2float Function
%834 = OpVariable %_ptr_Function_float Function
%835 = OpVariable %_ptr_Function_float Function
%836 = OpVariable %_ptr_Function_float Function
%837 = OpVariable %_ptr_Function_float Function
%838 = OpVariable %_ptr_Function_float Function
%839 = OpVariable %_ptr_Function_float Function
%840 = OpVariable %_ptr_Function_float Function
%841 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_19
%bb0_19 = OpLabel
%842 = OpLoad %float %827
OpStore %835 %842
%843 = OpLoad %float %826
OpStore %837 %843
%844 = OpLoad %float %837
%845 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_rlsl_math__num__Float_GT_3cos %844
OpStore %836 %845
OpBranch %bb1_11
%bb1_11 = OpLabel
%846 = OpLoad %float %835
%847 = OpLoad %float %836
%848 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %846 %847
OpStore %834 %848
OpBranch %bb2_9
%bb2_9 = OpLabel
%849 = OpLoad %float %827
OpStore %839 %849
%850 = OpLoad %float %826
OpStore %841 %850
%851 = OpLoad %float %841
%852 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_rlsl_math__num__Float_GT_3sin %851
OpStore %840 %852
OpBranch %bb3_5
%bb3_5 = OpLabel
%853 = OpLoad %float %839
%854 = OpLoad %float %840
%855 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %853 %854
OpStore %838 %855
OpBranch %bb4_2
%bb4_2 = OpLabel
%856 = OpLoad %float %834
%857 = OpAccessChain %_ptr_Function_float %828 %uint_0
OpStore %857 %856
%858 = OpLoad %float %838
%859 = OpAccessChain %_ptr_Function_float %828 %uint_1
OpStore %859 %858
%860 = OpLoad %v2float %828
OpReturnValue %860
OpFunctionEnd
%_ZN3ray6Sphere9intersect = OpFunction %_ZN4core6option6Option None %861
%862 = OpFunctionParameter %_ptr_Function__ZN3ray6Sphere
%863 = OpFunctionParameter %_ZN3ray3Ray
%864 = OpLabel
%865 = OpVariable %_ptr_Function__ZN3ray3Ray Function
OpStore %865 %863
%866 = OpVariable %_ptr_Function__ZN4core6option6Option Function
%887 = OpVariable %_ptr_Function_v3float Function
%888 = OpVariable %_ptr_Function_v3float Function
%889 = OpVariable %_ptr_Function_v3float Function
%890 = OpVariable %_ptr_Function_float Function
%891 = OpVariable %_ptr_Function_float Function
%892 = OpVariable %_ptr_Function_float Function
%893 = OpVariable %_ptr_Function_v3float Function
%894 = OpVariable %_ptr_Function_v3float Function
%895 = OpVariable %_ptr_Function_float Function
%896 = OpVariable %_ptr_Function_float Function
%897 = OpVariable %_ptr_Function_v3float Function
%898 = OpVariable %_ptr_Function_v3float Function
%899 = OpVariable %_ptr_Function_float Function
%900 = OpVariable %_ptr_Function_float Function
%901 = OpVariable %_ptr_Function_float Function
%902 = OpVariable %_ptr_Function_float Function
%908 = OpVariable %_ptr_Function__ZN4core6result6Result Function
%913 = OpVariable %_ptr_Function__ZN4core6option6Option_0 Function
%914 = OpVariable %_ptr_Function_int Function
%916 = OpVariable %_ptr_Function__ZN4core6option9NoneError Function
%917 = OpVariable %_ptr_Function_v2float Function
%918 = OpVariable %_ptr_Function_int Function
%919 = OpVariable %_ptr_Function__ZN4core6option9NoneError Function
%920 = OpVariable %_ptr_Function_bool Function
%921 = OpVariable %_ptr_Function_float Function
%922 = OpVariable %_ptr_Function_v3float Function
%923 = OpVariable %_ptr_Function_float Function
%924 = OpVariable %_ptr_Function_v3float Function
%925 = OpVariable %_ptr_Function_v3float Function
%926 = OpVariable %_ptr_Function_v3float Function
%927 = OpVariable %_ptr_Function__ZN9rlsl_math4unit4Unit Function
%928 = OpVariable %_ptr_Function__ZN3ray6RayHit Function
%929 = OpVariable %_ptr_Function_v3float Function
%930 = OpVariable %_ptr_Function_float Function
%931 = OpVariable %_ptr_Function__ZN3ray6RayHit Function
%932 = OpVariable %_ptr_Function__ZN4core6option9NoneError Function
%933 = OpVariable %_ptr_Function_v2float Function
%934 = OpVariable %_ptr_Function_float Function
%935 = OpVariable %_ptr_Function__struct_432 Function
%936 = OpVariable %_ptr_Function_v3float Function
OpBranch %bb0_20
%bb0_20 = OpLabel
%937 = OpAccessChain %_ptr_Function_v3float %865 %uint_0
%938 = OpLoad %v3float %937
OpStore %888 %938
%939 = OpAccessChain %_ptr_Function_v3float %862 %uint_0
%940 = OpLoad %v3float %939
OpStore %889 %940
%941 = OpLoad %v3float %888
%942 = OpLoad %v3float %889
%943 = OpFunctionCall %v3float %_ZN74__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Sub_GT_3sub %941 %942
OpStore %887 %943
OpBranch %bb1_12
%bb1_12 = OpLabel
%944 = OpAccessChain %_ptr_Function__ZN9rlsl_math4unit4Unit %865 %uint_1
%945 = OpAccessChain %_ptr_Function_v3float %944 %uint_0
%946 = OpLoad %v3float %945
OpStore %893 %946
%947 = OpLoad %v3float %887
OpStore %894 %947
%948 = OpLoad %v3float %893
%949 = OpLoad %v3float %894
%950 = OpFunctionCall %float %_ZN78__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_rlsl_math__vector__Vector_GT_3dot %948 %949
OpStore %892 %950
OpBranch %bb12_0
%bb12_0 = OpLabel
%951 = OpLoad %float %892
%952 = OpFMul %float %float_2 %951
OpStore %891 %952
%953 = OpLoad %v3float %887
OpStore %897 %953
%954 = OpLoad %v3float %887
OpStore %898 %954
%955 = OpLoad %v3float %897
%956 = OpLoad %v3float %898
%957 = OpFunctionCall %float %_ZN78__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_rlsl_math__vector__Vector_GT_3dot %955 %956
OpStore %896 %957
OpBranch %bb13_0
%bb13_0 = OpLabel
%958 = OpAccessChain %_ptr_Function_float %862 %uint_1
%959 = OpLoad %float %958
OpStore %900 %959
%960 = OpAccessChain %_ptr_Function_float %862 %uint_1
%961 = OpLoad %float %960
OpStore %901 %961
%962 = OpLoad %float %900
%963 = OpLoad %float %901
%964 = OpFMul %float %962 %963
OpStore %899 %964
%965 = OpLoad %float %896
%966 = OpLoad %float %899
%967 = OpFSub %float %965 %966
OpStore %895 %967
%968 = OpLoad %float %891
%969 = OpLoad %float %895
%970 = OpFunctionCall %_ZN4core6option6Option_0 %_ZN9rlsl_math10polynomial9quadratic %float_1 %968 %969
OpStore %913 %970
OpBranch %bb2_10
%bb2_10 = OpLabel
%971 = OpLoad %_ZN4core6option6Option_0 %913
%972 = OpLoad %_ZN4core6option9NoneError %932
%973 = OpFunctionCall %_ZN4core6result6Result %_ZN38__LT_core__option__Option_LT_T_GT__GT_5ok_or %971 %972
OpStore %908 %973
OpBranch %bb14_0
%bb14_0 = OpLabel
%974 = OpAccessChain %_ptr_Function_uint %908 %uint_2
%975 = OpLoad %uint %974
%976 = OpBitcast %int %975
OpStore %914 %976
%977 = OpAccessChain %_ptr_Function_uint %908 %uint_2
%978 = OpLoad %uint %977
%979 = OpBitcast %int %978
OpStore %918 %979
%980 = OpLoad %int %918
OpSelectionMerge %bb19 None
OpSwitch %980 %bb3_6 0 %bb4_3 1 %bb5_2
%bb3_6 = OpLabel
OpUnreachable
%bb5_2 = OpLabel
%981 = OpAccessChain %_ptr_Function__ZN4core6option9NoneError %908 %uint_1 %uint_0
%982 = OpLoad %_ZN4core6option9NoneError %981
OpStore %916 %982
%983 = OpLoad %_ZN4core6option9NoneError %916
OpStore %919 %983
%984 = OpAccessChain %_ptr_Function_uint %866 %uint_2
OpStore %984 %uint_0
OpBranch %bb7_1
%bb7_1 = OpLabel
OpBranch %bb19
%bb4_3 = OpLabel
%985 = OpAccessChain %_ptr_Function_v2float %908 %uint_0 %uint_0
%986 = OpLoad %v2float %985
OpStore %917 %986
%987 = OpLoad %v2float %917
OpStore %933 %987
%988 = OpAccessChain %_ptr_Function_float %917 %uint_0
%989 = OpLoad %float %988
OpStore %934 %989
%990 = OpLoad %v2float %933
%991 = OpLoad %float %934
%992 = OpLoad %_struct_432 %935
%993 = OpFunctionCall %float %_ZN41__LT_rlsl_math__vector__Vec2_LT_T_GT__GT_4fold %990 %991 %992
OpStore %902 %993
OpBranch %bb15_0
%bb15_0 = OpLabel
%994 = OpLoad %float %902
OpStore %921 %994
%995 = OpLoad %float %921
%996 = OpFOrdLessThan %bool %995 %float_0
OpStore %920 %996
%997 = OpLoad %bool %920
OpSelectionMerge %bb18 None
OpBranchConditional %997 %bb8_1 %bb9_1
%bb8_1 = OpLabel
%998 = OpAccessChain %_ptr_Function_uint %866 %uint_2
OpStore %998 %uint_0
OpBranch %bb17_0
%bb17_0 = OpLabel
OpBranch %bb18
%bb9_1 = OpLabel
%999 = OpLoad %float %902
OpStore %923 %999
%1000 = OpLoad %float %923
%1001 = OpFunctionCall %v3float %_ZN3ray3Ray8position %865 %1000
OpStore %922 %1001
OpBranch %bb10_1
%bb10_1 = OpLabel
%1002 = OpLoad %v3float %922
OpStore %925 %1002
%1003 = OpAccessChain %_ptr_Function_v3float %862 %uint_0
%1004 = OpLoad %v3float %1003
OpStore %926 %1004
%1005 = OpLoad %v3float %925
%1006 = OpLoad %v3float %926
%1007 = OpFunctionCall %v3float %_ZN74__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Sub_GT_3sub %1005 %1006
OpStore %924 %1007
OpBranch %bb11_1
%bb11_1 = OpLabel
%1008 = OpLoad %v3float %924
%1009 = OpFunctionCall %v3float %_ZN78__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_rlsl_math__vector__Vector_GT_9normalize %1008
OpStore %936 %1009
OpBranch %bb16_0
%bb16_0 = OpLabel
%1010 = OpLoad %v3float %936
%1011 = OpAccessChain %_ptr_Function_v3float %927 %uint_0
OpStore %1011 %1010
%1012 = OpLoad %v3float %922
OpStore %929 %1012
%1013 = OpLoad %float %902
OpStore %930 %1013
%1014 = OpLoad %float %930
%1015 = OpAccessChain %_ptr_Function_float %928 %uint_0
OpStore %1015 %1014
%1016 = OpLoad %v3float %929
%1017 = OpAccessChain %_ptr_Function_v3float %928 %uint_1
OpStore %1017 %1016
%1018 = OpLoad %_ZN9rlsl_math4unit4Unit %927
%1019 = OpAccessChain %_ptr_Function__ZN9rlsl_math4unit4Unit %928 %uint_2
OpStore %1019 %1018
%1020 = OpLoad %_ZN3ray6RayHit %928
OpStore %931 %1020
%1021 = OpLoad %_ZN3ray6RayHit %931
%1022 = OpAccessChain %_ptr_Function__ZN3ray6RayHit %866 %uint_1 %uint_0
OpStore %1022 %1021
%1023 = OpAccessChain %_ptr_Function_uint %866 %uint_2
OpStore %1023 %uint_1
OpBranch %bb18
%bb18 = OpLabel
OpBranch %bb19
%bb19 = OpLabel
OpBranch %bb6_1
%bb6_1 = OpLabel
%1024 = OpLoad %_ZN4core6option6Option %866
OpReturnValue %1024
OpFunctionEnd
%_ZN3ray3Ray3new = OpFunction %_ZN3ray3Ray None %1025
%1026 = OpFunctionParameter %v3float
%1027 = OpFunctionParameter %_ZN9rlsl_math4unit4Unit
%1028 = OpLabel
%1029 = OpVariable %_ptr_Function_v3float Function
OpStore %1029 %1026
%1030 = OpVariable %_ptr_Function__ZN9rlsl_math4unit4Unit Function
OpStore %1030 %1027
%1031 = OpVariable %_ptr_Function__ZN3ray3Ray Function
OpBranch %bb0_21
%bb0_21 = OpLabel
%1033 = OpLoad %v3float %1029
%1034 = OpAccessChain %_ptr_Function_v3float %1031 %uint_0
OpStore %1034 %1033
%1035 = OpLoad %_ZN9rlsl_math4unit4Unit %1030
%1036 = OpAccessChain %_ptr_Function__ZN9rlsl_math4unit4Unit %1031 %uint_1
OpStore %1036 %1035
%1037 = OpLoad %_ZN3ray3Ray %1031
OpReturnValue %1037
OpFunctionEnd
%_ZN74__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_core__ops__arith__Sub_GT_3sub = OpFunction %v3float None %733
%1038 = OpFunctionParameter %v3float
%1039 = OpFunctionParameter %v3float
%1040 = OpLabel
%1041 = OpVariable %_ptr_Function_v3float Function
OpStore %1041 %1038
%1042 = OpVariable %_ptr_Function_v3float Function
OpStore %1042 %1039
%1043 = OpVariable %_ptr_Function_v3float Function
%1048 = OpVariable %_ptr_Function_float Function
%1049 = OpVariable %_ptr_Function_float Function
%1050 = OpVariable %_ptr_Function_float Function
%1051 = OpVariable %_ptr_Function_float Function
%1052 = OpVariable %_ptr_Function_float Function
%1053 = OpVariable %_ptr_Function_float Function
%1054 = OpVariable %_ptr_Function_float Function
%1055 = OpVariable %_ptr_Function_float Function
%1056 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_22
%bb0_22 = OpLabel
%1057 = OpAccessChain %_ptr_Function_float %1041 %uint_0
%1058 = OpLoad %float %1057
OpStore %1049 %1058
%1059 = OpAccessChain %_ptr_Function_float %1042 %uint_0
%1060 = OpLoad %float %1059
OpStore %1050 %1060
%1061 = OpLoad %float %1049
%1062 = OpLoad %float %1050
%1063 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Sub_GT_3sub %1061 %1062
OpStore %1048 %1063
OpBranch %bb1_13
%bb1_13 = OpLabel
%1064 = OpAccessChain %_ptr_Function_float %1041 %uint_1
%1065 = OpLoad %float %1064
OpStore %1052 %1065
%1066 = OpAccessChain %_ptr_Function_float %1042 %uint_1
%1067 = OpLoad %float %1066
OpStore %1053 %1067
%1068 = OpLoad %float %1052
%1069 = OpLoad %float %1053
%1070 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Sub_GT_3sub %1068 %1069
OpStore %1051 %1070
OpBranch %bb2_11
%bb2_11 = OpLabel
%1071 = OpAccessChain %_ptr_Function_float %1041 %uint_2
%1072 = OpLoad %float %1071
OpStore %1055 %1072
%1073 = OpAccessChain %_ptr_Function_float %1042 %uint_2
%1074 = OpLoad %float %1073
OpStore %1056 %1074
%1075 = OpLoad %float %1055
%1076 = OpLoad %float %1056
%1077 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Sub_GT_3sub %1075 %1076
OpStore %1054 %1077
OpBranch %bb3_7
%bb3_7 = OpLabel
%1078 = OpLoad %float %1048
%1079 = OpAccessChain %_ptr_Function_float %1043 %uint_0
OpStore %1079 %1078
%1080 = OpLoad %float %1051
%1081 = OpAccessChain %_ptr_Function_float %1043 %uint_1
OpStore %1081 %1080
%1082 = OpLoad %float %1054
%1083 = OpAccessChain %_ptr_Function_float %1043 %uint_2
OpStore %1083 %1082
%1084 = OpLoad %v3float %1043
OpReturnValue %1084
OpFunctionEnd
%_ZN41__LT_rlsl_math__vector__Vec2_LT_T_GT__GT_3min28__u7b__u7b_closure_u7d__u7d_ = OpFunction %float None %1085
%1086 = OpFunctionParameter %_ptr_Function__struct_432
%1087 = OpFunctionParameter %float
%1088 = OpFunctionParameter %float
%1089 = OpLabel
%1090 = OpVariable %_ptr_Function_float Function
OpStore %1090 %1087
%1091 = OpVariable %_ptr_Function_float Function
OpStore %1091 %1088
%1092 = OpVariable %_ptr_Function_float Function
%1099 = OpVariable %_ptr_Function_bool Function
%1100 = OpVariable %_ptr_Function_float Function
%1101 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_23
%bb0_23 = OpLabel
%1102 = OpFunctionCall %bool %_ZN4core3cmp5impls55__LT_impl_u20_core__cmp__PartialOrd_u20_for_u20_f32_GT_2lt %1091 %1090
OpStore %1099 %1102
OpBranch %bb1_14
%bb1_14 = OpLabel
%1103 = OpLoad %bool %1099
OpSelectionMerge %bb5_3 None
OpBranchConditional %1103 %bb2_12 %bb3_8
%bb2_12 = OpLabel
%1104 = OpLoad %float %1091
OpStore %1100 %1104
%1105 = OpLoad %float %1100
OpStore %1092 %1105
OpBranch %bb5_3
%bb3_8 = OpLabel
%1106 = OpLoad %float %1090
OpStore %1101 %1106
%1107 = OpLoad %float %1101
OpStore %1092 %1107
OpBranch %bb5_3
%bb5_3 = OpLabel
OpBranch %bb4_4
%bb4_4 = OpLabel
%1108 = OpLoad %float %1092
OpReturnValue %1108
OpFunctionEnd
%_ZN38__LT_core__option__Option_LT_T_GT__GT_5ok_or = OpFunction %_ZN4core6result6Result None %1109
%1110 = OpFunctionParameter %_ZN4core6option6Option_0
%1111 = OpFunctionParameter %_ZN4core6option9NoneError
%1112 = OpLabel
%1113 = OpVariable %_ptr_Function__ZN4core6option6Option_0 Function
OpStore %1113 %1110
%1114 = OpVariable %_ptr_Function__ZN4core6option9NoneError Function
OpStore %1114 %1111
%1115 = OpVariable %_ptr_Function__ZN4core6result6Result Function
%1138 = OpVariable %_ptr_Function_int Function
%1139 = OpVariable %_ptr_Function_v2float Function
%1140 = OpVariable %_ptr_Function_int Function
%1141 = OpVariable %_ptr_Function_v2float Function
%1142 = OpVariable %_ptr_Function__ZN4core6option9NoneError Function
%1143 = OpVariable %_ptr_Function_bool Function
%1144 = OpVariable %_ptr_Function_bool Function
%1145 = OpVariable %_ptr_Function_int Function
%1146 = OpVariable %_ptr_Function_int Function
OpBranch %bb0_24
%bb0_24 = OpLabel
OpStore %1143 %false
OpStore %1144 %false
OpStore %1143 %true
OpStore %1144 %true
%1149 = OpAccessChain %_ptr_Function_uint %1113 %uint_2
%1150 = OpLoad %uint %1149
%1151 = OpBitcast %int %1150
OpStore %1138 %1151
%1152 = OpAccessChain %_ptr_Function_uint %1113 %uint_2
%1153 = OpLoad %uint %1152
%1154 = OpBitcast %int %1153
OpStore %1140 %1154
%1155 = OpLoad %int %1140
OpSelectionMerge %bb21 None
OpSwitch %1155 %bb3_9 0 %bb2_13 1 %bb4_5
%bb3_9 = OpLabel
OpUnreachable
%bb4_5 = OpLabel
OpStore %1143 %false
%1156 = OpAccessChain %_ptr_Function_v2float %1113 %uint_1 %uint_0
%1157 = OpLoad %v2float %1156
OpStore %1139 %1157
%1158 = OpLoad %v2float %1139
OpStore %1141 %1158
%1159 = OpLoad %v2float %1141
%1160 = OpAccessChain %_ptr_Function_v2float %1115 %uint_0 %uint_0
OpStore %1160 %1159
%1161 = OpAccessChain %_ptr_Function_uint %1115 %uint_2
OpStore %1161 %uint_0
OpBranch %bb21
%bb2_13 = OpLabel
OpStore %1144 %false
%1162 = OpLoad %_ZN4core6option9NoneError %1114
OpStore %1142 %1162
%1163 = OpLoad %_ZN4core6option9NoneError %1142
%1164 = OpAccessChain %_ptr_Function__ZN4core6option9NoneError %1115 %uint_1 %uint_0
OpStore %1164 %1163
%1165 = OpAccessChain %_ptr_Function_uint %1115 %uint_2
OpStore %1165 %uint_1
OpBranch %bb21
%bb21 = OpLabel
OpBranch %bb5_4
%bb5_4 = OpLabel
%1166 = OpLoad %bool %1144
OpSelectionMerge %bb20 None
OpBranchConditional %1166 %bb11_2 %bb20
%bb11_2 = OpLabel
OpStore %1144 %false
OpBranch %bb20
%bb20 = OpLabel
OpBranch %bb7_2
%bb7_2 = OpLabel
%1167 = OpAccessChain %_ptr_Function_uint %1113 %uint_2
%1168 = OpLoad %uint %1167
%1169 = OpBitcast %int %1168
OpStore %1146 %1169
%1170 = OpLoad %int %1146
OpSelectionMerge %bb19_0 None
OpSwitch %1170 %bb15_1 1 %bb13_1
%bb15_1 = OpLabel
OpBranch %bb19_0
%bb13_1 = OpLabel
%1171 = OpLoad %bool %1143
OpSelectionMerge %bb18_0 None
OpBranchConditional %1171 %bb14_1 %bb18_0
%bb14_1 = OpLabel
OpStore %1143 %false
OpBranch %bb18_0
%bb18_0 = OpLabel
OpBranch %bb19_0
%bb19_0 = OpLabel
OpBranch %bb12_1
%bb12_1 = OpLabel
%1172 = OpLoad %_ZN4core6result6Result %1115
OpReturnValue %1172
OpFunctionEnd
%_ZN9rlsl_math10polynomial9quadratic = OpFunction %_ZN4core6option6Option_0 None %1173
%1174 = OpFunctionParameter %float
%1175 = OpFunctionParameter %float
%1176 = OpFunctionParameter %float
%1177 = OpLabel
%1178 = OpVariable %_ptr_Function_float Function
OpStore %1178 %1174
%1179 = OpVariable %_ptr_Function_float Function
OpStore %1179 %1175
%1180 = OpVariable %_ptr_Function_float Function
OpStore %1180 %1176
%1181 = OpVariable %_ptr_Function__ZN4core6option6Option_0 Function
%1189 = OpVariable %_ptr_Function_float Function
%1190 = OpVariable %_ptr_Function_float Function
%1191 = OpVariable %_ptr_Function_float Function
%1192 = OpVariable %_ptr_Function_float Function
%1193 = OpVariable %_ptr_Function_float Function
%1194 = OpVariable %_ptr_Function_float Function
%1195 = OpVariable %_ptr_Function_float Function
%1196 = OpVariable %_ptr_Function_bool Function
%1197 = OpVariable %_ptr_Function_float Function
%1198 = OpVariable %_ptr_Function_float Function
%1199 = OpVariable %_ptr_Function_float Function
%1200 = OpVariable %_ptr_Function_float Function
%1201 = OpVariable %_ptr_Function_float Function
%1202 = OpVariable %_ptr_Function_float Function
%1203 = OpVariable %_ptr_Function_float Function
%1204 = OpVariable %_ptr_Function_float Function
%1205 = OpVariable %_ptr_Function_float Function
%1206 = OpVariable %_ptr_Function_float Function
%1207 = OpVariable %_ptr_Function_float Function
%1208 = OpVariable %_ptr_Function_float Function
%1209 = OpVariable %_ptr_Function_float Function
%1210 = OpVariable %_ptr_Function_float Function
%1211 = OpVariable %_ptr_Function_float Function
%1212 = OpVariable %_ptr_Function_float Function
%1213 = OpVariable %_ptr_Function_float Function
%1214 = OpVariable %_ptr_Function_v2float Function
OpBranch %bb0_25
%bb0_25 = OpLabel
%1215 = OpLoad %float %1179
OpStore %1191 %1215
%1216 = OpLoad %float %1179
OpStore %1192 %1216
%1217 = OpLoad %float %1191
%1218 = OpLoad %float %1192
%1219 = OpFMul %float %1217 %1218
OpStore %1190 %1219
%1220 = OpLoad %float %1178
OpStore %1195 %1220
%1222 = OpLoad %float %1195
%1223 = OpFMul %float %float_4 %1222
OpStore %1194 %1223
%1224 = OpLoad %float %1194
%1225 = OpLoad %float %1180
%1226 = OpFMul %float %1224 %1225
OpStore %1193 %1226
%1227 = OpLoad %float %1190
%1228 = OpLoad %float %1193
%1229 = OpFSub %float %1227 %1228
OpStore %1189 %1229
%1230 = OpLoad %float %1189
OpStore %1197 %1230
%1231 = OpLoad %float %1197
%1232 = OpFOrdLessThan %bool %1231 %float_0
OpStore %1196 %1232
%1233 = OpLoad %bool %1196
OpSelectionMerge %bb6_2 None
OpBranchConditional %1233 %bb1_15 %bb2_14
%bb1_15 = OpLabel
%1234 = OpAccessChain %_ptr_Function_uint %1181 %uint_2
OpStore %1234 %uint_0
OpBranch %bb6_2
%bb2_14 = OpLabel
%1235 = OpLoad %float %1178
OpStore %1199 %1235
%1236 = OpLoad %float %1199
%1237 = OpFMul %float %float_2 %1236
OpStore %1198 %1237
%1238 = OpLoad %float %1179
OpStore %1203 %1238
%1240 = OpLoad %float %1203
%1241 = OpFMul %float %float_n1 %1240
OpStore %1202 %1241
%1242 = OpLoad %float %1189
OpStore %1205 %1242
%1243 = OpLoad %float %1205
%1244 = OpExtInst %float %1 Sqrt %1243
OpStore %1204 %1244
OpBranch %bb4_6
%bb4_6 = OpLabel
%1245 = OpLoad %float %1202
%1246 = OpLoad %float %1204
%1247 = OpFAdd %float %1245 %1246
OpStore %1201 %1247
%1248 = OpLoad %float %1198
OpStore %1206 %1248
%1249 = OpLoad %float %1201
%1250 = OpLoad %float %1206
%1251 = OpFDiv %float %1249 %1250
OpStore %1200 %1251
%1252 = OpLoad %float %1179
OpStore %1210 %1252
%1253 = OpLoad %float %1210
%1254 = OpFMul %float %float_n1 %1253
OpStore %1209 %1254
%1255 = OpLoad %float %1189
OpStore %1212 %1255
%1256 = OpLoad %float %1212
%1257 = OpExtInst %float %1 Sqrt %1256
OpStore %1211 %1257
OpBranch %bb5_5
%bb5_5 = OpLabel
%1258 = OpLoad %float %1209
%1259 = OpLoad %float %1211
%1260 = OpFSub %float %1258 %1259
OpStore %1208 %1260
%1261 = OpLoad %float %1198
OpStore %1213 %1261
%1262 = OpLoad %float %1208
%1263 = OpLoad %float %1213
%1264 = OpFDiv %float %1262 %1263
OpStore %1207 %1264
%1265 = OpLoad %float %1200
%1266 = OpAccessChain %_ptr_Function_float %1214 %uint_0
OpStore %1266 %1265
%1267 = OpLoad %float %1207
%1268 = OpAccessChain %_ptr_Function_float %1214 %uint_1
OpStore %1268 %1267
%1269 = OpLoad %v2float %1214
%1270 = OpAccessChain %_ptr_Function_v2float %1181 %uint_1 %uint_0
OpStore %1270 %1269
%1271 = OpAccessChain %_ptr_Function_uint %1181 %uint_2
OpStore %1271 %uint_1
OpBranch %bb6_2
%bb6_2 = OpLabel
OpBranch %bb3_10
%bb3_10 = OpLabel
%1272 = OpLoad %_ZN4core6option6Option_0 %1181
OpReturnValue %1272
OpFunctionEnd
%_ZN78__LT_rlsl_math__vector__Vec3_LT_T_GT__u20_as_u20_rlsl_math__vector__Vector_GT_3dot = OpFunction %float None %1273
%1274 = OpFunctionParameter %v3float
%1275 = OpFunctionParameter %v3float
%1276 = OpLabel
%1277 = OpVariable %_ptr_Function_v3float Function
OpStore %1277 %1274
%1278 = OpVariable %_ptr_Function_v3float Function
OpStore %1278 %1275
%1279 = OpVariable %_ptr_Function_float Function
%1286 = OpVariable %_ptr_Function_float Function
%1287 = OpVariable %_ptr_Function_float Function
%1288 = OpVariable %_ptr_Function_float Function
%1289 = OpVariable %_ptr_Function_float Function
%1290 = OpVariable %_ptr_Function_float Function
%1291 = OpVariable %_ptr_Function_float Function
%1292 = OpVariable %_ptr_Function_float Function
%1293 = OpVariable %_ptr_Function_float Function
%1294 = OpVariable %_ptr_Function_float Function
%1295 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_26
%bb0_26 = OpLabel
%1296 = OpAccessChain %_ptr_Function_float %1277 %uint_0
%1297 = OpLoad %float %1296
OpStore %1288 %1297
%1298 = OpAccessChain %_ptr_Function_float %1278 %uint_0
%1299 = OpLoad %float %1298
OpStore %1289 %1299
%1300 = OpLoad %float %1288
%1301 = OpLoad %float %1289
%1302 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %1300 %1301
OpStore %1287 %1302
OpBranch %bb1_16
%bb1_16 = OpLabel
%1303 = OpAccessChain %_ptr_Function_float %1277 %uint_1
%1304 = OpLoad %float %1303
OpStore %1291 %1304
%1305 = OpAccessChain %_ptr_Function_float %1278 %uint_1
%1306 = OpLoad %float %1305
OpStore %1292 %1306
%1307 = OpLoad %float %1291
%1308 = OpLoad %float %1292
%1309 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %1307 %1308
OpStore %1290 %1309
OpBranch %bb2_15
%bb2_15 = OpLabel
%1310 = OpLoad %float %1287
%1311 = OpLoad %float %1290
%1312 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Add_GT_3add %1310 %1311
OpStore %1286 %1312
OpBranch %bb3_11
%bb3_11 = OpLabel
%1313 = OpAccessChain %_ptr_Function_float %1277 %uint_2
%1314 = OpLoad %float %1313
OpStore %1294 %1314
%1315 = OpAccessChain %_ptr_Function_float %1278 %uint_2
%1316 = OpLoad %float %1315
OpStore %1295 %1316
%1317 = OpLoad %float %1294
%1318 = OpLoad %float %1295
%1319 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Mul_GT_3mul %1317 %1318
OpStore %1293 %1319
OpBranch %bb4_7
%bb4_7 = OpLabel
%1320 = OpLoad %float %1286
%1321 = OpLoad %float %1293
%1322 = OpFunctionCall %float %_ZN45__LT_f32_u20_as_u20_core__ops__arith__Add_GT_3add %1320 %1321
OpStore %1279 %1322
OpBranch %bb5_6
%bb5_6 = OpLabel
%1323 = OpLoad %float %1279
OpReturnValue %1323
OpFunctionEnd
%_ZN45__LT_f32_u20_as_u20_rlsl_math__num__Float_GT_3cos = OpFunction %float None %599
%1324 = OpFunctionParameter %float
%1325 = OpLabel
%1326 = OpVariable %_ptr_Function_float Function
OpStore %1326 %1324
%1327 = OpVariable %_ptr_Function_float Function
OpBranch %bb0_27
%bb0_27 = OpLabel
%1330 = OpLoad %float %1326
%1331 = OpExtInst %float %1 Cos %1330
OpStore %1327 %1331
OpBranch %bb1_17
%bb1_17 = OpLabel
%1332 = OpLoad %float %1327
OpReturnValue %1332
OpFunctionEnd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment