Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Algol68
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C with Coccinelle
C++ with Coccinelle
C++ (Circle)
CIRCT
Clean
Clojure
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
GLSL
Go
Haskell
HLSL
Helion
Hook
Hylo
IL
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Mojo
Nim
Numba
Nix
Objective-C
Objective-C++
OCaml
Odin
OpenCL C
Pascal
Pony
PTX
Python
Racket
Raku
Ruby
Rust
Sail
Snowball
Scala
Slang
Solidity
Spice
SPIR-V
Swift
LLVM TableGen
Toit
Triton
TypeScript Native
V
Vala
Visual Basic
Vyper
WASM
Yul (Solidity IR)
Zig
Javascript
GIMPLE
Ygen
sway
llvm source #6
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
clang (assertions trunk)
clang (trunk)
clang 10.0.0
clang 10.0.1
clang 11.0.0
clang 11.0.1
clang 12.0.0
clang 12.0.1
clang 13.0.0
clang 14.0.0
clang 15.0.0
clang 16.0.0
clang 17.0.1
clang 18.1.0
clang 19.1.0
clang 20.1.0
clang 21.1.0
clang 4.0.1
clang 5.0.0
clang 6.0.0
clang 7.0.0
clang 8.0.0
clang 9.0.0
hexagon-clang 16.0.5
llc (assertions trunk)
llc (trunk)
llc 10.0.0
llc 10.0.1
llc 11.0.0
llc 11.0.1
llc 12.0.0
llc 12.0.1
llc 13.0.0
llc 14.0.0
llc 15.0.0
llc 16.0.0
llc 17.0.1
llc 18.1.0
llc 19.1.0
llc 20.1.0
llc 21.1.0
llc 3.2
llc 3.3
llc 3.9.1
llc 4.0.0
llc 4.0.1
llc 5.0.0
llc 6.0.0
llc 7.0.0
llc 8.0.0
llc 9.0.0
opt (assertions trunk)
opt (trunk)
opt 10.0.0
opt 10.0.1
opt 11.0.0
opt 11.0.1
opt 12.0.0
opt 12.0.1
opt 13.0.0
opt 14.0.0
opt 15.0.0
opt 16.0.0
opt 17.0.1
opt 18.1.0
opt 19.1.0
opt 20.1.0
opt 21.1.0
opt 3.2
opt 3.3
opt 3.9.1
opt 4.0.0
opt 4.0.1
opt 5.0.0
opt 6.0.0
opt 7.0.0
opt 8.0.0
opt 9.0.0
Options
Source code
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" %v8_varying_FVector3f = type { [3 x <8 x float>] } %v8_uniform_FVector4f = type { <4 x float> } %v8_uniform_FVector3f = type { [3 x float] } ; Function Attrs: nounwind define void @ApplySphericalBackstopConstraintsWithMaps___un_3C_s_5B_unFVector4f_5D__3E_un_3C_s_5B__c_unFVector3f_5D__3E_un_3C_s_5B__c_unFVector3f_5D__3E_un_3C_Cunf_3E_un_3C_Cunf_3E_CunfCunfCunfCunfCuniCuni(ptr noalias %ParticlesPandInvM, ptr noalias %AnimationPositions, ptr noalias %AnimationNormals, ptr noalias %SphereOffsetDistances, ptr noalias %SphereRadii, float %SphereOffsetDistancesBase, float %SphereOffsetDistancesRange, float %SphereRadiiBase, float %SphereRadiiRange, i32 %ParticleOffset, i32 %ParticleCount, <8 x i32> %__mask) local_unnamed_addr #0 { allocas: %Position166 = alloca %v8_varying_FVector3f, align 32 %nextras = srem i32 %ParticleCount, 8 %aligned_end = sub nsw i32 %ParticleCount, %nextras %before_aligned_end252681 = icmp sgt i32 %aligned_end, 0 br i1 %before_aligned_end252681, label %foreach_full_body.lr.ph, label %partial_inner_all_outer foreach_full_body.lr.ph: ; preds = %allocas %SphereOffsetDistancesBase_load_broadcast = insertelement <8 x float> poison, float %SphereOffsetDistancesBase, i64 0 %SphereOffsetDistancesBase_load_broadcast55 = shufflevector <8 x float> %SphereOffsetDistancesBase_load_broadcast, <8 x float> poison, <8 x i32> zeroinitializer %SphereOffsetDistancesRange_load_broadcast = insertelement <8 x float> poison, float %SphereOffsetDistancesRange, i64 0 %SphereOffsetDistancesRange_load_broadcast56 = shufflevector <8 x float> %SphereOffsetDistancesRange_load_broadcast, <8 x float> poison, <8 x i32> zeroinitializer %SphereRadiiBase_load_broadcast = insertelement <8 x float> poison, float %SphereRadiiBase, i64 0 %SphereRadiiBase_load_broadcast63 = shufflevector <8 x float> %SphereRadiiBase_load_broadcast, <8 x float> poison, <8 x i32> zeroinitializer %SphereRadiiRange_load_broadcast = insertelement <8 x float> poison, float %SphereRadiiRange, i64 0 %SphereRadiiRange_load_broadcast64 = shufflevector <8 x float> %SphereRadiiRange_load_broadcast, <8 x float> poison, <8 x i32> zeroinitializer %0 = sext i32 %ParticleOffset to i64 %1 = zext nneg i32 %aligned_end to i64 br label %VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_.exit VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_.exit: ; preds = %foreach_full_continue, %foreach_full_body.lr.ph %indvars.iv = phi i64 [ 0, %foreach_full_body.lr.ph ], [ %indvars.iv.next, %foreach_full_continue ] %2 = add nsw i64 %indvars.iv, %0 %ParticlesPandInvM_load_offset = getelementptr %v8_uniform_FVector4f, ptr %ParticlesPandInvM, i64 %2 %ptr_masked_load99.i.i = load <8 x float>, ptr %ParticlesPandInvM_load_offset, align 4, !alias.scope !6, !noalias !11, !filename !16, !first_line !17, !first_column !18, !last_line !17, !last_column !19 %ptr105.i.i = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 32 %ptr105_masked_load106.i.i = load <8 x float>, ptr %ptr105.i.i, align 4, !alias.scope !6, !noalias !11, !filename !16, !first_line !20, !first_column !18, !last_line !20, !last_column !21 %ptr112.i.i = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 64 %ptr112_masked_load113.i.i = load <8 x float>, ptr %ptr112.i.i, align 4, !alias.scope !6, !noalias !11, !filename !16, !first_line !22, !first_column !18, !last_line !22, !last_column !23 %ptr119.i.i = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 96 %ptr119_masked_load120.i.i = load <8 x float>, ptr %ptr119.i.i, align 4, !alias.scope !6, !noalias !11, !filename !16, !first_line !24, !first_column !18, !last_line !24, !last_column !23 %ret_7.i.i.i.i.i = shufflevector <8 x float> %ptr_masked_load99.i.i, <8 x float> %ptr112_masked_load113.i.i, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11> %ret_7.i.i.i147.i.i = shufflevector <8 x float> %ptr_masked_load99.i.i, <8 x float> %ptr112_masked_load113.i.i, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15> %ret_7.i.i.i172.i.i = shufflevector <8 x float> %ptr105_masked_load106.i.i, <8 x float> %ptr119_masked_load120.i.i, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11> %ret_7.i.i.i197.i.i = shufflevector <8 x float> %ptr105_masked_load106.i.i, <8 x float> %ptr119_masked_load120.i.i, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15> %ret_7.i.i.i247.i.i = shufflevector <8 x float> %ret_7.i.i.i.i.i, <8 x float> %ret_7.i.i.i147.i.i, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15> %ret_7.i.i.i297.i.i = shufflevector <8 x float> %ret_7.i.i.i172.i.i, <8 x float> %ret_7.i.i.i197.i.i, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15> %ret_7.i.i.i397.i.i = shufflevector <8 x float> %ret_7.i.i.i247.i.i, <8 x float> %ret_7.i.i.i297.i.i, <8 x i32> <i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15> %equal_IM_load_ = fcmp une <8 x float> %ret_7.i.i.i397.i.i, zeroinitializer %3 = bitcast <8 x i1> %equal_IM_load_ to i8 %cmp.i.i = icmp eq i8 %3, 0 br i1 %cmp.i.i, label %foreach_full_continue, label %VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_.exit695 VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_.exit695: ; preds = %VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_.exit %ret_7.i.i.i372.i.i = shufflevector <8 x float> %ret_7.i.i.i247.i.i, <8 x float> %ret_7.i.i.i297.i.i, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13> %ret_7.i.i.i222.i.i = shufflevector <8 x float> %ret_7.i.i.i.i.i, <8 x float> %ret_7.i.i.i147.i.i, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13> %ret_7.i.i.i272.i.i = shufflevector <8 x float> %ret_7.i.i.i172.i.i, <8 x float> %ret_7.i.i.i197.i.i, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13> %ret_7.i.i.i347.i.i = shufflevector <8 x float> %ret_7.i.i.i222.i.i, <8 x float> %ret_7.i.i.i272.i.i, <8 x i32> <i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15> %ret_7.i.i.i322.i.i = shufflevector <8 x float> %ret_7.i.i.i222.i.i, <8 x float> %ret_7.i.i.i272.i.i, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13> %AnimationPositions_load_offset = getelementptr %v8_uniform_FVector3f, ptr %AnimationPositions, i64 %2 %ptr_masked_load59.i.i = load <8 x float>, ptr %AnimationPositions_load_offset, align 4, !alias.scope !25, !noalias !30, !filename !16, !first_line !34, !first_column !18, !last_line !34, !last_column !19 %ptr65.i.i = getelementptr i8, ptr %AnimationPositions_load_offset, i64 32, !filename !16, !first_line !35, !first_column !18, !last_line !35, !last_column !21 %ptr65_masked_load66.i.i = load <8 x float>, ptr %ptr65.i.i, align 4, !alias.scope !25, !noalias !30, !filename !16, !first_line !35, !first_column !18, !last_line !35, !last_column !21 %ptr72.i.i = getelementptr i8, ptr %AnimationPositions_load_offset, i64 64, !filename !16, !first_line !36, !first_column !18, !last_line !36, !last_column !23 %ptr72_masked_load73.i.i = load <8 x float>, ptr %ptr72.i.i, align 4, !alias.scope !25, !noalias !30, !filename !16, !first_line !36, !first_column !18, !last_line !36, !last_column !23 %ret_7.i.i.i.i.i534 = shufflevector <8 x float> %ptr_masked_load59.i.i, <8 x float> %ptr65_masked_load66.i.i, <8 x i32> <i32 0, i32 3, i32 6, i32 9, i32 1, i32 4, i32 7, i32 10> %ret_7.i.i.i99.i.i = shufflevector <8 x float> %ptr65_masked_load66.i.i, <8 x float> %ptr72_masked_load73.i.i, <8 x i32> <i32 4, i32 7, i32 10, i32 13, i32 5, i32 8, i32 11, i32 14> %ret_7.i.i.i124.i.i = shufflevector <8 x float> %ret_7.i.i.i.i.i534, <8 x float> %ret_7.i.i.i99.i.i, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11> %ret_7.i.i.i149.i.i = shufflevector <8 x float> %ret_7.i.i.i.i.i534, <8 x float> %ret_7.i.i.i99.i.i, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15> %ret_4.i.i.i168.i.i = shufflevector <8 x float> %ptr_masked_load59.i.i, <8 x float> %ptr65_masked_load66.i.i, <8 x i32> <i32 2, i32 5, i32 8, i32 11, i32 14, i32 poison, i32 poison, i32 poison> %ret_7.i.i.i193.i.i = shufflevector <8 x float> %ret_4.i.i.i168.i.i, <8 x float> %ptr72_masked_load73.i.i, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 9, i32 12, i32 15> %AnimationNormals_load_offset = getelementptr %v8_uniform_FVector3f, ptr %AnimationNormals, i64 %2 %ptr_masked_load59.i.i538 = load <8 x float>, ptr %AnimationNormals_load_offset, align 4, !alias.scope !37, !noalias !42, !filename !16, !first_line !34, !first_column !18, !last_line !34, !last_column !19 %ptr65.i.i539 = getelementptr i8, ptr %AnimationNormals_load_offset, i64 32, !filename !16, !first_line !35, !first_column !18, !last_line !35, !last_column !21 %ptr65_masked_load66.i.i540 = load <8 x float>, ptr %ptr65.i.i539, align 4, !alias.scope !37, !noalias !42, !filename !16, !first_line !35, !first_column !18, !last_line !35, !last_column !21 %ptr72.i.i541 = getelementptr i8, ptr %AnimationNormals_load_offset, i64 64, !filename !16, !first_line !36, !first_column !18, !last_line !36, !last_column !23 %ptr72_masked_load73.i.i542 = load <8 x float>, ptr %ptr72.i.i541, align 4, !alias.scope !37, !noalias !42, !filename !16, !first_line !36, !first_column !18, !last_line !36, !last_column !23 %ret_7.i.i.i.i.i694 = shufflevector <8 x float> %ptr_masked_load59.i.i538, <8 x float> %ptr65_masked_load66.i.i540, <8 x i32> <i32 0, i32 3, i32 6, i32 9, i32 1, i32 4, i32 7, i32 10> %ret_7.i.i.i99.i.i676 = shufflevector <8 x float> %ptr65_masked_load66.i.i540, <8 x float> %ptr72_masked_load73.i.i542, <8 x i32> <i32 4, i32 7, i32 10, i32 13, i32 5, i32 8, i32 11, i32 14> %ret_7.i.i.i124.i.i658 = shufflevector <8 x float> %ret_7.i.i.i.i.i694, <8 x float> %ret_7.i.i.i99.i.i676, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11> %ret_7.i.i.i149.i.i640 = shufflevector <8 x float> %ret_7.i.i.i.i.i694, <8 x float> %ret_7.i.i.i99.i.i676, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15> %ret_4.i.i.i168.i.i622 = shufflevector <8 x float> %ptr_masked_load59.i.i538, <8 x float> %ptr65_masked_load66.i.i540, <8 x i32> <i32 2, i32 5, i32 8, i32 11, i32 14, i32 poison, i32 poison, i32 poison> %ret_7.i.i.i193.i.i610 = shufflevector <8 x float> %ret_4.i.i.i168.i.i622, <8 x float> %ptr72_masked_load73.i.i542, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 9, i32 12, i32 15> %mul__Index_load57.elt0 = shl i64 %indvars.iv, 2 %offset_cast.elt0 = and i64 %mul__Index_load57.elt0, 4294967264 %ptr = getelementptr i8, ptr %SphereOffsetDistances, i64 %offset_cast.elt0, !filename !46, !first_line !47, !first_column !48, !last_line !47, !last_column !49 %ptr_masked_load450 = load <8 x float>, ptr %ptr, align 4, !filename !46, !first_line !47, !first_column !48, !last_line !47, !last_column !49 %mul_SphereOffsetDistancesRange_load_broadcast56_SphereOffsetDistances_load_offset_load = fmul <8 x float> %SphereOffsetDistancesRange_load_broadcast56, %ptr_masked_load450 %add_SphereOffsetDistancesBase_load_broadcast55_mul_SphereOffsetDistancesRange_load_broadcast56_SphereOffsetDistances_load_offset_load = fadd <8 x float> %SphereOffsetDistancesBase_load_broadcast55, %mul_SphereOffsetDistancesRange_load_broadcast56_SphereOffsetDistances_load_offset_load %ptr457 = getelementptr i8, ptr %SphereRadii, i64 %offset_cast.elt0, !filename !46, !first_line !50, !first_column !51, !last_line !50, !last_column !52 %ptr457_masked_load458 = load <8 x float>, ptr %ptr457, align 4, !filename !46, !first_line !50, !first_column !51, !last_line !50, !last_column !52 %mul_SphereRadiiRange_load_broadcast64_SphereRadii_load_offset_load = fmul <8 x float> %SphereRadiiRange_load_broadcast64, %ptr457_masked_load458 %add_SphereRadiiBase_load_broadcast63_mul_SphereRadiiRange_load_broadcast64_SphereRadii_load_offset_load = fadd <8 x float> %SphereRadiiBase_load_broadcast63, %mul_SphereRadiiRange_load_broadcast64_SphereRadii_load_offset_load %add_Radius_load_SphereOffsetDistance_load = fadd <8 x float> %add_SphereOffsetDistancesBase_load_broadcast55_mul_SphereOffsetDistancesRange_load_broadcast56_SphereOffsetDistances_load_offset_load, %add_SphereRadiiBase_load_broadcast63_mul_SphereRadiiRange_load_broadcast64_SphereRadii_load_offset_load %mul_F_load_A_load4_offset_load.i = fmul <8 x float> %ret_7.i.i.i124.i.i658, %add_Radius_load_SphereOffsetDistance_load %mul_F_load8_A_load910_offset_load.i = fmul <8 x float> %ret_7.i.i.i149.i.i640, %add_Radius_load_SphereOffsetDistance_load %mul_F_load14_A_load1516_offset_load.i = fmul <8 x float> %ret_7.i.i.i193.i.i610, %add_Radius_load_SphereOffsetDistance_load %sub_A_load4_offset_load_B_load7_offset_load.i = fsub <8 x float> %ret_7.i.i.i124.i.i, %mul_F_load_A_load4_offset_load.i %sub_A_load1112_offset_load_B_load1516_offset_load.i = fsub <8 x float> %ret_7.i.i.i149.i.i, %mul_F_load8_A_load910_offset_load.i %sub_A_load2021_offset_load_B_load2425_offset_load.i = fsub <8 x float> %ret_7.i.i.i193.i.i, %mul_F_load14_A_load1516_offset_load.i %sub_A_load4_offset_load_B_load7_offset_load.i707 = fsub <8 x float> %ret_7.i.i.i322.i.i, %sub_A_load4_offset_load_B_load7_offset_load.i %sub_A_load1112_offset_load_B_load1516_offset_load.i712 = fsub <8 x float> %ret_7.i.i.i347.i.i, %sub_A_load1112_offset_load_B_load1516_offset_load.i %sub_A_load2021_offset_load_B_load2425_offset_load.i717 = fsub <8 x float> %ret_7.i.i.i372.i.i, %sub_A_load2021_offset_load_B_load2425_offset_load.i %mul_A_load4_offset_load_B_load7_offset_load.i.i.i = fmul <8 x float> %sub_A_load4_offset_load_B_load7_offset_load.i707, %sub_A_load4_offset_load_B_load7_offset_load.i707 %mul_A_load1112_offset_load_B_load1516_offset_load.i.i.i = fmul <8 x float> %sub_A_load1112_offset_load_B_load1516_offset_load.i712, %sub_A_load1112_offset_load_B_load1516_offset_load.i712 %mul_A_load2021_offset_load_B_load2425_offset_load.i.i.i = fmul <8 x float> %sub_A_load2021_offset_load_B_load2425_offset_load.i717, %sub_A_load2021_offset_load_B_load2425_offset_load.i717 %add_Temp5_offset_load_Temp7_offset_load.i.i = fadd <8 x float> %mul_A_load4_offset_load_B_load7_offset_load.i.i.i, %mul_A_load1112_offset_load_B_load1516_offset_load.i.i.i %add_add_Temp5_offset_load_Temp7_offset_load_Temp9_offset_load.i.i = fadd <8 x float> %mul_A_load2021_offset_load_B_load2425_offset_load.i.i.i, %add_Temp5_offset_load_Temp7_offset_load.i.i %4 = tail call <8 x float> @llvm.sqrt.v8f32(<8 x float> %add_add_Temp5_offset_load_Temp7_offset_load_Temp9_offset_load.i.i) %div_Radius_load83_calltmp86 = fdiv <8 x float> %add_SphereRadiiBase_load_broadcast63_mul_SphereRadiiRange_load_broadcast64_SphereRadii_load_offset_load, %4 %mul_F_load_A_load4_offset_load.i723 = fmul <8 x float> %sub_A_load4_offset_load_B_load7_offset_load.i707, %div_Radius_load83_calltmp86 %mul_F_load8_A_load910_offset_load.i726 = fmul <8 x float> %sub_A_load1112_offset_load_B_load1516_offset_load.i712, %div_Radius_load83_calltmp86 %mul_F_load14_A_load1516_offset_load.i729 = fmul <8 x float> %sub_A_load2021_offset_load_B_load2425_offset_load.i717, %div_Radius_load83_calltmp86 %add_A_load4_offset_load_B_load7_offset_load.i = fadd <8 x float> %sub_A_load4_offset_load_B_load7_offset_load.i, %mul_F_load_A_load4_offset_load.i723 %add_A_load1112_offset_load_B_load1516_offset_load.i = fadd <8 x float> %sub_A_load1112_offset_load_B_load1516_offset_load.i, %mul_F_load8_A_load910_offset_load.i726 %add_A_load2021_offset_load_B_load2425_offset_load.i = fadd <8 x float> %sub_A_load2021_offset_load_B_load2425_offset_load.i, %mul_F_load14_A_load1516_offset_load.i729 %mul_F_load_A_load4_offset_load.i749 = fmul <8 x float> %ret_7.i.i.i124.i.i658, %add_SphereOffsetDistancesBase_load_broadcast55_mul_SphereOffsetDistancesRange_load_broadcast56_SphereOffsetDistances_load_offset_load %mul_F_load8_A_load910_offset_load.i752 = fmul <8 x float> %ret_7.i.i.i149.i.i640, %add_SphereOffsetDistancesBase_load_broadcast55_mul_SphereOffsetDistancesRange_load_broadcast56_SphereOffsetDistances_load_offset_load %mul_F_load14_A_load1516_offset_load.i755 = fmul <8 x float> %ret_7.i.i.i193.i.i610, %add_SphereOffsetDistancesBase_load_broadcast55_mul_SphereOffsetDistancesRange_load_broadcast56_SphereOffsetDistances_load_offset_load %sub_A_load4_offset_load_B_load7_offset_load.i762 = fsub <8 x float> %ret_7.i.i.i124.i.i, %mul_F_load_A_load4_offset_load.i749 %sub_A_load1112_offset_load_B_load1516_offset_load.i767 = fsub <8 x float> %ret_7.i.i.i149.i.i, %mul_F_load8_A_load910_offset_load.i752 %sub_A_load2021_offset_load_B_load2425_offset_load.i772 = fsub <8 x float> %ret_7.i.i.i193.i.i, %mul_F_load14_A_load1516_offset_load.i755 %mul_Radius_load101_Radius_load102 = fmul <8 x float> %add_SphereRadiiBase_load_broadcast63_mul_SphereRadiiRange_load_broadcast64_SphereRadii_load_offset_load, %add_SphereRadiiBase_load_broadcast63_mul_SphereRadiiRange_load_broadcast64_SphereRadii_load_offset_load %less_DistanceSquared_load100_mul_Radius_load101_Radius_load102 = fcmp olt <8 x float> %add_add_Temp5_offset_load_Temp7_offset_load_Temp9_offset_load.i.i, %mul_Radius_load101_Radius_load102 %blend.i.i = select <8 x i1> %less_DistanceSquared_load100_mul_Radius_load101_Radius_load102, <8 x float> %add_A_load4_offset_load_B_load7_offset_load.i, <8 x float> zeroinitializer %blend.i.i2136 = select <8 x i1> %less_DistanceSquared_load100_mul_Radius_load101_Radius_load102, <8 x float> %add_A_load1112_offset_load_B_load1516_offset_load.i, <8 x float> zeroinitializer %blend.i.i2139 = select <8 x i1> %less_DistanceSquared_load100_mul_Radius_load101_Radius_load102, <8 x float> %add_A_load2021_offset_load_B_load2425_offset_load.i, <8 x float> zeroinitializer %less_DistanceSquared_load106_ = fcmp olt <8 x float> %add_add_Temp5_offset_load_Temp7_offset_load_Temp9_offset_load.i.i, <float 0x3E45798EE0000000, float 0x3E45798EE0000000, float 0x3E45798EE0000000, float 0x3E45798EE0000000, float 0x3E45798EE0000000, float 0x3E45798EE0000000, float 0x3E45798EE0000000, float 0x3E45798EE0000000> %blend.i.i2142 = select <8 x i1> %less_DistanceSquared_load106_, <8 x float> %sub_A_load4_offset_load_B_load7_offset_load.i762, <8 x float> %blend.i.i %blend.i.i2145 = select <8 x i1> %less_DistanceSquared_load106_, <8 x float> %sub_A_load1112_offset_load_B_load1516_offset_load.i767, <8 x float> %blend.i.i2136 %blend.i.i2148 = select <8 x i1> %less_DistanceSquared_load106_, <8 x float> %sub_A_load2021_offset_load_B_load2425_offset_load.i772, <8 x float> %blend.i.i2139 %notequal_NewP111_offset_load_ = fcmp une <8 x float> %blend.i.i2142, zeroinitializer %logical_and448 = and <8 x i1> %notequal_NewP111_offset_load_, %equal_IM_load_ %5 = bitcast <8 x i1> %logical_and448 to i8 switch i8 %5, label %pl_loop.i [ i8 0, label %foreach_full_continue i8 -1, label %soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_.exit.i ] is_const.i.i380.i.i903: ; preds = %partial_inner_only %ptr_masked_load99.i.i813 = load <8 x float>, ptr %ParticlesPandInvM_load162_offset, align 4, !alias.scope !53, !noalias !58, !filename !16, !first_line !17, !first_column !18, !last_line !17, !last_column !19 %ptr105.i.i814 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 32, !filename !16, !first_line !20, !first_column !18, !last_line !20, !last_column !21 %ptr105_masked_load106.i.i815 = load <8 x float>, ptr %ptr105.i.i814, align 4, !alias.scope !53, !noalias !58, !filename !16, !first_line !20, !first_column !18, !last_line !20, !last_column !21 %ptr112.i.i816 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 64, !filename !16, !first_line !22, !first_column !18, !last_line !22, !last_column !23 %ptr112_masked_load113.i.i817 = load <8 x float>, ptr %ptr112.i.i816, align 4, !alias.scope !53, !noalias !58, !filename !16, !first_line !22, !first_column !18, !last_line !22, !last_column !23 %ptr119.i.i818 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 96, !filename !16, !first_line !24, !first_column !18, !last_line !24, !last_column !23 %ptr119_masked_load120.i.i819 = load <8 x float>, ptr %ptr119.i.i818, align 4, !alias.scope !53, !noalias !58, !filename !16, !first_line !24, !first_column !18, !last_line !24, !last_column !23 %ret_7.i.i.i.i.i1118 = shufflevector <8 x float> %ptr_masked_load99.i.i813, <8 x float> %ptr112_masked_load113.i.i817, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11> %ret_7.i.i.i147.i.i1100 = shufflevector <8 x float> %ptr_masked_load99.i.i813, <8 x float> %ptr112_masked_load113.i.i817, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15> %ret_7.i.i.i172.i.i1082 = shufflevector <8 x float> %ptr105_masked_load106.i.i815, <8 x float> %ptr119_masked_load120.i.i819, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11> %ret_7.i.i.i197.i.i1064 = shufflevector <8 x float> %ptr105_masked_load106.i.i815, <8 x float> %ptr119_masked_load120.i.i819, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15> %ret_7.i.i.i222.i.i1046 = shufflevector <8 x float> %ret_7.i.i.i.i.i1118, <8 x float> %ret_7.i.i.i147.i.i1100, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13> %ret_7.i.i.i247.i.i1028 = shufflevector <8 x float> %ret_7.i.i.i.i.i1118, <8 x float> %ret_7.i.i.i147.i.i1100, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15> %ret_7.i.i.i272.i.i1010 = shufflevector <8 x float> %ret_7.i.i.i172.i.i1082, <8 x float> %ret_7.i.i.i197.i.i1064, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13> %ret_7.i.i.i297.i.i992 = shufflevector <8 x float> %ret_7.i.i.i172.i.i1082, <8 x float> %ret_7.i.i.i197.i.i1064, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15> %ret_7.i.i.i322.i.i974 = shufflevector <8 x float> %ret_7.i.i.i222.i.i1046, <8 x float> %ret_7.i.i.i272.i.i1010, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13> %ret_7.i.i.i347.i.i956 = shufflevector <8 x float> %ret_7.i.i.i222.i.i1046, <8 x float> %ret_7.i.i.i272.i.i1010, <8 x i32> <i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15> %ret_7.i.i.i372.i.i938 = shufflevector <8 x float> %ret_7.i.i.i247.i.i1028, <8 x float> %ret_7.i.i.i297.i.i992, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13> %ret_7.i.i.i397.i.i920 = shufflevector <8 x float> %ret_7.i.i.i247.i.i1028, <8 x float> %ret_7.i.i.i297.i.i992, <8 x i32> <i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15> br label %VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_.exit1119 if_else.i: ; preds = %partial_inner_only %mask.i = bitcast <8 x i32> %cmp149_to_boolvec to <8 x float> %v_1.i = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, ptr %ParticlesPandInvM_load162_offset, <8 x i32> <i32 0, i32 16, i32 32, i32 48, i32 64, i32 80, i32 96, i32 112>, <8 x float> %mask.i, i8 1) %v_1.i2150 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, ptr %ParticlesPandInvM_load162_offset, <8 x i32> <i32 4, i32 20, i32 36, i32 52, i32 68, i32 84, i32 100, i32 116>, <8 x float> %mask.i, i8 1) %v_1.i2152 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, ptr %ParticlesPandInvM_load162_offset, <8 x i32> <i32 8, i32 24, i32 40, i32 56, i32 72, i32 88, i32 104, i32 120>, <8 x float> %mask.i, i8 1) %v_1.i2154 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, ptr %ParticlesPandInvM_load162_offset, <8 x i32> <i32 12, i32 28, i32 44, i32 60, i32 76, i32 92, i32 108, i32 124>, <8 x float> %mask.i, i8 1) br label %VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_.exit1119 VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_.exit1119: ; preds = %if_else.i, %is_const.i.i380.i.i903 %Result.i797.sroa.0.0 = phi <8 x float> [ %v_1.i, %if_else.i ], [ %ret_7.i.i.i322.i.i974, %is_const.i.i380.i.i903 ] %Result.i797.sroa.5.0 = phi <8 x float> [ %v_1.i2150, %if_else.i ], [ %ret_7.i.i.i347.i.i956, %is_const.i.i380.i.i903 ] %Result.i797.sroa.8.0 = phi <8 x float> [ %v_1.i2152, %if_else.i ], [ %ret_7.i.i.i372.i.i938, %is_const.i.i380.i.i903 ] %Result.i797.sroa.11.0 = phi <8 x float> [ %v_1.i2154, %if_else.i ], [ %ret_7.i.i.i397.i.i920, %is_const.i.i380.i.i903 ] call void @llvm.masked.store.v8f32.p0(<8 x float> %Result.i797.sroa.0.0, ptr nonnull %Position166, i32 1, <8 x i1> %cmp149) %P_load1011_offset.i1121 = getelementptr inbounds [3 x <8 x float>], ptr %Position166, i64 0, i64 1 call void @llvm.masked.store.v8f32.p0(<8 x float> %Result.i797.sroa.5.0, ptr nonnull %P_load1011_offset.i1121, i32 1, <8 x i1> %cmp149) %P_load1819_offset.i1124 = getelementptr inbounds [3 x <8 x float>], ptr %Position166, i64 0, i64 2 call void @llvm.masked.store.v8f32.p0(<8 x float> %Result.i797.sroa.8.0, ptr nonnull %P_load1819_offset.i1124, i32 1, <8 x i1> %cmp149) %blend.i.i2157 = select <8 x i1> %cmp149, <8 x float> %Result.i797.sroa.11.0, <8 x float> undef %equal_IM_load170_ = fcmp une <8 x float> %blend.i.i2157, zeroinitializer %bitop.i2009.not = and <8 x i1> %equal_IM_load170_, %cmp149 %6 = bitcast <8 x i1> %bitop.i2009.not to i8 %cmp.i.i1130 = icmp eq i8 %6, 0 br i1 %cmp.i.i1130, label %foreach_reset, label %if_exit177 if_exit177: ; preds = %VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_.exit1119 %AnimationPositions_load189_offset = getelementptr %v8_uniform_FVector3f, ptr %AnimationPositions, i64 %Offset_load161_to_int64 br i1 %equal_bitop_.i, label %is_const.i.i176.i.i1364, label %if_else.i1299 is_const.i.i176.i.i1364: ; preds = %if_exit177 %ptr_masked_load59.i.i1147 = load <8 x float>, ptr %AnimationPositions_load189_offset, align 4, !alias.scope !63, !noalias !68, !filename !16, !first_line !34, !first_column !18, !last_line !34, !last_column !19 %ptr65.i.i1148 = getelementptr i8, ptr %AnimationPositions_load189_offset, i64 32, !filename !16, !first_line !35, !first_column !18, !last_line !35, !last_column !21 %ptr65_masked_load66.i.i1149 = load <8 x float>, ptr %ptr65.i.i1148, align 4, !alias.scope !63, !noalias !68, !filename !16, !first_line !35, !first_column !18, !last_line !35, !last_column !21 %ptr72.i.i1150 = getelementptr i8, ptr %AnimationPositions_load189_offset, i64 64, !filename !16, !first_line !36, !first_column !18, !last_line !36, !last_column !23 %ptr72_masked_load73.i.i1151 = load <8 x float>, ptr %ptr72.i.i1150, align 4, !alias.scope !63, !noalias !68, !filename !16, !first_line !36, !first_column !18, !last_line !36, !last_column !23 %ret_7.i.i.i.i.i1294 = shufflevector <8 x float> %ptr_masked_load59.i.i1147, <8 x float> %ptr65_masked_load66.i.i1149, <8 x i32> <i32 0, i32 3, i32 6, i32 9, i32 1, i32 4, i32 7, i32 10> %ret_7.i.i.i99.i.i1276 = shufflevector <8 x float> %ptr65_masked_load66.i.i1149, <8 x float> %ptr72_masked_load73.i.i1151, <8 x i32> <i32 4, i32 7, i32 10, i32 13, i32 5, i32 8, i32 11, i32 14> %ret_7.i.i.i124.i.i1258 = shufflevector <8 x float> %ret_7.i.i.i.i.i1294, <8 x float> %ret_7.i.i.i99.i.i1276, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11> %ret_7.i.i.i149.i.i1240 = shufflevector <8 x float> %ret_7.i.i.i.i.i1294, <8 x float> %ret_7.i.i.i99.i.i1276, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15> %ret_4.i.i.i168.i.i1222 = shufflevector <8 x float> %ptr_masked_load59.i.i1147, <8 x float> %ptr65_masked_load66.i.i1149, <8 x i32> <i32 2, i32 5, i32 8, i32 11, i32 14, i32 poison, i32 poison, i32 poison> %ret_7.i.i.i193.i.i1210 = shufflevector <8 x float> %ret_4.i.i.i168.i.i1222, <8 x float> %ptr72_masked_load73.i.i1151, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 9, i32 12, i32 15> %AnimationNormals_load195_offset2688 = getelementptr %v8_uniform_FVector3f, ptr %AnimationNormals, i64 %Offset_load161_to_int64 %ptr_masked_load59.i.i1317 = load <8 x float>, ptr %AnimationNormals_load195_offset2688, align 4, !alias.scope !72, !noalias !77, !filename !16, !first_line !34, !first_column !18, !last_line !34, !last_column !19 %ptr65.i.i1318 = getelementptr i8, ptr %AnimationNormals_load195_offset2688, i64 32, !filename !16, !first_line !35, !first_column !18, !last_line !35, !last_column !21 %ptr65_masked_load66.i.i1319 = load <8 x float>, ptr %ptr65.i.i1318, align 4, !alias.scope !72, !noalias !77, !filename !16, !first_line !35, !first_column !18, !last_line !35, !last_column !21 %ptr72.i.i1320 = getelementptr i8, ptr %AnimationNormals_load195_offset2688, i64 64, !filename !16, !first_line !36, !first_column !18, !last_line !36, !last_column !23 %ptr72_masked_load73.i.i1321 = load <8 x float>, ptr %ptr72.i.i1320, align 4, !alias.scope !72, !noalias !77, !filename !16, !first_line !36, !first_column !18, !last_line !36, !last_column !23 %ret_7.i.i.i.i.i1465 = shufflevector <8 x float> %ptr_masked_load59.i.i1317, <8 x float> %ptr65_masked_load66.i.i1319, <8 x i32> <i32 0, i32 3, i32 6, i32 9, i32 1, i32 4, i32 7, i32 10> %ret_7.i.i.i99.i.i1447 = shufflevector <8 x float> %ptr65_masked_load66.i.i1319, <8 x float> %ptr72_masked_load73.i.i1321, <8 x i32> <i32 4, i32 7, i32 10, i32 13, i32 5, i32 8, i32 11, i32 14> %ret_7.i.i.i124.i.i1429 = shufflevector <8 x float> %ret_7.i.i.i.i.i1465, <8 x float> %ret_7.i.i.i99.i.i1447, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11> %ret_7.i.i.i149.i.i1411 = shufflevector <8 x float> %ret_7.i.i.i.i.i1465, <8 x float> %ret_7.i.i.i99.i.i1447, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15> %ret_4.i.i.i168.i.i1393 = shufflevector <8 x float> %ptr_masked_load59.i.i1317, <8 x float> %ptr65_masked_load66.i.i1319, <8 x i32> <i32 2, i32 5, i32 8, i32 11, i32 14, i32 poison, i32 poison, i32 poison> %ret_7.i.i.i193.i.i1381 = shufflevector <8 x float> %ret_4.i.i.i168.i.i1393, <8 x float> %ptr72_masked_load73.i.i1321, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 9, i32 12, i32 15> br label %VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_.exit1466 if_else.i1299: ; preds = %if_exit177 %mask.i2158 = bitcast <8 x i32> %cmp149_to_boolvec to <8 x float> %v_1.i2159 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, ptr %AnimationPositions_load189_offset, <8 x i32> <i32 0, i32 12, i32 24, i32 36, i32 48, i32 60, i32 72, i32 84>, <8 x float> %mask.i2158, i8 1) %v_1.i2161 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, ptr %AnimationPositions_load189_offset, <8 x i32> <i32 4, i32 16, i32 28, i32 40, i32 52, i32 64, i32 76, i32 88>, <8 x float> %mask.i2158, i8 1) %v_1.i2163 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, ptr %AnimationPositions_load189_offset, <8 x i32> <i32 8, i32 20, i32 32, i32 44, i32 56, i32 68, i32 80, i32 92>, <8 x float> %mask.i2158, i8 1) %AnimationNormals_load195_offset = getelementptr %v8_uniform_FVector3f, ptr %AnimationNormals, i64 %Offset_load161_to_int64 %mask.i2164 = bitcast <8 x i32> %cmp149_to_boolvec to <8 x float> %v_1.i2165 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, ptr %AnimationNormals_load195_offset, <8 x i32> <i32 0, i32 12, i32 24, i32 36, i32 48, i32 60, i32 72, i32 84>, <8 x float> %mask.i2164, i8 1) %v_1.i2167 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, ptr %AnimationNormals_load195_offset, <8 x i32> <i32 4, i32 16, i32 28, i32 40, i32 52, i32 64, i32 76, i32 88>, <8 x float> %mask.i2164, i8 1) %v_1.i2169 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, ptr %AnimationNormals_load195_offset, <8 x i32> <i32 8, i32 20, i32 32, i32 44, i32 56, i32 68, i32 80, i32 92>, <8 x float> %mask.i2164, i8 1) br label %VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_.exit1466 VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_.exit1466: ; preds = %if_else.i1299, %is_const.i.i176.i.i1364 %Result.i1131.sroa.8.02693 = phi <8 x float> [ %v_1.i2163, %if_else.i1299 ], [ %ret_7.i.i.i193.i.i1210, %is_const.i.i176.i.i1364 ] %Result.i1131.sroa.5.02691 = phi <8 x float> [ %v_1.i2161, %if_else.i1299 ], [ %ret_7.i.i.i149.i.i1240, %is_const.i.i176.i.i1364 ] %Result.i1131.sroa.0.02689 = phi <8 x float> [ %v_1.i2159, %if_else.i1299 ], [ %ret_7.i.i.i124.i.i1258, %is_const.i.i176.i.i1364 ] %Result.i1296.sroa.0.0 = phi <8 x float> [ %v_1.i2165, %if_else.i1299 ], [ %ret_7.i.i.i124.i.i1429, %is_const.i.i176.i.i1364 ] %Result.i1296.sroa.5.0 = phi <8 x float> [ %v_1.i2167, %if_else.i1299 ], [ %ret_7.i.i.i149.i.i1411, %is_const.i.i176.i.i1364 ] %Result.i1296.sroa.8.0 = phi <8 x float> [ %v_1.i2169, %if_else.i1299 ], [ %ret_7.i.i.i193.i.i1381, %is_const.i.i176.i.i1364 ] %SphereOffsetDistancesBase_load200_broadcast = insertelement <8 x float> poison, float %SphereOffsetDistancesBase, i64 0 %SphereOffsetDistancesBase_load200_broadcast201 = shufflevector <8 x float> %SphereOffsetDistancesBase_load200_broadcast, <8 x float> poison, <8 x i32> zeroinitializer %SphereOffsetDistancesRange_load202_broadcast = insertelement <8 x float> poison, float %SphereOffsetDistancesRange, i64 0 %SphereOffsetDistancesRange_load202_broadcast203 = shufflevector <8 x float> %SphereOffsetDistancesRange_load202_broadcast, <8 x float> poison, <8 x i32> zeroinitializer %mul__Index_load204.elt0 = shl nsw i32 %counter.1.lcssa, 2 %7 = zext nneg i32 %mul__Index_load204.elt0 to i64 %ptr463 = getelementptr i8, ptr %SphereOffsetDistances, i64 %7 %floatval.i.i = tail call <8 x float> @llvm.masked.load.v8f32.p0(ptr %ptr463, i32 1, <8 x i1> %cmp149, <8 x float> zeroinitializer) %mul_SphereOffsetDistancesRange_load202_broadcast203_SphereOffsetDistances_load205_offset_load = fmul <8 x float> %SphereOffsetDistancesRange_load202_broadcast203, %floatval.i.i %add_SphereOffsetDistancesBase_load200_broadcast201_mul_SphereOffsetDistancesRange_load202_broadcast203_SphereOffsetDistances_load205_offset_load = fadd <8 x float> %SphereOffsetDistancesBase_load200_broadcast201, %mul_SphereOffsetDistancesRange_load202_broadcast203_SphereOffsetDistances_load205_offset_load %SphereRadiiBase_load212_broadcast = insertelement <8 x float> poison, float %SphereRadiiBase, i64 0 %SphereRadiiBase_load212_broadcast213 = shufflevector <8 x float> %SphereRadiiBase_load212_broadcast, <8 x float> poison, <8 x i32> zeroinitializer %SphereRadiiRange_load214_broadcast = insertelement <8 x float> poison, float %SphereRadiiRange, i64 0 %SphereRadiiRange_load214_broadcast215 = shufflevector <8 x float> %SphereRadiiRange_load214_broadcast, <8 x float> poison, <8 x i32> zeroinitializer %ptr472 = getelementptr i8, ptr %SphereRadii, i64 %7 %floatval.i.i1467 = tail call <8 x float> @llvm.masked.load.v8f32.p0(ptr %ptr472, i32 1, <8 x i1> %cmp149, <8 x float> zeroinitializer) %mul_SphereRadiiRange_load214_broadcast215_SphereRadii_load217_offset_load = fmul <8 x float> %SphereRadiiRange_load214_broadcast215, %floatval.i.i1467 %add_SphereRadiiBase_load212_broadcast213_mul_SphereRadiiRange_load214_broadcast215_SphereRadii_load217_offset_load = fadd <8 x float> %SphereRadiiBase_load212_broadcast213, %mul_SphereRadiiRange_load214_broadcast215_SphereRadii_load217_offset_load %add_Radius_load224_SphereOffsetDistance_load225 = fadd <8 x float> %add_SphereOffsetDistancesBase_load200_broadcast201_mul_SphereOffsetDistancesRange_load202_broadcast203_SphereOffsetDistances_load205_offset_load, %add_SphereRadiiBase_load212_broadcast213_mul_SphereRadiiRange_load214_broadcast215_SphereRadii_load217_offset_load %mul_F_load_A_load4_offset_load.i1470 = fmul <8 x float> %Result.i1296.sroa.0.0, %add_Radius_load224_SphereOffsetDistance_load225 %mul_F_load8_A_load910_offset_load.i1473 = fmul <8 x float> %Result.i1296.sroa.5.0, %add_Radius_load224_SphereOffsetDistance_load225 %mul_F_load14_A_load1516_offset_load.i1476 = fmul <8 x float> %Result.i1296.sroa.8.0, %add_Radius_load224_SphereOffsetDistance_load225 %sub_A_load4_offset_load_B_load7_offset_load.i1483 = fsub <8 x float> %Result.i1131.sroa.0.02689, %mul_F_load_A_load4_offset_load.i1470 %sub_A_load1112_offset_load_B_load1516_offset_load.i1488 = fsub <8 x float> %Result.i1131.sroa.5.02691, %mul_F_load8_A_load910_offset_load.i1473 %sub_A_load2021_offset_load_B_load2425_offset_load.i1493 = fsub <8 x float> %Result.i1131.sroa.8.02693, %mul_F_load14_A_load1516_offset_load.i1476 %A_load4_offset_load.i1498 = load <8 x float>, ptr %Position166, align 32, !alias.scope !81, !noalias !84 %sub_A_load4_offset_load_B_load7_offset_load.i1500 = fsub <8 x float> %A_load4_offset_load.i1498, %sub_A_load4_offset_load_B_load7_offset_load.i1483 %A_load1112_offset_load.i1502 = load <8 x float>, ptr %P_load1011_offset.i1121, align 32, !alias.scope !81, !noalias !84 %sub_A_load1112_offset_load_B_load1516_offset_load.i1505 = fsub <8 x float> %A_load1112_offset_load.i1502, %sub_A_load1112_offset_load_B_load1516_offset_load.i1488 %A_load2021_offset_load.i1507 = load <8 x float>, ptr %P_load1819_offset.i1124, align 32, !alias.scope !81, !noalias !84 %sub_A_load2021_offset_load_B_load2425_offset_load.i1510 = fsub <8 x float> %A_load2021_offset_load.i1507, %sub_A_load2021_offset_load_B_load2425_offset_load.i1493 %mul_A_load4_offset_load_B_load7_offset_load.i.i.i1517 = fmul <8 x float> %sub_A_load4_offset_load_B_load7_offset_load.i1500, %sub_A_load4_offset_load_B_load7_offset_load.i1500 %mul_A_load1112_offset_load_B_load1516_offset_load.i.i.i1522 = fmul <8 x float> %sub_A_load1112_offset_load_B_load1516_offset_load.i1505, %sub_A_load1112_offset_load_B_load1516_offset_load.i1505 %mul_A_load2021_offset_load_B_load2425_offset_load.i.i.i1527 = fmul <8 x float> %sub_A_load2021_offset_load_B_load2425_offset_load.i1510, %sub_A_load2021_offset_load_B_load2425_offset_load.i1510 %add_Temp5_offset_load_Temp7_offset_load.i.i1532 = fadd <8 x float> %mul_A_load4_offset_load_B_load7_offset_load.i.i.i1517, %mul_A_load1112_offset_load_B_load1516_offset_load.i.i.i1522 %add_add_Temp5_offset_load_Temp7_offset_load_Temp9_offset_load.i.i1533 = fadd <8 x float> %mul_A_load2021_offset_load_B_load2425_offset_load.i.i.i1527, %add_Temp5_offset_load_Temp7_offset_load.i.i1532 %8 = tail call <8 x float> @llvm.sqrt.v8f32(<8 x float> %add_add_Temp5_offset_load_Temp7_offset_load_Temp9_offset_load.i.i1533) %div_Radius_load241_calltmp245 = fdiv <8 x float> %add_SphereRadiiBase_load212_broadcast213_mul_SphereRadiiRange_load214_broadcast215_SphereRadii_load217_offset_load, %8 %mul_F_load_A_load4_offset_load.i1535 = fmul <8 x float> %sub_A_load4_offset_load_B_load7_offset_load.i1500, %div_Radius_load241_calltmp245 %mul_F_load8_A_load910_offset_load.i1538 = fmul <8 x float> %sub_A_load1112_offset_load_B_load1516_offset_load.i1505, %div_Radius_load241_calltmp245 %mul_F_load14_A_load1516_offset_load.i1541 = fmul <8 x float> %sub_A_load2021_offset_load_B_load2425_offset_load.i1510, %div_Radius_load241_calltmp245 %add_A_load4_offset_load_B_load7_offset_load.i1548 = fadd <8 x float> %sub_A_load4_offset_load_B_load7_offset_load.i1483, %mul_F_load_A_load4_offset_load.i1535 %add_A_load1112_offset_load_B_load1516_offset_load.i1553 = fadd <8 x float> %sub_A_load1112_offset_load_B_load1516_offset_load.i1488, %mul_F_load8_A_load910_offset_load.i1538 %add_A_load2021_offset_load_B_load2425_offset_load.i1558 = fadd <8 x float> %sub_A_load2021_offset_load_B_load2425_offset_load.i1493, %mul_F_load14_A_load1516_offset_load.i1541 %mul_F_load_A_load4_offset_load.i1564 = fmul <8 x float> %Result.i1296.sroa.0.0, %add_SphereOffsetDistancesBase_load200_broadcast201_mul_SphereOffsetDistancesRange_load202_broadcast203_SphereOffsetDistances_load205_offset_load %mul_F_load8_A_load910_offset_load.i1567 = fmul <8 x float> %Result.i1296.sroa.5.0, %add_SphereOffsetDistancesBase_load200_broadcast201_mul_SphereOffsetDistancesRange_load202_broadcast203_SphereOffsetDistances_load205_offset_load %mul_F_load14_A_load1516_offset_load.i1570 = fmul <8 x float> %Result.i1296.sroa.8.0, %add_SphereOffsetDistancesBase_load200_broadcast201_mul_SphereOffsetDistancesRange_load202_broadcast203_SphereOffsetDistances_load205_offset_load %sub_A_load4_offset_load_B_load7_offset_load.i1577 = fsub <8 x float> %Result.i1131.sroa.0.02689, %mul_F_load_A_load4_offset_load.i1564 %sub_A_load1112_offset_load_B_load1516_offset_load.i1582 = fsub <8 x float> %Result.i1131.sroa.5.02691, %mul_F_load8_A_load910_offset_load.i1567 %sub_A_load2021_offset_load_B_load2425_offset_load.i1587 = fsub <8 x float> %Result.i1131.sroa.8.02693, %mul_F_load14_A_load1516_offset_load.i1570 %mul_Radius_load262_Radius_load263 = fmul <8 x float> %add_SphereRadiiBase_load212_broadcast213_mul_SphereRadiiRange_load214_broadcast215_SphereRadii_load217_offset_load, %add_SphereRadiiBase_load212_broadcast213_mul_SphereRadiiRange_load214_broadcast215_SphereRadii_load217_offset_load %less_DistanceSquared_load261_mul_Radius_load262_Radius_load263 = fcmp olt <8 x float> %add_add_Temp5_offset_load_Temp7_offset_load_Temp9_offset_load.i.i1533, %mul_Radius_load262_Radius_load263 %blend.i.i2172 = select <8 x i1> %less_DistanceSquared_load261_mul_Radius_load262_Radius_load263, <8 x float> %add_A_load4_offset_load_B_load7_offset_load.i1548, <8 x float> zeroinitializer %blend.i.i2175 = select <8 x i1> %less_DistanceSquared_load261_mul_Radius_load262_Radius_load263, <8 x float> %add_A_load1112_offset_load_B_load1516_offset_load.i1553, <8 x float> zeroinitializer %blend.i.i2178 = select <8 x i1> %less_DistanceSquared_load261_mul_Radius_load262_Radius_load263, <8 x float> %add_A_load2021_offset_load_B_load2425_offset_load.i1558, <8 x float> zeroinitializer %less_DistanceSquared_load267_ = fcmp olt <8 x float> %add_add_Temp5_offset_load_Temp7_offset_load_Temp9_offset_load.i.i1533, <float 0x3E45798EE0000000, float 0x3E45798EE0000000, float 0x3E45798EE0000000, float 0x3E45798EE0000000, float 0x3E45798EE0000000, float 0x3E45798EE0000000, float 0x3E45798EE0000000, float 0x3E45798EE0000000> %blend.i.i2181 = select <8 x i1> %less_DistanceSquared_load267_, <8 x float> %sub_A_load4_offset_load_B_load7_offset_load.i1577, <8 x float> %blend.i.i2172 %blend.i.i2184 = select <8 x i1> %less_DistanceSquared_load267_, <8 x float> %sub_A_load1112_offset_load_B_load1516_offset_load.i1582, <8 x float> %blend.i.i2175 %blend.i.i2187 = select <8 x i1> %less_DistanceSquared_load267_, <8 x float> %sub_A_load2021_offset_load_B_load2425_offset_load.i1587, <8 x float> %blend.i.i2178 %notequal_NewP260272_offset_load_ = fcmp une <8 x float> %blend.i.i2181, zeroinitializer %logical_and274447 = and <8 x i1> %notequal_NewP260272_offset_load_, %equal_IM_load170_ %9 = and <8 x i1> %logical_and274447, %cmp149 %10 = bitcast <8 x i1> %9 to i8 switch i8 %10, label %pl_loop.i2397 [ i8 0, label %foreach_reset i8 -1, label %soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_.exit.i1789 ] foreach_reset: ; preds = %pl_dolane.7.i2646, %pl_loopend.6.i2644, %soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_.exit.i1789, %partial_inner_all_outer, %VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_.exit1466, %VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_.exit1119 ret void outer_not_in_extras.partial_inner_all_outer_crit_edge: ; preds = %foreach_full_continue %11 = trunc i64 %indvars.iv.next to i32 br label %partial_inner_all_outer partial_inner_all_outer: ; preds = %outer_not_in_extras.partial_inner_all_outer_crit_edge, %allocas %counter.1.lcssa = phi i32 [ %11, %outer_not_in_extras.partial_inner_all_outer_crit_edge ], [ 0, %allocas ] %before_full_end = icmp slt i32 %counter.1.lcssa, %ParticleCount br i1 %before_full_end, label %partial_inner_only, label %foreach_reset foreach_full_continue: ; preds = %pl_dolane.7.i2372, %pl_loopend.6.i2370, %soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_.exit.i, %VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_.exit695, %VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_.exit %indvars.iv.next = add nuw nsw i64 %indvars.iv, 8 %before_aligned_end25 = icmp ult i64 %indvars.iv.next, %1 br i1 %before_aligned_end25, label %VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_.exit, label %outer_not_in_extras.partial_inner_all_outer_crit_edge soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_.exit.i: ; preds = %VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_.exit695 %ret_7.i.i.i.i.i1671 = shufflevector <8 x float> %blend.i.i2142, <8 x float> %blend.i.i2145, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13> %ret_7.i.i.i160.i.i = shufflevector <8 x float> %blend.i.i2148, <8 x float> %ret_7.i.i.i397.i.i, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13> %ret_7.i.i.i185.i.i = shufflevector <8 x float> %ret_7.i.i.i.i.i1671, <8 x float> %ret_7.i.i.i160.i.i, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13> %ret_7.i.i.i210.i.i = shufflevector <8 x float> %ret_7.i.i.i.i.i1671, <8 x float> %ret_7.i.i.i160.i.i, <8 x i32> <i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15> %ret_7.i.i.i235.i.i = shufflevector <8 x float> %blend.i.i2142, <8 x float> %blend.i.i2145, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15> %ret_7.i.i.i260.i.i = shufflevector <8 x float> %blend.i.i2148, <8 x float> %ret_7.i.i.i397.i.i, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15> %ret_7.i.i.i285.i.i = shufflevector <8 x float> %ret_7.i.i.i235.i.i, <8 x float> %ret_7.i.i.i260.i.i, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13> %ret_7.i.i.i310.i.i = shufflevector <8 x float> %ret_7.i.i.i235.i.i, <8 x float> %ret_7.i.i.i260.i.i, <8 x i32> <i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15> %ret_7.i.i.i335.i.i = shufflevector <8 x float> %ret_7.i.i.i185.i.i, <8 x float> %ret_7.i.i.i210.i.i, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11> store <8 x float> %ret_7.i.i.i335.i.i, ptr %ParticlesPandInvM_load_offset, align 4, !alias.scope !86, !noalias !91, !filename !97, !first_line !98, !first_column !99, !last_line !98, !last_column !100 %ret_7.i.i.i360.i.i = shufflevector <8 x float> %ret_7.i.i.i285.i.i, <8 x float> %ret_7.i.i.i310.i.i, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11> store <8 x float> %ret_7.i.i.i360.i.i, ptr %ptr105.i.i, align 4, !alias.scope !86, !noalias !91, !filename !97, !first_line !101, !first_column !99, !last_line !101, !last_column !102 %ret_7.i.i.i385.i.i = shufflevector <8 x float> %ret_7.i.i.i185.i.i, <8 x float> %ret_7.i.i.i210.i.i, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15> store <8 x float> %ret_7.i.i.i385.i.i, ptr %ptr112.i.i, align 4, !alias.scope !86, !noalias !91, !filename !97, !first_line !103, !first_column !99, !last_line !103, !last_column !104 %ret_7.i.i.i410.i.i = shufflevector <8 x float> %ret_7.i.i.i285.i.i, <8 x float> %ret_7.i.i.i310.i.i, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15> store <8 x float> %ret_7.i.i.i410.i.i, ptr %ptr119.i.i, align 4, !alias.scope !86, !noalias !91, !filename !97, !first_line !105, !first_column !99, !last_line !105, !last_column !104 br label %foreach_full_continue pl_loop.i: ; preds = %VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_.exit695 %v64.i.i = zext i8 %5 to i64 %pl_and.i = and i64 %v64.i.i, 1 %pl_doit.not.i = icmp eq i64 %pl_and.i, 0 br i1 %pl_doit.not.i, label %pl_loopend.i, label %pl_dolane.i pl_dolane.i: ; preds = %pl_loop.i %storeval.i72.i = extractelement <8 x float> %blend.i.i2142, i64 0 store float %storeval.i72.i, ptr %ParticlesPandInvM_load_offset, align 4, !noalias !106 br label %pl_loopend.i pl_loopend.i: ; preds = %pl_dolane.i, %pl_loop.i %pl_and.1.i = and i64 %v64.i.i, 2 %pl_doit.1.not.i = icmp eq i64 %pl_and.1.i, 0 br i1 %pl_doit.1.not.i, label %pl_loopend.1.i, label %pl_dolane.1.i pl_dolane.1.i: ; preds = %pl_loopend.i %finalptr.i80.i = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 16 %storeval.i81.i = extractelement <8 x float> %blend.i.i2142, i64 1 store float %storeval.i81.i, ptr %finalptr.i80.i, align 4, !noalias !106 br label %pl_loopend.1.i pl_loopend.1.i: ; preds = %pl_dolane.1.i, %pl_loopend.i %pl_and.2.i = and i64 %v64.i.i, 4 %pl_doit.2.not.i = icmp eq i64 %pl_and.2.i, 0 br i1 %pl_doit.2.not.i, label %pl_loopend.2.i, label %pl_dolane.2.i pl_dolane.2.i: ; preds = %pl_loopend.1.i %storeval.i90.i = extractelement <8 x float> %blend.i.i2142, i64 2 store float %storeval.i90.i, ptr %ptr105.i.i, align 4, !noalias !106 br label %pl_loopend.2.i pl_loopend.2.i: ; preds = %pl_dolane.2.i, %pl_loopend.1.i %pl_and.3.i = and i64 %v64.i.i, 8 %pl_doit.3.not.i = icmp eq i64 %pl_and.3.i, 0 br i1 %pl_doit.3.not.i, label %pl_loopend.3.i, label %pl_dolane.3.i pl_dolane.3.i: ; preds = %pl_loopend.2.i %finalptr.i98.i = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 48 %storeval.i99.i = extractelement <8 x float> %blend.i.i2142, i64 3 store float %storeval.i99.i, ptr %finalptr.i98.i, align 4, !noalias !106 br label %pl_loopend.3.i pl_loopend.3.i: ; preds = %pl_dolane.3.i, %pl_loopend.2.i %pl_and.4.i = and i64 %v64.i.i, 16 %pl_doit.4.not.i = icmp eq i64 %pl_and.4.i, 0 br i1 %pl_doit.4.not.i, label %pl_loopend.4.i, label %pl_dolane.4.i pl_dolane.4.i: ; preds = %pl_loopend.3.i %storeval.i108.i = extractelement <8 x float> %blend.i.i2142, i64 4 store float %storeval.i108.i, ptr %ptr112.i.i, align 4, !noalias !106 br label %pl_loopend.4.i pl_loopend.4.i: ; preds = %pl_dolane.4.i, %pl_loopend.3.i %pl_and.5.i = and i64 %v64.i.i, 32 %pl_doit.5.not.i = icmp eq i64 %pl_and.5.i, 0 br i1 %pl_doit.5.not.i, label %pl_loopend.5.i, label %pl_dolane.5.i pl_dolane.5.i: ; preds = %pl_loopend.4.i %finalptr.i116.i = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 80 %storeval.i117.i = extractelement <8 x float> %blend.i.i2142, i64 5 store float %storeval.i117.i, ptr %finalptr.i116.i, align 4, !noalias !106 br label %pl_loopend.5.i pl_loopend.5.i: ; preds = %pl_dolane.5.i, %pl_loopend.4.i %pl_and.6.i = and i64 %v64.i.i, 64 %pl_doit.6.not.i = icmp eq i64 %pl_and.6.i, 0 br i1 %pl_doit.6.not.i, label %pl_loopend.6.i, label %pl_dolane.6.i pl_dolane.6.i: ; preds = %pl_loopend.5.i %storeval.i126.i = extractelement <8 x float> %blend.i.i2142, i64 6 store float %storeval.i126.i, ptr %ptr119.i.i, align 4, !noalias !106 br label %pl_loopend.6.i pl_loopend.6.i: ; preds = %pl_dolane.6.i, %pl_loopend.5.i %pl_doit.7.not.i = icmp sgt i8 %5, -1 br i1 %pl_doit.7.not.i, label %pl_loop.i2192, label %pl_dolane.7.i pl_dolane.7.i: ; preds = %pl_loopend.6.i %finalptr.i134.i = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 112 %storeval.i135.i = extractelement <8 x float> %blend.i.i2142, i64 7 store float %storeval.i135.i, ptr %finalptr.i134.i, align 4, !noalias !106 br label %pl_loop.i2192 pl_loop.i2192: ; preds = %pl_dolane.7.i, %pl_loopend.6.i %pl_and.i2193 = and i64 %v64.i.i, 1 %pl_doit.not.i2194 = icmp eq i64 %pl_and.i2193, 0 br i1 %pl_doit.not.i2194, label %pl_loopend.i2197, label %pl_dolane.i2195 pl_dolane.i2195: ; preds = %pl_loop.i2192 %finalptr.i71.i = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 4 %storeval.i72.i2196 = extractelement <8 x float> %blend.i.i2145, i64 0 store float %storeval.i72.i2196, ptr %finalptr.i71.i, align 4, !noalias !106 br label %pl_loopend.i2197 pl_loopend.i2197: ; preds = %pl_dolane.i2195, %pl_loop.i2192 %pl_and.1.i2198 = and i64 %v64.i.i, 2 %pl_doit.1.not.i2199 = icmp eq i64 %pl_and.1.i2198, 0 br i1 %pl_doit.1.not.i2199, label %pl_loopend.1.i2203, label %pl_dolane.1.i2200 pl_dolane.1.i2200: ; preds = %pl_loopend.i2197 %finalptr.i80.i2201 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 20 %storeval.i81.i2202 = extractelement <8 x float> %blend.i.i2145, i64 1 store float %storeval.i81.i2202, ptr %finalptr.i80.i2201, align 4, !noalias !106 br label %pl_loopend.1.i2203 pl_loopend.1.i2203: ; preds = %pl_dolane.1.i2200, %pl_loopend.i2197 %pl_and.2.i2204 = and i64 %v64.i.i, 4 %pl_doit.2.not.i2205 = icmp eq i64 %pl_and.2.i2204, 0 br i1 %pl_doit.2.not.i2205, label %pl_loopend.2.i2209, label %pl_dolane.2.i2206 pl_dolane.2.i2206: ; preds = %pl_loopend.1.i2203 %finalptr.i89.i2207 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 36 %storeval.i90.i2208 = extractelement <8 x float> %blend.i.i2145, i64 2 store float %storeval.i90.i2208, ptr %finalptr.i89.i2207, align 4, !noalias !106 br label %pl_loopend.2.i2209 pl_loopend.2.i2209: ; preds = %pl_dolane.2.i2206, %pl_loopend.1.i2203 %pl_and.3.i2210 = and i64 %v64.i.i, 8 %pl_doit.3.not.i2211 = icmp eq i64 %pl_and.3.i2210, 0 br i1 %pl_doit.3.not.i2211, label %pl_loopend.3.i2215, label %pl_dolane.3.i2212 pl_dolane.3.i2212: ; preds = %pl_loopend.2.i2209 %finalptr.i98.i2213 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 52 %storeval.i99.i2214 = extractelement <8 x float> %blend.i.i2145, i64 3 store float %storeval.i99.i2214, ptr %finalptr.i98.i2213, align 4, !noalias !106 br label %pl_loopend.3.i2215 pl_loopend.3.i2215: ; preds = %pl_dolane.3.i2212, %pl_loopend.2.i2209 %pl_and.4.i2216 = and i64 %v64.i.i, 16 %pl_doit.4.not.i2217 = icmp eq i64 %pl_and.4.i2216, 0 br i1 %pl_doit.4.not.i2217, label %pl_loopend.4.i2221, label %pl_dolane.4.i2218 pl_dolane.4.i2218: ; preds = %pl_loopend.3.i2215 %finalptr.i107.i2219 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 68 %storeval.i108.i2220 = extractelement <8 x float> %blend.i.i2145, i64 4 store float %storeval.i108.i2220, ptr %finalptr.i107.i2219, align 4, !noalias !106 br label %pl_loopend.4.i2221 pl_loopend.4.i2221: ; preds = %pl_dolane.4.i2218, %pl_loopend.3.i2215 %pl_and.5.i2222 = and i64 %v64.i.i, 32 %pl_doit.5.not.i2223 = icmp eq i64 %pl_and.5.i2222, 0 br i1 %pl_doit.5.not.i2223, label %pl_loopend.5.i2227, label %pl_dolane.5.i2224 pl_dolane.5.i2224: ; preds = %pl_loopend.4.i2221 %finalptr.i116.i2225 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 84 %storeval.i117.i2226 = extractelement <8 x float> %blend.i.i2145, i64 5 store float %storeval.i117.i2226, ptr %finalptr.i116.i2225, align 4, !noalias !106 br label %pl_loopend.5.i2227 pl_loopend.5.i2227: ; preds = %pl_dolane.5.i2224, %pl_loopend.4.i2221 %pl_and.6.i2228 = and i64 %v64.i.i, 64 %pl_doit.6.not.i2229 = icmp eq i64 %pl_and.6.i2228, 0 br i1 %pl_doit.6.not.i2229, label %pl_loopend.6.i2233, label %pl_dolane.6.i2230 pl_dolane.6.i2230: ; preds = %pl_loopend.5.i2227 %finalptr.i125.i2231 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 100 %storeval.i126.i2232 = extractelement <8 x float> %blend.i.i2145, i64 6 store float %storeval.i126.i2232, ptr %finalptr.i125.i2231, align 4, !noalias !106 br label %pl_loopend.6.i2233 pl_loopend.6.i2233: ; preds = %pl_dolane.6.i2230, %pl_loopend.5.i2227 %pl_doit.7.not.i2234 = icmp sgt i8 %5, -1 br i1 %pl_doit.7.not.i2234, label %pl_loop.i2259, label %pl_dolane.7.i2235 pl_dolane.7.i2235: ; preds = %pl_loopend.6.i2233 %finalptr.i134.i2236 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 116 %storeval.i135.i2237 = extractelement <8 x float> %blend.i.i2145, i64 7 store float %storeval.i135.i2237, ptr %finalptr.i134.i2236, align 4, !noalias !106 br label %pl_loop.i2259 pl_loop.i2259: ; preds = %pl_dolane.7.i2235, %pl_loopend.6.i2233 %pl_and.i2260 = and i64 %v64.i.i, 1 %pl_doit.not.i2261 = icmp eq i64 %pl_and.i2260, 0 br i1 %pl_doit.not.i2261, label %pl_loopend.i2265, label %pl_dolane.i2262 pl_dolane.i2262: ; preds = %pl_loop.i2259 %finalptr.i71.i2263 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 8 %storeval.i72.i2264 = extractelement <8 x float> %blend.i.i2148, i64 0 store float %storeval.i72.i2264, ptr %finalptr.i71.i2263, align 4, !noalias !106 br label %pl_loopend.i2265 pl_loopend.i2265: ; preds = %pl_dolane.i2262, %pl_loop.i2259 %pl_and.1.i2266 = and i64 %v64.i.i, 2 %pl_doit.1.not.i2267 = icmp eq i64 %pl_and.1.i2266, 0 br i1 %pl_doit.1.not.i2267, label %pl_loopend.1.i2271, label %pl_dolane.1.i2268 pl_dolane.1.i2268: ; preds = %pl_loopend.i2265 %finalptr.i80.i2269 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 24 %storeval.i81.i2270 = extractelement <8 x float> %blend.i.i2148, i64 1 store float %storeval.i81.i2270, ptr %finalptr.i80.i2269, align 4, !noalias !106 br label %pl_loopend.1.i2271 pl_loopend.1.i2271: ; preds = %pl_dolane.1.i2268, %pl_loopend.i2265 %pl_and.2.i2272 = and i64 %v64.i.i, 4 %pl_doit.2.not.i2273 = icmp eq i64 %pl_and.2.i2272, 0 br i1 %pl_doit.2.not.i2273, label %pl_loopend.2.i2277, label %pl_dolane.2.i2274 pl_dolane.2.i2274: ; preds = %pl_loopend.1.i2271 %finalptr.i89.i2275 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 40 %storeval.i90.i2276 = extractelement <8 x float> %blend.i.i2148, i64 2 store float %storeval.i90.i2276, ptr %finalptr.i89.i2275, align 4, !noalias !106 br label %pl_loopend.2.i2277 pl_loopend.2.i2277: ; preds = %pl_dolane.2.i2274, %pl_loopend.1.i2271 %pl_and.3.i2278 = and i64 %v64.i.i, 8 %pl_doit.3.not.i2279 = icmp eq i64 %pl_and.3.i2278, 0 br i1 %pl_doit.3.not.i2279, label %pl_loopend.3.i2283, label %pl_dolane.3.i2280 pl_dolane.3.i2280: ; preds = %pl_loopend.2.i2277 %finalptr.i98.i2281 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 56 %storeval.i99.i2282 = extractelement <8 x float> %blend.i.i2148, i64 3 store float %storeval.i99.i2282, ptr %finalptr.i98.i2281, align 4, !noalias !106 br label %pl_loopend.3.i2283 pl_loopend.3.i2283: ; preds = %pl_dolane.3.i2280, %pl_loopend.2.i2277 %pl_and.4.i2284 = and i64 %v64.i.i, 16 %pl_doit.4.not.i2285 = icmp eq i64 %pl_and.4.i2284, 0 br i1 %pl_doit.4.not.i2285, label %pl_loopend.4.i2289, label %pl_dolane.4.i2286 pl_dolane.4.i2286: ; preds = %pl_loopend.3.i2283 %finalptr.i107.i2287 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 72 %storeval.i108.i2288 = extractelement <8 x float> %blend.i.i2148, i64 4 store float %storeval.i108.i2288, ptr %finalptr.i107.i2287, align 4, !noalias !106 br label %pl_loopend.4.i2289 pl_loopend.4.i2289: ; preds = %pl_dolane.4.i2286, %pl_loopend.3.i2283 %pl_and.5.i2290 = and i64 %v64.i.i, 32 %pl_doit.5.not.i2291 = icmp eq i64 %pl_and.5.i2290, 0 br i1 %pl_doit.5.not.i2291, label %pl_loopend.5.i2295, label %pl_dolane.5.i2292 pl_dolane.5.i2292: ; preds = %pl_loopend.4.i2289 %finalptr.i116.i2293 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 88 %storeval.i117.i2294 = extractelement <8 x float> %blend.i.i2148, i64 5 store float %storeval.i117.i2294, ptr %finalptr.i116.i2293, align 4, !noalias !106 br label %pl_loopend.5.i2295 pl_loopend.5.i2295: ; preds = %pl_dolane.5.i2292, %pl_loopend.4.i2289 %pl_and.6.i2296 = and i64 %v64.i.i, 64 %pl_doit.6.not.i2297 = icmp eq i64 %pl_and.6.i2296, 0 br i1 %pl_doit.6.not.i2297, label %pl_loopend.6.i2301, label %pl_dolane.6.i2298 pl_dolane.6.i2298: ; preds = %pl_loopend.5.i2295 %finalptr.i125.i2299 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 104 %storeval.i126.i2300 = extractelement <8 x float> %blend.i.i2148, i64 6 store float %storeval.i126.i2300, ptr %finalptr.i125.i2299, align 4, !noalias !106 br label %pl_loopend.6.i2301 pl_loopend.6.i2301: ; preds = %pl_dolane.6.i2298, %pl_loopend.5.i2295 %pl_doit.7.not.i2302 = icmp sgt i8 %5, -1 br i1 %pl_doit.7.not.i2302, label %pl_loop.i2328, label %pl_dolane.7.i2303 pl_dolane.7.i2303: ; preds = %pl_loopend.6.i2301 %finalptr.i134.i2304 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 120 %storeval.i135.i2305 = extractelement <8 x float> %blend.i.i2148, i64 7 store float %storeval.i135.i2305, ptr %finalptr.i134.i2304, align 4, !noalias !106 br label %pl_loop.i2328 pl_loop.i2328: ; preds = %pl_dolane.7.i2303, %pl_loopend.6.i2301 %pl_and.i2329 = and i64 %v64.i.i, 1 %pl_doit.not.i2330 = icmp eq i64 %pl_and.i2329, 0 br i1 %pl_doit.not.i2330, label %pl_loopend.i2334, label %pl_dolane.i2331 pl_dolane.i2331: ; preds = %pl_loop.i2328 %finalptr.i71.i2332 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 12 %storeval.i72.i2333 = extractelement <8 x float> %ptr_masked_load99.i.i, i64 3 store float %storeval.i72.i2333, ptr %finalptr.i71.i2332, align 4, !noalias !106 br label %pl_loopend.i2334 pl_loopend.i2334: ; preds = %pl_dolane.i2331, %pl_loop.i2328 %pl_and.1.i2335 = and i64 %v64.i.i, 2 %pl_doit.1.not.i2336 = icmp eq i64 %pl_and.1.i2335, 0 br i1 %pl_doit.1.not.i2336, label %pl_loopend.1.i2340, label %pl_dolane.1.i2337 pl_dolane.1.i2337: ; preds = %pl_loopend.i2334 %finalptr.i80.i2338 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 28 %storeval.i81.i2339 = extractelement <8 x float> %ptr_masked_load99.i.i, i64 7 store float %storeval.i81.i2339, ptr %finalptr.i80.i2338, align 4, !noalias !106 br label %pl_loopend.1.i2340 pl_loopend.1.i2340: ; preds = %pl_dolane.1.i2337, %pl_loopend.i2334 %pl_and.2.i2341 = and i64 %v64.i.i, 4 %pl_doit.2.not.i2342 = icmp eq i64 %pl_and.2.i2341, 0 br i1 %pl_doit.2.not.i2342, label %pl_loopend.2.i2346, label %pl_dolane.2.i2343 pl_dolane.2.i2343: ; preds = %pl_loopend.1.i2340 %finalptr.i89.i2344 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 44 %storeval.i90.i2345 = extractelement <8 x float> %ptr105_masked_load106.i.i, i64 3 store float %storeval.i90.i2345, ptr %finalptr.i89.i2344, align 4, !noalias !106 br label %pl_loopend.2.i2346 pl_loopend.2.i2346: ; preds = %pl_dolane.2.i2343, %pl_loopend.1.i2340 %pl_and.3.i2347 = and i64 %v64.i.i, 8 %pl_doit.3.not.i2348 = icmp eq i64 %pl_and.3.i2347, 0 br i1 %pl_doit.3.not.i2348, label %pl_loopend.3.i2352, label %pl_dolane.3.i2349 pl_dolane.3.i2349: ; preds = %pl_loopend.2.i2346 %finalptr.i98.i2350 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 60 %storeval.i99.i2351 = extractelement <8 x float> %ptr105_masked_load106.i.i, i64 7 store float %storeval.i99.i2351, ptr %finalptr.i98.i2350, align 4, !noalias !106 br label %pl_loopend.3.i2352 pl_loopend.3.i2352: ; preds = %pl_dolane.3.i2349, %pl_loopend.2.i2346 %pl_and.4.i2353 = and i64 %v64.i.i, 16 %pl_doit.4.not.i2354 = icmp eq i64 %pl_and.4.i2353, 0 br i1 %pl_doit.4.not.i2354, label %pl_loopend.4.i2358, label %pl_dolane.4.i2355 pl_dolane.4.i2355: ; preds = %pl_loopend.3.i2352 %finalptr.i107.i2356 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 76 %storeval.i108.i2357 = extractelement <8 x float> %ptr112_masked_load113.i.i, i64 3 store float %storeval.i108.i2357, ptr %finalptr.i107.i2356, align 4, !noalias !106 br label %pl_loopend.4.i2358 pl_loopend.4.i2358: ; preds = %pl_dolane.4.i2355, %pl_loopend.3.i2352 %pl_and.5.i2359 = and i64 %v64.i.i, 32 %pl_doit.5.not.i2360 = icmp eq i64 %pl_and.5.i2359, 0 br i1 %pl_doit.5.not.i2360, label %pl_loopend.5.i2364, label %pl_dolane.5.i2361 pl_dolane.5.i2361: ; preds = %pl_loopend.4.i2358 %finalptr.i116.i2362 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 92 %storeval.i117.i2363 = extractelement <8 x float> %ptr112_masked_load113.i.i, i64 7 store float %storeval.i117.i2363, ptr %finalptr.i116.i2362, align 4, !noalias !106 br label %pl_loopend.5.i2364 pl_loopend.5.i2364: ; preds = %pl_dolane.5.i2361, %pl_loopend.4.i2358 %pl_and.6.i2365 = and i64 %v64.i.i, 64 %pl_doit.6.not.i2366 = icmp eq i64 %pl_and.6.i2365, 0 br i1 %pl_doit.6.not.i2366, label %pl_loopend.6.i2370, label %pl_dolane.6.i2367 pl_dolane.6.i2367: ; preds = %pl_loopend.5.i2364 %finalptr.i125.i2368 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 108 %storeval.i126.i2369 = extractelement <8 x float> %ptr119_masked_load120.i.i, i64 3 store float %storeval.i126.i2369, ptr %finalptr.i125.i2368, align 4, !noalias !106 br label %pl_loopend.6.i2370 pl_loopend.6.i2370: ; preds = %pl_dolane.6.i2367, %pl_loopend.5.i2364 %pl_doit.7.not.i2371 = icmp sgt i8 %5, -1 br i1 %pl_doit.7.not.i2371, label %foreach_full_continue, label %pl_dolane.7.i2372 pl_dolane.7.i2372: ; preds = %pl_loopend.6.i2370 %finalptr.i134.i2373 = getelementptr i8, ptr %ParticlesPandInvM_load_offset, i64 124 %storeval.i135.i2374 = extractelement <8 x float> %ptr119_masked_load120.i.i, i64 7 store float %storeval.i135.i2374, ptr %finalptr.i134.i2373, align 4, !noalias !106 br label %foreach_full_continue partial_inner_only: ; preds = %partial_inner_all_outer %smear_counter_init144 = insertelement <8 x i32> poison, i32 %counter.1.lcssa, i64 0 %smear_counter145 = shufflevector <8 x i32> %smear_counter_init144, <8 x i32> poison, <8 x i32> zeroinitializer %iter_val146 = or disjoint <8 x i32> %smear_counter145, <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> %smear_end_init147 = insertelement <8 x i32> poison, i32 %ParticleCount, i64 0 %smear_end148 = shufflevector <8 x i32> %smear_end_init147, <8 x i32> poison, <8 x i32> zeroinitializer %cmp149 = icmp slt <8 x i32> %iter_val146, %smear_end148 %cmp149_to_boolvec = sext <8 x i1> %cmp149 to <8 x i32> %extract.i.i796 = extractelement <8 x i32> %iter_val146, i64 0 %add_ParticleOffset_load155_calltmp159 = add nsw i32 %extract.i.i796, %ParticleOffset %Offset_load161_to_int64 = sext i32 %add_ParticleOffset_load155_calltmp159 to i64 %ParticlesPandInvM_load162_offset = getelementptr %v8_uniform_FVector4f, ptr %ParticlesPandInvM, i64 %Offset_load161_to_int64 %12 = bitcast <8 x i1> %cmp149 to i8 %equal_bitop_.i = icmp eq i8 %12, -1 br i1 %equal_bitop_.i, label %is_const.i.i380.i.i903, label %if_else.i soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_.exit.i1789: ; preds = %VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_.exit1466 %ret_7.i.i.i.i.i2007 = shufflevector <8 x float> %blend.i.i2181, <8 x float> %blend.i.i2184, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13> %ret_7.i.i.i160.i.i1989 = shufflevector <8 x float> %blend.i.i2187, <8 x float> %blend.i.i2157, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13> %ret_7.i.i.i185.i.i1971 = shufflevector <8 x float> %ret_7.i.i.i.i.i2007, <8 x float> %ret_7.i.i.i160.i.i1989, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13> %ret_7.i.i.i210.i.i1953 = shufflevector <8 x float> %ret_7.i.i.i.i.i2007, <8 x float> %ret_7.i.i.i160.i.i1989, <8 x i32> <i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15> %ret_7.i.i.i235.i.i1935 = shufflevector <8 x float> %blend.i.i2181, <8 x float> %blend.i.i2184, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15> %ret_7.i.i.i260.i.i1917 = shufflevector <8 x float> %blend.i.i2187, <8 x float> %blend.i.i2157, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15> %ret_7.i.i.i285.i.i1899 = shufflevector <8 x float> %ret_7.i.i.i235.i.i1935, <8 x float> %ret_7.i.i.i260.i.i1917, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13> %ret_7.i.i.i310.i.i1881 = shufflevector <8 x float> %ret_7.i.i.i235.i.i1935, <8 x float> %ret_7.i.i.i260.i.i1917, <8 x i32> <i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15> %ret_7.i.i.i335.i.i1863 = shufflevector <8 x float> %ret_7.i.i.i185.i.i1971, <8 x float> %ret_7.i.i.i210.i.i1953, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11> store <8 x float> %ret_7.i.i.i335.i.i1863, ptr %ParticlesPandInvM_load162_offset, align 4, !alias.scope !107, !noalias !112, !filename !97, !first_line !98, !first_column !99, !last_line !98, !last_column !100 %ret_7.i.i.i360.i.i1845 = shufflevector <8 x float> %ret_7.i.i.i285.i.i1899, <8 x float> %ret_7.i.i.i310.i.i1881, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11> %ptr113.i.i1775 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 32 store <8 x float> %ret_7.i.i.i360.i.i1845, ptr %ptr113.i.i1775, align 4, !alias.scope !107, !noalias !112, !filename !97, !first_line !101, !first_column !99, !last_line !101, !last_column !102 %ret_7.i.i.i385.i.i1827 = shufflevector <8 x float> %ret_7.i.i.i185.i.i1971, <8 x float> %ret_7.i.i.i210.i.i1953, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15> %ptr124.i.i1783 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 64 store <8 x float> %ret_7.i.i.i385.i.i1827, ptr %ptr124.i.i1783, align 4, !alias.scope !107, !noalias !112, !filename !97, !first_line !103, !first_column !99, !last_line !103, !last_column !104 %ret_7.i.i.i410.i.i1809 = shufflevector <8 x float> %ret_7.i.i.i285.i.i1899, <8 x float> %ret_7.i.i.i310.i.i1881, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15> %ptr135.i.i1791 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 96 store <8 x float> %ret_7.i.i.i410.i.i1809, ptr %ptr135.i.i1791, align 4, !alias.scope !107, !noalias !112, !filename !97, !first_line !105, !first_column !99, !last_line !105, !last_column !104 br label %foreach_reset pl_loop.i2397: ; preds = %VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_.exit1466 %v64.i.i2393 = zext i8 %10 to i64 %pl_and.i2398 = and i64 %v64.i.i2393, 1 %pl_doit.not.i2399 = icmp eq i64 %pl_and.i2398, 0 br i1 %pl_doit.not.i2399, label %pl_loopend.i2402, label %pl_dolane.i2400 pl_dolane.i2400: ; preds = %pl_loop.i2397 %storeval.i72.i2401 = extractelement <8 x float> %blend.i.i2181, i64 0 store float %storeval.i72.i2401, ptr %ParticlesPandInvM_load162_offset, align 4, !noalias !118 br label %pl_loopend.i2402 pl_loopend.i2402: ; preds = %pl_dolane.i2400, %pl_loop.i2397 %pl_and.1.i2403 = and i64 %v64.i.i2393, 2 %pl_doit.1.not.i2404 = icmp eq i64 %pl_and.1.i2403, 0 br i1 %pl_doit.1.not.i2404, label %pl_loopend.1.i2408, label %pl_dolane.1.i2405 pl_dolane.1.i2405: ; preds = %pl_loopend.i2402 %finalptr.i80.i2406 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 16 %storeval.i81.i2407 = extractelement <8 x float> %blend.i.i2181, i64 1 store float %storeval.i81.i2407, ptr %finalptr.i80.i2406, align 4, !noalias !118 br label %pl_loopend.1.i2408 pl_loopend.1.i2408: ; preds = %pl_dolane.1.i2405, %pl_loopend.i2402 %pl_and.2.i2409 = and i64 %v64.i.i2393, 4 %pl_doit.2.not.i2410 = icmp eq i64 %pl_and.2.i2409, 0 br i1 %pl_doit.2.not.i2410, label %pl_loopend.2.i2414, label %pl_dolane.2.i2411 pl_dolane.2.i2411: ; preds = %pl_loopend.1.i2408 %finalptr.i89.i2412 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 32 %storeval.i90.i2413 = extractelement <8 x float> %blend.i.i2181, i64 2 store float %storeval.i90.i2413, ptr %finalptr.i89.i2412, align 4, !noalias !118 br label %pl_loopend.2.i2414 pl_loopend.2.i2414: ; preds = %pl_dolane.2.i2411, %pl_loopend.1.i2408 %pl_and.3.i2415 = and i64 %v64.i.i2393, 8 %pl_doit.3.not.i2416 = icmp eq i64 %pl_and.3.i2415, 0 br i1 %pl_doit.3.not.i2416, label %pl_loopend.3.i2420, label %pl_dolane.3.i2417 pl_dolane.3.i2417: ; preds = %pl_loopend.2.i2414 %finalptr.i98.i2418 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 48 %storeval.i99.i2419 = extractelement <8 x float> %blend.i.i2181, i64 3 store float %storeval.i99.i2419, ptr %finalptr.i98.i2418, align 4, !noalias !118 br label %pl_loopend.3.i2420 pl_loopend.3.i2420: ; preds = %pl_dolane.3.i2417, %pl_loopend.2.i2414 %pl_and.4.i2421 = and i64 %v64.i.i2393, 16 %pl_doit.4.not.i2422 = icmp eq i64 %pl_and.4.i2421, 0 br i1 %pl_doit.4.not.i2422, label %pl_loopend.4.i2426, label %pl_dolane.4.i2423 pl_dolane.4.i2423: ; preds = %pl_loopend.3.i2420 %finalptr.i107.i2424 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 64 %storeval.i108.i2425 = extractelement <8 x float> %blend.i.i2181, i64 4 store float %storeval.i108.i2425, ptr %finalptr.i107.i2424, align 4, !noalias !118 br label %pl_loopend.4.i2426 pl_loopend.4.i2426: ; preds = %pl_dolane.4.i2423, %pl_loopend.3.i2420 %pl_and.5.i2427 = and i64 %v64.i.i2393, 32 %pl_doit.5.not.i2428 = icmp eq i64 %pl_and.5.i2427, 0 br i1 %pl_doit.5.not.i2428, label %pl_loopend.5.i2432, label %pl_dolane.5.i2429 pl_dolane.5.i2429: ; preds = %pl_loopend.4.i2426 %finalptr.i116.i2430 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 80 %storeval.i117.i2431 = extractelement <8 x float> %blend.i.i2181, i64 5 store float %storeval.i117.i2431, ptr %finalptr.i116.i2430, align 4, !noalias !118 br label %pl_loopend.5.i2432 pl_loopend.5.i2432: ; preds = %pl_dolane.5.i2429, %pl_loopend.4.i2426 %pl_and.6.i2433 = and i64 %v64.i.i2393, 64 %pl_doit.6.not.i2434 = icmp eq i64 %pl_and.6.i2433, 0 br i1 %pl_doit.6.not.i2434, label %pl_loopend.6.i2438, label %pl_dolane.6.i2435 pl_dolane.6.i2435: ; preds = %pl_loopend.5.i2432 %finalptr.i125.i2436 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 96 %storeval.i126.i2437 = extractelement <8 x float> %blend.i.i2181, i64 6 store float %storeval.i126.i2437, ptr %finalptr.i125.i2436, align 4, !noalias !118 br label %pl_loopend.6.i2438 pl_loopend.6.i2438: ; preds = %pl_dolane.6.i2435, %pl_loopend.5.i2432 %pl_doit.7.not.i2439 = icmp sgt i8 %10, -1 br i1 %pl_doit.7.not.i2439, label %pl_loop.i2464, label %pl_dolane.7.i2440 pl_dolane.7.i2440: ; preds = %pl_loopend.6.i2438 %finalptr.i134.i2441 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 112 %storeval.i135.i2442 = extractelement <8 x float> %blend.i.i2181, i64 7 store float %storeval.i135.i2442, ptr %finalptr.i134.i2441, align 4, !noalias !118 br label %pl_loop.i2464 pl_loop.i2464: ; preds = %pl_dolane.7.i2440, %pl_loopend.6.i2438 %pl_and.i2465 = and i64 %v64.i.i2393, 1 %pl_doit.not.i2466 = icmp eq i64 %pl_and.i2465, 0 br i1 %pl_doit.not.i2466, label %pl_loopend.i2470, label %pl_dolane.i2467 pl_dolane.i2467: ; preds = %pl_loop.i2464 %finalptr.i71.i2468 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 4 %storeval.i72.i2469 = extractelement <8 x float> %blend.i.i2184, i64 0 store float %storeval.i72.i2469, ptr %finalptr.i71.i2468, align 4, !noalias !118 br label %pl_loopend.i2470 pl_loopend.i2470: ; preds = %pl_dolane.i2467, %pl_loop.i2464 %pl_and.1.i2471 = and i64 %v64.i.i2393, 2 %pl_doit.1.not.i2472 = icmp eq i64 %pl_and.1.i2471, 0 br i1 %pl_doit.1.not.i2472, label %pl_loopend.1.i2476, label %pl_dolane.1.i2473 pl_dolane.1.i2473: ; preds = %pl_loopend.i2470 %finalptr.i80.i2474 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 20 %storeval.i81.i2475 = extractelement <8 x float> %blend.i.i2184, i64 1 store float %storeval.i81.i2475, ptr %finalptr.i80.i2474, align 4, !noalias !118 br label %pl_loopend.1.i2476 pl_loopend.1.i2476: ; preds = %pl_dolane.1.i2473, %pl_loopend.i2470 %pl_and.2.i2477 = and i64 %v64.i.i2393, 4 %pl_doit.2.not.i2478 = icmp eq i64 %pl_and.2.i2477, 0 br i1 %pl_doit.2.not.i2478, label %pl_loopend.2.i2482, label %pl_dolane.2.i2479 pl_dolane.2.i2479: ; preds = %pl_loopend.1.i2476 %finalptr.i89.i2480 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 36 %storeval.i90.i2481 = extractelement <8 x float> %blend.i.i2184, i64 2 store float %storeval.i90.i2481, ptr %finalptr.i89.i2480, align 4, !noalias !118 br label %pl_loopend.2.i2482 pl_loopend.2.i2482: ; preds = %pl_dolane.2.i2479, %pl_loopend.1.i2476 %pl_and.3.i2483 = and i64 %v64.i.i2393, 8 %pl_doit.3.not.i2484 = icmp eq i64 %pl_and.3.i2483, 0 br i1 %pl_doit.3.not.i2484, label %pl_loopend.3.i2488, label %pl_dolane.3.i2485 pl_dolane.3.i2485: ; preds = %pl_loopend.2.i2482 %finalptr.i98.i2486 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 52 %storeval.i99.i2487 = extractelement <8 x float> %blend.i.i2184, i64 3 store float %storeval.i99.i2487, ptr %finalptr.i98.i2486, align 4, !noalias !118 br label %pl_loopend.3.i2488 pl_loopend.3.i2488: ; preds = %pl_dolane.3.i2485, %pl_loopend.2.i2482 %pl_and.4.i2489 = and i64 %v64.i.i2393, 16 %pl_doit.4.not.i2490 = icmp eq i64 %pl_and.4.i2489, 0 br i1 %pl_doit.4.not.i2490, label %pl_loopend.4.i2494, label %pl_dolane.4.i2491 pl_dolane.4.i2491: ; preds = %pl_loopend.3.i2488 %finalptr.i107.i2492 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 68 %storeval.i108.i2493 = extractelement <8 x float> %blend.i.i2184, i64 4 store float %storeval.i108.i2493, ptr %finalptr.i107.i2492, align 4, !noalias !118 br label %pl_loopend.4.i2494 pl_loopend.4.i2494: ; preds = %pl_dolane.4.i2491, %pl_loopend.3.i2488 %pl_and.5.i2495 = and i64 %v64.i.i2393, 32 %pl_doit.5.not.i2496 = icmp eq i64 %pl_and.5.i2495, 0 br i1 %pl_doit.5.not.i2496, label %pl_loopend.5.i2500, label %pl_dolane.5.i2497 pl_dolane.5.i2497: ; preds = %pl_loopend.4.i2494 %finalptr.i116.i2498 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 84 %storeval.i117.i2499 = extractelement <8 x float> %blend.i.i2184, i64 5 store float %storeval.i117.i2499, ptr %finalptr.i116.i2498, align 4, !noalias !118 br label %pl_loopend.5.i2500 pl_loopend.5.i2500: ; preds = %pl_dolane.5.i2497, %pl_loopend.4.i2494 %pl_and.6.i2501 = and i64 %v64.i.i2393, 64 %pl_doit.6.not.i2502 = icmp eq i64 %pl_and.6.i2501, 0 br i1 %pl_doit.6.not.i2502, label %pl_loopend.6.i2506, label %pl_dolane.6.i2503 pl_dolane.6.i2503: ; preds = %pl_loopend.5.i2500 %finalptr.i125.i2504 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 100 %storeval.i126.i2505 = extractelement <8 x float> %blend.i.i2184, i64 6 store float %storeval.i126.i2505, ptr %finalptr.i125.i2504, align 4, !noalias !118 br label %pl_loopend.6.i2506 pl_loopend.6.i2506: ; preds = %pl_dolane.6.i2503, %pl_loopend.5.i2500 %pl_doit.7.not.i2507 = icmp sgt i8 %10, -1 br i1 %pl_doit.7.not.i2507, label %pl_loop.i2533, label %pl_dolane.7.i2508 pl_dolane.7.i2508: ; preds = %pl_loopend.6.i2506 %finalptr.i134.i2509 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 116 %storeval.i135.i2510 = extractelement <8 x float> %blend.i.i2184, i64 7 store float %storeval.i135.i2510, ptr %finalptr.i134.i2509, align 4, !noalias !118 br label %pl_loop.i2533 pl_loop.i2533: ; preds = %pl_dolane.7.i2508, %pl_loopend.6.i2506 %pl_and.i2534 = and i64 %v64.i.i2393, 1 %pl_doit.not.i2535 = icmp eq i64 %pl_and.i2534, 0 br i1 %pl_doit.not.i2535, label %pl_loopend.i2539, label %pl_dolane.i2536 pl_dolane.i2536: ; preds = %pl_loop.i2533 %finalptr.i71.i2537 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 8 %storeval.i72.i2538 = extractelement <8 x float> %blend.i.i2187, i64 0 store float %storeval.i72.i2538, ptr %finalptr.i71.i2537, align 4, !noalias !118 br label %pl_loopend.i2539 pl_loopend.i2539: ; preds = %pl_dolane.i2536, %pl_loop.i2533 %pl_and.1.i2540 = and i64 %v64.i.i2393, 2 %pl_doit.1.not.i2541 = icmp eq i64 %pl_and.1.i2540, 0 br i1 %pl_doit.1.not.i2541, label %pl_loopend.1.i2545, label %pl_dolane.1.i2542 pl_dolane.1.i2542: ; preds = %pl_loopend.i2539 %finalptr.i80.i2543 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 24 %storeval.i81.i2544 = extractelement <8 x float> %blend.i.i2187, i64 1 store float %storeval.i81.i2544, ptr %finalptr.i80.i2543, align 4, !noalias !118 br label %pl_loopend.1.i2545 pl_loopend.1.i2545: ; preds = %pl_dolane.1.i2542, %pl_loopend.i2539 %pl_and.2.i2546 = and i64 %v64.i.i2393, 4 %pl_doit.2.not.i2547 = icmp eq i64 %pl_and.2.i2546, 0 br i1 %pl_doit.2.not.i2547, label %pl_loopend.2.i2551, label %pl_dolane.2.i2548 pl_dolane.2.i2548: ; preds = %pl_loopend.1.i2545 %finalptr.i89.i2549 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 40 %storeval.i90.i2550 = extractelement <8 x float> %blend.i.i2187, i64 2 store float %storeval.i90.i2550, ptr %finalptr.i89.i2549, align 4, !noalias !118 br label %pl_loopend.2.i2551 pl_loopend.2.i2551: ; preds = %pl_dolane.2.i2548, %pl_loopend.1.i2545 %pl_and.3.i2552 = and i64 %v64.i.i2393, 8 %pl_doit.3.not.i2553 = icmp eq i64 %pl_and.3.i2552, 0 br i1 %pl_doit.3.not.i2553, label %pl_loopend.3.i2557, label %pl_dolane.3.i2554 pl_dolane.3.i2554: ; preds = %pl_loopend.2.i2551 %finalptr.i98.i2555 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 56 %storeval.i99.i2556 = extractelement <8 x float> %blend.i.i2187, i64 3 store float %storeval.i99.i2556, ptr %finalptr.i98.i2555, align 4, !noalias !118 br label %pl_loopend.3.i2557 pl_loopend.3.i2557: ; preds = %pl_dolane.3.i2554, %pl_loopend.2.i2551 %pl_and.4.i2558 = and i64 %v64.i.i2393, 16 %pl_doit.4.not.i2559 = icmp eq i64 %pl_and.4.i2558, 0 br i1 %pl_doit.4.not.i2559, label %pl_loopend.4.i2563, label %pl_dolane.4.i2560 pl_dolane.4.i2560: ; preds = %pl_loopend.3.i2557 %finalptr.i107.i2561 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 72 %storeval.i108.i2562 = extractelement <8 x float> %blend.i.i2187, i64 4 store float %storeval.i108.i2562, ptr %finalptr.i107.i2561, align 4, !noalias !118 br label %pl_loopend.4.i2563 pl_loopend.4.i2563: ; preds = %pl_dolane.4.i2560, %pl_loopend.3.i2557 %pl_and.5.i2564 = and i64 %v64.i.i2393, 32 %pl_doit.5.not.i2565 = icmp eq i64 %pl_and.5.i2564, 0 br i1 %pl_doit.5.not.i2565, label %pl_loopend.5.i2569, label %pl_dolane.5.i2566 pl_dolane.5.i2566: ; preds = %pl_loopend.4.i2563 %finalptr.i116.i2567 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 88 %storeval.i117.i2568 = extractelement <8 x float> %blend.i.i2187, i64 5 store float %storeval.i117.i2568, ptr %finalptr.i116.i2567, align 4, !noalias !118 br label %pl_loopend.5.i2569 pl_loopend.5.i2569: ; preds = %pl_dolane.5.i2566, %pl_loopend.4.i2563 %pl_and.6.i2570 = and i64 %v64.i.i2393, 64 %pl_doit.6.not.i2571 = icmp eq i64 %pl_and.6.i2570, 0 br i1 %pl_doit.6.not.i2571, label %pl_loopend.6.i2575, label %pl_dolane.6.i2572 pl_dolane.6.i2572: ; preds = %pl_loopend.5.i2569 %finalptr.i125.i2573 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 104 %storeval.i126.i2574 = extractelement <8 x float> %blend.i.i2187, i64 6 store float %storeval.i126.i2574, ptr %finalptr.i125.i2573, align 4, !noalias !118 br label %pl_loopend.6.i2575 pl_loopend.6.i2575: ; preds = %pl_dolane.6.i2572, %pl_loopend.5.i2569 %pl_doit.7.not.i2576 = icmp sgt i8 %10, -1 br i1 %pl_doit.7.not.i2576, label %pl_loop.i2602, label %pl_dolane.7.i2577 pl_dolane.7.i2577: ; preds = %pl_loopend.6.i2575 %finalptr.i134.i2578 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 120 %storeval.i135.i2579 = extractelement <8 x float> %blend.i.i2187, i64 7 store float %storeval.i135.i2579, ptr %finalptr.i134.i2578, align 4, !noalias !118 br label %pl_loop.i2602 pl_loop.i2602: ; preds = %pl_dolane.7.i2577, %pl_loopend.6.i2575 %pl_and.i2603 = and i64 %v64.i.i2393, 1 %pl_doit.not.i2604 = icmp eq i64 %pl_and.i2603, 0 br i1 %pl_doit.not.i2604, label %pl_loopend.i2608, label %pl_dolane.i2605 pl_dolane.i2605: ; preds = %pl_loop.i2602 %finalptr.i71.i2606 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 12 %storeval.i72.i2607 = extractelement <8 x float> %blend.i.i2157, i64 0 store float %storeval.i72.i2607, ptr %finalptr.i71.i2606, align 4, !noalias !118 br label %pl_loopend.i2608 pl_loopend.i2608: ; preds = %pl_dolane.i2605, %pl_loop.i2602 %pl_and.1.i2609 = and i64 %v64.i.i2393, 2 %pl_doit.1.not.i2610 = icmp eq i64 %pl_and.1.i2609, 0 br i1 %pl_doit.1.not.i2610, label %pl_loopend.1.i2614, label %pl_dolane.1.i2611 pl_dolane.1.i2611: ; preds = %pl_loopend.i2608 %finalptr.i80.i2612 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 28 %storeval.i81.i2613 = extractelement <8 x float> %blend.i.i2157, i64 1 store float %storeval.i81.i2613, ptr %finalptr.i80.i2612, align 4, !noalias !118 br label %pl_loopend.1.i2614 pl_loopend.1.i2614: ; preds = %pl_dolane.1.i2611, %pl_loopend.i2608 %pl_and.2.i2615 = and i64 %v64.i.i2393, 4 %pl_doit.2.not.i2616 = icmp eq i64 %pl_and.2.i2615, 0 br i1 %pl_doit.2.not.i2616, label %pl_loopend.2.i2620, label %pl_dolane.2.i2617 pl_dolane.2.i2617: ; preds = %pl_loopend.1.i2614 %finalptr.i89.i2618 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 44 %storeval.i90.i2619 = extractelement <8 x float> %blend.i.i2157, i64 2 store float %storeval.i90.i2619, ptr %finalptr.i89.i2618, align 4, !noalias !118 br label %pl_loopend.2.i2620 pl_loopend.2.i2620: ; preds = %pl_dolane.2.i2617, %pl_loopend.1.i2614 %pl_and.3.i2621 = and i64 %v64.i.i2393, 8 %pl_doit.3.not.i2622 = icmp eq i64 %pl_and.3.i2621, 0 br i1 %pl_doit.3.not.i2622, label %pl_loopend.3.i2626, label %pl_dolane.3.i2623 pl_dolane.3.i2623: ; preds = %pl_loopend.2.i2620 %finalptr.i98.i2624 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 60 %storeval.i99.i2625 = extractelement <8 x float> %blend.i.i2157, i64 3 store float %storeval.i99.i2625, ptr %finalptr.i98.i2624, align 4, !noalias !118 br label %pl_loopend.3.i2626 pl_loopend.3.i2626: ; preds = %pl_dolane.3.i2623, %pl_loopend.2.i2620 %pl_and.4.i2627 = and i64 %v64.i.i2393, 16 %pl_doit.4.not.i2628 = icmp eq i64 %pl_and.4.i2627, 0 br i1 %pl_doit.4.not.i2628, label %pl_loopend.4.i2632, label %pl_dolane.4.i2629 pl_dolane.4.i2629: ; preds = %pl_loopend.3.i2626 %finalptr.i107.i2630 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 76 %storeval.i108.i2631 = extractelement <8 x float> %blend.i.i2157, i64 4 store float %storeval.i108.i2631, ptr %finalptr.i107.i2630, align 4, !noalias !118 br label %pl_loopend.4.i2632 pl_loopend.4.i2632: ; preds = %pl_dolane.4.i2629, %pl_loopend.3.i2626 %pl_and.5.i2633 = and i64 %v64.i.i2393, 32 %pl_doit.5.not.i2634 = icmp eq i64 %pl_and.5.i2633, 0 br i1 %pl_doit.5.not.i2634, label %pl_loopend.5.i2638, label %pl_dolane.5.i2635 pl_dolane.5.i2635: ; preds = %pl_loopend.4.i2632 %finalptr.i116.i2636 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 92 %storeval.i117.i2637 = extractelement <8 x float> %blend.i.i2157, i64 5 store float %storeval.i117.i2637, ptr %finalptr.i116.i2636, align 4, !noalias !118 br label %pl_loopend.5.i2638 pl_loopend.5.i2638: ; preds = %pl_dolane.5.i2635, %pl_loopend.4.i2632 %pl_and.6.i2639 = and i64 %v64.i.i2393, 64 %pl_doit.6.not.i2640 = icmp eq i64 %pl_and.6.i2639, 0 br i1 %pl_doit.6.not.i2640, label %pl_loopend.6.i2644, label %pl_dolane.6.i2641 pl_dolane.6.i2641: ; preds = %pl_loopend.5.i2638 %finalptr.i125.i2642 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 108 %storeval.i126.i2643 = extractelement <8 x float> %blend.i.i2157, i64 6 store float %storeval.i126.i2643, ptr %finalptr.i125.i2642, align 4, !noalias !118 br label %pl_loopend.6.i2644 pl_loopend.6.i2644: ; preds = %pl_dolane.6.i2641, %pl_loopend.5.i2638 %pl_doit.7.not.i2645 = icmp sgt i8 %10, -1 br i1 %pl_doit.7.not.i2645, label %foreach_reset, label %pl_dolane.7.i2646 pl_dolane.7.i2646: ; preds = %pl_loopend.6.i2644 %finalptr.i134.i2647 = getelementptr i8, ptr %ParticlesPandInvM_load162_offset, i64 124 %storeval.i135.i2648 = extractelement <8 x float> %blend.i.i2157, i64 7 store float %storeval.i135.i2648, ptr %finalptr.i134.i2647, align 4, !noalias !118 br label %foreach_reset } ; Function Attrs: nounwind define void @ApplySphericalBackstopConstraints(ptr noalias %ParticlesPandInvM, ptr noalias %AnimationPositions, ptr noalias %AnimationNormals, ptr noalias %SphereOffsetDistances, ptr noalias %SphereRadii, float %SphereRadiiMultiplier, i32 %ParticleOffset, i32 %ParticleCount) local_unnamed_addr #0 { allocas: tail call void @ApplySphericalBackstopConstraintsWithMaps___un_3C_s_5B_unFVector4f_5D__3E_un_3C_s_5B__c_unFVector3f_5D__3E_un_3C_s_5B__c_unFVector3f_5D__3E_un_3C_Cunf_3E_un_3C_Cunf_3E_CunfCunfCunfCunfCuniCuni(ptr %ParticlesPandInvM, ptr %AnimationPositions, ptr %AnimationNormals, ptr %SphereOffsetDistances, ptr %SphereRadii, float 0.000000e+00, float 1.000000e+00, float 0.000000e+00, float %SphereRadiiMultiplier, i32 %ParticleOffset, i32 %ParticleCount, <8 x i32> poison) ret void } ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare <8 x float> @llvm.sqrt.v8f32(<8 x float>) #1 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(read) declare <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float>, ptr, <8 x i32>, <8 x float>, i8 immarg) #2 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: read) declare <8 x float> @llvm.masked.load.v8f32.p0(ptr nocapture, i32 immarg, <8 x i1>, <8 x float>) #3 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: write) declare void @llvm.masked.store.v8f32.p0(<8 x float>, ptr nocapture, i32 immarg, <8 x i1>) #4 attributes #0 = { nounwind } attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #2 = { nocallback nofree nosync nounwind willreturn memory(read) } attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: read) } attributes #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: write) } !llvm.ident = !{!0, !1} !llvm.module.flags = !{!2, !3, !4, !5} !0 = !{!"Intel(r) Implicit SPMD Program Compiler (Intel(r) ISPC), 1.27.0dev (build commit 29a8a7a2f0587395 @ 20250415, LLVM 18.1.8)"} !1 = !{!"LLVM version 18.1.8 (/localdisk2/anurmukh/llvm-project/ 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)"} !2 = !{i32 1, !"wchar_size", i32 4} !3 = !{i32 8, !"PIC Level", i32 2} !4 = !{i32 7, !"uwtable", i32 2} !5 = !{i32 7, !"frame-pointer", i32 2} !6 = !{!7, !9} !7 = distinct !{!7, !8, !"aos_to_soa4_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %src"} !8 = distinct !{!8, !"aos_to_soa4_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_"} !9 = distinct !{!9, !10, !"VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_: %SrcPtr"} !10 = distinct !{!10, !"VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_"} !11 = !{!12, !13, !14, !15} !12 = distinct !{!12, !8, !"aos_to_soa4_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v0"} !13 = distinct !{!13, !8, !"aos_to_soa4_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v1"} !14 = distinct !{!14, !8, !"aos_to_soa4_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v2"} !15 = distinct !{!15, !8, !"aos_to_soa4_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v3"} !16 = !{!"/localdisk2/anurmukh/applications.gaming.ispctest/ISPCTest/include/Math/Aossoa.isph"} !17 = !{i32 197} !18 = !{i32 28} !19 = !{i32 45} !20 = !{i32 198} !21 = !{i32 60} !22 = !{i32 199} !23 = !{i32 64} !24 = !{i32 200} !25 = !{!26, !28} !26 = distinct !{!26, !27, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %src"} !27 = distinct !{!27, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_"} !28 = distinct !{!28, !29, !"VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_: %SrcPtr"} !29 = distinct !{!29, !"VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_"} !30 = !{!31, !32, !33} !31 = distinct !{!31, !27, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v0"} !32 = distinct !{!32, !27, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v1"} !33 = distinct !{!33, !27, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v2"} !34 = !{i32 69} !35 = !{i32 70} !36 = !{i32 71} !37 = !{!38, !40} !38 = distinct !{!38, !39, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %src"} !39 = distinct !{!39, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_"} !40 = distinct !{!40, !41, !"VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_: %SrcPtr"} !41 = distinct !{!41, !"VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_"} !42 = !{!43, !44, !45} !43 = distinct !{!43, !39, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v0"} !44 = distinct !{!44, !39, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v1"} !45 = distinct !{!45, !39, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v2"} !46 = !{!"/localdisk2/anurmukh/applications.gaming.ispctest/ISPCTest/tests/ispc/UE5/PBDSphericalConstraint.ispc"} !47 = !{i32 357} !48 = !{i32 95} !49 = !{i32 123} !50 = !{i32 358} !51 = !{i32 61} !52 = !{i32 79} !53 = !{!54, !56} !54 = distinct !{!54, !55, !"aos_to_soa4_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %src"} !55 = distinct !{!55, !"aos_to_soa4_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_"} !56 = distinct !{!56, !57, !"VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_: %SrcPtr"} !57 = distinct !{!57, !"VectorLoad___un_3C_s_5B__c_unFVector4f_5D__3E_"} !58 = !{!59, !60, !61, !62} !59 = distinct !{!59, !55, !"aos_to_soa4_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v0"} !60 = distinct !{!60, !55, !"aos_to_soa4_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v1"} !61 = distinct !{!61, !55, !"aos_to_soa4_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v2"} !62 = distinct !{!62, !55, !"aos_to_soa4_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v3"} !63 = !{!64, !66} !64 = distinct !{!64, !65, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %src"} !65 = distinct !{!65, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_"} !66 = distinct !{!66, !67, !"VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_: %SrcPtr"} !67 = distinct !{!67, !"VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_"} !68 = !{!69, !70, !71} !69 = distinct !{!69, !65, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v0"} !70 = distinct !{!70, !65, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v1"} !71 = distinct !{!71, !65, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v2"} !72 = !{!73, !75} !73 = distinct !{!73, !74, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %src"} !74 = distinct !{!74, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_"} !75 = distinct !{!75, !76, !"VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_: %SrcPtr"} !76 = distinct !{!76, !"VectorLoad___un_3C_s_5B__c_unFVector3f_5D__3E_"} !77 = !{!78, !79, !80} !78 = distinct !{!78, !74, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v0"} !79 = distinct !{!79, !74, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v1"} !80 = distinct !{!80, !74, !"aos_to_soa3_ispc___vyf___UM_un_3C_unf_3E_un_3C_vyf_3E_un_3C_vyf_3E_un_3C_vyf_3E_: %v2"} !81 = !{!82} !82 = distinct !{!82, !83, !"operator-___REFs_5B__c_vyFVector3f_5D_REFs_5B__c_vyFVector3f_5D_: %A"} !83 = distinct !{!83, !"operator-___REFs_5B__c_vyFVector3f_5D_REFs_5B__c_vyFVector3f_5D_"} !84 = !{!85} !85 = distinct !{!85, !83, !"operator-___REFs_5B__c_vyFVector3f_5D_REFs_5B__c_vyFVector3f_5D_: %B"} !86 = !{!87, !89} !87 = distinct !{!87, !88, !"soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_: %dst"} !88 = distinct !{!88, !"soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_"} !89 = distinct !{!89, !90, !"VectorStore___un_3C_s_5B_unFVector4f_5D__3E_REFs_5B__c_vyFVector4f_5D_: %DstPtr"} !90 = distinct !{!90, !"VectorStore___un_3C_s_5B_unFVector4f_5D__3E_REFs_5B__c_vyFVector4f_5D_"} !91 = !{!92, !93, !94, !95, !96} !92 = distinct !{!92, !88, !"soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_: %src0"} !93 = distinct !{!93, !88, !"soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_: %src1"} !94 = distinct !{!94, !88, !"soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_: %src2"} !95 = distinct !{!95, !88, !"soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_: %src3"} !96 = distinct !{!96, !90, !"VectorStore___un_3C_s_5B_unFVector4f_5D__3E_REFs_5B__c_vyFVector4f_5D_: %V"} !97 = !{!"/localdisk2/anurmukh/applications.gaming.ispctest/ISPCTest/include/Math/Soaaos.isph"} !98 = !{i32 113} !99 = !{i32 5} !100 = !{i32 22} !101 = !{i32 114} !102 = !{i32 37} !103 = !{i32 115} !104 = !{i32 41} !105 = !{i32 116} !106 = !{!96} !107 = !{!108, !110} !108 = distinct !{!108, !109, !"soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_: %dst"} !109 = distinct !{!109, !"soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_"} !110 = distinct !{!110, !111, !"VectorStore___un_3C_s_5B_unFVector4f_5D__3E_REFs_5B__c_vyFVector4f_5D_: %DstPtr"} !111 = distinct !{!111, !"VectorStore___un_3C_s_5B_unFVector4f_5D__3E_REFs_5B__c_vyFVector4f_5D_"} !112 = !{!113, !114, !115, !116, !117} !113 = distinct !{!113, !109, !"soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_: %src0"} !114 = distinct !{!114, !109, !"soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_: %src1"} !115 = distinct !{!115, !109, !"soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_: %src2"} !116 = distinct !{!116, !109, !"soa_to_aos4_ispc___vyf___UM_REFCvyfREFCvyfREFCvyfREFCvyfun_3C_unf_3E_: %src3"} !117 = distinct !{!117, !111, !"VectorStore___un_3C_s_5B_unFVector4f_5D__3E_REFs_5B__c_vyFVector4f_5D_: %V"} !118 = !{!117}
Become a Patron
Sponsor on GitHub
Donate via PayPal
Compiler Explorer Shop
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
CE on Bluesky
Statistics
Changelog
Version tree