Skip to content

Instantly share code, notes, and snippets.

@vedranmiletic
Created February 3, 2017 16:09
Show Gist options
  • Save vedranmiletic/e4c149752e6d2df42e27332f349ff01b to your computer and use it in GitHub Desktop.
Save vedranmiletic/e4c149752e6d2df42e27332f349ff01b to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
:-) GROMACS - gmx mdrun, 2016.2-dev-20170105-4feb0be (-:
GROMACS is written by:
Emile Apol Rossen Apostolov Herman J.C. Berendsen Par Bjelkmar
Aldert van Buuren Rudi van Drunen Anton Feenstra Gerrit Groenhof
Christoph Junghans Anca Hamuraru Vincent Hindriksen Dimitrios Karkoulis
Peter Kasson Jiri Kraus Carsten Kutzner Per Larsson
Justin A. Lemkul Magnus Lundborg Pieter Meulenhoff Erik Marklund
Teemu Murtola Szilard Pall Sander Pronk Roland Schulz
Alexey Shvetsov Michael Shirts Alfons Sijbers Peter Tieleman
Teemu Virolainen Christian Wennberg Maarten Wolf
and the project leaders:
Mark Abraham, Berk Hess, Erik Lindahl, and David van der Spoel
Copyright (c) 1991-2000, University of Groningen, The Netherlands.
Copyright (c) 2001-2015, The GROMACS development team at
Uppsala University, Stockholm University and
the Royal Institute of Technology, Sweden.
check out http://www.gromacs.org for more information.
GROMACS is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2.1
of the License, or (at your option) any later version.
GROMACS: gmx mdrun, version 2016.2-dev-20170105-4feb0be
Executable: /usr/local/gromacs/bin/gmx
Data prefix: /usr/local/gromacs
Working dir: /home/vedranm/0001.5
Command line:
gmx mdrun -v
Back Off! I just backed up md.log to ./#md.log.92#
Running on 1 node with total 4 cores, 8 logical cores, 1 compatible GPU
Hardware detected:
CPU info:
Vendor: Intel
Brand: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
SIMD instructions most likely to fit this hardware: AVX_256
SIMD instructions selected at GROMACS compile time: AVX_256
Hardware topology: Basic
GPU info:
Number of GPUs detected: 1
#0: name: AMD HAWAII (DRM 2.48.0 / 4.9.6-200.fc25.x86_64, LLVM 4.0.0), vendor: AMD, device version: OpenCL 1.1 Mesa 17.1.0-devel (git-af303ab), stat: compatible
Reading file topol.tpr, VERSION 2016.2-dev-20161115-0f1ce5d (single precision)
Changing nstlist from 10 to 40, rlist from 1 to 1.101
Using 1 MPI thread
Using 8 OpenMP threads
1 compatible GPU is present, with ID 0
1 GPU auto-selected for this run.
Mapping of GPU ID to the 1 PP rank in this node: 0
; ModuleID = 'input.cl'
source_filename = "input.cl"
target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64"
target triple = "amdgcn-mesa-mesa3d"
; Function Attrs: nounwind
define amdgpu_kernel void @test(i32 addrspace(1)* nocapture %test) local_unnamed_addr #0 !kernel_arg_addr_space !2 !kernel_arg_access_qual !3 !kernel_arg_type !4 !kernel_arg_base_type !4 !kernel_arg_type_qual !5 {
%1 = tail call i32 @llvm.amdgcn.workitem.id.x() #2, !range !6
%2 = zext i32 %1 to i64
%arrayidx = getelementptr inbounds i32, i32 addrspace(1)* %test, i64 %2
store i32 0, i32 addrspace(1)* %arrayidx, align 4, !tbaa !7
ret void
}
; Function Attrs: nounwind readnone
declare i32 @llvm.amdgcn.workitem.id.x() #1
attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="hawaii" "target-features"="+fp64-denormals,-fp32-denormals" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
attributes #2 = { nounwind }
!opencl.ocl.version = !{!0}
!llvm.ident = !{!1}
!0 = !{i32 1, i32 1}
!1 = !{!"clang version 4.0.0 (https://github.com/llvm-mirror/clang.git a6a1d3f3aa6c1d0018d84c3d6c26a552075982ab) (https://github.com/llvm-mirror/llvm.git 6a630d742074be775ca242c52071f5dcc5538b5b)"}
!2 = !{i32 1}
!3 = !{!"none"}
!4 = !{!"int*"}
!5 = !{!""}
!6 = !{i32 0, i32 1024}
!7 = !{!8, !8, i64 0}
!8 = !{!"int", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C/C++ TBAA"}
; ModuleID = 'link'
source_filename = "link"
target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64"
target triple = "amdgcn-mesa-mesa3d"
; Function Attrs: nounwind
define amdgpu_kernel void @test(i32 addrspace(1)* nocapture %test) local_unnamed_addr #0 !kernel_arg_addr_space !2 !kernel_arg_access_qual !3 !kernel_arg_type !4 !kernel_arg_base_type !4 !kernel_arg_type_qual !5 {
%1 = tail call i32 @llvm.amdgcn.workitem.id.x() #2, !range !6
%2 = zext i32 %1 to i64
%arrayidx = getelementptr inbounds i32, i32 addrspace(1)* %test, i64 %2
store i32 0, i32 addrspace(1)* %arrayidx, align 4, !tbaa !7
ret void
}
; Function Attrs: nounwind readnone
declare i32 @llvm.amdgcn.workitem.id.x() #1
attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="hawaii" "target-features"="+fp64-denormals,-fp32-denormals" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
attributes #2 = { nounwind }
!opencl.ocl.version = !{!0}
!llvm.ident = !{!1}
!0 = !{i32 1, i32 1}
!1 = !{!"clang version 4.0.0 (https://github.com/llvm-mirror/clang.git a6a1d3f3aa6c1d0018d84c3d6c26a552075982ab) (https://github.com/llvm-mirror/llvm.git 6a630d742074be775ca242c52071f5dcc5538b5b)"}
!2 = !{i32 1}
!3 = !{!"none"}
!4 = !{!"int*"}
!5 = !{!""}
!6 = !{i32 0, i32 1024}
!7 = !{!8, !8, i64 0}
!8 = !{!"int", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C/C++ TBAA"}
; ModuleID = 'input.cl'
source_filename = "input.cl"
target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64"
target triple = "amdgcn-mesa-mesa3d"
%struct.cl_nbparam_params = type { i32, i32, float, float, float, float, float, float, float, float, float, float, float, %struct.shift_consts_t, %struct.shift_consts_t, %struct.switch_consts_t, i32, float }
%struct.shift_consts_t = type { float, float, float }
%struct.switch_consts_t = type { float, float, float }
%struct.nbnxn_sci_t = type { i32, i32, i32, i32 }
%struct.nbnxn_cj4_t = type { [4 x i32], [2 x %struct.nbnxn_im_ei_t] }
%struct.nbnxn_im_ei_t = type { i32, i32 }
%struct.nbnxn_excl_t = type { [32 x i32] }
@supercl_interaction_mask = local_unnamed_addr addrspace(2) constant i32 255, align 4
; Function Attrs: nounwind
define amdgpu_kernel void @memset_f3(<3 x float> addrspace(1)* nocapture %buf, float %value, i32 %Nbuf) local_unnamed_addr #0 !kernel_arg_addr_space !2 !kernel_arg_access_qual !3 !kernel_arg_type !4 !kernel_arg_base_type !5 !kernel_arg_type_qual !6 {
%1 = tail call i32 @llvm.amdgcn.workgroup.id.x() #9
%2 = zext i32 %1 to i64
%dispatch_ptr.i1.i = tail call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #9
%xy_size_ptr.i2.i = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr.i1.i, i64 4
%3 = bitcast i8 addrspace(2)* %xy_size_ptr.i2.i to i32 addrspace(2)*
%xy_size.i3.i = load i32, i32 addrspace(2)* %3, align 4, !invariant.load !7
%x_size.i.i = and i32 %xy_size.i3.i, 65535
%x_size.ext.i.i = zext i32 %x_size.i.i to i64
%4 = mul nuw nsw i64 %x_size.ext.i.i, %2
%5 = tail call i32 @llvm.amdgcn.workitem.id.x() #9, !range !8
%6 = zext i32 %5 to i64
%7 = add nuw nsw i64 %4, %6
%8 = tail call i8 addrspace(2)* @llvm.amdgcn.implicitarg.ptr() #9
%9 = getelementptr inbounds i8, i8 addrspace(2)* %8, i64 4
%10 = bitcast i8 addrspace(2)* %9 to i32 addrspace(2)*
%11 = load i32, i32 addrspace(2)* %10, align 4, !tbaa !9
%12 = zext i32 %11 to i64
%13 = add nuw nsw i64 %7, %12
%conv = trunc i64 %13 to i32
%cmp = icmp ult i32 %conv, %Nbuf
br i1 %cmp, label %14, label %15
; <label>:14: ; preds = %0
%idxprom = and i64 %13, 4294967295
%arrayidx = getelementptr inbounds <3 x float>, <3 x float> addrspace(1)* %buf, i64 %idxprom
%storetmp = bitcast <3 x float> addrspace(1)* %arrayidx to <4 x float> addrspace(1)*
%splat.splatinsert = insertelement <3 x float> undef, float %value, i32 0
%extractVec = shufflevector <3 x float> %splat.splatinsert, <3 x float> undef, <4 x i32> <i32 0, i32 0, i32 0, i32 undef>
store <4 x float> %extractVec, <4 x float> addrspace(1)* %storetmp, align 16, !tbaa !13
br label %15
; <label>:15: ; preds = %14, %0
ret void
}
; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.start(i64, i8* nocapture) #1
; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.end(i64, i8* nocapture) #1
; Function Attrs: nounwind
define amdgpu_kernel void @memset_f2(<2 x float> addrspace(1)* nocapture %buf, float %value, i32 %Nbuf) local_unnamed_addr #0 !kernel_arg_addr_space !2 !kernel_arg_access_qual !3 !kernel_arg_type !14 !kernel_arg_base_type !15 !kernel_arg_type_qual !6 {
%1 = tail call i32 @llvm.amdgcn.workgroup.id.x() #9
%2 = zext i32 %1 to i64
%dispatch_ptr.i1.i = tail call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #9
%xy_size_ptr.i2.i = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr.i1.i, i64 4
%3 = bitcast i8 addrspace(2)* %xy_size_ptr.i2.i to i32 addrspace(2)*
%xy_size.i3.i = load i32, i32 addrspace(2)* %3, align 4, !invariant.load !7
%x_size.i.i = and i32 %xy_size.i3.i, 65535
%x_size.ext.i.i = zext i32 %x_size.i.i to i64
%4 = mul nuw nsw i64 %x_size.ext.i.i, %2
%5 = tail call i32 @llvm.amdgcn.workitem.id.x() #9, !range !8
%6 = zext i32 %5 to i64
%7 = add nuw nsw i64 %4, %6
%8 = tail call i8 addrspace(2)* @llvm.amdgcn.implicitarg.ptr() #9
%9 = getelementptr inbounds i8, i8 addrspace(2)* %8, i64 4
%10 = bitcast i8 addrspace(2)* %9 to i32 addrspace(2)*
%11 = load i32, i32 addrspace(2)* %10, align 4, !tbaa !9
%12 = zext i32 %11 to i64
%13 = add nuw nsw i64 %7, %12
%conv = trunc i64 %13 to i32
%cmp = icmp ult i32 %conv, %Nbuf
br i1 %cmp, label %14, label %15
; <label>:14: ; preds = %0
%idxprom = and i64 %13, 4294967295
%arrayidx = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %buf, i64 %idxprom
%splat.splatinsert = insertelement <2 x float> undef, float %value, i32 0
%splat.splat = shufflevector <2 x float> %splat.splatinsert, <2 x float> undef, <2 x i32> zeroinitializer
store <2 x float> %splat.splat, <2 x float> addrspace(1)* %arrayidx, align 8, !tbaa !13
br label %15
; <label>:15: ; preds = %14, %0
ret void
}
; Function Attrs: nounwind
define amdgpu_kernel void @memset_f(float addrspace(1)* nocapture %buf, float %value, i32 %Nbuf) local_unnamed_addr #0 !kernel_arg_addr_space !2 !kernel_arg_access_qual !3 !kernel_arg_type !16 !kernel_arg_base_type !16 !kernel_arg_type_qual !6 {
%1 = tail call i32 @llvm.amdgcn.workgroup.id.x() #9
%2 = zext i32 %1 to i64
%dispatch_ptr.i1.i = tail call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #9
%xy_size_ptr.i2.i = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr.i1.i, i64 4
%3 = bitcast i8 addrspace(2)* %xy_size_ptr.i2.i to i32 addrspace(2)*
%xy_size.i3.i = load i32, i32 addrspace(2)* %3, align 4, !invariant.load !7
%x_size.i.i = and i32 %xy_size.i3.i, 65535
%x_size.ext.i.i = zext i32 %x_size.i.i to i64
%4 = mul nuw nsw i64 %x_size.ext.i.i, %2
%5 = tail call i32 @llvm.amdgcn.workitem.id.x() #9, !range !8
%6 = zext i32 %5 to i64
%7 = add nuw nsw i64 %4, %6
%8 = tail call i8 addrspace(2)* @llvm.amdgcn.implicitarg.ptr() #9
%9 = getelementptr inbounds i8, i8 addrspace(2)* %8, i64 4
%10 = bitcast i8 addrspace(2)* %9 to i32 addrspace(2)*
%11 = load i32, i32 addrspace(2)* %10, align 4, !tbaa !9
%12 = zext i32 %11 to i64
%13 = add nuw nsw i64 %7, %12
%conv = trunc i64 %13 to i32
%cmp = icmp ult i32 %conv, %Nbuf
br i1 %cmp, label %14, label %15
; <label>:14: ; preds = %0
%idxprom = and i64 %13, 4294967295
%arrayidx = getelementptr inbounds float, float addrspace(1)* %buf, i64 %idxprom
store float %value, float addrspace(1)* %arrayidx, align 4, !tbaa !17
br label %15
; <label>:15: ; preds = %14, %0
ret void
}
; Function Attrs: nounwind
define amdgpu_kernel void @zero_e_fshift(float addrspace(1)* nocapture %fshift, float addrspace(1)* nocapture %e_lj, float addrspace(1)* nocapture %e_el, i32 %Nbuf) local_unnamed_addr #0 !kernel_arg_addr_space !19 !kernel_arg_access_qual !20 !kernel_arg_type !21 !kernel_arg_base_type !21 !kernel_arg_type_qual !22 {
%1 = tail call i32 @llvm.amdgcn.workgroup.id.x() #9
%2 = zext i32 %1 to i64
%dispatch_ptr.i1.i = tail call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #9
%xy_size_ptr.i2.i = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr.i1.i, i64 4
%3 = bitcast i8 addrspace(2)* %xy_size_ptr.i2.i to i32 addrspace(2)*
%xy_size.i3.i = load i32, i32 addrspace(2)* %3, align 4, !invariant.load !7
%x_size.i.i = and i32 %xy_size.i3.i, 65535
%x_size.ext.i.i = zext i32 %x_size.i.i to i64
%4 = mul nuw nsw i64 %x_size.ext.i.i, %2
%5 = tail call i32 @llvm.amdgcn.workitem.id.x() #9, !range !8
%6 = zext i32 %5 to i64
%7 = add nuw nsw i64 %4, %6
%8 = tail call i8 addrspace(2)* @llvm.amdgcn.implicitarg.ptr() #9
%9 = getelementptr inbounds i8, i8 addrspace(2)* %8, i64 4
%10 = bitcast i8 addrspace(2)* %9 to i32 addrspace(2)*
%11 = load i32, i32 addrspace(2)* %10, align 4, !tbaa !9
%12 = zext i32 %11 to i64
%13 = add nuw nsw i64 %7, %12
%conv = trunc i64 %13 to i32
%cmp = icmp ult i32 %conv, %Nbuf
br i1 %cmp, label %14, label %15
; <label>:14: ; preds = %0
%idxprom = and i64 %13, 4294967295
%arrayidx = getelementptr inbounds float, float addrspace(1)* %fshift, i64 %idxprom
store float 0.000000e+00, float addrspace(1)* %arrayidx, align 4, !tbaa !17
br label %15
; <label>:15: ; preds = %14, %0
%cmp2 = icmp eq i32 %conv, 0
br i1 %cmp2, label %16, label %17
; <label>:16: ; preds = %15
store float 0.000000e+00, float addrspace(1)* %e_lj, align 4, !tbaa !17
store float 0.000000e+00, float addrspace(1)* %e_el, align 4, !tbaa !17
br label %17
; <label>:17: ; preds = %16, %15
ret void
}
; Function Attrs: norecurse nounwind
define void @convert_sigma_epsilon_to_c6_c12(float %sigma, float %epsilon, float* nocapture %c6, float* nocapture %c12) local_unnamed_addr #2 {
%mul = fmul fast float %sigma, %sigma
%mul1 = fmul fast float %mul, %mul
%mul2 = fmul fast float %mul1, %mul
%mul3 = fmul fast float %mul2, %epsilon
store float %mul3, float* %c6, align 4, !tbaa !17
%mul4 = fmul fast float %mul3, %mul2
store float %mul4, float* %c12, align 4, !tbaa !17
ret void
}
; Function Attrs: nounwind
define void @calculate_force_switch_F(%struct.cl_nbparam_params* nocapture readonly %nbparam, float %c6, float %c12, float %inv_r, float %r2, float* nocapture %F_invr) local_unnamed_addr #3 {
%c2 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 13, i32 0
%1 = load float, float* %c2, align 4, !tbaa !23
%c3 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 13, i32 1
%2 = load float, float* %c3, align 4, !tbaa !26
%c22 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 14, i32 0
%3 = load float, float* %c22, align 4, !tbaa !27
%c34 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 14, i32 1
%4 = load float, float* %c34, align 4, !tbaa !28
%mul = fmul fast float %r2, %inv_r
%rvdw_switch = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 11
%5 = load float, float* %rvdw_switch, align 4, !tbaa !29
%sub = fsub fast float %mul, %5
%cmp = fcmp fast oge float %sub, 0.000000e+00
%cond = select i1 %cmp, float %sub, float 0.000000e+00
%6 = tail call fast float @llvm.fmuladd.f32(float %2, float %cond, float %1)
%7 = fmul fast float %cond, %cond
%8 = fmul fast float %6, %c6
%9 = fmul fast float %8, %7
%mul9 = fsub fast float -0.000000e+00, %9
%sub11 = fsub fast float -0.000000e+00, %3
%10 = tail call fast float @llvm.fmuladd.f32(float %4, float %cond, float %sub11)
%mul13 = fmul fast float %inv_r, %c12
%mul15 = fmul fast float %mul13, %10
%mul16 = fmul fast float %mul15, %7
%11 = tail call fast float @llvm.fmuladd.f32(float %mul9, float %inv_r, float %mul16)
%12 = load float, float* %F_invr, align 4, !tbaa !17
%add = fadd fast float %11, %12
store float %add, float* %F_invr, align 4, !tbaa !17
ret void
}
; Function Attrs: nounwind readnone
declare float @llvm.fmuladd.f32(float, float, float) #4
; Function Attrs: nounwind
define void @calculate_force_switch_F_E(%struct.cl_nbparam_params* nocapture readonly %nbparam, float %c6, float %c12, float %inv_r, float %r2, float* nocapture %F_invr, float* nocapture %E_lj) local_unnamed_addr #3 {
%c2 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 13, i32 0
%1 = load float, float* %c2, align 4, !tbaa !23
%c3 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 13, i32 1
%2 = load float, float* %c3, align 4, !tbaa !26
%c22 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 14, i32 0
%3 = load float, float* %c22, align 4, !tbaa !27
%c34 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 14, i32 1
%4 = load float, float* %c34, align 4, !tbaa !28
%div = fmul fast float %1, 0x3FD5555560000000
%div9 = fmul fast float %2, 2.500000e-01
%div12 = fmul fast float %3, 0x3FD5555560000000
%div15 = fmul fast float %4, 2.500000e-01
%mul = fmul fast float %r2, %inv_r
%rvdw_switch = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 11
%5 = load float, float* %rvdw_switch, align 4, !tbaa !29
%sub = fsub fast float %mul, %5
%cmp = fcmp fast oge float %sub, 0.000000e+00
%cond = select i1 %cmp, float %sub, float 0.000000e+00
%6 = tail call fast float @llvm.fmuladd.f32(float %2, float %cond, float %1)
%7 = fmul fast float %cond, %cond
%8 = fmul fast float %6, %c6
%9 = fmul fast float %8, %7
%mul20 = fsub fast float -0.000000e+00, %9
%sub22 = fsub fast float -0.000000e+00, %3
%10 = tail call fast float @llvm.fmuladd.f32(float %4, float %cond, float %sub22)
%mul24 = fmul fast float %inv_r, %c12
%mul26 = fmul fast float %mul24, %10
%mul27 = fmul fast float %mul26, %7
%11 = tail call fast float @llvm.fmuladd.f32(float %mul20, float %inv_r, float %mul27)
%12 = load float, float* %F_invr, align 4, !tbaa !17
%add = fadd fast float %11, %12
store float %add, float* %F_invr, align 4, !tbaa !17
%13 = tail call fast float @llvm.fmuladd.f32(float %div9, float %cond, float %div)
%mul29 = fmul fast float %13, %c6
%mul31 = fmul fast float %mul29, %7
%14 = tail call fast float @llvm.fmuladd.f32(float %div15, float %cond, float %div12)
%15 = fmul fast float %cond, %c12
%16 = fmul fast float %15, %14
%17 = fmul fast float %16, %7
%neg = fsub fast float -0.000000e+00, %17
%18 = tail call fast float @llvm.fmuladd.f32(float %mul31, float %cond, float %neg)
%19 = load float, float* %E_lj, align 4, !tbaa !17
%add38 = fadd fast float %18, %19
store float %add38, float* %E_lj, align 4, !tbaa !17
ret void
}
; Function Attrs: nounwind
define void @calculate_potential_switch_F(%struct.cl_nbparam_params* nocapture readonly %nbparam, float %c6, float %c12, float %inv_r, float %r2, float* nocapture %F_invr, float* nocapture readonly %E_lj) local_unnamed_addr #3 {
%mul = fmul fast float %r2, %inv_r
%rvdw_switch = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 11
%1 = load float, float* %rvdw_switch, align 4, !tbaa !29
%sub = fsub fast float %mul, %1
%cmp = fcmp fast ogt float %sub, 0.000000e+00
br i1 %cmp, label %2, label %15
; <label>:2: ; preds = %0
%c5 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 15, i32 2
%3 = load float, float* %c5, align 4, !tbaa !30
%c4 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 15, i32 1
%4 = load float, float* %c4, align 4, !tbaa !31
%c3 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 15, i32 0
%5 = load float, float* %c3, align 4, !tbaa !32
%6 = tail call fast float @llvm.fmuladd.f32(float %3, float %sub, float %4)
%7 = tail call fast float @llvm.fmuladd.f32(float %6, float %sub, float %5)
%8 = fmul fast float %sub, %sub
%mul12 = fmul fast float %8, %7
%9 = tail call fast float @llvm.fmuladd.f32(float %mul12, float %sub, float 1.000000e+00)
%10 = load float, float* %F_invr, align 4, !tbaa !17
%11 = load float, float* %E_lj, align 4, !tbaa !17
%12 = fmul fast float %11, %inv_r
%13 = fmul fast float %12, %mul12
%neg = fsub fast float -0.000000e+00, %13
%14 = tail call fast float @llvm.fmuladd.f32(float %10, float %9, float %neg)
store float %14, float* %F_invr, align 4, !tbaa !17
br label %15
; <label>:15: ; preds = %2, %0
ret void
}
; Function Attrs: nounwind
define void @calculate_potential_switch_F_E(%struct.cl_nbparam_params* nocapture readonly %nbparam, float %c6, float %c12, float %inv_r, float %r2, float* nocapture %F_invr, float* nocapture %E_lj) local_unnamed_addr #3 {
%c3 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 15, i32 0
%1 = load float, float* %c3, align 4, !tbaa !32
%c4 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 15, i32 1
%2 = load float, float* %c4, align 4, !tbaa !31
%c5 = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 15, i32 2
%3 = load float, float* %c5, align 4, !tbaa !30
%mul = fmul fast float %r2, %inv_r
%rvdw_switch = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 11
%4 = load float, float* %rvdw_switch, align 4, !tbaa !29
%sub = fsub fast float %mul, %4
%cmp = fcmp fast oge float %sub, 0.000000e+00
%cond = select i1 %cmp, float %sub, float 0.000000e+00
%5 = tail call fast float @llvm.fmuladd.f32(float %3, float %cond, float %2)
%6 = tail call fast float @llvm.fmuladd.f32(float %5, float %cond, float %1)
%7 = fmul fast float %cond, %cond
%mul12 = fmul fast float %7, %6
%8 = tail call fast float @llvm.fmuladd.f32(float %mul12, float %cond, float 1.000000e+00)
%9 = load float, float* %F_invr, align 4, !tbaa !17
%10 = load float, float* %E_lj, align 4, !tbaa !17
%11 = fmul fast float %10, %inv_r
%12 = fmul fast float %11, %mul12
%neg = fsub fast float -0.000000e+00, %12
%13 = tail call fast float @llvm.fmuladd.f32(float %9, float %8, float %neg)
store float %13, float* %F_invr, align 4, !tbaa !17
%14 = load float, float* %E_lj, align 4, !tbaa !17
%mul21 = fmul fast float %8, %14
store float %mul21, float* %E_lj, align 4, !tbaa !17
ret void
}
; Function Attrs: nounwind
define void @calculate_lj_ewald_comb_geom_F(float addrspace(2)* nocapture readonly %nbfp_comb_climg2d, i32 %typei, i32 %typej, float %r2, float %inv_r2, float %lje_coeff2, float %lje_coeff6_6, float* nocapture %F_invr) local_unnamed_addr #0 {
%mul = shl nsw i32 %typei, 1
%idxprom = sext i32 %mul to i64
%arrayidx = getelementptr inbounds float, float addrspace(2)* %nbfp_comb_climg2d, i64 %idxprom
%1 = load float, float addrspace(2)* %arrayidx, align 4, !tbaa !17
%mul1 = shl nsw i32 %typej, 1
%idxprom2 = sext i32 %mul1 to i64
%arrayidx3 = getelementptr inbounds float, float addrspace(2)* %nbfp_comb_climg2d, i64 %idxprom2
%2 = load float, float addrspace(2)* %arrayidx3, align 4, !tbaa !17
%mul5 = fmul fast float %inv_r2, %inv_r2
%mul6 = fmul fast float %mul5, %inv_r2
%mul7 = fmul fast float %lje_coeff2, %r2
%sub = fsub fast float -0.000000e+00, %mul7
%3 = fcmp ogt float %mul7, -0.000000e+00
%4 = select i1 %3, float -5.000000e-01, float 5.000000e-01
%5 = tail call float @llvm.fmuladd.f32(float %sub, float 0x3FF7154760000000, float %4) #9
%6 = fptosi float %5 to i32
%7 = sitofp i32 %6 to float
%8 = tail call float @llvm.fmuladd.f32(float %7, float 0xBFE62E3000000000, float %sub) #9
%9 = fmul float %7, 0xBEE2FEFA20000000
%10 = fadd float %8, %9
%11 = fmul float %10, %10
%12 = tail call float @llvm.fmuladd.f32(float %11, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%13 = tail call float @llvm.fmuladd.f32(float %11, float %12, float 0x3F11566AA0000000) #9
%14 = tail call float @llvm.fmuladd.f32(float %11, float %13, float 0xBF66C16C20000000) #9
%15 = tail call float @llvm.fmuladd.f32(float %11, float %14, float 0x3FC5555560000000) #9
%16 = fsub float -0.000000e+00, %15
%17 = tail call float @llvm.fmuladd.f32(float %11, float %16, float %10) #9
%18 = fsub float -0.000000e+00, %9
%19 = fmul float %10, %17
%20 = fsub float 2.000000e+00, %17
%21 = fdiv float %19, %20, !fpmath !33
%22 = fsub float %18, %21
%23 = fsub float %22, %8
%24 = fsub float 1.000000e+00, %23
%25 = bitcast float %24 to i32
%26 = shl i32 %6, 23
%27 = add nsw i32 %25, %26
%28 = bitcast i32 %27 to float
%29 = fcmp ogt float %mul7, 0x4055D589E0000000
%30 = select i1 %29, float 0.000000e+00, float %28
%31 = fcmp ogt float %mul7, 0xC0562E4300000000
%32 = select i1 %31, float %30, float 0x7FF0000000000000
%33 = fcmp uno float %mul7, -0.000000e+00
%34 = select i1 %33, float %sub, float %32
%add = fadd fast float %mul7, 1.000000e+00
%mul8 = fmul fast float %mul7, 5.000000e-01
%35 = tail call fast float @llvm.fmuladd.f32(float %mul8, float %mul7, float %add)
%36 = tail call fast float @llvm.fmuladd.f32(float %mul6, float %35, float %lje_coeff6_6)
%neg = fsub fast float -0.000000e+00, %34
%37 = tail call fast float @llvm.fmuladd.f32(float %neg, float %36, float %mul6)
%mul4 = fmul fast float %1, %37
%mul12 = fmul fast float %mul4, %2
%38 = load float, float* %F_invr, align 4, !tbaa !17
%39 = tail call fast float @llvm.fmuladd.f32(float %mul12, float %inv_r2, float %38)
store float %39, float* %F_invr, align 4, !tbaa !17
ret void
}
; Function Attrs: nounwind
define void @calculate_lj_ewald_comb_geom_F_E(float addrspace(2)* nocapture readonly %nbfp_comb_climg2d, %struct.cl_nbparam_params* nocapture readonly %nbparam, i32 %typei, i32 %typej, float %r2, float %inv_r2, float %lje_coeff2, float %lje_coeff6_6, float %int_bit, float* nocapture %F_invr, float* nocapture %E_lj) local_unnamed_addr #0 {
%mul = shl nsw i32 %typei, 1
%idxprom = sext i32 %mul to i64
%arrayidx = getelementptr inbounds float, float addrspace(2)* %nbfp_comb_climg2d, i64 %idxprom
%1 = load float, float addrspace(2)* %arrayidx, align 4, !tbaa !17
%mul1 = shl nsw i32 %typej, 1
%idxprom2 = sext i32 %mul1 to i64
%arrayidx3 = getelementptr inbounds float, float addrspace(2)* %nbfp_comb_climg2d, i64 %idxprom2
%2 = load float, float addrspace(2)* %arrayidx3, align 4, !tbaa !17
%mul4 = fmul fast float %2, %1
%mul5 = fmul fast float %inv_r2, %inv_r2
%mul6 = fmul fast float %mul5, %inv_r2
%mul7 = fmul fast float %lje_coeff2, %r2
%sub = fsub fast float -0.000000e+00, %mul7
%3 = fcmp ogt float %mul7, -0.000000e+00
%4 = select i1 %3, float -5.000000e-01, float 5.000000e-01
%5 = tail call float @llvm.fmuladd.f32(float %sub, float 0x3FF7154760000000, float %4) #9
%6 = fptosi float %5 to i32
%7 = sitofp i32 %6 to float
%8 = tail call float @llvm.fmuladd.f32(float %7, float 0xBFE62E3000000000, float %sub) #9
%9 = fmul float %7, 0xBEE2FEFA20000000
%10 = fadd float %8, %9
%11 = fmul float %10, %10
%12 = tail call float @llvm.fmuladd.f32(float %11, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%13 = tail call float @llvm.fmuladd.f32(float %11, float %12, float 0x3F11566AA0000000) #9
%14 = tail call float @llvm.fmuladd.f32(float %11, float %13, float 0xBF66C16C20000000) #9
%15 = tail call float @llvm.fmuladd.f32(float %11, float %14, float 0x3FC5555560000000) #9
%16 = fsub float -0.000000e+00, %15
%17 = tail call float @llvm.fmuladd.f32(float %11, float %16, float %10) #9
%18 = fsub float -0.000000e+00, %9
%19 = fmul float %10, %17
%20 = fsub float 2.000000e+00, %17
%21 = fdiv float %19, %20, !fpmath !33
%22 = fsub float %18, %21
%23 = fsub float %22, %8
%24 = fsub float 1.000000e+00, %23
%25 = bitcast float %24 to i32
%26 = shl i32 %6, 23
%27 = add nsw i32 %25, %26
%28 = bitcast i32 %27 to float
%29 = fcmp ogt float %mul7, 0x4055D589E0000000
%30 = select i1 %29, float 0.000000e+00, float %28
%31 = fcmp ogt float %mul7, 0xC0562E4300000000
%32 = select i1 %31, float %30, float 0x7FF0000000000000
%33 = fcmp uno float %mul7, -0.000000e+00
%34 = select i1 %33, float %sub, float %32
%add = fadd fast float %mul7, 1.000000e+00
%mul8 = fmul fast float %mul7, 5.000000e-01
%35 = tail call fast float @llvm.fmuladd.f32(float %mul8, float %mul7, float %add)
%36 = tail call fast float @llvm.fmuladd.f32(float %mul6, float %35, float %lje_coeff6_6)
%neg = fsub fast float -0.000000e+00, %34
%37 = tail call fast float @llvm.fmuladd.f32(float %neg, float %36, float %mul6)
%mul12 = fmul fast float %mul4, %37
%38 = load float, float* %F_invr, align 4, !tbaa !17
%39 = tail call fast float @llvm.fmuladd.f32(float %mul12, float %inv_r2, float %38)
store float %39, float* %F_invr, align 4, !tbaa !17
%sh_lj_ewald = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 7
%40 = load float, float* %sh_lj_ewald, align 4, !tbaa !34
%mul14 = fmul fast float %40, %int_bit
%mul15 = fmul fast float %mul4, 0x3FC5555560000000
%41 = tail call fast float @llvm.fmuladd.f32(float %neg, float %35, float 1.000000e+00)
%42 = tail call fast float @llvm.fmuladd.f32(float %mul6, float %41, float %mul14)
%43 = load float, float* %E_lj, align 4, !tbaa !17
%44 = tail call fast float @llvm.fmuladd.f32(float %mul15, float %42, float %43)
store float %44, float* %E_lj, align 4, !tbaa !17
ret void
}
; Function Attrs: nounwind
define void @calculate_lj_ewald_comb_LB_F_E(float addrspace(2)* nocapture readonly %nbfp_comb_climg2d, %struct.cl_nbparam_params* nocapture readonly %nbparam, i32 %typei, i32 %typej, float %r2, float %inv_r2, float %lje_coeff2, float %lje_coeff6_6, float %int_bit, i1 zeroext %with_E_lj, float* nocapture %F_invr, float* nocapture %E_lj) local_unnamed_addr #0 {
%mul = shl nsw i32 %typei, 1
%idxprom = sext i32 %mul to i64
%arrayidx = getelementptr inbounds float, float addrspace(2)* %nbfp_comb_climg2d, i64 %idxprom
%1 = load float, float addrspace(2)* %arrayidx, align 4, !tbaa !17
%mul1 = shl nsw i32 %typej, 1
%idxprom2 = sext i32 %mul1 to i64
%arrayidx3 = getelementptr inbounds float, float addrspace(2)* %nbfp_comb_climg2d, i64 %idxprom2
%2 = load float, float addrspace(2)* %arrayidx3, align 4, !tbaa !17
%add = fadd fast float %2, %1
%add5 = or i32 %mul, 1
%idxprom6 = sext i32 %add5 to i64
%arrayidx7 = getelementptr inbounds float, float addrspace(2)* %nbfp_comb_climg2d, i64 %idxprom6
%3 = load float, float addrspace(2)* %arrayidx7, align 4, !tbaa !17
%add9 = or i32 %mul1, 1
%idxprom10 = sext i32 %add9 to i64
%arrayidx11 = getelementptr inbounds float, float addrspace(2)* %nbfp_comb_climg2d, i64 %idxprom10
%4 = load float, float addrspace(2)* %arrayidx11, align 4, !tbaa !17
%mul12 = fmul fast float %4, %3
%mul13 = fmul fast float %add, %add
%5 = fmul fast float %mul13, %mul13
%mul15 = fmul fast float %5, %mul12
%mul16 = fmul fast float %mul15, %mul13
%mul17 = fmul fast float %inv_r2, %inv_r2
%mul18 = fmul fast float %mul17, %inv_r2
%mul19 = fmul fast float %lje_coeff2, %r2
%sub = fsub fast float -0.000000e+00, %mul19
%6 = fcmp ogt float %mul19, -0.000000e+00
%7 = select i1 %6, float -5.000000e-01, float 5.000000e-01
%8 = tail call float @llvm.fmuladd.f32(float %sub, float 0x3FF7154760000000, float %7) #9
%9 = fptosi float %8 to i32
%10 = sitofp i32 %9 to float
%11 = tail call float @llvm.fmuladd.f32(float %10, float 0xBFE62E3000000000, float %sub) #9
%12 = fmul float %10, 0xBEE2FEFA20000000
%13 = fadd float %11, %12
%14 = fmul float %13, %13
%15 = tail call float @llvm.fmuladd.f32(float %14, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%16 = tail call float @llvm.fmuladd.f32(float %14, float %15, float 0x3F11566AA0000000) #9
%17 = tail call float @llvm.fmuladd.f32(float %14, float %16, float 0xBF66C16C20000000) #9
%18 = tail call float @llvm.fmuladd.f32(float %14, float %17, float 0x3FC5555560000000) #9
%19 = fsub float -0.000000e+00, %18
%20 = tail call float @llvm.fmuladd.f32(float %14, float %19, float %13) #9
%21 = fsub float -0.000000e+00, %12
%22 = fmul float %13, %20
%23 = fsub float 2.000000e+00, %20
%24 = fdiv float %22, %23, !fpmath !33
%25 = fsub float %21, %24
%26 = fsub float %25, %11
%27 = fsub float 1.000000e+00, %26
%28 = bitcast float %27 to i32
%29 = shl i32 %9, 23
%30 = add nsw i32 %28, %29
%31 = bitcast i32 %30 to float
%32 = fcmp ogt float %mul19, 0x4055D589E0000000
%33 = select i1 %32, float 0.000000e+00, float %31
%34 = fcmp ogt float %mul19, 0xC0562E4300000000
%35 = select i1 %34, float %33, float 0x7FF0000000000000
%36 = fcmp uno float %mul19, -0.000000e+00
%37 = select i1 %36, float %sub, float %35
%add20 = fadd fast float %mul19, 1.000000e+00
%mul21 = fmul fast float %mul19, 5.000000e-01
%38 = tail call fast float @llvm.fmuladd.f32(float %mul21, float %mul19, float %add20)
%39 = tail call fast float @llvm.fmuladd.f32(float %mul18, float %38, float %lje_coeff6_6)
%neg = fsub fast float -0.000000e+00, %37
%40 = tail call fast float @llvm.fmuladd.f32(float %neg, float %39, float %mul18)
%mul25 = fmul fast float %mul16, %40
%41 = load float, float* %F_invr, align 4, !tbaa !17
%42 = tail call fast float @llvm.fmuladd.f32(float %mul25, float %inv_r2, float %41)
store float %42, float* %F_invr, align 4, !tbaa !17
br i1 %with_E_lj, label %43, label %49
; <label>:43: ; preds = %0
%sh_lj_ewald = getelementptr inbounds %struct.cl_nbparam_params, %struct.cl_nbparam_params* %nbparam, i32 0, i32 7
%44 = load float, float* %sh_lj_ewald, align 4, !tbaa !34
%mul28 = fmul fast float %44, %int_bit
%mul29 = fmul fast float %mul16, 0x3FC5555560000000
%45 = tail call fast float @llvm.fmuladd.f32(float %neg, float %38, float 1.000000e+00)
%46 = tail call fast float @llvm.fmuladd.f32(float %mul18, float %45, float %mul28)
%47 = load float, float* %E_lj, align 4, !tbaa !17
%48 = tail call fast float @llvm.fmuladd.f32(float %mul29, float %46, float %47)
store float %48, float* %E_lj, align 4, !tbaa !17
br label %49
; <label>:49: ; preds = %43, %0
ret void
}
; Function Attrs: nounwind readonly
define float @interpolate_coulomb_force_r(float addrspace(2)* nocapture readonly %coulomb_tab_climg2d, float %r, float %scale) local_unnamed_addr #5 {
%mul = fmul fast float %scale, %r
%conv = fptosi float %mul to i32
%conv1 = sitofp i32 %conv to float
%sub = fsub fast float %mul, %conv1
%sub2 = fsub fast float 1.000000e+00, %sub
%idxprom = sext i32 %conv to i64
%arrayidx = getelementptr inbounds float, float addrspace(2)* %coulomb_tab_climg2d, i64 %idxprom
%1 = load float, float addrspace(2)* %arrayidx, align 4, !tbaa !17
%add = add nsw i32 %conv, 1
%idxprom4 = sext i32 %add to i64
%arrayidx5 = getelementptr inbounds float, float addrspace(2)* %coulomb_tab_climg2d, i64 %idxprom4
%2 = load float, float addrspace(2)* %arrayidx5, align 4, !tbaa !17
%mul6 = fmul fast float %2, %sub
%3 = tail call fast float @llvm.fmuladd.f32(float %sub2, float %1, float %mul6)
ret float %3
}
; Function Attrs: nounwind readnone
define float @pmecorrF(float %z2) local_unnamed_addr #6 {
%mul = fmul fast float %z2, %z2
%1 = tail call fast float @llvm.fmuladd.f32(float %mul, float 0x3F5256E0E0000000, float 0x3FBDA79640000000)
%2 = tail call fast float @llvm.fmuladd.f32(float %mul, float 0x3F8E7290E0000000, float 0x3FE03C5780000000)
%3 = tail call fast float @llvm.fmuladd.f32(float %1, float %mul, float 1.000000e+00)
%4 = tail call fast float @llvm.fmuladd.f32(float %2, float %z2, float %3)
%div = fdiv fast float 1.000000e+00, %4, !fpmath !33
%5 = tail call fast float @llvm.fmuladd.f32(float %mul, float 0xBE52A32500000000, float 0xBF0BFF7260000000)
%6 = tail call fast float @llvm.fmuladd.f32(float %mul, float 0x3EB8AB28A0000000, float 0x3F50794180000000)
%7 = tail call fast float @llvm.fmuladd.f32(float %5, float %mul, float 0xBF93BDB200000000)
%8 = tail call fast float @llvm.fmuladd.f32(float %6, float %mul, float 0x3FB1D5E760000000)
%9 = tail call fast float @llvm.fmuladd.f32(float %7, float %mul, float 0xBFE81272E0000000)
%10 = tail call fast float @llvm.fmuladd.f32(float %8, float %z2, float %9)
%mul11 = fmul fast float %10, %div
ret float %mul11
}
; Function Attrs: norecurse nounwind
define void @reduce_force_j_generic(float addrspace(3)* nocapture readonly %f_buf, float addrspace(1)* %fout, i32 %tidxi, i32 %tidxj, i32 %aidx) local_unnamed_addr #7 {
%cmp = icmp slt i32 %tidxi, 3
br i1 %cmp, label %1, label %atomicAdd_g_f.exit
; <label>:1: ; preds = %0
%mul = shl i32 %tidxj, 3
%cmp218 = icmp eq i32 %mul, 2147483640
br i1 %cmp218, label %._crit_edge, label %.lr.ph
.lr.ph: ; preds = %1
%mul1 = add i32 %mul, 8
%mul3 = shl i32 %tidxi, 6
%add4 = add nsw i32 %mul, %mul3
%arrayidx = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add4
%2 = load float, float addrspace(3)* %arrayidx, align 4, !tbaa !17
%inc = or i32 %mul, 1
%cmp2 = icmp slt i32 %inc, %mul1
br i1 %cmp2, label %11, label %._crit_edge
._crit_edge: ; preds = %.lr.ph, %11, %1
%f.0.lcssa = phi float [ 0.000000e+00, %1 ], [ %2, %.lr.ph ], [ %add5.7, %11 ]
%mul6 = mul nsw i32 %aidx, 3
%add7 = add nsw i32 %mul6, %tidxi
%idxprom8 = sext i32 %add7 to i64
%arrayidx9 = getelementptr inbounds float, float addrspace(1)* %fout, i64 %idxprom8
%3 = load volatile float, float addrspace(1)* %arrayidx9, align 4, !tbaa !17
%4 = bitcast float %3 to i32
%5 = bitcast float addrspace(1)* %arrayidx9 to i32 addrspace(1)*
br label %6
; <label>:6: ; preds = %6, %._crit_edge
%current.sroa.0.0.i = phi i32 [ %4, %._crit_edge ], [ %10, %6 ]
%7 = bitcast i32 %current.sroa.0.0.i to float
%add.i = fadd fast float %7, %f.0.lcssa
%8 = bitcast float %add.i to i32
%9 = cmpxchg volatile i32 addrspace(1)* %5, i32 %current.sroa.0.0.i, i32 %8 seq_cst seq_cst
%10 = extractvalue { i32, i1 } %9, 0
%cmp.i = extractvalue { i32, i1 } %9, 1
br i1 %cmp.i, label %atomicAdd_g_f.exit.loopexit, label %6
atomicAdd_g_f.exit.loopexit: ; preds = %6
br label %atomicAdd_g_f.exit
atomicAdd_g_f.exit: ; preds = %atomicAdd_g_f.exit.loopexit, %0
ret void
; <label>:11: ; preds = %.lr.ph
%add4.1 = add nsw i32 %inc, %mul3
%arrayidx.1 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add4.1
%12 = load float, float addrspace(3)* %arrayidx.1, align 4, !tbaa !17
%add5.1 = fadd fast float %12, %2
%inc.1 = add nsw i32 %inc, 1
%add4.2 = add nsw i32 %inc.1, %mul3
%arrayidx.2 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add4.2
%13 = load float, float addrspace(3)* %arrayidx.2, align 4, !tbaa !17
%add5.2 = fadd fast float %13, %add5.1
%inc.2 = or i32 %mul, 3
%add4.3 = add nsw i32 %inc.2, %mul3
%arrayidx.3 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add4.3
%14 = load float, float addrspace(3)* %arrayidx.3, align 4, !tbaa !17
%add5.3 = fadd fast float %14, %add5.2
%inc.3 = add nsw i32 %inc.2, 1
%add4.4 = add nsw i32 %inc.3, %mul3
%arrayidx.4 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add4.4
%15 = load float, float addrspace(3)* %arrayidx.4, align 4, !tbaa !17
%add5.4 = fadd fast float %15, %add5.3
%inc.4 = add nsw i32 %inc.2, 2
%add4.5 = add nsw i32 %inc.4, %mul3
%arrayidx.5 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add4.5
%16 = load float, float addrspace(3)* %arrayidx.5, align 4, !tbaa !17
%add5.5 = fadd fast float %16, %add5.4
%inc.5 = add nsw i32 %inc.2, 3
%add4.6 = add nsw i32 %inc.5, %mul3
%arrayidx.6 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add4.6
%17 = load float, float addrspace(3)* %arrayidx.6, align 4, !tbaa !17
%add5.6 = fadd fast float %17, %add5.5
%inc.6 = or i32 %mul, 7
%add4.7 = add nsw i32 %inc.6, %mul3
%arrayidx.7 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add4.7
%18 = load float, float addrspace(3)* %arrayidx.7, align 4, !tbaa !17
%add5.7 = fadd fast float %18, %add5.6
br label %._crit_edge
}
; Function Attrs: norecurse nounwind
define void @reduce_force_i_generic(float addrspace(3)* nocapture readonly %f_buf, float addrspace(1)* %fout, float* nocapture %fshift_buf, i1 zeroext %bCalcFshift, i32 %tidxi, i32 %tidxj, i32 %aidx) local_unnamed_addr #7 {
%cmp = icmp slt i32 %tidxj, 3
br i1 %cmp, label %.preheader, label %13
.preheader: ; preds = %0
%cmp117 = icmp slt i32 %tidxi, 64
br i1 %cmp117, label %.lr.ph, label %._crit_edge
.lr.ph: ; preds = %.preheader
%mul = shl i32 %tidxj, 6
br label %9
._crit_edge.loopexit: ; preds = %9
br label %._crit_edge
._crit_edge: ; preds = %._crit_edge.loopexit, %.preheader
%f.0.lcssa = phi float [ 0.000000e+00, %.preheader ], [ %add2, %._crit_edge.loopexit ]
%mul4 = mul nsw i32 %aidx, 3
%add5 = add nsw i32 %mul4, %tidxj
%idxprom6 = sext i32 %add5 to i64
%arrayidx7 = getelementptr inbounds float, float addrspace(1)* %fout, i64 %idxprom6
%1 = load volatile float, float addrspace(1)* %arrayidx7, align 4, !tbaa !17
%2 = bitcast float %1 to i32
%3 = bitcast float addrspace(1)* %arrayidx7 to i32 addrspace(1)*
br label %4
; <label>:4: ; preds = %4, %._crit_edge
%current.sroa.0.0.i = phi i32 [ %2, %._crit_edge ], [ %8, %4 ]
%5 = bitcast i32 %current.sroa.0.0.i to float
%add.i = fadd fast float %5, %f.0.lcssa
%6 = bitcast float %add.i to i32
%7 = cmpxchg volatile i32 addrspace(1)* %3, i32 %current.sroa.0.0.i, i32 %6 seq_cst seq_cst
%8 = extractvalue { i32, i1 } %7, 0
%cmp.i = extractvalue { i32, i1 } %7, 1
br i1 %cmp.i, label %atomicAdd_g_f.exit, label %4
atomicAdd_g_f.exit: ; preds = %4
br i1 %bCalcFshift, label %11, label %13
; <label>:9: ; preds = %.lr.ph, %9
%j.019 = phi i32 [ %tidxi, %.lr.ph ], [ %add3, %9 ]
%f.018 = phi float [ 0.000000e+00, %.lr.ph ], [ %add2, %9 ]
%add = add nsw i32 %j.019, %mul
%arrayidx = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add
%10 = load float, float addrspace(3)* %arrayidx, align 4, !tbaa !17
%add2 = fadd fast float %10, %f.018
%add3 = add nsw i32 %j.019, 8
%cmp1 = icmp slt i32 %add3, 64
br i1 %cmp1, label %9, label %._crit_edge.loopexit
; <label>:11: ; preds = %atomicAdd_g_f.exit
%12 = load float, float* %fshift_buf, align 4, !tbaa !17
%add8 = fadd fast float %12, %f.0.lcssa
store float %add8, float* %fshift_buf, align 4, !tbaa !17
br label %13
; <label>:13: ; preds = %atomicAdd_g_f.exit, %11, %0
ret void
}
; Function Attrs: norecurse nounwind
define void @reduce_force_i_pow2(float addrspace(3)* %f_buf, float addrspace(1)* %fout, float* nocapture %fshift_buf, i1 zeroext %bCalcFshift, i32 %tidxi, i32 %tidxj, i32 %aidx) local_unnamed_addr #7 {
%mul3 = shl nsw i32 %tidxj, 3
%add4 = add nsw i32 %mul3, %tidxi
%arrayidx6 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add4
%add10 = add i32 %tidxi, 64
%add16 = add i32 %add10, %mul3
%arrayidx18 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add16
%add22 = add i32 %tidxi, 128
%add28 = add i32 %add22, %mul3
%arrayidx30 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add28
%cmp1 = icmp slt i32 %tidxj, 4
br i1 %cmp1, label %1, label %.thread87
; <label>:1: ; preds = %0
%add = shl i32 %tidxj, 3
%mul = add i32 %add, 32
%add2 = add nsw i32 %mul, %tidxi
%arrayidx = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add2
%2 = load volatile float, float addrspace(3)* %arrayidx, align 4, !tbaa !17
%3 = load volatile float, float addrspace(3)* %arrayidx6, align 4, !tbaa !17
%add7 = fadd fast float %3, %2
store volatile float %add7, float addrspace(3)* %arrayidx6, align 4, !tbaa !17
%add11 = add i32 %add10, %mul
%arrayidx13 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add11
%4 = load volatile float, float addrspace(3)* %arrayidx13, align 4, !tbaa !17
%5 = load volatile float, float addrspace(3)* %arrayidx18, align 4, !tbaa !17
%add19 = fadd fast float %5, %4
store volatile float %add19, float addrspace(3)* %arrayidx18, align 4, !tbaa !17
%add23 = add i32 %add22, %mul
%arrayidx25 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add23
%6 = load volatile float, float addrspace(3)* %arrayidx25, align 4, !tbaa !17
%7 = load volatile float, float addrspace(3)* %arrayidx30, align 4, !tbaa !17
%add31 = fadd fast float %7, %6
store volatile float %add31, float addrspace(3)* %arrayidx30, align 4, !tbaa !17
%cmp1.1 = icmp slt i32 %tidxj, 2
br i1 %cmp1.1, label %.thread85, label %27
; <label>:8: ; preds = %.thread85, %27
%mul33 = shl nsw i32 %tidxj, 6
%add34 = add i32 %mul33, %tidxi
%arrayidx36 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add34
%9 = load volatile float, float addrspace(3)* %arrayidx36, align 4, !tbaa !17
%add40 = add i32 %add34, 8
%arrayidx42 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add40
%10 = load volatile float, float addrspace(3)* %arrayidx42, align 4, !tbaa !17
%add43 = fadd fast float %10, %9
%mul44 = mul nsw i32 %aidx, 3
%add45 = add nsw i32 %mul44, %tidxj
%idxprom46 = sext i32 %add45 to i64
%arrayidx47 = getelementptr inbounds float, float addrspace(1)* %fout, i64 %idxprom46
%11 = load volatile float, float addrspace(1)* %arrayidx47, align 4, !tbaa !17
%12 = bitcast float %11 to i32
%13 = bitcast float addrspace(1)* %arrayidx47 to i32 addrspace(1)*
br label %14
; <label>:14: ; preds = %14, %8
%current.sroa.0.0.i = phi i32 [ %12, %8 ], [ %18, %14 ]
%15 = bitcast i32 %current.sroa.0.0.i to float
%add.i = fadd fast float %15, %add43
%16 = bitcast float %add.i to i32
%17 = cmpxchg volatile i32 addrspace(1)* %13, i32 %current.sroa.0.0.i, i32 %16 seq_cst seq_cst
%18 = extractvalue { i32, i1 } %17, 0
%cmp.i = extractvalue { i32, i1 } %17, 1
br i1 %cmp.i, label %atomicAdd_g_f.exit, label %14
atomicAdd_g_f.exit: ; preds = %14
br i1 %bCalcFshift, label %19, label %.thread87
; <label>:19: ; preds = %atomicAdd_g_f.exit
%20 = load float, float* %fshift_buf, align 4, !tbaa !17
%add48 = fadd fast float %20, %add43
store float %add48, float* %fshift_buf, align 4, !tbaa !17
br label %.thread87
.thread87: ; preds = %0, %atomicAdd_g_f.exit, %19, %27
ret void
.thread85: ; preds = %1
%add.1 = shl i32 %tidxj, 3
%mul.1 = add i32 %add.1, 16
%add2.1 = add nsw i32 %mul.1, %tidxi
%arrayidx.1 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add2.1
%21 = load volatile float, float addrspace(3)* %arrayidx.1, align 4, !tbaa !17
%22 = load volatile float, float addrspace(3)* %arrayidx6, align 4, !tbaa !17
%add7.1 = fadd fast float %22, %21
store volatile float %add7.1, float addrspace(3)* %arrayidx6, align 4, !tbaa !17
%add11.1 = add i32 %add10, %mul.1
%arrayidx13.1 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add11.1
%23 = load volatile float, float addrspace(3)* %arrayidx13.1, align 4, !tbaa !17
%24 = load volatile float, float addrspace(3)* %arrayidx18, align 4, !tbaa !17
%add19.1 = fadd fast float %24, %23
store volatile float %add19.1, float addrspace(3)* %arrayidx18, align 4, !tbaa !17
%add23.1 = add i32 %add22, %mul.1
%arrayidx25.1 = getelementptr inbounds float, float addrspace(3)* %f_buf, i32 %add23.1
%25 = load volatile float, float addrspace(3)* %arrayidx25.1, align 4, !tbaa !17
%26 = load volatile float, float addrspace(3)* %arrayidx30, align 4, !tbaa !17
%add31.1 = fadd fast float %26, %25
store volatile float %add31.1, float addrspace(3)* %arrayidx30, align 4, !tbaa !17
br label %8
; <label>:27: ; preds = %1
%cmp32 = icmp eq i32 %tidxj, 2
br i1 %cmp32, label %8, label %.thread87
}
; Function Attrs: norecurse nounwind
define void @reduce_force_i(float addrspace(3)* %f_buf, float addrspace(1)* %f, float* nocapture %fshift_buf, i1 zeroext %bCalcFshift, i32 %tidxi, i32 %tidxj, i32 %ai) local_unnamed_addr #2 {
tail call void @reduce_force_i_pow2(float addrspace(3)* %f_buf, float addrspace(1)* %f, float* %fshift_buf, i1 zeroext %bCalcFshift, i32 %tidxi, i32 %tidxj, i32 %ai)
ret void
}
; Function Attrs: norecurse nounwind
define void @reduce_energy_pow2(float addrspace(3)* %buf, float addrspace(1)* %e_lj, float addrspace(1)* %e_el, i32 %tidx) local_unnamed_addr #7 {
%arrayidx3 = getelementptr inbounds float, float addrspace(3)* %buf, i32 %tidx
%add5 = add i32 %tidx, 64
%arrayidx11 = getelementptr inbounds float, float addrspace(3)* %buf, i32 %add5
%cmp1 = icmp ult i32 %tidx, 16
br i1 %cmp1, label %1, label %atomicAdd_g_f.exit56
; <label>:1: ; preds = %0
%add = add nuw nsw i32 %tidx, 16
%arrayidx = getelementptr inbounds float, float addrspace(3)* %buf, i32 %add
%2 = load volatile float, float addrspace(3)* %arrayidx, align 4, !tbaa !17
%3 = load volatile float, float addrspace(3)* %arrayidx3, align 4, !tbaa !17
%add4 = fadd fast float %3, %2
store volatile float %add4, float addrspace(3)* %arrayidx3, align 4, !tbaa !17
%add6 = add nuw nsw i32 %tidx, 80
%arrayidx8 = getelementptr inbounds float, float addrspace(3)* %buf, i32 %add6
%4 = load volatile float, float addrspace(3)* %arrayidx8, align 4, !tbaa !17
%5 = load volatile float, float addrspace(3)* %arrayidx11, align 4, !tbaa !17
%add12 = fadd fast float %5, %4
store volatile float %add12, float addrspace(3)* %arrayidx11, align 4, !tbaa !17
%cmp1.1 = icmp ult i32 %tidx, 8
br i1 %cmp1.1, label %27, label %atomicAdd_g_f.exit56
; <label>:6: ; preds = %37
%7 = load volatile float, float addrspace(3)* %buf, align 4, !tbaa !17
%arrayidx18 = getelementptr inbounds float, float addrspace(3)* %buf, i32 1
%8 = load volatile float, float addrspace(3)* %arrayidx18, align 4, !tbaa !17
%add19 = fadd fast float %8, %7
%arrayidx22 = getelementptr inbounds float, float addrspace(3)* %buf, i32 64
%9 = load volatile float, float addrspace(3)* %arrayidx22, align 4, !tbaa !17
%arrayidx26 = getelementptr inbounds float, float addrspace(3)* %buf, i32 65
%10 = load volatile float, float addrspace(3)* %arrayidx26, align 4, !tbaa !17
%11 = load volatile float, float addrspace(1)* %e_lj, align 4, !tbaa !17
%12 = bitcast float %11 to i32
%13 = bitcast float addrspace(1)* %e_lj to i32 addrspace(1)*
br label %14
; <label>:14: ; preds = %14, %6
%current.sroa.0.0.i = phi i32 [ %12, %6 ], [ %18, %14 ]
%15 = bitcast i32 %current.sroa.0.0.i to float
%add.i = fadd fast float %add19, %15
%16 = bitcast float %add.i to i32
%17 = cmpxchg volatile i32 addrspace(1)* %13, i32 %current.sroa.0.0.i, i32 %16 seq_cst seq_cst
%18 = extractvalue { i32, i1 } %17, 0
%cmp.i = extractvalue { i32, i1 } %17, 1
br i1 %cmp.i, label %atomicAdd_g_f.exit, label %14
atomicAdd_g_f.exit: ; preds = %14
%add27 = fadd fast float %10, %9
%19 = load volatile float, float addrspace(1)* %e_el, align 4, !tbaa !17
%20 = bitcast float %19 to i32
%21 = bitcast float addrspace(1)* %e_el to i32 addrspace(1)*
br label %22
; <label>:22: ; preds = %22, %atomicAdd_g_f.exit
%current.sroa.0.0.i53 = phi i32 [ %20, %atomicAdd_g_f.exit ], [ %26, %22 ]
%23 = bitcast i32 %current.sroa.0.0.i53 to float
%add.i54 = fadd fast float %add27, %23
%24 = bitcast float %add.i54 to i32
%25 = cmpxchg volatile i32 addrspace(1)* %21, i32 %current.sroa.0.0.i53, i32 %24 seq_cst seq_cst
%26 = extractvalue { i32, i1 } %25, 0
%cmp.i55 = extractvalue { i32, i1 } %25, 1
br i1 %cmp.i55, label %atomicAdd_g_f.exit56.loopexit, label %22
atomicAdd_g_f.exit56.loopexit: ; preds = %22
br label %atomicAdd_g_f.exit56
atomicAdd_g_f.exit56: ; preds = %atomicAdd_g_f.exit56.loopexit, %0, %1, %27, %32, %37
ret void
; <label>:27: ; preds = %1
%add.1 = add nuw nsw i32 %tidx, 8
%arrayidx.1 = getelementptr inbounds float, float addrspace(3)* %buf, i32 %add.1
%28 = load volatile float, float addrspace(3)* %arrayidx.1, align 4, !tbaa !17
%29 = load volatile float, float addrspace(3)* %arrayidx3, align 4, !tbaa !17
%add4.1 = fadd fast float %29, %28
store volatile float %add4.1, float addrspace(3)* %arrayidx3, align 4, !tbaa !17
%add6.1 = add nuw nsw i32 %tidx, 72
%arrayidx8.1 = getelementptr inbounds float, float addrspace(3)* %buf, i32 %add6.1
%30 = load volatile float, float addrspace(3)* %arrayidx8.1, align 4, !tbaa !17
%31 = load volatile float, float addrspace(3)* %arrayidx11, align 4, !tbaa !17
%add12.1 = fadd fast float %31, %30
store volatile float %add12.1, float addrspace(3)* %arrayidx11, align 4, !tbaa !17
%cmp1.2 = icmp ult i32 %tidx, 4
br i1 %cmp1.2, label %32, label %atomicAdd_g_f.exit56
; <label>:32: ; preds = %27
%add.2 = add nuw nsw i32 %tidx, 4
%arrayidx.2 = getelementptr inbounds float, float addrspace(3)* %buf, i32 %add.2
%33 = load volatile float, float addrspace(3)* %arrayidx.2, align 4, !tbaa !17
%34 = load volatile float, float addrspace(3)* %arrayidx3, align 4, !tbaa !17
%add4.2 = fadd fast float %34, %33
store volatile float %add4.2, float addrspace(3)* %arrayidx3, align 4, !tbaa !17
%add6.2 = add nuw nsw i32 %tidx, 68
%arrayidx8.2 = getelementptr inbounds float, float addrspace(3)* %buf, i32 %add6.2
%35 = load volatile float, float addrspace(3)* %arrayidx8.2, align 4, !tbaa !17
%36 = load volatile float, float addrspace(3)* %arrayidx11, align 4, !tbaa !17
%add12.2 = fadd fast float %36, %35
store volatile float %add12.2, float addrspace(3)* %arrayidx11, align 4, !tbaa !17
%cmp1.3 = icmp ult i32 %tidx, 2
br i1 %cmp1.3, label %37, label %atomicAdd_g_f.exit56
; <label>:37: ; preds = %32
%add.3 = add nuw nsw i32 %tidx, 2
%arrayidx.3 = getelementptr inbounds float, float addrspace(3)* %buf, i32 %add.3
%38 = load volatile float, float addrspace(3)* %arrayidx.3, align 4, !tbaa !17
%39 = load volatile float, float addrspace(3)* %arrayidx3, align 4, !tbaa !17
%add4.3 = fadd fast float %39, %38
store volatile float %add4.3, float addrspace(3)* %arrayidx3, align 4, !tbaa !17
%add6.3 = add nuw nsw i32 %tidx, 66
%arrayidx8.3 = getelementptr inbounds float, float addrspace(3)* %buf, i32 %add6.3
%40 = load volatile float, float addrspace(3)* %arrayidx8.3, align 4, !tbaa !17
%41 = load volatile float, float addrspace(3)* %arrayidx11, align 4, !tbaa !17
%add12.3 = fadd fast float %41, %40
store volatile float %add12.3, float addrspace(3)* %arrayidx11, align 4, !tbaa !17
%cmp13 = icmp eq i32 %tidx, 0
br i1 %cmp13, label %6, label %atomicAdd_g_f.exit56
}
; Function Attrs: nounwind
define void @print_to_debug_buffer_f(float addrspace(1)* %debug_buffer, float %value) local_unnamed_addr #0 {
%tobool = icmp eq float addrspace(1)* %debug_buffer, null
br i1 %tobool, label %26, label %1
; <label>:1: ; preds = %0
%2 = tail call i32 @llvm.amdgcn.workgroup.id.y() #9
%3 = zext i32 %2 to i64
%dispatch_ptr.i6.i = tail call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #9
%xy_size_ptr.i7.i = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr.i6.i, i64 4
%4 = bitcast i8 addrspace(2)* %xy_size_ptr.i7.i to i32 addrspace(2)*
%xy_size.i8.i = load i32, i32 addrspace(2)* %4, align 4, !invariant.load !7
%y_size.i.i = lshr i32 %xy_size.i8.i, 16
%y_size.ext.i.i = zext i32 %y_size.i.i to i64
%5 = mul nuw nsw i64 %y_size.ext.i.i, %3
%6 = tail call i32 @llvm.amdgcn.workitem.id.y() #9, !range !8
%7 = zext i32 %6 to i64
%8 = add nuw nsw i64 %5, %7
%9 = tail call i8 addrspace(2)* @llvm.amdgcn.implicitarg.ptr() #9
%10 = getelementptr inbounds i8, i8 addrspace(2)* %9, i64 8
%11 = bitcast i8 addrspace(2)* %10 to i32 addrspace(2)*
%12 = load i32, i32 addrspace(2)* %11, align 4, !tbaa !9
%13 = zext i32 %12 to i64
%14 = add nuw nsw i64 %8, %13
%ptr_x.i = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr.i6.i, i64 12
%ptr_x32.i = bitcast i8 addrspace(2)* %ptr_x.i to i32 addrspace(2)*
%x32.i = load i32, i32 addrspace(2)* %ptr_x32.i, align 4, !invariant.load !7
%size_x.i = zext i32 %x32.i to i64
%mul = mul i64 %14, %size_x.i
%15 = tail call i32 @llvm.amdgcn.workgroup.id.x() #9
%16 = zext i32 %15 to i64
%x_size.i.i = and i32 %xy_size.i8.i, 65535
%x_size.ext.i.i = zext i32 %x_size.i.i to i64
%17 = mul nuw nsw i64 %16, %x_size.ext.i.i
%18 = tail call i32 @llvm.amdgcn.workitem.id.x() #9, !range !8
%19 = zext i32 %18 to i64
%20 = getelementptr inbounds i8, i8 addrspace(2)* %9, i64 4
%21 = bitcast i8 addrspace(2)* %20 to i32 addrspace(2)*
%22 = load i32, i32 addrspace(2)* %21, align 4, !tbaa !9
%23 = zext i32 %22 to i64
%24 = add i64 %17, %mul
%25 = add i64 %24, %19
%add = add i64 %25, %23
%arrayidx = getelementptr inbounds float, float addrspace(1)* %debug_buffer, i64 %add
store float %value, float addrspace(1)* %arrayidx, align 4, !tbaa !17
br label %26
; <label>:26: ; preds = %0, %1
ret void
}
; Function Attrs: nounwind
define amdgpu_kernel void @nbnxn_kernel_ElecEw_VdwLJCombGeom_F_opencl(%struct.cl_nbparam_params %nbparam_params.coerce, <4 x float> addrspace(1)* noalias nocapture readonly %xq, float addrspace(1)* noalias %f, float addrspace(1)* noalias nocapture readnone %e_lj, float addrspace(1)* noalias nocapture readnone %e_el, float addrspace(1)* noalias %fshift, <2 x float> addrspace(1)* noalias nocapture readonly %lj_comb, float addrspace(1)* noalias nocapture readonly %shift_vec, float addrspace(2)* nocapture readnone %nbfp_climg2d, float addrspace(2)* nocapture readnone %nbfp_comb_climg2d, float addrspace(2)* nocapture readnone %coulomb_tab_climg2d, %struct.nbnxn_sci_t addrspace(1)* nocapture readonly %pl_sci, %struct.nbnxn_cj4_t addrspace(1)* nocapture readonly %pl_cj4, %struct.nbnxn_excl_t addrspace(1)* nocapture readonly %excl, i32 %bCalcFshift, <4 x float> addrspace(3)* %xqib, float addrspace(1)* nocapture readnone %debug_buffer) local_unnamed_addr #0 !kernel_arg_addr_space !35 !kernel_arg_access_qual !36 !kernel_arg_type !37 !kernel_arg_base_type !38 !kernel_arg_type_qual !39 !reqd_work_group_size !40 {
%fshift_buf = alloca float, align 4
%fci_buf = alloca [8 x <3 x float>], align 16
%nbparam_params.coerce.fca.2.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 2
%nbparam_params.coerce.fca.5.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 5
%nbparam_params.coerce.fca.9.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 9
%mul = fmul fast float %nbparam_params.coerce.fca.5.extract, %nbparam_params.coerce.fca.5.extract
%1 = tail call i32 @llvm.amdgcn.workitem.id.x() #9, !range !8
%2 = zext i32 %1 to i64
%3 = tail call i32 @llvm.amdgcn.workitem.id.y() #9, !range !8
%dispatch_ptr.i = tail call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #9
%xy_size_ptr.i = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr.i, i64 4
%4 = bitcast i8 addrspace(2)* %xy_size_ptr.i to i32 addrspace(2)*
%xy_size.i = load i32, i32 addrspace(2)* %4, align 4, !invariant.load !7
%x_size.i = and i32 %xy_size.i, 65535
%mulconv = mul nuw nsw i32 %x_size.i, %3
%addconv = add nuw nsw i32 %mulconv, %1
%5 = tail call i32 @llvm.amdgcn.workgroup.id.x() #9
%6 = zext i32 %5 to i64
%div = lshr i32 %addconv, 5
%7 = bitcast float* %fshift_buf to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %7) #9
%8 = bitcast [8 x <3 x float>]* %fci_buf to i8*
call void @llvm.lifetime.start(i64 128, i8* nonnull %8) #9
%add.ptr = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 64
%9 = bitcast <4 x float> addrspace(3)* %add.ptr to i32 addrspace(3)*
%add.ptr17442 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 66
%10 = bitcast <4 x float> addrspace(3)* %add.ptr17442 to <2 x float> addrspace(3)*
%11 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 0
%nb_sci.sroa.0.0..sroa_idx = getelementptr inbounds %struct.nbnxn_sci_t, %struct.nbnxn_sci_t addrspace(1)* %pl_sci, i64 %6, i32 0
%nb_sci.sroa.0.0.copyload = load i32, i32 addrspace(1)* %nb_sci.sroa.0.0..sroa_idx, align 4
%nb_sci.sroa.4.0..sroa_idx270 = getelementptr inbounds %struct.nbnxn_sci_t, %struct.nbnxn_sci_t addrspace(1)* %pl_sci, i64 %6, i32 1
%nb_sci.sroa.4.0.copyload = load i32, i32 addrspace(1)* %nb_sci.sroa.4.0..sroa_idx270, align 4
%nb_sci.sroa.10.0..sroa_idx277 = getelementptr inbounds %struct.nbnxn_sci_t, %struct.nbnxn_sci_t addrspace(1)* %pl_sci, i64 %6, i32 2
%nb_sci.sroa.10.0.copyload = load i32, i32 addrspace(1)* %nb_sci.sroa.10.0..sroa_idx277, align 4
%nb_sci.sroa.11.0..sroa_idx279 = getelementptr inbounds %struct.nbnxn_sci_t, %struct.nbnxn_sci_t addrspace(1)* %pl_sci, i64 %6, i32 3
%nb_sci.sroa.11.0.copyload = load i32, i32 addrspace(1)* %nb_sci.sroa.11.0..sroa_idx279, align 4
%mul21 = shl nsw i32 %nb_sci.sroa.0.0.copyload, 3
%add22 = add i32 %mul21, %3
%mul23 = shl i32 %add22, 3
%add24 = add i32 %mul23, %1
%idxprom25 = sext i32 %add24 to i64
%arrayidx26 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom25
%12 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx26, align 16, !tbaa !13
%mul27 = mul nsw i32 %nb_sci.sroa.4.0.copyload, 3
%idxprom28 = sext i32 %mul27 to i64
%arrayidx29 = getelementptr inbounds float, float addrspace(1)* %shift_vec, i64 %idxprom28
%13 = load float, float addrspace(1)* %arrayidx29, align 4, !tbaa !17
%vecinit = insertelement <4 x float> undef, float %13, i32 0
%add32 = add nsw i32 %mul27, 1
%idxprom33 = sext i32 %add32 to i64
%arrayidx34 = getelementptr inbounds float, float addrspace(1)* %shift_vec, i64 %idxprom33
%14 = load float, float addrspace(1)* %arrayidx34, align 4, !tbaa !17
%vecinit35 = insertelement <4 x float> %vecinit, float %14, i32 1
%add38 = add nsw i32 %mul27, 2
%idxprom39 = sext i32 %add38 to i64
%arrayidx40 = getelementptr inbounds float, float addrspace(1)* %shift_vec, i64 %idxprom39
%15 = load float, float addrspace(1)* %arrayidx40, align 4, !tbaa !17
%vecinit41 = insertelement <4 x float> %vecinit35, float %15, i32 2
%vecinit42 = insertelement <4 x float> %vecinit41, float 0.000000e+00, i32 3
%add43 = fadd fast <4 x float> %vecinit42, %12
%16 = extractelement <4 x float> %add43, i64 3
%mul44 = fmul fast float %16, %nbparam_params.coerce.fca.2.extract
%17 = insertelement <4 x float> %add43, float %mul44, i64 3
%18 = shl nuw nsw i32 %3, 3
%addconv445 = add nuw nsw i32 %18, %1
%arrayidx48 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %addconv445
store <4 x float> %17, <4 x float> addrspace(3)* %arrayidx48, align 16, !tbaa !13
%arrayidx50 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom25
%19 = bitcast <2 x float> addrspace(1)* %arrayidx50 to i64 addrspace(1)*
%20 = load i64, i64 addrspace(1)* %19, align 8, !tbaa !13
%arrayidx54 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %addconv445
%21 = bitcast <2 x float> addrspace(3)* %arrayidx54 to i64 addrspace(3)*
store i64 %20, i64 addrspace(3)* %21, align 8, !tbaa !13
%22 = or i32 %addconv, 32
%23 = icmp eq i32 %22, 32
br i1 %23, label %24, label %.preheader447587
; <label>:24: ; preds = %0
%add.ptr19 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 192
%arrayidx59444 = getelementptr inbounds float, float addrspace(3)* %add.ptr19, i32 %div
%arrayidx59 = bitcast float addrspace(3)* %arrayidx59444 to i32 addrspace(3)*
store volatile i32 0, i32 addrspace(3)* %arrayidx59, align 4, !tbaa !9
br label %.preheader447587
.preheader447587: ; preds = %0, %24
tail call void @llvm.amdgcn.s.barrier() #9
%storetmp = bitcast [8 x <3 x float>]* %fci_buf to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp, align 16, !tbaa !13
%arrayidx63.1 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 1
%storetmp.1 = bitcast <3 x float>* %arrayidx63.1 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.1, align 16, !tbaa !13
%arrayidx63.2 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 2
%storetmp.2 = bitcast <3 x float>* %arrayidx63.2 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.2, align 16, !tbaa !13
%arrayidx63.3 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 3
%storetmp.3 = bitcast <3 x float>* %arrayidx63.3 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.3, align 16, !tbaa !13
%arrayidx63.4 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 4
%storetmp.4 = bitcast <3 x float>* %arrayidx63.4 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.4, align 16, !tbaa !13
%arrayidx63.5 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 5
%storetmp.5 = bitcast <3 x float>* %arrayidx63.5 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.5, align 16, !tbaa !13
%arrayidx63.6 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 6
%storetmp.6 = bitcast <3 x float>* %arrayidx63.6 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.6, align 16, !tbaa !13
%arrayidx63.7 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 7
%storetmp.7 = bitcast <3 x float>* %arrayidx63.7 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.7, align 16, !tbaa !13
%cmp64453 = icmp slt i32 %nb_sci.sroa.10.0.copyload, %nb_sci.sroa.11.0.copyload
br i1 %cmp64453, label %.lr.ph, label %.preheader447587.._crit_edge_crit_edge
.preheader447587.._crit_edge_crit_edge: ; preds = %.preheader447587
%.pre = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %addconv
%.pre668 = add nuw nsw i32 %addconv, 64
%.pre669 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %.pre668
%.pre670 = add nuw nsw i32 %addconv, 128
%.pre671 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %.pre670
br label %._crit_edge
.lr.ph: ; preds = %.preheader447587
%idxprom68 = zext i32 %div to i64
%25 = and i32 %addconv, 31
%and = zext i32 %25 to i64
%26 = or i32 %3, 4
%27 = icmp eq i32 %26, 4
%cmp84 = icmp ult i32 %1, 4
%or.cond250 = and i1 %cmp84, %27
%addconv446 = add nuw nsw i32 %3, %1
%arrayidx95 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %addconv446
%mul105 = and i32 %3, 4
%cmp149 = icmp ugt i32 %3, %1
%notlhs = icmp ne i32 %nb_sci.sroa.4.0.copyload, 22
%mul11.i = fmul fast float %mul, %nbparam_params.coerce.fca.5.extract
%arrayidx207 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %addconv
%add208 = add nuw nsw i32 %addconv, 64
%arrayidx210 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %add208
%add211 = add nuw nsw i32 %addconv, 128
%arrayidx213 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %add211
%add107.3 = or i32 %mul105, 3
%arrayidx109.3 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %add107.3
%add127.7.3 = add nuw nsw i32 %1, 56
%arrayidx129.7.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.7.3
%add123.7.3 = or i32 %mul21, 7
%arrayidx158.7.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.7.3
%add127.6.3 = add nuw nsw i32 %1, 48
%arrayidx129.6.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.6.3
%add123.6.3 = or i32 %mul21, 6
%arrayidx158.6.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.6.3
%add127.5.3 = add nuw nsw i32 %1, 40
%arrayidx129.5.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.5.3
%add123.5.3 = or i32 %mul21, 5
%arrayidx158.5.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.5.3
%add127.4.3 = add nuw nsw i32 %1, 32
%arrayidx129.4.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.4.3
%add123.4.3 = or i32 %mul21, 4
%arrayidx158.4.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.4.3
%add127.3.3 = add nuw nsw i32 %1, 24
%arrayidx129.3.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.3.3
%add123.3.3 = or i32 %mul21, 3
%arrayidx158.3.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.3.3
%add127.2.3 = add nuw nsw i32 %1, 16
%arrayidx129.2.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.2.3
%add123.2.3 = or i32 %mul21, 2
%arrayidx158.2.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.2.3
%add127.1.3 = add nuw nsw i32 %1, 8
%arrayidx129.1.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.1.3
%add123.1.3 = or i32 %mul21, 1
%arrayidx158.1.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.1.3
%arrayidx129.3542 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%arrayidx158.3553 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %1
%add107.2 = or i32 %mul105, 2
%arrayidx109.2 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %add107.2
%add127.7.2 = add nuw nsw i32 %1, 56
%arrayidx129.7.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.7.2
%add123.7.2 = or i32 %mul21, 7
%arrayidx158.7.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.7.2
%add127.6.2 = add nuw nsw i32 %1, 48
%arrayidx129.6.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.6.2
%add123.6.2 = or i32 %mul21, 6
%arrayidx158.6.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.6.2
%add127.5.2 = add nuw nsw i32 %1, 40
%arrayidx129.5.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.5.2
%add123.5.2 = or i32 %mul21, 5
%arrayidx158.5.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.5.2
%add127.4.2 = add nuw nsw i32 %1, 32
%arrayidx129.4.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.4.2
%add123.4.2 = or i32 %mul21, 4
%arrayidx158.4.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.4.2
%add127.3.2 = add nuw nsw i32 %1, 24
%arrayidx129.3.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.3.2
%add123.3.2 = or i32 %mul21, 3
%arrayidx158.3.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.3.2
%add127.2.2 = add nuw nsw i32 %1, 16
%arrayidx129.2.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.2.2
%add123.2.2 = or i32 %mul21, 2
%arrayidx158.2.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.2.2
%add127.1.2 = add nuw nsw i32 %1, 8
%arrayidx129.1.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.1.2
%add123.1.2 = or i32 %mul21, 1
%arrayidx158.1.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.1.2
%arrayidx129.2500 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%arrayidx158.2511 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %1
%add107.1 = or i32 %mul105, 1
%arrayidx109.1 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %add107.1
%add127.7.1 = add nuw nsw i32 %1, 56
%arrayidx129.7.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.7.1
%add123.7.1 = or i32 %mul21, 7
%arrayidx158.7.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.7.1
%add127.6.1 = add nuw nsw i32 %1, 48
%arrayidx129.6.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.6.1
%add123.6.1 = or i32 %mul21, 6
%arrayidx158.6.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.6.1
%add127.5.1 = add nuw nsw i32 %1, 40
%arrayidx129.5.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.5.1
%add123.5.1 = or i32 %mul21, 5
%arrayidx158.5.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.5.1
%add127.4.1 = add nuw nsw i32 %1, 32
%arrayidx129.4.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.4.1
%add123.4.1 = or i32 %mul21, 4
%arrayidx158.4.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.4.1
%add127.3.1 = add nuw nsw i32 %1, 24
%arrayidx129.3.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.3.1
%add123.3.1 = or i32 %mul21, 3
%arrayidx158.3.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.3.1
%add127.2.1 = add nuw nsw i32 %1, 16
%arrayidx129.2.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.2.1
%add123.2.1 = or i32 %mul21, 2
%arrayidx158.2.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.2.1
%add127.1.1 = add nuw nsw i32 %1, 8
%arrayidx129.1.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.1.1
%add123.1.1 = or i32 %mul21, 1
%arrayidx158.1.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.1.1
%arrayidx129.1458 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%arrayidx158.1469 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %1
%arrayidx109 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %mul105
%add127.7 = add nuw nsw i32 %1, 56
%arrayidx129.7 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.7
%add123.7 = or i32 %mul21, 7
%arrayidx158.7 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.7
%add127.6 = add nuw nsw i32 %1, 48
%arrayidx129.6 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.6
%add123.6 = or i32 %mul21, 6
%arrayidx158.6 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.6
%add127.5 = add nuw nsw i32 %1, 40
%arrayidx129.5 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.5
%add123.5 = or i32 %mul21, 5
%arrayidx158.5 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.5
%add127.4 = add nuw nsw i32 %1, 32
%arrayidx129.4 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.4
%add123.4 = or i32 %mul21, 4
%arrayidx158.4 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.4
%add127.3 = add nuw nsw i32 %1, 24
%arrayidx129.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.3
%add123.3 = or i32 %mul21, 3
%arrayidx158.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.3
%add127.2 = add nuw nsw i32 %1, 16
%arrayidx129.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.2
%add123.2 = or i32 %mul21, 2
%arrayidx158.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.2
%add127.1 = add nuw nsw i32 %1, 8
%arrayidx129.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add127.1
%add123.1 = or i32 %mul21, 1
%arrayidx158.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add127.1
%arrayidx129 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%arrayidx158 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %1
%storetmp.promoted = load <4 x float>, <4 x float>* %storetmp, align 16, !tbaa !13
%storetmp.1.promoted = load <4 x float>, <4 x float>* %storetmp.1, align 16, !tbaa !13
%storetmp.2.promoted = load <4 x float>, <4 x float>* %storetmp.2, align 16, !tbaa !13
%storetmp.3.promoted = load <4 x float>, <4 x float>* %storetmp.3, align 16, !tbaa !13
%storetmp.4.promoted = load <4 x float>, <4 x float>* %storetmp.4, align 16, !tbaa !13
%storetmp.5.promoted = load <4 x float>, <4 x float>* %storetmp.5, align 16, !tbaa !13
%storetmp.6.promoted = load <4 x float>, <4 x float>* %storetmp.6, align 16, !tbaa !13
%storetmp.7.promoted = load <4 x float>, <4 x float>* %storetmp.7, align 16, !tbaa !13
br label %28
; <label>:28: ; preds = %.loopexit, %.lr.ph
%extractVec202.7.3745 = phi <4 x float> [ %storetmp.7.promoted, %.lr.ph ], [ %extractVec202.7.3746, %.loopexit ]
%extractVec202.6.3736 = phi <4 x float> [ %storetmp.6.promoted, %.lr.ph ], [ %extractVec202.6.3737, %.loopexit ]
%extractVec202.5.3727 = phi <4 x float> [ %storetmp.5.promoted, %.lr.ph ], [ %extractVec202.5.3728, %.loopexit ]
%extractVec202.4.3718 = phi <4 x float> [ %storetmp.4.promoted, %.lr.ph ], [ %extractVec202.4.3719, %.loopexit ]
%extractVec202.3.3709 = phi <4 x float> [ %storetmp.3.promoted, %.lr.ph ], [ %extractVec202.3.3710, %.loopexit ]
%extractVec202.2.3700 = phi <4 x float> [ %storetmp.2.promoted, %.lr.ph ], [ %extractVec202.2.3701, %.loopexit ]
%extractVec202.1.3691 = phi <4 x float> [ %storetmp.1.promoted, %.lr.ph ], [ %extractVec202.1.3692, %.loopexit ]
%extractVec202.3579682 = phi <4 x float> [ %storetmp.promoted, %.lr.ph ], [ %extractVec202.3579683, %.loopexit ]
%29 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %90, %.loopexit ]
%30 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %91, %.loopexit ]
%31 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %92, %.loopexit ]
%32 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %93, %.loopexit ]
%33 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %94, %.loopexit ]
%34 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %95, %.loopexit ]
%35 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %96, %.loopexit ]
%loadVec4199.7 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4199.7662, %.loopexit ]
%loadVec4199.6 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4199.6652, %.loopexit ]
%loadVec4199.5 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4199.5642, %.loopexit ]
%loadVec4199.4 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4199.4632, %.loopexit ]
%loadVec4199.3 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4199.3622, %.loopexit ]
%loadVec4199.2 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4199.2612, %.loopexit ]
%loadVec4199.1 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4199.1602, %.loopexit ]
%loadVec4199 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4199592, %.loopexit ]
%j4.0454 = phi i32 [ %nb_sci.sroa.10.0.copyload, %.lr.ph ], [ %inc215, %.loopexit ]
%idxprom66 = sext i32 %j4.0454 to i64
%excl_ind = getelementptr inbounds %struct.nbnxn_cj4_t, %struct.nbnxn_cj4_t addrspace(1)* %pl_cj4, i64 %idxprom66, i32 1, i64 %idxprom68, i32 1
%36 = load i32, i32 addrspace(1)* %excl_ind, align 4, !tbaa !41
%imask75 = getelementptr inbounds %struct.nbnxn_cj4_t, %struct.nbnxn_cj4_t addrspace(1)* %pl_cj4, i64 %idxprom66, i32 1, i64 %idxprom68, i32 0
%37 = load i32, i32 addrspace(1)* %imask75, align 4, !tbaa !43
%idxprom76 = sext i32 %36 to i64
%arrayidx79 = getelementptr inbounds %struct.nbnxn_excl_t, %struct.nbnxn_excl_t addrspace(1)* %excl, i64 %idxprom76, i32 0, i64 %and
%38 = load i32, i32 addrspace(1)* %arrayidx79, align 4, !tbaa !9
%tobool = icmp eq i32 %37, 0
br i1 %tobool, label %.loopexit, label %39
; <label>:39: ; preds = %28
br i1 %or.cond250, label %40, label %.preheader.preheader
; <label>:40: ; preds = %39
%arrayidx90 = getelementptr inbounds %struct.nbnxn_cj4_t, %struct.nbnxn_cj4_t addrspace(1)* %pl_cj4, i64 %idxprom66, i32 0, i64 %2
%41 = load i32, i32 addrspace(1)* %arrayidx90, align 4, !tbaa !9
store i32 %41, i32 addrspace(3)* %arrayidx95, align 4, !tbaa !9
br label %.preheader.preheader
.preheader.preheader: ; preds = %39, %40
%and99 = and i32 %37, 255
%tobool100 = icmp eq i32 %and99, 0
br i1 %tobool100, label %.preheader.1582, label %42
; <label>:42: ; preds = %.preheader.preheader
%43 = load i32, i32 addrspace(3)* %arrayidx109, align 4, !tbaa !9
%mul110 = shl nsw i32 %43, 3
%add111 = add i32 %mul110, %3
%idxprom112 = sext i32 %add111 to i64
%arrayidx113 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom112
%44 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx113, align 16, !tbaa !13
%45 = extractelement <4 x float> %44, i64 3
%arrayidx116 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom112
%46 = load <2 x float>, <2 x float> addrspace(1)* %arrayidx116, align 8, !tbaa !13
%47 = extractelement <2 x float> %46, i64 0
%48 = extractelement <2 x float> %46, i64 1
%and120 = and i32 %37, 1
%tobool121 = icmp eq i32 %and120, 0
br i1 %tobool121, label %81, label %49
; <label>:49: ; preds = %42
%50 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129, align 16, !tbaa !13
%51 = fsub fast <4 x float> %50, %44
%52 = extractelement <4 x float> %51, i32 0
%53 = extractelement <4 x float> %51, i32 1
%54 = fmul float %53, %53
%55 = tail call float @llvm.fmuladd.f32(float %52, float %52, float %54) #9
%56 = extractelement <4 x float> %51, i32 2
%57 = tail call float @llvm.fmuladd.f32(float %56, float %56, float %55) #9
%and142 = and i32 %38, 1
%tobool143 = icmp ne i32 %and142, 0
%cond = select i1 %tobool143, float 1.000000e+00, float 0.000000e+00
%notrhs = icmp ne i32 %mul21, %43
%not.or.cond = or i1 %notlhs, %notrhs
%cmp149. = or i1 %cmp149, %not.or.cond
%conv151 = uitofp i1 %cmp149. to float
%mul152 = fmul fast float %conv151, %nbparam_params.coerce.fca.9.extract
%cmp153 = fcmp fast olt float %57, %mul152
br i1 %cmp153, label %58, label %81
; <label>:58: ; preds = %49
%extractVec140 = shufflevector <4 x float> %51, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%59 = extractelement <4 x float> %50, i64 3
%60 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158, align 8, !tbaa !13
%61 = extractelement <2 x float> %60, i64 0
%62 = extractelement <2 x float> %60, i64 1
%mul160 = fmul fast float %62, %48
%63 = fcmp ogt float %57, 0x3E99A2B5C0000000
%64 = select i1 %63, float %57, float 0x3E99A2B5C0000000
%65 = tail call float @llvm.sqrt.f32(float %64) #10
%div163 = fdiv fast float 1.000000e+00, %65, !fpmath !33
%mul164 = fmul fast float %div163, %div163
%66 = fmul fast float %mul164, %mul164
%mul166 = fmul fast float %66, %cond
%mul167 = fmul fast float %mul166, %mul164
%67 = fmul fast float %47, %61
%neg = fsub fast float -0.000000e+00, %67
%68 = tail call fast float @llvm.fmuladd.f32(float %mul160, float %mul167, float %neg)
%mul169 = fmul fast float %mul167, %mul164
%mul170 = fmul fast float %mul169, %68
%mul171 = fmul fast float %59, %45
%mul172 = fmul fast float %mul164, %cond
%mul174 = fmul fast float %64, %mul
%mul.i = fmul fast float %mul174, %mul174
%69 = tail call fast float @llvm.fmuladd.f32(float %mul.i, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%70 = tail call fast float @llvm.fmuladd.f32(float %mul.i, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%71 = tail call fast float @llvm.fmuladd.f32(float %69, float %mul.i, float 1.000000e+00) #9
%72 = tail call fast float @llvm.fmuladd.f32(float %70, float %mul174, float %71) #9
%div.i = fdiv fast float 1.000000e+00, %72, !fpmath !33
%73 = tail call fast float @llvm.fmuladd.f32(float %mul.i, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%74 = tail call fast float @llvm.fmuladd.f32(float %mul.i, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%75 = tail call fast float @llvm.fmuladd.f32(float %73, float %mul.i, float 0xBF93BDB200000000) #9
%76 = tail call fast float @llvm.fmuladd.f32(float %74, float %mul.i, float 0x3FB1D5E760000000) #9
%77 = tail call fast float @llvm.fmuladd.f32(float %75, float %mul.i, float 0xBFE81272E0000000) #9
%78 = tail call fast float @llvm.fmuladd.f32(float %76, float %mul174, float %77) #9
%mul7 = fmul fast float %mul11.i, %div.i
%mul176 = fmul fast float %mul7, %78
%79 = tail call fast float @llvm.fmuladd.f32(float %mul172, float %div163, float %mul176)
%80 = tail call fast float @llvm.fmuladd.f32(float %mul171, float %79, float %mul170)
%splat.splatinsert = insertelement <3 x float> undef, float %80, i32 0
%splat.splat = shufflevector <3 x float> %splat.splatinsert, <3 x float> undef, <3 x i32> zeroinitializer
%mul181 = fmul fast <3 x float> %splat.splat, %extractVec140
%sub190 = fsub fast <3 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %mul181
%extractVec191 = shufflevector <3 x float> %sub190, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200 = shufflevector <4 x float> %loadVec4199, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201 = fadd fast <3 x float> %mul181, %extractVec200
%extractVec202 = shufflevector <3 x float> %add201, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %81
; <label>:81: ; preds = %42, %49, %58
%extractVec202.3579687 = phi <4 x float> [ %extractVec202, %58 ], [ %extractVec202.3579682, %49 ], [ %extractVec202.3579682, %42 ]
%82 = phi <3 x float> [ %add201, %58 ], [ %35, %49 ], [ %35, %42 ]
%loadVec4199597 = phi <4 x float> [ %extractVec202, %58 ], [ %loadVec4199, %49 ], [ %loadVec4199, %42 ]
%fcj_buf.sroa.0.1 = phi <4 x float> [ %extractVec191, %58 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %49 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %42 ]
%and120.1 = and i32 %37, 2
%tobool121.1 = icmp eq i32 %and120.1, 0
br i1 %tobool121.1, label %171, label %139
.preheader.1582: ; preds = %.preheader.preheader, %375
%extractVec202.7.3749 = phi <4 x float> [ %extractVec202.7.3745, %.preheader.preheader ], [ %extractVec202.7.3750, %375 ]
%extractVec202.6.3740 = phi <4 x float> [ %extractVec202.6.3736, %.preheader.preheader ], [ %extractVec202.6.3741, %375 ]
%extractVec202.5.3731 = phi <4 x float> [ %extractVec202.5.3727, %.preheader.preheader ], [ %extractVec202.5.3732, %375 ]
%extractVec202.4.3722 = phi <4 x float> [ %extractVec202.4.3718, %.preheader.preheader ], [ %extractVec202.4.3723, %375 ]
%extractVec202.3.3713 = phi <4 x float> [ %extractVec202.3.3709, %.preheader.preheader ], [ %extractVec202.3.3714, %375 ]
%extractVec202.2.3704 = phi <4 x float> [ %extractVec202.2.3700, %.preheader.preheader ], [ %extractVec202.2.3705, %375 ]
%extractVec202.1.3695 = phi <4 x float> [ %extractVec202.1.3691, %.preheader.preheader ], [ %extractVec202.1.3696, %375 ]
%extractVec202.3579686 = phi <4 x float> [ %extractVec202.3579682, %.preheader.preheader ], [ %extractVec202.3579687, %375 ]
%83 = phi <3 x float> [ %29, %.preheader.preheader ], [ %342, %375 ]
%84 = phi <3 x float> [ %30, %.preheader.preheader ], [ %308, %375 ]
%85 = phi <3 x float> [ %31, %.preheader.preheader ], [ %274, %375 ]
%86 = phi <3 x float> [ %32, %.preheader.preheader ], [ %240, %375 ]
%87 = phi <3 x float> [ %33, %.preheader.preheader ], [ %206, %375 ]
%88 = phi <3 x float> [ %34, %.preheader.preheader ], [ %172, %375 ]
%89 = phi <3 x float> [ %35, %.preheader.preheader ], [ %82, %375 ]
%loadVec4199.7.1 = phi <4 x float> [ %loadVec4199.7, %.preheader.preheader ], [ %loadVec4199.7667, %375 ]
%loadVec4199.6.1 = phi <4 x float> [ %loadVec4199.6, %.preheader.preheader ], [ %loadVec4199.6657, %375 ]
%loadVec4199.5.1 = phi <4 x float> [ %loadVec4199.5, %.preheader.preheader ], [ %loadVec4199.5647, %375 ]
%loadVec4199.4.1 = phi <4 x float> [ %loadVec4199.4, %.preheader.preheader ], [ %loadVec4199.4637, %375 ]
%loadVec4199.3.1 = phi <4 x float> [ %loadVec4199.3, %.preheader.preheader ], [ %loadVec4199.3627, %375 ]
%loadVec4199.2.1 = phi <4 x float> [ %loadVec4199.2, %.preheader.preheader ], [ %loadVec4199.2617, %375 ]
%loadVec4199.1.1 = phi <4 x float> [ %loadVec4199.1, %.preheader.preheader ], [ %loadVec4199.1607, %375 ]
%loadVec4199.1492 = phi <4 x float> [ %loadVec4199, %.preheader.preheader ], [ %loadVec4199597, %375 ]
%and99.1 = and i32 %37, 65280
%tobool100.1 = icmp eq i32 %and99.1, 0
br i1 %tobool100.1, label %.preheader.2583, label %379
.loopexit: ; preds = %.preheader.3584, %1232, %28
%extractVec202.7.3746 = phi <4 x float> [ %extractVec202.7.3745, %28 ], [ %extractVec202.7.3744, %1232 ], [ %extractVec202.7.3747, %.preheader.3584 ]
%extractVec202.6.3737 = phi <4 x float> [ %extractVec202.6.3736, %28 ], [ %extractVec202.6.3735, %1232 ], [ %extractVec202.6.3738, %.preheader.3584 ]
%extractVec202.5.3728 = phi <4 x float> [ %extractVec202.5.3727, %28 ], [ %extractVec202.5.3726, %1232 ], [ %extractVec202.5.3729, %.preheader.3584 ]
%extractVec202.4.3719 = phi <4 x float> [ %extractVec202.4.3718, %28 ], [ %extractVec202.4.3717, %1232 ], [ %extractVec202.4.3720, %.preheader.3584 ]
%extractVec202.3.3710 = phi <4 x float> [ %extractVec202.3.3709, %28 ], [ %extractVec202.3.3708, %1232 ], [ %extractVec202.3.3711, %.preheader.3584 ]
%extractVec202.2.3701 = phi <4 x float> [ %extractVec202.2.3700, %28 ], [ %extractVec202.2.3699, %1232 ], [ %extractVec202.2.3702, %.preheader.3584 ]
%extractVec202.1.3692 = phi <4 x float> [ %extractVec202.1.3691, %28 ], [ %extractVec202.1.3690, %1232 ], [ %extractVec202.1.3693, %.preheader.3584 ]
%extractVec202.3579683 = phi <4 x float> [ %extractVec202.3579682, %28 ], [ %extractVec202.3579681, %1232 ], [ %extractVec202.3579684, %.preheader.3584 ]
%90 = phi <3 x float> [ %29, %28 ], [ %1199, %1232 ], [ %948, %.preheader.3584 ]
%91 = phi <3 x float> [ %30, %28 ], [ %1165, %1232 ], [ %949, %.preheader.3584 ]
%92 = phi <3 x float> [ %31, %28 ], [ %1131, %1232 ], [ %950, %.preheader.3584 ]
%93 = phi <3 x float> [ %32, %28 ], [ %1097, %1232 ], [ %951, %.preheader.3584 ]
%94 = phi <3 x float> [ %33, %28 ], [ %1063, %1232 ], [ %952, %.preheader.3584 ]
%95 = phi <3 x float> [ %34, %28 ], [ %1029, %1232 ], [ %953, %.preheader.3584 ]
%96 = phi <3 x float> [ %35, %28 ], [ %995, %1232 ], [ %954, %.preheader.3584 ]
%loadVec4199.7662 = phi <4 x float> [ %loadVec4199.7, %28 ], [ %loadVec4199.7660, %1232 ], [ %loadVec4199.7.3, %.preheader.3584 ]
%loadVec4199.6652 = phi <4 x float> [ %loadVec4199.6, %28 ], [ %loadVec4199.6650, %1232 ], [ %loadVec4199.6.3, %.preheader.3584 ]
%loadVec4199.5642 = phi <4 x float> [ %loadVec4199.5, %28 ], [ %loadVec4199.5640, %1232 ], [ %loadVec4199.5.3, %.preheader.3584 ]
%loadVec4199.4632 = phi <4 x float> [ %loadVec4199.4, %28 ], [ %loadVec4199.4630, %1232 ], [ %loadVec4199.4.3, %.preheader.3584 ]
%loadVec4199.3622 = phi <4 x float> [ %loadVec4199.3, %28 ], [ %loadVec4199.3620, %1232 ], [ %loadVec4199.3.3, %.preheader.3584 ]
%loadVec4199.2612 = phi <4 x float> [ %loadVec4199.2, %28 ], [ %loadVec4199.2610, %1232 ], [ %loadVec4199.2.3, %.preheader.3584 ]
%loadVec4199.1602 = phi <4 x float> [ %loadVec4199.1, %28 ], [ %loadVec4199.1600, %1232 ], [ %loadVec4199.1.3, %.preheader.3584 ]
%loadVec4199592 = phi <4 x float> [ %loadVec4199, %28 ], [ %loadVec4199590, %1232 ], [ %loadVec4199.3576, %.preheader.3584 ]
%inc215 = add nsw i32 %j4.0454, 1
%exitcond = icmp eq i32 %inc215, %nb_sci.sroa.11.0.copyload
br i1 %exitcond, label %._crit_edge.loopexit, label %28
._crit_edge.loopexit: ; preds = %.loopexit
store <4 x float> %extractVec202.3579683, <4 x float>* %storetmp, align 16, !tbaa !13
store <4 x float> %extractVec202.1.3692, <4 x float>* %storetmp.1, align 16, !tbaa !13
store <4 x float> %extractVec202.2.3701, <4 x float>* %storetmp.2, align 16, !tbaa !13
store <4 x float> %extractVec202.3.3710, <4 x float>* %storetmp.3, align 16, !tbaa !13
store <4 x float> %extractVec202.4.3719, <4 x float>* %storetmp.4, align 16, !tbaa !13
store <4 x float> %extractVec202.5.3728, <4 x float>* %storetmp.5, align 16, !tbaa !13
store <4 x float> %extractVec202.6.3737, <4 x float>* %storetmp.6, align 16, !tbaa !13
store <4 x float> %extractVec202.7.3746, <4 x float>* %storetmp.7, align 16, !tbaa !13
br label %._crit_edge
._crit_edge: ; preds = %._crit_edge.loopexit, %.preheader447587.._crit_edge_crit_edge
%arrayidx238.pre-phi = phi float addrspace(3)* [ %.pre671, %.preheader447587.._crit_edge_crit_edge ], [ %arrayidx213, %._crit_edge.loopexit ]
%arrayidx233.pre-phi = phi float addrspace(3)* [ %.pre669, %.preheader447587.._crit_edge_crit_edge ], [ %arrayidx210, %._crit_edge.loopexit ]
%arrayidx228.pre-phi = phi float addrspace(3)* [ %.pre, %.preheader447587.._crit_edge_crit_edge ], [ %arrayidx207, %._crit_edge.loopexit ]
%97 = phi <3 x float> [ zeroinitializer, %.preheader447587.._crit_edge_crit_edge ], [ %90, %._crit_edge.loopexit ]
%98 = phi <3 x float> [ zeroinitializer, %.preheader447587.._crit_edge_crit_edge ], [ %91, %._crit_edge.loopexit ]
%99 = phi <3 x float> [ zeroinitializer, %.preheader447587.._crit_edge_crit_edge ], [ %92, %._crit_edge.loopexit ]
%100 = phi <3 x float> [ zeroinitializer, %.preheader447587.._crit_edge_crit_edge ], [ %93, %._crit_edge.loopexit ]
%101 = phi <3 x float> [ zeroinitializer, %.preheader447587.._crit_edge_crit_edge ], [ %94, %._crit_edge.loopexit ]
%102 = phi <3 x float> [ zeroinitializer, %.preheader447587.._crit_edge_crit_edge ], [ %95, %._crit_edge.loopexit ]
%103 = phi <3 x float> [ zeroinitializer, %.preheader447587.._crit_edge_crit_edge ], [ %96, %._crit_edge.loopexit ]
store float 0.000000e+00, float* %fshift_buf, align 4, !tbaa !17
%tobool239672 = icmp ne i32 %bCalcFshift, 0
%not.cmp217 = icmp ne i32 %nb_sci.sroa.4.0.copyload, 22
%tobool239 = and i1 %tobool239672, %not.cmp217
%mul223 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%add224 = add i32 %mul223, %1
%104 = extractelement <3 x float> %103, i64 0
store float %104, float addrspace(3)* %arrayidx228.pre-phi, align 4, !tbaa !17
%105 = extractelement <3 x float> %103, i64 1
store float %105, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%106 = extractelement <3 x float> %103, i64 2
store float %106, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool239, i32 %1, i32 %3, i32 %add224) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add222.1 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul223.1 = or i32 %add222.1, 8
%add224.1 = add i32 %mul223.1, %1
%107 = extractelement <3 x float> %102, i64 0
store float %107, float addrspace(3)* %arrayidx228.pre-phi, align 4, !tbaa !17
%108 = extractelement <3 x float> %102, i64 1
store float %108, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%109 = extractelement <3 x float> %102, i64 2
store float %109, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool239, i32 %1, i32 %3, i32 %add224.1) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add222.2 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul223.2 = or i32 %add222.2, 16
%add224.2 = add i32 %mul223.2, %1
%110 = extractelement <3 x float> %101, i64 0
store float %110, float addrspace(3)* %arrayidx228.pre-phi, align 4, !tbaa !17
%111 = extractelement <3 x float> %101, i64 1
store float %111, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%112 = extractelement <3 x float> %101, i64 2
store float %112, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool239, i32 %1, i32 %3, i32 %add224.2) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add222.3 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul223.3 = or i32 %add222.3, 24
%add224.3 = add i32 %mul223.3, %1
%113 = extractelement <3 x float> %100, i64 0
store float %113, float addrspace(3)* %arrayidx228.pre-phi, align 4, !tbaa !17
%114 = extractelement <3 x float> %100, i64 1
store float %114, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%115 = extractelement <3 x float> %100, i64 2
store float %115, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool239, i32 %1, i32 %3, i32 %add224.3) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add222.4 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul223.4 = or i32 %add222.4, 32
%add224.4 = add i32 %mul223.4, %1
%116 = extractelement <3 x float> %99, i64 0
store float %116, float addrspace(3)* %arrayidx228.pre-phi, align 4, !tbaa !17
%117 = extractelement <3 x float> %99, i64 1
store float %117, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%118 = extractelement <3 x float> %99, i64 2
store float %118, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool239, i32 %1, i32 %3, i32 %add224.4) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add222.5 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul223.5 = or i32 %add222.5, 40
%add224.5 = add i32 %mul223.5, %1
%119 = extractelement <3 x float> %98, i64 0
store float %119, float addrspace(3)* %arrayidx228.pre-phi, align 4, !tbaa !17
%120 = extractelement <3 x float> %98, i64 1
store float %120, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%121 = extractelement <3 x float> %98, i64 2
store float %121, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool239, i32 %1, i32 %3, i32 %add224.5) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add222.6 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul223.6 = or i32 %add222.6, 48
%add224.6 = add i32 %mul223.6, %1
%122 = extractelement <3 x float> %97, i64 0
store float %122, float addrspace(3)* %arrayidx228.pre-phi, align 4, !tbaa !17
%123 = extractelement <3 x float> %97, i64 1
store float %123, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%124 = extractelement <3 x float> %97, i64 2
store float %124, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool239, i32 %1, i32 %3, i32 %add224.6) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add222.7 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul223.7 = or i32 %add222.7, 56
%add224.7 = add i32 %mul223.7, %1
%125 = load <3 x float>, <3 x float>* %arrayidx63.7, align 16
%126 = extractelement <3 x float> %125, i64 0
store float %126, float addrspace(3)* %arrayidx228.pre-phi, align 4, !tbaa !17
%127 = extractelement <3 x float> %125, i64 1
store float %127, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%128 = extractelement <3 x float> %125, i64 2
store float %128, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool239, i32 %1, i32 %3, i32 %add224.7) #9
tail call void @llvm.amdgcn.s.barrier() #9
%cmp242 = icmp ult i32 %3, 3
%or.cond251 = and i1 %cmp242, %tobool239
br i1 %or.cond251, label %129, label %atomicAdd_g_f.exit
; <label>:129: ; preds = %._crit_edge
%add246 = add i32 %mul27, %3
%idxprom247 = zext i32 %add246 to i64
%arrayidx248 = getelementptr inbounds float, float addrspace(1)* %fshift, i64 %idxprom247
%130 = load float, float* %fshift_buf, align 4, !tbaa !17
%131 = load volatile float, float addrspace(1)* %arrayidx248, align 4, !tbaa !17
%132 = bitcast float %131 to i32
%133 = bitcast float addrspace(1)* %arrayidx248 to i32 addrspace(1)*
br label %134
; <label>:134: ; preds = %134, %129
%current.sroa.0.0.i = phi i32 [ %132, %129 ], [ %138, %134 ]
%135 = bitcast i32 %current.sroa.0.0.i to float
%add.i = fadd fast float %135, %130
%136 = bitcast float %add.i to i32
%137 = cmpxchg volatile i32 addrspace(1)* %133, i32 %current.sroa.0.0.i, i32 %136 seq_cst seq_cst
%138 = extractvalue { i32, i1 } %137, 0
%cmp.i = extractvalue { i32, i1 } %137, 1
br i1 %cmp.i, label %atomicAdd_g_f.exit.loopexit, label %134
atomicAdd_g_f.exit.loopexit: ; preds = %134
br label %atomicAdd_g_f.exit
atomicAdd_g_f.exit: ; preds = %atomicAdd_g_f.exit.loopexit, %._crit_edge
call void @llvm.lifetime.end(i64 128, i8* nonnull %8) #9
call void @llvm.lifetime.end(i64 4, i8* nonnull %7) #9
ret void
; <label>:139: ; preds = %81
%140 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.1, align 16, !tbaa !13
%141 = fsub fast <4 x float> %140, %44
%142 = extractelement <4 x float> %141, i32 0
%143 = extractelement <4 x float> %141, i32 1
%144 = fmul float %143, %143
%145 = tail call float @llvm.fmuladd.f32(float %142, float %142, float %144) #9
%146 = extractelement <4 x float> %141, i32 2
%147 = tail call float @llvm.fmuladd.f32(float %146, float %146, float %145) #9
%and142.1 = and i32 %38, 2
%tobool143.1 = icmp ne i32 %and142.1, 0
%cond.1 = select i1 %tobool143.1, float 1.000000e+00, float 0.000000e+00
%notrhs.1 = icmp ne i32 %add123.1, %43
%not.or.cond.1 = or i1 %notlhs, %notrhs.1
%cmp149..1 = or i1 %cmp149, %not.or.cond.1
%conv151.1 = uitofp i1 %cmp149..1 to float
%mul152.1 = fmul fast float %conv151.1, %nbparam_params.coerce.fca.9.extract
%cmp153.1 = fcmp fast olt float %147, %mul152.1
br i1 %cmp153.1, label %148, label %171
; <label>:148: ; preds = %139
%extractVec140.1 = shufflevector <4 x float> %141, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%149 = extractelement <4 x float> %140, i64 3
%150 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.1, align 8, !tbaa !13
%151 = extractelement <2 x float> %150, i64 0
%152 = extractelement <2 x float> %150, i64 1
%mul160.1 = fmul fast float %152, %48
%153 = fcmp ogt float %147, 0x3E99A2B5C0000000
%154 = select i1 %153, float %147, float 0x3E99A2B5C0000000
%155 = tail call float @llvm.sqrt.f32(float %154) #10
%div163.1 = fdiv fast float 1.000000e+00, %155, !fpmath !33
%mul164.1 = fmul fast float %div163.1, %div163.1
%156 = fmul fast float %mul164.1, %mul164.1
%mul166.1 = fmul fast float %156, %cond.1
%mul167.1 = fmul fast float %mul166.1, %mul164.1
%157 = fmul fast float %47, %151
%neg.1 = fsub fast float -0.000000e+00, %157
%158 = tail call fast float @llvm.fmuladd.f32(float %mul160.1, float %mul167.1, float %neg.1)
%mul169.1 = fmul fast float %mul167.1, %mul164.1
%mul170.1 = fmul fast float %mul169.1, %158
%mul171.1 = fmul fast float %149, %45
%mul172.1 = fmul fast float %mul164.1, %cond.1
%mul174.1 = fmul fast float %154, %mul
%mul.i.1 = fmul fast float %mul174.1, %mul174.1
%159 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%160 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%161 = tail call fast float @llvm.fmuladd.f32(float %159, float %mul.i.1, float 1.000000e+00) #9
%162 = tail call fast float @llvm.fmuladd.f32(float %160, float %mul174.1, float %161) #9
%div.i.1 = fdiv fast float 1.000000e+00, %162, !fpmath !33
%163 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%164 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%165 = tail call fast float @llvm.fmuladd.f32(float %163, float %mul.i.1, float 0xBF93BDB200000000) #9
%166 = tail call fast float @llvm.fmuladd.f32(float %164, float %mul.i.1, float 0x3FB1D5E760000000) #9
%167 = tail call fast float @llvm.fmuladd.f32(float %165, float %mul.i.1, float 0xBFE81272E0000000) #9
%168 = tail call fast float @llvm.fmuladd.f32(float %166, float %mul174.1, float %167) #9
%mul7.1 = fmul fast float %mul11.i, %div.i.1
%mul176.1 = fmul fast float %mul7.1, %168
%169 = tail call fast float @llvm.fmuladd.f32(float %mul172.1, float %div163.1, float %mul176.1)
%170 = tail call fast float @llvm.fmuladd.f32(float %mul171.1, float %169, float %mul170.1)
%splat.splatinsert.1 = insertelement <3 x float> undef, float %170, i32 0
%splat.splat.1 = shufflevector <3 x float> %splat.splatinsert.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.1 = fmul fast <3 x float> %splat.splat.1, %extractVec140.1
%extractVec189.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.1 = fsub fast <3 x float> %extractVec189.1, %mul181.1
%extractVec191.1 = shufflevector <3 x float> %sub190.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.1 = shufflevector <4 x float> %loadVec4199.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.1 = fadd fast <3 x float> %mul181.1, %extractVec200.1
%extractVec202.1 = shufflevector <3 x float> %add201.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %171
; <label>:171: ; preds = %148, %139, %81
%extractVec202.1.3696 = phi <4 x float> [ %extractVec202.1, %148 ], [ %extractVec202.1.3691, %139 ], [ %extractVec202.1.3691, %81 ]
%172 = phi <3 x float> [ %add201.1, %148 ], [ %34, %139 ], [ %34, %81 ]
%loadVec4199.1607 = phi <4 x float> [ %extractVec202.1, %148 ], [ %loadVec4199.1, %139 ], [ %loadVec4199.1, %81 ]
%fcj_buf.sroa.0.1.1 = phi <4 x float> [ %extractVec191.1, %148 ], [ %fcj_buf.sroa.0.1, %139 ], [ %fcj_buf.sroa.0.1, %81 ]
%and120.2 = and i32 %37, 4
%tobool121.2 = icmp eq i32 %and120.2, 0
br i1 %tobool121.2, label %205, label %173
; <label>:173: ; preds = %171
%174 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.2, align 16, !tbaa !13
%175 = fsub fast <4 x float> %174, %44
%176 = extractelement <4 x float> %175, i32 0
%177 = extractelement <4 x float> %175, i32 1
%178 = fmul float %177, %177
%179 = tail call float @llvm.fmuladd.f32(float %176, float %176, float %178) #9
%180 = extractelement <4 x float> %175, i32 2
%181 = tail call float @llvm.fmuladd.f32(float %180, float %180, float %179) #9
%and142.2 = and i32 %38, 4
%tobool143.2 = icmp ne i32 %and142.2, 0
%cond.2 = select i1 %tobool143.2, float 1.000000e+00, float 0.000000e+00
%notrhs.2 = icmp ne i32 %add123.2, %43
%not.or.cond.2 = or i1 %notlhs, %notrhs.2
%cmp149..2 = or i1 %cmp149, %not.or.cond.2
%conv151.2 = uitofp i1 %cmp149..2 to float
%mul152.2 = fmul fast float %conv151.2, %nbparam_params.coerce.fca.9.extract
%cmp153.2 = fcmp fast olt float %181, %mul152.2
br i1 %cmp153.2, label %182, label %205
; <label>:182: ; preds = %173
%extractVec140.2 = shufflevector <4 x float> %175, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%183 = extractelement <4 x float> %174, i64 3
%184 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.2, align 8, !tbaa !13
%185 = extractelement <2 x float> %184, i64 0
%186 = extractelement <2 x float> %184, i64 1
%mul160.2 = fmul fast float %186, %48
%187 = fcmp ogt float %181, 0x3E99A2B5C0000000
%188 = select i1 %187, float %181, float 0x3E99A2B5C0000000
%189 = tail call float @llvm.sqrt.f32(float %188) #10
%div163.2 = fdiv fast float 1.000000e+00, %189, !fpmath !33
%mul164.2 = fmul fast float %div163.2, %div163.2
%190 = fmul fast float %mul164.2, %mul164.2
%mul166.2 = fmul fast float %190, %cond.2
%mul167.2 = fmul fast float %mul166.2, %mul164.2
%191 = fmul fast float %47, %185
%neg.2 = fsub fast float -0.000000e+00, %191
%192 = tail call fast float @llvm.fmuladd.f32(float %mul160.2, float %mul167.2, float %neg.2)
%mul169.2 = fmul fast float %mul167.2, %mul164.2
%mul170.2 = fmul fast float %mul169.2, %192
%mul171.2 = fmul fast float %183, %45
%mul172.2 = fmul fast float %mul164.2, %cond.2
%mul174.2 = fmul fast float %188, %mul
%mul.i.2 = fmul fast float %mul174.2, %mul174.2
%193 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%194 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%195 = tail call fast float @llvm.fmuladd.f32(float %193, float %mul.i.2, float 1.000000e+00) #9
%196 = tail call fast float @llvm.fmuladd.f32(float %194, float %mul174.2, float %195) #9
%div.i.2 = fdiv fast float 1.000000e+00, %196, !fpmath !33
%197 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%198 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%199 = tail call fast float @llvm.fmuladd.f32(float %197, float %mul.i.2, float 0xBF93BDB200000000) #9
%200 = tail call fast float @llvm.fmuladd.f32(float %198, float %mul.i.2, float 0x3FB1D5E760000000) #9
%201 = tail call fast float @llvm.fmuladd.f32(float %199, float %mul.i.2, float 0xBFE81272E0000000) #9
%202 = tail call fast float @llvm.fmuladd.f32(float %200, float %mul174.2, float %201) #9
%mul7.2 = fmul fast float %mul11.i, %div.i.2
%mul176.2 = fmul fast float %mul7.2, %202
%203 = tail call fast float @llvm.fmuladd.f32(float %mul172.2, float %div163.2, float %mul176.2)
%204 = tail call fast float @llvm.fmuladd.f32(float %mul171.2, float %203, float %mul170.2)
%splat.splatinsert.2 = insertelement <3 x float> undef, float %204, i32 0
%splat.splat.2 = shufflevector <3 x float> %splat.splatinsert.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.2 = fmul fast <3 x float> %splat.splat.2, %extractVec140.2
%extractVec189.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.2 = fsub fast <3 x float> %extractVec189.2, %mul181.2
%extractVec191.2 = shufflevector <3 x float> %sub190.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.2 = shufflevector <4 x float> %loadVec4199.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.2 = fadd fast <3 x float> %mul181.2, %extractVec200.2
%extractVec202.2 = shufflevector <3 x float> %add201.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %205
; <label>:205: ; preds = %182, %173, %171
%extractVec202.2.3705 = phi <4 x float> [ %extractVec202.2, %182 ], [ %extractVec202.2.3700, %173 ], [ %extractVec202.2.3700, %171 ]
%206 = phi <3 x float> [ %add201.2, %182 ], [ %33, %173 ], [ %33, %171 ]
%loadVec4199.2617 = phi <4 x float> [ %extractVec202.2, %182 ], [ %loadVec4199.2, %173 ], [ %loadVec4199.2, %171 ]
%fcj_buf.sroa.0.1.2 = phi <4 x float> [ %extractVec191.2, %182 ], [ %fcj_buf.sroa.0.1.1, %173 ], [ %fcj_buf.sroa.0.1.1, %171 ]
%and120.3 = and i32 %37, 8
%tobool121.3 = icmp eq i32 %and120.3, 0
br i1 %tobool121.3, label %239, label %207
; <label>:207: ; preds = %205
%208 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.3, align 16, !tbaa !13
%209 = fsub fast <4 x float> %208, %44
%210 = extractelement <4 x float> %209, i32 0
%211 = extractelement <4 x float> %209, i32 1
%212 = fmul float %211, %211
%213 = tail call float @llvm.fmuladd.f32(float %210, float %210, float %212) #9
%214 = extractelement <4 x float> %209, i32 2
%215 = tail call float @llvm.fmuladd.f32(float %214, float %214, float %213) #9
%and142.3 = and i32 %38, 8
%tobool143.3 = icmp ne i32 %and142.3, 0
%cond.3 = select i1 %tobool143.3, float 1.000000e+00, float 0.000000e+00
%notrhs.3 = icmp ne i32 %add123.3, %43
%not.or.cond.3 = or i1 %notlhs, %notrhs.3
%cmp149..3 = or i1 %cmp149, %not.or.cond.3
%conv151.3 = uitofp i1 %cmp149..3 to float
%mul152.3 = fmul fast float %conv151.3, %nbparam_params.coerce.fca.9.extract
%cmp153.3 = fcmp fast olt float %215, %mul152.3
br i1 %cmp153.3, label %216, label %239
; <label>:216: ; preds = %207
%extractVec140.3 = shufflevector <4 x float> %209, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%217 = extractelement <4 x float> %208, i64 3
%218 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.3, align 8, !tbaa !13
%219 = extractelement <2 x float> %218, i64 0
%220 = extractelement <2 x float> %218, i64 1
%mul160.3 = fmul fast float %220, %48
%221 = fcmp ogt float %215, 0x3E99A2B5C0000000
%222 = select i1 %221, float %215, float 0x3E99A2B5C0000000
%223 = tail call float @llvm.sqrt.f32(float %222) #10
%div163.3 = fdiv fast float 1.000000e+00, %223, !fpmath !33
%mul164.3 = fmul fast float %div163.3, %div163.3
%224 = fmul fast float %mul164.3, %mul164.3
%mul166.3 = fmul fast float %224, %cond.3
%mul167.3 = fmul fast float %mul166.3, %mul164.3
%225 = fmul fast float %47, %219
%neg.3 = fsub fast float -0.000000e+00, %225
%226 = tail call fast float @llvm.fmuladd.f32(float %mul160.3, float %mul167.3, float %neg.3)
%mul169.3 = fmul fast float %mul167.3, %mul164.3
%mul170.3 = fmul fast float %mul169.3, %226
%mul171.3 = fmul fast float %217, %45
%mul172.3 = fmul fast float %mul164.3, %cond.3
%mul174.3 = fmul fast float %222, %mul
%mul.i.3 = fmul fast float %mul174.3, %mul174.3
%227 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%228 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%229 = tail call fast float @llvm.fmuladd.f32(float %227, float %mul.i.3, float 1.000000e+00) #9
%230 = tail call fast float @llvm.fmuladd.f32(float %228, float %mul174.3, float %229) #9
%div.i.3 = fdiv fast float 1.000000e+00, %230, !fpmath !33
%231 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%232 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%233 = tail call fast float @llvm.fmuladd.f32(float %231, float %mul.i.3, float 0xBF93BDB200000000) #9
%234 = tail call fast float @llvm.fmuladd.f32(float %232, float %mul.i.3, float 0x3FB1D5E760000000) #9
%235 = tail call fast float @llvm.fmuladd.f32(float %233, float %mul.i.3, float 0xBFE81272E0000000) #9
%236 = tail call fast float @llvm.fmuladd.f32(float %234, float %mul174.3, float %235) #9
%mul7.3 = fmul fast float %mul11.i, %div.i.3
%mul176.3 = fmul fast float %mul7.3, %236
%237 = tail call fast float @llvm.fmuladd.f32(float %mul172.3, float %div163.3, float %mul176.3)
%238 = tail call fast float @llvm.fmuladd.f32(float %mul171.3, float %237, float %mul170.3)
%splat.splatinsert.3 = insertelement <3 x float> undef, float %238, i32 0
%splat.splat.3 = shufflevector <3 x float> %splat.splatinsert.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.3 = fmul fast <3 x float> %splat.splat.3, %extractVec140.3
%extractVec189.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.3 = fsub fast <3 x float> %extractVec189.3, %mul181.3
%extractVec191.3 = shufflevector <3 x float> %sub190.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.3 = shufflevector <4 x float> %loadVec4199.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.3 = fadd fast <3 x float> %mul181.3, %extractVec200.3
%extractVec202.3 = shufflevector <3 x float> %add201.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %239
; <label>:239: ; preds = %216, %207, %205
%extractVec202.3.3714 = phi <4 x float> [ %extractVec202.3, %216 ], [ %extractVec202.3.3709, %207 ], [ %extractVec202.3.3709, %205 ]
%240 = phi <3 x float> [ %add201.3, %216 ], [ %32, %207 ], [ %32, %205 ]
%loadVec4199.3627 = phi <4 x float> [ %extractVec202.3, %216 ], [ %loadVec4199.3, %207 ], [ %loadVec4199.3, %205 ]
%fcj_buf.sroa.0.1.3 = phi <4 x float> [ %extractVec191.3, %216 ], [ %fcj_buf.sroa.0.1.2, %207 ], [ %fcj_buf.sroa.0.1.2, %205 ]
%and120.4 = and i32 %37, 16
%tobool121.4 = icmp eq i32 %and120.4, 0
br i1 %tobool121.4, label %273, label %241
; <label>:241: ; preds = %239
%242 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.4, align 16, !tbaa !13
%243 = fsub fast <4 x float> %242, %44
%244 = extractelement <4 x float> %243, i32 0
%245 = extractelement <4 x float> %243, i32 1
%246 = fmul float %245, %245
%247 = tail call float @llvm.fmuladd.f32(float %244, float %244, float %246) #9
%248 = extractelement <4 x float> %243, i32 2
%249 = tail call float @llvm.fmuladd.f32(float %248, float %248, float %247) #9
%and142.4 = and i32 %38, 16
%tobool143.4 = icmp ne i32 %and142.4, 0
%cond.4 = select i1 %tobool143.4, float 1.000000e+00, float 0.000000e+00
%notrhs.4 = icmp ne i32 %add123.4, %43
%not.or.cond.4 = or i1 %notlhs, %notrhs.4
%cmp149..4 = or i1 %cmp149, %not.or.cond.4
%conv151.4 = uitofp i1 %cmp149..4 to float
%mul152.4 = fmul fast float %conv151.4, %nbparam_params.coerce.fca.9.extract
%cmp153.4 = fcmp fast olt float %249, %mul152.4
br i1 %cmp153.4, label %250, label %273
; <label>:250: ; preds = %241
%extractVec140.4 = shufflevector <4 x float> %243, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%251 = extractelement <4 x float> %242, i64 3
%252 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.4, align 8, !tbaa !13
%253 = extractelement <2 x float> %252, i64 0
%254 = extractelement <2 x float> %252, i64 1
%mul160.4 = fmul fast float %254, %48
%255 = fcmp ogt float %249, 0x3E99A2B5C0000000
%256 = select i1 %255, float %249, float 0x3E99A2B5C0000000
%257 = tail call float @llvm.sqrt.f32(float %256) #10
%div163.4 = fdiv fast float 1.000000e+00, %257, !fpmath !33
%mul164.4 = fmul fast float %div163.4, %div163.4
%258 = fmul fast float %mul164.4, %mul164.4
%mul166.4 = fmul fast float %258, %cond.4
%mul167.4 = fmul fast float %mul166.4, %mul164.4
%259 = fmul fast float %47, %253
%neg.4 = fsub fast float -0.000000e+00, %259
%260 = tail call fast float @llvm.fmuladd.f32(float %mul160.4, float %mul167.4, float %neg.4)
%mul169.4 = fmul fast float %mul167.4, %mul164.4
%mul170.4 = fmul fast float %mul169.4, %260
%mul171.4 = fmul fast float %251, %45
%mul172.4 = fmul fast float %mul164.4, %cond.4
%mul174.4 = fmul fast float %256, %mul
%mul.i.4 = fmul fast float %mul174.4, %mul174.4
%261 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%262 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%263 = tail call fast float @llvm.fmuladd.f32(float %261, float %mul.i.4, float 1.000000e+00) #9
%264 = tail call fast float @llvm.fmuladd.f32(float %262, float %mul174.4, float %263) #9
%div.i.4 = fdiv fast float 1.000000e+00, %264, !fpmath !33
%265 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%266 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%267 = tail call fast float @llvm.fmuladd.f32(float %265, float %mul.i.4, float 0xBF93BDB200000000) #9
%268 = tail call fast float @llvm.fmuladd.f32(float %266, float %mul.i.4, float 0x3FB1D5E760000000) #9
%269 = tail call fast float @llvm.fmuladd.f32(float %267, float %mul.i.4, float 0xBFE81272E0000000) #9
%270 = tail call fast float @llvm.fmuladd.f32(float %268, float %mul174.4, float %269) #9
%mul7.4 = fmul fast float %mul11.i, %div.i.4
%mul176.4 = fmul fast float %mul7.4, %270
%271 = tail call fast float @llvm.fmuladd.f32(float %mul172.4, float %div163.4, float %mul176.4)
%272 = tail call fast float @llvm.fmuladd.f32(float %mul171.4, float %271, float %mul170.4)
%splat.splatinsert.4 = insertelement <3 x float> undef, float %272, i32 0
%splat.splat.4 = shufflevector <3 x float> %splat.splatinsert.4, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.4 = fmul fast <3 x float> %splat.splat.4, %extractVec140.4
%extractVec189.4 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.4 = fsub fast <3 x float> %extractVec189.4, %mul181.4
%extractVec191.4 = shufflevector <3 x float> %sub190.4, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.4 = shufflevector <4 x float> %loadVec4199.4, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.4 = fadd fast <3 x float> %mul181.4, %extractVec200.4
%extractVec202.4 = shufflevector <3 x float> %add201.4, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %273
; <label>:273: ; preds = %250, %241, %239
%extractVec202.4.3723 = phi <4 x float> [ %extractVec202.4, %250 ], [ %extractVec202.4.3718, %241 ], [ %extractVec202.4.3718, %239 ]
%274 = phi <3 x float> [ %add201.4, %250 ], [ %31, %241 ], [ %31, %239 ]
%loadVec4199.4637 = phi <4 x float> [ %extractVec202.4, %250 ], [ %loadVec4199.4, %241 ], [ %loadVec4199.4, %239 ]
%fcj_buf.sroa.0.1.4 = phi <4 x float> [ %extractVec191.4, %250 ], [ %fcj_buf.sroa.0.1.3, %241 ], [ %fcj_buf.sroa.0.1.3, %239 ]
%and120.5 = and i32 %37, 32
%tobool121.5 = icmp eq i32 %and120.5, 0
br i1 %tobool121.5, label %307, label %275
; <label>:275: ; preds = %273
%276 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.5, align 16, !tbaa !13
%277 = fsub fast <4 x float> %276, %44
%278 = extractelement <4 x float> %277, i32 0
%279 = extractelement <4 x float> %277, i32 1
%280 = fmul float %279, %279
%281 = tail call float @llvm.fmuladd.f32(float %278, float %278, float %280) #9
%282 = extractelement <4 x float> %277, i32 2
%283 = tail call float @llvm.fmuladd.f32(float %282, float %282, float %281) #9
%and142.5 = and i32 %38, 32
%tobool143.5 = icmp ne i32 %and142.5, 0
%cond.5 = select i1 %tobool143.5, float 1.000000e+00, float 0.000000e+00
%notrhs.5 = icmp ne i32 %add123.5, %43
%not.or.cond.5 = or i1 %notlhs, %notrhs.5
%cmp149..5 = or i1 %cmp149, %not.or.cond.5
%conv151.5 = uitofp i1 %cmp149..5 to float
%mul152.5 = fmul fast float %conv151.5, %nbparam_params.coerce.fca.9.extract
%cmp153.5 = fcmp fast olt float %283, %mul152.5
br i1 %cmp153.5, label %284, label %307
; <label>:284: ; preds = %275
%extractVec140.5 = shufflevector <4 x float> %277, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%285 = extractelement <4 x float> %276, i64 3
%286 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.5, align 8, !tbaa !13
%287 = extractelement <2 x float> %286, i64 0
%288 = extractelement <2 x float> %286, i64 1
%mul160.5 = fmul fast float %288, %48
%289 = fcmp ogt float %283, 0x3E99A2B5C0000000
%290 = select i1 %289, float %283, float 0x3E99A2B5C0000000
%291 = tail call float @llvm.sqrt.f32(float %290) #10
%div163.5 = fdiv fast float 1.000000e+00, %291, !fpmath !33
%mul164.5 = fmul fast float %div163.5, %div163.5
%292 = fmul fast float %mul164.5, %mul164.5
%mul166.5 = fmul fast float %292, %cond.5
%mul167.5 = fmul fast float %mul166.5, %mul164.5
%293 = fmul fast float %47, %287
%neg.5 = fsub fast float -0.000000e+00, %293
%294 = tail call fast float @llvm.fmuladd.f32(float %mul160.5, float %mul167.5, float %neg.5)
%mul169.5 = fmul fast float %mul167.5, %mul164.5
%mul170.5 = fmul fast float %mul169.5, %294
%mul171.5 = fmul fast float %285, %45
%mul172.5 = fmul fast float %mul164.5, %cond.5
%mul174.5 = fmul fast float %290, %mul
%mul.i.5 = fmul fast float %mul174.5, %mul174.5
%295 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%296 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%297 = tail call fast float @llvm.fmuladd.f32(float %295, float %mul.i.5, float 1.000000e+00) #9
%298 = tail call fast float @llvm.fmuladd.f32(float %296, float %mul174.5, float %297) #9
%div.i.5 = fdiv fast float 1.000000e+00, %298, !fpmath !33
%299 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%300 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%301 = tail call fast float @llvm.fmuladd.f32(float %299, float %mul.i.5, float 0xBF93BDB200000000) #9
%302 = tail call fast float @llvm.fmuladd.f32(float %300, float %mul.i.5, float 0x3FB1D5E760000000) #9
%303 = tail call fast float @llvm.fmuladd.f32(float %301, float %mul.i.5, float 0xBFE81272E0000000) #9
%304 = tail call fast float @llvm.fmuladd.f32(float %302, float %mul174.5, float %303) #9
%mul7.5 = fmul fast float %mul11.i, %div.i.5
%mul176.5 = fmul fast float %mul7.5, %304
%305 = tail call fast float @llvm.fmuladd.f32(float %mul172.5, float %div163.5, float %mul176.5)
%306 = tail call fast float @llvm.fmuladd.f32(float %mul171.5, float %305, float %mul170.5)
%splat.splatinsert.5 = insertelement <3 x float> undef, float %306, i32 0
%splat.splat.5 = shufflevector <3 x float> %splat.splatinsert.5, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.5 = fmul fast <3 x float> %splat.splat.5, %extractVec140.5
%extractVec189.5 = shufflevector <4 x float> %fcj_buf.sroa.0.1.4, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.5 = fsub fast <3 x float> %extractVec189.5, %mul181.5
%extractVec191.5 = shufflevector <3 x float> %sub190.5, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.5 = shufflevector <4 x float> %loadVec4199.5, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.5 = fadd fast <3 x float> %mul181.5, %extractVec200.5
%extractVec202.5 = shufflevector <3 x float> %add201.5, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %307
; <label>:307: ; preds = %284, %275, %273
%extractVec202.5.3732 = phi <4 x float> [ %extractVec202.5, %284 ], [ %extractVec202.5.3727, %275 ], [ %extractVec202.5.3727, %273 ]
%308 = phi <3 x float> [ %add201.5, %284 ], [ %30, %275 ], [ %30, %273 ]
%loadVec4199.5647 = phi <4 x float> [ %extractVec202.5, %284 ], [ %loadVec4199.5, %275 ], [ %loadVec4199.5, %273 ]
%fcj_buf.sroa.0.1.5 = phi <4 x float> [ %extractVec191.5, %284 ], [ %fcj_buf.sroa.0.1.4, %275 ], [ %fcj_buf.sroa.0.1.4, %273 ]
%and120.6 = and i32 %37, 64
%tobool121.6 = icmp eq i32 %and120.6, 0
br i1 %tobool121.6, label %341, label %309
; <label>:309: ; preds = %307
%310 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.6, align 16, !tbaa !13
%311 = fsub fast <4 x float> %310, %44
%312 = extractelement <4 x float> %311, i32 0
%313 = extractelement <4 x float> %311, i32 1
%314 = fmul float %313, %313
%315 = tail call float @llvm.fmuladd.f32(float %312, float %312, float %314) #9
%316 = extractelement <4 x float> %311, i32 2
%317 = tail call float @llvm.fmuladd.f32(float %316, float %316, float %315) #9
%and142.6 = and i32 %38, 64
%tobool143.6 = icmp ne i32 %and142.6, 0
%cond.6 = select i1 %tobool143.6, float 1.000000e+00, float 0.000000e+00
%notrhs.6 = icmp ne i32 %add123.6, %43
%not.or.cond.6 = or i1 %notlhs, %notrhs.6
%cmp149..6 = or i1 %cmp149, %not.or.cond.6
%conv151.6 = uitofp i1 %cmp149..6 to float
%mul152.6 = fmul fast float %conv151.6, %nbparam_params.coerce.fca.9.extract
%cmp153.6 = fcmp fast olt float %317, %mul152.6
br i1 %cmp153.6, label %318, label %341
; <label>:318: ; preds = %309
%extractVec140.6 = shufflevector <4 x float> %311, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%319 = extractelement <4 x float> %310, i64 3
%320 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.6, align 8, !tbaa !13
%321 = extractelement <2 x float> %320, i64 0
%322 = extractelement <2 x float> %320, i64 1
%mul160.6 = fmul fast float %322, %48
%323 = fcmp ogt float %317, 0x3E99A2B5C0000000
%324 = select i1 %323, float %317, float 0x3E99A2B5C0000000
%325 = tail call float @llvm.sqrt.f32(float %324) #10
%div163.6 = fdiv fast float 1.000000e+00, %325, !fpmath !33
%mul164.6 = fmul fast float %div163.6, %div163.6
%326 = fmul fast float %mul164.6, %mul164.6
%mul166.6 = fmul fast float %326, %cond.6
%mul167.6 = fmul fast float %mul166.6, %mul164.6
%327 = fmul fast float %47, %321
%neg.6 = fsub fast float -0.000000e+00, %327
%328 = tail call fast float @llvm.fmuladd.f32(float %mul160.6, float %mul167.6, float %neg.6)
%mul169.6 = fmul fast float %mul167.6, %mul164.6
%mul170.6 = fmul fast float %mul169.6, %328
%mul171.6 = fmul fast float %319, %45
%mul172.6 = fmul fast float %mul164.6, %cond.6
%mul174.6 = fmul fast float %324, %mul
%mul.i.6 = fmul fast float %mul174.6, %mul174.6
%329 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%330 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%331 = tail call fast float @llvm.fmuladd.f32(float %329, float %mul.i.6, float 1.000000e+00) #9
%332 = tail call fast float @llvm.fmuladd.f32(float %330, float %mul174.6, float %331) #9
%div.i.6 = fdiv fast float 1.000000e+00, %332, !fpmath !33
%333 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%334 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%335 = tail call fast float @llvm.fmuladd.f32(float %333, float %mul.i.6, float 0xBF93BDB200000000) #9
%336 = tail call fast float @llvm.fmuladd.f32(float %334, float %mul.i.6, float 0x3FB1D5E760000000) #9
%337 = tail call fast float @llvm.fmuladd.f32(float %335, float %mul.i.6, float 0xBFE81272E0000000) #9
%338 = tail call fast float @llvm.fmuladd.f32(float %336, float %mul174.6, float %337) #9
%mul7.6 = fmul fast float %mul11.i, %div.i.6
%mul176.6 = fmul fast float %mul7.6, %338
%339 = tail call fast float @llvm.fmuladd.f32(float %mul172.6, float %div163.6, float %mul176.6)
%340 = tail call fast float @llvm.fmuladd.f32(float %mul171.6, float %339, float %mul170.6)
%splat.splatinsert.6 = insertelement <3 x float> undef, float %340, i32 0
%splat.splat.6 = shufflevector <3 x float> %splat.splatinsert.6, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.6 = fmul fast <3 x float> %splat.splat.6, %extractVec140.6
%extractVec189.6 = shufflevector <4 x float> %fcj_buf.sroa.0.1.5, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.6 = fsub fast <3 x float> %extractVec189.6, %mul181.6
%extractVec191.6 = shufflevector <3 x float> %sub190.6, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.6 = shufflevector <4 x float> %loadVec4199.6, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.6 = fadd fast <3 x float> %mul181.6, %extractVec200.6
%extractVec202.6 = shufflevector <3 x float> %add201.6, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %341
; <label>:341: ; preds = %318, %309, %307
%extractVec202.6.3741 = phi <4 x float> [ %extractVec202.6, %318 ], [ %extractVec202.6.3736, %309 ], [ %extractVec202.6.3736, %307 ]
%342 = phi <3 x float> [ %add201.6, %318 ], [ %29, %309 ], [ %29, %307 ]
%loadVec4199.6657 = phi <4 x float> [ %extractVec202.6, %318 ], [ %loadVec4199.6, %309 ], [ %loadVec4199.6, %307 ]
%fcj_buf.sroa.0.1.6 = phi <4 x float> [ %extractVec191.6, %318 ], [ %fcj_buf.sroa.0.1.5, %309 ], [ %fcj_buf.sroa.0.1.5, %307 ]
%and120.7 = and i32 %37, 128
%tobool121.7 = icmp eq i32 %and120.7, 0
br i1 %tobool121.7, label %375, label %343
; <label>:343: ; preds = %341
%344 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.7, align 16, !tbaa !13
%345 = fsub fast <4 x float> %344, %44
%346 = extractelement <4 x float> %345, i32 0
%347 = extractelement <4 x float> %345, i32 1
%348 = fmul float %347, %347
%349 = tail call float @llvm.fmuladd.f32(float %346, float %346, float %348) #9
%350 = extractelement <4 x float> %345, i32 2
%351 = tail call float @llvm.fmuladd.f32(float %350, float %350, float %349) #9
%and142.7 = and i32 %38, 128
%tobool143.7 = icmp ne i32 %and142.7, 0
%cond.7 = select i1 %tobool143.7, float 1.000000e+00, float 0.000000e+00
%notrhs.7 = icmp ne i32 %add123.7, %43
%not.or.cond.7 = or i1 %notlhs, %notrhs.7
%cmp149..7 = or i1 %cmp149, %not.or.cond.7
%conv151.7 = uitofp i1 %cmp149..7 to float
%mul152.7 = fmul fast float %conv151.7, %nbparam_params.coerce.fca.9.extract
%cmp153.7 = fcmp fast olt float %351, %mul152.7
br i1 %cmp153.7, label %352, label %375
; <label>:352: ; preds = %343
%extractVec140.7 = shufflevector <4 x float> %345, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%353 = extractelement <4 x float> %344, i64 3
%354 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.7, align 8, !tbaa !13
%355 = extractelement <2 x float> %354, i64 0
%356 = extractelement <2 x float> %354, i64 1
%mul160.7 = fmul fast float %356, %48
%357 = fcmp ogt float %351, 0x3E99A2B5C0000000
%358 = select i1 %357, float %351, float 0x3E99A2B5C0000000
%359 = tail call float @llvm.sqrt.f32(float %358) #10
%div163.7 = fdiv fast float 1.000000e+00, %359, !fpmath !33
%mul164.7 = fmul fast float %div163.7, %div163.7
%360 = fmul fast float %mul164.7, %mul164.7
%mul166.7 = fmul fast float %360, %cond.7
%mul167.7 = fmul fast float %mul166.7, %mul164.7
%361 = fmul fast float %47, %355
%neg.7 = fsub fast float -0.000000e+00, %361
%362 = tail call fast float @llvm.fmuladd.f32(float %mul160.7, float %mul167.7, float %neg.7)
%mul169.7 = fmul fast float %mul167.7, %mul164.7
%mul170.7 = fmul fast float %mul169.7, %362
%mul171.7 = fmul fast float %353, %45
%mul172.7 = fmul fast float %mul164.7, %cond.7
%mul174.7 = fmul fast float %358, %mul
%mul.i.7 = fmul fast float %mul174.7, %mul174.7
%363 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%364 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%365 = tail call fast float @llvm.fmuladd.f32(float %363, float %mul.i.7, float 1.000000e+00) #9
%366 = tail call fast float @llvm.fmuladd.f32(float %364, float %mul174.7, float %365) #9
%div.i.7 = fdiv fast float 1.000000e+00, %366, !fpmath !33
%367 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%368 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%369 = tail call fast float @llvm.fmuladd.f32(float %367, float %mul.i.7, float 0xBF93BDB200000000) #9
%370 = tail call fast float @llvm.fmuladd.f32(float %368, float %mul.i.7, float 0x3FB1D5E760000000) #9
%371 = tail call fast float @llvm.fmuladd.f32(float %369, float %mul.i.7, float 0xBFE81272E0000000) #9
%372 = tail call fast float @llvm.fmuladd.f32(float %370, float %mul174.7, float %371) #9
%mul7.7 = fmul fast float %mul11.i, %div.i.7
%mul176.7 = fmul fast float %mul7.7, %372
%373 = tail call fast float @llvm.fmuladd.f32(float %mul172.7, float %div163.7, float %mul176.7)
%374 = tail call fast float @llvm.fmuladd.f32(float %mul171.7, float %373, float %mul170.7)
%splat.splatinsert.7 = insertelement <3 x float> undef, float %374, i32 0
%splat.splat.7 = shufflevector <3 x float> %splat.splatinsert.7, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.7 = fmul fast <3 x float> %splat.splat.7, %extractVec140.7
%extractVec189.7 = shufflevector <4 x float> %fcj_buf.sroa.0.1.6, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.7 = fsub fast <3 x float> %extractVec189.7, %mul181.7
%extractVec191.7 = shufflevector <3 x float> %sub190.7, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.7 = shufflevector <4 x float> %loadVec4199.7, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.7 = fadd fast <3 x float> %mul181.7, %extractVec200.7
%extractVec202.7 = shufflevector <3 x float> %add201.7, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %375
; <label>:375: ; preds = %352, %343, %341
%extractVec202.7.3750 = phi <4 x float> [ %extractVec202.7, %352 ], [ %extractVec202.7.3745, %343 ], [ %extractVec202.7.3745, %341 ]
%loadVec4199.7667 = phi <4 x float> [ %extractVec202.7, %352 ], [ %loadVec4199.7, %343 ], [ %loadVec4199.7, %341 ]
%fcj_buf.sroa.0.1.7 = phi <4 x float> [ %extractVec191.7, %352 ], [ %fcj_buf.sroa.0.1.6, %343 ], [ %fcj_buf.sroa.0.1.6, %341 ]
%376 = extractelement <4 x float> %fcj_buf.sroa.0.1.7, i32 0
store float %376, float addrspace(3)* %arrayidx207, align 4, !tbaa !17
%377 = extractelement <4 x float> %fcj_buf.sroa.0.1.7, i32 1
store float %377, float addrspace(3)* %arrayidx210, align 4, !tbaa !17
%378 = extractelement <4 x float> %fcj_buf.sroa.0.1.7, i32 2
store float %378, float addrspace(3)* %arrayidx213, align 4, !tbaa !17
tail call void @reduce_force_j_generic(float addrspace(3)* %11, float addrspace(1)* %f, i32 %1, i32 %3, i32 %add111)
br label %.preheader.1582
; <label>:379: ; preds = %.preheader.1582
%380 = load i32, i32 addrspace(3)* %arrayidx109.1, align 4, !tbaa !9
%mul110.1 = shl nsw i32 %380, 3
%add111.1 = add i32 %mul110.1, %3
%idxprom112.1 = sext i32 %add111.1 to i64
%arrayidx113.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom112.1
%381 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx113.1, align 16, !tbaa !13
%382 = extractelement <4 x float> %381, i64 3
%arrayidx116.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom112.1
%383 = load <2 x float>, <2 x float> addrspace(1)* %arrayidx116.1, align 8, !tbaa !13
%384 = extractelement <2 x float> %383, i64 0
%385 = extractelement <2 x float> %383, i64 1
%and120.1456 = and i32 %37, 256
%tobool121.1457 = icmp eq i32 %and120.1456, 0
br i1 %tobool121.1457, label %418, label %386
; <label>:386: ; preds = %379
%387 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.1458, align 16, !tbaa !13
%388 = fsub fast <4 x float> %387, %381
%389 = extractelement <4 x float> %388, i32 0
%390 = extractelement <4 x float> %388, i32 1
%391 = fmul float %390, %390
%392 = tail call float @llvm.fmuladd.f32(float %389, float %389, float %391) #9
%393 = extractelement <4 x float> %388, i32 2
%394 = tail call float @llvm.fmuladd.f32(float %393, float %393, float %392) #9
%and142.1459 = and i32 %38, 256
%tobool143.1460 = icmp ne i32 %and142.1459, 0
%cond.1461 = select i1 %tobool143.1460, float 1.000000e+00, float 0.000000e+00
%notrhs.1462 = icmp ne i32 %mul21, %380
%not.or.cond.1463 = or i1 %notlhs, %notrhs.1462
%cmp149..1464 = or i1 %cmp149, %not.or.cond.1463
%conv151.1465 = uitofp i1 %cmp149..1464 to float
%mul152.1466 = fmul fast float %conv151.1465, %nbparam_params.coerce.fca.9.extract
%cmp153.1467 = fcmp fast olt float %394, %mul152.1466
br i1 %cmp153.1467, label %395, label %418
; <label>:395: ; preds = %386
%extractVec140.1468 = shufflevector <4 x float> %388, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%396 = extractelement <4 x float> %387, i64 3
%397 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.1469, align 8, !tbaa !13
%398 = extractelement <2 x float> %397, i64 0
%399 = extractelement <2 x float> %397, i64 1
%mul160.1470 = fmul fast float %399, %385
%400 = fcmp ogt float %394, 0x3E99A2B5C0000000
%401 = select i1 %400, float %394, float 0x3E99A2B5C0000000
%402 = tail call float @llvm.sqrt.f32(float %401) #10
%div163.1471 = fdiv fast float 1.000000e+00, %402, !fpmath !33
%mul164.1472 = fmul fast float %div163.1471, %div163.1471
%403 = fmul fast float %mul164.1472, %mul164.1472
%mul166.1473 = fmul fast float %403, %cond.1461
%mul167.1474 = fmul fast float %mul166.1473, %mul164.1472
%404 = fmul fast float %384, %398
%neg.1475 = fsub fast float -0.000000e+00, %404
%405 = tail call fast float @llvm.fmuladd.f32(float %mul160.1470, float %mul167.1474, float %neg.1475)
%mul169.1476 = fmul fast float %mul167.1474, %mul164.1472
%mul170.1477 = fmul fast float %mul169.1476, %405
%mul171.1478 = fmul fast float %396, %382
%mul172.1479 = fmul fast float %mul164.1472, %cond.1461
%mul174.1480 = fmul fast float %401, %mul
%mul.i.1481 = fmul fast float %mul174.1480, %mul174.1480
%406 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1481, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%407 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1481, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%408 = tail call fast float @llvm.fmuladd.f32(float %406, float %mul.i.1481, float 1.000000e+00) #9
%409 = tail call fast float @llvm.fmuladd.f32(float %407, float %mul174.1480, float %408) #9
%div.i.1482 = fdiv fast float 1.000000e+00, %409, !fpmath !33
%410 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1481, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%411 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1481, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%412 = tail call fast float @llvm.fmuladd.f32(float %410, float %mul.i.1481, float 0xBF93BDB200000000) #9
%413 = tail call fast float @llvm.fmuladd.f32(float %411, float %mul.i.1481, float 0x3FB1D5E760000000) #9
%414 = tail call fast float @llvm.fmuladd.f32(float %412, float %mul.i.1481, float 0xBFE81272E0000000) #9
%415 = tail call fast float @llvm.fmuladd.f32(float %413, float %mul174.1480, float %414) #9
%mul7.1483 = fmul fast float %mul11.i, %div.i.1482
%mul176.1484 = fmul fast float %mul7.1483, %415
%416 = tail call fast float @llvm.fmuladd.f32(float %mul172.1479, float %div163.1471, float %mul176.1484)
%417 = tail call fast float @llvm.fmuladd.f32(float %mul171.1478, float %416, float %mul170.1477)
%splat.splatinsert.1485 = insertelement <3 x float> undef, float %417, i32 0
%splat.splat.1486 = shufflevector <3 x float> %splat.splatinsert.1485, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.1487 = fmul fast <3 x float> %splat.splat.1486, %extractVec140.1468
%sub190.1488 = fsub fast <3 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %mul181.1487
%extractVec191.1489 = shufflevector <3 x float> %sub190.1488, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.1493 = shufflevector <4 x float> %loadVec4199.1492, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.1494 = fadd fast <3 x float> %mul181.1487, %extractVec200.1493
%extractVec202.1495 = shufflevector <3 x float> %add201.1494, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %418
; <label>:418: ; preds = %395, %386, %379
%extractVec202.3579679 = phi <4 x float> [ %extractVec202.1495, %395 ], [ %extractVec202.3579686, %386 ], [ %extractVec202.3579686, %379 ]
%419 = phi <3 x float> [ %add201.1494, %395 ], [ %89, %386 ], [ %89, %379 ]
%loadVec4199588 = phi <4 x float> [ %extractVec202.1495, %395 ], [ %loadVec4199.1492, %386 ], [ %loadVec4199.1492, %379 ]
%fcj_buf.sroa.0.1.1496 = phi <4 x float> [ %extractVec191.1489, %395 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %386 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %379 ]
%and120.1.1 = and i32 %37, 512
%tobool121.1.1 = icmp eq i32 %and120.1.1, 0
br i1 %tobool121.1.1, label %452, label %420
; <label>:420: ; preds = %418
%421 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.1.1, align 16, !tbaa !13
%422 = fsub fast <4 x float> %421, %381
%423 = extractelement <4 x float> %422, i32 0
%424 = extractelement <4 x float> %422, i32 1
%425 = fmul float %424, %424
%426 = tail call float @llvm.fmuladd.f32(float %423, float %423, float %425) #9
%427 = extractelement <4 x float> %422, i32 2
%428 = tail call float @llvm.fmuladd.f32(float %427, float %427, float %426) #9
%and142.1.1 = and i32 %38, 512
%tobool143.1.1 = icmp ne i32 %and142.1.1, 0
%cond.1.1 = select i1 %tobool143.1.1, float 1.000000e+00, float 0.000000e+00
%notrhs.1.1 = icmp ne i32 %add123.1.1, %380
%not.or.cond.1.1 = or i1 %notlhs, %notrhs.1.1
%cmp149..1.1 = or i1 %cmp149, %not.or.cond.1.1
%conv151.1.1 = uitofp i1 %cmp149..1.1 to float
%mul152.1.1 = fmul fast float %conv151.1.1, %nbparam_params.coerce.fca.9.extract
%cmp153.1.1 = fcmp fast olt float %428, %mul152.1.1
br i1 %cmp153.1.1, label %429, label %452
; <label>:429: ; preds = %420
%extractVec140.1.1 = shufflevector <4 x float> %422, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%430 = extractelement <4 x float> %421, i64 3
%431 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.1.1, align 8, !tbaa !13
%432 = extractelement <2 x float> %431, i64 0
%433 = extractelement <2 x float> %431, i64 1
%mul160.1.1 = fmul fast float %433, %385
%434 = fcmp ogt float %428, 0x3E99A2B5C0000000
%435 = select i1 %434, float %428, float 0x3E99A2B5C0000000
%436 = tail call float @llvm.sqrt.f32(float %435) #10
%div163.1.1 = fdiv fast float 1.000000e+00, %436, !fpmath !33
%mul164.1.1 = fmul fast float %div163.1.1, %div163.1.1
%437 = fmul fast float %mul164.1.1, %mul164.1.1
%mul166.1.1 = fmul fast float %437, %cond.1.1
%mul167.1.1 = fmul fast float %mul166.1.1, %mul164.1.1
%438 = fmul fast float %384, %432
%neg.1.1 = fsub fast float -0.000000e+00, %438
%439 = tail call fast float @llvm.fmuladd.f32(float %mul160.1.1, float %mul167.1.1, float %neg.1.1)
%mul169.1.1 = fmul fast float %mul167.1.1, %mul164.1.1
%mul170.1.1 = fmul fast float %mul169.1.1, %439
%mul171.1.1 = fmul fast float %430, %382
%mul172.1.1 = fmul fast float %mul164.1.1, %cond.1.1
%mul174.1.1 = fmul fast float %435, %mul
%mul.i.1.1 = fmul fast float %mul174.1.1, %mul174.1.1
%440 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%441 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%442 = tail call fast float @llvm.fmuladd.f32(float %440, float %mul.i.1.1, float 1.000000e+00) #9
%443 = tail call fast float @llvm.fmuladd.f32(float %441, float %mul174.1.1, float %442) #9
%div.i.1.1 = fdiv fast float 1.000000e+00, %443, !fpmath !33
%444 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%445 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%446 = tail call fast float @llvm.fmuladd.f32(float %444, float %mul.i.1.1, float 0xBF93BDB200000000) #9
%447 = tail call fast float @llvm.fmuladd.f32(float %445, float %mul.i.1.1, float 0x3FB1D5E760000000) #9
%448 = tail call fast float @llvm.fmuladd.f32(float %446, float %mul.i.1.1, float 0xBFE81272E0000000) #9
%449 = tail call fast float @llvm.fmuladd.f32(float %447, float %mul174.1.1, float %448) #9
%mul7.1.1 = fmul fast float %mul11.i, %div.i.1.1
%mul176.1.1 = fmul fast float %mul7.1.1, %449
%450 = tail call fast float @llvm.fmuladd.f32(float %mul172.1.1, float %div163.1.1, float %mul176.1.1)
%451 = tail call fast float @llvm.fmuladd.f32(float %mul171.1.1, float %450, float %mul170.1.1)
%splat.splatinsert.1.1 = insertelement <3 x float> undef, float %451, i32 0
%splat.splat.1.1 = shufflevector <3 x float> %splat.splatinsert.1.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.1.1 = fmul fast <3 x float> %splat.splat.1.1, %extractVec140.1.1
%extractVec189.1.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1496, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.1.1 = fsub fast <3 x float> %extractVec189.1.1, %mul181.1.1
%extractVec191.1.1 = shufflevector <3 x float> %sub190.1.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.1.1 = shufflevector <4 x float> %loadVec4199.1.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.1.1 = fadd fast <3 x float> %mul181.1.1, %extractVec200.1.1
%extractVec202.1.1 = shufflevector <3 x float> %add201.1.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %452
; <label>:452: ; preds = %429, %420, %418
%extractVec202.1.3688 = phi <4 x float> [ %extractVec202.1.1, %429 ], [ %extractVec202.1.3695, %420 ], [ %extractVec202.1.3695, %418 ]
%453 = phi <3 x float> [ %add201.1.1, %429 ], [ %88, %420 ], [ %88, %418 ]
%loadVec4199.1598 = phi <4 x float> [ %extractVec202.1.1, %429 ], [ %loadVec4199.1.1, %420 ], [ %loadVec4199.1.1, %418 ]
%fcj_buf.sroa.0.1.1.1 = phi <4 x float> [ %extractVec191.1.1, %429 ], [ %fcj_buf.sroa.0.1.1496, %420 ], [ %fcj_buf.sroa.0.1.1496, %418 ]
%and120.2.1 = and i32 %37, 1024
%tobool121.2.1 = icmp eq i32 %and120.2.1, 0
br i1 %tobool121.2.1, label %486, label %454
; <label>:454: ; preds = %452
%455 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.2.1, align 16, !tbaa !13
%456 = fsub fast <4 x float> %455, %381
%457 = extractelement <4 x float> %456, i32 0
%458 = extractelement <4 x float> %456, i32 1
%459 = fmul float %458, %458
%460 = tail call float @llvm.fmuladd.f32(float %457, float %457, float %459) #9
%461 = extractelement <4 x float> %456, i32 2
%462 = tail call float @llvm.fmuladd.f32(float %461, float %461, float %460) #9
%and142.2.1 = and i32 %38, 1024
%tobool143.2.1 = icmp ne i32 %and142.2.1, 0
%cond.2.1 = select i1 %tobool143.2.1, float 1.000000e+00, float 0.000000e+00
%notrhs.2.1 = icmp ne i32 %add123.2.1, %380
%not.or.cond.2.1 = or i1 %notlhs, %notrhs.2.1
%cmp149..2.1 = or i1 %cmp149, %not.or.cond.2.1
%conv151.2.1 = uitofp i1 %cmp149..2.1 to float
%mul152.2.1 = fmul fast float %conv151.2.1, %nbparam_params.coerce.fca.9.extract
%cmp153.2.1 = fcmp fast olt float %462, %mul152.2.1
br i1 %cmp153.2.1, label %463, label %486
; <label>:463: ; preds = %454
%extractVec140.2.1 = shufflevector <4 x float> %456, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%464 = extractelement <4 x float> %455, i64 3
%465 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.2.1, align 8, !tbaa !13
%466 = extractelement <2 x float> %465, i64 0
%467 = extractelement <2 x float> %465, i64 1
%mul160.2.1 = fmul fast float %467, %385
%468 = fcmp ogt float %462, 0x3E99A2B5C0000000
%469 = select i1 %468, float %462, float 0x3E99A2B5C0000000
%470 = tail call float @llvm.sqrt.f32(float %469) #10
%div163.2.1 = fdiv fast float 1.000000e+00, %470, !fpmath !33
%mul164.2.1 = fmul fast float %div163.2.1, %div163.2.1
%471 = fmul fast float %mul164.2.1, %mul164.2.1
%mul166.2.1 = fmul fast float %471, %cond.2.1
%mul167.2.1 = fmul fast float %mul166.2.1, %mul164.2.1
%472 = fmul fast float %384, %466
%neg.2.1 = fsub fast float -0.000000e+00, %472
%473 = tail call fast float @llvm.fmuladd.f32(float %mul160.2.1, float %mul167.2.1, float %neg.2.1)
%mul169.2.1 = fmul fast float %mul167.2.1, %mul164.2.1
%mul170.2.1 = fmul fast float %mul169.2.1, %473
%mul171.2.1 = fmul fast float %464, %382
%mul172.2.1 = fmul fast float %mul164.2.1, %cond.2.1
%mul174.2.1 = fmul fast float %469, %mul
%mul.i.2.1 = fmul fast float %mul174.2.1, %mul174.2.1
%474 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%475 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%476 = tail call fast float @llvm.fmuladd.f32(float %474, float %mul.i.2.1, float 1.000000e+00) #9
%477 = tail call fast float @llvm.fmuladd.f32(float %475, float %mul174.2.1, float %476) #9
%div.i.2.1 = fdiv fast float 1.000000e+00, %477, !fpmath !33
%478 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%479 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%480 = tail call fast float @llvm.fmuladd.f32(float %478, float %mul.i.2.1, float 0xBF93BDB200000000) #9
%481 = tail call fast float @llvm.fmuladd.f32(float %479, float %mul.i.2.1, float 0x3FB1D5E760000000) #9
%482 = tail call fast float @llvm.fmuladd.f32(float %480, float %mul.i.2.1, float 0xBFE81272E0000000) #9
%483 = tail call fast float @llvm.fmuladd.f32(float %481, float %mul174.2.1, float %482) #9
%mul7.2.1 = fmul fast float %mul11.i, %div.i.2.1
%mul176.2.1 = fmul fast float %mul7.2.1, %483
%484 = tail call fast float @llvm.fmuladd.f32(float %mul172.2.1, float %div163.2.1, float %mul176.2.1)
%485 = tail call fast float @llvm.fmuladd.f32(float %mul171.2.1, float %484, float %mul170.2.1)
%splat.splatinsert.2.1 = insertelement <3 x float> undef, float %485, i32 0
%splat.splat.2.1 = shufflevector <3 x float> %splat.splatinsert.2.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.2.1 = fmul fast <3 x float> %splat.splat.2.1, %extractVec140.2.1
%extractVec189.2.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.2.1 = fsub fast <3 x float> %extractVec189.2.1, %mul181.2.1
%extractVec191.2.1 = shufflevector <3 x float> %sub190.2.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.2.1 = shufflevector <4 x float> %loadVec4199.2.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.2.1 = fadd fast <3 x float> %mul181.2.1, %extractVec200.2.1
%extractVec202.2.1 = shufflevector <3 x float> %add201.2.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %486
; <label>:486: ; preds = %463, %454, %452
%extractVec202.2.3697 = phi <4 x float> [ %extractVec202.2.1, %463 ], [ %extractVec202.2.3704, %454 ], [ %extractVec202.2.3704, %452 ]
%487 = phi <3 x float> [ %add201.2.1, %463 ], [ %87, %454 ], [ %87, %452 ]
%loadVec4199.2608 = phi <4 x float> [ %extractVec202.2.1, %463 ], [ %loadVec4199.2.1, %454 ], [ %loadVec4199.2.1, %452 ]
%fcj_buf.sroa.0.1.2.1 = phi <4 x float> [ %extractVec191.2.1, %463 ], [ %fcj_buf.sroa.0.1.1.1, %454 ], [ %fcj_buf.sroa.0.1.1.1, %452 ]
%and120.3.1 = and i32 %37, 2048
%tobool121.3.1 = icmp eq i32 %and120.3.1, 0
br i1 %tobool121.3.1, label %520, label %488
; <label>:488: ; preds = %486
%489 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.3.1, align 16, !tbaa !13
%490 = fsub fast <4 x float> %489, %381
%491 = extractelement <4 x float> %490, i32 0
%492 = extractelement <4 x float> %490, i32 1
%493 = fmul float %492, %492
%494 = tail call float @llvm.fmuladd.f32(float %491, float %491, float %493) #9
%495 = extractelement <4 x float> %490, i32 2
%496 = tail call float @llvm.fmuladd.f32(float %495, float %495, float %494) #9
%and142.3.1 = and i32 %38, 2048
%tobool143.3.1 = icmp ne i32 %and142.3.1, 0
%cond.3.1 = select i1 %tobool143.3.1, float 1.000000e+00, float 0.000000e+00
%notrhs.3.1 = icmp ne i32 %add123.3.1, %380
%not.or.cond.3.1 = or i1 %notlhs, %notrhs.3.1
%cmp149..3.1 = or i1 %cmp149, %not.or.cond.3.1
%conv151.3.1 = uitofp i1 %cmp149..3.1 to float
%mul152.3.1 = fmul fast float %conv151.3.1, %nbparam_params.coerce.fca.9.extract
%cmp153.3.1 = fcmp fast olt float %496, %mul152.3.1
br i1 %cmp153.3.1, label %497, label %520
; <label>:497: ; preds = %488
%extractVec140.3.1 = shufflevector <4 x float> %490, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%498 = extractelement <4 x float> %489, i64 3
%499 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.3.1, align 8, !tbaa !13
%500 = extractelement <2 x float> %499, i64 0
%501 = extractelement <2 x float> %499, i64 1
%mul160.3.1 = fmul fast float %501, %385
%502 = fcmp ogt float %496, 0x3E99A2B5C0000000
%503 = select i1 %502, float %496, float 0x3E99A2B5C0000000
%504 = tail call float @llvm.sqrt.f32(float %503) #10
%div163.3.1 = fdiv fast float 1.000000e+00, %504, !fpmath !33
%mul164.3.1 = fmul fast float %div163.3.1, %div163.3.1
%505 = fmul fast float %mul164.3.1, %mul164.3.1
%mul166.3.1 = fmul fast float %505, %cond.3.1
%mul167.3.1 = fmul fast float %mul166.3.1, %mul164.3.1
%506 = fmul fast float %384, %500
%neg.3.1 = fsub fast float -0.000000e+00, %506
%507 = tail call fast float @llvm.fmuladd.f32(float %mul160.3.1, float %mul167.3.1, float %neg.3.1)
%mul169.3.1 = fmul fast float %mul167.3.1, %mul164.3.1
%mul170.3.1 = fmul fast float %mul169.3.1, %507
%mul171.3.1 = fmul fast float %498, %382
%mul172.3.1 = fmul fast float %mul164.3.1, %cond.3.1
%mul174.3.1 = fmul fast float %503, %mul
%mul.i.3.1 = fmul fast float %mul174.3.1, %mul174.3.1
%508 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%509 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%510 = tail call fast float @llvm.fmuladd.f32(float %508, float %mul.i.3.1, float 1.000000e+00) #9
%511 = tail call fast float @llvm.fmuladd.f32(float %509, float %mul174.3.1, float %510) #9
%div.i.3.1 = fdiv fast float 1.000000e+00, %511, !fpmath !33
%512 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%513 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%514 = tail call fast float @llvm.fmuladd.f32(float %512, float %mul.i.3.1, float 0xBF93BDB200000000) #9
%515 = tail call fast float @llvm.fmuladd.f32(float %513, float %mul.i.3.1, float 0x3FB1D5E760000000) #9
%516 = tail call fast float @llvm.fmuladd.f32(float %514, float %mul.i.3.1, float 0xBFE81272E0000000) #9
%517 = tail call fast float @llvm.fmuladd.f32(float %515, float %mul174.3.1, float %516) #9
%mul7.3.1 = fmul fast float %mul11.i, %div.i.3.1
%mul176.3.1 = fmul fast float %mul7.3.1, %517
%518 = tail call fast float @llvm.fmuladd.f32(float %mul172.3.1, float %div163.3.1, float %mul176.3.1)
%519 = tail call fast float @llvm.fmuladd.f32(float %mul171.3.1, float %518, float %mul170.3.1)
%splat.splatinsert.3.1 = insertelement <3 x float> undef, float %519, i32 0
%splat.splat.3.1 = shufflevector <3 x float> %splat.splatinsert.3.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.3.1 = fmul fast <3 x float> %splat.splat.3.1, %extractVec140.3.1
%extractVec189.3.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.3.1 = fsub fast <3 x float> %extractVec189.3.1, %mul181.3.1
%extractVec191.3.1 = shufflevector <3 x float> %sub190.3.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.3.1 = shufflevector <4 x float> %loadVec4199.3.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.3.1 = fadd fast <3 x float> %mul181.3.1, %extractVec200.3.1
%extractVec202.3.1 = shufflevector <3 x float> %add201.3.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %520
; <label>:520: ; preds = %497, %488, %486
%extractVec202.3.3706 = phi <4 x float> [ %extractVec202.3.1, %497 ], [ %extractVec202.3.3713, %488 ], [ %extractVec202.3.3713, %486 ]
%521 = phi <3 x float> [ %add201.3.1, %497 ], [ %86, %488 ], [ %86, %486 ]
%loadVec4199.3618 = phi <4 x float> [ %extractVec202.3.1, %497 ], [ %loadVec4199.3.1, %488 ], [ %loadVec4199.3.1, %486 ]
%fcj_buf.sroa.0.1.3.1 = phi <4 x float> [ %extractVec191.3.1, %497 ], [ %fcj_buf.sroa.0.1.2.1, %488 ], [ %fcj_buf.sroa.0.1.2.1, %486 ]
%and120.4.1 = and i32 %37, 4096
%tobool121.4.1 = icmp eq i32 %and120.4.1, 0
br i1 %tobool121.4.1, label %554, label %522
; <label>:522: ; preds = %520
%523 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.4.1, align 16, !tbaa !13
%524 = fsub fast <4 x float> %523, %381
%525 = extractelement <4 x float> %524, i32 0
%526 = extractelement <4 x float> %524, i32 1
%527 = fmul float %526, %526
%528 = tail call float @llvm.fmuladd.f32(float %525, float %525, float %527) #9
%529 = extractelement <4 x float> %524, i32 2
%530 = tail call float @llvm.fmuladd.f32(float %529, float %529, float %528) #9
%and142.4.1 = and i32 %38, 4096
%tobool143.4.1 = icmp ne i32 %and142.4.1, 0
%cond.4.1 = select i1 %tobool143.4.1, float 1.000000e+00, float 0.000000e+00
%notrhs.4.1 = icmp ne i32 %add123.4.1, %380
%not.or.cond.4.1 = or i1 %notlhs, %notrhs.4.1
%cmp149..4.1 = or i1 %cmp149, %not.or.cond.4.1
%conv151.4.1 = uitofp i1 %cmp149..4.1 to float
%mul152.4.1 = fmul fast float %conv151.4.1, %nbparam_params.coerce.fca.9.extract
%cmp153.4.1 = fcmp fast olt float %530, %mul152.4.1
br i1 %cmp153.4.1, label %531, label %554
; <label>:531: ; preds = %522
%extractVec140.4.1 = shufflevector <4 x float> %524, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%532 = extractelement <4 x float> %523, i64 3
%533 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.4.1, align 8, !tbaa !13
%534 = extractelement <2 x float> %533, i64 0
%535 = extractelement <2 x float> %533, i64 1
%mul160.4.1 = fmul fast float %535, %385
%536 = fcmp ogt float %530, 0x3E99A2B5C0000000
%537 = select i1 %536, float %530, float 0x3E99A2B5C0000000
%538 = tail call float @llvm.sqrt.f32(float %537) #10
%div163.4.1 = fdiv fast float 1.000000e+00, %538, !fpmath !33
%mul164.4.1 = fmul fast float %div163.4.1, %div163.4.1
%539 = fmul fast float %mul164.4.1, %mul164.4.1
%mul166.4.1 = fmul fast float %539, %cond.4.1
%mul167.4.1 = fmul fast float %mul166.4.1, %mul164.4.1
%540 = fmul fast float %384, %534
%neg.4.1 = fsub fast float -0.000000e+00, %540
%541 = tail call fast float @llvm.fmuladd.f32(float %mul160.4.1, float %mul167.4.1, float %neg.4.1)
%mul169.4.1 = fmul fast float %mul167.4.1, %mul164.4.1
%mul170.4.1 = fmul fast float %mul169.4.1, %541
%mul171.4.1 = fmul fast float %532, %382
%mul172.4.1 = fmul fast float %mul164.4.1, %cond.4.1
%mul174.4.1 = fmul fast float %537, %mul
%mul.i.4.1 = fmul fast float %mul174.4.1, %mul174.4.1
%542 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%543 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%544 = tail call fast float @llvm.fmuladd.f32(float %542, float %mul.i.4.1, float 1.000000e+00) #9
%545 = tail call fast float @llvm.fmuladd.f32(float %543, float %mul174.4.1, float %544) #9
%div.i.4.1 = fdiv fast float 1.000000e+00, %545, !fpmath !33
%546 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%547 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%548 = tail call fast float @llvm.fmuladd.f32(float %546, float %mul.i.4.1, float 0xBF93BDB200000000) #9
%549 = tail call fast float @llvm.fmuladd.f32(float %547, float %mul.i.4.1, float 0x3FB1D5E760000000) #9
%550 = tail call fast float @llvm.fmuladd.f32(float %548, float %mul.i.4.1, float 0xBFE81272E0000000) #9
%551 = tail call fast float @llvm.fmuladd.f32(float %549, float %mul174.4.1, float %550) #9
%mul7.4.1 = fmul fast float %mul11.i, %div.i.4.1
%mul176.4.1 = fmul fast float %mul7.4.1, %551
%552 = tail call fast float @llvm.fmuladd.f32(float %mul172.4.1, float %div163.4.1, float %mul176.4.1)
%553 = tail call fast float @llvm.fmuladd.f32(float %mul171.4.1, float %552, float %mul170.4.1)
%splat.splatinsert.4.1 = insertelement <3 x float> undef, float %553, i32 0
%splat.splat.4.1 = shufflevector <3 x float> %splat.splatinsert.4.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.4.1 = fmul fast <3 x float> %splat.splat.4.1, %extractVec140.4.1
%extractVec189.4.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.4.1 = fsub fast <3 x float> %extractVec189.4.1, %mul181.4.1
%extractVec191.4.1 = shufflevector <3 x float> %sub190.4.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.4.1 = shufflevector <4 x float> %loadVec4199.4.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.4.1 = fadd fast <3 x float> %mul181.4.1, %extractVec200.4.1
%extractVec202.4.1 = shufflevector <3 x float> %add201.4.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %554
; <label>:554: ; preds = %531, %522, %520
%extractVec202.4.3715 = phi <4 x float> [ %extractVec202.4.1, %531 ], [ %extractVec202.4.3722, %522 ], [ %extractVec202.4.3722, %520 ]
%555 = phi <3 x float> [ %add201.4.1, %531 ], [ %85, %522 ], [ %85, %520 ]
%loadVec4199.4628 = phi <4 x float> [ %extractVec202.4.1, %531 ], [ %loadVec4199.4.1, %522 ], [ %loadVec4199.4.1, %520 ]
%fcj_buf.sroa.0.1.4.1 = phi <4 x float> [ %extractVec191.4.1, %531 ], [ %fcj_buf.sroa.0.1.3.1, %522 ], [ %fcj_buf.sroa.0.1.3.1, %520 ]
%and120.5.1 = and i32 %37, 8192
%tobool121.5.1 = icmp eq i32 %and120.5.1, 0
br i1 %tobool121.5.1, label %588, label %556
; <label>:556: ; preds = %554
%557 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.5.1, align 16, !tbaa !13
%558 = fsub fast <4 x float> %557, %381
%559 = extractelement <4 x float> %558, i32 0
%560 = extractelement <4 x float> %558, i32 1
%561 = fmul float %560, %560
%562 = tail call float @llvm.fmuladd.f32(float %559, float %559, float %561) #9
%563 = extractelement <4 x float> %558, i32 2
%564 = tail call float @llvm.fmuladd.f32(float %563, float %563, float %562) #9
%and142.5.1 = and i32 %38, 8192
%tobool143.5.1 = icmp ne i32 %and142.5.1, 0
%cond.5.1 = select i1 %tobool143.5.1, float 1.000000e+00, float 0.000000e+00
%notrhs.5.1 = icmp ne i32 %add123.5.1, %380
%not.or.cond.5.1 = or i1 %notlhs, %notrhs.5.1
%cmp149..5.1 = or i1 %cmp149, %not.or.cond.5.1
%conv151.5.1 = uitofp i1 %cmp149..5.1 to float
%mul152.5.1 = fmul fast float %conv151.5.1, %nbparam_params.coerce.fca.9.extract
%cmp153.5.1 = fcmp fast olt float %564, %mul152.5.1
br i1 %cmp153.5.1, label %565, label %588
; <label>:565: ; preds = %556
%extractVec140.5.1 = shufflevector <4 x float> %558, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%566 = extractelement <4 x float> %557, i64 3
%567 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.5.1, align 8, !tbaa !13
%568 = extractelement <2 x float> %567, i64 0
%569 = extractelement <2 x float> %567, i64 1
%mul160.5.1 = fmul fast float %569, %385
%570 = fcmp ogt float %564, 0x3E99A2B5C0000000
%571 = select i1 %570, float %564, float 0x3E99A2B5C0000000
%572 = tail call float @llvm.sqrt.f32(float %571) #10
%div163.5.1 = fdiv fast float 1.000000e+00, %572, !fpmath !33
%mul164.5.1 = fmul fast float %div163.5.1, %div163.5.1
%573 = fmul fast float %mul164.5.1, %mul164.5.1
%mul166.5.1 = fmul fast float %573, %cond.5.1
%mul167.5.1 = fmul fast float %mul166.5.1, %mul164.5.1
%574 = fmul fast float %384, %568
%neg.5.1 = fsub fast float -0.000000e+00, %574
%575 = tail call fast float @llvm.fmuladd.f32(float %mul160.5.1, float %mul167.5.1, float %neg.5.1)
%mul169.5.1 = fmul fast float %mul167.5.1, %mul164.5.1
%mul170.5.1 = fmul fast float %mul169.5.1, %575
%mul171.5.1 = fmul fast float %566, %382
%mul172.5.1 = fmul fast float %mul164.5.1, %cond.5.1
%mul174.5.1 = fmul fast float %571, %mul
%mul.i.5.1 = fmul fast float %mul174.5.1, %mul174.5.1
%576 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%577 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%578 = tail call fast float @llvm.fmuladd.f32(float %576, float %mul.i.5.1, float 1.000000e+00) #9
%579 = tail call fast float @llvm.fmuladd.f32(float %577, float %mul174.5.1, float %578) #9
%div.i.5.1 = fdiv fast float 1.000000e+00, %579, !fpmath !33
%580 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%581 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%582 = tail call fast float @llvm.fmuladd.f32(float %580, float %mul.i.5.1, float 0xBF93BDB200000000) #9
%583 = tail call fast float @llvm.fmuladd.f32(float %581, float %mul.i.5.1, float 0x3FB1D5E760000000) #9
%584 = tail call fast float @llvm.fmuladd.f32(float %582, float %mul.i.5.1, float 0xBFE81272E0000000) #9
%585 = tail call fast float @llvm.fmuladd.f32(float %583, float %mul174.5.1, float %584) #9
%mul7.5.1 = fmul fast float %mul11.i, %div.i.5.1
%mul176.5.1 = fmul fast float %mul7.5.1, %585
%586 = tail call fast float @llvm.fmuladd.f32(float %mul172.5.1, float %div163.5.1, float %mul176.5.1)
%587 = tail call fast float @llvm.fmuladd.f32(float %mul171.5.1, float %586, float %mul170.5.1)
%splat.splatinsert.5.1 = insertelement <3 x float> undef, float %587, i32 0
%splat.splat.5.1 = shufflevector <3 x float> %splat.splatinsert.5.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.5.1 = fmul fast <3 x float> %splat.splat.5.1, %extractVec140.5.1
%extractVec189.5.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.4.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.5.1 = fsub fast <3 x float> %extractVec189.5.1, %mul181.5.1
%extractVec191.5.1 = shufflevector <3 x float> %sub190.5.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.5.1 = shufflevector <4 x float> %loadVec4199.5.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.5.1 = fadd fast <3 x float> %mul181.5.1, %extractVec200.5.1
%extractVec202.5.1 = shufflevector <3 x float> %add201.5.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %588
; <label>:588: ; preds = %565, %556, %554
%extractVec202.5.3724 = phi <4 x float> [ %extractVec202.5.1, %565 ], [ %extractVec202.5.3731, %556 ], [ %extractVec202.5.3731, %554 ]
%589 = phi <3 x float> [ %add201.5.1, %565 ], [ %84, %556 ], [ %84, %554 ]
%loadVec4199.5638 = phi <4 x float> [ %extractVec202.5.1, %565 ], [ %loadVec4199.5.1, %556 ], [ %loadVec4199.5.1, %554 ]
%fcj_buf.sroa.0.1.5.1 = phi <4 x float> [ %extractVec191.5.1, %565 ], [ %fcj_buf.sroa.0.1.4.1, %556 ], [ %fcj_buf.sroa.0.1.4.1, %554 ]
%and120.6.1 = and i32 %37, 16384
%tobool121.6.1 = icmp eq i32 %and120.6.1, 0
br i1 %tobool121.6.1, label %622, label %590
; <label>:590: ; preds = %588
%591 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.6.1, align 16, !tbaa !13
%592 = fsub fast <4 x float> %591, %381
%593 = extractelement <4 x float> %592, i32 0
%594 = extractelement <4 x float> %592, i32 1
%595 = fmul float %594, %594
%596 = tail call float @llvm.fmuladd.f32(float %593, float %593, float %595) #9
%597 = extractelement <4 x float> %592, i32 2
%598 = tail call float @llvm.fmuladd.f32(float %597, float %597, float %596) #9
%and142.6.1 = and i32 %38, 16384
%tobool143.6.1 = icmp ne i32 %and142.6.1, 0
%cond.6.1 = select i1 %tobool143.6.1, float 1.000000e+00, float 0.000000e+00
%notrhs.6.1 = icmp ne i32 %add123.6.1, %380
%not.or.cond.6.1 = or i1 %notlhs, %notrhs.6.1
%cmp149..6.1 = or i1 %cmp149, %not.or.cond.6.1
%conv151.6.1 = uitofp i1 %cmp149..6.1 to float
%mul152.6.1 = fmul fast float %conv151.6.1, %nbparam_params.coerce.fca.9.extract
%cmp153.6.1 = fcmp fast olt float %598, %mul152.6.1
br i1 %cmp153.6.1, label %599, label %622
; <label>:599: ; preds = %590
%extractVec140.6.1 = shufflevector <4 x float> %592, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%600 = extractelement <4 x float> %591, i64 3
%601 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.6.1, align 8, !tbaa !13
%602 = extractelement <2 x float> %601, i64 0
%603 = extractelement <2 x float> %601, i64 1
%mul160.6.1 = fmul fast float %603, %385
%604 = fcmp ogt float %598, 0x3E99A2B5C0000000
%605 = select i1 %604, float %598, float 0x3E99A2B5C0000000
%606 = tail call float @llvm.sqrt.f32(float %605) #10
%div163.6.1 = fdiv fast float 1.000000e+00, %606, !fpmath !33
%mul164.6.1 = fmul fast float %div163.6.1, %div163.6.1
%607 = fmul fast float %mul164.6.1, %mul164.6.1
%mul166.6.1 = fmul fast float %607, %cond.6.1
%mul167.6.1 = fmul fast float %mul166.6.1, %mul164.6.1
%608 = fmul fast float %384, %602
%neg.6.1 = fsub fast float -0.000000e+00, %608
%609 = tail call fast float @llvm.fmuladd.f32(float %mul160.6.1, float %mul167.6.1, float %neg.6.1)
%mul169.6.1 = fmul fast float %mul167.6.1, %mul164.6.1
%mul170.6.1 = fmul fast float %mul169.6.1, %609
%mul171.6.1 = fmul fast float %600, %382
%mul172.6.1 = fmul fast float %mul164.6.1, %cond.6.1
%mul174.6.1 = fmul fast float %605, %mul
%mul.i.6.1 = fmul fast float %mul174.6.1, %mul174.6.1
%610 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%611 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%612 = tail call fast float @llvm.fmuladd.f32(float %610, float %mul.i.6.1, float 1.000000e+00) #9
%613 = tail call fast float @llvm.fmuladd.f32(float %611, float %mul174.6.1, float %612) #9
%div.i.6.1 = fdiv fast float 1.000000e+00, %613, !fpmath !33
%614 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%615 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%616 = tail call fast float @llvm.fmuladd.f32(float %614, float %mul.i.6.1, float 0xBF93BDB200000000) #9
%617 = tail call fast float @llvm.fmuladd.f32(float %615, float %mul.i.6.1, float 0x3FB1D5E760000000) #9
%618 = tail call fast float @llvm.fmuladd.f32(float %616, float %mul.i.6.1, float 0xBFE81272E0000000) #9
%619 = tail call fast float @llvm.fmuladd.f32(float %617, float %mul174.6.1, float %618) #9
%mul7.6.1 = fmul fast float %mul11.i, %div.i.6.1
%mul176.6.1 = fmul fast float %mul7.6.1, %619
%620 = tail call fast float @llvm.fmuladd.f32(float %mul172.6.1, float %div163.6.1, float %mul176.6.1)
%621 = tail call fast float @llvm.fmuladd.f32(float %mul171.6.1, float %620, float %mul170.6.1)
%splat.splatinsert.6.1 = insertelement <3 x float> undef, float %621, i32 0
%splat.splat.6.1 = shufflevector <3 x float> %splat.splatinsert.6.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.6.1 = fmul fast <3 x float> %splat.splat.6.1, %extractVec140.6.1
%extractVec189.6.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.5.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.6.1 = fsub fast <3 x float> %extractVec189.6.1, %mul181.6.1
%extractVec191.6.1 = shufflevector <3 x float> %sub190.6.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.6.1 = shufflevector <4 x float> %loadVec4199.6.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.6.1 = fadd fast <3 x float> %mul181.6.1, %extractVec200.6.1
%extractVec202.6.1 = shufflevector <3 x float> %add201.6.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %622
; <label>:622: ; preds = %599, %590, %588
%extractVec202.6.3733 = phi <4 x float> [ %extractVec202.6.1, %599 ], [ %extractVec202.6.3740, %590 ], [ %extractVec202.6.3740, %588 ]
%623 = phi <3 x float> [ %add201.6.1, %599 ], [ %83, %590 ], [ %83, %588 ]
%loadVec4199.6648 = phi <4 x float> [ %extractVec202.6.1, %599 ], [ %loadVec4199.6.1, %590 ], [ %loadVec4199.6.1, %588 ]
%fcj_buf.sroa.0.1.6.1 = phi <4 x float> [ %extractVec191.6.1, %599 ], [ %fcj_buf.sroa.0.1.5.1, %590 ], [ %fcj_buf.sroa.0.1.5.1, %588 ]
%and120.7.1 = and i32 %37, 32768
%tobool121.7.1 = icmp eq i32 %and120.7.1, 0
br i1 %tobool121.7.1, label %656, label %624
; <label>:624: ; preds = %622
%625 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.7.1, align 16, !tbaa !13
%626 = fsub fast <4 x float> %625, %381
%627 = extractelement <4 x float> %626, i32 0
%628 = extractelement <4 x float> %626, i32 1
%629 = fmul float %628, %628
%630 = tail call float @llvm.fmuladd.f32(float %627, float %627, float %629) #9
%631 = extractelement <4 x float> %626, i32 2
%632 = tail call float @llvm.fmuladd.f32(float %631, float %631, float %630) #9
%and142.7.1 = and i32 %38, 32768
%tobool143.7.1 = icmp ne i32 %and142.7.1, 0
%cond.7.1 = select i1 %tobool143.7.1, float 1.000000e+00, float 0.000000e+00
%notrhs.7.1 = icmp ne i32 %add123.7.1, %380
%not.or.cond.7.1 = or i1 %notlhs, %notrhs.7.1
%cmp149..7.1 = or i1 %cmp149, %not.or.cond.7.1
%conv151.7.1 = uitofp i1 %cmp149..7.1 to float
%mul152.7.1 = fmul fast float %conv151.7.1, %nbparam_params.coerce.fca.9.extract
%cmp153.7.1 = fcmp fast olt float %632, %mul152.7.1
br i1 %cmp153.7.1, label %633, label %656
; <label>:633: ; preds = %624
%extractVec140.7.1 = shufflevector <4 x float> %626, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%634 = extractelement <4 x float> %625, i64 3
%635 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.7.1, align 8, !tbaa !13
%636 = extractelement <2 x float> %635, i64 0
%637 = extractelement <2 x float> %635, i64 1
%mul160.7.1 = fmul fast float %637, %385
%638 = fcmp ogt float %632, 0x3E99A2B5C0000000
%639 = select i1 %638, float %632, float 0x3E99A2B5C0000000
%640 = tail call float @llvm.sqrt.f32(float %639) #10
%div163.7.1 = fdiv fast float 1.000000e+00, %640, !fpmath !33
%mul164.7.1 = fmul fast float %div163.7.1, %div163.7.1
%641 = fmul fast float %mul164.7.1, %mul164.7.1
%mul166.7.1 = fmul fast float %641, %cond.7.1
%mul167.7.1 = fmul fast float %mul166.7.1, %mul164.7.1
%642 = fmul fast float %384, %636
%neg.7.1 = fsub fast float -0.000000e+00, %642
%643 = tail call fast float @llvm.fmuladd.f32(float %mul160.7.1, float %mul167.7.1, float %neg.7.1)
%mul169.7.1 = fmul fast float %mul167.7.1, %mul164.7.1
%mul170.7.1 = fmul fast float %mul169.7.1, %643
%mul171.7.1 = fmul fast float %634, %382
%mul172.7.1 = fmul fast float %mul164.7.1, %cond.7.1
%mul174.7.1 = fmul fast float %639, %mul
%mul.i.7.1 = fmul fast float %mul174.7.1, %mul174.7.1
%644 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%645 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%646 = tail call fast float @llvm.fmuladd.f32(float %644, float %mul.i.7.1, float 1.000000e+00) #9
%647 = tail call fast float @llvm.fmuladd.f32(float %645, float %mul174.7.1, float %646) #9
%div.i.7.1 = fdiv fast float 1.000000e+00, %647, !fpmath !33
%648 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%649 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%650 = tail call fast float @llvm.fmuladd.f32(float %648, float %mul.i.7.1, float 0xBF93BDB200000000) #9
%651 = tail call fast float @llvm.fmuladd.f32(float %649, float %mul.i.7.1, float 0x3FB1D5E760000000) #9
%652 = tail call fast float @llvm.fmuladd.f32(float %650, float %mul.i.7.1, float 0xBFE81272E0000000) #9
%653 = tail call fast float @llvm.fmuladd.f32(float %651, float %mul174.7.1, float %652) #9
%mul7.7.1 = fmul fast float %mul11.i, %div.i.7.1
%mul176.7.1 = fmul fast float %mul7.7.1, %653
%654 = tail call fast float @llvm.fmuladd.f32(float %mul172.7.1, float %div163.7.1, float %mul176.7.1)
%655 = tail call fast float @llvm.fmuladd.f32(float %mul171.7.1, float %654, float %mul170.7.1)
%splat.splatinsert.7.1 = insertelement <3 x float> undef, float %655, i32 0
%splat.splat.7.1 = shufflevector <3 x float> %splat.splatinsert.7.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.7.1 = fmul fast <3 x float> %splat.splat.7.1, %extractVec140.7.1
%extractVec189.7.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.6.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.7.1 = fsub fast <3 x float> %extractVec189.7.1, %mul181.7.1
%extractVec191.7.1 = shufflevector <3 x float> %sub190.7.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.7.1 = shufflevector <4 x float> %loadVec4199.7.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.7.1 = fadd fast <3 x float> %mul181.7.1, %extractVec200.7.1
%extractVec202.7.1 = shufflevector <3 x float> %add201.7.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %656
; <label>:656: ; preds = %633, %624, %622
%extractVec202.7.3742 = phi <4 x float> [ %extractVec202.7.1, %633 ], [ %extractVec202.7.3749, %624 ], [ %extractVec202.7.3749, %622 ]
%loadVec4199.7658 = phi <4 x float> [ %extractVec202.7.1, %633 ], [ %loadVec4199.7.1, %624 ], [ %loadVec4199.7.1, %622 ]
%fcj_buf.sroa.0.1.7.1 = phi <4 x float> [ %extractVec191.7.1, %633 ], [ %fcj_buf.sroa.0.1.6.1, %624 ], [ %fcj_buf.sroa.0.1.6.1, %622 ]
%657 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.1, i32 0
store float %657, float addrspace(3)* %arrayidx207, align 4, !tbaa !17
%658 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.1, i32 1
store float %658, float addrspace(3)* %arrayidx210, align 4, !tbaa !17
%659 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.1, i32 2
store float %659, float addrspace(3)* %arrayidx213, align 4, !tbaa !17
tail call void @reduce_force_j_generic(float addrspace(3)* %11, float addrspace(1)* %f, i32 %1, i32 %3, i32 %add111.1)
br label %.preheader.2583
.preheader.2583: ; preds = %656, %.preheader.1582
%extractVec202.7.3748 = phi <4 x float> [ %extractVec202.7.3742, %656 ], [ %extractVec202.7.3749, %.preheader.1582 ]
%extractVec202.6.3739 = phi <4 x float> [ %extractVec202.6.3733, %656 ], [ %extractVec202.6.3740, %.preheader.1582 ]
%extractVec202.5.3730 = phi <4 x float> [ %extractVec202.5.3724, %656 ], [ %extractVec202.5.3731, %.preheader.1582 ]
%extractVec202.4.3721 = phi <4 x float> [ %extractVec202.4.3715, %656 ], [ %extractVec202.4.3722, %.preheader.1582 ]
%extractVec202.3.3712 = phi <4 x float> [ %extractVec202.3.3706, %656 ], [ %extractVec202.3.3713, %.preheader.1582 ]
%extractVec202.2.3703 = phi <4 x float> [ %extractVec202.2.3697, %656 ], [ %extractVec202.2.3704, %.preheader.1582 ]
%extractVec202.1.3694 = phi <4 x float> [ %extractVec202.1.3688, %656 ], [ %extractVec202.1.3695, %.preheader.1582 ]
%extractVec202.3579685 = phi <4 x float> [ %extractVec202.3579679, %656 ], [ %extractVec202.3579686, %.preheader.1582 ]
%660 = phi <3 x float> [ %623, %656 ], [ %83, %.preheader.1582 ]
%661 = phi <3 x float> [ %589, %656 ], [ %84, %.preheader.1582 ]
%662 = phi <3 x float> [ %555, %656 ], [ %85, %.preheader.1582 ]
%663 = phi <3 x float> [ %521, %656 ], [ %86, %.preheader.1582 ]
%664 = phi <3 x float> [ %487, %656 ], [ %87, %.preheader.1582 ]
%665 = phi <3 x float> [ %453, %656 ], [ %88, %.preheader.1582 ]
%666 = phi <3 x float> [ %419, %656 ], [ %89, %.preheader.1582 ]
%loadVec4199.7.2 = phi <4 x float> [ %loadVec4199.7658, %656 ], [ %loadVec4199.7.1, %.preheader.1582 ]
%loadVec4199.6.2 = phi <4 x float> [ %loadVec4199.6648, %656 ], [ %loadVec4199.6.1, %.preheader.1582 ]
%loadVec4199.5.2 = phi <4 x float> [ %loadVec4199.5638, %656 ], [ %loadVec4199.5.1, %.preheader.1582 ]
%loadVec4199.4.2 = phi <4 x float> [ %loadVec4199.4628, %656 ], [ %loadVec4199.4.1, %.preheader.1582 ]
%loadVec4199.3.2 = phi <4 x float> [ %loadVec4199.3618, %656 ], [ %loadVec4199.3.1, %.preheader.1582 ]
%loadVec4199.2.2 = phi <4 x float> [ %loadVec4199.2608, %656 ], [ %loadVec4199.2.1, %.preheader.1582 ]
%loadVec4199.1.2 = phi <4 x float> [ %loadVec4199.1598, %656 ], [ %loadVec4199.1.1, %.preheader.1582 ]
%loadVec4199.2534 = phi <4 x float> [ %loadVec4199588, %656 ], [ %loadVec4199.1492, %.preheader.1582 ]
%and99.2 = and i32 %37, 16711680
%tobool100.2 = icmp eq i32 %and99.2, 0
br i1 %tobool100.2, label %.preheader.3584, label %667
; <label>:667: ; preds = %.preheader.2583
%668 = load i32, i32 addrspace(3)* %arrayidx109.2, align 4, !tbaa !9
%mul110.2 = shl nsw i32 %668, 3
%add111.2 = add i32 %mul110.2, %3
%idxprom112.2 = sext i32 %add111.2 to i64
%arrayidx113.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom112.2
%669 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx113.2, align 16, !tbaa !13
%670 = extractelement <4 x float> %669, i64 3
%arrayidx116.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom112.2
%671 = load <2 x float>, <2 x float> addrspace(1)* %arrayidx116.2, align 8, !tbaa !13
%672 = extractelement <2 x float> %671, i64 0
%673 = extractelement <2 x float> %671, i64 1
%and120.2498 = and i32 %37, 65536
%tobool121.2499 = icmp eq i32 %and120.2498, 0
br i1 %tobool121.2499, label %706, label %674
; <label>:674: ; preds = %667
%675 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.2500, align 16, !tbaa !13
%676 = fsub fast <4 x float> %675, %669
%677 = extractelement <4 x float> %676, i32 0
%678 = extractelement <4 x float> %676, i32 1
%679 = fmul float %678, %678
%680 = tail call float @llvm.fmuladd.f32(float %677, float %677, float %679) #9
%681 = extractelement <4 x float> %676, i32 2
%682 = tail call float @llvm.fmuladd.f32(float %681, float %681, float %680) #9
%and142.2501 = and i32 %38, 65536
%tobool143.2502 = icmp ne i32 %and142.2501, 0
%cond.2503 = select i1 %tobool143.2502, float 1.000000e+00, float 0.000000e+00
%notrhs.2504 = icmp ne i32 %mul21, %668
%not.or.cond.2505 = or i1 %notlhs, %notrhs.2504
%cmp149..2506 = or i1 %cmp149, %not.or.cond.2505
%conv151.2507 = uitofp i1 %cmp149..2506 to float
%mul152.2508 = fmul fast float %conv151.2507, %nbparam_params.coerce.fca.9.extract
%cmp153.2509 = fcmp fast olt float %682, %mul152.2508
br i1 %cmp153.2509, label %683, label %706
; <label>:683: ; preds = %674
%extractVec140.2510 = shufflevector <4 x float> %676, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%684 = extractelement <4 x float> %675, i64 3
%685 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.2511, align 8, !tbaa !13
%686 = extractelement <2 x float> %685, i64 0
%687 = extractelement <2 x float> %685, i64 1
%mul160.2512 = fmul fast float %687, %673
%688 = fcmp ogt float %682, 0x3E99A2B5C0000000
%689 = select i1 %688, float %682, float 0x3E99A2B5C0000000
%690 = tail call float @llvm.sqrt.f32(float %689) #10
%div163.2513 = fdiv fast float 1.000000e+00, %690, !fpmath !33
%mul164.2514 = fmul fast float %div163.2513, %div163.2513
%691 = fmul fast float %mul164.2514, %mul164.2514
%mul166.2515 = fmul fast float %691, %cond.2503
%mul167.2516 = fmul fast float %mul166.2515, %mul164.2514
%692 = fmul fast float %672, %686
%neg.2517 = fsub fast float -0.000000e+00, %692
%693 = tail call fast float @llvm.fmuladd.f32(float %mul160.2512, float %mul167.2516, float %neg.2517)
%mul169.2518 = fmul fast float %mul167.2516, %mul164.2514
%mul170.2519 = fmul fast float %mul169.2518, %693
%mul171.2520 = fmul fast float %684, %670
%mul172.2521 = fmul fast float %mul164.2514, %cond.2503
%mul174.2522 = fmul fast float %689, %mul
%mul.i.2523 = fmul fast float %mul174.2522, %mul174.2522
%694 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2523, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%695 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2523, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%696 = tail call fast float @llvm.fmuladd.f32(float %694, float %mul.i.2523, float 1.000000e+00) #9
%697 = tail call fast float @llvm.fmuladd.f32(float %695, float %mul174.2522, float %696) #9
%div.i.2524 = fdiv fast float 1.000000e+00, %697, !fpmath !33
%698 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2523, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%699 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2523, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%700 = tail call fast float @llvm.fmuladd.f32(float %698, float %mul.i.2523, float 0xBF93BDB200000000) #9
%701 = tail call fast float @llvm.fmuladd.f32(float %699, float %mul.i.2523, float 0x3FB1D5E760000000) #9
%702 = tail call fast float @llvm.fmuladd.f32(float %700, float %mul.i.2523, float 0xBFE81272E0000000) #9
%703 = tail call fast float @llvm.fmuladd.f32(float %701, float %mul174.2522, float %702) #9
%mul7.2525 = fmul fast float %mul11.i, %div.i.2524
%mul176.2526 = fmul fast float %mul7.2525, %703
%704 = tail call fast float @llvm.fmuladd.f32(float %mul172.2521, float %div163.2513, float %mul176.2526)
%705 = tail call fast float @llvm.fmuladd.f32(float %mul171.2520, float %704, float %mul170.2519)
%splat.splatinsert.2527 = insertelement <3 x float> undef, float %705, i32 0
%splat.splat.2528 = shufflevector <3 x float> %splat.splatinsert.2527, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.2529 = fmul fast <3 x float> %splat.splat.2528, %extractVec140.2510
%sub190.2530 = fsub fast <3 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %mul181.2529
%extractVec191.2531 = shufflevector <3 x float> %sub190.2530, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.2535 = shufflevector <4 x float> %loadVec4199.2534, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.2536 = fadd fast <3 x float> %mul181.2529, %extractVec200.2535
%extractVec202.2537 = shufflevector <3 x float> %add201.2536, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %706
; <label>:706: ; preds = %683, %674, %667
%extractVec202.3579680 = phi <4 x float> [ %extractVec202.2537, %683 ], [ %extractVec202.3579685, %674 ], [ %extractVec202.3579685, %667 ]
%707 = phi <3 x float> [ %add201.2536, %683 ], [ %666, %674 ], [ %666, %667 ]
%loadVec4199589 = phi <4 x float> [ %extractVec202.2537, %683 ], [ %loadVec4199.2534, %674 ], [ %loadVec4199.2534, %667 ]
%fcj_buf.sroa.0.1.2538 = phi <4 x float> [ %extractVec191.2531, %683 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %674 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %667 ]
%and120.1.2 = and i32 %37, 131072
%tobool121.1.2 = icmp eq i32 %and120.1.2, 0
br i1 %tobool121.1.2, label %740, label %708
; <label>:708: ; preds = %706
%709 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.1.2, align 16, !tbaa !13
%710 = fsub fast <4 x float> %709, %669
%711 = extractelement <4 x float> %710, i32 0
%712 = extractelement <4 x float> %710, i32 1
%713 = fmul float %712, %712
%714 = tail call float @llvm.fmuladd.f32(float %711, float %711, float %713) #9
%715 = extractelement <4 x float> %710, i32 2
%716 = tail call float @llvm.fmuladd.f32(float %715, float %715, float %714) #9
%and142.1.2 = and i32 %38, 131072
%tobool143.1.2 = icmp ne i32 %and142.1.2, 0
%cond.1.2 = select i1 %tobool143.1.2, float 1.000000e+00, float 0.000000e+00
%notrhs.1.2 = icmp ne i32 %add123.1.2, %668
%not.or.cond.1.2 = or i1 %notlhs, %notrhs.1.2
%cmp149..1.2 = or i1 %cmp149, %not.or.cond.1.2
%conv151.1.2 = uitofp i1 %cmp149..1.2 to float
%mul152.1.2 = fmul fast float %conv151.1.2, %nbparam_params.coerce.fca.9.extract
%cmp153.1.2 = fcmp fast olt float %716, %mul152.1.2
br i1 %cmp153.1.2, label %717, label %740
; <label>:717: ; preds = %708
%extractVec140.1.2 = shufflevector <4 x float> %710, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%718 = extractelement <4 x float> %709, i64 3
%719 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.1.2, align 8, !tbaa !13
%720 = extractelement <2 x float> %719, i64 0
%721 = extractelement <2 x float> %719, i64 1
%mul160.1.2 = fmul fast float %721, %673
%722 = fcmp ogt float %716, 0x3E99A2B5C0000000
%723 = select i1 %722, float %716, float 0x3E99A2B5C0000000
%724 = tail call float @llvm.sqrt.f32(float %723) #10
%div163.1.2 = fdiv fast float 1.000000e+00, %724, !fpmath !33
%mul164.1.2 = fmul fast float %div163.1.2, %div163.1.2
%725 = fmul fast float %mul164.1.2, %mul164.1.2
%mul166.1.2 = fmul fast float %725, %cond.1.2
%mul167.1.2 = fmul fast float %mul166.1.2, %mul164.1.2
%726 = fmul fast float %672, %720
%neg.1.2 = fsub fast float -0.000000e+00, %726
%727 = tail call fast float @llvm.fmuladd.f32(float %mul160.1.2, float %mul167.1.2, float %neg.1.2)
%mul169.1.2 = fmul fast float %mul167.1.2, %mul164.1.2
%mul170.1.2 = fmul fast float %mul169.1.2, %727
%mul171.1.2 = fmul fast float %718, %670
%mul172.1.2 = fmul fast float %mul164.1.2, %cond.1.2
%mul174.1.2 = fmul fast float %723, %mul
%mul.i.1.2 = fmul fast float %mul174.1.2, %mul174.1.2
%728 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%729 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%730 = tail call fast float @llvm.fmuladd.f32(float %728, float %mul.i.1.2, float 1.000000e+00) #9
%731 = tail call fast float @llvm.fmuladd.f32(float %729, float %mul174.1.2, float %730) #9
%div.i.1.2 = fdiv fast float 1.000000e+00, %731, !fpmath !33
%732 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%733 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%734 = tail call fast float @llvm.fmuladd.f32(float %732, float %mul.i.1.2, float 0xBF93BDB200000000) #9
%735 = tail call fast float @llvm.fmuladd.f32(float %733, float %mul.i.1.2, float 0x3FB1D5E760000000) #9
%736 = tail call fast float @llvm.fmuladd.f32(float %734, float %mul.i.1.2, float 0xBFE81272E0000000) #9
%737 = tail call fast float @llvm.fmuladd.f32(float %735, float %mul174.1.2, float %736) #9
%mul7.1.2 = fmul fast float %mul11.i, %div.i.1.2
%mul176.1.2 = fmul fast float %mul7.1.2, %737
%738 = tail call fast float @llvm.fmuladd.f32(float %mul172.1.2, float %div163.1.2, float %mul176.1.2)
%739 = tail call fast float @llvm.fmuladd.f32(float %mul171.1.2, float %738, float %mul170.1.2)
%splat.splatinsert.1.2 = insertelement <3 x float> undef, float %739, i32 0
%splat.splat.1.2 = shufflevector <3 x float> %splat.splatinsert.1.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.1.2 = fmul fast <3 x float> %splat.splat.1.2, %extractVec140.1.2
%extractVec189.1.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2538, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.1.2 = fsub fast <3 x float> %extractVec189.1.2, %mul181.1.2
%extractVec191.1.2 = shufflevector <3 x float> %sub190.1.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.1.2 = shufflevector <4 x float> %loadVec4199.1.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.1.2 = fadd fast <3 x float> %mul181.1.2, %extractVec200.1.2
%extractVec202.1.2 = shufflevector <3 x float> %add201.1.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %740
; <label>:740: ; preds = %717, %708, %706
%extractVec202.1.3689 = phi <4 x float> [ %extractVec202.1.2, %717 ], [ %extractVec202.1.3694, %708 ], [ %extractVec202.1.3694, %706 ]
%741 = phi <3 x float> [ %add201.1.2, %717 ], [ %665, %708 ], [ %665, %706 ]
%loadVec4199.1599 = phi <4 x float> [ %extractVec202.1.2, %717 ], [ %loadVec4199.1.2, %708 ], [ %loadVec4199.1.2, %706 ]
%fcj_buf.sroa.0.1.1.2 = phi <4 x float> [ %extractVec191.1.2, %717 ], [ %fcj_buf.sroa.0.1.2538, %708 ], [ %fcj_buf.sroa.0.1.2538, %706 ]
%and120.2.2 = and i32 %37, 262144
%tobool121.2.2 = icmp eq i32 %and120.2.2, 0
br i1 %tobool121.2.2, label %774, label %742
; <label>:742: ; preds = %740
%743 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.2.2, align 16, !tbaa !13
%744 = fsub fast <4 x float> %743, %669
%745 = extractelement <4 x float> %744, i32 0
%746 = extractelement <4 x float> %744, i32 1
%747 = fmul float %746, %746
%748 = tail call float @llvm.fmuladd.f32(float %745, float %745, float %747) #9
%749 = extractelement <4 x float> %744, i32 2
%750 = tail call float @llvm.fmuladd.f32(float %749, float %749, float %748) #9
%and142.2.2 = and i32 %38, 262144
%tobool143.2.2 = icmp ne i32 %and142.2.2, 0
%cond.2.2 = select i1 %tobool143.2.2, float 1.000000e+00, float 0.000000e+00
%notrhs.2.2 = icmp ne i32 %add123.2.2, %668
%not.or.cond.2.2 = or i1 %notlhs, %notrhs.2.2
%cmp149..2.2 = or i1 %cmp149, %not.or.cond.2.2
%conv151.2.2 = uitofp i1 %cmp149..2.2 to float
%mul152.2.2 = fmul fast float %conv151.2.2, %nbparam_params.coerce.fca.9.extract
%cmp153.2.2 = fcmp fast olt float %750, %mul152.2.2
br i1 %cmp153.2.2, label %751, label %774
; <label>:751: ; preds = %742
%extractVec140.2.2 = shufflevector <4 x float> %744, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%752 = extractelement <4 x float> %743, i64 3
%753 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.2.2, align 8, !tbaa !13
%754 = extractelement <2 x float> %753, i64 0
%755 = extractelement <2 x float> %753, i64 1
%mul160.2.2 = fmul fast float %755, %673
%756 = fcmp ogt float %750, 0x3E99A2B5C0000000
%757 = select i1 %756, float %750, float 0x3E99A2B5C0000000
%758 = tail call float @llvm.sqrt.f32(float %757) #10
%div163.2.2 = fdiv fast float 1.000000e+00, %758, !fpmath !33
%mul164.2.2 = fmul fast float %div163.2.2, %div163.2.2
%759 = fmul fast float %mul164.2.2, %mul164.2.2
%mul166.2.2 = fmul fast float %759, %cond.2.2
%mul167.2.2 = fmul fast float %mul166.2.2, %mul164.2.2
%760 = fmul fast float %672, %754
%neg.2.2 = fsub fast float -0.000000e+00, %760
%761 = tail call fast float @llvm.fmuladd.f32(float %mul160.2.2, float %mul167.2.2, float %neg.2.2)
%mul169.2.2 = fmul fast float %mul167.2.2, %mul164.2.2
%mul170.2.2 = fmul fast float %mul169.2.2, %761
%mul171.2.2 = fmul fast float %752, %670
%mul172.2.2 = fmul fast float %mul164.2.2, %cond.2.2
%mul174.2.2 = fmul fast float %757, %mul
%mul.i.2.2 = fmul fast float %mul174.2.2, %mul174.2.2
%762 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%763 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%764 = tail call fast float @llvm.fmuladd.f32(float %762, float %mul.i.2.2, float 1.000000e+00) #9
%765 = tail call fast float @llvm.fmuladd.f32(float %763, float %mul174.2.2, float %764) #9
%div.i.2.2 = fdiv fast float 1.000000e+00, %765, !fpmath !33
%766 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%767 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%768 = tail call fast float @llvm.fmuladd.f32(float %766, float %mul.i.2.2, float 0xBF93BDB200000000) #9
%769 = tail call fast float @llvm.fmuladd.f32(float %767, float %mul.i.2.2, float 0x3FB1D5E760000000) #9
%770 = tail call fast float @llvm.fmuladd.f32(float %768, float %mul.i.2.2, float 0xBFE81272E0000000) #9
%771 = tail call fast float @llvm.fmuladd.f32(float %769, float %mul174.2.2, float %770) #9
%mul7.2.2 = fmul fast float %mul11.i, %div.i.2.2
%mul176.2.2 = fmul fast float %mul7.2.2, %771
%772 = tail call fast float @llvm.fmuladd.f32(float %mul172.2.2, float %div163.2.2, float %mul176.2.2)
%773 = tail call fast float @llvm.fmuladd.f32(float %mul171.2.2, float %772, float %mul170.2.2)
%splat.splatinsert.2.2 = insertelement <3 x float> undef, float %773, i32 0
%splat.splat.2.2 = shufflevector <3 x float> %splat.splatinsert.2.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.2.2 = fmul fast <3 x float> %splat.splat.2.2, %extractVec140.2.2
%extractVec189.2.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.2.2 = fsub fast <3 x float> %extractVec189.2.2, %mul181.2.2
%extractVec191.2.2 = shufflevector <3 x float> %sub190.2.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.2.2 = shufflevector <4 x float> %loadVec4199.2.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.2.2 = fadd fast <3 x float> %mul181.2.2, %extractVec200.2.2
%extractVec202.2.2 = shufflevector <3 x float> %add201.2.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %774
; <label>:774: ; preds = %751, %742, %740
%extractVec202.2.3698 = phi <4 x float> [ %extractVec202.2.2, %751 ], [ %extractVec202.2.3703, %742 ], [ %extractVec202.2.3703, %740 ]
%775 = phi <3 x float> [ %add201.2.2, %751 ], [ %664, %742 ], [ %664, %740 ]
%loadVec4199.2609 = phi <4 x float> [ %extractVec202.2.2, %751 ], [ %loadVec4199.2.2, %742 ], [ %loadVec4199.2.2, %740 ]
%fcj_buf.sroa.0.1.2.2 = phi <4 x float> [ %extractVec191.2.2, %751 ], [ %fcj_buf.sroa.0.1.1.2, %742 ], [ %fcj_buf.sroa.0.1.1.2, %740 ]
%and120.3.2 = and i32 %37, 524288
%tobool121.3.2 = icmp eq i32 %and120.3.2, 0
br i1 %tobool121.3.2, label %808, label %776
; <label>:776: ; preds = %774
%777 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.3.2, align 16, !tbaa !13
%778 = fsub fast <4 x float> %777, %669
%779 = extractelement <4 x float> %778, i32 0
%780 = extractelement <4 x float> %778, i32 1
%781 = fmul float %780, %780
%782 = tail call float @llvm.fmuladd.f32(float %779, float %779, float %781) #9
%783 = extractelement <4 x float> %778, i32 2
%784 = tail call float @llvm.fmuladd.f32(float %783, float %783, float %782) #9
%and142.3.2 = and i32 %38, 524288
%tobool143.3.2 = icmp ne i32 %and142.3.2, 0
%cond.3.2 = select i1 %tobool143.3.2, float 1.000000e+00, float 0.000000e+00
%notrhs.3.2 = icmp ne i32 %add123.3.2, %668
%not.or.cond.3.2 = or i1 %notlhs, %notrhs.3.2
%cmp149..3.2 = or i1 %cmp149, %not.or.cond.3.2
%conv151.3.2 = uitofp i1 %cmp149..3.2 to float
%mul152.3.2 = fmul fast float %conv151.3.2, %nbparam_params.coerce.fca.9.extract
%cmp153.3.2 = fcmp fast olt float %784, %mul152.3.2
br i1 %cmp153.3.2, label %785, label %808
; <label>:785: ; preds = %776
%extractVec140.3.2 = shufflevector <4 x float> %778, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%786 = extractelement <4 x float> %777, i64 3
%787 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.3.2, align 8, !tbaa !13
%788 = extractelement <2 x float> %787, i64 0
%789 = extractelement <2 x float> %787, i64 1
%mul160.3.2 = fmul fast float %789, %673
%790 = fcmp ogt float %784, 0x3E99A2B5C0000000
%791 = select i1 %790, float %784, float 0x3E99A2B5C0000000
%792 = tail call float @llvm.sqrt.f32(float %791) #10
%div163.3.2 = fdiv fast float 1.000000e+00, %792, !fpmath !33
%mul164.3.2 = fmul fast float %div163.3.2, %div163.3.2
%793 = fmul fast float %mul164.3.2, %mul164.3.2
%mul166.3.2 = fmul fast float %793, %cond.3.2
%mul167.3.2 = fmul fast float %mul166.3.2, %mul164.3.2
%794 = fmul fast float %672, %788
%neg.3.2 = fsub fast float -0.000000e+00, %794
%795 = tail call fast float @llvm.fmuladd.f32(float %mul160.3.2, float %mul167.3.2, float %neg.3.2)
%mul169.3.2 = fmul fast float %mul167.3.2, %mul164.3.2
%mul170.3.2 = fmul fast float %mul169.3.2, %795
%mul171.3.2 = fmul fast float %786, %670
%mul172.3.2 = fmul fast float %mul164.3.2, %cond.3.2
%mul174.3.2 = fmul fast float %791, %mul
%mul.i.3.2 = fmul fast float %mul174.3.2, %mul174.3.2
%796 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%797 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%798 = tail call fast float @llvm.fmuladd.f32(float %796, float %mul.i.3.2, float 1.000000e+00) #9
%799 = tail call fast float @llvm.fmuladd.f32(float %797, float %mul174.3.2, float %798) #9
%div.i.3.2 = fdiv fast float 1.000000e+00, %799, !fpmath !33
%800 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%801 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%802 = tail call fast float @llvm.fmuladd.f32(float %800, float %mul.i.3.2, float 0xBF93BDB200000000) #9
%803 = tail call fast float @llvm.fmuladd.f32(float %801, float %mul.i.3.2, float 0x3FB1D5E760000000) #9
%804 = tail call fast float @llvm.fmuladd.f32(float %802, float %mul.i.3.2, float 0xBFE81272E0000000) #9
%805 = tail call fast float @llvm.fmuladd.f32(float %803, float %mul174.3.2, float %804) #9
%mul7.3.2 = fmul fast float %mul11.i, %div.i.3.2
%mul176.3.2 = fmul fast float %mul7.3.2, %805
%806 = tail call fast float @llvm.fmuladd.f32(float %mul172.3.2, float %div163.3.2, float %mul176.3.2)
%807 = tail call fast float @llvm.fmuladd.f32(float %mul171.3.2, float %806, float %mul170.3.2)
%splat.splatinsert.3.2 = insertelement <3 x float> undef, float %807, i32 0
%splat.splat.3.2 = shufflevector <3 x float> %splat.splatinsert.3.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.3.2 = fmul fast <3 x float> %splat.splat.3.2, %extractVec140.3.2
%extractVec189.3.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.3.2 = fsub fast <3 x float> %extractVec189.3.2, %mul181.3.2
%extractVec191.3.2 = shufflevector <3 x float> %sub190.3.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.3.2 = shufflevector <4 x float> %loadVec4199.3.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.3.2 = fadd fast <3 x float> %mul181.3.2, %extractVec200.3.2
%extractVec202.3.2 = shufflevector <3 x float> %add201.3.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %808
; <label>:808: ; preds = %785, %776, %774
%extractVec202.3.3707 = phi <4 x float> [ %extractVec202.3.2, %785 ], [ %extractVec202.3.3712, %776 ], [ %extractVec202.3.3712, %774 ]
%809 = phi <3 x float> [ %add201.3.2, %785 ], [ %663, %776 ], [ %663, %774 ]
%loadVec4199.3619 = phi <4 x float> [ %extractVec202.3.2, %785 ], [ %loadVec4199.3.2, %776 ], [ %loadVec4199.3.2, %774 ]
%fcj_buf.sroa.0.1.3.2 = phi <4 x float> [ %extractVec191.3.2, %785 ], [ %fcj_buf.sroa.0.1.2.2, %776 ], [ %fcj_buf.sroa.0.1.2.2, %774 ]
%and120.4.2 = and i32 %37, 1048576
%tobool121.4.2 = icmp eq i32 %and120.4.2, 0
br i1 %tobool121.4.2, label %842, label %810
; <label>:810: ; preds = %808
%811 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.4.2, align 16, !tbaa !13
%812 = fsub fast <4 x float> %811, %669
%813 = extractelement <4 x float> %812, i32 0
%814 = extractelement <4 x float> %812, i32 1
%815 = fmul float %814, %814
%816 = tail call float @llvm.fmuladd.f32(float %813, float %813, float %815) #9
%817 = extractelement <4 x float> %812, i32 2
%818 = tail call float @llvm.fmuladd.f32(float %817, float %817, float %816) #9
%and142.4.2 = and i32 %38, 1048576
%tobool143.4.2 = icmp ne i32 %and142.4.2, 0
%cond.4.2 = select i1 %tobool143.4.2, float 1.000000e+00, float 0.000000e+00
%notrhs.4.2 = icmp ne i32 %add123.4.2, %668
%not.or.cond.4.2 = or i1 %notlhs, %notrhs.4.2
%cmp149..4.2 = or i1 %cmp149, %not.or.cond.4.2
%conv151.4.2 = uitofp i1 %cmp149..4.2 to float
%mul152.4.2 = fmul fast float %conv151.4.2, %nbparam_params.coerce.fca.9.extract
%cmp153.4.2 = fcmp fast olt float %818, %mul152.4.2
br i1 %cmp153.4.2, label %819, label %842
; <label>:819: ; preds = %810
%extractVec140.4.2 = shufflevector <4 x float> %812, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%820 = extractelement <4 x float> %811, i64 3
%821 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.4.2, align 8, !tbaa !13
%822 = extractelement <2 x float> %821, i64 0
%823 = extractelement <2 x float> %821, i64 1
%mul160.4.2 = fmul fast float %823, %673
%824 = fcmp ogt float %818, 0x3E99A2B5C0000000
%825 = select i1 %824, float %818, float 0x3E99A2B5C0000000
%826 = tail call float @llvm.sqrt.f32(float %825) #10
%div163.4.2 = fdiv fast float 1.000000e+00, %826, !fpmath !33
%mul164.4.2 = fmul fast float %div163.4.2, %div163.4.2
%827 = fmul fast float %mul164.4.2, %mul164.4.2
%mul166.4.2 = fmul fast float %827, %cond.4.2
%mul167.4.2 = fmul fast float %mul166.4.2, %mul164.4.2
%828 = fmul fast float %672, %822
%neg.4.2 = fsub fast float -0.000000e+00, %828
%829 = tail call fast float @llvm.fmuladd.f32(float %mul160.4.2, float %mul167.4.2, float %neg.4.2)
%mul169.4.2 = fmul fast float %mul167.4.2, %mul164.4.2
%mul170.4.2 = fmul fast float %mul169.4.2, %829
%mul171.4.2 = fmul fast float %820, %670
%mul172.4.2 = fmul fast float %mul164.4.2, %cond.4.2
%mul174.4.2 = fmul fast float %825, %mul
%mul.i.4.2 = fmul fast float %mul174.4.2, %mul174.4.2
%830 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%831 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%832 = tail call fast float @llvm.fmuladd.f32(float %830, float %mul.i.4.2, float 1.000000e+00) #9
%833 = tail call fast float @llvm.fmuladd.f32(float %831, float %mul174.4.2, float %832) #9
%div.i.4.2 = fdiv fast float 1.000000e+00, %833, !fpmath !33
%834 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%835 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%836 = tail call fast float @llvm.fmuladd.f32(float %834, float %mul.i.4.2, float 0xBF93BDB200000000) #9
%837 = tail call fast float @llvm.fmuladd.f32(float %835, float %mul.i.4.2, float 0x3FB1D5E760000000) #9
%838 = tail call fast float @llvm.fmuladd.f32(float %836, float %mul.i.4.2, float 0xBFE81272E0000000) #9
%839 = tail call fast float @llvm.fmuladd.f32(float %837, float %mul174.4.2, float %838) #9
%mul7.4.2 = fmul fast float %mul11.i, %div.i.4.2
%mul176.4.2 = fmul fast float %mul7.4.2, %839
%840 = tail call fast float @llvm.fmuladd.f32(float %mul172.4.2, float %div163.4.2, float %mul176.4.2)
%841 = tail call fast float @llvm.fmuladd.f32(float %mul171.4.2, float %840, float %mul170.4.2)
%splat.splatinsert.4.2 = insertelement <3 x float> undef, float %841, i32 0
%splat.splat.4.2 = shufflevector <3 x float> %splat.splatinsert.4.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.4.2 = fmul fast <3 x float> %splat.splat.4.2, %extractVec140.4.2
%extractVec189.4.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.4.2 = fsub fast <3 x float> %extractVec189.4.2, %mul181.4.2
%extractVec191.4.2 = shufflevector <3 x float> %sub190.4.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.4.2 = shufflevector <4 x float> %loadVec4199.4.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.4.2 = fadd fast <3 x float> %mul181.4.2, %extractVec200.4.2
%extractVec202.4.2 = shufflevector <3 x float> %add201.4.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %842
; <label>:842: ; preds = %819, %810, %808
%extractVec202.4.3716 = phi <4 x float> [ %extractVec202.4.2, %819 ], [ %extractVec202.4.3721, %810 ], [ %extractVec202.4.3721, %808 ]
%843 = phi <3 x float> [ %add201.4.2, %819 ], [ %662, %810 ], [ %662, %808 ]
%loadVec4199.4629 = phi <4 x float> [ %extractVec202.4.2, %819 ], [ %loadVec4199.4.2, %810 ], [ %loadVec4199.4.2, %808 ]
%fcj_buf.sroa.0.1.4.2 = phi <4 x float> [ %extractVec191.4.2, %819 ], [ %fcj_buf.sroa.0.1.3.2, %810 ], [ %fcj_buf.sroa.0.1.3.2, %808 ]
%and120.5.2 = and i32 %37, 2097152
%tobool121.5.2 = icmp eq i32 %and120.5.2, 0
br i1 %tobool121.5.2, label %876, label %844
; <label>:844: ; preds = %842
%845 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.5.2, align 16, !tbaa !13
%846 = fsub fast <4 x float> %845, %669
%847 = extractelement <4 x float> %846, i32 0
%848 = extractelement <4 x float> %846, i32 1
%849 = fmul float %848, %848
%850 = tail call float @llvm.fmuladd.f32(float %847, float %847, float %849) #9
%851 = extractelement <4 x float> %846, i32 2
%852 = tail call float @llvm.fmuladd.f32(float %851, float %851, float %850) #9
%and142.5.2 = and i32 %38, 2097152
%tobool143.5.2 = icmp ne i32 %and142.5.2, 0
%cond.5.2 = select i1 %tobool143.5.2, float 1.000000e+00, float 0.000000e+00
%notrhs.5.2 = icmp ne i32 %add123.5.2, %668
%not.or.cond.5.2 = or i1 %notlhs, %notrhs.5.2
%cmp149..5.2 = or i1 %cmp149, %not.or.cond.5.2
%conv151.5.2 = uitofp i1 %cmp149..5.2 to float
%mul152.5.2 = fmul fast float %conv151.5.2, %nbparam_params.coerce.fca.9.extract
%cmp153.5.2 = fcmp fast olt float %852, %mul152.5.2
br i1 %cmp153.5.2, label %853, label %876
; <label>:853: ; preds = %844
%extractVec140.5.2 = shufflevector <4 x float> %846, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%854 = extractelement <4 x float> %845, i64 3
%855 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.5.2, align 8, !tbaa !13
%856 = extractelement <2 x float> %855, i64 0
%857 = extractelement <2 x float> %855, i64 1
%mul160.5.2 = fmul fast float %857, %673
%858 = fcmp ogt float %852, 0x3E99A2B5C0000000
%859 = select i1 %858, float %852, float 0x3E99A2B5C0000000
%860 = tail call float @llvm.sqrt.f32(float %859) #10
%div163.5.2 = fdiv fast float 1.000000e+00, %860, !fpmath !33
%mul164.5.2 = fmul fast float %div163.5.2, %div163.5.2
%861 = fmul fast float %mul164.5.2, %mul164.5.2
%mul166.5.2 = fmul fast float %861, %cond.5.2
%mul167.5.2 = fmul fast float %mul166.5.2, %mul164.5.2
%862 = fmul fast float %672, %856
%neg.5.2 = fsub fast float -0.000000e+00, %862
%863 = tail call fast float @llvm.fmuladd.f32(float %mul160.5.2, float %mul167.5.2, float %neg.5.2)
%mul169.5.2 = fmul fast float %mul167.5.2, %mul164.5.2
%mul170.5.2 = fmul fast float %mul169.5.2, %863
%mul171.5.2 = fmul fast float %854, %670
%mul172.5.2 = fmul fast float %mul164.5.2, %cond.5.2
%mul174.5.2 = fmul fast float %859, %mul
%mul.i.5.2 = fmul fast float %mul174.5.2, %mul174.5.2
%864 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%865 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%866 = tail call fast float @llvm.fmuladd.f32(float %864, float %mul.i.5.2, float 1.000000e+00) #9
%867 = tail call fast float @llvm.fmuladd.f32(float %865, float %mul174.5.2, float %866) #9
%div.i.5.2 = fdiv fast float 1.000000e+00, %867, !fpmath !33
%868 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%869 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%870 = tail call fast float @llvm.fmuladd.f32(float %868, float %mul.i.5.2, float 0xBF93BDB200000000) #9
%871 = tail call fast float @llvm.fmuladd.f32(float %869, float %mul.i.5.2, float 0x3FB1D5E760000000) #9
%872 = tail call fast float @llvm.fmuladd.f32(float %870, float %mul.i.5.2, float 0xBFE81272E0000000) #9
%873 = tail call fast float @llvm.fmuladd.f32(float %871, float %mul174.5.2, float %872) #9
%mul7.5.2 = fmul fast float %mul11.i, %div.i.5.2
%mul176.5.2 = fmul fast float %mul7.5.2, %873
%874 = tail call fast float @llvm.fmuladd.f32(float %mul172.5.2, float %div163.5.2, float %mul176.5.2)
%875 = tail call fast float @llvm.fmuladd.f32(float %mul171.5.2, float %874, float %mul170.5.2)
%splat.splatinsert.5.2 = insertelement <3 x float> undef, float %875, i32 0
%splat.splat.5.2 = shufflevector <3 x float> %splat.splatinsert.5.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.5.2 = fmul fast <3 x float> %splat.splat.5.2, %extractVec140.5.2
%extractVec189.5.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.4.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.5.2 = fsub fast <3 x float> %extractVec189.5.2, %mul181.5.2
%extractVec191.5.2 = shufflevector <3 x float> %sub190.5.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.5.2 = shufflevector <4 x float> %loadVec4199.5.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.5.2 = fadd fast <3 x float> %mul181.5.2, %extractVec200.5.2
%extractVec202.5.2 = shufflevector <3 x float> %add201.5.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %876
; <label>:876: ; preds = %853, %844, %842
%extractVec202.5.3725 = phi <4 x float> [ %extractVec202.5.2, %853 ], [ %extractVec202.5.3730, %844 ], [ %extractVec202.5.3730, %842 ]
%877 = phi <3 x float> [ %add201.5.2, %853 ], [ %661, %844 ], [ %661, %842 ]
%loadVec4199.5639 = phi <4 x float> [ %extractVec202.5.2, %853 ], [ %loadVec4199.5.2, %844 ], [ %loadVec4199.5.2, %842 ]
%fcj_buf.sroa.0.1.5.2 = phi <4 x float> [ %extractVec191.5.2, %853 ], [ %fcj_buf.sroa.0.1.4.2, %844 ], [ %fcj_buf.sroa.0.1.4.2, %842 ]
%and120.6.2 = and i32 %37, 4194304
%tobool121.6.2 = icmp eq i32 %and120.6.2, 0
br i1 %tobool121.6.2, label %910, label %878
; <label>:878: ; preds = %876
%879 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.6.2, align 16, !tbaa !13
%880 = fsub fast <4 x float> %879, %669
%881 = extractelement <4 x float> %880, i32 0
%882 = extractelement <4 x float> %880, i32 1
%883 = fmul float %882, %882
%884 = tail call float @llvm.fmuladd.f32(float %881, float %881, float %883) #9
%885 = extractelement <4 x float> %880, i32 2
%886 = tail call float @llvm.fmuladd.f32(float %885, float %885, float %884) #9
%and142.6.2 = and i32 %38, 4194304
%tobool143.6.2 = icmp ne i32 %and142.6.2, 0
%cond.6.2 = select i1 %tobool143.6.2, float 1.000000e+00, float 0.000000e+00
%notrhs.6.2 = icmp ne i32 %add123.6.2, %668
%not.or.cond.6.2 = or i1 %notlhs, %notrhs.6.2
%cmp149..6.2 = or i1 %cmp149, %not.or.cond.6.2
%conv151.6.2 = uitofp i1 %cmp149..6.2 to float
%mul152.6.2 = fmul fast float %conv151.6.2, %nbparam_params.coerce.fca.9.extract
%cmp153.6.2 = fcmp fast olt float %886, %mul152.6.2
br i1 %cmp153.6.2, label %887, label %910
; <label>:887: ; preds = %878
%extractVec140.6.2 = shufflevector <4 x float> %880, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%888 = extractelement <4 x float> %879, i64 3
%889 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.6.2, align 8, !tbaa !13
%890 = extractelement <2 x float> %889, i64 0
%891 = extractelement <2 x float> %889, i64 1
%mul160.6.2 = fmul fast float %891, %673
%892 = fcmp ogt float %886, 0x3E99A2B5C0000000
%893 = select i1 %892, float %886, float 0x3E99A2B5C0000000
%894 = tail call float @llvm.sqrt.f32(float %893) #10
%div163.6.2 = fdiv fast float 1.000000e+00, %894, !fpmath !33
%mul164.6.2 = fmul fast float %div163.6.2, %div163.6.2
%895 = fmul fast float %mul164.6.2, %mul164.6.2
%mul166.6.2 = fmul fast float %895, %cond.6.2
%mul167.6.2 = fmul fast float %mul166.6.2, %mul164.6.2
%896 = fmul fast float %672, %890
%neg.6.2 = fsub fast float -0.000000e+00, %896
%897 = tail call fast float @llvm.fmuladd.f32(float %mul160.6.2, float %mul167.6.2, float %neg.6.2)
%mul169.6.2 = fmul fast float %mul167.6.2, %mul164.6.2
%mul170.6.2 = fmul fast float %mul169.6.2, %897
%mul171.6.2 = fmul fast float %888, %670
%mul172.6.2 = fmul fast float %mul164.6.2, %cond.6.2
%mul174.6.2 = fmul fast float %893, %mul
%mul.i.6.2 = fmul fast float %mul174.6.2, %mul174.6.2
%898 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%899 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%900 = tail call fast float @llvm.fmuladd.f32(float %898, float %mul.i.6.2, float 1.000000e+00) #9
%901 = tail call fast float @llvm.fmuladd.f32(float %899, float %mul174.6.2, float %900) #9
%div.i.6.2 = fdiv fast float 1.000000e+00, %901, !fpmath !33
%902 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%903 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%904 = tail call fast float @llvm.fmuladd.f32(float %902, float %mul.i.6.2, float 0xBF93BDB200000000) #9
%905 = tail call fast float @llvm.fmuladd.f32(float %903, float %mul.i.6.2, float 0x3FB1D5E760000000) #9
%906 = tail call fast float @llvm.fmuladd.f32(float %904, float %mul.i.6.2, float 0xBFE81272E0000000) #9
%907 = tail call fast float @llvm.fmuladd.f32(float %905, float %mul174.6.2, float %906) #9
%mul7.6.2 = fmul fast float %mul11.i, %div.i.6.2
%mul176.6.2 = fmul fast float %mul7.6.2, %907
%908 = tail call fast float @llvm.fmuladd.f32(float %mul172.6.2, float %div163.6.2, float %mul176.6.2)
%909 = tail call fast float @llvm.fmuladd.f32(float %mul171.6.2, float %908, float %mul170.6.2)
%splat.splatinsert.6.2 = insertelement <3 x float> undef, float %909, i32 0
%splat.splat.6.2 = shufflevector <3 x float> %splat.splatinsert.6.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.6.2 = fmul fast <3 x float> %splat.splat.6.2, %extractVec140.6.2
%extractVec189.6.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.5.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.6.2 = fsub fast <3 x float> %extractVec189.6.2, %mul181.6.2
%extractVec191.6.2 = shufflevector <3 x float> %sub190.6.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.6.2 = shufflevector <4 x float> %loadVec4199.6.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.6.2 = fadd fast <3 x float> %mul181.6.2, %extractVec200.6.2
%extractVec202.6.2 = shufflevector <3 x float> %add201.6.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %910
; <label>:910: ; preds = %887, %878, %876
%extractVec202.6.3734 = phi <4 x float> [ %extractVec202.6.2, %887 ], [ %extractVec202.6.3739, %878 ], [ %extractVec202.6.3739, %876 ]
%911 = phi <3 x float> [ %add201.6.2, %887 ], [ %660, %878 ], [ %660, %876 ]
%loadVec4199.6649 = phi <4 x float> [ %extractVec202.6.2, %887 ], [ %loadVec4199.6.2, %878 ], [ %loadVec4199.6.2, %876 ]
%fcj_buf.sroa.0.1.6.2 = phi <4 x float> [ %extractVec191.6.2, %887 ], [ %fcj_buf.sroa.0.1.5.2, %878 ], [ %fcj_buf.sroa.0.1.5.2, %876 ]
%and120.7.2 = and i32 %37, 8388608
%tobool121.7.2 = icmp eq i32 %and120.7.2, 0
br i1 %tobool121.7.2, label %944, label %912
; <label>:912: ; preds = %910
%913 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.7.2, align 16, !tbaa !13
%914 = fsub fast <4 x float> %913, %669
%915 = extractelement <4 x float> %914, i32 0
%916 = extractelement <4 x float> %914, i32 1
%917 = fmul float %916, %916
%918 = tail call float @llvm.fmuladd.f32(float %915, float %915, float %917) #9
%919 = extractelement <4 x float> %914, i32 2
%920 = tail call float @llvm.fmuladd.f32(float %919, float %919, float %918) #9
%and142.7.2 = and i32 %38, 8388608
%tobool143.7.2 = icmp ne i32 %and142.7.2, 0
%cond.7.2 = select i1 %tobool143.7.2, float 1.000000e+00, float 0.000000e+00
%notrhs.7.2 = icmp ne i32 %add123.7.2, %668
%not.or.cond.7.2 = or i1 %notlhs, %notrhs.7.2
%cmp149..7.2 = or i1 %cmp149, %not.or.cond.7.2
%conv151.7.2 = uitofp i1 %cmp149..7.2 to float
%mul152.7.2 = fmul fast float %conv151.7.2, %nbparam_params.coerce.fca.9.extract
%cmp153.7.2 = fcmp fast olt float %920, %mul152.7.2
br i1 %cmp153.7.2, label %921, label %944
; <label>:921: ; preds = %912
%extractVec140.7.2 = shufflevector <4 x float> %914, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%922 = extractelement <4 x float> %913, i64 3
%923 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.7.2, align 8, !tbaa !13
%924 = extractelement <2 x float> %923, i64 0
%925 = extractelement <2 x float> %923, i64 1
%mul160.7.2 = fmul fast float %925, %673
%926 = fcmp ogt float %920, 0x3E99A2B5C0000000
%927 = select i1 %926, float %920, float 0x3E99A2B5C0000000
%928 = tail call float @llvm.sqrt.f32(float %927) #10
%div163.7.2 = fdiv fast float 1.000000e+00, %928, !fpmath !33
%mul164.7.2 = fmul fast float %div163.7.2, %div163.7.2
%929 = fmul fast float %mul164.7.2, %mul164.7.2
%mul166.7.2 = fmul fast float %929, %cond.7.2
%mul167.7.2 = fmul fast float %mul166.7.2, %mul164.7.2
%930 = fmul fast float %672, %924
%neg.7.2 = fsub fast float -0.000000e+00, %930
%931 = tail call fast float @llvm.fmuladd.f32(float %mul160.7.2, float %mul167.7.2, float %neg.7.2)
%mul169.7.2 = fmul fast float %mul167.7.2, %mul164.7.2
%mul170.7.2 = fmul fast float %mul169.7.2, %931
%mul171.7.2 = fmul fast float %922, %670
%mul172.7.2 = fmul fast float %mul164.7.2, %cond.7.2
%mul174.7.2 = fmul fast float %927, %mul
%mul.i.7.2 = fmul fast float %mul174.7.2, %mul174.7.2
%932 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%933 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%934 = tail call fast float @llvm.fmuladd.f32(float %932, float %mul.i.7.2, float 1.000000e+00) #9
%935 = tail call fast float @llvm.fmuladd.f32(float %933, float %mul174.7.2, float %934) #9
%div.i.7.2 = fdiv fast float 1.000000e+00, %935, !fpmath !33
%936 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%937 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%938 = tail call fast float @llvm.fmuladd.f32(float %936, float %mul.i.7.2, float 0xBF93BDB200000000) #9
%939 = tail call fast float @llvm.fmuladd.f32(float %937, float %mul.i.7.2, float 0x3FB1D5E760000000) #9
%940 = tail call fast float @llvm.fmuladd.f32(float %938, float %mul.i.7.2, float 0xBFE81272E0000000) #9
%941 = tail call fast float @llvm.fmuladd.f32(float %939, float %mul174.7.2, float %940) #9
%mul7.7.2 = fmul fast float %mul11.i, %div.i.7.2
%mul176.7.2 = fmul fast float %mul7.7.2, %941
%942 = tail call fast float @llvm.fmuladd.f32(float %mul172.7.2, float %div163.7.2, float %mul176.7.2)
%943 = tail call fast float @llvm.fmuladd.f32(float %mul171.7.2, float %942, float %mul170.7.2)
%splat.splatinsert.7.2 = insertelement <3 x float> undef, float %943, i32 0
%splat.splat.7.2 = shufflevector <3 x float> %splat.splatinsert.7.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.7.2 = fmul fast <3 x float> %splat.splat.7.2, %extractVec140.7.2
%extractVec189.7.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.6.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.7.2 = fsub fast <3 x float> %extractVec189.7.2, %mul181.7.2
%extractVec191.7.2 = shufflevector <3 x float> %sub190.7.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.7.2 = shufflevector <4 x float> %loadVec4199.7.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.7.2 = fadd fast <3 x float> %mul181.7.2, %extractVec200.7.2
%extractVec202.7.2 = shufflevector <3 x float> %add201.7.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %944
; <label>:944: ; preds = %921, %912, %910
%extractVec202.7.3743 = phi <4 x float> [ %extractVec202.7.2, %921 ], [ %extractVec202.7.3748, %912 ], [ %extractVec202.7.3748, %910 ]
%loadVec4199.7659 = phi <4 x float> [ %extractVec202.7.2, %921 ], [ %loadVec4199.7.2, %912 ], [ %loadVec4199.7.2, %910 ]
%fcj_buf.sroa.0.1.7.2 = phi <4 x float> [ %extractVec191.7.2, %921 ], [ %fcj_buf.sroa.0.1.6.2, %912 ], [ %fcj_buf.sroa.0.1.6.2, %910 ]
%945 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.2, i32 0
store float %945, float addrspace(3)* %arrayidx207, align 4, !tbaa !17
%946 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.2, i32 1
store float %946, float addrspace(3)* %arrayidx210, align 4, !tbaa !17
%947 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.2, i32 2
store float %947, float addrspace(3)* %arrayidx213, align 4, !tbaa !17
tail call void @reduce_force_j_generic(float addrspace(3)* %11, float addrspace(1)* %f, i32 %1, i32 %3, i32 %add111.2)
br label %.preheader.3584
.preheader.3584: ; preds = %944, %.preheader.2583
%extractVec202.7.3747 = phi <4 x float> [ %extractVec202.7.3743, %944 ], [ %extractVec202.7.3748, %.preheader.2583 ]
%extractVec202.6.3738 = phi <4 x float> [ %extractVec202.6.3734, %944 ], [ %extractVec202.6.3739, %.preheader.2583 ]
%extractVec202.5.3729 = phi <4 x float> [ %extractVec202.5.3725, %944 ], [ %extractVec202.5.3730, %.preheader.2583 ]
%extractVec202.4.3720 = phi <4 x float> [ %extractVec202.4.3716, %944 ], [ %extractVec202.4.3721, %.preheader.2583 ]
%extractVec202.3.3711 = phi <4 x float> [ %extractVec202.3.3707, %944 ], [ %extractVec202.3.3712, %.preheader.2583 ]
%extractVec202.2.3702 = phi <4 x float> [ %extractVec202.2.3698, %944 ], [ %extractVec202.2.3703, %.preheader.2583 ]
%extractVec202.1.3693 = phi <4 x float> [ %extractVec202.1.3689, %944 ], [ %extractVec202.1.3694, %.preheader.2583 ]
%extractVec202.3579684 = phi <4 x float> [ %extractVec202.3579680, %944 ], [ %extractVec202.3579685, %.preheader.2583 ]
%948 = phi <3 x float> [ %911, %944 ], [ %660, %.preheader.2583 ]
%949 = phi <3 x float> [ %877, %944 ], [ %661, %.preheader.2583 ]
%950 = phi <3 x float> [ %843, %944 ], [ %662, %.preheader.2583 ]
%951 = phi <3 x float> [ %809, %944 ], [ %663, %.preheader.2583 ]
%952 = phi <3 x float> [ %775, %944 ], [ %664, %.preheader.2583 ]
%953 = phi <3 x float> [ %741, %944 ], [ %665, %.preheader.2583 ]
%954 = phi <3 x float> [ %707, %944 ], [ %666, %.preheader.2583 ]
%loadVec4199.7.3 = phi <4 x float> [ %loadVec4199.7659, %944 ], [ %loadVec4199.7.2, %.preheader.2583 ]
%loadVec4199.6.3 = phi <4 x float> [ %loadVec4199.6649, %944 ], [ %loadVec4199.6.2, %.preheader.2583 ]
%loadVec4199.5.3 = phi <4 x float> [ %loadVec4199.5639, %944 ], [ %loadVec4199.5.2, %.preheader.2583 ]
%loadVec4199.4.3 = phi <4 x float> [ %loadVec4199.4629, %944 ], [ %loadVec4199.4.2, %.preheader.2583 ]
%loadVec4199.3.3 = phi <4 x float> [ %loadVec4199.3619, %944 ], [ %loadVec4199.3.2, %.preheader.2583 ]
%loadVec4199.2.3 = phi <4 x float> [ %loadVec4199.2609, %944 ], [ %loadVec4199.2.2, %.preheader.2583 ]
%loadVec4199.1.3 = phi <4 x float> [ %loadVec4199.1599, %944 ], [ %loadVec4199.1.2, %.preheader.2583 ]
%loadVec4199.3576 = phi <4 x float> [ %loadVec4199589, %944 ], [ %loadVec4199.2534, %.preheader.2583 ]
%tobool100.3 = icmp ult i32 %37, 16777216
br i1 %tobool100.3, label %.loopexit, label %955
; <label>:955: ; preds = %.preheader.3584
%956 = load i32, i32 addrspace(3)* %arrayidx109.3, align 4, !tbaa !9
%mul110.3 = shl nsw i32 %956, 3
%add111.3 = add i32 %mul110.3, %3
%idxprom112.3 = sext i32 %add111.3 to i64
%arrayidx113.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom112.3
%957 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx113.3, align 16, !tbaa !13
%958 = extractelement <4 x float> %957, i64 3
%arrayidx116.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom112.3
%959 = load <2 x float>, <2 x float> addrspace(1)* %arrayidx116.3, align 8, !tbaa !13
%960 = extractelement <2 x float> %959, i64 0
%961 = extractelement <2 x float> %959, i64 1
%and120.3540 = and i32 %37, 16777216
%tobool121.3541 = icmp eq i32 %and120.3540, 0
br i1 %tobool121.3541, label %994, label %962
; <label>:962: ; preds = %955
%963 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.3542, align 16, !tbaa !13
%964 = fsub fast <4 x float> %963, %957
%965 = extractelement <4 x float> %964, i32 0
%966 = extractelement <4 x float> %964, i32 1
%967 = fmul float %966, %966
%968 = tail call float @llvm.fmuladd.f32(float %965, float %965, float %967) #9
%969 = extractelement <4 x float> %964, i32 2
%970 = tail call float @llvm.fmuladd.f32(float %969, float %969, float %968) #9
%and142.3543 = and i32 %38, 16777216
%tobool143.3544 = icmp ne i32 %and142.3543, 0
%cond.3545 = select i1 %tobool143.3544, float 1.000000e+00, float 0.000000e+00
%notrhs.3546 = icmp ne i32 %mul21, %956
%not.or.cond.3547 = or i1 %notlhs, %notrhs.3546
%cmp149..3548 = or i1 %cmp149, %not.or.cond.3547
%conv151.3549 = uitofp i1 %cmp149..3548 to float
%mul152.3550 = fmul fast float %conv151.3549, %nbparam_params.coerce.fca.9.extract
%cmp153.3551 = fcmp fast olt float %970, %mul152.3550
br i1 %cmp153.3551, label %971, label %994
; <label>:971: ; preds = %962
%extractVec140.3552 = shufflevector <4 x float> %964, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%972 = extractelement <4 x float> %963, i64 3
%973 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.3553, align 8, !tbaa !13
%974 = extractelement <2 x float> %973, i64 0
%975 = extractelement <2 x float> %973, i64 1
%mul160.3554 = fmul fast float %975, %961
%976 = fcmp ogt float %970, 0x3E99A2B5C0000000
%977 = select i1 %976, float %970, float 0x3E99A2B5C0000000
%978 = tail call float @llvm.sqrt.f32(float %977) #10
%div163.3555 = fdiv fast float 1.000000e+00, %978, !fpmath !33
%mul164.3556 = fmul fast float %div163.3555, %div163.3555
%979 = fmul fast float %mul164.3556, %mul164.3556
%mul166.3557 = fmul fast float %979, %cond.3545
%mul167.3558 = fmul fast float %mul166.3557, %mul164.3556
%980 = fmul fast float %960, %974
%neg.3559 = fsub fast float -0.000000e+00, %980
%981 = tail call fast float @llvm.fmuladd.f32(float %mul160.3554, float %mul167.3558, float %neg.3559)
%mul169.3560 = fmul fast float %mul167.3558, %mul164.3556
%mul170.3561 = fmul fast float %mul169.3560, %981
%mul171.3562 = fmul fast float %972, %958
%mul172.3563 = fmul fast float %mul164.3556, %cond.3545
%mul174.3564 = fmul fast float %977, %mul
%mul.i.3565 = fmul fast float %mul174.3564, %mul174.3564
%982 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3565, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%983 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3565, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%984 = tail call fast float @llvm.fmuladd.f32(float %982, float %mul.i.3565, float 1.000000e+00) #9
%985 = tail call fast float @llvm.fmuladd.f32(float %983, float %mul174.3564, float %984) #9
%div.i.3566 = fdiv fast float 1.000000e+00, %985, !fpmath !33
%986 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3565, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%987 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3565, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%988 = tail call fast float @llvm.fmuladd.f32(float %986, float %mul.i.3565, float 0xBF93BDB200000000) #9
%989 = tail call fast float @llvm.fmuladd.f32(float %987, float %mul.i.3565, float 0x3FB1D5E760000000) #9
%990 = tail call fast float @llvm.fmuladd.f32(float %988, float %mul.i.3565, float 0xBFE81272E0000000) #9
%991 = tail call fast float @llvm.fmuladd.f32(float %989, float %mul174.3564, float %990) #9
%mul7.3567 = fmul fast float %mul11.i, %div.i.3566
%mul176.3568 = fmul fast float %mul7.3567, %991
%992 = tail call fast float @llvm.fmuladd.f32(float %mul172.3563, float %div163.3555, float %mul176.3568)
%993 = tail call fast float @llvm.fmuladd.f32(float %mul171.3562, float %992, float %mul170.3561)
%splat.splatinsert.3569 = insertelement <3 x float> undef, float %993, i32 0
%splat.splat.3570 = shufflevector <3 x float> %splat.splatinsert.3569, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.3571 = fmul fast <3 x float> %splat.splat.3570, %extractVec140.3552
%sub190.3572 = fsub fast <3 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %mul181.3571
%extractVec191.3573 = shufflevector <3 x float> %sub190.3572, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.3577 = shufflevector <4 x float> %loadVec4199.3576, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.3578 = fadd fast <3 x float> %mul181.3571, %extractVec200.3577
%extractVec202.3579 = shufflevector <3 x float> %add201.3578, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %994
; <label>:994: ; preds = %971, %962, %955
%extractVec202.3579681 = phi <4 x float> [ %extractVec202.3579, %971 ], [ %extractVec202.3579684, %962 ], [ %extractVec202.3579684, %955 ]
%995 = phi <3 x float> [ %add201.3578, %971 ], [ %954, %962 ], [ %954, %955 ]
%loadVec4199590 = phi <4 x float> [ %extractVec202.3579, %971 ], [ %loadVec4199.3576, %962 ], [ %loadVec4199.3576, %955 ]
%fcj_buf.sroa.0.1.3580 = phi <4 x float> [ %extractVec191.3573, %971 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %962 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %955 ]
%and120.1.3 = and i32 %37, 33554432
%tobool121.1.3 = icmp eq i32 %and120.1.3, 0
br i1 %tobool121.1.3, label %1028, label %996
; <label>:996: ; preds = %994
%997 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.1.3, align 16, !tbaa !13
%998 = fsub fast <4 x float> %997, %957
%999 = extractelement <4 x float> %998, i32 0
%1000 = extractelement <4 x float> %998, i32 1
%1001 = fmul float %1000, %1000
%1002 = tail call float @llvm.fmuladd.f32(float %999, float %999, float %1001) #9
%1003 = extractelement <4 x float> %998, i32 2
%1004 = tail call float @llvm.fmuladd.f32(float %1003, float %1003, float %1002) #9
%and142.1.3 = and i32 %38, 33554432
%tobool143.1.3 = icmp ne i32 %and142.1.3, 0
%cond.1.3 = select i1 %tobool143.1.3, float 1.000000e+00, float 0.000000e+00
%notrhs.1.3 = icmp ne i32 %add123.1.3, %956
%not.or.cond.1.3 = or i1 %notlhs, %notrhs.1.3
%cmp149..1.3 = or i1 %cmp149, %not.or.cond.1.3
%conv151.1.3 = uitofp i1 %cmp149..1.3 to float
%mul152.1.3 = fmul fast float %conv151.1.3, %nbparam_params.coerce.fca.9.extract
%cmp153.1.3 = fcmp fast olt float %1004, %mul152.1.3
br i1 %cmp153.1.3, label %1005, label %1028
; <label>:1005: ; preds = %996
%extractVec140.1.3 = shufflevector <4 x float> %998, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1006 = extractelement <4 x float> %997, i64 3
%1007 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.1.3, align 8, !tbaa !13
%1008 = extractelement <2 x float> %1007, i64 0
%1009 = extractelement <2 x float> %1007, i64 1
%mul160.1.3 = fmul fast float %1009, %961
%1010 = fcmp ogt float %1004, 0x3E99A2B5C0000000
%1011 = select i1 %1010, float %1004, float 0x3E99A2B5C0000000
%1012 = tail call float @llvm.sqrt.f32(float %1011) #10
%div163.1.3 = fdiv fast float 1.000000e+00, %1012, !fpmath !33
%mul164.1.3 = fmul fast float %div163.1.3, %div163.1.3
%1013 = fmul fast float %mul164.1.3, %mul164.1.3
%mul166.1.3 = fmul fast float %1013, %cond.1.3
%mul167.1.3 = fmul fast float %mul166.1.3, %mul164.1.3
%1014 = fmul fast float %960, %1008
%neg.1.3 = fsub fast float -0.000000e+00, %1014
%1015 = tail call fast float @llvm.fmuladd.f32(float %mul160.1.3, float %mul167.1.3, float %neg.1.3)
%mul169.1.3 = fmul fast float %mul167.1.3, %mul164.1.3
%mul170.1.3 = fmul fast float %mul169.1.3, %1015
%mul171.1.3 = fmul fast float %1006, %958
%mul172.1.3 = fmul fast float %mul164.1.3, %cond.1.3
%mul174.1.3 = fmul fast float %1011, %mul
%mul.i.1.3 = fmul fast float %mul174.1.3, %mul174.1.3
%1016 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1017 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1018 = tail call fast float @llvm.fmuladd.f32(float %1016, float %mul.i.1.3, float 1.000000e+00) #9
%1019 = tail call fast float @llvm.fmuladd.f32(float %1017, float %mul174.1.3, float %1018) #9
%div.i.1.3 = fdiv fast float 1.000000e+00, %1019, !fpmath !33
%1020 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1021 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1022 = tail call fast float @llvm.fmuladd.f32(float %1020, float %mul.i.1.3, float 0xBF93BDB200000000) #9
%1023 = tail call fast float @llvm.fmuladd.f32(float %1021, float %mul.i.1.3, float 0x3FB1D5E760000000) #9
%1024 = tail call fast float @llvm.fmuladd.f32(float %1022, float %mul.i.1.3, float 0xBFE81272E0000000) #9
%1025 = tail call fast float @llvm.fmuladd.f32(float %1023, float %mul174.1.3, float %1024) #9
%mul7.1.3 = fmul fast float %mul11.i, %div.i.1.3
%mul176.1.3 = fmul fast float %mul7.1.3, %1025
%1026 = tail call fast float @llvm.fmuladd.f32(float %mul172.1.3, float %div163.1.3, float %mul176.1.3)
%1027 = tail call fast float @llvm.fmuladd.f32(float %mul171.1.3, float %1026, float %mul170.1.3)
%splat.splatinsert.1.3 = insertelement <3 x float> undef, float %1027, i32 0
%splat.splat.1.3 = shufflevector <3 x float> %splat.splatinsert.1.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.1.3 = fmul fast <3 x float> %splat.splat.1.3, %extractVec140.1.3
%extractVec189.1.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3580, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.1.3 = fsub fast <3 x float> %extractVec189.1.3, %mul181.1.3
%extractVec191.1.3 = shufflevector <3 x float> %sub190.1.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.1.3 = shufflevector <4 x float> %loadVec4199.1.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.1.3 = fadd fast <3 x float> %mul181.1.3, %extractVec200.1.3
%extractVec202.1.3 = shufflevector <3 x float> %add201.1.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1028
; <label>:1028: ; preds = %1005, %996, %994
%extractVec202.1.3690 = phi <4 x float> [ %extractVec202.1.3, %1005 ], [ %extractVec202.1.3693, %996 ], [ %extractVec202.1.3693, %994 ]
%1029 = phi <3 x float> [ %add201.1.3, %1005 ], [ %953, %996 ], [ %953, %994 ]
%loadVec4199.1600 = phi <4 x float> [ %extractVec202.1.3, %1005 ], [ %loadVec4199.1.3, %996 ], [ %loadVec4199.1.3, %994 ]
%fcj_buf.sroa.0.1.1.3 = phi <4 x float> [ %extractVec191.1.3, %1005 ], [ %fcj_buf.sroa.0.1.3580, %996 ], [ %fcj_buf.sroa.0.1.3580, %994 ]
%and120.2.3 = and i32 %37, 67108864
%tobool121.2.3 = icmp eq i32 %and120.2.3, 0
br i1 %tobool121.2.3, label %1062, label %1030
; <label>:1030: ; preds = %1028
%1031 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.2.3, align 16, !tbaa !13
%1032 = fsub fast <4 x float> %1031, %957
%1033 = extractelement <4 x float> %1032, i32 0
%1034 = extractelement <4 x float> %1032, i32 1
%1035 = fmul float %1034, %1034
%1036 = tail call float @llvm.fmuladd.f32(float %1033, float %1033, float %1035) #9
%1037 = extractelement <4 x float> %1032, i32 2
%1038 = tail call float @llvm.fmuladd.f32(float %1037, float %1037, float %1036) #9
%and142.2.3 = and i32 %38, 67108864
%tobool143.2.3 = icmp ne i32 %and142.2.3, 0
%cond.2.3 = select i1 %tobool143.2.3, float 1.000000e+00, float 0.000000e+00
%notrhs.2.3 = icmp ne i32 %add123.2.3, %956
%not.or.cond.2.3 = or i1 %notlhs, %notrhs.2.3
%cmp149..2.3 = or i1 %cmp149, %not.or.cond.2.3
%conv151.2.3 = uitofp i1 %cmp149..2.3 to float
%mul152.2.3 = fmul fast float %conv151.2.3, %nbparam_params.coerce.fca.9.extract
%cmp153.2.3 = fcmp fast olt float %1038, %mul152.2.3
br i1 %cmp153.2.3, label %1039, label %1062
; <label>:1039: ; preds = %1030
%extractVec140.2.3 = shufflevector <4 x float> %1032, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1040 = extractelement <4 x float> %1031, i64 3
%1041 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.2.3, align 8, !tbaa !13
%1042 = extractelement <2 x float> %1041, i64 0
%1043 = extractelement <2 x float> %1041, i64 1
%mul160.2.3 = fmul fast float %1043, %961
%1044 = fcmp ogt float %1038, 0x3E99A2B5C0000000
%1045 = select i1 %1044, float %1038, float 0x3E99A2B5C0000000
%1046 = tail call float @llvm.sqrt.f32(float %1045) #10
%div163.2.3 = fdiv fast float 1.000000e+00, %1046, !fpmath !33
%mul164.2.3 = fmul fast float %div163.2.3, %div163.2.3
%1047 = fmul fast float %mul164.2.3, %mul164.2.3
%mul166.2.3 = fmul fast float %1047, %cond.2.3
%mul167.2.3 = fmul fast float %mul166.2.3, %mul164.2.3
%1048 = fmul fast float %960, %1042
%neg.2.3 = fsub fast float -0.000000e+00, %1048
%1049 = tail call fast float @llvm.fmuladd.f32(float %mul160.2.3, float %mul167.2.3, float %neg.2.3)
%mul169.2.3 = fmul fast float %mul167.2.3, %mul164.2.3
%mul170.2.3 = fmul fast float %mul169.2.3, %1049
%mul171.2.3 = fmul fast float %1040, %958
%mul172.2.3 = fmul fast float %mul164.2.3, %cond.2.3
%mul174.2.3 = fmul fast float %1045, %mul
%mul.i.2.3 = fmul fast float %mul174.2.3, %mul174.2.3
%1050 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1051 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1052 = tail call fast float @llvm.fmuladd.f32(float %1050, float %mul.i.2.3, float 1.000000e+00) #9
%1053 = tail call fast float @llvm.fmuladd.f32(float %1051, float %mul174.2.3, float %1052) #9
%div.i.2.3 = fdiv fast float 1.000000e+00, %1053, !fpmath !33
%1054 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1055 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1056 = tail call fast float @llvm.fmuladd.f32(float %1054, float %mul.i.2.3, float 0xBF93BDB200000000) #9
%1057 = tail call fast float @llvm.fmuladd.f32(float %1055, float %mul.i.2.3, float 0x3FB1D5E760000000) #9
%1058 = tail call fast float @llvm.fmuladd.f32(float %1056, float %mul.i.2.3, float 0xBFE81272E0000000) #9
%1059 = tail call fast float @llvm.fmuladd.f32(float %1057, float %mul174.2.3, float %1058) #9
%mul7.2.3 = fmul fast float %mul11.i, %div.i.2.3
%mul176.2.3 = fmul fast float %mul7.2.3, %1059
%1060 = tail call fast float @llvm.fmuladd.f32(float %mul172.2.3, float %div163.2.3, float %mul176.2.3)
%1061 = tail call fast float @llvm.fmuladd.f32(float %mul171.2.3, float %1060, float %mul170.2.3)
%splat.splatinsert.2.3 = insertelement <3 x float> undef, float %1061, i32 0
%splat.splat.2.3 = shufflevector <3 x float> %splat.splatinsert.2.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.2.3 = fmul fast <3 x float> %splat.splat.2.3, %extractVec140.2.3
%extractVec189.2.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.2.3 = fsub fast <3 x float> %extractVec189.2.3, %mul181.2.3
%extractVec191.2.3 = shufflevector <3 x float> %sub190.2.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.2.3 = shufflevector <4 x float> %loadVec4199.2.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.2.3 = fadd fast <3 x float> %mul181.2.3, %extractVec200.2.3
%extractVec202.2.3 = shufflevector <3 x float> %add201.2.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1062
; <label>:1062: ; preds = %1039, %1030, %1028
%extractVec202.2.3699 = phi <4 x float> [ %extractVec202.2.3, %1039 ], [ %extractVec202.2.3702, %1030 ], [ %extractVec202.2.3702, %1028 ]
%1063 = phi <3 x float> [ %add201.2.3, %1039 ], [ %952, %1030 ], [ %952, %1028 ]
%loadVec4199.2610 = phi <4 x float> [ %extractVec202.2.3, %1039 ], [ %loadVec4199.2.3, %1030 ], [ %loadVec4199.2.3, %1028 ]
%fcj_buf.sroa.0.1.2.3 = phi <4 x float> [ %extractVec191.2.3, %1039 ], [ %fcj_buf.sroa.0.1.1.3, %1030 ], [ %fcj_buf.sroa.0.1.1.3, %1028 ]
%and120.3.3 = and i32 %37, 134217728
%tobool121.3.3 = icmp eq i32 %and120.3.3, 0
br i1 %tobool121.3.3, label %1096, label %1064
; <label>:1064: ; preds = %1062
%1065 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.3.3, align 16, !tbaa !13
%1066 = fsub fast <4 x float> %1065, %957
%1067 = extractelement <4 x float> %1066, i32 0
%1068 = extractelement <4 x float> %1066, i32 1
%1069 = fmul float %1068, %1068
%1070 = tail call float @llvm.fmuladd.f32(float %1067, float %1067, float %1069) #9
%1071 = extractelement <4 x float> %1066, i32 2
%1072 = tail call float @llvm.fmuladd.f32(float %1071, float %1071, float %1070) #9
%and142.3.3 = and i32 %38, 134217728
%tobool143.3.3 = icmp ne i32 %and142.3.3, 0
%cond.3.3 = select i1 %tobool143.3.3, float 1.000000e+00, float 0.000000e+00
%notrhs.3.3 = icmp ne i32 %add123.3.3, %956
%not.or.cond.3.3 = or i1 %notlhs, %notrhs.3.3
%cmp149..3.3 = or i1 %cmp149, %not.or.cond.3.3
%conv151.3.3 = uitofp i1 %cmp149..3.3 to float
%mul152.3.3 = fmul fast float %conv151.3.3, %nbparam_params.coerce.fca.9.extract
%cmp153.3.3 = fcmp fast olt float %1072, %mul152.3.3
br i1 %cmp153.3.3, label %1073, label %1096
; <label>:1073: ; preds = %1064
%extractVec140.3.3 = shufflevector <4 x float> %1066, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1074 = extractelement <4 x float> %1065, i64 3
%1075 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.3.3, align 8, !tbaa !13
%1076 = extractelement <2 x float> %1075, i64 0
%1077 = extractelement <2 x float> %1075, i64 1
%mul160.3.3 = fmul fast float %1077, %961
%1078 = fcmp ogt float %1072, 0x3E99A2B5C0000000
%1079 = select i1 %1078, float %1072, float 0x3E99A2B5C0000000
%1080 = tail call float @llvm.sqrt.f32(float %1079) #10
%div163.3.3 = fdiv fast float 1.000000e+00, %1080, !fpmath !33
%mul164.3.3 = fmul fast float %div163.3.3, %div163.3.3
%1081 = fmul fast float %mul164.3.3, %mul164.3.3
%mul166.3.3 = fmul fast float %1081, %cond.3.3
%mul167.3.3 = fmul fast float %mul166.3.3, %mul164.3.3
%1082 = fmul fast float %960, %1076
%neg.3.3 = fsub fast float -0.000000e+00, %1082
%1083 = tail call fast float @llvm.fmuladd.f32(float %mul160.3.3, float %mul167.3.3, float %neg.3.3)
%mul169.3.3 = fmul fast float %mul167.3.3, %mul164.3.3
%mul170.3.3 = fmul fast float %mul169.3.3, %1083
%mul171.3.3 = fmul fast float %1074, %958
%mul172.3.3 = fmul fast float %mul164.3.3, %cond.3.3
%mul174.3.3 = fmul fast float %1079, %mul
%mul.i.3.3 = fmul fast float %mul174.3.3, %mul174.3.3
%1084 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1085 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1086 = tail call fast float @llvm.fmuladd.f32(float %1084, float %mul.i.3.3, float 1.000000e+00) #9
%1087 = tail call fast float @llvm.fmuladd.f32(float %1085, float %mul174.3.3, float %1086) #9
%div.i.3.3 = fdiv fast float 1.000000e+00, %1087, !fpmath !33
%1088 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1089 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1090 = tail call fast float @llvm.fmuladd.f32(float %1088, float %mul.i.3.3, float 0xBF93BDB200000000) #9
%1091 = tail call fast float @llvm.fmuladd.f32(float %1089, float %mul.i.3.3, float 0x3FB1D5E760000000) #9
%1092 = tail call fast float @llvm.fmuladd.f32(float %1090, float %mul.i.3.3, float 0xBFE81272E0000000) #9
%1093 = tail call fast float @llvm.fmuladd.f32(float %1091, float %mul174.3.3, float %1092) #9
%mul7.3.3 = fmul fast float %mul11.i, %div.i.3.3
%mul176.3.3 = fmul fast float %mul7.3.3, %1093
%1094 = tail call fast float @llvm.fmuladd.f32(float %mul172.3.3, float %div163.3.3, float %mul176.3.3)
%1095 = tail call fast float @llvm.fmuladd.f32(float %mul171.3.3, float %1094, float %mul170.3.3)
%splat.splatinsert.3.3 = insertelement <3 x float> undef, float %1095, i32 0
%splat.splat.3.3 = shufflevector <3 x float> %splat.splatinsert.3.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.3.3 = fmul fast <3 x float> %splat.splat.3.3, %extractVec140.3.3
%extractVec189.3.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.3.3 = fsub fast <3 x float> %extractVec189.3.3, %mul181.3.3
%extractVec191.3.3 = shufflevector <3 x float> %sub190.3.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.3.3 = shufflevector <4 x float> %loadVec4199.3.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.3.3 = fadd fast <3 x float> %mul181.3.3, %extractVec200.3.3
%extractVec202.3.3 = shufflevector <3 x float> %add201.3.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1096
; <label>:1096: ; preds = %1073, %1064, %1062
%extractVec202.3.3708 = phi <4 x float> [ %extractVec202.3.3, %1073 ], [ %extractVec202.3.3711, %1064 ], [ %extractVec202.3.3711, %1062 ]
%1097 = phi <3 x float> [ %add201.3.3, %1073 ], [ %951, %1064 ], [ %951, %1062 ]
%loadVec4199.3620 = phi <4 x float> [ %extractVec202.3.3, %1073 ], [ %loadVec4199.3.3, %1064 ], [ %loadVec4199.3.3, %1062 ]
%fcj_buf.sroa.0.1.3.3 = phi <4 x float> [ %extractVec191.3.3, %1073 ], [ %fcj_buf.sroa.0.1.2.3, %1064 ], [ %fcj_buf.sroa.0.1.2.3, %1062 ]
%and120.4.3 = and i32 %37, 268435456
%tobool121.4.3 = icmp eq i32 %and120.4.3, 0
br i1 %tobool121.4.3, label %1130, label %1098
; <label>:1098: ; preds = %1096
%1099 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.4.3, align 16, !tbaa !13
%1100 = fsub fast <4 x float> %1099, %957
%1101 = extractelement <4 x float> %1100, i32 0
%1102 = extractelement <4 x float> %1100, i32 1
%1103 = fmul float %1102, %1102
%1104 = tail call float @llvm.fmuladd.f32(float %1101, float %1101, float %1103) #9
%1105 = extractelement <4 x float> %1100, i32 2
%1106 = tail call float @llvm.fmuladd.f32(float %1105, float %1105, float %1104) #9
%and142.4.3 = and i32 %38, 268435456
%tobool143.4.3 = icmp ne i32 %and142.4.3, 0
%cond.4.3 = select i1 %tobool143.4.3, float 1.000000e+00, float 0.000000e+00
%notrhs.4.3 = icmp ne i32 %add123.4.3, %956
%not.or.cond.4.3 = or i1 %notlhs, %notrhs.4.3
%cmp149..4.3 = or i1 %cmp149, %not.or.cond.4.3
%conv151.4.3 = uitofp i1 %cmp149..4.3 to float
%mul152.4.3 = fmul fast float %conv151.4.3, %nbparam_params.coerce.fca.9.extract
%cmp153.4.3 = fcmp fast olt float %1106, %mul152.4.3
br i1 %cmp153.4.3, label %1107, label %1130
; <label>:1107: ; preds = %1098
%extractVec140.4.3 = shufflevector <4 x float> %1100, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1108 = extractelement <4 x float> %1099, i64 3
%1109 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.4.3, align 8, !tbaa !13
%1110 = extractelement <2 x float> %1109, i64 0
%1111 = extractelement <2 x float> %1109, i64 1
%mul160.4.3 = fmul fast float %1111, %961
%1112 = fcmp ogt float %1106, 0x3E99A2B5C0000000
%1113 = select i1 %1112, float %1106, float 0x3E99A2B5C0000000
%1114 = tail call float @llvm.sqrt.f32(float %1113) #10
%div163.4.3 = fdiv fast float 1.000000e+00, %1114, !fpmath !33
%mul164.4.3 = fmul fast float %div163.4.3, %div163.4.3
%1115 = fmul fast float %mul164.4.3, %mul164.4.3
%mul166.4.3 = fmul fast float %1115, %cond.4.3
%mul167.4.3 = fmul fast float %mul166.4.3, %mul164.4.3
%1116 = fmul fast float %960, %1110
%neg.4.3 = fsub fast float -0.000000e+00, %1116
%1117 = tail call fast float @llvm.fmuladd.f32(float %mul160.4.3, float %mul167.4.3, float %neg.4.3)
%mul169.4.3 = fmul fast float %mul167.4.3, %mul164.4.3
%mul170.4.3 = fmul fast float %mul169.4.3, %1117
%mul171.4.3 = fmul fast float %1108, %958
%mul172.4.3 = fmul fast float %mul164.4.3, %cond.4.3
%mul174.4.3 = fmul fast float %1113, %mul
%mul.i.4.3 = fmul fast float %mul174.4.3, %mul174.4.3
%1118 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1119 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1120 = tail call fast float @llvm.fmuladd.f32(float %1118, float %mul.i.4.3, float 1.000000e+00) #9
%1121 = tail call fast float @llvm.fmuladd.f32(float %1119, float %mul174.4.3, float %1120) #9
%div.i.4.3 = fdiv fast float 1.000000e+00, %1121, !fpmath !33
%1122 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1123 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1124 = tail call fast float @llvm.fmuladd.f32(float %1122, float %mul.i.4.3, float 0xBF93BDB200000000) #9
%1125 = tail call fast float @llvm.fmuladd.f32(float %1123, float %mul.i.4.3, float 0x3FB1D5E760000000) #9
%1126 = tail call fast float @llvm.fmuladd.f32(float %1124, float %mul.i.4.3, float 0xBFE81272E0000000) #9
%1127 = tail call fast float @llvm.fmuladd.f32(float %1125, float %mul174.4.3, float %1126) #9
%mul7.4.3 = fmul fast float %mul11.i, %div.i.4.3
%mul176.4.3 = fmul fast float %mul7.4.3, %1127
%1128 = tail call fast float @llvm.fmuladd.f32(float %mul172.4.3, float %div163.4.3, float %mul176.4.3)
%1129 = tail call fast float @llvm.fmuladd.f32(float %mul171.4.3, float %1128, float %mul170.4.3)
%splat.splatinsert.4.3 = insertelement <3 x float> undef, float %1129, i32 0
%splat.splat.4.3 = shufflevector <3 x float> %splat.splatinsert.4.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.4.3 = fmul fast <3 x float> %splat.splat.4.3, %extractVec140.4.3
%extractVec189.4.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.4.3 = fsub fast <3 x float> %extractVec189.4.3, %mul181.4.3
%extractVec191.4.3 = shufflevector <3 x float> %sub190.4.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.4.3 = shufflevector <4 x float> %loadVec4199.4.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.4.3 = fadd fast <3 x float> %mul181.4.3, %extractVec200.4.3
%extractVec202.4.3 = shufflevector <3 x float> %add201.4.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1130
; <label>:1130: ; preds = %1107, %1098, %1096
%extractVec202.4.3717 = phi <4 x float> [ %extractVec202.4.3, %1107 ], [ %extractVec202.4.3720, %1098 ], [ %extractVec202.4.3720, %1096 ]
%1131 = phi <3 x float> [ %add201.4.3, %1107 ], [ %950, %1098 ], [ %950, %1096 ]
%loadVec4199.4630 = phi <4 x float> [ %extractVec202.4.3, %1107 ], [ %loadVec4199.4.3, %1098 ], [ %loadVec4199.4.3, %1096 ]
%fcj_buf.sroa.0.1.4.3 = phi <4 x float> [ %extractVec191.4.3, %1107 ], [ %fcj_buf.sroa.0.1.3.3, %1098 ], [ %fcj_buf.sroa.0.1.3.3, %1096 ]
%and120.5.3 = and i32 %37, 536870912
%tobool121.5.3 = icmp eq i32 %and120.5.3, 0
br i1 %tobool121.5.3, label %1164, label %1132
; <label>:1132: ; preds = %1130
%1133 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.5.3, align 16, !tbaa !13
%1134 = fsub fast <4 x float> %1133, %957
%1135 = extractelement <4 x float> %1134, i32 0
%1136 = extractelement <4 x float> %1134, i32 1
%1137 = fmul float %1136, %1136
%1138 = tail call float @llvm.fmuladd.f32(float %1135, float %1135, float %1137) #9
%1139 = extractelement <4 x float> %1134, i32 2
%1140 = tail call float @llvm.fmuladd.f32(float %1139, float %1139, float %1138) #9
%and142.5.3 = and i32 %38, 536870912
%tobool143.5.3 = icmp ne i32 %and142.5.3, 0
%cond.5.3 = select i1 %tobool143.5.3, float 1.000000e+00, float 0.000000e+00
%notrhs.5.3 = icmp ne i32 %add123.5.3, %956
%not.or.cond.5.3 = or i1 %notlhs, %notrhs.5.3
%cmp149..5.3 = or i1 %cmp149, %not.or.cond.5.3
%conv151.5.3 = uitofp i1 %cmp149..5.3 to float
%mul152.5.3 = fmul fast float %conv151.5.3, %nbparam_params.coerce.fca.9.extract
%cmp153.5.3 = fcmp fast olt float %1140, %mul152.5.3
br i1 %cmp153.5.3, label %1141, label %1164
; <label>:1141: ; preds = %1132
%extractVec140.5.3 = shufflevector <4 x float> %1134, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1142 = extractelement <4 x float> %1133, i64 3
%1143 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.5.3, align 8, !tbaa !13
%1144 = extractelement <2 x float> %1143, i64 0
%1145 = extractelement <2 x float> %1143, i64 1
%mul160.5.3 = fmul fast float %1145, %961
%1146 = fcmp ogt float %1140, 0x3E99A2B5C0000000
%1147 = select i1 %1146, float %1140, float 0x3E99A2B5C0000000
%1148 = tail call float @llvm.sqrt.f32(float %1147) #10
%div163.5.3 = fdiv fast float 1.000000e+00, %1148, !fpmath !33
%mul164.5.3 = fmul fast float %div163.5.3, %div163.5.3
%1149 = fmul fast float %mul164.5.3, %mul164.5.3
%mul166.5.3 = fmul fast float %1149, %cond.5.3
%mul167.5.3 = fmul fast float %mul166.5.3, %mul164.5.3
%1150 = fmul fast float %960, %1144
%neg.5.3 = fsub fast float -0.000000e+00, %1150
%1151 = tail call fast float @llvm.fmuladd.f32(float %mul160.5.3, float %mul167.5.3, float %neg.5.3)
%mul169.5.3 = fmul fast float %mul167.5.3, %mul164.5.3
%mul170.5.3 = fmul fast float %mul169.5.3, %1151
%mul171.5.3 = fmul fast float %1142, %958
%mul172.5.3 = fmul fast float %mul164.5.3, %cond.5.3
%mul174.5.3 = fmul fast float %1147, %mul
%mul.i.5.3 = fmul fast float %mul174.5.3, %mul174.5.3
%1152 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1153 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1154 = tail call fast float @llvm.fmuladd.f32(float %1152, float %mul.i.5.3, float 1.000000e+00) #9
%1155 = tail call fast float @llvm.fmuladd.f32(float %1153, float %mul174.5.3, float %1154) #9
%div.i.5.3 = fdiv fast float 1.000000e+00, %1155, !fpmath !33
%1156 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1157 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1158 = tail call fast float @llvm.fmuladd.f32(float %1156, float %mul.i.5.3, float 0xBF93BDB200000000) #9
%1159 = tail call fast float @llvm.fmuladd.f32(float %1157, float %mul.i.5.3, float 0x3FB1D5E760000000) #9
%1160 = tail call fast float @llvm.fmuladd.f32(float %1158, float %mul.i.5.3, float 0xBFE81272E0000000) #9
%1161 = tail call fast float @llvm.fmuladd.f32(float %1159, float %mul174.5.3, float %1160) #9
%mul7.5.3 = fmul fast float %mul11.i, %div.i.5.3
%mul176.5.3 = fmul fast float %mul7.5.3, %1161
%1162 = tail call fast float @llvm.fmuladd.f32(float %mul172.5.3, float %div163.5.3, float %mul176.5.3)
%1163 = tail call fast float @llvm.fmuladd.f32(float %mul171.5.3, float %1162, float %mul170.5.3)
%splat.splatinsert.5.3 = insertelement <3 x float> undef, float %1163, i32 0
%splat.splat.5.3 = shufflevector <3 x float> %splat.splatinsert.5.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.5.3 = fmul fast <3 x float> %splat.splat.5.3, %extractVec140.5.3
%extractVec189.5.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.4.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.5.3 = fsub fast <3 x float> %extractVec189.5.3, %mul181.5.3
%extractVec191.5.3 = shufflevector <3 x float> %sub190.5.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.5.3 = shufflevector <4 x float> %loadVec4199.5.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.5.3 = fadd fast <3 x float> %mul181.5.3, %extractVec200.5.3
%extractVec202.5.3 = shufflevector <3 x float> %add201.5.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1164
; <label>:1164: ; preds = %1141, %1132, %1130
%extractVec202.5.3726 = phi <4 x float> [ %extractVec202.5.3, %1141 ], [ %extractVec202.5.3729, %1132 ], [ %extractVec202.5.3729, %1130 ]
%1165 = phi <3 x float> [ %add201.5.3, %1141 ], [ %949, %1132 ], [ %949, %1130 ]
%loadVec4199.5640 = phi <4 x float> [ %extractVec202.5.3, %1141 ], [ %loadVec4199.5.3, %1132 ], [ %loadVec4199.5.3, %1130 ]
%fcj_buf.sroa.0.1.5.3 = phi <4 x float> [ %extractVec191.5.3, %1141 ], [ %fcj_buf.sroa.0.1.4.3, %1132 ], [ %fcj_buf.sroa.0.1.4.3, %1130 ]
%and120.6.3 = and i32 %37, 1073741824
%tobool121.6.3 = icmp eq i32 %and120.6.3, 0
br i1 %tobool121.6.3, label %1198, label %1166
; <label>:1166: ; preds = %1164
%1167 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.6.3, align 16, !tbaa !13
%1168 = fsub fast <4 x float> %1167, %957
%1169 = extractelement <4 x float> %1168, i32 0
%1170 = extractelement <4 x float> %1168, i32 1
%1171 = fmul float %1170, %1170
%1172 = tail call float @llvm.fmuladd.f32(float %1169, float %1169, float %1171) #9
%1173 = extractelement <4 x float> %1168, i32 2
%1174 = tail call float @llvm.fmuladd.f32(float %1173, float %1173, float %1172) #9
%and142.6.3 = and i32 %38, 1073741824
%tobool143.6.3 = icmp ne i32 %and142.6.3, 0
%cond.6.3 = select i1 %tobool143.6.3, float 1.000000e+00, float 0.000000e+00
%notrhs.6.3 = icmp ne i32 %add123.6.3, %956
%not.or.cond.6.3 = or i1 %notlhs, %notrhs.6.3
%cmp149..6.3 = or i1 %cmp149, %not.or.cond.6.3
%conv151.6.3 = uitofp i1 %cmp149..6.3 to float
%mul152.6.3 = fmul fast float %conv151.6.3, %nbparam_params.coerce.fca.9.extract
%cmp153.6.3 = fcmp fast olt float %1174, %mul152.6.3
br i1 %cmp153.6.3, label %1175, label %1198
; <label>:1175: ; preds = %1166
%extractVec140.6.3 = shufflevector <4 x float> %1168, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1176 = extractelement <4 x float> %1167, i64 3
%1177 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.6.3, align 8, !tbaa !13
%1178 = extractelement <2 x float> %1177, i64 0
%1179 = extractelement <2 x float> %1177, i64 1
%mul160.6.3 = fmul fast float %1179, %961
%1180 = fcmp ogt float %1174, 0x3E99A2B5C0000000
%1181 = select i1 %1180, float %1174, float 0x3E99A2B5C0000000
%1182 = tail call float @llvm.sqrt.f32(float %1181) #10
%div163.6.3 = fdiv fast float 1.000000e+00, %1182, !fpmath !33
%mul164.6.3 = fmul fast float %div163.6.3, %div163.6.3
%1183 = fmul fast float %mul164.6.3, %mul164.6.3
%mul166.6.3 = fmul fast float %1183, %cond.6.3
%mul167.6.3 = fmul fast float %mul166.6.3, %mul164.6.3
%1184 = fmul fast float %960, %1178
%neg.6.3 = fsub fast float -0.000000e+00, %1184
%1185 = tail call fast float @llvm.fmuladd.f32(float %mul160.6.3, float %mul167.6.3, float %neg.6.3)
%mul169.6.3 = fmul fast float %mul167.6.3, %mul164.6.3
%mul170.6.3 = fmul fast float %mul169.6.3, %1185
%mul171.6.3 = fmul fast float %1176, %958
%mul172.6.3 = fmul fast float %mul164.6.3, %cond.6.3
%mul174.6.3 = fmul fast float %1181, %mul
%mul.i.6.3 = fmul fast float %mul174.6.3, %mul174.6.3
%1186 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1187 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1188 = tail call fast float @llvm.fmuladd.f32(float %1186, float %mul.i.6.3, float 1.000000e+00) #9
%1189 = tail call fast float @llvm.fmuladd.f32(float %1187, float %mul174.6.3, float %1188) #9
%div.i.6.3 = fdiv fast float 1.000000e+00, %1189, !fpmath !33
%1190 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1191 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1192 = tail call fast float @llvm.fmuladd.f32(float %1190, float %mul.i.6.3, float 0xBF93BDB200000000) #9
%1193 = tail call fast float @llvm.fmuladd.f32(float %1191, float %mul.i.6.3, float 0x3FB1D5E760000000) #9
%1194 = tail call fast float @llvm.fmuladd.f32(float %1192, float %mul.i.6.3, float 0xBFE81272E0000000) #9
%1195 = tail call fast float @llvm.fmuladd.f32(float %1193, float %mul174.6.3, float %1194) #9
%mul7.6.3 = fmul fast float %mul11.i, %div.i.6.3
%mul176.6.3 = fmul fast float %mul7.6.3, %1195
%1196 = tail call fast float @llvm.fmuladd.f32(float %mul172.6.3, float %div163.6.3, float %mul176.6.3)
%1197 = tail call fast float @llvm.fmuladd.f32(float %mul171.6.3, float %1196, float %mul170.6.3)
%splat.splatinsert.6.3 = insertelement <3 x float> undef, float %1197, i32 0
%splat.splat.6.3 = shufflevector <3 x float> %splat.splatinsert.6.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.6.3 = fmul fast <3 x float> %splat.splat.6.3, %extractVec140.6.3
%extractVec189.6.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.5.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.6.3 = fsub fast <3 x float> %extractVec189.6.3, %mul181.6.3
%extractVec191.6.3 = shufflevector <3 x float> %sub190.6.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.6.3 = shufflevector <4 x float> %loadVec4199.6.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.6.3 = fadd fast <3 x float> %mul181.6.3, %extractVec200.6.3
%extractVec202.6.3 = shufflevector <3 x float> %add201.6.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1198
; <label>:1198: ; preds = %1175, %1166, %1164
%extractVec202.6.3735 = phi <4 x float> [ %extractVec202.6.3, %1175 ], [ %extractVec202.6.3738, %1166 ], [ %extractVec202.6.3738, %1164 ]
%1199 = phi <3 x float> [ %add201.6.3, %1175 ], [ %948, %1166 ], [ %948, %1164 ]
%loadVec4199.6650 = phi <4 x float> [ %extractVec202.6.3, %1175 ], [ %loadVec4199.6.3, %1166 ], [ %loadVec4199.6.3, %1164 ]
%fcj_buf.sroa.0.1.6.3 = phi <4 x float> [ %extractVec191.6.3, %1175 ], [ %fcj_buf.sroa.0.1.5.3, %1166 ], [ %fcj_buf.sroa.0.1.5.3, %1164 ]
%tobool121.7.3 = icmp sgt i32 %37, -1
br i1 %tobool121.7.3, label %1232, label %1200
; <label>:1200: ; preds = %1198
%1201 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx129.7.3, align 16, !tbaa !13
%1202 = fsub fast <4 x float> %1201, %957
%1203 = extractelement <4 x float> %1202, i32 0
%1204 = extractelement <4 x float> %1202, i32 1
%1205 = fmul float %1204, %1204
%1206 = tail call float @llvm.fmuladd.f32(float %1203, float %1203, float %1205) #9
%1207 = extractelement <4 x float> %1202, i32 2
%1208 = tail call float @llvm.fmuladd.f32(float %1207, float %1207, float %1206) #9
%tobool143.7.3 = icmp slt i32 %38, 0
%cond.7.3 = select i1 %tobool143.7.3, float 1.000000e+00, float 0.000000e+00
%notrhs.7.3 = icmp ne i32 %add123.7.3, %956
%not.or.cond.7.3 = or i1 %notlhs, %notrhs.7.3
%cmp149..7.3 = or i1 %cmp149, %not.or.cond.7.3
%conv151.7.3 = uitofp i1 %cmp149..7.3 to float
%mul152.7.3 = fmul fast float %conv151.7.3, %nbparam_params.coerce.fca.9.extract
%cmp153.7.3 = fcmp fast olt float %1208, %mul152.7.3
br i1 %cmp153.7.3, label %1209, label %1232
; <label>:1209: ; preds = %1200
%extractVec140.7.3 = shufflevector <4 x float> %1202, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1210 = extractelement <4 x float> %1201, i64 3
%1211 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx158.7.3, align 8, !tbaa !13
%1212 = extractelement <2 x float> %1211, i64 0
%1213 = extractelement <2 x float> %1211, i64 1
%mul160.7.3 = fmul fast float %1213, %961
%1214 = fcmp ogt float %1208, 0x3E99A2B5C0000000
%1215 = select i1 %1214, float %1208, float 0x3E99A2B5C0000000
%1216 = tail call float @llvm.sqrt.f32(float %1215) #10
%div163.7.3 = fdiv fast float 1.000000e+00, %1216, !fpmath !33
%mul164.7.3 = fmul fast float %div163.7.3, %div163.7.3
%1217 = fmul fast float %mul164.7.3, %mul164.7.3
%mul166.7.3 = fmul fast float %1217, %cond.7.3
%mul167.7.3 = fmul fast float %mul166.7.3, %mul164.7.3
%1218 = fmul fast float %960, %1212
%neg.7.3 = fsub fast float -0.000000e+00, %1218
%1219 = tail call fast float @llvm.fmuladd.f32(float %mul160.7.3, float %mul167.7.3, float %neg.7.3)
%mul169.7.3 = fmul fast float %mul167.7.3, %mul164.7.3
%mul170.7.3 = fmul fast float %mul169.7.3, %1219
%mul171.7.3 = fmul fast float %1210, %958
%mul172.7.3 = fmul fast float %mul164.7.3, %cond.7.3
%mul174.7.3 = fmul fast float %1215, %mul
%mul.i.7.3 = fmul fast float %mul174.7.3, %mul174.7.3
%1220 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1221 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1222 = tail call fast float @llvm.fmuladd.f32(float %1220, float %mul.i.7.3, float 1.000000e+00) #9
%1223 = tail call fast float @llvm.fmuladd.f32(float %1221, float %mul174.7.3, float %1222) #9
%div.i.7.3 = fdiv fast float 1.000000e+00, %1223, !fpmath !33
%1224 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1225 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1226 = tail call fast float @llvm.fmuladd.f32(float %1224, float %mul.i.7.3, float 0xBF93BDB200000000) #9
%1227 = tail call fast float @llvm.fmuladd.f32(float %1225, float %mul.i.7.3, float 0x3FB1D5E760000000) #9
%1228 = tail call fast float @llvm.fmuladd.f32(float %1226, float %mul.i.7.3, float 0xBFE81272E0000000) #9
%1229 = tail call fast float @llvm.fmuladd.f32(float %1227, float %mul174.7.3, float %1228) #9
%mul7.7.3 = fmul fast float %mul11.i, %div.i.7.3
%mul176.7.3 = fmul fast float %mul7.7.3, %1229
%1230 = tail call fast float @llvm.fmuladd.f32(float %mul172.7.3, float %div163.7.3, float %mul176.7.3)
%1231 = tail call fast float @llvm.fmuladd.f32(float %mul171.7.3, float %1230, float %mul170.7.3)
%splat.splatinsert.7.3 = insertelement <3 x float> undef, float %1231, i32 0
%splat.splat.7.3 = shufflevector <3 x float> %splat.splatinsert.7.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul181.7.3 = fmul fast <3 x float> %splat.splat.7.3, %extractVec140.7.3
%extractVec189.7.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.6.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub190.7.3 = fsub fast <3 x float> %extractVec189.7.3, %mul181.7.3
%extractVec191.7.3 = shufflevector <3 x float> %sub190.7.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec200.7.3 = shufflevector <4 x float> %loadVec4199.7.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add201.7.3 = fadd fast <3 x float> %mul181.7.3, %extractVec200.7.3
%extractVec202.7.3 = shufflevector <3 x float> %add201.7.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1232
; <label>:1232: ; preds = %1209, %1200, %1198
%extractVec202.7.3744 = phi <4 x float> [ %extractVec202.7.3, %1209 ], [ %extractVec202.7.3747, %1200 ], [ %extractVec202.7.3747, %1198 ]
%loadVec4199.7660 = phi <4 x float> [ %extractVec202.7.3, %1209 ], [ %loadVec4199.7.3, %1200 ], [ %loadVec4199.7.3, %1198 ]
%fcj_buf.sroa.0.1.7.3 = phi <4 x float> [ %extractVec191.7.3, %1209 ], [ %fcj_buf.sroa.0.1.6.3, %1200 ], [ %fcj_buf.sroa.0.1.6.3, %1198 ]
%1233 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.3, i32 0
store float %1233, float addrspace(3)* %arrayidx207, align 4, !tbaa !17
%1234 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.3, i32 1
store float %1234, float addrspace(3)* %arrayidx210, align 4, !tbaa !17
%1235 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.3, i32 2
store float %1235, float addrspace(3)* %arrayidx213, align 4, !tbaa !17
tail call void @reduce_force_j_generic(float addrspace(3)* %11, float addrspace(1)* %f, i32 %1, i32 %3, i32 %add111.3)
br label %.loopexit
}
; Function Attrs: nounwind
define amdgpu_kernel void @nbnxn_kernel_ElecEwTwinCut_VdwLJCombGeom_F_opencl(%struct.cl_nbparam_params %nbparam_params.coerce, <4 x float> addrspace(1)* noalias nocapture readonly %xq, float addrspace(1)* noalias %f, float addrspace(1)* noalias nocapture readnone %e_lj, float addrspace(1)* noalias nocapture readnone %e_el, float addrspace(1)* noalias %fshift, <2 x float> addrspace(1)* noalias nocapture readonly %lj_comb, float addrspace(1)* noalias nocapture readonly %shift_vec, float addrspace(2)* nocapture readnone %nbfp_climg2d, float addrspace(2)* nocapture readnone %nbfp_comb_climg2d, float addrspace(2)* nocapture readnone %coulomb_tab_climg2d, %struct.nbnxn_sci_t addrspace(1)* nocapture readonly %pl_sci, %struct.nbnxn_cj4_t addrspace(1)* nocapture readonly %pl_cj4, %struct.nbnxn_excl_t addrspace(1)* nocapture readonly %excl, i32 %bCalcFshift, <4 x float> addrspace(3)* %xqib, float addrspace(1)* nocapture readnone %debug_buffer) local_unnamed_addr #0 !kernel_arg_addr_space !35 !kernel_arg_access_qual !36 !kernel_arg_type !37 !kernel_arg_base_type !38 !kernel_arg_type_qual !39 !reqd_work_group_size !40 {
%fshift_buf = alloca float, align 4
%fci_buf = alloca [8 x <3 x float>], align 16
%nbparam_params.coerce.fca.2.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 2
%nbparam_params.coerce.fca.5.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 5
%nbparam_params.coerce.fca.9.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 9
%nbparam_params.coerce.fca.10.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 10
%mul = fmul fast float %nbparam_params.coerce.fca.5.extract, %nbparam_params.coerce.fca.5.extract
%1 = tail call i32 @llvm.amdgcn.workitem.id.x() #9, !range !8
%2 = zext i32 %1 to i64
%3 = tail call i32 @llvm.amdgcn.workitem.id.y() #9, !range !8
%dispatch_ptr.i = tail call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #9
%xy_size_ptr.i = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr.i, i64 4
%4 = bitcast i8 addrspace(2)* %xy_size_ptr.i to i32 addrspace(2)*
%xy_size.i = load i32, i32 addrspace(2)* %4, align 4, !invariant.load !7
%x_size.i = and i32 %xy_size.i, 65535
%mulconv = mul nuw nsw i32 %x_size.i, %3
%addconv = add nuw nsw i32 %mulconv, %1
%5 = tail call i32 @llvm.amdgcn.workgroup.id.x() #9
%6 = zext i32 %5 to i64
%div = lshr i32 %addconv, 5
%7 = bitcast float* %fshift_buf to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %7) #9
%8 = bitcast [8 x <3 x float>]* %fci_buf to i8*
call void @llvm.lifetime.start(i64 128, i8* nonnull %8) #9
%add.ptr = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 64
%9 = bitcast <4 x float> addrspace(3)* %add.ptr to i32 addrspace(3)*
%add.ptr18451 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 66
%10 = bitcast <4 x float> addrspace(3)* %add.ptr18451 to <2 x float> addrspace(3)*
%11 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 0
%nb_sci.sroa.0.0..sroa_idx = getelementptr inbounds %struct.nbnxn_sci_t, %struct.nbnxn_sci_t addrspace(1)* %pl_sci, i64 %6, i32 0
%nb_sci.sroa.0.0.copyload = load i32, i32 addrspace(1)* %nb_sci.sroa.0.0..sroa_idx, align 4
%nb_sci.sroa.4.0..sroa_idx275 = getelementptr inbounds %struct.nbnxn_sci_t, %struct.nbnxn_sci_t addrspace(1)* %pl_sci, i64 %6, i32 1
%nb_sci.sroa.4.0.copyload = load i32, i32 addrspace(1)* %nb_sci.sroa.4.0..sroa_idx275, align 4
%nb_sci.sroa.10.0..sroa_idx282 = getelementptr inbounds %struct.nbnxn_sci_t, %struct.nbnxn_sci_t addrspace(1)* %pl_sci, i64 %6, i32 2
%nb_sci.sroa.10.0.copyload = load i32, i32 addrspace(1)* %nb_sci.sroa.10.0..sroa_idx282, align 4
%nb_sci.sroa.11.0..sroa_idx284 = getelementptr inbounds %struct.nbnxn_sci_t, %struct.nbnxn_sci_t addrspace(1)* %pl_sci, i64 %6, i32 3
%nb_sci.sroa.11.0.copyload = load i32, i32 addrspace(1)* %nb_sci.sroa.11.0..sroa_idx284, align 4
%mul22 = shl nsw i32 %nb_sci.sroa.0.0.copyload, 3
%add23 = add i32 %mul22, %3
%mul24 = shl i32 %add23, 3
%add25 = add i32 %mul24, %1
%idxprom26 = sext i32 %add25 to i64
%arrayidx27 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom26
%12 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx27, align 16, !tbaa !13
%mul28 = mul nsw i32 %nb_sci.sroa.4.0.copyload, 3
%idxprom29 = sext i32 %mul28 to i64
%arrayidx30 = getelementptr inbounds float, float addrspace(1)* %shift_vec, i64 %idxprom29
%13 = load float, float addrspace(1)* %arrayidx30, align 4, !tbaa !17
%vecinit = insertelement <4 x float> undef, float %13, i32 0
%add33 = add nsw i32 %mul28, 1
%idxprom34 = sext i32 %add33 to i64
%arrayidx35 = getelementptr inbounds float, float addrspace(1)* %shift_vec, i64 %idxprom34
%14 = load float, float addrspace(1)* %arrayidx35, align 4, !tbaa !17
%vecinit36 = insertelement <4 x float> %vecinit, float %14, i32 1
%add39 = add nsw i32 %mul28, 2
%idxprom40 = sext i32 %add39 to i64
%arrayidx41 = getelementptr inbounds float, float addrspace(1)* %shift_vec, i64 %idxprom40
%15 = load float, float addrspace(1)* %arrayidx41, align 4, !tbaa !17
%vecinit42 = insertelement <4 x float> %vecinit36, float %15, i32 2
%vecinit43 = insertelement <4 x float> %vecinit42, float 0.000000e+00, i32 3
%add44 = fadd fast <4 x float> %vecinit43, %12
%16 = extractelement <4 x float> %add44, i64 3
%mul45 = fmul fast float %16, %nbparam_params.coerce.fca.2.extract
%17 = insertelement <4 x float> %add44, float %mul45, i64 3
%18 = shl nuw nsw i32 %3, 3
%addconv454 = add nuw nsw i32 %18, %1
%arrayidx49 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %addconv454
store <4 x float> %17, <4 x float> addrspace(3)* %arrayidx49, align 16, !tbaa !13
%arrayidx51 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom26
%19 = bitcast <2 x float> addrspace(1)* %arrayidx51 to i64 addrspace(1)*
%20 = load i64, i64 addrspace(1)* %19, align 8, !tbaa !13
%arrayidx55 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %addconv454
%21 = bitcast <2 x float> addrspace(3)* %arrayidx55 to i64 addrspace(3)*
store i64 %20, i64 addrspace(3)* %21, align 8, !tbaa !13
%22 = or i32 %addconv, 32
%23 = icmp eq i32 %22, 32
br i1 %23, label %24, label %.preheader456605
; <label>:24: ; preds = %0
%add.ptr20 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 192
%arrayidx60453 = getelementptr inbounds float, float addrspace(3)* %add.ptr20, i32 %div
%arrayidx60 = bitcast float addrspace(3)* %arrayidx60453 to i32 addrspace(3)*
store volatile i32 0, i32 addrspace(3)* %arrayidx60, align 4, !tbaa !9
br label %.preheader456605
.preheader456605: ; preds = %0, %24
tail call void @llvm.amdgcn.s.barrier() #9
%storetmp = bitcast [8 x <3 x float>]* %fci_buf to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp, align 16, !tbaa !13
%arrayidx64.1 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 1
%storetmp.1 = bitcast <3 x float>* %arrayidx64.1 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.1, align 16, !tbaa !13
%arrayidx64.2 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 2
%storetmp.2 = bitcast <3 x float>* %arrayidx64.2 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.2, align 16, !tbaa !13
%arrayidx64.3 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 3
%storetmp.3 = bitcast <3 x float>* %arrayidx64.3 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.3, align 16, !tbaa !13
%arrayidx64.4 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 4
%storetmp.4 = bitcast <3 x float>* %arrayidx64.4 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.4, align 16, !tbaa !13
%arrayidx64.5 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 5
%storetmp.5 = bitcast <3 x float>* %arrayidx64.5 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.5, align 16, !tbaa !13
%arrayidx64.6 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 6
%storetmp.6 = bitcast <3 x float>* %arrayidx64.6 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.6, align 16, !tbaa !13
%arrayidx64.7 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 7
%storetmp.7 = bitcast <3 x float>* %arrayidx64.7 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.7, align 16, !tbaa !13
%cmp65462 = icmp slt i32 %nb_sci.sroa.10.0.copyload, %nb_sci.sroa.11.0.copyload
br i1 %cmp65462, label %.lr.ph, label %.preheader456605.._crit_edge_crit_edge
.preheader456605.._crit_edge_crit_edge: ; preds = %.preheader456605
%.pre = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %addconv
%.pre686 = add nuw nsw i32 %addconv, 64
%.pre687 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %.pre686
%.pre688 = add nuw nsw i32 %addconv, 128
%.pre689 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %.pre688
br label %._crit_edge
.lr.ph: ; preds = %.preheader456605
%idxprom69 = zext i32 %div to i64
%25 = and i32 %addconv, 31
%and = zext i32 %25 to i64
%26 = or i32 %3, 4
%27 = icmp eq i32 %26, 4
%cmp85 = icmp ult i32 %1, 4
%or.cond255 = and i1 %cmp85, %27
%addconv455 = add nuw nsw i32 %3, %1
%arrayidx96 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %addconv455
%mul106 = and i32 %3, 4
%cmp150 = icmp ugt i32 %3, %1
%notlhs = icmp ne i32 %nb_sci.sroa.4.0.copyload, 22
%mul11.i = fmul fast float %mul, %nbparam_params.coerce.fca.5.extract
%arrayidx212 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %addconv
%add213 = add nuw nsw i32 %addconv, 64
%arrayidx215 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %add213
%add216 = add nuw nsw i32 %addconv, 128
%arrayidx218 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %add216
%add108.3 = or i32 %mul106, 3
%arrayidx110.3 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %add108.3
%add128.7.3 = add nuw nsw i32 %1, 56
%arrayidx130.7.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.7.3
%add124.7.3 = or i32 %mul22, 7
%arrayidx159.7.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.7.3
%add128.6.3 = add nuw nsw i32 %1, 48
%arrayidx130.6.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.6.3
%add124.6.3 = or i32 %mul22, 6
%arrayidx159.6.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.6.3
%add128.5.3 = add nuw nsw i32 %1, 40
%arrayidx130.5.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.5.3
%add124.5.3 = or i32 %mul22, 5
%arrayidx159.5.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.5.3
%add128.4.3 = add nuw nsw i32 %1, 32
%arrayidx130.4.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.4.3
%add124.4.3 = or i32 %mul22, 4
%arrayidx159.4.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.4.3
%add128.3.3 = add nuw nsw i32 %1, 24
%arrayidx130.3.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.3.3
%add124.3.3 = or i32 %mul22, 3
%arrayidx159.3.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.3.3
%add128.2.3 = add nuw nsw i32 %1, 16
%arrayidx130.2.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.2.3
%add124.2.3 = or i32 %mul22, 2
%arrayidx159.2.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.2.3
%add128.1.3 = add nuw nsw i32 %1, 8
%arrayidx130.1.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.1.3
%add124.1.3 = or i32 %mul22, 1
%arrayidx159.1.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.1.3
%arrayidx130.3557 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%arrayidx159.3568 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %1
%add108.2 = or i32 %mul106, 2
%arrayidx110.2 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %add108.2
%add128.7.2 = add nuw nsw i32 %1, 56
%arrayidx130.7.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.7.2
%add124.7.2 = or i32 %mul22, 7
%arrayidx159.7.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.7.2
%add128.6.2 = add nuw nsw i32 %1, 48
%arrayidx130.6.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.6.2
%add124.6.2 = or i32 %mul22, 6
%arrayidx159.6.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.6.2
%add128.5.2 = add nuw nsw i32 %1, 40
%arrayidx130.5.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.5.2
%add124.5.2 = or i32 %mul22, 5
%arrayidx159.5.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.5.2
%add128.4.2 = add nuw nsw i32 %1, 32
%arrayidx130.4.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.4.2
%add124.4.2 = or i32 %mul22, 4
%arrayidx159.4.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.4.2
%add128.3.2 = add nuw nsw i32 %1, 24
%arrayidx130.3.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.3.2
%add124.3.2 = or i32 %mul22, 3
%arrayidx159.3.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.3.2
%add128.2.2 = add nuw nsw i32 %1, 16
%arrayidx130.2.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.2.2
%add124.2.2 = or i32 %mul22, 2
%arrayidx159.2.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.2.2
%add128.1.2 = add nuw nsw i32 %1, 8
%arrayidx130.1.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.1.2
%add124.1.2 = or i32 %mul22, 1
%arrayidx159.1.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.1.2
%arrayidx130.2512 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%arrayidx159.2523 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %1
%add108.1 = or i32 %mul106, 1
%arrayidx110.1 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %add108.1
%add128.7.1 = add nuw nsw i32 %1, 56
%arrayidx130.7.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.7.1
%add124.7.1 = or i32 %mul22, 7
%arrayidx159.7.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.7.1
%add128.6.1 = add nuw nsw i32 %1, 48
%arrayidx130.6.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.6.1
%add124.6.1 = or i32 %mul22, 6
%arrayidx159.6.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.6.1
%add128.5.1 = add nuw nsw i32 %1, 40
%arrayidx130.5.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.5.1
%add124.5.1 = or i32 %mul22, 5
%arrayidx159.5.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.5.1
%add128.4.1 = add nuw nsw i32 %1, 32
%arrayidx130.4.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.4.1
%add124.4.1 = or i32 %mul22, 4
%arrayidx159.4.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.4.1
%add128.3.1 = add nuw nsw i32 %1, 24
%arrayidx130.3.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.3.1
%add124.3.1 = or i32 %mul22, 3
%arrayidx159.3.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.3.1
%add128.2.1 = add nuw nsw i32 %1, 16
%arrayidx130.2.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.2.1
%add124.2.1 = or i32 %mul22, 2
%arrayidx159.2.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.2.1
%add128.1.1 = add nuw nsw i32 %1, 8
%arrayidx130.1.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.1.1
%add124.1.1 = or i32 %mul22, 1
%arrayidx159.1.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.1.1
%arrayidx130.1467 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%arrayidx159.1478 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %1
%arrayidx110 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %mul106
%add128.7 = add nuw nsw i32 %1, 56
%arrayidx130.7 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.7
%add124.7 = or i32 %mul22, 7
%arrayidx159.7 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.7
%add128.6 = add nuw nsw i32 %1, 48
%arrayidx130.6 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.6
%add124.6 = or i32 %mul22, 6
%arrayidx159.6 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.6
%add128.5 = add nuw nsw i32 %1, 40
%arrayidx130.5 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.5
%add124.5 = or i32 %mul22, 5
%arrayidx159.5 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.5
%add128.4 = add nuw nsw i32 %1, 32
%arrayidx130.4 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.4
%add124.4 = or i32 %mul22, 4
%arrayidx159.4 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.4
%add128.3 = add nuw nsw i32 %1, 24
%arrayidx130.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.3
%add124.3 = or i32 %mul22, 3
%arrayidx159.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.3
%add128.2 = add nuw nsw i32 %1, 16
%arrayidx130.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.2
%add124.2 = or i32 %mul22, 2
%arrayidx159.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.2
%add128.1 = add nuw nsw i32 %1, 8
%arrayidx130.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add128.1
%add124.1 = or i32 %mul22, 1
%arrayidx159.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add128.1
%arrayidx130 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%arrayidx159 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %1
%storetmp.promoted = load <4 x float>, <4 x float>* %storetmp, align 16, !tbaa !13
%storetmp.1.promoted = load <4 x float>, <4 x float>* %storetmp.1, align 16, !tbaa !13
%storetmp.2.promoted = load <4 x float>, <4 x float>* %storetmp.2, align 16, !tbaa !13
%storetmp.3.promoted = load <4 x float>, <4 x float>* %storetmp.3, align 16, !tbaa !13
%storetmp.4.promoted = load <4 x float>, <4 x float>* %storetmp.4, align 16, !tbaa !13
%storetmp.5.promoted = load <4 x float>, <4 x float>* %storetmp.5, align 16, !tbaa !13
%storetmp.6.promoted = load <4 x float>, <4 x float>* %storetmp.6, align 16, !tbaa !13
%storetmp.7.promoted = load <4 x float>, <4 x float>* %storetmp.7, align 16, !tbaa !13
br label %28
; <label>:28: ; preds = %.loopexit, %.lr.ph
%extractVec207.7.3763 = phi <4 x float> [ %storetmp.7.promoted, %.lr.ph ], [ %extractVec207.7.3764, %.loopexit ]
%extractVec207.6.3754 = phi <4 x float> [ %storetmp.6.promoted, %.lr.ph ], [ %extractVec207.6.3755, %.loopexit ]
%extractVec207.5.3745 = phi <4 x float> [ %storetmp.5.promoted, %.lr.ph ], [ %extractVec207.5.3746, %.loopexit ]
%extractVec207.4.3736 = phi <4 x float> [ %storetmp.4.promoted, %.lr.ph ], [ %extractVec207.4.3737, %.loopexit ]
%extractVec207.3.3727 = phi <4 x float> [ %storetmp.3.promoted, %.lr.ph ], [ %extractVec207.3.3728, %.loopexit ]
%extractVec207.2.3718 = phi <4 x float> [ %storetmp.2.promoted, %.lr.ph ], [ %extractVec207.2.3719, %.loopexit ]
%extractVec207.1.3709 = phi <4 x float> [ %storetmp.1.promoted, %.lr.ph ], [ %extractVec207.1.3710, %.loopexit ]
%extractVec207.3597700 = phi <4 x float> [ %storetmp.promoted, %.lr.ph ], [ %extractVec207.3597701, %.loopexit ]
%29 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %90, %.loopexit ]
%30 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %91, %.loopexit ]
%31 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %92, %.loopexit ]
%32 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %93, %.loopexit ]
%33 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %94, %.loopexit ]
%34 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %95, %.loopexit ]
%35 = phi <3 x float> [ zeroinitializer, %.lr.ph ], [ %96, %.loopexit ]
%loadVec4204.7 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4204.7680, %.loopexit ]
%loadVec4204.6 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4204.6670, %.loopexit ]
%loadVec4204.5 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4204.5660, %.loopexit ]
%loadVec4204.4 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4204.4650, %.loopexit ]
%loadVec4204.3 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4204.3640, %.loopexit ]
%loadVec4204.2 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4204.2630, %.loopexit ]
%loadVec4204.1 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4204.1620, %.loopexit ]
%loadVec4204 = phi <4 x float> [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %.lr.ph ], [ %loadVec4204610, %.loopexit ]
%j4.0463 = phi i32 [ %nb_sci.sroa.10.0.copyload, %.lr.ph ], [ %inc220, %.loopexit ]
%idxprom67 = sext i32 %j4.0463 to i64
%excl_ind = getelementptr inbounds %struct.nbnxn_cj4_t, %struct.nbnxn_cj4_t addrspace(1)* %pl_cj4, i64 %idxprom67, i32 1, i64 %idxprom69, i32 1
%36 = load i32, i32 addrspace(1)* %excl_ind, align 4, !tbaa !41
%imask76 = getelementptr inbounds %struct.nbnxn_cj4_t, %struct.nbnxn_cj4_t addrspace(1)* %pl_cj4, i64 %idxprom67, i32 1, i64 %idxprom69, i32 0
%37 = load i32, i32 addrspace(1)* %imask76, align 4, !tbaa !43
%idxprom77 = sext i32 %36 to i64
%arrayidx80 = getelementptr inbounds %struct.nbnxn_excl_t, %struct.nbnxn_excl_t addrspace(1)* %excl, i64 %idxprom77, i32 0, i64 %and
%38 = load i32, i32 addrspace(1)* %arrayidx80, align 4, !tbaa !9
%tobool = icmp eq i32 %37, 0
br i1 %tobool, label %.loopexit, label %39
; <label>:39: ; preds = %28
br i1 %or.cond255, label %40, label %.preheader.preheader
; <label>:40: ; preds = %39
%arrayidx91 = getelementptr inbounds %struct.nbnxn_cj4_t, %struct.nbnxn_cj4_t addrspace(1)* %pl_cj4, i64 %idxprom67, i32 0, i64 %2
%41 = load i32, i32 addrspace(1)* %arrayidx91, align 4, !tbaa !9
store i32 %41, i32 addrspace(3)* %arrayidx96, align 4, !tbaa !9
br label %.preheader.preheader
.preheader.preheader: ; preds = %39, %40
%and100 = and i32 %37, 255
%tobool101 = icmp eq i32 %and100, 0
br i1 %tobool101, label %.preheader.1600, label %42
; <label>:42: ; preds = %.preheader.preheader
%43 = load i32, i32 addrspace(3)* %arrayidx110, align 4, !tbaa !9
%mul111 = shl nsw i32 %43, 3
%add112 = add i32 %mul111, %3
%idxprom113 = sext i32 %add112 to i64
%arrayidx114 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom113
%44 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx114, align 16, !tbaa !13
%45 = extractelement <4 x float> %44, i64 3
%arrayidx117 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom113
%46 = load <2 x float>, <2 x float> addrspace(1)* %arrayidx117, align 8, !tbaa !13
%47 = extractelement <2 x float> %46, i64 0
%48 = extractelement <2 x float> %46, i64 1
%and121 = and i32 %37, 1
%tobool122 = icmp eq i32 %and121, 0
br i1 %tobool122, label %81, label %49
; <label>:49: ; preds = %42
%50 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130, align 16, !tbaa !13
%51 = fsub fast <4 x float> %50, %44
%52 = extractelement <4 x float> %51, i32 0
%53 = extractelement <4 x float> %51, i32 1
%54 = fmul float %53, %53
%55 = tail call float @llvm.fmuladd.f32(float %52, float %52, float %54) #9
%56 = extractelement <4 x float> %51, i32 2
%57 = tail call float @llvm.fmuladd.f32(float %56, float %56, float %55) #9
%and143 = and i32 %38, 1
%tobool144 = icmp ne i32 %and143, 0
%cond = select i1 %tobool144, float 1.000000e+00, float 0.000000e+00
%notrhs = icmp ne i32 %mul22, %43
%not.or.cond = or i1 %notlhs, %notrhs
%cmp150. = or i1 %cmp150, %not.or.cond
%conv152 = uitofp i1 %cmp150. to float
%mul153 = fmul fast float %conv152, %nbparam_params.coerce.fca.9.extract
%cmp154 = fcmp fast olt float %57, %mul153
br i1 %cmp154, label %58, label %81
; <label>:58: ; preds = %49
%extractVec141 = shufflevector <4 x float> %51, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%59 = extractelement <4 x float> %50, i64 3
%60 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159, align 8, !tbaa !13
%61 = extractelement <2 x float> %60, i64 0
%62 = extractelement <2 x float> %60, i64 1
%mul161 = fmul fast float %62, %48
%63 = fcmp ogt float %57, 0x3E99A2B5C0000000
%64 = select i1 %63, float %57, float 0x3E99A2B5C0000000
%65 = tail call float @llvm.sqrt.f32(float %64) #10
%div164 = fdiv fast float 1.000000e+00, %65, !fpmath !33
%mul165 = fmul fast float %div164, %div164
%66 = fmul fast float %mul165, %mul165
%mul167 = fmul fast float %66, %cond
%mul168 = fmul fast float %mul167, %mul165
%67 = fmul fast float %47, %61
%neg = fsub fast float -0.000000e+00, %67
%68 = tail call fast float @llvm.fmuladd.f32(float %mul161, float %mul168, float %neg)
%cmp172 = fcmp fast olt float %64, %nbparam_params.coerce.fca.10.extract
%cond174 = select i1 %cmp172, float 1.000000e+00, float 0.000000e+00
%mul170 = fmul fast float %mul165, %cond174
%mul171 = fmul fast float %mul170, %mul168
%mul175 = fmul fast float %mul171, %68
%mul176 = fmul fast float %59, %45
%mul177 = fmul fast float %mul165, %cond
%mul179 = fmul fast float %64, %mul
%mul.i = fmul fast float %mul179, %mul179
%69 = tail call fast float @llvm.fmuladd.f32(float %mul.i, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%70 = tail call fast float @llvm.fmuladd.f32(float %mul.i, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%71 = tail call fast float @llvm.fmuladd.f32(float %69, float %mul.i, float 1.000000e+00) #9
%72 = tail call fast float @llvm.fmuladd.f32(float %70, float %mul179, float %71) #9
%div.i = fdiv fast float 1.000000e+00, %72, !fpmath !33
%73 = tail call fast float @llvm.fmuladd.f32(float %mul.i, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%74 = tail call fast float @llvm.fmuladd.f32(float %mul.i, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%75 = tail call fast float @llvm.fmuladd.f32(float %73, float %mul.i, float 0xBF93BDB200000000) #9
%76 = tail call fast float @llvm.fmuladd.f32(float %74, float %mul.i, float 0x3FB1D5E760000000) #9
%77 = tail call fast float @llvm.fmuladd.f32(float %75, float %mul.i, float 0xBFE81272E0000000) #9
%78 = tail call fast float @llvm.fmuladd.f32(float %76, float %mul179, float %77) #9
%mul8 = fmul fast float %mul11.i, %div.i
%mul181 = fmul fast float %mul8, %78
%79 = tail call fast float @llvm.fmuladd.f32(float %mul177, float %div164, float %mul181)
%80 = tail call fast float @llvm.fmuladd.f32(float %mul176, float %79, float %mul175)
%splat.splatinsert = insertelement <3 x float> undef, float %80, i32 0
%splat.splat = shufflevector <3 x float> %splat.splatinsert, <3 x float> undef, <3 x i32> zeroinitializer
%mul186 = fmul fast <3 x float> %splat.splat, %extractVec141
%sub195 = fsub fast <3 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %mul186
%extractVec196 = shufflevector <3 x float> %sub195, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205 = shufflevector <4 x float> %loadVec4204, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206 = fadd fast <3 x float> %mul186, %extractVec205
%extractVec207 = shufflevector <3 x float> %add206, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %81
; <label>:81: ; preds = %42, %49, %58
%extractVec207.3597705 = phi <4 x float> [ %extractVec207, %58 ], [ %extractVec207.3597700, %49 ], [ %extractVec207.3597700, %42 ]
%82 = phi <3 x float> [ %add206, %58 ], [ %35, %49 ], [ %35, %42 ]
%loadVec4204615 = phi <4 x float> [ %extractVec207, %58 ], [ %loadVec4204, %49 ], [ %loadVec4204, %42 ]
%fcj_buf.sroa.0.1 = phi <4 x float> [ %extractVec196, %58 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %49 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %42 ]
%and121.1 = and i32 %37, 2
%tobool122.1 = icmp eq i32 %and121.1, 0
br i1 %tobool122.1, label %171, label %139
.preheader.1600: ; preds = %.preheader.preheader, %375
%extractVec207.7.3767 = phi <4 x float> [ %extractVec207.7.3763, %.preheader.preheader ], [ %extractVec207.7.3768, %375 ]
%extractVec207.6.3758 = phi <4 x float> [ %extractVec207.6.3754, %.preheader.preheader ], [ %extractVec207.6.3759, %375 ]
%extractVec207.5.3749 = phi <4 x float> [ %extractVec207.5.3745, %.preheader.preheader ], [ %extractVec207.5.3750, %375 ]
%extractVec207.4.3740 = phi <4 x float> [ %extractVec207.4.3736, %.preheader.preheader ], [ %extractVec207.4.3741, %375 ]
%extractVec207.3.3731 = phi <4 x float> [ %extractVec207.3.3727, %.preheader.preheader ], [ %extractVec207.3.3732, %375 ]
%extractVec207.2.3722 = phi <4 x float> [ %extractVec207.2.3718, %.preheader.preheader ], [ %extractVec207.2.3723, %375 ]
%extractVec207.1.3713 = phi <4 x float> [ %extractVec207.1.3709, %.preheader.preheader ], [ %extractVec207.1.3714, %375 ]
%extractVec207.3597704 = phi <4 x float> [ %extractVec207.3597700, %.preheader.preheader ], [ %extractVec207.3597705, %375 ]
%83 = phi <3 x float> [ %29, %.preheader.preheader ], [ %342, %375 ]
%84 = phi <3 x float> [ %30, %.preheader.preheader ], [ %308, %375 ]
%85 = phi <3 x float> [ %31, %.preheader.preheader ], [ %274, %375 ]
%86 = phi <3 x float> [ %32, %.preheader.preheader ], [ %240, %375 ]
%87 = phi <3 x float> [ %33, %.preheader.preheader ], [ %206, %375 ]
%88 = phi <3 x float> [ %34, %.preheader.preheader ], [ %172, %375 ]
%89 = phi <3 x float> [ %35, %.preheader.preheader ], [ %82, %375 ]
%loadVec4204.7.1 = phi <4 x float> [ %loadVec4204.7, %.preheader.preheader ], [ %loadVec4204.7685, %375 ]
%loadVec4204.6.1 = phi <4 x float> [ %loadVec4204.6, %.preheader.preheader ], [ %loadVec4204.6675, %375 ]
%loadVec4204.5.1 = phi <4 x float> [ %loadVec4204.5, %.preheader.preheader ], [ %loadVec4204.5665, %375 ]
%loadVec4204.4.1 = phi <4 x float> [ %loadVec4204.4, %.preheader.preheader ], [ %loadVec4204.4655, %375 ]
%loadVec4204.3.1 = phi <4 x float> [ %loadVec4204.3, %.preheader.preheader ], [ %loadVec4204.3645, %375 ]
%loadVec4204.2.1 = phi <4 x float> [ %loadVec4204.2, %.preheader.preheader ], [ %loadVec4204.2635, %375 ]
%loadVec4204.1.1 = phi <4 x float> [ %loadVec4204.1, %.preheader.preheader ], [ %loadVec4204.1625, %375 ]
%loadVec4204.1504 = phi <4 x float> [ %loadVec4204, %.preheader.preheader ], [ %loadVec4204615, %375 ]
%and100.1 = and i32 %37, 65280
%tobool101.1 = icmp eq i32 %and100.1, 0
br i1 %tobool101.1, label %.preheader.2601, label %379
.loopexit: ; preds = %.preheader.3602, %1232, %28
%extractVec207.7.3764 = phi <4 x float> [ %extractVec207.7.3763, %28 ], [ %extractVec207.7.3762, %1232 ], [ %extractVec207.7.3765, %.preheader.3602 ]
%extractVec207.6.3755 = phi <4 x float> [ %extractVec207.6.3754, %28 ], [ %extractVec207.6.3753, %1232 ], [ %extractVec207.6.3756, %.preheader.3602 ]
%extractVec207.5.3746 = phi <4 x float> [ %extractVec207.5.3745, %28 ], [ %extractVec207.5.3744, %1232 ], [ %extractVec207.5.3747, %.preheader.3602 ]
%extractVec207.4.3737 = phi <4 x float> [ %extractVec207.4.3736, %28 ], [ %extractVec207.4.3735, %1232 ], [ %extractVec207.4.3738, %.preheader.3602 ]
%extractVec207.3.3728 = phi <4 x float> [ %extractVec207.3.3727, %28 ], [ %extractVec207.3.3726, %1232 ], [ %extractVec207.3.3729, %.preheader.3602 ]
%extractVec207.2.3719 = phi <4 x float> [ %extractVec207.2.3718, %28 ], [ %extractVec207.2.3717, %1232 ], [ %extractVec207.2.3720, %.preheader.3602 ]
%extractVec207.1.3710 = phi <4 x float> [ %extractVec207.1.3709, %28 ], [ %extractVec207.1.3708, %1232 ], [ %extractVec207.1.3711, %.preheader.3602 ]
%extractVec207.3597701 = phi <4 x float> [ %extractVec207.3597700, %28 ], [ %extractVec207.3597699, %1232 ], [ %extractVec207.3597702, %.preheader.3602 ]
%90 = phi <3 x float> [ %29, %28 ], [ %1199, %1232 ], [ %948, %.preheader.3602 ]
%91 = phi <3 x float> [ %30, %28 ], [ %1165, %1232 ], [ %949, %.preheader.3602 ]
%92 = phi <3 x float> [ %31, %28 ], [ %1131, %1232 ], [ %950, %.preheader.3602 ]
%93 = phi <3 x float> [ %32, %28 ], [ %1097, %1232 ], [ %951, %.preheader.3602 ]
%94 = phi <3 x float> [ %33, %28 ], [ %1063, %1232 ], [ %952, %.preheader.3602 ]
%95 = phi <3 x float> [ %34, %28 ], [ %1029, %1232 ], [ %953, %.preheader.3602 ]
%96 = phi <3 x float> [ %35, %28 ], [ %995, %1232 ], [ %954, %.preheader.3602 ]
%loadVec4204.7680 = phi <4 x float> [ %loadVec4204.7, %28 ], [ %loadVec4204.7678, %1232 ], [ %loadVec4204.7.3, %.preheader.3602 ]
%loadVec4204.6670 = phi <4 x float> [ %loadVec4204.6, %28 ], [ %loadVec4204.6668, %1232 ], [ %loadVec4204.6.3, %.preheader.3602 ]
%loadVec4204.5660 = phi <4 x float> [ %loadVec4204.5, %28 ], [ %loadVec4204.5658, %1232 ], [ %loadVec4204.5.3, %.preheader.3602 ]
%loadVec4204.4650 = phi <4 x float> [ %loadVec4204.4, %28 ], [ %loadVec4204.4648, %1232 ], [ %loadVec4204.4.3, %.preheader.3602 ]
%loadVec4204.3640 = phi <4 x float> [ %loadVec4204.3, %28 ], [ %loadVec4204.3638, %1232 ], [ %loadVec4204.3.3, %.preheader.3602 ]
%loadVec4204.2630 = phi <4 x float> [ %loadVec4204.2, %28 ], [ %loadVec4204.2628, %1232 ], [ %loadVec4204.2.3, %.preheader.3602 ]
%loadVec4204.1620 = phi <4 x float> [ %loadVec4204.1, %28 ], [ %loadVec4204.1618, %1232 ], [ %loadVec4204.1.3, %.preheader.3602 ]
%loadVec4204610 = phi <4 x float> [ %loadVec4204, %28 ], [ %loadVec4204608, %1232 ], [ %loadVec4204.3594, %.preheader.3602 ]
%inc220 = add nsw i32 %j4.0463, 1
%exitcond = icmp eq i32 %inc220, %nb_sci.sroa.11.0.copyload
br i1 %exitcond, label %._crit_edge.loopexit, label %28
._crit_edge.loopexit: ; preds = %.loopexit
store <4 x float> %extractVec207.3597701, <4 x float>* %storetmp, align 16, !tbaa !13
store <4 x float> %extractVec207.1.3710, <4 x float>* %storetmp.1, align 16, !tbaa !13
store <4 x float> %extractVec207.2.3719, <4 x float>* %storetmp.2, align 16, !tbaa !13
store <4 x float> %extractVec207.3.3728, <4 x float>* %storetmp.3, align 16, !tbaa !13
store <4 x float> %extractVec207.4.3737, <4 x float>* %storetmp.4, align 16, !tbaa !13
store <4 x float> %extractVec207.5.3746, <4 x float>* %storetmp.5, align 16, !tbaa !13
store <4 x float> %extractVec207.6.3755, <4 x float>* %storetmp.6, align 16, !tbaa !13
store <4 x float> %extractVec207.7.3764, <4 x float>* %storetmp.7, align 16, !tbaa !13
br label %._crit_edge
._crit_edge: ; preds = %._crit_edge.loopexit, %.preheader456605.._crit_edge_crit_edge
%arrayidx243.pre-phi = phi float addrspace(3)* [ %.pre689, %.preheader456605.._crit_edge_crit_edge ], [ %arrayidx218, %._crit_edge.loopexit ]
%arrayidx238.pre-phi = phi float addrspace(3)* [ %.pre687, %.preheader456605.._crit_edge_crit_edge ], [ %arrayidx215, %._crit_edge.loopexit ]
%arrayidx233.pre-phi = phi float addrspace(3)* [ %.pre, %.preheader456605.._crit_edge_crit_edge ], [ %arrayidx212, %._crit_edge.loopexit ]
%97 = phi <3 x float> [ zeroinitializer, %.preheader456605.._crit_edge_crit_edge ], [ %90, %._crit_edge.loopexit ]
%98 = phi <3 x float> [ zeroinitializer, %.preheader456605.._crit_edge_crit_edge ], [ %91, %._crit_edge.loopexit ]
%99 = phi <3 x float> [ zeroinitializer, %.preheader456605.._crit_edge_crit_edge ], [ %92, %._crit_edge.loopexit ]
%100 = phi <3 x float> [ zeroinitializer, %.preheader456605.._crit_edge_crit_edge ], [ %93, %._crit_edge.loopexit ]
%101 = phi <3 x float> [ zeroinitializer, %.preheader456605.._crit_edge_crit_edge ], [ %94, %._crit_edge.loopexit ]
%102 = phi <3 x float> [ zeroinitializer, %.preheader456605.._crit_edge_crit_edge ], [ %95, %._crit_edge.loopexit ]
%103 = phi <3 x float> [ zeroinitializer, %.preheader456605.._crit_edge_crit_edge ], [ %96, %._crit_edge.loopexit ]
store float 0.000000e+00, float* %fshift_buf, align 4, !tbaa !17
%tobool244690 = icmp ne i32 %bCalcFshift, 0
%not.cmp222 = icmp ne i32 %nb_sci.sroa.4.0.copyload, 22
%tobool244 = and i1 %tobool244690, %not.cmp222
%mul228 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%add229 = add i32 %mul228, %1
%104 = extractelement <3 x float> %103, i64 0
store float %104, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%105 = extractelement <3 x float> %103, i64 1
store float %105, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
%106 = extractelement <3 x float> %103, i64 2
store float %106, float addrspace(3)* %arrayidx243.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool244, i32 %1, i32 %3, i32 %add229) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add227.1 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul228.1 = or i32 %add227.1, 8
%add229.1 = add i32 %mul228.1, %1
%107 = extractelement <3 x float> %102, i64 0
store float %107, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%108 = extractelement <3 x float> %102, i64 1
store float %108, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
%109 = extractelement <3 x float> %102, i64 2
store float %109, float addrspace(3)* %arrayidx243.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool244, i32 %1, i32 %3, i32 %add229.1) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add227.2 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul228.2 = or i32 %add227.2, 16
%add229.2 = add i32 %mul228.2, %1
%110 = extractelement <3 x float> %101, i64 0
store float %110, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%111 = extractelement <3 x float> %101, i64 1
store float %111, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
%112 = extractelement <3 x float> %101, i64 2
store float %112, float addrspace(3)* %arrayidx243.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool244, i32 %1, i32 %3, i32 %add229.2) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add227.3 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul228.3 = or i32 %add227.3, 24
%add229.3 = add i32 %mul228.3, %1
%113 = extractelement <3 x float> %100, i64 0
store float %113, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%114 = extractelement <3 x float> %100, i64 1
store float %114, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
%115 = extractelement <3 x float> %100, i64 2
store float %115, float addrspace(3)* %arrayidx243.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool244, i32 %1, i32 %3, i32 %add229.3) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add227.4 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul228.4 = or i32 %add227.4, 32
%add229.4 = add i32 %mul228.4, %1
%116 = extractelement <3 x float> %99, i64 0
store float %116, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%117 = extractelement <3 x float> %99, i64 1
store float %117, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
%118 = extractelement <3 x float> %99, i64 2
store float %118, float addrspace(3)* %arrayidx243.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool244, i32 %1, i32 %3, i32 %add229.4) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add227.5 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul228.5 = or i32 %add227.5, 40
%add229.5 = add i32 %mul228.5, %1
%119 = extractelement <3 x float> %98, i64 0
store float %119, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%120 = extractelement <3 x float> %98, i64 1
store float %120, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
%121 = extractelement <3 x float> %98, i64 2
store float %121, float addrspace(3)* %arrayidx243.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool244, i32 %1, i32 %3, i32 %add229.5) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add227.6 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul228.6 = or i32 %add227.6, 48
%add229.6 = add i32 %mul228.6, %1
%122 = extractelement <3 x float> %97, i64 0
store float %122, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%123 = extractelement <3 x float> %97, i64 1
store float %123, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
%124 = extractelement <3 x float> %97, i64 2
store float %124, float addrspace(3)* %arrayidx243.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool244, i32 %1, i32 %3, i32 %add229.6) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add227.7 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul228.7 = or i32 %add227.7, 56
%add229.7 = add i32 %mul228.7, %1
%125 = load <3 x float>, <3 x float>* %arrayidx64.7, align 16
%126 = extractelement <3 x float> %125, i64 0
store float %126, float addrspace(3)* %arrayidx233.pre-phi, align 4, !tbaa !17
%127 = extractelement <3 x float> %125, i64 1
store float %127, float addrspace(3)* %arrayidx238.pre-phi, align 4, !tbaa !17
%128 = extractelement <3 x float> %125, i64 2
store float %128, float addrspace(3)* %arrayidx243.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool244, i32 %1, i32 %3, i32 %add229.7) #9
tail call void @llvm.amdgcn.s.barrier() #9
%cmp247 = icmp ult i32 %3, 3
%or.cond256 = and i1 %cmp247, %tobool244
br i1 %or.cond256, label %129, label %atomicAdd_g_f.exit
; <label>:129: ; preds = %._crit_edge
%add251 = add i32 %mul28, %3
%idxprom252 = zext i32 %add251 to i64
%arrayidx253 = getelementptr inbounds float, float addrspace(1)* %fshift, i64 %idxprom252
%130 = load float, float* %fshift_buf, align 4, !tbaa !17
%131 = load volatile float, float addrspace(1)* %arrayidx253, align 4, !tbaa !17
%132 = bitcast float %131 to i32
%133 = bitcast float addrspace(1)* %arrayidx253 to i32 addrspace(1)*
br label %134
; <label>:134: ; preds = %134, %129
%current.sroa.0.0.i = phi i32 [ %132, %129 ], [ %138, %134 ]
%135 = bitcast i32 %current.sroa.0.0.i to float
%add.i = fadd fast float %135, %130
%136 = bitcast float %add.i to i32
%137 = cmpxchg volatile i32 addrspace(1)* %133, i32 %current.sroa.0.0.i, i32 %136 seq_cst seq_cst
%138 = extractvalue { i32, i1 } %137, 0
%cmp.i = extractvalue { i32, i1 } %137, 1
br i1 %cmp.i, label %atomicAdd_g_f.exit.loopexit, label %134
atomicAdd_g_f.exit.loopexit: ; preds = %134
br label %atomicAdd_g_f.exit
atomicAdd_g_f.exit: ; preds = %atomicAdd_g_f.exit.loopexit, %._crit_edge
call void @llvm.lifetime.end(i64 128, i8* nonnull %8) #9
call void @llvm.lifetime.end(i64 4, i8* nonnull %7) #9
ret void
; <label>:139: ; preds = %81
%140 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.1, align 16, !tbaa !13
%141 = fsub fast <4 x float> %140, %44
%142 = extractelement <4 x float> %141, i32 0
%143 = extractelement <4 x float> %141, i32 1
%144 = fmul float %143, %143
%145 = tail call float @llvm.fmuladd.f32(float %142, float %142, float %144) #9
%146 = extractelement <4 x float> %141, i32 2
%147 = tail call float @llvm.fmuladd.f32(float %146, float %146, float %145) #9
%and143.1 = and i32 %38, 2
%tobool144.1 = icmp ne i32 %and143.1, 0
%cond.1 = select i1 %tobool144.1, float 1.000000e+00, float 0.000000e+00
%notrhs.1 = icmp ne i32 %add124.1, %43
%not.or.cond.1 = or i1 %notlhs, %notrhs.1
%cmp150..1 = or i1 %cmp150, %not.or.cond.1
%conv152.1 = uitofp i1 %cmp150..1 to float
%mul153.1 = fmul fast float %conv152.1, %nbparam_params.coerce.fca.9.extract
%cmp154.1 = fcmp fast olt float %147, %mul153.1
br i1 %cmp154.1, label %148, label %171
; <label>:148: ; preds = %139
%extractVec141.1 = shufflevector <4 x float> %141, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%149 = extractelement <4 x float> %140, i64 3
%150 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.1, align 8, !tbaa !13
%151 = extractelement <2 x float> %150, i64 0
%152 = extractelement <2 x float> %150, i64 1
%mul161.1 = fmul fast float %152, %48
%153 = fcmp ogt float %147, 0x3E99A2B5C0000000
%154 = select i1 %153, float %147, float 0x3E99A2B5C0000000
%155 = tail call float @llvm.sqrt.f32(float %154) #10
%div164.1 = fdiv fast float 1.000000e+00, %155, !fpmath !33
%mul165.1 = fmul fast float %div164.1, %div164.1
%156 = fmul fast float %mul165.1, %mul165.1
%mul167.1 = fmul fast float %156, %cond.1
%mul168.1 = fmul fast float %mul167.1, %mul165.1
%157 = fmul fast float %47, %151
%neg.1 = fsub fast float -0.000000e+00, %157
%158 = tail call fast float @llvm.fmuladd.f32(float %mul161.1, float %mul168.1, float %neg.1)
%cmp172.1 = fcmp fast olt float %154, %nbparam_params.coerce.fca.10.extract
%cond174.1 = select i1 %cmp172.1, float 1.000000e+00, float 0.000000e+00
%mul170.1 = fmul fast float %mul165.1, %cond174.1
%mul171.1 = fmul fast float %mul170.1, %mul168.1
%mul175.1 = fmul fast float %mul171.1, %158
%mul176.1 = fmul fast float %149, %45
%mul177.1 = fmul fast float %mul165.1, %cond.1
%mul179.1 = fmul fast float %154, %mul
%mul.i.1 = fmul fast float %mul179.1, %mul179.1
%159 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%160 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%161 = tail call fast float @llvm.fmuladd.f32(float %159, float %mul.i.1, float 1.000000e+00) #9
%162 = tail call fast float @llvm.fmuladd.f32(float %160, float %mul179.1, float %161) #9
%div.i.1 = fdiv fast float 1.000000e+00, %162, !fpmath !33
%163 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%164 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%165 = tail call fast float @llvm.fmuladd.f32(float %163, float %mul.i.1, float 0xBF93BDB200000000) #9
%166 = tail call fast float @llvm.fmuladd.f32(float %164, float %mul.i.1, float 0x3FB1D5E760000000) #9
%167 = tail call fast float @llvm.fmuladd.f32(float %165, float %mul.i.1, float 0xBFE81272E0000000) #9
%168 = tail call fast float @llvm.fmuladd.f32(float %166, float %mul179.1, float %167) #9
%mul8.1 = fmul fast float %mul11.i, %div.i.1
%mul181.1 = fmul fast float %mul8.1, %168
%169 = tail call fast float @llvm.fmuladd.f32(float %mul177.1, float %div164.1, float %mul181.1)
%170 = tail call fast float @llvm.fmuladd.f32(float %mul176.1, float %169, float %mul175.1)
%splat.splatinsert.1 = insertelement <3 x float> undef, float %170, i32 0
%splat.splat.1 = shufflevector <3 x float> %splat.splatinsert.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.1 = fmul fast <3 x float> %splat.splat.1, %extractVec141.1
%extractVec194.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.1 = fsub fast <3 x float> %extractVec194.1, %mul186.1
%extractVec196.1 = shufflevector <3 x float> %sub195.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.1 = shufflevector <4 x float> %loadVec4204.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.1 = fadd fast <3 x float> %mul186.1, %extractVec205.1
%extractVec207.1 = shufflevector <3 x float> %add206.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %171
; <label>:171: ; preds = %148, %139, %81
%extractVec207.1.3714 = phi <4 x float> [ %extractVec207.1, %148 ], [ %extractVec207.1.3709, %139 ], [ %extractVec207.1.3709, %81 ]
%172 = phi <3 x float> [ %add206.1, %148 ], [ %34, %139 ], [ %34, %81 ]
%loadVec4204.1625 = phi <4 x float> [ %extractVec207.1, %148 ], [ %loadVec4204.1, %139 ], [ %loadVec4204.1, %81 ]
%fcj_buf.sroa.0.1.1 = phi <4 x float> [ %extractVec196.1, %148 ], [ %fcj_buf.sroa.0.1, %139 ], [ %fcj_buf.sroa.0.1, %81 ]
%and121.2 = and i32 %37, 4
%tobool122.2 = icmp eq i32 %and121.2, 0
br i1 %tobool122.2, label %205, label %173
; <label>:173: ; preds = %171
%174 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.2, align 16, !tbaa !13
%175 = fsub fast <4 x float> %174, %44
%176 = extractelement <4 x float> %175, i32 0
%177 = extractelement <4 x float> %175, i32 1
%178 = fmul float %177, %177
%179 = tail call float @llvm.fmuladd.f32(float %176, float %176, float %178) #9
%180 = extractelement <4 x float> %175, i32 2
%181 = tail call float @llvm.fmuladd.f32(float %180, float %180, float %179) #9
%and143.2 = and i32 %38, 4
%tobool144.2 = icmp ne i32 %and143.2, 0
%cond.2 = select i1 %tobool144.2, float 1.000000e+00, float 0.000000e+00
%notrhs.2 = icmp ne i32 %add124.2, %43
%not.or.cond.2 = or i1 %notlhs, %notrhs.2
%cmp150..2 = or i1 %cmp150, %not.or.cond.2
%conv152.2 = uitofp i1 %cmp150..2 to float
%mul153.2 = fmul fast float %conv152.2, %nbparam_params.coerce.fca.9.extract
%cmp154.2 = fcmp fast olt float %181, %mul153.2
br i1 %cmp154.2, label %182, label %205
; <label>:182: ; preds = %173
%extractVec141.2 = shufflevector <4 x float> %175, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%183 = extractelement <4 x float> %174, i64 3
%184 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.2, align 8, !tbaa !13
%185 = extractelement <2 x float> %184, i64 0
%186 = extractelement <2 x float> %184, i64 1
%mul161.2 = fmul fast float %186, %48
%187 = fcmp ogt float %181, 0x3E99A2B5C0000000
%188 = select i1 %187, float %181, float 0x3E99A2B5C0000000
%189 = tail call float @llvm.sqrt.f32(float %188) #10
%div164.2 = fdiv fast float 1.000000e+00, %189, !fpmath !33
%mul165.2 = fmul fast float %div164.2, %div164.2
%190 = fmul fast float %mul165.2, %mul165.2
%mul167.2 = fmul fast float %190, %cond.2
%mul168.2 = fmul fast float %mul167.2, %mul165.2
%191 = fmul fast float %47, %185
%neg.2 = fsub fast float -0.000000e+00, %191
%192 = tail call fast float @llvm.fmuladd.f32(float %mul161.2, float %mul168.2, float %neg.2)
%cmp172.2 = fcmp fast olt float %188, %nbparam_params.coerce.fca.10.extract
%cond174.2 = select i1 %cmp172.2, float 1.000000e+00, float 0.000000e+00
%mul170.2 = fmul fast float %mul165.2, %cond174.2
%mul171.2 = fmul fast float %mul170.2, %mul168.2
%mul175.2 = fmul fast float %mul171.2, %192
%mul176.2 = fmul fast float %183, %45
%mul177.2 = fmul fast float %mul165.2, %cond.2
%mul179.2 = fmul fast float %188, %mul
%mul.i.2 = fmul fast float %mul179.2, %mul179.2
%193 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%194 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%195 = tail call fast float @llvm.fmuladd.f32(float %193, float %mul.i.2, float 1.000000e+00) #9
%196 = tail call fast float @llvm.fmuladd.f32(float %194, float %mul179.2, float %195) #9
%div.i.2 = fdiv fast float 1.000000e+00, %196, !fpmath !33
%197 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%198 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%199 = tail call fast float @llvm.fmuladd.f32(float %197, float %mul.i.2, float 0xBF93BDB200000000) #9
%200 = tail call fast float @llvm.fmuladd.f32(float %198, float %mul.i.2, float 0x3FB1D5E760000000) #9
%201 = tail call fast float @llvm.fmuladd.f32(float %199, float %mul.i.2, float 0xBFE81272E0000000) #9
%202 = tail call fast float @llvm.fmuladd.f32(float %200, float %mul179.2, float %201) #9
%mul8.2 = fmul fast float %mul11.i, %div.i.2
%mul181.2 = fmul fast float %mul8.2, %202
%203 = tail call fast float @llvm.fmuladd.f32(float %mul177.2, float %div164.2, float %mul181.2)
%204 = tail call fast float @llvm.fmuladd.f32(float %mul176.2, float %203, float %mul175.2)
%splat.splatinsert.2 = insertelement <3 x float> undef, float %204, i32 0
%splat.splat.2 = shufflevector <3 x float> %splat.splatinsert.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.2 = fmul fast <3 x float> %splat.splat.2, %extractVec141.2
%extractVec194.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.2 = fsub fast <3 x float> %extractVec194.2, %mul186.2
%extractVec196.2 = shufflevector <3 x float> %sub195.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.2 = shufflevector <4 x float> %loadVec4204.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.2 = fadd fast <3 x float> %mul186.2, %extractVec205.2
%extractVec207.2 = shufflevector <3 x float> %add206.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %205
; <label>:205: ; preds = %182, %173, %171
%extractVec207.2.3723 = phi <4 x float> [ %extractVec207.2, %182 ], [ %extractVec207.2.3718, %173 ], [ %extractVec207.2.3718, %171 ]
%206 = phi <3 x float> [ %add206.2, %182 ], [ %33, %173 ], [ %33, %171 ]
%loadVec4204.2635 = phi <4 x float> [ %extractVec207.2, %182 ], [ %loadVec4204.2, %173 ], [ %loadVec4204.2, %171 ]
%fcj_buf.sroa.0.1.2 = phi <4 x float> [ %extractVec196.2, %182 ], [ %fcj_buf.sroa.0.1.1, %173 ], [ %fcj_buf.sroa.0.1.1, %171 ]
%and121.3 = and i32 %37, 8
%tobool122.3 = icmp eq i32 %and121.3, 0
br i1 %tobool122.3, label %239, label %207
; <label>:207: ; preds = %205
%208 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.3, align 16, !tbaa !13
%209 = fsub fast <4 x float> %208, %44
%210 = extractelement <4 x float> %209, i32 0
%211 = extractelement <4 x float> %209, i32 1
%212 = fmul float %211, %211
%213 = tail call float @llvm.fmuladd.f32(float %210, float %210, float %212) #9
%214 = extractelement <4 x float> %209, i32 2
%215 = tail call float @llvm.fmuladd.f32(float %214, float %214, float %213) #9
%and143.3 = and i32 %38, 8
%tobool144.3 = icmp ne i32 %and143.3, 0
%cond.3 = select i1 %tobool144.3, float 1.000000e+00, float 0.000000e+00
%notrhs.3 = icmp ne i32 %add124.3, %43
%not.or.cond.3 = or i1 %notlhs, %notrhs.3
%cmp150..3 = or i1 %cmp150, %not.or.cond.3
%conv152.3 = uitofp i1 %cmp150..3 to float
%mul153.3 = fmul fast float %conv152.3, %nbparam_params.coerce.fca.9.extract
%cmp154.3 = fcmp fast olt float %215, %mul153.3
br i1 %cmp154.3, label %216, label %239
; <label>:216: ; preds = %207
%extractVec141.3 = shufflevector <4 x float> %209, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%217 = extractelement <4 x float> %208, i64 3
%218 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.3, align 8, !tbaa !13
%219 = extractelement <2 x float> %218, i64 0
%220 = extractelement <2 x float> %218, i64 1
%mul161.3 = fmul fast float %220, %48
%221 = fcmp ogt float %215, 0x3E99A2B5C0000000
%222 = select i1 %221, float %215, float 0x3E99A2B5C0000000
%223 = tail call float @llvm.sqrt.f32(float %222) #10
%div164.3 = fdiv fast float 1.000000e+00, %223, !fpmath !33
%mul165.3 = fmul fast float %div164.3, %div164.3
%224 = fmul fast float %mul165.3, %mul165.3
%mul167.3 = fmul fast float %224, %cond.3
%mul168.3 = fmul fast float %mul167.3, %mul165.3
%225 = fmul fast float %47, %219
%neg.3 = fsub fast float -0.000000e+00, %225
%226 = tail call fast float @llvm.fmuladd.f32(float %mul161.3, float %mul168.3, float %neg.3)
%cmp172.3 = fcmp fast olt float %222, %nbparam_params.coerce.fca.10.extract
%cond174.3 = select i1 %cmp172.3, float 1.000000e+00, float 0.000000e+00
%mul170.3 = fmul fast float %mul165.3, %cond174.3
%mul171.3 = fmul fast float %mul170.3, %mul168.3
%mul175.3 = fmul fast float %mul171.3, %226
%mul176.3 = fmul fast float %217, %45
%mul177.3 = fmul fast float %mul165.3, %cond.3
%mul179.3 = fmul fast float %222, %mul
%mul.i.3 = fmul fast float %mul179.3, %mul179.3
%227 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%228 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%229 = tail call fast float @llvm.fmuladd.f32(float %227, float %mul.i.3, float 1.000000e+00) #9
%230 = tail call fast float @llvm.fmuladd.f32(float %228, float %mul179.3, float %229) #9
%div.i.3 = fdiv fast float 1.000000e+00, %230, !fpmath !33
%231 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%232 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%233 = tail call fast float @llvm.fmuladd.f32(float %231, float %mul.i.3, float 0xBF93BDB200000000) #9
%234 = tail call fast float @llvm.fmuladd.f32(float %232, float %mul.i.3, float 0x3FB1D5E760000000) #9
%235 = tail call fast float @llvm.fmuladd.f32(float %233, float %mul.i.3, float 0xBFE81272E0000000) #9
%236 = tail call fast float @llvm.fmuladd.f32(float %234, float %mul179.3, float %235) #9
%mul8.3 = fmul fast float %mul11.i, %div.i.3
%mul181.3 = fmul fast float %mul8.3, %236
%237 = tail call fast float @llvm.fmuladd.f32(float %mul177.3, float %div164.3, float %mul181.3)
%238 = tail call fast float @llvm.fmuladd.f32(float %mul176.3, float %237, float %mul175.3)
%splat.splatinsert.3 = insertelement <3 x float> undef, float %238, i32 0
%splat.splat.3 = shufflevector <3 x float> %splat.splatinsert.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.3 = fmul fast <3 x float> %splat.splat.3, %extractVec141.3
%extractVec194.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.3 = fsub fast <3 x float> %extractVec194.3, %mul186.3
%extractVec196.3 = shufflevector <3 x float> %sub195.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.3 = shufflevector <4 x float> %loadVec4204.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.3 = fadd fast <3 x float> %mul186.3, %extractVec205.3
%extractVec207.3 = shufflevector <3 x float> %add206.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %239
; <label>:239: ; preds = %216, %207, %205
%extractVec207.3.3732 = phi <4 x float> [ %extractVec207.3, %216 ], [ %extractVec207.3.3727, %207 ], [ %extractVec207.3.3727, %205 ]
%240 = phi <3 x float> [ %add206.3, %216 ], [ %32, %207 ], [ %32, %205 ]
%loadVec4204.3645 = phi <4 x float> [ %extractVec207.3, %216 ], [ %loadVec4204.3, %207 ], [ %loadVec4204.3, %205 ]
%fcj_buf.sroa.0.1.3 = phi <4 x float> [ %extractVec196.3, %216 ], [ %fcj_buf.sroa.0.1.2, %207 ], [ %fcj_buf.sroa.0.1.2, %205 ]
%and121.4 = and i32 %37, 16
%tobool122.4 = icmp eq i32 %and121.4, 0
br i1 %tobool122.4, label %273, label %241
; <label>:241: ; preds = %239
%242 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.4, align 16, !tbaa !13
%243 = fsub fast <4 x float> %242, %44
%244 = extractelement <4 x float> %243, i32 0
%245 = extractelement <4 x float> %243, i32 1
%246 = fmul float %245, %245
%247 = tail call float @llvm.fmuladd.f32(float %244, float %244, float %246) #9
%248 = extractelement <4 x float> %243, i32 2
%249 = tail call float @llvm.fmuladd.f32(float %248, float %248, float %247) #9
%and143.4 = and i32 %38, 16
%tobool144.4 = icmp ne i32 %and143.4, 0
%cond.4 = select i1 %tobool144.4, float 1.000000e+00, float 0.000000e+00
%notrhs.4 = icmp ne i32 %add124.4, %43
%not.or.cond.4 = or i1 %notlhs, %notrhs.4
%cmp150..4 = or i1 %cmp150, %not.or.cond.4
%conv152.4 = uitofp i1 %cmp150..4 to float
%mul153.4 = fmul fast float %conv152.4, %nbparam_params.coerce.fca.9.extract
%cmp154.4 = fcmp fast olt float %249, %mul153.4
br i1 %cmp154.4, label %250, label %273
; <label>:250: ; preds = %241
%extractVec141.4 = shufflevector <4 x float> %243, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%251 = extractelement <4 x float> %242, i64 3
%252 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.4, align 8, !tbaa !13
%253 = extractelement <2 x float> %252, i64 0
%254 = extractelement <2 x float> %252, i64 1
%mul161.4 = fmul fast float %254, %48
%255 = fcmp ogt float %249, 0x3E99A2B5C0000000
%256 = select i1 %255, float %249, float 0x3E99A2B5C0000000
%257 = tail call float @llvm.sqrt.f32(float %256) #10
%div164.4 = fdiv fast float 1.000000e+00, %257, !fpmath !33
%mul165.4 = fmul fast float %div164.4, %div164.4
%258 = fmul fast float %mul165.4, %mul165.4
%mul167.4 = fmul fast float %258, %cond.4
%mul168.4 = fmul fast float %mul167.4, %mul165.4
%259 = fmul fast float %47, %253
%neg.4 = fsub fast float -0.000000e+00, %259
%260 = tail call fast float @llvm.fmuladd.f32(float %mul161.4, float %mul168.4, float %neg.4)
%cmp172.4 = fcmp fast olt float %256, %nbparam_params.coerce.fca.10.extract
%cond174.4 = select i1 %cmp172.4, float 1.000000e+00, float 0.000000e+00
%mul170.4 = fmul fast float %mul165.4, %cond174.4
%mul171.4 = fmul fast float %mul170.4, %mul168.4
%mul175.4 = fmul fast float %mul171.4, %260
%mul176.4 = fmul fast float %251, %45
%mul177.4 = fmul fast float %mul165.4, %cond.4
%mul179.4 = fmul fast float %256, %mul
%mul.i.4 = fmul fast float %mul179.4, %mul179.4
%261 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%262 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%263 = tail call fast float @llvm.fmuladd.f32(float %261, float %mul.i.4, float 1.000000e+00) #9
%264 = tail call fast float @llvm.fmuladd.f32(float %262, float %mul179.4, float %263) #9
%div.i.4 = fdiv fast float 1.000000e+00, %264, !fpmath !33
%265 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%266 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%267 = tail call fast float @llvm.fmuladd.f32(float %265, float %mul.i.4, float 0xBF93BDB200000000) #9
%268 = tail call fast float @llvm.fmuladd.f32(float %266, float %mul.i.4, float 0x3FB1D5E760000000) #9
%269 = tail call fast float @llvm.fmuladd.f32(float %267, float %mul.i.4, float 0xBFE81272E0000000) #9
%270 = tail call fast float @llvm.fmuladd.f32(float %268, float %mul179.4, float %269) #9
%mul8.4 = fmul fast float %mul11.i, %div.i.4
%mul181.4 = fmul fast float %mul8.4, %270
%271 = tail call fast float @llvm.fmuladd.f32(float %mul177.4, float %div164.4, float %mul181.4)
%272 = tail call fast float @llvm.fmuladd.f32(float %mul176.4, float %271, float %mul175.4)
%splat.splatinsert.4 = insertelement <3 x float> undef, float %272, i32 0
%splat.splat.4 = shufflevector <3 x float> %splat.splatinsert.4, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.4 = fmul fast <3 x float> %splat.splat.4, %extractVec141.4
%extractVec194.4 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.4 = fsub fast <3 x float> %extractVec194.4, %mul186.4
%extractVec196.4 = shufflevector <3 x float> %sub195.4, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.4 = shufflevector <4 x float> %loadVec4204.4, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.4 = fadd fast <3 x float> %mul186.4, %extractVec205.4
%extractVec207.4 = shufflevector <3 x float> %add206.4, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %273
; <label>:273: ; preds = %250, %241, %239
%extractVec207.4.3741 = phi <4 x float> [ %extractVec207.4, %250 ], [ %extractVec207.4.3736, %241 ], [ %extractVec207.4.3736, %239 ]
%274 = phi <3 x float> [ %add206.4, %250 ], [ %31, %241 ], [ %31, %239 ]
%loadVec4204.4655 = phi <4 x float> [ %extractVec207.4, %250 ], [ %loadVec4204.4, %241 ], [ %loadVec4204.4, %239 ]
%fcj_buf.sroa.0.1.4 = phi <4 x float> [ %extractVec196.4, %250 ], [ %fcj_buf.sroa.0.1.3, %241 ], [ %fcj_buf.sroa.0.1.3, %239 ]
%and121.5 = and i32 %37, 32
%tobool122.5 = icmp eq i32 %and121.5, 0
br i1 %tobool122.5, label %307, label %275
; <label>:275: ; preds = %273
%276 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.5, align 16, !tbaa !13
%277 = fsub fast <4 x float> %276, %44
%278 = extractelement <4 x float> %277, i32 0
%279 = extractelement <4 x float> %277, i32 1
%280 = fmul float %279, %279
%281 = tail call float @llvm.fmuladd.f32(float %278, float %278, float %280) #9
%282 = extractelement <4 x float> %277, i32 2
%283 = tail call float @llvm.fmuladd.f32(float %282, float %282, float %281) #9
%and143.5 = and i32 %38, 32
%tobool144.5 = icmp ne i32 %and143.5, 0
%cond.5 = select i1 %tobool144.5, float 1.000000e+00, float 0.000000e+00
%notrhs.5 = icmp ne i32 %add124.5, %43
%not.or.cond.5 = or i1 %notlhs, %notrhs.5
%cmp150..5 = or i1 %cmp150, %not.or.cond.5
%conv152.5 = uitofp i1 %cmp150..5 to float
%mul153.5 = fmul fast float %conv152.5, %nbparam_params.coerce.fca.9.extract
%cmp154.5 = fcmp fast olt float %283, %mul153.5
br i1 %cmp154.5, label %284, label %307
; <label>:284: ; preds = %275
%extractVec141.5 = shufflevector <4 x float> %277, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%285 = extractelement <4 x float> %276, i64 3
%286 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.5, align 8, !tbaa !13
%287 = extractelement <2 x float> %286, i64 0
%288 = extractelement <2 x float> %286, i64 1
%mul161.5 = fmul fast float %288, %48
%289 = fcmp ogt float %283, 0x3E99A2B5C0000000
%290 = select i1 %289, float %283, float 0x3E99A2B5C0000000
%291 = tail call float @llvm.sqrt.f32(float %290) #10
%div164.5 = fdiv fast float 1.000000e+00, %291, !fpmath !33
%mul165.5 = fmul fast float %div164.5, %div164.5
%292 = fmul fast float %mul165.5, %mul165.5
%mul167.5 = fmul fast float %292, %cond.5
%mul168.5 = fmul fast float %mul167.5, %mul165.5
%293 = fmul fast float %47, %287
%neg.5 = fsub fast float -0.000000e+00, %293
%294 = tail call fast float @llvm.fmuladd.f32(float %mul161.5, float %mul168.5, float %neg.5)
%cmp172.5 = fcmp fast olt float %290, %nbparam_params.coerce.fca.10.extract
%cond174.5 = select i1 %cmp172.5, float 1.000000e+00, float 0.000000e+00
%mul170.5 = fmul fast float %mul165.5, %cond174.5
%mul171.5 = fmul fast float %mul170.5, %mul168.5
%mul175.5 = fmul fast float %mul171.5, %294
%mul176.5 = fmul fast float %285, %45
%mul177.5 = fmul fast float %mul165.5, %cond.5
%mul179.5 = fmul fast float %290, %mul
%mul.i.5 = fmul fast float %mul179.5, %mul179.5
%295 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%296 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%297 = tail call fast float @llvm.fmuladd.f32(float %295, float %mul.i.5, float 1.000000e+00) #9
%298 = tail call fast float @llvm.fmuladd.f32(float %296, float %mul179.5, float %297) #9
%div.i.5 = fdiv fast float 1.000000e+00, %298, !fpmath !33
%299 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%300 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%301 = tail call fast float @llvm.fmuladd.f32(float %299, float %mul.i.5, float 0xBF93BDB200000000) #9
%302 = tail call fast float @llvm.fmuladd.f32(float %300, float %mul.i.5, float 0x3FB1D5E760000000) #9
%303 = tail call fast float @llvm.fmuladd.f32(float %301, float %mul.i.5, float 0xBFE81272E0000000) #9
%304 = tail call fast float @llvm.fmuladd.f32(float %302, float %mul179.5, float %303) #9
%mul8.5 = fmul fast float %mul11.i, %div.i.5
%mul181.5 = fmul fast float %mul8.5, %304
%305 = tail call fast float @llvm.fmuladd.f32(float %mul177.5, float %div164.5, float %mul181.5)
%306 = tail call fast float @llvm.fmuladd.f32(float %mul176.5, float %305, float %mul175.5)
%splat.splatinsert.5 = insertelement <3 x float> undef, float %306, i32 0
%splat.splat.5 = shufflevector <3 x float> %splat.splatinsert.5, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.5 = fmul fast <3 x float> %splat.splat.5, %extractVec141.5
%extractVec194.5 = shufflevector <4 x float> %fcj_buf.sroa.0.1.4, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.5 = fsub fast <3 x float> %extractVec194.5, %mul186.5
%extractVec196.5 = shufflevector <3 x float> %sub195.5, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.5 = shufflevector <4 x float> %loadVec4204.5, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.5 = fadd fast <3 x float> %mul186.5, %extractVec205.5
%extractVec207.5 = shufflevector <3 x float> %add206.5, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %307
; <label>:307: ; preds = %284, %275, %273
%extractVec207.5.3750 = phi <4 x float> [ %extractVec207.5, %284 ], [ %extractVec207.5.3745, %275 ], [ %extractVec207.5.3745, %273 ]
%308 = phi <3 x float> [ %add206.5, %284 ], [ %30, %275 ], [ %30, %273 ]
%loadVec4204.5665 = phi <4 x float> [ %extractVec207.5, %284 ], [ %loadVec4204.5, %275 ], [ %loadVec4204.5, %273 ]
%fcj_buf.sroa.0.1.5 = phi <4 x float> [ %extractVec196.5, %284 ], [ %fcj_buf.sroa.0.1.4, %275 ], [ %fcj_buf.sroa.0.1.4, %273 ]
%and121.6 = and i32 %37, 64
%tobool122.6 = icmp eq i32 %and121.6, 0
br i1 %tobool122.6, label %341, label %309
; <label>:309: ; preds = %307
%310 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.6, align 16, !tbaa !13
%311 = fsub fast <4 x float> %310, %44
%312 = extractelement <4 x float> %311, i32 0
%313 = extractelement <4 x float> %311, i32 1
%314 = fmul float %313, %313
%315 = tail call float @llvm.fmuladd.f32(float %312, float %312, float %314) #9
%316 = extractelement <4 x float> %311, i32 2
%317 = tail call float @llvm.fmuladd.f32(float %316, float %316, float %315) #9
%and143.6 = and i32 %38, 64
%tobool144.6 = icmp ne i32 %and143.6, 0
%cond.6 = select i1 %tobool144.6, float 1.000000e+00, float 0.000000e+00
%notrhs.6 = icmp ne i32 %add124.6, %43
%not.or.cond.6 = or i1 %notlhs, %notrhs.6
%cmp150..6 = or i1 %cmp150, %not.or.cond.6
%conv152.6 = uitofp i1 %cmp150..6 to float
%mul153.6 = fmul fast float %conv152.6, %nbparam_params.coerce.fca.9.extract
%cmp154.6 = fcmp fast olt float %317, %mul153.6
br i1 %cmp154.6, label %318, label %341
; <label>:318: ; preds = %309
%extractVec141.6 = shufflevector <4 x float> %311, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%319 = extractelement <4 x float> %310, i64 3
%320 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.6, align 8, !tbaa !13
%321 = extractelement <2 x float> %320, i64 0
%322 = extractelement <2 x float> %320, i64 1
%mul161.6 = fmul fast float %322, %48
%323 = fcmp ogt float %317, 0x3E99A2B5C0000000
%324 = select i1 %323, float %317, float 0x3E99A2B5C0000000
%325 = tail call float @llvm.sqrt.f32(float %324) #10
%div164.6 = fdiv fast float 1.000000e+00, %325, !fpmath !33
%mul165.6 = fmul fast float %div164.6, %div164.6
%326 = fmul fast float %mul165.6, %mul165.6
%mul167.6 = fmul fast float %326, %cond.6
%mul168.6 = fmul fast float %mul167.6, %mul165.6
%327 = fmul fast float %47, %321
%neg.6 = fsub fast float -0.000000e+00, %327
%328 = tail call fast float @llvm.fmuladd.f32(float %mul161.6, float %mul168.6, float %neg.6)
%cmp172.6 = fcmp fast olt float %324, %nbparam_params.coerce.fca.10.extract
%cond174.6 = select i1 %cmp172.6, float 1.000000e+00, float 0.000000e+00
%mul170.6 = fmul fast float %mul165.6, %cond174.6
%mul171.6 = fmul fast float %mul170.6, %mul168.6
%mul175.6 = fmul fast float %mul171.6, %328
%mul176.6 = fmul fast float %319, %45
%mul177.6 = fmul fast float %mul165.6, %cond.6
%mul179.6 = fmul fast float %324, %mul
%mul.i.6 = fmul fast float %mul179.6, %mul179.6
%329 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%330 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%331 = tail call fast float @llvm.fmuladd.f32(float %329, float %mul.i.6, float 1.000000e+00) #9
%332 = tail call fast float @llvm.fmuladd.f32(float %330, float %mul179.6, float %331) #9
%div.i.6 = fdiv fast float 1.000000e+00, %332, !fpmath !33
%333 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%334 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%335 = tail call fast float @llvm.fmuladd.f32(float %333, float %mul.i.6, float 0xBF93BDB200000000) #9
%336 = tail call fast float @llvm.fmuladd.f32(float %334, float %mul.i.6, float 0x3FB1D5E760000000) #9
%337 = tail call fast float @llvm.fmuladd.f32(float %335, float %mul.i.6, float 0xBFE81272E0000000) #9
%338 = tail call fast float @llvm.fmuladd.f32(float %336, float %mul179.6, float %337) #9
%mul8.6 = fmul fast float %mul11.i, %div.i.6
%mul181.6 = fmul fast float %mul8.6, %338
%339 = tail call fast float @llvm.fmuladd.f32(float %mul177.6, float %div164.6, float %mul181.6)
%340 = tail call fast float @llvm.fmuladd.f32(float %mul176.6, float %339, float %mul175.6)
%splat.splatinsert.6 = insertelement <3 x float> undef, float %340, i32 0
%splat.splat.6 = shufflevector <3 x float> %splat.splatinsert.6, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.6 = fmul fast <3 x float> %splat.splat.6, %extractVec141.6
%extractVec194.6 = shufflevector <4 x float> %fcj_buf.sroa.0.1.5, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.6 = fsub fast <3 x float> %extractVec194.6, %mul186.6
%extractVec196.6 = shufflevector <3 x float> %sub195.6, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.6 = shufflevector <4 x float> %loadVec4204.6, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.6 = fadd fast <3 x float> %mul186.6, %extractVec205.6
%extractVec207.6 = shufflevector <3 x float> %add206.6, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %341
; <label>:341: ; preds = %318, %309, %307
%extractVec207.6.3759 = phi <4 x float> [ %extractVec207.6, %318 ], [ %extractVec207.6.3754, %309 ], [ %extractVec207.6.3754, %307 ]
%342 = phi <3 x float> [ %add206.6, %318 ], [ %29, %309 ], [ %29, %307 ]
%loadVec4204.6675 = phi <4 x float> [ %extractVec207.6, %318 ], [ %loadVec4204.6, %309 ], [ %loadVec4204.6, %307 ]
%fcj_buf.sroa.0.1.6 = phi <4 x float> [ %extractVec196.6, %318 ], [ %fcj_buf.sroa.0.1.5, %309 ], [ %fcj_buf.sroa.0.1.5, %307 ]
%and121.7 = and i32 %37, 128
%tobool122.7 = icmp eq i32 %and121.7, 0
br i1 %tobool122.7, label %375, label %343
; <label>:343: ; preds = %341
%344 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.7, align 16, !tbaa !13
%345 = fsub fast <4 x float> %344, %44
%346 = extractelement <4 x float> %345, i32 0
%347 = extractelement <4 x float> %345, i32 1
%348 = fmul float %347, %347
%349 = tail call float @llvm.fmuladd.f32(float %346, float %346, float %348) #9
%350 = extractelement <4 x float> %345, i32 2
%351 = tail call float @llvm.fmuladd.f32(float %350, float %350, float %349) #9
%and143.7 = and i32 %38, 128
%tobool144.7 = icmp ne i32 %and143.7, 0
%cond.7 = select i1 %tobool144.7, float 1.000000e+00, float 0.000000e+00
%notrhs.7 = icmp ne i32 %add124.7, %43
%not.or.cond.7 = or i1 %notlhs, %notrhs.7
%cmp150..7 = or i1 %cmp150, %not.or.cond.7
%conv152.7 = uitofp i1 %cmp150..7 to float
%mul153.7 = fmul fast float %conv152.7, %nbparam_params.coerce.fca.9.extract
%cmp154.7 = fcmp fast olt float %351, %mul153.7
br i1 %cmp154.7, label %352, label %375
; <label>:352: ; preds = %343
%extractVec141.7 = shufflevector <4 x float> %345, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%353 = extractelement <4 x float> %344, i64 3
%354 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.7, align 8, !tbaa !13
%355 = extractelement <2 x float> %354, i64 0
%356 = extractelement <2 x float> %354, i64 1
%mul161.7 = fmul fast float %356, %48
%357 = fcmp ogt float %351, 0x3E99A2B5C0000000
%358 = select i1 %357, float %351, float 0x3E99A2B5C0000000
%359 = tail call float @llvm.sqrt.f32(float %358) #10
%div164.7 = fdiv fast float 1.000000e+00, %359, !fpmath !33
%mul165.7 = fmul fast float %div164.7, %div164.7
%360 = fmul fast float %mul165.7, %mul165.7
%mul167.7 = fmul fast float %360, %cond.7
%mul168.7 = fmul fast float %mul167.7, %mul165.7
%361 = fmul fast float %47, %355
%neg.7 = fsub fast float -0.000000e+00, %361
%362 = tail call fast float @llvm.fmuladd.f32(float %mul161.7, float %mul168.7, float %neg.7)
%cmp172.7 = fcmp fast olt float %358, %nbparam_params.coerce.fca.10.extract
%cond174.7 = select i1 %cmp172.7, float 1.000000e+00, float 0.000000e+00
%mul170.7 = fmul fast float %mul165.7, %cond174.7
%mul171.7 = fmul fast float %mul170.7, %mul168.7
%mul175.7 = fmul fast float %mul171.7, %362
%mul176.7 = fmul fast float %353, %45
%mul177.7 = fmul fast float %mul165.7, %cond.7
%mul179.7 = fmul fast float %358, %mul
%mul.i.7 = fmul fast float %mul179.7, %mul179.7
%363 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%364 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%365 = tail call fast float @llvm.fmuladd.f32(float %363, float %mul.i.7, float 1.000000e+00) #9
%366 = tail call fast float @llvm.fmuladd.f32(float %364, float %mul179.7, float %365) #9
%div.i.7 = fdiv fast float 1.000000e+00, %366, !fpmath !33
%367 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%368 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%369 = tail call fast float @llvm.fmuladd.f32(float %367, float %mul.i.7, float 0xBF93BDB200000000) #9
%370 = tail call fast float @llvm.fmuladd.f32(float %368, float %mul.i.7, float 0x3FB1D5E760000000) #9
%371 = tail call fast float @llvm.fmuladd.f32(float %369, float %mul.i.7, float 0xBFE81272E0000000) #9
%372 = tail call fast float @llvm.fmuladd.f32(float %370, float %mul179.7, float %371) #9
%mul8.7 = fmul fast float %mul11.i, %div.i.7
%mul181.7 = fmul fast float %mul8.7, %372
%373 = tail call fast float @llvm.fmuladd.f32(float %mul177.7, float %div164.7, float %mul181.7)
%374 = tail call fast float @llvm.fmuladd.f32(float %mul176.7, float %373, float %mul175.7)
%splat.splatinsert.7 = insertelement <3 x float> undef, float %374, i32 0
%splat.splat.7 = shufflevector <3 x float> %splat.splatinsert.7, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.7 = fmul fast <3 x float> %splat.splat.7, %extractVec141.7
%extractVec194.7 = shufflevector <4 x float> %fcj_buf.sroa.0.1.6, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.7 = fsub fast <3 x float> %extractVec194.7, %mul186.7
%extractVec196.7 = shufflevector <3 x float> %sub195.7, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.7 = shufflevector <4 x float> %loadVec4204.7, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.7 = fadd fast <3 x float> %mul186.7, %extractVec205.7
%extractVec207.7 = shufflevector <3 x float> %add206.7, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %375
; <label>:375: ; preds = %352, %343, %341
%extractVec207.7.3768 = phi <4 x float> [ %extractVec207.7, %352 ], [ %extractVec207.7.3763, %343 ], [ %extractVec207.7.3763, %341 ]
%loadVec4204.7685 = phi <4 x float> [ %extractVec207.7, %352 ], [ %loadVec4204.7, %343 ], [ %loadVec4204.7, %341 ]
%fcj_buf.sroa.0.1.7 = phi <4 x float> [ %extractVec196.7, %352 ], [ %fcj_buf.sroa.0.1.6, %343 ], [ %fcj_buf.sroa.0.1.6, %341 ]
%376 = extractelement <4 x float> %fcj_buf.sroa.0.1.7, i32 0
store float %376, float addrspace(3)* %arrayidx212, align 4, !tbaa !17
%377 = extractelement <4 x float> %fcj_buf.sroa.0.1.7, i32 1
store float %377, float addrspace(3)* %arrayidx215, align 4, !tbaa !17
%378 = extractelement <4 x float> %fcj_buf.sroa.0.1.7, i32 2
store float %378, float addrspace(3)* %arrayidx218, align 4, !tbaa !17
tail call void @reduce_force_j_generic(float addrspace(3)* %11, float addrspace(1)* %f, i32 %1, i32 %3, i32 %add112)
br label %.preheader.1600
; <label>:379: ; preds = %.preheader.1600
%380 = load i32, i32 addrspace(3)* %arrayidx110.1, align 4, !tbaa !9
%mul111.1 = shl nsw i32 %380, 3
%add112.1 = add i32 %mul111.1, %3
%idxprom113.1 = sext i32 %add112.1 to i64
%arrayidx114.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom113.1
%381 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx114.1, align 16, !tbaa !13
%382 = extractelement <4 x float> %381, i64 3
%arrayidx117.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom113.1
%383 = load <2 x float>, <2 x float> addrspace(1)* %arrayidx117.1, align 8, !tbaa !13
%384 = extractelement <2 x float> %383, i64 0
%385 = extractelement <2 x float> %383, i64 1
%and121.1465 = and i32 %37, 256
%tobool122.1466 = icmp eq i32 %and121.1465, 0
br i1 %tobool122.1466, label %418, label %386
; <label>:386: ; preds = %379
%387 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.1467, align 16, !tbaa !13
%388 = fsub fast <4 x float> %387, %381
%389 = extractelement <4 x float> %388, i32 0
%390 = extractelement <4 x float> %388, i32 1
%391 = fmul float %390, %390
%392 = tail call float @llvm.fmuladd.f32(float %389, float %389, float %391) #9
%393 = extractelement <4 x float> %388, i32 2
%394 = tail call float @llvm.fmuladd.f32(float %393, float %393, float %392) #9
%and143.1468 = and i32 %38, 256
%tobool144.1469 = icmp ne i32 %and143.1468, 0
%cond.1470 = select i1 %tobool144.1469, float 1.000000e+00, float 0.000000e+00
%notrhs.1471 = icmp ne i32 %mul22, %380
%not.or.cond.1472 = or i1 %notlhs, %notrhs.1471
%cmp150..1473 = or i1 %cmp150, %not.or.cond.1472
%conv152.1474 = uitofp i1 %cmp150..1473 to float
%mul153.1475 = fmul fast float %conv152.1474, %nbparam_params.coerce.fca.9.extract
%cmp154.1476 = fcmp fast olt float %394, %mul153.1475
br i1 %cmp154.1476, label %395, label %418
; <label>:395: ; preds = %386
%extractVec141.1477 = shufflevector <4 x float> %388, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%396 = extractelement <4 x float> %387, i64 3
%397 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.1478, align 8, !tbaa !13
%398 = extractelement <2 x float> %397, i64 0
%399 = extractelement <2 x float> %397, i64 1
%mul161.1479 = fmul fast float %399, %385
%400 = fcmp ogt float %394, 0x3E99A2B5C0000000
%401 = select i1 %400, float %394, float 0x3E99A2B5C0000000
%402 = tail call float @llvm.sqrt.f32(float %401) #10
%div164.1480 = fdiv fast float 1.000000e+00, %402, !fpmath !33
%mul165.1481 = fmul fast float %div164.1480, %div164.1480
%403 = fmul fast float %mul165.1481, %mul165.1481
%mul167.1482 = fmul fast float %403, %cond.1470
%mul168.1483 = fmul fast float %mul167.1482, %mul165.1481
%404 = fmul fast float %384, %398
%neg.1484 = fsub fast float -0.000000e+00, %404
%405 = tail call fast float @llvm.fmuladd.f32(float %mul161.1479, float %mul168.1483, float %neg.1484)
%cmp172.1485 = fcmp fast olt float %401, %nbparam_params.coerce.fca.10.extract
%cond174.1486 = select i1 %cmp172.1485, float 1.000000e+00, float 0.000000e+00
%mul170.1487 = fmul fast float %mul165.1481, %cond174.1486
%mul171.1488 = fmul fast float %mul170.1487, %mul168.1483
%mul175.1489 = fmul fast float %mul171.1488, %405
%mul176.1490 = fmul fast float %396, %382
%mul177.1491 = fmul fast float %mul165.1481, %cond.1470
%mul179.1492 = fmul fast float %401, %mul
%mul.i.1493 = fmul fast float %mul179.1492, %mul179.1492
%406 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1493, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%407 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1493, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%408 = tail call fast float @llvm.fmuladd.f32(float %406, float %mul.i.1493, float 1.000000e+00) #9
%409 = tail call fast float @llvm.fmuladd.f32(float %407, float %mul179.1492, float %408) #9
%div.i.1494 = fdiv fast float 1.000000e+00, %409, !fpmath !33
%410 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1493, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%411 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1493, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%412 = tail call fast float @llvm.fmuladd.f32(float %410, float %mul.i.1493, float 0xBF93BDB200000000) #9
%413 = tail call fast float @llvm.fmuladd.f32(float %411, float %mul.i.1493, float 0x3FB1D5E760000000) #9
%414 = tail call fast float @llvm.fmuladd.f32(float %412, float %mul.i.1493, float 0xBFE81272E0000000) #9
%415 = tail call fast float @llvm.fmuladd.f32(float %413, float %mul179.1492, float %414) #9
%mul8.1495 = fmul fast float %mul11.i, %div.i.1494
%mul181.1496 = fmul fast float %mul8.1495, %415
%416 = tail call fast float @llvm.fmuladd.f32(float %mul177.1491, float %div164.1480, float %mul181.1496)
%417 = tail call fast float @llvm.fmuladd.f32(float %mul176.1490, float %416, float %mul175.1489)
%splat.splatinsert.1497 = insertelement <3 x float> undef, float %417, i32 0
%splat.splat.1498 = shufflevector <3 x float> %splat.splatinsert.1497, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.1499 = fmul fast <3 x float> %splat.splat.1498, %extractVec141.1477
%sub195.1500 = fsub fast <3 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %mul186.1499
%extractVec196.1501 = shufflevector <3 x float> %sub195.1500, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.1505 = shufflevector <4 x float> %loadVec4204.1504, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.1506 = fadd fast <3 x float> %mul186.1499, %extractVec205.1505
%extractVec207.1507 = shufflevector <3 x float> %add206.1506, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %418
; <label>:418: ; preds = %395, %386, %379
%extractVec207.3597697 = phi <4 x float> [ %extractVec207.1507, %395 ], [ %extractVec207.3597704, %386 ], [ %extractVec207.3597704, %379 ]
%419 = phi <3 x float> [ %add206.1506, %395 ], [ %89, %386 ], [ %89, %379 ]
%loadVec4204606 = phi <4 x float> [ %extractVec207.1507, %395 ], [ %loadVec4204.1504, %386 ], [ %loadVec4204.1504, %379 ]
%fcj_buf.sroa.0.1.1508 = phi <4 x float> [ %extractVec196.1501, %395 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %386 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %379 ]
%and121.1.1 = and i32 %37, 512
%tobool122.1.1 = icmp eq i32 %and121.1.1, 0
br i1 %tobool122.1.1, label %452, label %420
; <label>:420: ; preds = %418
%421 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.1.1, align 16, !tbaa !13
%422 = fsub fast <4 x float> %421, %381
%423 = extractelement <4 x float> %422, i32 0
%424 = extractelement <4 x float> %422, i32 1
%425 = fmul float %424, %424
%426 = tail call float @llvm.fmuladd.f32(float %423, float %423, float %425) #9
%427 = extractelement <4 x float> %422, i32 2
%428 = tail call float @llvm.fmuladd.f32(float %427, float %427, float %426) #9
%and143.1.1 = and i32 %38, 512
%tobool144.1.1 = icmp ne i32 %and143.1.1, 0
%cond.1.1 = select i1 %tobool144.1.1, float 1.000000e+00, float 0.000000e+00
%notrhs.1.1 = icmp ne i32 %add124.1.1, %380
%not.or.cond.1.1 = or i1 %notlhs, %notrhs.1.1
%cmp150..1.1 = or i1 %cmp150, %not.or.cond.1.1
%conv152.1.1 = uitofp i1 %cmp150..1.1 to float
%mul153.1.1 = fmul fast float %conv152.1.1, %nbparam_params.coerce.fca.9.extract
%cmp154.1.1 = fcmp fast olt float %428, %mul153.1.1
br i1 %cmp154.1.1, label %429, label %452
; <label>:429: ; preds = %420
%extractVec141.1.1 = shufflevector <4 x float> %422, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%430 = extractelement <4 x float> %421, i64 3
%431 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.1.1, align 8, !tbaa !13
%432 = extractelement <2 x float> %431, i64 0
%433 = extractelement <2 x float> %431, i64 1
%mul161.1.1 = fmul fast float %433, %385
%434 = fcmp ogt float %428, 0x3E99A2B5C0000000
%435 = select i1 %434, float %428, float 0x3E99A2B5C0000000
%436 = tail call float @llvm.sqrt.f32(float %435) #10
%div164.1.1 = fdiv fast float 1.000000e+00, %436, !fpmath !33
%mul165.1.1 = fmul fast float %div164.1.1, %div164.1.1
%437 = fmul fast float %mul165.1.1, %mul165.1.1
%mul167.1.1 = fmul fast float %437, %cond.1.1
%mul168.1.1 = fmul fast float %mul167.1.1, %mul165.1.1
%438 = fmul fast float %384, %432
%neg.1.1 = fsub fast float -0.000000e+00, %438
%439 = tail call fast float @llvm.fmuladd.f32(float %mul161.1.1, float %mul168.1.1, float %neg.1.1)
%cmp172.1.1 = fcmp fast olt float %435, %nbparam_params.coerce.fca.10.extract
%cond174.1.1 = select i1 %cmp172.1.1, float 1.000000e+00, float 0.000000e+00
%mul170.1.1 = fmul fast float %mul165.1.1, %cond174.1.1
%mul171.1.1 = fmul fast float %mul170.1.1, %mul168.1.1
%mul175.1.1 = fmul fast float %mul171.1.1, %439
%mul176.1.1 = fmul fast float %430, %382
%mul177.1.1 = fmul fast float %mul165.1.1, %cond.1.1
%mul179.1.1 = fmul fast float %435, %mul
%mul.i.1.1 = fmul fast float %mul179.1.1, %mul179.1.1
%440 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%441 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%442 = tail call fast float @llvm.fmuladd.f32(float %440, float %mul.i.1.1, float 1.000000e+00) #9
%443 = tail call fast float @llvm.fmuladd.f32(float %441, float %mul179.1.1, float %442) #9
%div.i.1.1 = fdiv fast float 1.000000e+00, %443, !fpmath !33
%444 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%445 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%446 = tail call fast float @llvm.fmuladd.f32(float %444, float %mul.i.1.1, float 0xBF93BDB200000000) #9
%447 = tail call fast float @llvm.fmuladd.f32(float %445, float %mul.i.1.1, float 0x3FB1D5E760000000) #9
%448 = tail call fast float @llvm.fmuladd.f32(float %446, float %mul.i.1.1, float 0xBFE81272E0000000) #9
%449 = tail call fast float @llvm.fmuladd.f32(float %447, float %mul179.1.1, float %448) #9
%mul8.1.1 = fmul fast float %mul11.i, %div.i.1.1
%mul181.1.1 = fmul fast float %mul8.1.1, %449
%450 = tail call fast float @llvm.fmuladd.f32(float %mul177.1.1, float %div164.1.1, float %mul181.1.1)
%451 = tail call fast float @llvm.fmuladd.f32(float %mul176.1.1, float %450, float %mul175.1.1)
%splat.splatinsert.1.1 = insertelement <3 x float> undef, float %451, i32 0
%splat.splat.1.1 = shufflevector <3 x float> %splat.splatinsert.1.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.1.1 = fmul fast <3 x float> %splat.splat.1.1, %extractVec141.1.1
%extractVec194.1.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1508, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.1.1 = fsub fast <3 x float> %extractVec194.1.1, %mul186.1.1
%extractVec196.1.1 = shufflevector <3 x float> %sub195.1.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.1.1 = shufflevector <4 x float> %loadVec4204.1.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.1.1 = fadd fast <3 x float> %mul186.1.1, %extractVec205.1.1
%extractVec207.1.1 = shufflevector <3 x float> %add206.1.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %452
; <label>:452: ; preds = %429, %420, %418
%extractVec207.1.3706 = phi <4 x float> [ %extractVec207.1.1, %429 ], [ %extractVec207.1.3713, %420 ], [ %extractVec207.1.3713, %418 ]
%453 = phi <3 x float> [ %add206.1.1, %429 ], [ %88, %420 ], [ %88, %418 ]
%loadVec4204.1616 = phi <4 x float> [ %extractVec207.1.1, %429 ], [ %loadVec4204.1.1, %420 ], [ %loadVec4204.1.1, %418 ]
%fcj_buf.sroa.0.1.1.1 = phi <4 x float> [ %extractVec196.1.1, %429 ], [ %fcj_buf.sroa.0.1.1508, %420 ], [ %fcj_buf.sroa.0.1.1508, %418 ]
%and121.2.1 = and i32 %37, 1024
%tobool122.2.1 = icmp eq i32 %and121.2.1, 0
br i1 %tobool122.2.1, label %486, label %454
; <label>:454: ; preds = %452
%455 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.2.1, align 16, !tbaa !13
%456 = fsub fast <4 x float> %455, %381
%457 = extractelement <4 x float> %456, i32 0
%458 = extractelement <4 x float> %456, i32 1
%459 = fmul float %458, %458
%460 = tail call float @llvm.fmuladd.f32(float %457, float %457, float %459) #9
%461 = extractelement <4 x float> %456, i32 2
%462 = tail call float @llvm.fmuladd.f32(float %461, float %461, float %460) #9
%and143.2.1 = and i32 %38, 1024
%tobool144.2.1 = icmp ne i32 %and143.2.1, 0
%cond.2.1 = select i1 %tobool144.2.1, float 1.000000e+00, float 0.000000e+00
%notrhs.2.1 = icmp ne i32 %add124.2.1, %380
%not.or.cond.2.1 = or i1 %notlhs, %notrhs.2.1
%cmp150..2.1 = or i1 %cmp150, %not.or.cond.2.1
%conv152.2.1 = uitofp i1 %cmp150..2.1 to float
%mul153.2.1 = fmul fast float %conv152.2.1, %nbparam_params.coerce.fca.9.extract
%cmp154.2.1 = fcmp fast olt float %462, %mul153.2.1
br i1 %cmp154.2.1, label %463, label %486
; <label>:463: ; preds = %454
%extractVec141.2.1 = shufflevector <4 x float> %456, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%464 = extractelement <4 x float> %455, i64 3
%465 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.2.1, align 8, !tbaa !13
%466 = extractelement <2 x float> %465, i64 0
%467 = extractelement <2 x float> %465, i64 1
%mul161.2.1 = fmul fast float %467, %385
%468 = fcmp ogt float %462, 0x3E99A2B5C0000000
%469 = select i1 %468, float %462, float 0x3E99A2B5C0000000
%470 = tail call float @llvm.sqrt.f32(float %469) #10
%div164.2.1 = fdiv fast float 1.000000e+00, %470, !fpmath !33
%mul165.2.1 = fmul fast float %div164.2.1, %div164.2.1
%471 = fmul fast float %mul165.2.1, %mul165.2.1
%mul167.2.1 = fmul fast float %471, %cond.2.1
%mul168.2.1 = fmul fast float %mul167.2.1, %mul165.2.1
%472 = fmul fast float %384, %466
%neg.2.1 = fsub fast float -0.000000e+00, %472
%473 = tail call fast float @llvm.fmuladd.f32(float %mul161.2.1, float %mul168.2.1, float %neg.2.1)
%cmp172.2.1 = fcmp fast olt float %469, %nbparam_params.coerce.fca.10.extract
%cond174.2.1 = select i1 %cmp172.2.1, float 1.000000e+00, float 0.000000e+00
%mul170.2.1 = fmul fast float %mul165.2.1, %cond174.2.1
%mul171.2.1 = fmul fast float %mul170.2.1, %mul168.2.1
%mul175.2.1 = fmul fast float %mul171.2.1, %473
%mul176.2.1 = fmul fast float %464, %382
%mul177.2.1 = fmul fast float %mul165.2.1, %cond.2.1
%mul179.2.1 = fmul fast float %469, %mul
%mul.i.2.1 = fmul fast float %mul179.2.1, %mul179.2.1
%474 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%475 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%476 = tail call fast float @llvm.fmuladd.f32(float %474, float %mul.i.2.1, float 1.000000e+00) #9
%477 = tail call fast float @llvm.fmuladd.f32(float %475, float %mul179.2.1, float %476) #9
%div.i.2.1 = fdiv fast float 1.000000e+00, %477, !fpmath !33
%478 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%479 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%480 = tail call fast float @llvm.fmuladd.f32(float %478, float %mul.i.2.1, float 0xBF93BDB200000000) #9
%481 = tail call fast float @llvm.fmuladd.f32(float %479, float %mul.i.2.1, float 0x3FB1D5E760000000) #9
%482 = tail call fast float @llvm.fmuladd.f32(float %480, float %mul.i.2.1, float 0xBFE81272E0000000) #9
%483 = tail call fast float @llvm.fmuladd.f32(float %481, float %mul179.2.1, float %482) #9
%mul8.2.1 = fmul fast float %mul11.i, %div.i.2.1
%mul181.2.1 = fmul fast float %mul8.2.1, %483
%484 = tail call fast float @llvm.fmuladd.f32(float %mul177.2.1, float %div164.2.1, float %mul181.2.1)
%485 = tail call fast float @llvm.fmuladd.f32(float %mul176.2.1, float %484, float %mul175.2.1)
%splat.splatinsert.2.1 = insertelement <3 x float> undef, float %485, i32 0
%splat.splat.2.1 = shufflevector <3 x float> %splat.splatinsert.2.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.2.1 = fmul fast <3 x float> %splat.splat.2.1, %extractVec141.2.1
%extractVec194.2.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.2.1 = fsub fast <3 x float> %extractVec194.2.1, %mul186.2.1
%extractVec196.2.1 = shufflevector <3 x float> %sub195.2.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.2.1 = shufflevector <4 x float> %loadVec4204.2.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.2.1 = fadd fast <3 x float> %mul186.2.1, %extractVec205.2.1
%extractVec207.2.1 = shufflevector <3 x float> %add206.2.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %486
; <label>:486: ; preds = %463, %454, %452
%extractVec207.2.3715 = phi <4 x float> [ %extractVec207.2.1, %463 ], [ %extractVec207.2.3722, %454 ], [ %extractVec207.2.3722, %452 ]
%487 = phi <3 x float> [ %add206.2.1, %463 ], [ %87, %454 ], [ %87, %452 ]
%loadVec4204.2626 = phi <4 x float> [ %extractVec207.2.1, %463 ], [ %loadVec4204.2.1, %454 ], [ %loadVec4204.2.1, %452 ]
%fcj_buf.sroa.0.1.2.1 = phi <4 x float> [ %extractVec196.2.1, %463 ], [ %fcj_buf.sroa.0.1.1.1, %454 ], [ %fcj_buf.sroa.0.1.1.1, %452 ]
%and121.3.1 = and i32 %37, 2048
%tobool122.3.1 = icmp eq i32 %and121.3.1, 0
br i1 %tobool122.3.1, label %520, label %488
; <label>:488: ; preds = %486
%489 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.3.1, align 16, !tbaa !13
%490 = fsub fast <4 x float> %489, %381
%491 = extractelement <4 x float> %490, i32 0
%492 = extractelement <4 x float> %490, i32 1
%493 = fmul float %492, %492
%494 = tail call float @llvm.fmuladd.f32(float %491, float %491, float %493) #9
%495 = extractelement <4 x float> %490, i32 2
%496 = tail call float @llvm.fmuladd.f32(float %495, float %495, float %494) #9
%and143.3.1 = and i32 %38, 2048
%tobool144.3.1 = icmp ne i32 %and143.3.1, 0
%cond.3.1 = select i1 %tobool144.3.1, float 1.000000e+00, float 0.000000e+00
%notrhs.3.1 = icmp ne i32 %add124.3.1, %380
%not.or.cond.3.1 = or i1 %notlhs, %notrhs.3.1
%cmp150..3.1 = or i1 %cmp150, %not.or.cond.3.1
%conv152.3.1 = uitofp i1 %cmp150..3.1 to float
%mul153.3.1 = fmul fast float %conv152.3.1, %nbparam_params.coerce.fca.9.extract
%cmp154.3.1 = fcmp fast olt float %496, %mul153.3.1
br i1 %cmp154.3.1, label %497, label %520
; <label>:497: ; preds = %488
%extractVec141.3.1 = shufflevector <4 x float> %490, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%498 = extractelement <4 x float> %489, i64 3
%499 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.3.1, align 8, !tbaa !13
%500 = extractelement <2 x float> %499, i64 0
%501 = extractelement <2 x float> %499, i64 1
%mul161.3.1 = fmul fast float %501, %385
%502 = fcmp ogt float %496, 0x3E99A2B5C0000000
%503 = select i1 %502, float %496, float 0x3E99A2B5C0000000
%504 = tail call float @llvm.sqrt.f32(float %503) #10
%div164.3.1 = fdiv fast float 1.000000e+00, %504, !fpmath !33
%mul165.3.1 = fmul fast float %div164.3.1, %div164.3.1
%505 = fmul fast float %mul165.3.1, %mul165.3.1
%mul167.3.1 = fmul fast float %505, %cond.3.1
%mul168.3.1 = fmul fast float %mul167.3.1, %mul165.3.1
%506 = fmul fast float %384, %500
%neg.3.1 = fsub fast float -0.000000e+00, %506
%507 = tail call fast float @llvm.fmuladd.f32(float %mul161.3.1, float %mul168.3.1, float %neg.3.1)
%cmp172.3.1 = fcmp fast olt float %503, %nbparam_params.coerce.fca.10.extract
%cond174.3.1 = select i1 %cmp172.3.1, float 1.000000e+00, float 0.000000e+00
%mul170.3.1 = fmul fast float %mul165.3.1, %cond174.3.1
%mul171.3.1 = fmul fast float %mul170.3.1, %mul168.3.1
%mul175.3.1 = fmul fast float %mul171.3.1, %507
%mul176.3.1 = fmul fast float %498, %382
%mul177.3.1 = fmul fast float %mul165.3.1, %cond.3.1
%mul179.3.1 = fmul fast float %503, %mul
%mul.i.3.1 = fmul fast float %mul179.3.1, %mul179.3.1
%508 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%509 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%510 = tail call fast float @llvm.fmuladd.f32(float %508, float %mul.i.3.1, float 1.000000e+00) #9
%511 = tail call fast float @llvm.fmuladd.f32(float %509, float %mul179.3.1, float %510) #9
%div.i.3.1 = fdiv fast float 1.000000e+00, %511, !fpmath !33
%512 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%513 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%514 = tail call fast float @llvm.fmuladd.f32(float %512, float %mul.i.3.1, float 0xBF93BDB200000000) #9
%515 = tail call fast float @llvm.fmuladd.f32(float %513, float %mul.i.3.1, float 0x3FB1D5E760000000) #9
%516 = tail call fast float @llvm.fmuladd.f32(float %514, float %mul.i.3.1, float 0xBFE81272E0000000) #9
%517 = tail call fast float @llvm.fmuladd.f32(float %515, float %mul179.3.1, float %516) #9
%mul8.3.1 = fmul fast float %mul11.i, %div.i.3.1
%mul181.3.1 = fmul fast float %mul8.3.1, %517
%518 = tail call fast float @llvm.fmuladd.f32(float %mul177.3.1, float %div164.3.1, float %mul181.3.1)
%519 = tail call fast float @llvm.fmuladd.f32(float %mul176.3.1, float %518, float %mul175.3.1)
%splat.splatinsert.3.1 = insertelement <3 x float> undef, float %519, i32 0
%splat.splat.3.1 = shufflevector <3 x float> %splat.splatinsert.3.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.3.1 = fmul fast <3 x float> %splat.splat.3.1, %extractVec141.3.1
%extractVec194.3.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.3.1 = fsub fast <3 x float> %extractVec194.3.1, %mul186.3.1
%extractVec196.3.1 = shufflevector <3 x float> %sub195.3.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.3.1 = shufflevector <4 x float> %loadVec4204.3.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.3.1 = fadd fast <3 x float> %mul186.3.1, %extractVec205.3.1
%extractVec207.3.1 = shufflevector <3 x float> %add206.3.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %520
; <label>:520: ; preds = %497, %488, %486
%extractVec207.3.3724 = phi <4 x float> [ %extractVec207.3.1, %497 ], [ %extractVec207.3.3731, %488 ], [ %extractVec207.3.3731, %486 ]
%521 = phi <3 x float> [ %add206.3.1, %497 ], [ %86, %488 ], [ %86, %486 ]
%loadVec4204.3636 = phi <4 x float> [ %extractVec207.3.1, %497 ], [ %loadVec4204.3.1, %488 ], [ %loadVec4204.3.1, %486 ]
%fcj_buf.sroa.0.1.3.1 = phi <4 x float> [ %extractVec196.3.1, %497 ], [ %fcj_buf.sroa.0.1.2.1, %488 ], [ %fcj_buf.sroa.0.1.2.1, %486 ]
%and121.4.1 = and i32 %37, 4096
%tobool122.4.1 = icmp eq i32 %and121.4.1, 0
br i1 %tobool122.4.1, label %554, label %522
; <label>:522: ; preds = %520
%523 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.4.1, align 16, !tbaa !13
%524 = fsub fast <4 x float> %523, %381
%525 = extractelement <4 x float> %524, i32 0
%526 = extractelement <4 x float> %524, i32 1
%527 = fmul float %526, %526
%528 = tail call float @llvm.fmuladd.f32(float %525, float %525, float %527) #9
%529 = extractelement <4 x float> %524, i32 2
%530 = tail call float @llvm.fmuladd.f32(float %529, float %529, float %528) #9
%and143.4.1 = and i32 %38, 4096
%tobool144.4.1 = icmp ne i32 %and143.4.1, 0
%cond.4.1 = select i1 %tobool144.4.1, float 1.000000e+00, float 0.000000e+00
%notrhs.4.1 = icmp ne i32 %add124.4.1, %380
%not.or.cond.4.1 = or i1 %notlhs, %notrhs.4.1
%cmp150..4.1 = or i1 %cmp150, %not.or.cond.4.1
%conv152.4.1 = uitofp i1 %cmp150..4.1 to float
%mul153.4.1 = fmul fast float %conv152.4.1, %nbparam_params.coerce.fca.9.extract
%cmp154.4.1 = fcmp fast olt float %530, %mul153.4.1
br i1 %cmp154.4.1, label %531, label %554
; <label>:531: ; preds = %522
%extractVec141.4.1 = shufflevector <4 x float> %524, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%532 = extractelement <4 x float> %523, i64 3
%533 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.4.1, align 8, !tbaa !13
%534 = extractelement <2 x float> %533, i64 0
%535 = extractelement <2 x float> %533, i64 1
%mul161.4.1 = fmul fast float %535, %385
%536 = fcmp ogt float %530, 0x3E99A2B5C0000000
%537 = select i1 %536, float %530, float 0x3E99A2B5C0000000
%538 = tail call float @llvm.sqrt.f32(float %537) #10
%div164.4.1 = fdiv fast float 1.000000e+00, %538, !fpmath !33
%mul165.4.1 = fmul fast float %div164.4.1, %div164.4.1
%539 = fmul fast float %mul165.4.1, %mul165.4.1
%mul167.4.1 = fmul fast float %539, %cond.4.1
%mul168.4.1 = fmul fast float %mul167.4.1, %mul165.4.1
%540 = fmul fast float %384, %534
%neg.4.1 = fsub fast float -0.000000e+00, %540
%541 = tail call fast float @llvm.fmuladd.f32(float %mul161.4.1, float %mul168.4.1, float %neg.4.1)
%cmp172.4.1 = fcmp fast olt float %537, %nbparam_params.coerce.fca.10.extract
%cond174.4.1 = select i1 %cmp172.4.1, float 1.000000e+00, float 0.000000e+00
%mul170.4.1 = fmul fast float %mul165.4.1, %cond174.4.1
%mul171.4.1 = fmul fast float %mul170.4.1, %mul168.4.1
%mul175.4.1 = fmul fast float %mul171.4.1, %541
%mul176.4.1 = fmul fast float %532, %382
%mul177.4.1 = fmul fast float %mul165.4.1, %cond.4.1
%mul179.4.1 = fmul fast float %537, %mul
%mul.i.4.1 = fmul fast float %mul179.4.1, %mul179.4.1
%542 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%543 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%544 = tail call fast float @llvm.fmuladd.f32(float %542, float %mul.i.4.1, float 1.000000e+00) #9
%545 = tail call fast float @llvm.fmuladd.f32(float %543, float %mul179.4.1, float %544) #9
%div.i.4.1 = fdiv fast float 1.000000e+00, %545, !fpmath !33
%546 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%547 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%548 = tail call fast float @llvm.fmuladd.f32(float %546, float %mul.i.4.1, float 0xBF93BDB200000000) #9
%549 = tail call fast float @llvm.fmuladd.f32(float %547, float %mul.i.4.1, float 0x3FB1D5E760000000) #9
%550 = tail call fast float @llvm.fmuladd.f32(float %548, float %mul.i.4.1, float 0xBFE81272E0000000) #9
%551 = tail call fast float @llvm.fmuladd.f32(float %549, float %mul179.4.1, float %550) #9
%mul8.4.1 = fmul fast float %mul11.i, %div.i.4.1
%mul181.4.1 = fmul fast float %mul8.4.1, %551
%552 = tail call fast float @llvm.fmuladd.f32(float %mul177.4.1, float %div164.4.1, float %mul181.4.1)
%553 = tail call fast float @llvm.fmuladd.f32(float %mul176.4.1, float %552, float %mul175.4.1)
%splat.splatinsert.4.1 = insertelement <3 x float> undef, float %553, i32 0
%splat.splat.4.1 = shufflevector <3 x float> %splat.splatinsert.4.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.4.1 = fmul fast <3 x float> %splat.splat.4.1, %extractVec141.4.1
%extractVec194.4.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.4.1 = fsub fast <3 x float> %extractVec194.4.1, %mul186.4.1
%extractVec196.4.1 = shufflevector <3 x float> %sub195.4.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.4.1 = shufflevector <4 x float> %loadVec4204.4.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.4.1 = fadd fast <3 x float> %mul186.4.1, %extractVec205.4.1
%extractVec207.4.1 = shufflevector <3 x float> %add206.4.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %554
; <label>:554: ; preds = %531, %522, %520
%extractVec207.4.3733 = phi <4 x float> [ %extractVec207.4.1, %531 ], [ %extractVec207.4.3740, %522 ], [ %extractVec207.4.3740, %520 ]
%555 = phi <3 x float> [ %add206.4.1, %531 ], [ %85, %522 ], [ %85, %520 ]
%loadVec4204.4646 = phi <4 x float> [ %extractVec207.4.1, %531 ], [ %loadVec4204.4.1, %522 ], [ %loadVec4204.4.1, %520 ]
%fcj_buf.sroa.0.1.4.1 = phi <4 x float> [ %extractVec196.4.1, %531 ], [ %fcj_buf.sroa.0.1.3.1, %522 ], [ %fcj_buf.sroa.0.1.3.1, %520 ]
%and121.5.1 = and i32 %37, 8192
%tobool122.5.1 = icmp eq i32 %and121.5.1, 0
br i1 %tobool122.5.1, label %588, label %556
; <label>:556: ; preds = %554
%557 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.5.1, align 16, !tbaa !13
%558 = fsub fast <4 x float> %557, %381
%559 = extractelement <4 x float> %558, i32 0
%560 = extractelement <4 x float> %558, i32 1
%561 = fmul float %560, %560
%562 = tail call float @llvm.fmuladd.f32(float %559, float %559, float %561) #9
%563 = extractelement <4 x float> %558, i32 2
%564 = tail call float @llvm.fmuladd.f32(float %563, float %563, float %562) #9
%and143.5.1 = and i32 %38, 8192
%tobool144.5.1 = icmp ne i32 %and143.5.1, 0
%cond.5.1 = select i1 %tobool144.5.1, float 1.000000e+00, float 0.000000e+00
%notrhs.5.1 = icmp ne i32 %add124.5.1, %380
%not.or.cond.5.1 = or i1 %notlhs, %notrhs.5.1
%cmp150..5.1 = or i1 %cmp150, %not.or.cond.5.1
%conv152.5.1 = uitofp i1 %cmp150..5.1 to float
%mul153.5.1 = fmul fast float %conv152.5.1, %nbparam_params.coerce.fca.9.extract
%cmp154.5.1 = fcmp fast olt float %564, %mul153.5.1
br i1 %cmp154.5.1, label %565, label %588
; <label>:565: ; preds = %556
%extractVec141.5.1 = shufflevector <4 x float> %558, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%566 = extractelement <4 x float> %557, i64 3
%567 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.5.1, align 8, !tbaa !13
%568 = extractelement <2 x float> %567, i64 0
%569 = extractelement <2 x float> %567, i64 1
%mul161.5.1 = fmul fast float %569, %385
%570 = fcmp ogt float %564, 0x3E99A2B5C0000000
%571 = select i1 %570, float %564, float 0x3E99A2B5C0000000
%572 = tail call float @llvm.sqrt.f32(float %571) #10
%div164.5.1 = fdiv fast float 1.000000e+00, %572, !fpmath !33
%mul165.5.1 = fmul fast float %div164.5.1, %div164.5.1
%573 = fmul fast float %mul165.5.1, %mul165.5.1
%mul167.5.1 = fmul fast float %573, %cond.5.1
%mul168.5.1 = fmul fast float %mul167.5.1, %mul165.5.1
%574 = fmul fast float %384, %568
%neg.5.1 = fsub fast float -0.000000e+00, %574
%575 = tail call fast float @llvm.fmuladd.f32(float %mul161.5.1, float %mul168.5.1, float %neg.5.1)
%cmp172.5.1 = fcmp fast olt float %571, %nbparam_params.coerce.fca.10.extract
%cond174.5.1 = select i1 %cmp172.5.1, float 1.000000e+00, float 0.000000e+00
%mul170.5.1 = fmul fast float %mul165.5.1, %cond174.5.1
%mul171.5.1 = fmul fast float %mul170.5.1, %mul168.5.1
%mul175.5.1 = fmul fast float %mul171.5.1, %575
%mul176.5.1 = fmul fast float %566, %382
%mul177.5.1 = fmul fast float %mul165.5.1, %cond.5.1
%mul179.5.1 = fmul fast float %571, %mul
%mul.i.5.1 = fmul fast float %mul179.5.1, %mul179.5.1
%576 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%577 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%578 = tail call fast float @llvm.fmuladd.f32(float %576, float %mul.i.5.1, float 1.000000e+00) #9
%579 = tail call fast float @llvm.fmuladd.f32(float %577, float %mul179.5.1, float %578) #9
%div.i.5.1 = fdiv fast float 1.000000e+00, %579, !fpmath !33
%580 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%581 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%582 = tail call fast float @llvm.fmuladd.f32(float %580, float %mul.i.5.1, float 0xBF93BDB200000000) #9
%583 = tail call fast float @llvm.fmuladd.f32(float %581, float %mul.i.5.1, float 0x3FB1D5E760000000) #9
%584 = tail call fast float @llvm.fmuladd.f32(float %582, float %mul.i.5.1, float 0xBFE81272E0000000) #9
%585 = tail call fast float @llvm.fmuladd.f32(float %583, float %mul179.5.1, float %584) #9
%mul8.5.1 = fmul fast float %mul11.i, %div.i.5.1
%mul181.5.1 = fmul fast float %mul8.5.1, %585
%586 = tail call fast float @llvm.fmuladd.f32(float %mul177.5.1, float %div164.5.1, float %mul181.5.1)
%587 = tail call fast float @llvm.fmuladd.f32(float %mul176.5.1, float %586, float %mul175.5.1)
%splat.splatinsert.5.1 = insertelement <3 x float> undef, float %587, i32 0
%splat.splat.5.1 = shufflevector <3 x float> %splat.splatinsert.5.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.5.1 = fmul fast <3 x float> %splat.splat.5.1, %extractVec141.5.1
%extractVec194.5.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.4.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.5.1 = fsub fast <3 x float> %extractVec194.5.1, %mul186.5.1
%extractVec196.5.1 = shufflevector <3 x float> %sub195.5.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.5.1 = shufflevector <4 x float> %loadVec4204.5.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.5.1 = fadd fast <3 x float> %mul186.5.1, %extractVec205.5.1
%extractVec207.5.1 = shufflevector <3 x float> %add206.5.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %588
; <label>:588: ; preds = %565, %556, %554
%extractVec207.5.3742 = phi <4 x float> [ %extractVec207.5.1, %565 ], [ %extractVec207.5.3749, %556 ], [ %extractVec207.5.3749, %554 ]
%589 = phi <3 x float> [ %add206.5.1, %565 ], [ %84, %556 ], [ %84, %554 ]
%loadVec4204.5656 = phi <4 x float> [ %extractVec207.5.1, %565 ], [ %loadVec4204.5.1, %556 ], [ %loadVec4204.5.1, %554 ]
%fcj_buf.sroa.0.1.5.1 = phi <4 x float> [ %extractVec196.5.1, %565 ], [ %fcj_buf.sroa.0.1.4.1, %556 ], [ %fcj_buf.sroa.0.1.4.1, %554 ]
%and121.6.1 = and i32 %37, 16384
%tobool122.6.1 = icmp eq i32 %and121.6.1, 0
br i1 %tobool122.6.1, label %622, label %590
; <label>:590: ; preds = %588
%591 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.6.1, align 16, !tbaa !13
%592 = fsub fast <4 x float> %591, %381
%593 = extractelement <4 x float> %592, i32 0
%594 = extractelement <4 x float> %592, i32 1
%595 = fmul float %594, %594
%596 = tail call float @llvm.fmuladd.f32(float %593, float %593, float %595) #9
%597 = extractelement <4 x float> %592, i32 2
%598 = tail call float @llvm.fmuladd.f32(float %597, float %597, float %596) #9
%and143.6.1 = and i32 %38, 16384
%tobool144.6.1 = icmp ne i32 %and143.6.1, 0
%cond.6.1 = select i1 %tobool144.6.1, float 1.000000e+00, float 0.000000e+00
%notrhs.6.1 = icmp ne i32 %add124.6.1, %380
%not.or.cond.6.1 = or i1 %notlhs, %notrhs.6.1
%cmp150..6.1 = or i1 %cmp150, %not.or.cond.6.1
%conv152.6.1 = uitofp i1 %cmp150..6.1 to float
%mul153.6.1 = fmul fast float %conv152.6.1, %nbparam_params.coerce.fca.9.extract
%cmp154.6.1 = fcmp fast olt float %598, %mul153.6.1
br i1 %cmp154.6.1, label %599, label %622
; <label>:599: ; preds = %590
%extractVec141.6.1 = shufflevector <4 x float> %592, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%600 = extractelement <4 x float> %591, i64 3
%601 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.6.1, align 8, !tbaa !13
%602 = extractelement <2 x float> %601, i64 0
%603 = extractelement <2 x float> %601, i64 1
%mul161.6.1 = fmul fast float %603, %385
%604 = fcmp ogt float %598, 0x3E99A2B5C0000000
%605 = select i1 %604, float %598, float 0x3E99A2B5C0000000
%606 = tail call float @llvm.sqrt.f32(float %605) #10
%div164.6.1 = fdiv fast float 1.000000e+00, %606, !fpmath !33
%mul165.6.1 = fmul fast float %div164.6.1, %div164.6.1
%607 = fmul fast float %mul165.6.1, %mul165.6.1
%mul167.6.1 = fmul fast float %607, %cond.6.1
%mul168.6.1 = fmul fast float %mul167.6.1, %mul165.6.1
%608 = fmul fast float %384, %602
%neg.6.1 = fsub fast float -0.000000e+00, %608
%609 = tail call fast float @llvm.fmuladd.f32(float %mul161.6.1, float %mul168.6.1, float %neg.6.1)
%cmp172.6.1 = fcmp fast olt float %605, %nbparam_params.coerce.fca.10.extract
%cond174.6.1 = select i1 %cmp172.6.1, float 1.000000e+00, float 0.000000e+00
%mul170.6.1 = fmul fast float %mul165.6.1, %cond174.6.1
%mul171.6.1 = fmul fast float %mul170.6.1, %mul168.6.1
%mul175.6.1 = fmul fast float %mul171.6.1, %609
%mul176.6.1 = fmul fast float %600, %382
%mul177.6.1 = fmul fast float %mul165.6.1, %cond.6.1
%mul179.6.1 = fmul fast float %605, %mul
%mul.i.6.1 = fmul fast float %mul179.6.1, %mul179.6.1
%610 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%611 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%612 = tail call fast float @llvm.fmuladd.f32(float %610, float %mul.i.6.1, float 1.000000e+00) #9
%613 = tail call fast float @llvm.fmuladd.f32(float %611, float %mul179.6.1, float %612) #9
%div.i.6.1 = fdiv fast float 1.000000e+00, %613, !fpmath !33
%614 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%615 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%616 = tail call fast float @llvm.fmuladd.f32(float %614, float %mul.i.6.1, float 0xBF93BDB200000000) #9
%617 = tail call fast float @llvm.fmuladd.f32(float %615, float %mul.i.6.1, float 0x3FB1D5E760000000) #9
%618 = tail call fast float @llvm.fmuladd.f32(float %616, float %mul.i.6.1, float 0xBFE81272E0000000) #9
%619 = tail call fast float @llvm.fmuladd.f32(float %617, float %mul179.6.1, float %618) #9
%mul8.6.1 = fmul fast float %mul11.i, %div.i.6.1
%mul181.6.1 = fmul fast float %mul8.6.1, %619
%620 = tail call fast float @llvm.fmuladd.f32(float %mul177.6.1, float %div164.6.1, float %mul181.6.1)
%621 = tail call fast float @llvm.fmuladd.f32(float %mul176.6.1, float %620, float %mul175.6.1)
%splat.splatinsert.6.1 = insertelement <3 x float> undef, float %621, i32 0
%splat.splat.6.1 = shufflevector <3 x float> %splat.splatinsert.6.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.6.1 = fmul fast <3 x float> %splat.splat.6.1, %extractVec141.6.1
%extractVec194.6.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.5.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.6.1 = fsub fast <3 x float> %extractVec194.6.1, %mul186.6.1
%extractVec196.6.1 = shufflevector <3 x float> %sub195.6.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.6.1 = shufflevector <4 x float> %loadVec4204.6.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.6.1 = fadd fast <3 x float> %mul186.6.1, %extractVec205.6.1
%extractVec207.6.1 = shufflevector <3 x float> %add206.6.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %622
; <label>:622: ; preds = %599, %590, %588
%extractVec207.6.3751 = phi <4 x float> [ %extractVec207.6.1, %599 ], [ %extractVec207.6.3758, %590 ], [ %extractVec207.6.3758, %588 ]
%623 = phi <3 x float> [ %add206.6.1, %599 ], [ %83, %590 ], [ %83, %588 ]
%loadVec4204.6666 = phi <4 x float> [ %extractVec207.6.1, %599 ], [ %loadVec4204.6.1, %590 ], [ %loadVec4204.6.1, %588 ]
%fcj_buf.sroa.0.1.6.1 = phi <4 x float> [ %extractVec196.6.1, %599 ], [ %fcj_buf.sroa.0.1.5.1, %590 ], [ %fcj_buf.sroa.0.1.5.1, %588 ]
%and121.7.1 = and i32 %37, 32768
%tobool122.7.1 = icmp eq i32 %and121.7.1, 0
br i1 %tobool122.7.1, label %656, label %624
; <label>:624: ; preds = %622
%625 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.7.1, align 16, !tbaa !13
%626 = fsub fast <4 x float> %625, %381
%627 = extractelement <4 x float> %626, i32 0
%628 = extractelement <4 x float> %626, i32 1
%629 = fmul float %628, %628
%630 = tail call float @llvm.fmuladd.f32(float %627, float %627, float %629) #9
%631 = extractelement <4 x float> %626, i32 2
%632 = tail call float @llvm.fmuladd.f32(float %631, float %631, float %630) #9
%and143.7.1 = and i32 %38, 32768
%tobool144.7.1 = icmp ne i32 %and143.7.1, 0
%cond.7.1 = select i1 %tobool144.7.1, float 1.000000e+00, float 0.000000e+00
%notrhs.7.1 = icmp ne i32 %add124.7.1, %380
%not.or.cond.7.1 = or i1 %notlhs, %notrhs.7.1
%cmp150..7.1 = or i1 %cmp150, %not.or.cond.7.1
%conv152.7.1 = uitofp i1 %cmp150..7.1 to float
%mul153.7.1 = fmul fast float %conv152.7.1, %nbparam_params.coerce.fca.9.extract
%cmp154.7.1 = fcmp fast olt float %632, %mul153.7.1
br i1 %cmp154.7.1, label %633, label %656
; <label>:633: ; preds = %624
%extractVec141.7.1 = shufflevector <4 x float> %626, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%634 = extractelement <4 x float> %625, i64 3
%635 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.7.1, align 8, !tbaa !13
%636 = extractelement <2 x float> %635, i64 0
%637 = extractelement <2 x float> %635, i64 1
%mul161.7.1 = fmul fast float %637, %385
%638 = fcmp ogt float %632, 0x3E99A2B5C0000000
%639 = select i1 %638, float %632, float 0x3E99A2B5C0000000
%640 = tail call float @llvm.sqrt.f32(float %639) #10
%div164.7.1 = fdiv fast float 1.000000e+00, %640, !fpmath !33
%mul165.7.1 = fmul fast float %div164.7.1, %div164.7.1
%641 = fmul fast float %mul165.7.1, %mul165.7.1
%mul167.7.1 = fmul fast float %641, %cond.7.1
%mul168.7.1 = fmul fast float %mul167.7.1, %mul165.7.1
%642 = fmul fast float %384, %636
%neg.7.1 = fsub fast float -0.000000e+00, %642
%643 = tail call fast float @llvm.fmuladd.f32(float %mul161.7.1, float %mul168.7.1, float %neg.7.1)
%cmp172.7.1 = fcmp fast olt float %639, %nbparam_params.coerce.fca.10.extract
%cond174.7.1 = select i1 %cmp172.7.1, float 1.000000e+00, float 0.000000e+00
%mul170.7.1 = fmul fast float %mul165.7.1, %cond174.7.1
%mul171.7.1 = fmul fast float %mul170.7.1, %mul168.7.1
%mul175.7.1 = fmul fast float %mul171.7.1, %643
%mul176.7.1 = fmul fast float %634, %382
%mul177.7.1 = fmul fast float %mul165.7.1, %cond.7.1
%mul179.7.1 = fmul fast float %639, %mul
%mul.i.7.1 = fmul fast float %mul179.7.1, %mul179.7.1
%644 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%645 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%646 = tail call fast float @llvm.fmuladd.f32(float %644, float %mul.i.7.1, float 1.000000e+00) #9
%647 = tail call fast float @llvm.fmuladd.f32(float %645, float %mul179.7.1, float %646) #9
%div.i.7.1 = fdiv fast float 1.000000e+00, %647, !fpmath !33
%648 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%649 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%650 = tail call fast float @llvm.fmuladd.f32(float %648, float %mul.i.7.1, float 0xBF93BDB200000000) #9
%651 = tail call fast float @llvm.fmuladd.f32(float %649, float %mul.i.7.1, float 0x3FB1D5E760000000) #9
%652 = tail call fast float @llvm.fmuladd.f32(float %650, float %mul.i.7.1, float 0xBFE81272E0000000) #9
%653 = tail call fast float @llvm.fmuladd.f32(float %651, float %mul179.7.1, float %652) #9
%mul8.7.1 = fmul fast float %mul11.i, %div.i.7.1
%mul181.7.1 = fmul fast float %mul8.7.1, %653
%654 = tail call fast float @llvm.fmuladd.f32(float %mul177.7.1, float %div164.7.1, float %mul181.7.1)
%655 = tail call fast float @llvm.fmuladd.f32(float %mul176.7.1, float %654, float %mul175.7.1)
%splat.splatinsert.7.1 = insertelement <3 x float> undef, float %655, i32 0
%splat.splat.7.1 = shufflevector <3 x float> %splat.splatinsert.7.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.7.1 = fmul fast <3 x float> %splat.splat.7.1, %extractVec141.7.1
%extractVec194.7.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.6.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.7.1 = fsub fast <3 x float> %extractVec194.7.1, %mul186.7.1
%extractVec196.7.1 = shufflevector <3 x float> %sub195.7.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.7.1 = shufflevector <4 x float> %loadVec4204.7.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.7.1 = fadd fast <3 x float> %mul186.7.1, %extractVec205.7.1
%extractVec207.7.1 = shufflevector <3 x float> %add206.7.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %656
; <label>:656: ; preds = %633, %624, %622
%extractVec207.7.3760 = phi <4 x float> [ %extractVec207.7.1, %633 ], [ %extractVec207.7.3767, %624 ], [ %extractVec207.7.3767, %622 ]
%loadVec4204.7676 = phi <4 x float> [ %extractVec207.7.1, %633 ], [ %loadVec4204.7.1, %624 ], [ %loadVec4204.7.1, %622 ]
%fcj_buf.sroa.0.1.7.1 = phi <4 x float> [ %extractVec196.7.1, %633 ], [ %fcj_buf.sroa.0.1.6.1, %624 ], [ %fcj_buf.sroa.0.1.6.1, %622 ]
%657 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.1, i32 0
store float %657, float addrspace(3)* %arrayidx212, align 4, !tbaa !17
%658 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.1, i32 1
store float %658, float addrspace(3)* %arrayidx215, align 4, !tbaa !17
%659 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.1, i32 2
store float %659, float addrspace(3)* %arrayidx218, align 4, !tbaa !17
tail call void @reduce_force_j_generic(float addrspace(3)* %11, float addrspace(1)* %f, i32 %1, i32 %3, i32 %add112.1)
br label %.preheader.2601
.preheader.2601: ; preds = %656, %.preheader.1600
%extractVec207.7.3766 = phi <4 x float> [ %extractVec207.7.3760, %656 ], [ %extractVec207.7.3767, %.preheader.1600 ]
%extractVec207.6.3757 = phi <4 x float> [ %extractVec207.6.3751, %656 ], [ %extractVec207.6.3758, %.preheader.1600 ]
%extractVec207.5.3748 = phi <4 x float> [ %extractVec207.5.3742, %656 ], [ %extractVec207.5.3749, %.preheader.1600 ]
%extractVec207.4.3739 = phi <4 x float> [ %extractVec207.4.3733, %656 ], [ %extractVec207.4.3740, %.preheader.1600 ]
%extractVec207.3.3730 = phi <4 x float> [ %extractVec207.3.3724, %656 ], [ %extractVec207.3.3731, %.preheader.1600 ]
%extractVec207.2.3721 = phi <4 x float> [ %extractVec207.2.3715, %656 ], [ %extractVec207.2.3722, %.preheader.1600 ]
%extractVec207.1.3712 = phi <4 x float> [ %extractVec207.1.3706, %656 ], [ %extractVec207.1.3713, %.preheader.1600 ]
%extractVec207.3597703 = phi <4 x float> [ %extractVec207.3597697, %656 ], [ %extractVec207.3597704, %.preheader.1600 ]
%660 = phi <3 x float> [ %623, %656 ], [ %83, %.preheader.1600 ]
%661 = phi <3 x float> [ %589, %656 ], [ %84, %.preheader.1600 ]
%662 = phi <3 x float> [ %555, %656 ], [ %85, %.preheader.1600 ]
%663 = phi <3 x float> [ %521, %656 ], [ %86, %.preheader.1600 ]
%664 = phi <3 x float> [ %487, %656 ], [ %87, %.preheader.1600 ]
%665 = phi <3 x float> [ %453, %656 ], [ %88, %.preheader.1600 ]
%666 = phi <3 x float> [ %419, %656 ], [ %89, %.preheader.1600 ]
%loadVec4204.7.2 = phi <4 x float> [ %loadVec4204.7676, %656 ], [ %loadVec4204.7.1, %.preheader.1600 ]
%loadVec4204.6.2 = phi <4 x float> [ %loadVec4204.6666, %656 ], [ %loadVec4204.6.1, %.preheader.1600 ]
%loadVec4204.5.2 = phi <4 x float> [ %loadVec4204.5656, %656 ], [ %loadVec4204.5.1, %.preheader.1600 ]
%loadVec4204.4.2 = phi <4 x float> [ %loadVec4204.4646, %656 ], [ %loadVec4204.4.1, %.preheader.1600 ]
%loadVec4204.3.2 = phi <4 x float> [ %loadVec4204.3636, %656 ], [ %loadVec4204.3.1, %.preheader.1600 ]
%loadVec4204.2.2 = phi <4 x float> [ %loadVec4204.2626, %656 ], [ %loadVec4204.2.1, %.preheader.1600 ]
%loadVec4204.1.2 = phi <4 x float> [ %loadVec4204.1616, %656 ], [ %loadVec4204.1.1, %.preheader.1600 ]
%loadVec4204.2549 = phi <4 x float> [ %loadVec4204606, %656 ], [ %loadVec4204.1504, %.preheader.1600 ]
%and100.2 = and i32 %37, 16711680
%tobool101.2 = icmp eq i32 %and100.2, 0
br i1 %tobool101.2, label %.preheader.3602, label %667
; <label>:667: ; preds = %.preheader.2601
%668 = load i32, i32 addrspace(3)* %arrayidx110.2, align 4, !tbaa !9
%mul111.2 = shl nsw i32 %668, 3
%add112.2 = add i32 %mul111.2, %3
%idxprom113.2 = sext i32 %add112.2 to i64
%arrayidx114.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom113.2
%669 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx114.2, align 16, !tbaa !13
%670 = extractelement <4 x float> %669, i64 3
%arrayidx117.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom113.2
%671 = load <2 x float>, <2 x float> addrspace(1)* %arrayidx117.2, align 8, !tbaa !13
%672 = extractelement <2 x float> %671, i64 0
%673 = extractelement <2 x float> %671, i64 1
%and121.2510 = and i32 %37, 65536
%tobool122.2511 = icmp eq i32 %and121.2510, 0
br i1 %tobool122.2511, label %706, label %674
; <label>:674: ; preds = %667
%675 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.2512, align 16, !tbaa !13
%676 = fsub fast <4 x float> %675, %669
%677 = extractelement <4 x float> %676, i32 0
%678 = extractelement <4 x float> %676, i32 1
%679 = fmul float %678, %678
%680 = tail call float @llvm.fmuladd.f32(float %677, float %677, float %679) #9
%681 = extractelement <4 x float> %676, i32 2
%682 = tail call float @llvm.fmuladd.f32(float %681, float %681, float %680) #9
%and143.2513 = and i32 %38, 65536
%tobool144.2514 = icmp ne i32 %and143.2513, 0
%cond.2515 = select i1 %tobool144.2514, float 1.000000e+00, float 0.000000e+00
%notrhs.2516 = icmp ne i32 %mul22, %668
%not.or.cond.2517 = or i1 %notlhs, %notrhs.2516
%cmp150..2518 = or i1 %cmp150, %not.or.cond.2517
%conv152.2519 = uitofp i1 %cmp150..2518 to float
%mul153.2520 = fmul fast float %conv152.2519, %nbparam_params.coerce.fca.9.extract
%cmp154.2521 = fcmp fast olt float %682, %mul153.2520
br i1 %cmp154.2521, label %683, label %706
; <label>:683: ; preds = %674
%extractVec141.2522 = shufflevector <4 x float> %676, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%684 = extractelement <4 x float> %675, i64 3
%685 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.2523, align 8, !tbaa !13
%686 = extractelement <2 x float> %685, i64 0
%687 = extractelement <2 x float> %685, i64 1
%mul161.2524 = fmul fast float %687, %673
%688 = fcmp ogt float %682, 0x3E99A2B5C0000000
%689 = select i1 %688, float %682, float 0x3E99A2B5C0000000
%690 = tail call float @llvm.sqrt.f32(float %689) #10
%div164.2525 = fdiv fast float 1.000000e+00, %690, !fpmath !33
%mul165.2526 = fmul fast float %div164.2525, %div164.2525
%691 = fmul fast float %mul165.2526, %mul165.2526
%mul167.2527 = fmul fast float %691, %cond.2515
%mul168.2528 = fmul fast float %mul167.2527, %mul165.2526
%692 = fmul fast float %672, %686
%neg.2529 = fsub fast float -0.000000e+00, %692
%693 = tail call fast float @llvm.fmuladd.f32(float %mul161.2524, float %mul168.2528, float %neg.2529)
%cmp172.2530 = fcmp fast olt float %689, %nbparam_params.coerce.fca.10.extract
%cond174.2531 = select i1 %cmp172.2530, float 1.000000e+00, float 0.000000e+00
%mul170.2532 = fmul fast float %mul165.2526, %cond174.2531
%mul171.2533 = fmul fast float %mul170.2532, %mul168.2528
%mul175.2534 = fmul fast float %mul171.2533, %693
%mul176.2535 = fmul fast float %684, %670
%mul177.2536 = fmul fast float %mul165.2526, %cond.2515
%mul179.2537 = fmul fast float %689, %mul
%mul.i.2538 = fmul fast float %mul179.2537, %mul179.2537
%694 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2538, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%695 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2538, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%696 = tail call fast float @llvm.fmuladd.f32(float %694, float %mul.i.2538, float 1.000000e+00) #9
%697 = tail call fast float @llvm.fmuladd.f32(float %695, float %mul179.2537, float %696) #9
%div.i.2539 = fdiv fast float 1.000000e+00, %697, !fpmath !33
%698 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2538, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%699 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2538, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%700 = tail call fast float @llvm.fmuladd.f32(float %698, float %mul.i.2538, float 0xBF93BDB200000000) #9
%701 = tail call fast float @llvm.fmuladd.f32(float %699, float %mul.i.2538, float 0x3FB1D5E760000000) #9
%702 = tail call fast float @llvm.fmuladd.f32(float %700, float %mul.i.2538, float 0xBFE81272E0000000) #9
%703 = tail call fast float @llvm.fmuladd.f32(float %701, float %mul179.2537, float %702) #9
%mul8.2540 = fmul fast float %mul11.i, %div.i.2539
%mul181.2541 = fmul fast float %mul8.2540, %703
%704 = tail call fast float @llvm.fmuladd.f32(float %mul177.2536, float %div164.2525, float %mul181.2541)
%705 = tail call fast float @llvm.fmuladd.f32(float %mul176.2535, float %704, float %mul175.2534)
%splat.splatinsert.2542 = insertelement <3 x float> undef, float %705, i32 0
%splat.splat.2543 = shufflevector <3 x float> %splat.splatinsert.2542, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.2544 = fmul fast <3 x float> %splat.splat.2543, %extractVec141.2522
%sub195.2545 = fsub fast <3 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %mul186.2544
%extractVec196.2546 = shufflevector <3 x float> %sub195.2545, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.2550 = shufflevector <4 x float> %loadVec4204.2549, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.2551 = fadd fast <3 x float> %mul186.2544, %extractVec205.2550
%extractVec207.2552 = shufflevector <3 x float> %add206.2551, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %706
; <label>:706: ; preds = %683, %674, %667
%extractVec207.3597698 = phi <4 x float> [ %extractVec207.2552, %683 ], [ %extractVec207.3597703, %674 ], [ %extractVec207.3597703, %667 ]
%707 = phi <3 x float> [ %add206.2551, %683 ], [ %666, %674 ], [ %666, %667 ]
%loadVec4204607 = phi <4 x float> [ %extractVec207.2552, %683 ], [ %loadVec4204.2549, %674 ], [ %loadVec4204.2549, %667 ]
%fcj_buf.sroa.0.1.2553 = phi <4 x float> [ %extractVec196.2546, %683 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %674 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %667 ]
%and121.1.2 = and i32 %37, 131072
%tobool122.1.2 = icmp eq i32 %and121.1.2, 0
br i1 %tobool122.1.2, label %740, label %708
; <label>:708: ; preds = %706
%709 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.1.2, align 16, !tbaa !13
%710 = fsub fast <4 x float> %709, %669
%711 = extractelement <4 x float> %710, i32 0
%712 = extractelement <4 x float> %710, i32 1
%713 = fmul float %712, %712
%714 = tail call float @llvm.fmuladd.f32(float %711, float %711, float %713) #9
%715 = extractelement <4 x float> %710, i32 2
%716 = tail call float @llvm.fmuladd.f32(float %715, float %715, float %714) #9
%and143.1.2 = and i32 %38, 131072
%tobool144.1.2 = icmp ne i32 %and143.1.2, 0
%cond.1.2 = select i1 %tobool144.1.2, float 1.000000e+00, float 0.000000e+00
%notrhs.1.2 = icmp ne i32 %add124.1.2, %668
%not.or.cond.1.2 = or i1 %notlhs, %notrhs.1.2
%cmp150..1.2 = or i1 %cmp150, %not.or.cond.1.2
%conv152.1.2 = uitofp i1 %cmp150..1.2 to float
%mul153.1.2 = fmul fast float %conv152.1.2, %nbparam_params.coerce.fca.9.extract
%cmp154.1.2 = fcmp fast olt float %716, %mul153.1.2
br i1 %cmp154.1.2, label %717, label %740
; <label>:717: ; preds = %708
%extractVec141.1.2 = shufflevector <4 x float> %710, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%718 = extractelement <4 x float> %709, i64 3
%719 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.1.2, align 8, !tbaa !13
%720 = extractelement <2 x float> %719, i64 0
%721 = extractelement <2 x float> %719, i64 1
%mul161.1.2 = fmul fast float %721, %673
%722 = fcmp ogt float %716, 0x3E99A2B5C0000000
%723 = select i1 %722, float %716, float 0x3E99A2B5C0000000
%724 = tail call float @llvm.sqrt.f32(float %723) #10
%div164.1.2 = fdiv fast float 1.000000e+00, %724, !fpmath !33
%mul165.1.2 = fmul fast float %div164.1.2, %div164.1.2
%725 = fmul fast float %mul165.1.2, %mul165.1.2
%mul167.1.2 = fmul fast float %725, %cond.1.2
%mul168.1.2 = fmul fast float %mul167.1.2, %mul165.1.2
%726 = fmul fast float %672, %720
%neg.1.2 = fsub fast float -0.000000e+00, %726
%727 = tail call fast float @llvm.fmuladd.f32(float %mul161.1.2, float %mul168.1.2, float %neg.1.2)
%cmp172.1.2 = fcmp fast olt float %723, %nbparam_params.coerce.fca.10.extract
%cond174.1.2 = select i1 %cmp172.1.2, float 1.000000e+00, float 0.000000e+00
%mul170.1.2 = fmul fast float %mul165.1.2, %cond174.1.2
%mul171.1.2 = fmul fast float %mul170.1.2, %mul168.1.2
%mul175.1.2 = fmul fast float %mul171.1.2, %727
%mul176.1.2 = fmul fast float %718, %670
%mul177.1.2 = fmul fast float %mul165.1.2, %cond.1.2
%mul179.1.2 = fmul fast float %723, %mul
%mul.i.1.2 = fmul fast float %mul179.1.2, %mul179.1.2
%728 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%729 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%730 = tail call fast float @llvm.fmuladd.f32(float %728, float %mul.i.1.2, float 1.000000e+00) #9
%731 = tail call fast float @llvm.fmuladd.f32(float %729, float %mul179.1.2, float %730) #9
%div.i.1.2 = fdiv fast float 1.000000e+00, %731, !fpmath !33
%732 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%733 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%734 = tail call fast float @llvm.fmuladd.f32(float %732, float %mul.i.1.2, float 0xBF93BDB200000000) #9
%735 = tail call fast float @llvm.fmuladd.f32(float %733, float %mul.i.1.2, float 0x3FB1D5E760000000) #9
%736 = tail call fast float @llvm.fmuladd.f32(float %734, float %mul.i.1.2, float 0xBFE81272E0000000) #9
%737 = tail call fast float @llvm.fmuladd.f32(float %735, float %mul179.1.2, float %736) #9
%mul8.1.2 = fmul fast float %mul11.i, %div.i.1.2
%mul181.1.2 = fmul fast float %mul8.1.2, %737
%738 = tail call fast float @llvm.fmuladd.f32(float %mul177.1.2, float %div164.1.2, float %mul181.1.2)
%739 = tail call fast float @llvm.fmuladd.f32(float %mul176.1.2, float %738, float %mul175.1.2)
%splat.splatinsert.1.2 = insertelement <3 x float> undef, float %739, i32 0
%splat.splat.1.2 = shufflevector <3 x float> %splat.splatinsert.1.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.1.2 = fmul fast <3 x float> %splat.splat.1.2, %extractVec141.1.2
%extractVec194.1.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2553, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.1.2 = fsub fast <3 x float> %extractVec194.1.2, %mul186.1.2
%extractVec196.1.2 = shufflevector <3 x float> %sub195.1.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.1.2 = shufflevector <4 x float> %loadVec4204.1.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.1.2 = fadd fast <3 x float> %mul186.1.2, %extractVec205.1.2
%extractVec207.1.2 = shufflevector <3 x float> %add206.1.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %740
; <label>:740: ; preds = %717, %708, %706
%extractVec207.1.3707 = phi <4 x float> [ %extractVec207.1.2, %717 ], [ %extractVec207.1.3712, %708 ], [ %extractVec207.1.3712, %706 ]
%741 = phi <3 x float> [ %add206.1.2, %717 ], [ %665, %708 ], [ %665, %706 ]
%loadVec4204.1617 = phi <4 x float> [ %extractVec207.1.2, %717 ], [ %loadVec4204.1.2, %708 ], [ %loadVec4204.1.2, %706 ]
%fcj_buf.sroa.0.1.1.2 = phi <4 x float> [ %extractVec196.1.2, %717 ], [ %fcj_buf.sroa.0.1.2553, %708 ], [ %fcj_buf.sroa.0.1.2553, %706 ]
%and121.2.2 = and i32 %37, 262144
%tobool122.2.2 = icmp eq i32 %and121.2.2, 0
br i1 %tobool122.2.2, label %774, label %742
; <label>:742: ; preds = %740
%743 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.2.2, align 16, !tbaa !13
%744 = fsub fast <4 x float> %743, %669
%745 = extractelement <4 x float> %744, i32 0
%746 = extractelement <4 x float> %744, i32 1
%747 = fmul float %746, %746
%748 = tail call float @llvm.fmuladd.f32(float %745, float %745, float %747) #9
%749 = extractelement <4 x float> %744, i32 2
%750 = tail call float @llvm.fmuladd.f32(float %749, float %749, float %748) #9
%and143.2.2 = and i32 %38, 262144
%tobool144.2.2 = icmp ne i32 %and143.2.2, 0
%cond.2.2 = select i1 %tobool144.2.2, float 1.000000e+00, float 0.000000e+00
%notrhs.2.2 = icmp ne i32 %add124.2.2, %668
%not.or.cond.2.2 = or i1 %notlhs, %notrhs.2.2
%cmp150..2.2 = or i1 %cmp150, %not.or.cond.2.2
%conv152.2.2 = uitofp i1 %cmp150..2.2 to float
%mul153.2.2 = fmul fast float %conv152.2.2, %nbparam_params.coerce.fca.9.extract
%cmp154.2.2 = fcmp fast olt float %750, %mul153.2.2
br i1 %cmp154.2.2, label %751, label %774
; <label>:751: ; preds = %742
%extractVec141.2.2 = shufflevector <4 x float> %744, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%752 = extractelement <4 x float> %743, i64 3
%753 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.2.2, align 8, !tbaa !13
%754 = extractelement <2 x float> %753, i64 0
%755 = extractelement <2 x float> %753, i64 1
%mul161.2.2 = fmul fast float %755, %673
%756 = fcmp ogt float %750, 0x3E99A2B5C0000000
%757 = select i1 %756, float %750, float 0x3E99A2B5C0000000
%758 = tail call float @llvm.sqrt.f32(float %757) #10
%div164.2.2 = fdiv fast float 1.000000e+00, %758, !fpmath !33
%mul165.2.2 = fmul fast float %div164.2.2, %div164.2.2
%759 = fmul fast float %mul165.2.2, %mul165.2.2
%mul167.2.2 = fmul fast float %759, %cond.2.2
%mul168.2.2 = fmul fast float %mul167.2.2, %mul165.2.2
%760 = fmul fast float %672, %754
%neg.2.2 = fsub fast float -0.000000e+00, %760
%761 = tail call fast float @llvm.fmuladd.f32(float %mul161.2.2, float %mul168.2.2, float %neg.2.2)
%cmp172.2.2 = fcmp fast olt float %757, %nbparam_params.coerce.fca.10.extract
%cond174.2.2 = select i1 %cmp172.2.2, float 1.000000e+00, float 0.000000e+00
%mul170.2.2 = fmul fast float %mul165.2.2, %cond174.2.2
%mul171.2.2 = fmul fast float %mul170.2.2, %mul168.2.2
%mul175.2.2 = fmul fast float %mul171.2.2, %761
%mul176.2.2 = fmul fast float %752, %670
%mul177.2.2 = fmul fast float %mul165.2.2, %cond.2.2
%mul179.2.2 = fmul fast float %757, %mul
%mul.i.2.2 = fmul fast float %mul179.2.2, %mul179.2.2
%762 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%763 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%764 = tail call fast float @llvm.fmuladd.f32(float %762, float %mul.i.2.2, float 1.000000e+00) #9
%765 = tail call fast float @llvm.fmuladd.f32(float %763, float %mul179.2.2, float %764) #9
%div.i.2.2 = fdiv fast float 1.000000e+00, %765, !fpmath !33
%766 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%767 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%768 = tail call fast float @llvm.fmuladd.f32(float %766, float %mul.i.2.2, float 0xBF93BDB200000000) #9
%769 = tail call fast float @llvm.fmuladd.f32(float %767, float %mul.i.2.2, float 0x3FB1D5E760000000) #9
%770 = tail call fast float @llvm.fmuladd.f32(float %768, float %mul.i.2.2, float 0xBFE81272E0000000) #9
%771 = tail call fast float @llvm.fmuladd.f32(float %769, float %mul179.2.2, float %770) #9
%mul8.2.2 = fmul fast float %mul11.i, %div.i.2.2
%mul181.2.2 = fmul fast float %mul8.2.2, %771
%772 = tail call fast float @llvm.fmuladd.f32(float %mul177.2.2, float %div164.2.2, float %mul181.2.2)
%773 = tail call fast float @llvm.fmuladd.f32(float %mul176.2.2, float %772, float %mul175.2.2)
%splat.splatinsert.2.2 = insertelement <3 x float> undef, float %773, i32 0
%splat.splat.2.2 = shufflevector <3 x float> %splat.splatinsert.2.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.2.2 = fmul fast <3 x float> %splat.splat.2.2, %extractVec141.2.2
%extractVec194.2.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.2.2 = fsub fast <3 x float> %extractVec194.2.2, %mul186.2.2
%extractVec196.2.2 = shufflevector <3 x float> %sub195.2.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.2.2 = shufflevector <4 x float> %loadVec4204.2.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.2.2 = fadd fast <3 x float> %mul186.2.2, %extractVec205.2.2
%extractVec207.2.2 = shufflevector <3 x float> %add206.2.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %774
; <label>:774: ; preds = %751, %742, %740
%extractVec207.2.3716 = phi <4 x float> [ %extractVec207.2.2, %751 ], [ %extractVec207.2.3721, %742 ], [ %extractVec207.2.3721, %740 ]
%775 = phi <3 x float> [ %add206.2.2, %751 ], [ %664, %742 ], [ %664, %740 ]
%loadVec4204.2627 = phi <4 x float> [ %extractVec207.2.2, %751 ], [ %loadVec4204.2.2, %742 ], [ %loadVec4204.2.2, %740 ]
%fcj_buf.sroa.0.1.2.2 = phi <4 x float> [ %extractVec196.2.2, %751 ], [ %fcj_buf.sroa.0.1.1.2, %742 ], [ %fcj_buf.sroa.0.1.1.2, %740 ]
%and121.3.2 = and i32 %37, 524288
%tobool122.3.2 = icmp eq i32 %and121.3.2, 0
br i1 %tobool122.3.2, label %808, label %776
; <label>:776: ; preds = %774
%777 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.3.2, align 16, !tbaa !13
%778 = fsub fast <4 x float> %777, %669
%779 = extractelement <4 x float> %778, i32 0
%780 = extractelement <4 x float> %778, i32 1
%781 = fmul float %780, %780
%782 = tail call float @llvm.fmuladd.f32(float %779, float %779, float %781) #9
%783 = extractelement <4 x float> %778, i32 2
%784 = tail call float @llvm.fmuladd.f32(float %783, float %783, float %782) #9
%and143.3.2 = and i32 %38, 524288
%tobool144.3.2 = icmp ne i32 %and143.3.2, 0
%cond.3.2 = select i1 %tobool144.3.2, float 1.000000e+00, float 0.000000e+00
%notrhs.3.2 = icmp ne i32 %add124.3.2, %668
%not.or.cond.3.2 = or i1 %notlhs, %notrhs.3.2
%cmp150..3.2 = or i1 %cmp150, %not.or.cond.3.2
%conv152.3.2 = uitofp i1 %cmp150..3.2 to float
%mul153.3.2 = fmul fast float %conv152.3.2, %nbparam_params.coerce.fca.9.extract
%cmp154.3.2 = fcmp fast olt float %784, %mul153.3.2
br i1 %cmp154.3.2, label %785, label %808
; <label>:785: ; preds = %776
%extractVec141.3.2 = shufflevector <4 x float> %778, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%786 = extractelement <4 x float> %777, i64 3
%787 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.3.2, align 8, !tbaa !13
%788 = extractelement <2 x float> %787, i64 0
%789 = extractelement <2 x float> %787, i64 1
%mul161.3.2 = fmul fast float %789, %673
%790 = fcmp ogt float %784, 0x3E99A2B5C0000000
%791 = select i1 %790, float %784, float 0x3E99A2B5C0000000
%792 = tail call float @llvm.sqrt.f32(float %791) #10
%div164.3.2 = fdiv fast float 1.000000e+00, %792, !fpmath !33
%mul165.3.2 = fmul fast float %div164.3.2, %div164.3.2
%793 = fmul fast float %mul165.3.2, %mul165.3.2
%mul167.3.2 = fmul fast float %793, %cond.3.2
%mul168.3.2 = fmul fast float %mul167.3.2, %mul165.3.2
%794 = fmul fast float %672, %788
%neg.3.2 = fsub fast float -0.000000e+00, %794
%795 = tail call fast float @llvm.fmuladd.f32(float %mul161.3.2, float %mul168.3.2, float %neg.3.2)
%cmp172.3.2 = fcmp fast olt float %791, %nbparam_params.coerce.fca.10.extract
%cond174.3.2 = select i1 %cmp172.3.2, float 1.000000e+00, float 0.000000e+00
%mul170.3.2 = fmul fast float %mul165.3.2, %cond174.3.2
%mul171.3.2 = fmul fast float %mul170.3.2, %mul168.3.2
%mul175.3.2 = fmul fast float %mul171.3.2, %795
%mul176.3.2 = fmul fast float %786, %670
%mul177.3.2 = fmul fast float %mul165.3.2, %cond.3.2
%mul179.3.2 = fmul fast float %791, %mul
%mul.i.3.2 = fmul fast float %mul179.3.2, %mul179.3.2
%796 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%797 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%798 = tail call fast float @llvm.fmuladd.f32(float %796, float %mul.i.3.2, float 1.000000e+00) #9
%799 = tail call fast float @llvm.fmuladd.f32(float %797, float %mul179.3.2, float %798) #9
%div.i.3.2 = fdiv fast float 1.000000e+00, %799, !fpmath !33
%800 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%801 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%802 = tail call fast float @llvm.fmuladd.f32(float %800, float %mul.i.3.2, float 0xBF93BDB200000000) #9
%803 = tail call fast float @llvm.fmuladd.f32(float %801, float %mul.i.3.2, float 0x3FB1D5E760000000) #9
%804 = tail call fast float @llvm.fmuladd.f32(float %802, float %mul.i.3.2, float 0xBFE81272E0000000) #9
%805 = tail call fast float @llvm.fmuladd.f32(float %803, float %mul179.3.2, float %804) #9
%mul8.3.2 = fmul fast float %mul11.i, %div.i.3.2
%mul181.3.2 = fmul fast float %mul8.3.2, %805
%806 = tail call fast float @llvm.fmuladd.f32(float %mul177.3.2, float %div164.3.2, float %mul181.3.2)
%807 = tail call fast float @llvm.fmuladd.f32(float %mul176.3.2, float %806, float %mul175.3.2)
%splat.splatinsert.3.2 = insertelement <3 x float> undef, float %807, i32 0
%splat.splat.3.2 = shufflevector <3 x float> %splat.splatinsert.3.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.3.2 = fmul fast <3 x float> %splat.splat.3.2, %extractVec141.3.2
%extractVec194.3.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.3.2 = fsub fast <3 x float> %extractVec194.3.2, %mul186.3.2
%extractVec196.3.2 = shufflevector <3 x float> %sub195.3.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.3.2 = shufflevector <4 x float> %loadVec4204.3.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.3.2 = fadd fast <3 x float> %mul186.3.2, %extractVec205.3.2
%extractVec207.3.2 = shufflevector <3 x float> %add206.3.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %808
; <label>:808: ; preds = %785, %776, %774
%extractVec207.3.3725 = phi <4 x float> [ %extractVec207.3.2, %785 ], [ %extractVec207.3.3730, %776 ], [ %extractVec207.3.3730, %774 ]
%809 = phi <3 x float> [ %add206.3.2, %785 ], [ %663, %776 ], [ %663, %774 ]
%loadVec4204.3637 = phi <4 x float> [ %extractVec207.3.2, %785 ], [ %loadVec4204.3.2, %776 ], [ %loadVec4204.3.2, %774 ]
%fcj_buf.sroa.0.1.3.2 = phi <4 x float> [ %extractVec196.3.2, %785 ], [ %fcj_buf.sroa.0.1.2.2, %776 ], [ %fcj_buf.sroa.0.1.2.2, %774 ]
%and121.4.2 = and i32 %37, 1048576
%tobool122.4.2 = icmp eq i32 %and121.4.2, 0
br i1 %tobool122.4.2, label %842, label %810
; <label>:810: ; preds = %808
%811 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.4.2, align 16, !tbaa !13
%812 = fsub fast <4 x float> %811, %669
%813 = extractelement <4 x float> %812, i32 0
%814 = extractelement <4 x float> %812, i32 1
%815 = fmul float %814, %814
%816 = tail call float @llvm.fmuladd.f32(float %813, float %813, float %815) #9
%817 = extractelement <4 x float> %812, i32 2
%818 = tail call float @llvm.fmuladd.f32(float %817, float %817, float %816) #9
%and143.4.2 = and i32 %38, 1048576
%tobool144.4.2 = icmp ne i32 %and143.4.2, 0
%cond.4.2 = select i1 %tobool144.4.2, float 1.000000e+00, float 0.000000e+00
%notrhs.4.2 = icmp ne i32 %add124.4.2, %668
%not.or.cond.4.2 = or i1 %notlhs, %notrhs.4.2
%cmp150..4.2 = or i1 %cmp150, %not.or.cond.4.2
%conv152.4.2 = uitofp i1 %cmp150..4.2 to float
%mul153.4.2 = fmul fast float %conv152.4.2, %nbparam_params.coerce.fca.9.extract
%cmp154.4.2 = fcmp fast olt float %818, %mul153.4.2
br i1 %cmp154.4.2, label %819, label %842
; <label>:819: ; preds = %810
%extractVec141.4.2 = shufflevector <4 x float> %812, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%820 = extractelement <4 x float> %811, i64 3
%821 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.4.2, align 8, !tbaa !13
%822 = extractelement <2 x float> %821, i64 0
%823 = extractelement <2 x float> %821, i64 1
%mul161.4.2 = fmul fast float %823, %673
%824 = fcmp ogt float %818, 0x3E99A2B5C0000000
%825 = select i1 %824, float %818, float 0x3E99A2B5C0000000
%826 = tail call float @llvm.sqrt.f32(float %825) #10
%div164.4.2 = fdiv fast float 1.000000e+00, %826, !fpmath !33
%mul165.4.2 = fmul fast float %div164.4.2, %div164.4.2
%827 = fmul fast float %mul165.4.2, %mul165.4.2
%mul167.4.2 = fmul fast float %827, %cond.4.2
%mul168.4.2 = fmul fast float %mul167.4.2, %mul165.4.2
%828 = fmul fast float %672, %822
%neg.4.2 = fsub fast float -0.000000e+00, %828
%829 = tail call fast float @llvm.fmuladd.f32(float %mul161.4.2, float %mul168.4.2, float %neg.4.2)
%cmp172.4.2 = fcmp fast olt float %825, %nbparam_params.coerce.fca.10.extract
%cond174.4.2 = select i1 %cmp172.4.2, float 1.000000e+00, float 0.000000e+00
%mul170.4.2 = fmul fast float %mul165.4.2, %cond174.4.2
%mul171.4.2 = fmul fast float %mul170.4.2, %mul168.4.2
%mul175.4.2 = fmul fast float %mul171.4.2, %829
%mul176.4.2 = fmul fast float %820, %670
%mul177.4.2 = fmul fast float %mul165.4.2, %cond.4.2
%mul179.4.2 = fmul fast float %825, %mul
%mul.i.4.2 = fmul fast float %mul179.4.2, %mul179.4.2
%830 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%831 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%832 = tail call fast float @llvm.fmuladd.f32(float %830, float %mul.i.4.2, float 1.000000e+00) #9
%833 = tail call fast float @llvm.fmuladd.f32(float %831, float %mul179.4.2, float %832) #9
%div.i.4.2 = fdiv fast float 1.000000e+00, %833, !fpmath !33
%834 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%835 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%836 = tail call fast float @llvm.fmuladd.f32(float %834, float %mul.i.4.2, float 0xBF93BDB200000000) #9
%837 = tail call fast float @llvm.fmuladd.f32(float %835, float %mul.i.4.2, float 0x3FB1D5E760000000) #9
%838 = tail call fast float @llvm.fmuladd.f32(float %836, float %mul.i.4.2, float 0xBFE81272E0000000) #9
%839 = tail call fast float @llvm.fmuladd.f32(float %837, float %mul179.4.2, float %838) #9
%mul8.4.2 = fmul fast float %mul11.i, %div.i.4.2
%mul181.4.2 = fmul fast float %mul8.4.2, %839
%840 = tail call fast float @llvm.fmuladd.f32(float %mul177.4.2, float %div164.4.2, float %mul181.4.2)
%841 = tail call fast float @llvm.fmuladd.f32(float %mul176.4.2, float %840, float %mul175.4.2)
%splat.splatinsert.4.2 = insertelement <3 x float> undef, float %841, i32 0
%splat.splat.4.2 = shufflevector <3 x float> %splat.splatinsert.4.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.4.2 = fmul fast <3 x float> %splat.splat.4.2, %extractVec141.4.2
%extractVec194.4.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.4.2 = fsub fast <3 x float> %extractVec194.4.2, %mul186.4.2
%extractVec196.4.2 = shufflevector <3 x float> %sub195.4.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.4.2 = shufflevector <4 x float> %loadVec4204.4.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.4.2 = fadd fast <3 x float> %mul186.4.2, %extractVec205.4.2
%extractVec207.4.2 = shufflevector <3 x float> %add206.4.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %842
; <label>:842: ; preds = %819, %810, %808
%extractVec207.4.3734 = phi <4 x float> [ %extractVec207.4.2, %819 ], [ %extractVec207.4.3739, %810 ], [ %extractVec207.4.3739, %808 ]
%843 = phi <3 x float> [ %add206.4.2, %819 ], [ %662, %810 ], [ %662, %808 ]
%loadVec4204.4647 = phi <4 x float> [ %extractVec207.4.2, %819 ], [ %loadVec4204.4.2, %810 ], [ %loadVec4204.4.2, %808 ]
%fcj_buf.sroa.0.1.4.2 = phi <4 x float> [ %extractVec196.4.2, %819 ], [ %fcj_buf.sroa.0.1.3.2, %810 ], [ %fcj_buf.sroa.0.1.3.2, %808 ]
%and121.5.2 = and i32 %37, 2097152
%tobool122.5.2 = icmp eq i32 %and121.5.2, 0
br i1 %tobool122.5.2, label %876, label %844
; <label>:844: ; preds = %842
%845 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.5.2, align 16, !tbaa !13
%846 = fsub fast <4 x float> %845, %669
%847 = extractelement <4 x float> %846, i32 0
%848 = extractelement <4 x float> %846, i32 1
%849 = fmul float %848, %848
%850 = tail call float @llvm.fmuladd.f32(float %847, float %847, float %849) #9
%851 = extractelement <4 x float> %846, i32 2
%852 = tail call float @llvm.fmuladd.f32(float %851, float %851, float %850) #9
%and143.5.2 = and i32 %38, 2097152
%tobool144.5.2 = icmp ne i32 %and143.5.2, 0
%cond.5.2 = select i1 %tobool144.5.2, float 1.000000e+00, float 0.000000e+00
%notrhs.5.2 = icmp ne i32 %add124.5.2, %668
%not.or.cond.5.2 = or i1 %notlhs, %notrhs.5.2
%cmp150..5.2 = or i1 %cmp150, %not.or.cond.5.2
%conv152.5.2 = uitofp i1 %cmp150..5.2 to float
%mul153.5.2 = fmul fast float %conv152.5.2, %nbparam_params.coerce.fca.9.extract
%cmp154.5.2 = fcmp fast olt float %852, %mul153.5.2
br i1 %cmp154.5.2, label %853, label %876
; <label>:853: ; preds = %844
%extractVec141.5.2 = shufflevector <4 x float> %846, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%854 = extractelement <4 x float> %845, i64 3
%855 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.5.2, align 8, !tbaa !13
%856 = extractelement <2 x float> %855, i64 0
%857 = extractelement <2 x float> %855, i64 1
%mul161.5.2 = fmul fast float %857, %673
%858 = fcmp ogt float %852, 0x3E99A2B5C0000000
%859 = select i1 %858, float %852, float 0x3E99A2B5C0000000
%860 = tail call float @llvm.sqrt.f32(float %859) #10
%div164.5.2 = fdiv fast float 1.000000e+00, %860, !fpmath !33
%mul165.5.2 = fmul fast float %div164.5.2, %div164.5.2
%861 = fmul fast float %mul165.5.2, %mul165.5.2
%mul167.5.2 = fmul fast float %861, %cond.5.2
%mul168.5.2 = fmul fast float %mul167.5.2, %mul165.5.2
%862 = fmul fast float %672, %856
%neg.5.2 = fsub fast float -0.000000e+00, %862
%863 = tail call fast float @llvm.fmuladd.f32(float %mul161.5.2, float %mul168.5.2, float %neg.5.2)
%cmp172.5.2 = fcmp fast olt float %859, %nbparam_params.coerce.fca.10.extract
%cond174.5.2 = select i1 %cmp172.5.2, float 1.000000e+00, float 0.000000e+00
%mul170.5.2 = fmul fast float %mul165.5.2, %cond174.5.2
%mul171.5.2 = fmul fast float %mul170.5.2, %mul168.5.2
%mul175.5.2 = fmul fast float %mul171.5.2, %863
%mul176.5.2 = fmul fast float %854, %670
%mul177.5.2 = fmul fast float %mul165.5.2, %cond.5.2
%mul179.5.2 = fmul fast float %859, %mul
%mul.i.5.2 = fmul fast float %mul179.5.2, %mul179.5.2
%864 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%865 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%866 = tail call fast float @llvm.fmuladd.f32(float %864, float %mul.i.5.2, float 1.000000e+00) #9
%867 = tail call fast float @llvm.fmuladd.f32(float %865, float %mul179.5.2, float %866) #9
%div.i.5.2 = fdiv fast float 1.000000e+00, %867, !fpmath !33
%868 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%869 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%870 = tail call fast float @llvm.fmuladd.f32(float %868, float %mul.i.5.2, float 0xBF93BDB200000000) #9
%871 = tail call fast float @llvm.fmuladd.f32(float %869, float %mul.i.5.2, float 0x3FB1D5E760000000) #9
%872 = tail call fast float @llvm.fmuladd.f32(float %870, float %mul.i.5.2, float 0xBFE81272E0000000) #9
%873 = tail call fast float @llvm.fmuladd.f32(float %871, float %mul179.5.2, float %872) #9
%mul8.5.2 = fmul fast float %mul11.i, %div.i.5.2
%mul181.5.2 = fmul fast float %mul8.5.2, %873
%874 = tail call fast float @llvm.fmuladd.f32(float %mul177.5.2, float %div164.5.2, float %mul181.5.2)
%875 = tail call fast float @llvm.fmuladd.f32(float %mul176.5.2, float %874, float %mul175.5.2)
%splat.splatinsert.5.2 = insertelement <3 x float> undef, float %875, i32 0
%splat.splat.5.2 = shufflevector <3 x float> %splat.splatinsert.5.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.5.2 = fmul fast <3 x float> %splat.splat.5.2, %extractVec141.5.2
%extractVec194.5.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.4.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.5.2 = fsub fast <3 x float> %extractVec194.5.2, %mul186.5.2
%extractVec196.5.2 = shufflevector <3 x float> %sub195.5.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.5.2 = shufflevector <4 x float> %loadVec4204.5.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.5.2 = fadd fast <3 x float> %mul186.5.2, %extractVec205.5.2
%extractVec207.5.2 = shufflevector <3 x float> %add206.5.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %876
; <label>:876: ; preds = %853, %844, %842
%extractVec207.5.3743 = phi <4 x float> [ %extractVec207.5.2, %853 ], [ %extractVec207.5.3748, %844 ], [ %extractVec207.5.3748, %842 ]
%877 = phi <3 x float> [ %add206.5.2, %853 ], [ %661, %844 ], [ %661, %842 ]
%loadVec4204.5657 = phi <4 x float> [ %extractVec207.5.2, %853 ], [ %loadVec4204.5.2, %844 ], [ %loadVec4204.5.2, %842 ]
%fcj_buf.sroa.0.1.5.2 = phi <4 x float> [ %extractVec196.5.2, %853 ], [ %fcj_buf.sroa.0.1.4.2, %844 ], [ %fcj_buf.sroa.0.1.4.2, %842 ]
%and121.6.2 = and i32 %37, 4194304
%tobool122.6.2 = icmp eq i32 %and121.6.2, 0
br i1 %tobool122.6.2, label %910, label %878
; <label>:878: ; preds = %876
%879 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.6.2, align 16, !tbaa !13
%880 = fsub fast <4 x float> %879, %669
%881 = extractelement <4 x float> %880, i32 0
%882 = extractelement <4 x float> %880, i32 1
%883 = fmul float %882, %882
%884 = tail call float @llvm.fmuladd.f32(float %881, float %881, float %883) #9
%885 = extractelement <4 x float> %880, i32 2
%886 = tail call float @llvm.fmuladd.f32(float %885, float %885, float %884) #9
%and143.6.2 = and i32 %38, 4194304
%tobool144.6.2 = icmp ne i32 %and143.6.2, 0
%cond.6.2 = select i1 %tobool144.6.2, float 1.000000e+00, float 0.000000e+00
%notrhs.6.2 = icmp ne i32 %add124.6.2, %668
%not.or.cond.6.2 = or i1 %notlhs, %notrhs.6.2
%cmp150..6.2 = or i1 %cmp150, %not.or.cond.6.2
%conv152.6.2 = uitofp i1 %cmp150..6.2 to float
%mul153.6.2 = fmul fast float %conv152.6.2, %nbparam_params.coerce.fca.9.extract
%cmp154.6.2 = fcmp fast olt float %886, %mul153.6.2
br i1 %cmp154.6.2, label %887, label %910
; <label>:887: ; preds = %878
%extractVec141.6.2 = shufflevector <4 x float> %880, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%888 = extractelement <4 x float> %879, i64 3
%889 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.6.2, align 8, !tbaa !13
%890 = extractelement <2 x float> %889, i64 0
%891 = extractelement <2 x float> %889, i64 1
%mul161.6.2 = fmul fast float %891, %673
%892 = fcmp ogt float %886, 0x3E99A2B5C0000000
%893 = select i1 %892, float %886, float 0x3E99A2B5C0000000
%894 = tail call float @llvm.sqrt.f32(float %893) #10
%div164.6.2 = fdiv fast float 1.000000e+00, %894, !fpmath !33
%mul165.6.2 = fmul fast float %div164.6.2, %div164.6.2
%895 = fmul fast float %mul165.6.2, %mul165.6.2
%mul167.6.2 = fmul fast float %895, %cond.6.2
%mul168.6.2 = fmul fast float %mul167.6.2, %mul165.6.2
%896 = fmul fast float %672, %890
%neg.6.2 = fsub fast float -0.000000e+00, %896
%897 = tail call fast float @llvm.fmuladd.f32(float %mul161.6.2, float %mul168.6.2, float %neg.6.2)
%cmp172.6.2 = fcmp fast olt float %893, %nbparam_params.coerce.fca.10.extract
%cond174.6.2 = select i1 %cmp172.6.2, float 1.000000e+00, float 0.000000e+00
%mul170.6.2 = fmul fast float %mul165.6.2, %cond174.6.2
%mul171.6.2 = fmul fast float %mul170.6.2, %mul168.6.2
%mul175.6.2 = fmul fast float %mul171.6.2, %897
%mul176.6.2 = fmul fast float %888, %670
%mul177.6.2 = fmul fast float %mul165.6.2, %cond.6.2
%mul179.6.2 = fmul fast float %893, %mul
%mul.i.6.2 = fmul fast float %mul179.6.2, %mul179.6.2
%898 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%899 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%900 = tail call fast float @llvm.fmuladd.f32(float %898, float %mul.i.6.2, float 1.000000e+00) #9
%901 = tail call fast float @llvm.fmuladd.f32(float %899, float %mul179.6.2, float %900) #9
%div.i.6.2 = fdiv fast float 1.000000e+00, %901, !fpmath !33
%902 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%903 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%904 = tail call fast float @llvm.fmuladd.f32(float %902, float %mul.i.6.2, float 0xBF93BDB200000000) #9
%905 = tail call fast float @llvm.fmuladd.f32(float %903, float %mul.i.6.2, float 0x3FB1D5E760000000) #9
%906 = tail call fast float @llvm.fmuladd.f32(float %904, float %mul.i.6.2, float 0xBFE81272E0000000) #9
%907 = tail call fast float @llvm.fmuladd.f32(float %905, float %mul179.6.2, float %906) #9
%mul8.6.2 = fmul fast float %mul11.i, %div.i.6.2
%mul181.6.2 = fmul fast float %mul8.6.2, %907
%908 = tail call fast float @llvm.fmuladd.f32(float %mul177.6.2, float %div164.6.2, float %mul181.6.2)
%909 = tail call fast float @llvm.fmuladd.f32(float %mul176.6.2, float %908, float %mul175.6.2)
%splat.splatinsert.6.2 = insertelement <3 x float> undef, float %909, i32 0
%splat.splat.6.2 = shufflevector <3 x float> %splat.splatinsert.6.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.6.2 = fmul fast <3 x float> %splat.splat.6.2, %extractVec141.6.2
%extractVec194.6.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.5.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.6.2 = fsub fast <3 x float> %extractVec194.6.2, %mul186.6.2
%extractVec196.6.2 = shufflevector <3 x float> %sub195.6.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.6.2 = shufflevector <4 x float> %loadVec4204.6.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.6.2 = fadd fast <3 x float> %mul186.6.2, %extractVec205.6.2
%extractVec207.6.2 = shufflevector <3 x float> %add206.6.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %910
; <label>:910: ; preds = %887, %878, %876
%extractVec207.6.3752 = phi <4 x float> [ %extractVec207.6.2, %887 ], [ %extractVec207.6.3757, %878 ], [ %extractVec207.6.3757, %876 ]
%911 = phi <3 x float> [ %add206.6.2, %887 ], [ %660, %878 ], [ %660, %876 ]
%loadVec4204.6667 = phi <4 x float> [ %extractVec207.6.2, %887 ], [ %loadVec4204.6.2, %878 ], [ %loadVec4204.6.2, %876 ]
%fcj_buf.sroa.0.1.6.2 = phi <4 x float> [ %extractVec196.6.2, %887 ], [ %fcj_buf.sroa.0.1.5.2, %878 ], [ %fcj_buf.sroa.0.1.5.2, %876 ]
%and121.7.2 = and i32 %37, 8388608
%tobool122.7.2 = icmp eq i32 %and121.7.2, 0
br i1 %tobool122.7.2, label %944, label %912
; <label>:912: ; preds = %910
%913 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.7.2, align 16, !tbaa !13
%914 = fsub fast <4 x float> %913, %669
%915 = extractelement <4 x float> %914, i32 0
%916 = extractelement <4 x float> %914, i32 1
%917 = fmul float %916, %916
%918 = tail call float @llvm.fmuladd.f32(float %915, float %915, float %917) #9
%919 = extractelement <4 x float> %914, i32 2
%920 = tail call float @llvm.fmuladd.f32(float %919, float %919, float %918) #9
%and143.7.2 = and i32 %38, 8388608
%tobool144.7.2 = icmp ne i32 %and143.7.2, 0
%cond.7.2 = select i1 %tobool144.7.2, float 1.000000e+00, float 0.000000e+00
%notrhs.7.2 = icmp ne i32 %add124.7.2, %668
%not.or.cond.7.2 = or i1 %notlhs, %notrhs.7.2
%cmp150..7.2 = or i1 %cmp150, %not.or.cond.7.2
%conv152.7.2 = uitofp i1 %cmp150..7.2 to float
%mul153.7.2 = fmul fast float %conv152.7.2, %nbparam_params.coerce.fca.9.extract
%cmp154.7.2 = fcmp fast olt float %920, %mul153.7.2
br i1 %cmp154.7.2, label %921, label %944
; <label>:921: ; preds = %912
%extractVec141.7.2 = shufflevector <4 x float> %914, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%922 = extractelement <4 x float> %913, i64 3
%923 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.7.2, align 8, !tbaa !13
%924 = extractelement <2 x float> %923, i64 0
%925 = extractelement <2 x float> %923, i64 1
%mul161.7.2 = fmul fast float %925, %673
%926 = fcmp ogt float %920, 0x3E99A2B5C0000000
%927 = select i1 %926, float %920, float 0x3E99A2B5C0000000
%928 = tail call float @llvm.sqrt.f32(float %927) #10
%div164.7.2 = fdiv fast float 1.000000e+00, %928, !fpmath !33
%mul165.7.2 = fmul fast float %div164.7.2, %div164.7.2
%929 = fmul fast float %mul165.7.2, %mul165.7.2
%mul167.7.2 = fmul fast float %929, %cond.7.2
%mul168.7.2 = fmul fast float %mul167.7.2, %mul165.7.2
%930 = fmul fast float %672, %924
%neg.7.2 = fsub fast float -0.000000e+00, %930
%931 = tail call fast float @llvm.fmuladd.f32(float %mul161.7.2, float %mul168.7.2, float %neg.7.2)
%cmp172.7.2 = fcmp fast olt float %927, %nbparam_params.coerce.fca.10.extract
%cond174.7.2 = select i1 %cmp172.7.2, float 1.000000e+00, float 0.000000e+00
%mul170.7.2 = fmul fast float %mul165.7.2, %cond174.7.2
%mul171.7.2 = fmul fast float %mul170.7.2, %mul168.7.2
%mul175.7.2 = fmul fast float %mul171.7.2, %931
%mul176.7.2 = fmul fast float %922, %670
%mul177.7.2 = fmul fast float %mul165.7.2, %cond.7.2
%mul179.7.2 = fmul fast float %927, %mul
%mul.i.7.2 = fmul fast float %mul179.7.2, %mul179.7.2
%932 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%933 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%934 = tail call fast float @llvm.fmuladd.f32(float %932, float %mul.i.7.2, float 1.000000e+00) #9
%935 = tail call fast float @llvm.fmuladd.f32(float %933, float %mul179.7.2, float %934) #9
%div.i.7.2 = fdiv fast float 1.000000e+00, %935, !fpmath !33
%936 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%937 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%938 = tail call fast float @llvm.fmuladd.f32(float %936, float %mul.i.7.2, float 0xBF93BDB200000000) #9
%939 = tail call fast float @llvm.fmuladd.f32(float %937, float %mul.i.7.2, float 0x3FB1D5E760000000) #9
%940 = tail call fast float @llvm.fmuladd.f32(float %938, float %mul.i.7.2, float 0xBFE81272E0000000) #9
%941 = tail call fast float @llvm.fmuladd.f32(float %939, float %mul179.7.2, float %940) #9
%mul8.7.2 = fmul fast float %mul11.i, %div.i.7.2
%mul181.7.2 = fmul fast float %mul8.7.2, %941
%942 = tail call fast float @llvm.fmuladd.f32(float %mul177.7.2, float %div164.7.2, float %mul181.7.2)
%943 = tail call fast float @llvm.fmuladd.f32(float %mul176.7.2, float %942, float %mul175.7.2)
%splat.splatinsert.7.2 = insertelement <3 x float> undef, float %943, i32 0
%splat.splat.7.2 = shufflevector <3 x float> %splat.splatinsert.7.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.7.2 = fmul fast <3 x float> %splat.splat.7.2, %extractVec141.7.2
%extractVec194.7.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.6.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.7.2 = fsub fast <3 x float> %extractVec194.7.2, %mul186.7.2
%extractVec196.7.2 = shufflevector <3 x float> %sub195.7.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.7.2 = shufflevector <4 x float> %loadVec4204.7.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.7.2 = fadd fast <3 x float> %mul186.7.2, %extractVec205.7.2
%extractVec207.7.2 = shufflevector <3 x float> %add206.7.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %944
; <label>:944: ; preds = %921, %912, %910
%extractVec207.7.3761 = phi <4 x float> [ %extractVec207.7.2, %921 ], [ %extractVec207.7.3766, %912 ], [ %extractVec207.7.3766, %910 ]
%loadVec4204.7677 = phi <4 x float> [ %extractVec207.7.2, %921 ], [ %loadVec4204.7.2, %912 ], [ %loadVec4204.7.2, %910 ]
%fcj_buf.sroa.0.1.7.2 = phi <4 x float> [ %extractVec196.7.2, %921 ], [ %fcj_buf.sroa.0.1.6.2, %912 ], [ %fcj_buf.sroa.0.1.6.2, %910 ]
%945 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.2, i32 0
store float %945, float addrspace(3)* %arrayidx212, align 4, !tbaa !17
%946 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.2, i32 1
store float %946, float addrspace(3)* %arrayidx215, align 4, !tbaa !17
%947 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.2, i32 2
store float %947, float addrspace(3)* %arrayidx218, align 4, !tbaa !17
tail call void @reduce_force_j_generic(float addrspace(3)* %11, float addrspace(1)* %f, i32 %1, i32 %3, i32 %add112.2)
br label %.preheader.3602
.preheader.3602: ; preds = %944, %.preheader.2601
%extractVec207.7.3765 = phi <4 x float> [ %extractVec207.7.3761, %944 ], [ %extractVec207.7.3766, %.preheader.2601 ]
%extractVec207.6.3756 = phi <4 x float> [ %extractVec207.6.3752, %944 ], [ %extractVec207.6.3757, %.preheader.2601 ]
%extractVec207.5.3747 = phi <4 x float> [ %extractVec207.5.3743, %944 ], [ %extractVec207.5.3748, %.preheader.2601 ]
%extractVec207.4.3738 = phi <4 x float> [ %extractVec207.4.3734, %944 ], [ %extractVec207.4.3739, %.preheader.2601 ]
%extractVec207.3.3729 = phi <4 x float> [ %extractVec207.3.3725, %944 ], [ %extractVec207.3.3730, %.preheader.2601 ]
%extractVec207.2.3720 = phi <4 x float> [ %extractVec207.2.3716, %944 ], [ %extractVec207.2.3721, %.preheader.2601 ]
%extractVec207.1.3711 = phi <4 x float> [ %extractVec207.1.3707, %944 ], [ %extractVec207.1.3712, %.preheader.2601 ]
%extractVec207.3597702 = phi <4 x float> [ %extractVec207.3597698, %944 ], [ %extractVec207.3597703, %.preheader.2601 ]
%948 = phi <3 x float> [ %911, %944 ], [ %660, %.preheader.2601 ]
%949 = phi <3 x float> [ %877, %944 ], [ %661, %.preheader.2601 ]
%950 = phi <3 x float> [ %843, %944 ], [ %662, %.preheader.2601 ]
%951 = phi <3 x float> [ %809, %944 ], [ %663, %.preheader.2601 ]
%952 = phi <3 x float> [ %775, %944 ], [ %664, %.preheader.2601 ]
%953 = phi <3 x float> [ %741, %944 ], [ %665, %.preheader.2601 ]
%954 = phi <3 x float> [ %707, %944 ], [ %666, %.preheader.2601 ]
%loadVec4204.7.3 = phi <4 x float> [ %loadVec4204.7677, %944 ], [ %loadVec4204.7.2, %.preheader.2601 ]
%loadVec4204.6.3 = phi <4 x float> [ %loadVec4204.6667, %944 ], [ %loadVec4204.6.2, %.preheader.2601 ]
%loadVec4204.5.3 = phi <4 x float> [ %loadVec4204.5657, %944 ], [ %loadVec4204.5.2, %.preheader.2601 ]
%loadVec4204.4.3 = phi <4 x float> [ %loadVec4204.4647, %944 ], [ %loadVec4204.4.2, %.preheader.2601 ]
%loadVec4204.3.3 = phi <4 x float> [ %loadVec4204.3637, %944 ], [ %loadVec4204.3.2, %.preheader.2601 ]
%loadVec4204.2.3 = phi <4 x float> [ %loadVec4204.2627, %944 ], [ %loadVec4204.2.2, %.preheader.2601 ]
%loadVec4204.1.3 = phi <4 x float> [ %loadVec4204.1617, %944 ], [ %loadVec4204.1.2, %.preheader.2601 ]
%loadVec4204.3594 = phi <4 x float> [ %loadVec4204607, %944 ], [ %loadVec4204.2549, %.preheader.2601 ]
%tobool101.3 = icmp ult i32 %37, 16777216
br i1 %tobool101.3, label %.loopexit, label %955
; <label>:955: ; preds = %.preheader.3602
%956 = load i32, i32 addrspace(3)* %arrayidx110.3, align 4, !tbaa !9
%mul111.3 = shl nsw i32 %956, 3
%add112.3 = add i32 %mul111.3, %3
%idxprom113.3 = sext i32 %add112.3 to i64
%arrayidx114.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom113.3
%957 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx114.3, align 16, !tbaa !13
%958 = extractelement <4 x float> %957, i64 3
%arrayidx117.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom113.3
%959 = load <2 x float>, <2 x float> addrspace(1)* %arrayidx117.3, align 8, !tbaa !13
%960 = extractelement <2 x float> %959, i64 0
%961 = extractelement <2 x float> %959, i64 1
%and121.3555 = and i32 %37, 16777216
%tobool122.3556 = icmp eq i32 %and121.3555, 0
br i1 %tobool122.3556, label %994, label %962
; <label>:962: ; preds = %955
%963 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.3557, align 16, !tbaa !13
%964 = fsub fast <4 x float> %963, %957
%965 = extractelement <4 x float> %964, i32 0
%966 = extractelement <4 x float> %964, i32 1
%967 = fmul float %966, %966
%968 = tail call float @llvm.fmuladd.f32(float %965, float %965, float %967) #9
%969 = extractelement <4 x float> %964, i32 2
%970 = tail call float @llvm.fmuladd.f32(float %969, float %969, float %968) #9
%and143.3558 = and i32 %38, 16777216
%tobool144.3559 = icmp ne i32 %and143.3558, 0
%cond.3560 = select i1 %tobool144.3559, float 1.000000e+00, float 0.000000e+00
%notrhs.3561 = icmp ne i32 %mul22, %956
%not.or.cond.3562 = or i1 %notlhs, %notrhs.3561
%cmp150..3563 = or i1 %cmp150, %not.or.cond.3562
%conv152.3564 = uitofp i1 %cmp150..3563 to float
%mul153.3565 = fmul fast float %conv152.3564, %nbparam_params.coerce.fca.9.extract
%cmp154.3566 = fcmp fast olt float %970, %mul153.3565
br i1 %cmp154.3566, label %971, label %994
; <label>:971: ; preds = %962
%extractVec141.3567 = shufflevector <4 x float> %964, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%972 = extractelement <4 x float> %963, i64 3
%973 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.3568, align 8, !tbaa !13
%974 = extractelement <2 x float> %973, i64 0
%975 = extractelement <2 x float> %973, i64 1
%mul161.3569 = fmul fast float %975, %961
%976 = fcmp ogt float %970, 0x3E99A2B5C0000000
%977 = select i1 %976, float %970, float 0x3E99A2B5C0000000
%978 = tail call float @llvm.sqrt.f32(float %977) #10
%div164.3570 = fdiv fast float 1.000000e+00, %978, !fpmath !33
%mul165.3571 = fmul fast float %div164.3570, %div164.3570
%979 = fmul fast float %mul165.3571, %mul165.3571
%mul167.3572 = fmul fast float %979, %cond.3560
%mul168.3573 = fmul fast float %mul167.3572, %mul165.3571
%980 = fmul fast float %960, %974
%neg.3574 = fsub fast float -0.000000e+00, %980
%981 = tail call fast float @llvm.fmuladd.f32(float %mul161.3569, float %mul168.3573, float %neg.3574)
%cmp172.3575 = fcmp fast olt float %977, %nbparam_params.coerce.fca.10.extract
%cond174.3576 = select i1 %cmp172.3575, float 1.000000e+00, float 0.000000e+00
%mul170.3577 = fmul fast float %mul165.3571, %cond174.3576
%mul171.3578 = fmul fast float %mul170.3577, %mul168.3573
%mul175.3579 = fmul fast float %mul171.3578, %981
%mul176.3580 = fmul fast float %972, %958
%mul177.3581 = fmul fast float %mul165.3571, %cond.3560
%mul179.3582 = fmul fast float %977, %mul
%mul.i.3583 = fmul fast float %mul179.3582, %mul179.3582
%982 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3583, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%983 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3583, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%984 = tail call fast float @llvm.fmuladd.f32(float %982, float %mul.i.3583, float 1.000000e+00) #9
%985 = tail call fast float @llvm.fmuladd.f32(float %983, float %mul179.3582, float %984) #9
%div.i.3584 = fdiv fast float 1.000000e+00, %985, !fpmath !33
%986 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3583, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%987 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3583, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%988 = tail call fast float @llvm.fmuladd.f32(float %986, float %mul.i.3583, float 0xBF93BDB200000000) #9
%989 = tail call fast float @llvm.fmuladd.f32(float %987, float %mul.i.3583, float 0x3FB1D5E760000000) #9
%990 = tail call fast float @llvm.fmuladd.f32(float %988, float %mul.i.3583, float 0xBFE81272E0000000) #9
%991 = tail call fast float @llvm.fmuladd.f32(float %989, float %mul179.3582, float %990) #9
%mul8.3585 = fmul fast float %mul11.i, %div.i.3584
%mul181.3586 = fmul fast float %mul8.3585, %991
%992 = tail call fast float @llvm.fmuladd.f32(float %mul177.3581, float %div164.3570, float %mul181.3586)
%993 = tail call fast float @llvm.fmuladd.f32(float %mul176.3580, float %992, float %mul175.3579)
%splat.splatinsert.3587 = insertelement <3 x float> undef, float %993, i32 0
%splat.splat.3588 = shufflevector <3 x float> %splat.splatinsert.3587, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.3589 = fmul fast <3 x float> %splat.splat.3588, %extractVec141.3567
%sub195.3590 = fsub fast <3 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %mul186.3589
%extractVec196.3591 = shufflevector <3 x float> %sub195.3590, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.3595 = shufflevector <4 x float> %loadVec4204.3594, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.3596 = fadd fast <3 x float> %mul186.3589, %extractVec205.3595
%extractVec207.3597 = shufflevector <3 x float> %add206.3596, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %994
; <label>:994: ; preds = %971, %962, %955
%extractVec207.3597699 = phi <4 x float> [ %extractVec207.3597, %971 ], [ %extractVec207.3597702, %962 ], [ %extractVec207.3597702, %955 ]
%995 = phi <3 x float> [ %add206.3596, %971 ], [ %954, %962 ], [ %954, %955 ]
%loadVec4204608 = phi <4 x float> [ %extractVec207.3597, %971 ], [ %loadVec4204.3594, %962 ], [ %loadVec4204.3594, %955 ]
%fcj_buf.sroa.0.1.3598 = phi <4 x float> [ %extractVec196.3591, %971 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %962 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %955 ]
%and121.1.3 = and i32 %37, 33554432
%tobool122.1.3 = icmp eq i32 %and121.1.3, 0
br i1 %tobool122.1.3, label %1028, label %996
; <label>:996: ; preds = %994
%997 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.1.3, align 16, !tbaa !13
%998 = fsub fast <4 x float> %997, %957
%999 = extractelement <4 x float> %998, i32 0
%1000 = extractelement <4 x float> %998, i32 1
%1001 = fmul float %1000, %1000
%1002 = tail call float @llvm.fmuladd.f32(float %999, float %999, float %1001) #9
%1003 = extractelement <4 x float> %998, i32 2
%1004 = tail call float @llvm.fmuladd.f32(float %1003, float %1003, float %1002) #9
%and143.1.3 = and i32 %38, 33554432
%tobool144.1.3 = icmp ne i32 %and143.1.3, 0
%cond.1.3 = select i1 %tobool144.1.3, float 1.000000e+00, float 0.000000e+00
%notrhs.1.3 = icmp ne i32 %add124.1.3, %956
%not.or.cond.1.3 = or i1 %notlhs, %notrhs.1.3
%cmp150..1.3 = or i1 %cmp150, %not.or.cond.1.3
%conv152.1.3 = uitofp i1 %cmp150..1.3 to float
%mul153.1.3 = fmul fast float %conv152.1.3, %nbparam_params.coerce.fca.9.extract
%cmp154.1.3 = fcmp fast olt float %1004, %mul153.1.3
br i1 %cmp154.1.3, label %1005, label %1028
; <label>:1005: ; preds = %996
%extractVec141.1.3 = shufflevector <4 x float> %998, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1006 = extractelement <4 x float> %997, i64 3
%1007 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.1.3, align 8, !tbaa !13
%1008 = extractelement <2 x float> %1007, i64 0
%1009 = extractelement <2 x float> %1007, i64 1
%mul161.1.3 = fmul fast float %1009, %961
%1010 = fcmp ogt float %1004, 0x3E99A2B5C0000000
%1011 = select i1 %1010, float %1004, float 0x3E99A2B5C0000000
%1012 = tail call float @llvm.sqrt.f32(float %1011) #10
%div164.1.3 = fdiv fast float 1.000000e+00, %1012, !fpmath !33
%mul165.1.3 = fmul fast float %div164.1.3, %div164.1.3
%1013 = fmul fast float %mul165.1.3, %mul165.1.3
%mul167.1.3 = fmul fast float %1013, %cond.1.3
%mul168.1.3 = fmul fast float %mul167.1.3, %mul165.1.3
%1014 = fmul fast float %960, %1008
%neg.1.3 = fsub fast float -0.000000e+00, %1014
%1015 = tail call fast float @llvm.fmuladd.f32(float %mul161.1.3, float %mul168.1.3, float %neg.1.3)
%cmp172.1.3 = fcmp fast olt float %1011, %nbparam_params.coerce.fca.10.extract
%cond174.1.3 = select i1 %cmp172.1.3, float 1.000000e+00, float 0.000000e+00
%mul170.1.3 = fmul fast float %mul165.1.3, %cond174.1.3
%mul171.1.3 = fmul fast float %mul170.1.3, %mul168.1.3
%mul175.1.3 = fmul fast float %mul171.1.3, %1015
%mul176.1.3 = fmul fast float %1006, %958
%mul177.1.3 = fmul fast float %mul165.1.3, %cond.1.3
%mul179.1.3 = fmul fast float %1011, %mul
%mul.i.1.3 = fmul fast float %mul179.1.3, %mul179.1.3
%1016 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1017 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1018 = tail call fast float @llvm.fmuladd.f32(float %1016, float %mul.i.1.3, float 1.000000e+00) #9
%1019 = tail call fast float @llvm.fmuladd.f32(float %1017, float %mul179.1.3, float %1018) #9
%div.i.1.3 = fdiv fast float 1.000000e+00, %1019, !fpmath !33
%1020 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1021 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1022 = tail call fast float @llvm.fmuladd.f32(float %1020, float %mul.i.1.3, float 0xBF93BDB200000000) #9
%1023 = tail call fast float @llvm.fmuladd.f32(float %1021, float %mul.i.1.3, float 0x3FB1D5E760000000) #9
%1024 = tail call fast float @llvm.fmuladd.f32(float %1022, float %mul.i.1.3, float 0xBFE81272E0000000) #9
%1025 = tail call fast float @llvm.fmuladd.f32(float %1023, float %mul179.1.3, float %1024) #9
%mul8.1.3 = fmul fast float %mul11.i, %div.i.1.3
%mul181.1.3 = fmul fast float %mul8.1.3, %1025
%1026 = tail call fast float @llvm.fmuladd.f32(float %mul177.1.3, float %div164.1.3, float %mul181.1.3)
%1027 = tail call fast float @llvm.fmuladd.f32(float %mul176.1.3, float %1026, float %mul175.1.3)
%splat.splatinsert.1.3 = insertelement <3 x float> undef, float %1027, i32 0
%splat.splat.1.3 = shufflevector <3 x float> %splat.splatinsert.1.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.1.3 = fmul fast <3 x float> %splat.splat.1.3, %extractVec141.1.3
%extractVec194.1.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3598, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.1.3 = fsub fast <3 x float> %extractVec194.1.3, %mul186.1.3
%extractVec196.1.3 = shufflevector <3 x float> %sub195.1.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.1.3 = shufflevector <4 x float> %loadVec4204.1.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.1.3 = fadd fast <3 x float> %mul186.1.3, %extractVec205.1.3
%extractVec207.1.3 = shufflevector <3 x float> %add206.1.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1028
; <label>:1028: ; preds = %1005, %996, %994
%extractVec207.1.3708 = phi <4 x float> [ %extractVec207.1.3, %1005 ], [ %extractVec207.1.3711, %996 ], [ %extractVec207.1.3711, %994 ]
%1029 = phi <3 x float> [ %add206.1.3, %1005 ], [ %953, %996 ], [ %953, %994 ]
%loadVec4204.1618 = phi <4 x float> [ %extractVec207.1.3, %1005 ], [ %loadVec4204.1.3, %996 ], [ %loadVec4204.1.3, %994 ]
%fcj_buf.sroa.0.1.1.3 = phi <4 x float> [ %extractVec196.1.3, %1005 ], [ %fcj_buf.sroa.0.1.3598, %996 ], [ %fcj_buf.sroa.0.1.3598, %994 ]
%and121.2.3 = and i32 %37, 67108864
%tobool122.2.3 = icmp eq i32 %and121.2.3, 0
br i1 %tobool122.2.3, label %1062, label %1030
; <label>:1030: ; preds = %1028
%1031 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.2.3, align 16, !tbaa !13
%1032 = fsub fast <4 x float> %1031, %957
%1033 = extractelement <4 x float> %1032, i32 0
%1034 = extractelement <4 x float> %1032, i32 1
%1035 = fmul float %1034, %1034
%1036 = tail call float @llvm.fmuladd.f32(float %1033, float %1033, float %1035) #9
%1037 = extractelement <4 x float> %1032, i32 2
%1038 = tail call float @llvm.fmuladd.f32(float %1037, float %1037, float %1036) #9
%and143.2.3 = and i32 %38, 67108864
%tobool144.2.3 = icmp ne i32 %and143.2.3, 0
%cond.2.3 = select i1 %tobool144.2.3, float 1.000000e+00, float 0.000000e+00
%notrhs.2.3 = icmp ne i32 %add124.2.3, %956
%not.or.cond.2.3 = or i1 %notlhs, %notrhs.2.3
%cmp150..2.3 = or i1 %cmp150, %not.or.cond.2.3
%conv152.2.3 = uitofp i1 %cmp150..2.3 to float
%mul153.2.3 = fmul fast float %conv152.2.3, %nbparam_params.coerce.fca.9.extract
%cmp154.2.3 = fcmp fast olt float %1038, %mul153.2.3
br i1 %cmp154.2.3, label %1039, label %1062
; <label>:1039: ; preds = %1030
%extractVec141.2.3 = shufflevector <4 x float> %1032, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1040 = extractelement <4 x float> %1031, i64 3
%1041 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.2.3, align 8, !tbaa !13
%1042 = extractelement <2 x float> %1041, i64 0
%1043 = extractelement <2 x float> %1041, i64 1
%mul161.2.3 = fmul fast float %1043, %961
%1044 = fcmp ogt float %1038, 0x3E99A2B5C0000000
%1045 = select i1 %1044, float %1038, float 0x3E99A2B5C0000000
%1046 = tail call float @llvm.sqrt.f32(float %1045) #10
%div164.2.3 = fdiv fast float 1.000000e+00, %1046, !fpmath !33
%mul165.2.3 = fmul fast float %div164.2.3, %div164.2.3
%1047 = fmul fast float %mul165.2.3, %mul165.2.3
%mul167.2.3 = fmul fast float %1047, %cond.2.3
%mul168.2.3 = fmul fast float %mul167.2.3, %mul165.2.3
%1048 = fmul fast float %960, %1042
%neg.2.3 = fsub fast float -0.000000e+00, %1048
%1049 = tail call fast float @llvm.fmuladd.f32(float %mul161.2.3, float %mul168.2.3, float %neg.2.3)
%cmp172.2.3 = fcmp fast olt float %1045, %nbparam_params.coerce.fca.10.extract
%cond174.2.3 = select i1 %cmp172.2.3, float 1.000000e+00, float 0.000000e+00
%mul170.2.3 = fmul fast float %mul165.2.3, %cond174.2.3
%mul171.2.3 = fmul fast float %mul170.2.3, %mul168.2.3
%mul175.2.3 = fmul fast float %mul171.2.3, %1049
%mul176.2.3 = fmul fast float %1040, %958
%mul177.2.3 = fmul fast float %mul165.2.3, %cond.2.3
%mul179.2.3 = fmul fast float %1045, %mul
%mul.i.2.3 = fmul fast float %mul179.2.3, %mul179.2.3
%1050 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1051 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1052 = tail call fast float @llvm.fmuladd.f32(float %1050, float %mul.i.2.3, float 1.000000e+00) #9
%1053 = tail call fast float @llvm.fmuladd.f32(float %1051, float %mul179.2.3, float %1052) #9
%div.i.2.3 = fdiv fast float 1.000000e+00, %1053, !fpmath !33
%1054 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1055 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1056 = tail call fast float @llvm.fmuladd.f32(float %1054, float %mul.i.2.3, float 0xBF93BDB200000000) #9
%1057 = tail call fast float @llvm.fmuladd.f32(float %1055, float %mul.i.2.3, float 0x3FB1D5E760000000) #9
%1058 = tail call fast float @llvm.fmuladd.f32(float %1056, float %mul.i.2.3, float 0xBFE81272E0000000) #9
%1059 = tail call fast float @llvm.fmuladd.f32(float %1057, float %mul179.2.3, float %1058) #9
%mul8.2.3 = fmul fast float %mul11.i, %div.i.2.3
%mul181.2.3 = fmul fast float %mul8.2.3, %1059
%1060 = tail call fast float @llvm.fmuladd.f32(float %mul177.2.3, float %div164.2.3, float %mul181.2.3)
%1061 = tail call fast float @llvm.fmuladd.f32(float %mul176.2.3, float %1060, float %mul175.2.3)
%splat.splatinsert.2.3 = insertelement <3 x float> undef, float %1061, i32 0
%splat.splat.2.3 = shufflevector <3 x float> %splat.splatinsert.2.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.2.3 = fmul fast <3 x float> %splat.splat.2.3, %extractVec141.2.3
%extractVec194.2.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.2.3 = fsub fast <3 x float> %extractVec194.2.3, %mul186.2.3
%extractVec196.2.3 = shufflevector <3 x float> %sub195.2.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.2.3 = shufflevector <4 x float> %loadVec4204.2.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.2.3 = fadd fast <3 x float> %mul186.2.3, %extractVec205.2.3
%extractVec207.2.3 = shufflevector <3 x float> %add206.2.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1062
; <label>:1062: ; preds = %1039, %1030, %1028
%extractVec207.2.3717 = phi <4 x float> [ %extractVec207.2.3, %1039 ], [ %extractVec207.2.3720, %1030 ], [ %extractVec207.2.3720, %1028 ]
%1063 = phi <3 x float> [ %add206.2.3, %1039 ], [ %952, %1030 ], [ %952, %1028 ]
%loadVec4204.2628 = phi <4 x float> [ %extractVec207.2.3, %1039 ], [ %loadVec4204.2.3, %1030 ], [ %loadVec4204.2.3, %1028 ]
%fcj_buf.sroa.0.1.2.3 = phi <4 x float> [ %extractVec196.2.3, %1039 ], [ %fcj_buf.sroa.0.1.1.3, %1030 ], [ %fcj_buf.sroa.0.1.1.3, %1028 ]
%and121.3.3 = and i32 %37, 134217728
%tobool122.3.3 = icmp eq i32 %and121.3.3, 0
br i1 %tobool122.3.3, label %1096, label %1064
; <label>:1064: ; preds = %1062
%1065 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.3.3, align 16, !tbaa !13
%1066 = fsub fast <4 x float> %1065, %957
%1067 = extractelement <4 x float> %1066, i32 0
%1068 = extractelement <4 x float> %1066, i32 1
%1069 = fmul float %1068, %1068
%1070 = tail call float @llvm.fmuladd.f32(float %1067, float %1067, float %1069) #9
%1071 = extractelement <4 x float> %1066, i32 2
%1072 = tail call float @llvm.fmuladd.f32(float %1071, float %1071, float %1070) #9
%and143.3.3 = and i32 %38, 134217728
%tobool144.3.3 = icmp ne i32 %and143.3.3, 0
%cond.3.3 = select i1 %tobool144.3.3, float 1.000000e+00, float 0.000000e+00
%notrhs.3.3 = icmp ne i32 %add124.3.3, %956
%not.or.cond.3.3 = or i1 %notlhs, %notrhs.3.3
%cmp150..3.3 = or i1 %cmp150, %not.or.cond.3.3
%conv152.3.3 = uitofp i1 %cmp150..3.3 to float
%mul153.3.3 = fmul fast float %conv152.3.3, %nbparam_params.coerce.fca.9.extract
%cmp154.3.3 = fcmp fast olt float %1072, %mul153.3.3
br i1 %cmp154.3.3, label %1073, label %1096
; <label>:1073: ; preds = %1064
%extractVec141.3.3 = shufflevector <4 x float> %1066, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1074 = extractelement <4 x float> %1065, i64 3
%1075 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.3.3, align 8, !tbaa !13
%1076 = extractelement <2 x float> %1075, i64 0
%1077 = extractelement <2 x float> %1075, i64 1
%mul161.3.3 = fmul fast float %1077, %961
%1078 = fcmp ogt float %1072, 0x3E99A2B5C0000000
%1079 = select i1 %1078, float %1072, float 0x3E99A2B5C0000000
%1080 = tail call float @llvm.sqrt.f32(float %1079) #10
%div164.3.3 = fdiv fast float 1.000000e+00, %1080, !fpmath !33
%mul165.3.3 = fmul fast float %div164.3.3, %div164.3.3
%1081 = fmul fast float %mul165.3.3, %mul165.3.3
%mul167.3.3 = fmul fast float %1081, %cond.3.3
%mul168.3.3 = fmul fast float %mul167.3.3, %mul165.3.3
%1082 = fmul fast float %960, %1076
%neg.3.3 = fsub fast float -0.000000e+00, %1082
%1083 = tail call fast float @llvm.fmuladd.f32(float %mul161.3.3, float %mul168.3.3, float %neg.3.3)
%cmp172.3.3 = fcmp fast olt float %1079, %nbparam_params.coerce.fca.10.extract
%cond174.3.3 = select i1 %cmp172.3.3, float 1.000000e+00, float 0.000000e+00
%mul170.3.3 = fmul fast float %mul165.3.3, %cond174.3.3
%mul171.3.3 = fmul fast float %mul170.3.3, %mul168.3.3
%mul175.3.3 = fmul fast float %mul171.3.3, %1083
%mul176.3.3 = fmul fast float %1074, %958
%mul177.3.3 = fmul fast float %mul165.3.3, %cond.3.3
%mul179.3.3 = fmul fast float %1079, %mul
%mul.i.3.3 = fmul fast float %mul179.3.3, %mul179.3.3
%1084 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1085 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1086 = tail call fast float @llvm.fmuladd.f32(float %1084, float %mul.i.3.3, float 1.000000e+00) #9
%1087 = tail call fast float @llvm.fmuladd.f32(float %1085, float %mul179.3.3, float %1086) #9
%div.i.3.3 = fdiv fast float 1.000000e+00, %1087, !fpmath !33
%1088 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1089 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1090 = tail call fast float @llvm.fmuladd.f32(float %1088, float %mul.i.3.3, float 0xBF93BDB200000000) #9
%1091 = tail call fast float @llvm.fmuladd.f32(float %1089, float %mul.i.3.3, float 0x3FB1D5E760000000) #9
%1092 = tail call fast float @llvm.fmuladd.f32(float %1090, float %mul.i.3.3, float 0xBFE81272E0000000) #9
%1093 = tail call fast float @llvm.fmuladd.f32(float %1091, float %mul179.3.3, float %1092) #9
%mul8.3.3 = fmul fast float %mul11.i, %div.i.3.3
%mul181.3.3 = fmul fast float %mul8.3.3, %1093
%1094 = tail call fast float @llvm.fmuladd.f32(float %mul177.3.3, float %div164.3.3, float %mul181.3.3)
%1095 = tail call fast float @llvm.fmuladd.f32(float %mul176.3.3, float %1094, float %mul175.3.3)
%splat.splatinsert.3.3 = insertelement <3 x float> undef, float %1095, i32 0
%splat.splat.3.3 = shufflevector <3 x float> %splat.splatinsert.3.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.3.3 = fmul fast <3 x float> %splat.splat.3.3, %extractVec141.3.3
%extractVec194.3.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.3.3 = fsub fast <3 x float> %extractVec194.3.3, %mul186.3.3
%extractVec196.3.3 = shufflevector <3 x float> %sub195.3.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.3.3 = shufflevector <4 x float> %loadVec4204.3.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.3.3 = fadd fast <3 x float> %mul186.3.3, %extractVec205.3.3
%extractVec207.3.3 = shufflevector <3 x float> %add206.3.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1096
; <label>:1096: ; preds = %1073, %1064, %1062
%extractVec207.3.3726 = phi <4 x float> [ %extractVec207.3.3, %1073 ], [ %extractVec207.3.3729, %1064 ], [ %extractVec207.3.3729, %1062 ]
%1097 = phi <3 x float> [ %add206.3.3, %1073 ], [ %951, %1064 ], [ %951, %1062 ]
%loadVec4204.3638 = phi <4 x float> [ %extractVec207.3.3, %1073 ], [ %loadVec4204.3.3, %1064 ], [ %loadVec4204.3.3, %1062 ]
%fcj_buf.sroa.0.1.3.3 = phi <4 x float> [ %extractVec196.3.3, %1073 ], [ %fcj_buf.sroa.0.1.2.3, %1064 ], [ %fcj_buf.sroa.0.1.2.3, %1062 ]
%and121.4.3 = and i32 %37, 268435456
%tobool122.4.3 = icmp eq i32 %and121.4.3, 0
br i1 %tobool122.4.3, label %1130, label %1098
; <label>:1098: ; preds = %1096
%1099 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.4.3, align 16, !tbaa !13
%1100 = fsub fast <4 x float> %1099, %957
%1101 = extractelement <4 x float> %1100, i32 0
%1102 = extractelement <4 x float> %1100, i32 1
%1103 = fmul float %1102, %1102
%1104 = tail call float @llvm.fmuladd.f32(float %1101, float %1101, float %1103) #9
%1105 = extractelement <4 x float> %1100, i32 2
%1106 = tail call float @llvm.fmuladd.f32(float %1105, float %1105, float %1104) #9
%and143.4.3 = and i32 %38, 268435456
%tobool144.4.3 = icmp ne i32 %and143.4.3, 0
%cond.4.3 = select i1 %tobool144.4.3, float 1.000000e+00, float 0.000000e+00
%notrhs.4.3 = icmp ne i32 %add124.4.3, %956
%not.or.cond.4.3 = or i1 %notlhs, %notrhs.4.3
%cmp150..4.3 = or i1 %cmp150, %not.or.cond.4.3
%conv152.4.3 = uitofp i1 %cmp150..4.3 to float
%mul153.4.3 = fmul fast float %conv152.4.3, %nbparam_params.coerce.fca.9.extract
%cmp154.4.3 = fcmp fast olt float %1106, %mul153.4.3
br i1 %cmp154.4.3, label %1107, label %1130
; <label>:1107: ; preds = %1098
%extractVec141.4.3 = shufflevector <4 x float> %1100, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1108 = extractelement <4 x float> %1099, i64 3
%1109 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.4.3, align 8, !tbaa !13
%1110 = extractelement <2 x float> %1109, i64 0
%1111 = extractelement <2 x float> %1109, i64 1
%mul161.4.3 = fmul fast float %1111, %961
%1112 = fcmp ogt float %1106, 0x3E99A2B5C0000000
%1113 = select i1 %1112, float %1106, float 0x3E99A2B5C0000000
%1114 = tail call float @llvm.sqrt.f32(float %1113) #10
%div164.4.3 = fdiv fast float 1.000000e+00, %1114, !fpmath !33
%mul165.4.3 = fmul fast float %div164.4.3, %div164.4.3
%1115 = fmul fast float %mul165.4.3, %mul165.4.3
%mul167.4.3 = fmul fast float %1115, %cond.4.3
%mul168.4.3 = fmul fast float %mul167.4.3, %mul165.4.3
%1116 = fmul fast float %960, %1110
%neg.4.3 = fsub fast float -0.000000e+00, %1116
%1117 = tail call fast float @llvm.fmuladd.f32(float %mul161.4.3, float %mul168.4.3, float %neg.4.3)
%cmp172.4.3 = fcmp fast olt float %1113, %nbparam_params.coerce.fca.10.extract
%cond174.4.3 = select i1 %cmp172.4.3, float 1.000000e+00, float 0.000000e+00
%mul170.4.3 = fmul fast float %mul165.4.3, %cond174.4.3
%mul171.4.3 = fmul fast float %mul170.4.3, %mul168.4.3
%mul175.4.3 = fmul fast float %mul171.4.3, %1117
%mul176.4.3 = fmul fast float %1108, %958
%mul177.4.3 = fmul fast float %mul165.4.3, %cond.4.3
%mul179.4.3 = fmul fast float %1113, %mul
%mul.i.4.3 = fmul fast float %mul179.4.3, %mul179.4.3
%1118 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1119 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1120 = tail call fast float @llvm.fmuladd.f32(float %1118, float %mul.i.4.3, float 1.000000e+00) #9
%1121 = tail call fast float @llvm.fmuladd.f32(float %1119, float %mul179.4.3, float %1120) #9
%div.i.4.3 = fdiv fast float 1.000000e+00, %1121, !fpmath !33
%1122 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1123 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1124 = tail call fast float @llvm.fmuladd.f32(float %1122, float %mul.i.4.3, float 0xBF93BDB200000000) #9
%1125 = tail call fast float @llvm.fmuladd.f32(float %1123, float %mul.i.4.3, float 0x3FB1D5E760000000) #9
%1126 = tail call fast float @llvm.fmuladd.f32(float %1124, float %mul.i.4.3, float 0xBFE81272E0000000) #9
%1127 = tail call fast float @llvm.fmuladd.f32(float %1125, float %mul179.4.3, float %1126) #9
%mul8.4.3 = fmul fast float %mul11.i, %div.i.4.3
%mul181.4.3 = fmul fast float %mul8.4.3, %1127
%1128 = tail call fast float @llvm.fmuladd.f32(float %mul177.4.3, float %div164.4.3, float %mul181.4.3)
%1129 = tail call fast float @llvm.fmuladd.f32(float %mul176.4.3, float %1128, float %mul175.4.3)
%splat.splatinsert.4.3 = insertelement <3 x float> undef, float %1129, i32 0
%splat.splat.4.3 = shufflevector <3 x float> %splat.splatinsert.4.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.4.3 = fmul fast <3 x float> %splat.splat.4.3, %extractVec141.4.3
%extractVec194.4.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.4.3 = fsub fast <3 x float> %extractVec194.4.3, %mul186.4.3
%extractVec196.4.3 = shufflevector <3 x float> %sub195.4.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.4.3 = shufflevector <4 x float> %loadVec4204.4.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.4.3 = fadd fast <3 x float> %mul186.4.3, %extractVec205.4.3
%extractVec207.4.3 = shufflevector <3 x float> %add206.4.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1130
; <label>:1130: ; preds = %1107, %1098, %1096
%extractVec207.4.3735 = phi <4 x float> [ %extractVec207.4.3, %1107 ], [ %extractVec207.4.3738, %1098 ], [ %extractVec207.4.3738, %1096 ]
%1131 = phi <3 x float> [ %add206.4.3, %1107 ], [ %950, %1098 ], [ %950, %1096 ]
%loadVec4204.4648 = phi <4 x float> [ %extractVec207.4.3, %1107 ], [ %loadVec4204.4.3, %1098 ], [ %loadVec4204.4.3, %1096 ]
%fcj_buf.sroa.0.1.4.3 = phi <4 x float> [ %extractVec196.4.3, %1107 ], [ %fcj_buf.sroa.0.1.3.3, %1098 ], [ %fcj_buf.sroa.0.1.3.3, %1096 ]
%and121.5.3 = and i32 %37, 536870912
%tobool122.5.3 = icmp eq i32 %and121.5.3, 0
br i1 %tobool122.5.3, label %1164, label %1132
; <label>:1132: ; preds = %1130
%1133 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.5.3, align 16, !tbaa !13
%1134 = fsub fast <4 x float> %1133, %957
%1135 = extractelement <4 x float> %1134, i32 0
%1136 = extractelement <4 x float> %1134, i32 1
%1137 = fmul float %1136, %1136
%1138 = tail call float @llvm.fmuladd.f32(float %1135, float %1135, float %1137) #9
%1139 = extractelement <4 x float> %1134, i32 2
%1140 = tail call float @llvm.fmuladd.f32(float %1139, float %1139, float %1138) #9
%and143.5.3 = and i32 %38, 536870912
%tobool144.5.3 = icmp ne i32 %and143.5.3, 0
%cond.5.3 = select i1 %tobool144.5.3, float 1.000000e+00, float 0.000000e+00
%notrhs.5.3 = icmp ne i32 %add124.5.3, %956
%not.or.cond.5.3 = or i1 %notlhs, %notrhs.5.3
%cmp150..5.3 = or i1 %cmp150, %not.or.cond.5.3
%conv152.5.3 = uitofp i1 %cmp150..5.3 to float
%mul153.5.3 = fmul fast float %conv152.5.3, %nbparam_params.coerce.fca.9.extract
%cmp154.5.3 = fcmp fast olt float %1140, %mul153.5.3
br i1 %cmp154.5.3, label %1141, label %1164
; <label>:1141: ; preds = %1132
%extractVec141.5.3 = shufflevector <4 x float> %1134, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1142 = extractelement <4 x float> %1133, i64 3
%1143 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.5.3, align 8, !tbaa !13
%1144 = extractelement <2 x float> %1143, i64 0
%1145 = extractelement <2 x float> %1143, i64 1
%mul161.5.3 = fmul fast float %1145, %961
%1146 = fcmp ogt float %1140, 0x3E99A2B5C0000000
%1147 = select i1 %1146, float %1140, float 0x3E99A2B5C0000000
%1148 = tail call float @llvm.sqrt.f32(float %1147) #10
%div164.5.3 = fdiv fast float 1.000000e+00, %1148, !fpmath !33
%mul165.5.3 = fmul fast float %div164.5.3, %div164.5.3
%1149 = fmul fast float %mul165.5.3, %mul165.5.3
%mul167.5.3 = fmul fast float %1149, %cond.5.3
%mul168.5.3 = fmul fast float %mul167.5.3, %mul165.5.3
%1150 = fmul fast float %960, %1144
%neg.5.3 = fsub fast float -0.000000e+00, %1150
%1151 = tail call fast float @llvm.fmuladd.f32(float %mul161.5.3, float %mul168.5.3, float %neg.5.3)
%cmp172.5.3 = fcmp fast olt float %1147, %nbparam_params.coerce.fca.10.extract
%cond174.5.3 = select i1 %cmp172.5.3, float 1.000000e+00, float 0.000000e+00
%mul170.5.3 = fmul fast float %mul165.5.3, %cond174.5.3
%mul171.5.3 = fmul fast float %mul170.5.3, %mul168.5.3
%mul175.5.3 = fmul fast float %mul171.5.3, %1151
%mul176.5.3 = fmul fast float %1142, %958
%mul177.5.3 = fmul fast float %mul165.5.3, %cond.5.3
%mul179.5.3 = fmul fast float %1147, %mul
%mul.i.5.3 = fmul fast float %mul179.5.3, %mul179.5.3
%1152 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1153 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1154 = tail call fast float @llvm.fmuladd.f32(float %1152, float %mul.i.5.3, float 1.000000e+00) #9
%1155 = tail call fast float @llvm.fmuladd.f32(float %1153, float %mul179.5.3, float %1154) #9
%div.i.5.3 = fdiv fast float 1.000000e+00, %1155, !fpmath !33
%1156 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1157 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1158 = tail call fast float @llvm.fmuladd.f32(float %1156, float %mul.i.5.3, float 0xBF93BDB200000000) #9
%1159 = tail call fast float @llvm.fmuladd.f32(float %1157, float %mul.i.5.3, float 0x3FB1D5E760000000) #9
%1160 = tail call fast float @llvm.fmuladd.f32(float %1158, float %mul.i.5.3, float 0xBFE81272E0000000) #9
%1161 = tail call fast float @llvm.fmuladd.f32(float %1159, float %mul179.5.3, float %1160) #9
%mul8.5.3 = fmul fast float %mul11.i, %div.i.5.3
%mul181.5.3 = fmul fast float %mul8.5.3, %1161
%1162 = tail call fast float @llvm.fmuladd.f32(float %mul177.5.3, float %div164.5.3, float %mul181.5.3)
%1163 = tail call fast float @llvm.fmuladd.f32(float %mul176.5.3, float %1162, float %mul175.5.3)
%splat.splatinsert.5.3 = insertelement <3 x float> undef, float %1163, i32 0
%splat.splat.5.3 = shufflevector <3 x float> %splat.splatinsert.5.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.5.3 = fmul fast <3 x float> %splat.splat.5.3, %extractVec141.5.3
%extractVec194.5.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.4.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.5.3 = fsub fast <3 x float> %extractVec194.5.3, %mul186.5.3
%extractVec196.5.3 = shufflevector <3 x float> %sub195.5.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.5.3 = shufflevector <4 x float> %loadVec4204.5.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.5.3 = fadd fast <3 x float> %mul186.5.3, %extractVec205.5.3
%extractVec207.5.3 = shufflevector <3 x float> %add206.5.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1164
; <label>:1164: ; preds = %1141, %1132, %1130
%extractVec207.5.3744 = phi <4 x float> [ %extractVec207.5.3, %1141 ], [ %extractVec207.5.3747, %1132 ], [ %extractVec207.5.3747, %1130 ]
%1165 = phi <3 x float> [ %add206.5.3, %1141 ], [ %949, %1132 ], [ %949, %1130 ]
%loadVec4204.5658 = phi <4 x float> [ %extractVec207.5.3, %1141 ], [ %loadVec4204.5.3, %1132 ], [ %loadVec4204.5.3, %1130 ]
%fcj_buf.sroa.0.1.5.3 = phi <4 x float> [ %extractVec196.5.3, %1141 ], [ %fcj_buf.sroa.0.1.4.3, %1132 ], [ %fcj_buf.sroa.0.1.4.3, %1130 ]
%and121.6.3 = and i32 %37, 1073741824
%tobool122.6.3 = icmp eq i32 %and121.6.3, 0
br i1 %tobool122.6.3, label %1198, label %1166
; <label>:1166: ; preds = %1164
%1167 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.6.3, align 16, !tbaa !13
%1168 = fsub fast <4 x float> %1167, %957
%1169 = extractelement <4 x float> %1168, i32 0
%1170 = extractelement <4 x float> %1168, i32 1
%1171 = fmul float %1170, %1170
%1172 = tail call float @llvm.fmuladd.f32(float %1169, float %1169, float %1171) #9
%1173 = extractelement <4 x float> %1168, i32 2
%1174 = tail call float @llvm.fmuladd.f32(float %1173, float %1173, float %1172) #9
%and143.6.3 = and i32 %38, 1073741824
%tobool144.6.3 = icmp ne i32 %and143.6.3, 0
%cond.6.3 = select i1 %tobool144.6.3, float 1.000000e+00, float 0.000000e+00
%notrhs.6.3 = icmp ne i32 %add124.6.3, %956
%not.or.cond.6.3 = or i1 %notlhs, %notrhs.6.3
%cmp150..6.3 = or i1 %cmp150, %not.or.cond.6.3
%conv152.6.3 = uitofp i1 %cmp150..6.3 to float
%mul153.6.3 = fmul fast float %conv152.6.3, %nbparam_params.coerce.fca.9.extract
%cmp154.6.3 = fcmp fast olt float %1174, %mul153.6.3
br i1 %cmp154.6.3, label %1175, label %1198
; <label>:1175: ; preds = %1166
%extractVec141.6.3 = shufflevector <4 x float> %1168, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1176 = extractelement <4 x float> %1167, i64 3
%1177 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.6.3, align 8, !tbaa !13
%1178 = extractelement <2 x float> %1177, i64 0
%1179 = extractelement <2 x float> %1177, i64 1
%mul161.6.3 = fmul fast float %1179, %961
%1180 = fcmp ogt float %1174, 0x3E99A2B5C0000000
%1181 = select i1 %1180, float %1174, float 0x3E99A2B5C0000000
%1182 = tail call float @llvm.sqrt.f32(float %1181) #10
%div164.6.3 = fdiv fast float 1.000000e+00, %1182, !fpmath !33
%mul165.6.3 = fmul fast float %div164.6.3, %div164.6.3
%1183 = fmul fast float %mul165.6.3, %mul165.6.3
%mul167.6.3 = fmul fast float %1183, %cond.6.3
%mul168.6.3 = fmul fast float %mul167.6.3, %mul165.6.3
%1184 = fmul fast float %960, %1178
%neg.6.3 = fsub fast float -0.000000e+00, %1184
%1185 = tail call fast float @llvm.fmuladd.f32(float %mul161.6.3, float %mul168.6.3, float %neg.6.3)
%cmp172.6.3 = fcmp fast olt float %1181, %nbparam_params.coerce.fca.10.extract
%cond174.6.3 = select i1 %cmp172.6.3, float 1.000000e+00, float 0.000000e+00
%mul170.6.3 = fmul fast float %mul165.6.3, %cond174.6.3
%mul171.6.3 = fmul fast float %mul170.6.3, %mul168.6.3
%mul175.6.3 = fmul fast float %mul171.6.3, %1185
%mul176.6.3 = fmul fast float %1176, %958
%mul177.6.3 = fmul fast float %mul165.6.3, %cond.6.3
%mul179.6.3 = fmul fast float %1181, %mul
%mul.i.6.3 = fmul fast float %mul179.6.3, %mul179.6.3
%1186 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1187 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1188 = tail call fast float @llvm.fmuladd.f32(float %1186, float %mul.i.6.3, float 1.000000e+00) #9
%1189 = tail call fast float @llvm.fmuladd.f32(float %1187, float %mul179.6.3, float %1188) #9
%div.i.6.3 = fdiv fast float 1.000000e+00, %1189, !fpmath !33
%1190 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1191 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1192 = tail call fast float @llvm.fmuladd.f32(float %1190, float %mul.i.6.3, float 0xBF93BDB200000000) #9
%1193 = tail call fast float @llvm.fmuladd.f32(float %1191, float %mul.i.6.3, float 0x3FB1D5E760000000) #9
%1194 = tail call fast float @llvm.fmuladd.f32(float %1192, float %mul.i.6.3, float 0xBFE81272E0000000) #9
%1195 = tail call fast float @llvm.fmuladd.f32(float %1193, float %mul179.6.3, float %1194) #9
%mul8.6.3 = fmul fast float %mul11.i, %div.i.6.3
%mul181.6.3 = fmul fast float %mul8.6.3, %1195
%1196 = tail call fast float @llvm.fmuladd.f32(float %mul177.6.3, float %div164.6.3, float %mul181.6.3)
%1197 = tail call fast float @llvm.fmuladd.f32(float %mul176.6.3, float %1196, float %mul175.6.3)
%splat.splatinsert.6.3 = insertelement <3 x float> undef, float %1197, i32 0
%splat.splat.6.3 = shufflevector <3 x float> %splat.splatinsert.6.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.6.3 = fmul fast <3 x float> %splat.splat.6.3, %extractVec141.6.3
%extractVec194.6.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.5.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.6.3 = fsub fast <3 x float> %extractVec194.6.3, %mul186.6.3
%extractVec196.6.3 = shufflevector <3 x float> %sub195.6.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.6.3 = shufflevector <4 x float> %loadVec4204.6.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.6.3 = fadd fast <3 x float> %mul186.6.3, %extractVec205.6.3
%extractVec207.6.3 = shufflevector <3 x float> %add206.6.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1198
; <label>:1198: ; preds = %1175, %1166, %1164
%extractVec207.6.3753 = phi <4 x float> [ %extractVec207.6.3, %1175 ], [ %extractVec207.6.3756, %1166 ], [ %extractVec207.6.3756, %1164 ]
%1199 = phi <3 x float> [ %add206.6.3, %1175 ], [ %948, %1166 ], [ %948, %1164 ]
%loadVec4204.6668 = phi <4 x float> [ %extractVec207.6.3, %1175 ], [ %loadVec4204.6.3, %1166 ], [ %loadVec4204.6.3, %1164 ]
%fcj_buf.sroa.0.1.6.3 = phi <4 x float> [ %extractVec196.6.3, %1175 ], [ %fcj_buf.sroa.0.1.5.3, %1166 ], [ %fcj_buf.sroa.0.1.5.3, %1164 ]
%tobool122.7.3 = icmp sgt i32 %37, -1
br i1 %tobool122.7.3, label %1232, label %1200
; <label>:1200: ; preds = %1198
%1201 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx130.7.3, align 16, !tbaa !13
%1202 = fsub fast <4 x float> %1201, %957
%1203 = extractelement <4 x float> %1202, i32 0
%1204 = extractelement <4 x float> %1202, i32 1
%1205 = fmul float %1204, %1204
%1206 = tail call float @llvm.fmuladd.f32(float %1203, float %1203, float %1205) #9
%1207 = extractelement <4 x float> %1202, i32 2
%1208 = tail call float @llvm.fmuladd.f32(float %1207, float %1207, float %1206) #9
%tobool144.7.3 = icmp slt i32 %38, 0
%cond.7.3 = select i1 %tobool144.7.3, float 1.000000e+00, float 0.000000e+00
%notrhs.7.3 = icmp ne i32 %add124.7.3, %956
%not.or.cond.7.3 = or i1 %notlhs, %notrhs.7.3
%cmp150..7.3 = or i1 %cmp150, %not.or.cond.7.3
%conv152.7.3 = uitofp i1 %cmp150..7.3 to float
%mul153.7.3 = fmul fast float %conv152.7.3, %nbparam_params.coerce.fca.9.extract
%cmp154.7.3 = fcmp fast olt float %1208, %mul153.7.3
br i1 %cmp154.7.3, label %1209, label %1232
; <label>:1209: ; preds = %1200
%extractVec141.7.3 = shufflevector <4 x float> %1202, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1210 = extractelement <4 x float> %1201, i64 3
%1211 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx159.7.3, align 8, !tbaa !13
%1212 = extractelement <2 x float> %1211, i64 0
%1213 = extractelement <2 x float> %1211, i64 1
%mul161.7.3 = fmul fast float %1213, %961
%1214 = fcmp ogt float %1208, 0x3E99A2B5C0000000
%1215 = select i1 %1214, float %1208, float 0x3E99A2B5C0000000
%1216 = tail call float @llvm.sqrt.f32(float %1215) #10
%div164.7.3 = fdiv fast float 1.000000e+00, %1216, !fpmath !33
%mul165.7.3 = fmul fast float %div164.7.3, %div164.7.3
%1217 = fmul fast float %mul165.7.3, %mul165.7.3
%mul167.7.3 = fmul fast float %1217, %cond.7.3
%mul168.7.3 = fmul fast float %mul167.7.3, %mul165.7.3
%1218 = fmul fast float %960, %1212
%neg.7.3 = fsub fast float -0.000000e+00, %1218
%1219 = tail call fast float @llvm.fmuladd.f32(float %mul161.7.3, float %mul168.7.3, float %neg.7.3)
%cmp172.7.3 = fcmp fast olt float %1215, %nbparam_params.coerce.fca.10.extract
%cond174.7.3 = select i1 %cmp172.7.3, float 1.000000e+00, float 0.000000e+00
%mul170.7.3 = fmul fast float %mul165.7.3, %cond174.7.3
%mul171.7.3 = fmul fast float %mul170.7.3, %mul168.7.3
%mul175.7.3 = fmul fast float %mul171.7.3, %1219
%mul176.7.3 = fmul fast float %1210, %958
%mul177.7.3 = fmul fast float %mul165.7.3, %cond.7.3
%mul179.7.3 = fmul fast float %1215, %mul
%mul.i.7.3 = fmul fast float %mul179.7.3, %mul179.7.3
%1220 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1221 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1222 = tail call fast float @llvm.fmuladd.f32(float %1220, float %mul.i.7.3, float 1.000000e+00) #9
%1223 = tail call fast float @llvm.fmuladd.f32(float %1221, float %mul179.7.3, float %1222) #9
%div.i.7.3 = fdiv fast float 1.000000e+00, %1223, !fpmath !33
%1224 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1225 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1226 = tail call fast float @llvm.fmuladd.f32(float %1224, float %mul.i.7.3, float 0xBF93BDB200000000) #9
%1227 = tail call fast float @llvm.fmuladd.f32(float %1225, float %mul.i.7.3, float 0x3FB1D5E760000000) #9
%1228 = tail call fast float @llvm.fmuladd.f32(float %1226, float %mul.i.7.3, float 0xBFE81272E0000000) #9
%1229 = tail call fast float @llvm.fmuladd.f32(float %1227, float %mul179.7.3, float %1228) #9
%mul8.7.3 = fmul fast float %mul11.i, %div.i.7.3
%mul181.7.3 = fmul fast float %mul8.7.3, %1229
%1230 = tail call fast float @llvm.fmuladd.f32(float %mul177.7.3, float %div164.7.3, float %mul181.7.3)
%1231 = tail call fast float @llvm.fmuladd.f32(float %mul176.7.3, float %1230, float %mul175.7.3)
%splat.splatinsert.7.3 = insertelement <3 x float> undef, float %1231, i32 0
%splat.splat.7.3 = shufflevector <3 x float> %splat.splatinsert.7.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul186.7.3 = fmul fast <3 x float> %splat.splat.7.3, %extractVec141.7.3
%extractVec194.7.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.6.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub195.7.3 = fsub fast <3 x float> %extractVec194.7.3, %mul186.7.3
%extractVec196.7.3 = shufflevector <3 x float> %sub195.7.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec205.7.3 = shufflevector <4 x float> %loadVec4204.7.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add206.7.3 = fadd fast <3 x float> %mul186.7.3, %extractVec205.7.3
%extractVec207.7.3 = shufflevector <3 x float> %add206.7.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1232
; <label>:1232: ; preds = %1209, %1200, %1198
%extractVec207.7.3762 = phi <4 x float> [ %extractVec207.7.3, %1209 ], [ %extractVec207.7.3765, %1200 ], [ %extractVec207.7.3765, %1198 ]
%loadVec4204.7678 = phi <4 x float> [ %extractVec207.7.3, %1209 ], [ %loadVec4204.7.3, %1200 ], [ %loadVec4204.7.3, %1198 ]
%fcj_buf.sroa.0.1.7.3 = phi <4 x float> [ %extractVec196.7.3, %1209 ], [ %fcj_buf.sroa.0.1.6.3, %1200 ], [ %fcj_buf.sroa.0.1.6.3, %1198 ]
%1233 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.3, i32 0
store float %1233, float addrspace(3)* %arrayidx212, align 4, !tbaa !17
%1234 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.3, i32 1
store float %1234, float addrspace(3)* %arrayidx215, align 4, !tbaa !17
%1235 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.3, i32 2
store float %1235, float addrspace(3)* %arrayidx218, align 4, !tbaa !17
tail call void @reduce_force_j_generic(float addrspace(3)* %11, float addrspace(1)* %f, i32 %1, i32 %3, i32 %add112.3)
br label %.loopexit
}
; Function Attrs: nounwind
define amdgpu_kernel void @nbnxn_kernel_ElecEw_VdwLJCombGeom_VF_opencl(%struct.cl_nbparam_params %nbparam_params.coerce, <4 x float> addrspace(1)* noalias nocapture readonly %xq, float addrspace(1)* noalias %f, float addrspace(1)* noalias %e_lj, float addrspace(1)* noalias %e_el, float addrspace(1)* noalias %fshift, <2 x float> addrspace(1)* noalias nocapture readonly %lj_comb, float addrspace(1)* noalias nocapture readonly %shift_vec, float addrspace(2)* nocapture readnone %nbfp_climg2d, float addrspace(2)* nocapture readnone %nbfp_comb_climg2d, float addrspace(2)* nocapture readnone %coulomb_tab_climg2d, %struct.nbnxn_sci_t addrspace(1)* nocapture readonly %pl_sci, %struct.nbnxn_cj4_t addrspace(1)* nocapture readonly %pl_cj4, %struct.nbnxn_excl_t addrspace(1)* nocapture readonly %excl, i32 %bCalcFshift, <4 x float> addrspace(3)* %xqib, float addrspace(1)* nocapture readnone %debug_buffer) local_unnamed_addr #0 !kernel_arg_addr_space !35 !kernel_arg_access_qual !36 !kernel_arg_type !37 !kernel_arg_base_type !38 !kernel_arg_type_qual !39 !reqd_work_group_size !40 {
%fshift_buf = alloca float, align 4
%fci_buf = alloca [8 x <3 x float>], align 16
%nbparam_params.coerce.fca.2.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 2
%nbparam_params.coerce.fca.5.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 5
%nbparam_params.coerce.fca.6.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 6
%nbparam_params.coerce.fca.9.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 9
%nbparam_params.coerce.fca.13.2.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 13, 2
%nbparam_params.coerce.fca.14.2.extract = extractvalue %struct.cl_nbparam_params %nbparam_params.coerce, 14, 2
%mul = fmul fast float %nbparam_params.coerce.fca.5.extract, %nbparam_params.coerce.fca.5.extract
%1 = tail call i32 @llvm.amdgcn.workitem.id.x() #9, !range !8
%2 = zext i32 %1 to i64
%3 = tail call i32 @llvm.amdgcn.workitem.id.y() #9, !range !8
%dispatch_ptr.i = tail call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #9
%xy_size_ptr.i = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr.i, i64 4
%4 = bitcast i8 addrspace(2)* %xy_size_ptr.i to i32 addrspace(2)*
%xy_size.i = load i32, i32 addrspace(2)* %4, align 4, !invariant.load !7
%x_size.i = and i32 %xy_size.i, 65535
%mulconv = mul nuw nsw i32 %x_size.i, %3
%addconv = add nuw nsw i32 %mulconv, %1
%5 = tail call i32 @llvm.amdgcn.workgroup.id.x() #9
%6 = zext i32 %5 to i64
%div = lshr i32 %addconv, 5
%7 = bitcast float* %fshift_buf to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %7) #9
%8 = bitcast [8 x <3 x float>]* %fci_buf to i8*
call void @llvm.lifetime.start(i64 128, i8* nonnull %8) #9
%add.ptr = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 64
%9 = bitcast <4 x float> addrspace(3)* %add.ptr to i32 addrspace(3)*
%add.ptr18543 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 66
%10 = bitcast <4 x float> addrspace(3)* %add.ptr18543 to <2 x float> addrspace(3)*
%11 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 0
%nb_sci.sroa.0.0..sroa_idx = getelementptr inbounds %struct.nbnxn_sci_t, %struct.nbnxn_sci_t addrspace(1)* %pl_sci, i64 %6, i32 0
%nb_sci.sroa.0.0.copyload = load i32, i32 addrspace(1)* %nb_sci.sroa.0.0..sroa_idx, align 4
%nb_sci.sroa.4.0..sroa_idx325 = getelementptr inbounds %struct.nbnxn_sci_t, %struct.nbnxn_sci_t addrspace(1)* %pl_sci, i64 %6, i32 1
%nb_sci.sroa.4.0.copyload = load i32, i32 addrspace(1)* %nb_sci.sroa.4.0..sroa_idx325, align 4
%nb_sci.sroa.11.0..sroa_idx333 = getelementptr inbounds %struct.nbnxn_sci_t, %struct.nbnxn_sci_t addrspace(1)* %pl_sci, i64 %6, i32 2
%nb_sci.sroa.11.0.copyload = load i32, i32 addrspace(1)* %nb_sci.sroa.11.0..sroa_idx333, align 4
%nb_sci.sroa.12.0..sroa_idx335 = getelementptr inbounds %struct.nbnxn_sci_t, %struct.nbnxn_sci_t addrspace(1)* %pl_sci, i64 %6, i32 3
%nb_sci.sroa.12.0.copyload = load i32, i32 addrspace(1)* %nb_sci.sroa.12.0..sroa_idx335, align 4
%mul22 = shl nsw i32 %nb_sci.sroa.0.0.copyload, 3
%add23 = add i32 %mul22, %3
%mul24 = shl i32 %add23, 3
%add25 = add i32 %mul24, %1
%idxprom26 = sext i32 %add25 to i64
%arrayidx27 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom26
%12 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx27, align 16, !tbaa !13
%mul28 = mul nsw i32 %nb_sci.sroa.4.0.copyload, 3
%idxprom29 = sext i32 %mul28 to i64
%arrayidx30 = getelementptr inbounds float, float addrspace(1)* %shift_vec, i64 %idxprom29
%13 = load float, float addrspace(1)* %arrayidx30, align 4, !tbaa !17
%vecinit = insertelement <4 x float> undef, float %13, i32 0
%add33 = add nsw i32 %mul28, 1
%idxprom34 = sext i32 %add33 to i64
%arrayidx35 = getelementptr inbounds float, float addrspace(1)* %shift_vec, i64 %idxprom34
%14 = load float, float addrspace(1)* %arrayidx35, align 4, !tbaa !17
%vecinit36 = insertelement <4 x float> %vecinit, float %14, i32 1
%add39 = add nsw i32 %mul28, 2
%idxprom40 = sext i32 %add39 to i64
%arrayidx41 = getelementptr inbounds float, float addrspace(1)* %shift_vec, i64 %idxprom40
%15 = load float, float addrspace(1)* %arrayidx41, align 4, !tbaa !17
%vecinit42 = insertelement <4 x float> %vecinit36, float %15, i32 2
%vecinit43 = insertelement <4 x float> %vecinit42, float 0.000000e+00, i32 3
%add44 = fadd fast <4 x float> %vecinit43, %12
%16 = extractelement <4 x float> %add44, i64 3
%mul45 = fmul fast float %16, %nbparam_params.coerce.fca.2.extract
%17 = insertelement <4 x float> %add44, float %mul45, i64 3
%18 = shl nuw nsw i32 %3, 3
%addconv546 = add nuw nsw i32 %18, %1
%arrayidx49 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %addconv546
store <4 x float> %17, <4 x float> addrspace(3)* %arrayidx49, align 16, !tbaa !13
%arrayidx51 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom26
%19 = bitcast <2 x float> addrspace(1)* %arrayidx51 to i64 addrspace(1)*
%20 = load i64, i64 addrspace(1)* %19, align 8, !tbaa !13
%arrayidx55 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %addconv546
%21 = bitcast <2 x float> addrspace(3)* %arrayidx55 to i64 addrspace(3)*
store i64 %20, i64 addrspace(3)* %21, align 8, !tbaa !13
%22 = or i32 %addconv, 32
%23 = icmp eq i32 %22, 32
br i1 %23, label %24, label %25
; <label>:24: ; preds = %0
%add.ptr20 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 192
%arrayidx60545 = getelementptr inbounds float, float addrspace(3)* %add.ptr20, i32 %div
%arrayidx60 = bitcast float addrspace(3)* %arrayidx60545 to i32 addrspace(3)*
store volatile i32 0, i32 addrspace(3)* %arrayidx60, align 4, !tbaa !9
br label %25
; <label>:25: ; preds = %0, %24
tail call void @llvm.amdgcn.s.barrier() #9
%arrayidx64 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 0
%storetmp = bitcast [8 x <3 x float>]* %fci_buf to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp, align 16, !tbaa !13
%arrayidx64.1 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 1
%storetmp.1 = bitcast <3 x float>* %arrayidx64.1 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.1, align 16, !tbaa !13
%arrayidx64.2 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 2
%storetmp.2 = bitcast <3 x float>* %arrayidx64.2 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.2, align 16, !tbaa !13
%arrayidx64.3 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 3
%storetmp.3 = bitcast <3 x float>* %arrayidx64.3 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.3, align 16, !tbaa !13
%arrayidx64.4 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 4
%storetmp.4 = bitcast <3 x float>* %arrayidx64.4 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.4, align 16, !tbaa !13
%arrayidx64.5 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 5
%storetmp.5 = bitcast <3 x float>* %arrayidx64.5 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.5, align 16, !tbaa !13
%arrayidx64.6 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 6
%storetmp.6 = bitcast <3 x float>* %arrayidx64.6 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.6, align 16, !tbaa !13
%arrayidx64.7 = getelementptr inbounds [8 x <3 x float>], [8 x <3 x float>]* %fci_buf, i32 0, i32 7
%storetmp.7 = bitcast <3 x float>* %arrayidx64.7 to <4 x float>*
store <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, <4 x float>* %storetmp.7, align 16, !tbaa !13
%cmp66 = icmp eq i32 %nb_sci.sroa.4.0.copyload, 22
br i1 %cmp66, label %26, label %.preheader548
; <label>:26: ; preds = %25
%idxprom68 = sext i32 %nb_sci.sroa.11.0.copyload to i64
%arrayidx71 = getelementptr inbounds %struct.nbnxn_cj4_t, %struct.nbnxn_cj4_t addrspace(1)* %pl_cj4, i64 %idxprom68, i32 0, i64 0
%27 = load i32, i32 addrspace(1)* %arrayidx71, align 4, !tbaa !9
%cmp73 = icmp eq i32 %27, %mul22
br i1 %cmp73, label %.preheader549.preheader, label %.preheader548
.preheader549.preheader: ; preds = %26
%arrayidx80 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%28 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx80, align 16
%29 = extractelement <4 x float> %28, i64 3
%30 = tail call fast float @llvm.fmuladd.f32(float %29, float %29, float 0.000000e+00)
%add78.1 = add nuw nsw i32 %1, 8
%arrayidx80.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add78.1
%31 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx80.1, align 16
%32 = extractelement <4 x float> %31, i64 3
%33 = tail call fast float @llvm.fmuladd.f32(float %32, float %32, float %30)
%add78.2 = add nuw nsw i32 %1, 16
%arrayidx80.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add78.2
%34 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx80.2, align 16
%35 = extractelement <4 x float> %34, i64 3
%36 = tail call fast float @llvm.fmuladd.f32(float %35, float %35, float %33)
%add78.3 = add nuw nsw i32 %1, 24
%arrayidx80.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add78.3
%37 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx80.3, align 16
%38 = extractelement <4 x float> %37, i64 3
%39 = tail call fast float @llvm.fmuladd.f32(float %38, float %38, float %36)
%add78.4 = add nuw nsw i32 %1, 32
%arrayidx80.4 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add78.4
%40 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx80.4, align 16
%41 = extractelement <4 x float> %40, i64 3
%42 = tail call fast float @llvm.fmuladd.f32(float %41, float %41, float %39)
%add78.5 = add nuw nsw i32 %1, 40
%arrayidx80.5 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add78.5
%43 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx80.5, align 16
%44 = extractelement <4 x float> %43, i64 3
%45 = tail call fast float @llvm.fmuladd.f32(float %44, float %44, float %42)
%add78.6 = add nuw nsw i32 %1, 48
%arrayidx80.6 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add78.6
%46 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx80.6, align 16
%47 = extractelement <4 x float> %46, i64 3
%48 = tail call fast float @llvm.fmuladd.f32(float %47, float %47, float %45)
%add78.7 = add nuw nsw i32 %1, 56
%arrayidx80.7 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add78.7
%49 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx80.7, align 16
%50 = extractelement <4 x float> %49, i64 3
%51 = tail call fast float @llvm.fmuladd.f32(float %50, float %50, float %48)
%mul84 = fmul fast float %nbparam_params.coerce.fca.2.extract, 8.000000e+00
%div85 = fdiv fast float %51, %mul84, !fpmath !33
%mul86 = fmul fast float %nbparam_params.coerce.fca.5.extract, 0xBFE20DD760000000
%mul87 = fmul fast float %mul86, %div85
br label %.preheader548
.preheader548: ; preds = %.preheader549.preheader, %26, %25
%E_el.2.ph = phi float [ 0.000000e+00, %25 ], [ 0.000000e+00, %26 ], [ %mul87, %.preheader549.preheader ]
%cmp88559 = icmp slt i32 %nb_sci.sroa.11.0.copyload, %nb_sci.sroa.12.0.copyload
br i1 %cmp88559, label %.lr.ph, label %.preheader548.._crit_edge_crit_edge
.preheader548.._crit_edge_crit_edge: ; preds = %.preheader548
%.pre747 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %addconv
%.pre748 = add nuw nsw i32 %addconv, 128
%.pre749 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %.pre748
br label %._crit_edge
.lr.ph: ; preds = %.preheader548
%idxprom92 = zext i32 %div to i64
%52 = and i32 %addconv, 31
%and = zext i32 %52 to i64
%53 = or i32 %3, 4
%54 = icmp eq i32 %53, 4
%cmp108 = icmp ult i32 %1, 4
%or.cond302 = and i1 %cmp108, %54
%addconv547 = add nuw nsw i32 %3, %1
%arrayidx119 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %addconv547
%mul129 = and i32 %3, 4
%cmp174 = icmp ugt i32 %3, %1
%mul11.i = fmul fast float %mul, %nbparam_params.coerce.fca.5.extract
%arrayidx251 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %addconv
%add252 = add nuw nsw i32 %addconv, 64
%arrayidx254 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %add252
%add255 = add nuw nsw i32 %addconv, 128
%arrayidx257 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %add255
%add131.3 = or i32 %mul129, 3
%arrayidx133.3 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %add131.3
%add151.7.3 = add nuw nsw i32 %1, 56
%arrayidx153.7.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.7.3
%add147.7.3 = or i32 %mul22, 7
%arrayidx183.7.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.7.3
%add151.6.3 = add nuw nsw i32 %1, 48
%arrayidx153.6.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.6.3
%add147.6.3 = or i32 %mul22, 6
%arrayidx183.6.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.6.3
%add151.5.3 = add nuw nsw i32 %1, 40
%arrayidx153.5.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.5.3
%add147.5.3 = or i32 %mul22, 5
%arrayidx183.5.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.5.3
%add151.4.3 = add nuw nsw i32 %1, 32
%arrayidx153.4.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.4.3
%add147.4.3 = or i32 %mul22, 4
%arrayidx183.4.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.4.3
%add151.3.3 = add nuw nsw i32 %1, 24
%arrayidx153.3.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.3.3
%add147.3.3 = or i32 %mul22, 3
%arrayidx183.3.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.3.3
%add151.2.3 = add nuw nsw i32 %1, 16
%arrayidx153.2.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.2.3
%add147.2.3 = or i32 %mul22, 2
%arrayidx183.2.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.2.3
%add151.1.3 = add nuw nsw i32 %1, 8
%arrayidx153.1.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.1.3
%add147.1.3 = or i32 %mul22, 1
%arrayidx183.1.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.1.3
%arrayidx153.3681 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%arrayidx183.3693 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %1
%add131.2 = or i32 %mul129, 2
%arrayidx133.2 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %add131.2
%add151.7.2 = add nuw nsw i32 %1, 56
%arrayidx153.7.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.7.2
%add147.7.2 = or i32 %mul22, 7
%arrayidx183.7.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.7.2
%add151.6.2 = add nuw nsw i32 %1, 48
%arrayidx153.6.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.6.2
%add147.6.2 = or i32 %mul22, 6
%arrayidx183.6.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.6.2
%add151.5.2 = add nuw nsw i32 %1, 40
%arrayidx153.5.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.5.2
%add147.5.2 = or i32 %mul22, 5
%arrayidx183.5.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.5.2
%add151.4.2 = add nuw nsw i32 %1, 32
%arrayidx153.4.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.4.2
%add147.4.2 = or i32 %mul22, 4
%arrayidx183.4.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.4.2
%add151.3.2 = add nuw nsw i32 %1, 24
%arrayidx153.3.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.3.2
%add147.3.2 = or i32 %mul22, 3
%arrayidx183.3.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.3.2
%add151.2.2 = add nuw nsw i32 %1, 16
%arrayidx153.2.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.2.2
%add147.2.2 = or i32 %mul22, 2
%arrayidx183.2.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.2.2
%add151.1.2 = add nuw nsw i32 %1, 8
%arrayidx153.1.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.1.2
%add147.1.2 = or i32 %mul22, 1
%arrayidx183.1.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.1.2
%arrayidx153.2625 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%arrayidx183.2637 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %1
%add131.1 = or i32 %mul129, 1
%arrayidx133.1 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %add131.1
%add151.7.1 = add nuw nsw i32 %1, 56
%arrayidx153.7.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.7.1
%add147.7.1 = or i32 %mul22, 7
%arrayidx183.7.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.7.1
%add151.6.1 = add nuw nsw i32 %1, 48
%arrayidx153.6.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.6.1
%add147.6.1 = or i32 %mul22, 6
%arrayidx183.6.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.6.1
%add151.5.1 = add nuw nsw i32 %1, 40
%arrayidx153.5.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.5.1
%add147.5.1 = or i32 %mul22, 5
%arrayidx183.5.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.5.1
%add151.4.1 = add nuw nsw i32 %1, 32
%arrayidx153.4.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.4.1
%add147.4.1 = or i32 %mul22, 4
%arrayidx183.4.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.4.1
%add151.3.1 = add nuw nsw i32 %1, 24
%arrayidx153.3.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.3.1
%add147.3.1 = or i32 %mul22, 3
%arrayidx183.3.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.3.1
%add151.2.1 = add nuw nsw i32 %1, 16
%arrayidx153.2.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.2.1
%add147.2.1 = or i32 %mul22, 2
%arrayidx183.2.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.2.1
%add151.1.1 = add nuw nsw i32 %1, 8
%arrayidx153.1.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.1.1
%add147.1.1 = or i32 %mul22, 1
%arrayidx183.1.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.1.1
%arrayidx153.1569 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%arrayidx183.1581 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %1
%arrayidx133 = getelementptr inbounds i32, i32 addrspace(3)* %9, i32 %mul129
%add151.7 = add nuw nsw i32 %1, 56
%arrayidx153.7 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.7
%add147.7 = or i32 %mul22, 7
%arrayidx183.7 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.7
%add151.6 = add nuw nsw i32 %1, 48
%arrayidx153.6 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.6
%add147.6 = or i32 %mul22, 6
%arrayidx183.6 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.6
%add151.5 = add nuw nsw i32 %1, 40
%arrayidx153.5 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.5
%add147.5 = or i32 %mul22, 5
%arrayidx183.5 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.5
%add151.4 = add nuw nsw i32 %1, 32
%arrayidx153.4 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.4
%add147.4 = or i32 %mul22, 4
%arrayidx183.4 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.4
%add151.3 = add nuw nsw i32 %1, 24
%arrayidx153.3 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.3
%add147.3 = or i32 %mul22, 3
%arrayidx183.3 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.3
%add151.2 = add nuw nsw i32 %1, 16
%arrayidx153.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.2
%add147.2 = or i32 %mul22, 2
%arrayidx183.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.2
%add151.1 = add nuw nsw i32 %1, 8
%arrayidx153.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %add151.1
%add147.1 = or i32 %mul22, 1
%arrayidx183.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %add151.1
%arrayidx153 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 %1
%arrayidx183 = getelementptr inbounds <2 x float>, <2 x float> addrspace(3)* %10, i32 %1
%storetmp.promoted = load <4 x float>, <4 x float>* %storetmp, align 16
%storetmp.1.promoted = load <4 x float>, <4 x float>* %storetmp.1, align 16
%storetmp.2.promoted = load <4 x float>, <4 x float>* %storetmp.2, align 16
%storetmp.3.promoted = load <4 x float>, <4 x float>* %storetmp.3, align 16
%storetmp.4.promoted = load <4 x float>, <4 x float>* %storetmp.4, align 16
%storetmp.5.promoted = load <4 x float>, <4 x float>* %storetmp.5, align 16
%storetmp.6.promoted = load <4 x float>, <4 x float>* %storetmp.6, align 16
%storetmp.7.promoted = load <4 x float>, <4 x float>* %storetmp.7, align 16
br label %55
; <label>:55: ; preds = %.loopexit, %.lr.ph
%loadVec4243.7.3822 = phi <4 x float> [ %storetmp.7.promoted, %.lr.ph ], [ %loadVec4243.7.3821, %.loopexit ]
%loadVec4243.6.3813 = phi <4 x float> [ %storetmp.6.promoted, %.lr.ph ], [ %loadVec4243.6.3812, %.loopexit ]
%loadVec4243.5.3804 = phi <4 x float> [ %storetmp.5.promoted, %.lr.ph ], [ %loadVec4243.5.3803, %.loopexit ]
%loadVec4243.4.3795 = phi <4 x float> [ %storetmp.4.promoted, %.lr.ph ], [ %loadVec4243.4.3794, %.loopexit ]
%loadVec4243.3.3786 = phi <4 x float> [ %storetmp.3.promoted, %.lr.ph ], [ %loadVec4243.3.3785, %.loopexit ]
%loadVec4243.2.3777 = phi <4 x float> [ %storetmp.2.promoted, %.lr.ph ], [ %loadVec4243.2.3776, %.loopexit ]
%loadVec4243.1.3768 = phi <4 x float> [ %storetmp.1.promoted, %.lr.ph ], [ %loadVec4243.1.3767, %.loopexit ]
%loadVec4243.3727759 = phi <4 x float> [ %storetmp.promoted, %.lr.ph ], [ %loadVec4243.3727758, %.loopexit ]
%j4.0562 = phi i32 [ %nb_sci.sroa.11.0.copyload, %.lr.ph ], [ %inc259, %.loopexit ]
%E_lj.0561 = phi float [ 0.000000e+00, %.lr.ph ], [ %E_lj.5, %.loopexit ]
%E_el.2560 = phi float [ %E_el.2.ph, %.lr.ph ], [ %E_el.7, %.loopexit ]
%idxprom90 = sext i32 %j4.0562 to i64
%excl_ind = getelementptr inbounds %struct.nbnxn_cj4_t, %struct.nbnxn_cj4_t addrspace(1)* %pl_cj4, i64 %idxprom90, i32 1, i64 %idxprom92, i32 1
%56 = load i32, i32 addrspace(1)* %excl_ind, align 4, !tbaa !41
%imask99 = getelementptr inbounds %struct.nbnxn_cj4_t, %struct.nbnxn_cj4_t addrspace(1)* %pl_cj4, i64 %idxprom90, i32 1, i64 %idxprom92, i32 0
%57 = load i32, i32 addrspace(1)* %imask99, align 4, !tbaa !43
%idxprom100 = sext i32 %56 to i64
%arrayidx103 = getelementptr inbounds %struct.nbnxn_excl_t, %struct.nbnxn_excl_t addrspace(1)* %excl, i64 %idxprom100, i32 0, i64 %and
%58 = load i32, i32 addrspace(1)* %arrayidx103, align 4, !tbaa !9
%tobool = icmp eq i32 %57, 0
br i1 %tobool, label %.loopexit, label %59
; <label>:59: ; preds = %55
br i1 %or.cond302, label %60, label %.preheader.preheader
; <label>:60: ; preds = %59
%arrayidx114 = getelementptr inbounds %struct.nbnxn_cj4_t, %struct.nbnxn_cj4_t addrspace(1)* %pl_cj4, i64 %idxprom90, i32 0, i64 %2
%61 = load i32, i32 addrspace(1)* %arrayidx114, align 4, !tbaa !9
store i32 %61, i32 addrspace(3)* %arrayidx119, align 4, !tbaa !9
br label %.preheader.preheader
.preheader.preheader: ; preds = %59, %60
%and123 = and i32 %57, 255
%tobool124 = icmp eq i32 %and123, 0
br i1 %tobool124, label %.preheader.1735, label %62
; <label>:62: ; preds = %.preheader.preheader
%63 = load i32, i32 addrspace(3)* %arrayidx133, align 4, !tbaa !9
%mul134 = shl nsw i32 %63, 3
%add135 = add i32 %mul134, %3
%idxprom136 = sext i32 %add135 to i64
%arrayidx137 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom136
%64 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx137, align 16, !tbaa !13
%65 = extractelement <4 x float> %64, i64 3
%arrayidx140 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom136
%66 = load <2 x float>, <2 x float> addrspace(1)* %arrayidx140, align 8, !tbaa !13
%67 = extractelement <2 x float> %66, i64 0
%68 = extractelement <2 x float> %66, i64 1
%and144 = and i32 %57, 1
%tobool145 = icmp eq i32 %and144, 0
br i1 %tobool145, label %260, label %69
; <label>:69: ; preds = %62
%70 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153, align 16, !tbaa !13
%71 = fsub fast <4 x float> %70, %64
%72 = extractelement <4 x float> %71, i32 0
%73 = extractelement <4 x float> %71, i32 1
%74 = fmul float %73, %73
%75 = tail call float @llvm.fmuladd.f32(float %72, float %72, float %74) #9
%76 = extractelement <4 x float> %71, i32 2
%77 = tail call float @llvm.fmuladd.f32(float %76, float %76, float %75) #9
%and167 = and i32 %58, 1
%tobool168 = icmp ne i32 %and167, 0
%cond = select i1 %tobool168, float 1.000000e+00, float 0.000000e+00
%cmp172 = icmp eq i32 %mul22, %63
%or.cond = and i1 %cmp66, %cmp172
%not.or.cond = xor i1 %or.cond, true
%cmp174. = or i1 %cmp174, %not.or.cond
%conv176 = uitofp i1 %cmp174. to float
%mul177 = fmul fast float %conv176, %nbparam_params.coerce.fca.9.extract
%cmp178 = fcmp fast olt float %77, %mul177
br i1 %cmp178, label %78, label %260
; <label>:78: ; preds = %69
%extractVec165 = shufflevector <4 x float> %71, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%79 = extractelement <4 x float> %70, i64 3
%80 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183, align 8, !tbaa !13
%81 = extractelement <2 x float> %80, i64 0
%mul184 = fmul fast float %81, %67
%82 = extractelement <2 x float> %80, i64 1
%mul185 = fmul fast float %82, %68
%83 = fcmp ogt float %77, 0x3E99A2B5C0000000
%84 = select i1 %83, float %77, float 0x3E99A2B5C0000000
%85 = tail call float @llvm.sqrt.f32(float %84) #10
%div188 = fdiv fast float 1.000000e+00, %85, !fpmath !33
%mul189 = fmul fast float %div188, %div188
%86 = fmul fast float %mul189, %mul189
%mul191 = fmul fast float %86, %cond
%mul192 = fmul fast float %mul191, %mul189
%neg = fsub fast float -0.000000e+00, %mul184
%87 = tail call fast float @llvm.fmuladd.f32(float %mul185, float %mul192, float %neg)
%mul194 = fmul fast float %mul192, %mul189
%mul195 = fmul fast float %mul194, %87
%88 = tail call fast float @llvm.fmuladd.f32(float %mul192, float %mul192, float %nbparam_params.coerce.fca.14.2.extract)
%mul197 = fmul fast float %mul185, %88
%add200 = fadd fast float %mul192, %nbparam_params.coerce.fca.13.2.extract
%mul202 = fmul fast float %add200, 0xBFC5555560000000
%neg203 = fmul fast float %mul202, %mul184
%89 = tail call fast float @llvm.fmuladd.f32(float %mul197, float 0x3FB5555540000000, float %neg203)
%mul204 = fmul fast float %89, %cond
%add205 = fadd fast float %mul204, %E_lj.0561
%mul206 = fmul fast float %79, %65
%mul207 = fmul fast float %mul189, %cond
%mul209 = fmul fast float %84, %mul
%mul.i = fmul fast float %mul209, %mul209
%90 = tail call fast float @llvm.fmuladd.f32(float %mul.i, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%91 = tail call fast float @llvm.fmuladd.f32(float %mul.i, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%92 = tail call fast float @llvm.fmuladd.f32(float %90, float %mul.i, float 1.000000e+00) #9
%93 = tail call fast float @llvm.fmuladd.f32(float %91, float %mul209, float %92) #9
%div.i = fdiv fast float 1.000000e+00, %93, !fpmath !33
%94 = tail call fast float @llvm.fmuladd.f32(float %mul.i, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%95 = tail call fast float @llvm.fmuladd.f32(float %mul.i, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%96 = tail call fast float @llvm.fmuladd.f32(float %94, float %mul.i, float 0xBF93BDB200000000) #9
%97 = tail call fast float @llvm.fmuladd.f32(float %95, float %mul.i, float 0x3FB1D5E760000000) #9
%98 = tail call fast float @llvm.fmuladd.f32(float %96, float %mul.i, float 0xBFE81272E0000000) #9
%99 = tail call fast float @llvm.fmuladd.f32(float %97, float %mul209, float %98) #9
%mul7 = fmul fast float %mul11.i, %div.i
%mul211 = fmul fast float %mul7, %99
%100 = tail call fast float @llvm.fmuladd.f32(float %mul207, float %div188, float %mul211)
%101 = tail call fast float @llvm.fmuladd.f32(float %mul206, float %100, float %mul195)
%mul214 = fmul fast float %84, %nbparam_params.coerce.fca.5.extract
%mul215 = fmul fast float %mul214, %div188
%102 = bitcast float %mul215 to i32
%103 = and i32 %102, 2147483647
%104 = bitcast i32 %103 to float
%105 = fmul float %104, %104
%106 = fdiv float 1.000000e+00, %105, !fpmath !33
%107 = fadd float %104, -1.000000e+00
%108 = fcmp olt float %104, 1.250000e+00
%109 = select i1 %108, float %107, float %106
%110 = fcmp olt float %104, 8.437500e-01
%111 = select i1 %110, float %105, float %109
%112 = tail call float @llvm.fmuladd.f32(float %111, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%113 = tail call float @llvm.fmuladd.f32(float %111, float %112, float 0xC083EC8820000000) #9
%114 = tail call float @llvm.fmuladd.f32(float %111, float %113, float 0xC064145D40000000) #9
%115 = tail call float @llvm.fmuladd.f32(float %111, float %114, float 0xC031C20960000000) #9
%116 = tail call float @llvm.fmuladd.f32(float %111, float %115, float 0xBFE993BA80000000) #9
%117 = tail call float @llvm.fmuladd.f32(float %111, float %116, float 0xBF84341240000000) #9
%118 = tail call float @llvm.fmuladd.f32(float %111, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%119 = tail call float @llvm.fmuladd.f32(float %111, float %118, float 0x40A3F219C0000000) #9
%120 = tail call float @llvm.fmuladd.f32(float %111, float %119, float 0x40A8FFB760000000) #9
%121 = tail call float @llvm.fmuladd.f32(float %111, float %120, float 0x409802EB20000000) #9
%122 = tail call float @llvm.fmuladd.f32(float %111, float %121, float 0x40745CAE20000000) #9
%123 = tail call float @llvm.fmuladd.f32(float %111, float %122, float 0x403E568B20000000) #9
%124 = tail call float @llvm.fmuladd.f32(float %111, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%125 = tail call float @llvm.fmuladd.f32(float %111, float %124, float 0xC067135CE0000000) #9
%126 = tail call float @llvm.fmuladd.f32(float %111, float %125, float 0xC0644CB180000000) #9
%127 = tail call float @llvm.fmuladd.f32(float %111, float %126, float 0xC04F300AE0000000) #9
%128 = tail call float @llvm.fmuladd.f32(float %111, float %127, float 0xC0251E0440000000) #9
%129 = tail call float @llvm.fmuladd.f32(float %111, float %128, float 0xBFE63416E0000000) #9
%130 = tail call float @llvm.fmuladd.f32(float %111, float %129, float 0xBF84341260000000) #9
%131 = tail call float @llvm.fmuladd.f32(float %111, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%132 = tail call float @llvm.fmuladd.f32(float %111, float %131, float 0x405B28A3E0000000) #9
%133 = tail call float @llvm.fmuladd.f32(float %111, float %132, float 0x407AD02160000000) #9
%134 = tail call float @llvm.fmuladd.f32(float %111, float %133, float 0x40842B1920000000) #9
%135 = tail call float @llvm.fmuladd.f32(float %111, float %134, float 0x407B290DE0000000) #9
%136 = tail call float @llvm.fmuladd.f32(float %111, float %135, float 0x4061350C60000000) #9
%137 = tail call float @llvm.fmuladd.f32(float %111, float %136, float 0x4033A6B9C0000000) #9
%138 = fcmp olt float %104, 0x4006DB6DC0000000
%139 = select i1 %138, float %130, float %117
%140 = select i1 %138, float %137, float %123
%141 = tail call float @llvm.fmuladd.f32(float %111, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%142 = tail call float @llvm.fmuladd.f32(float %111, float %141, float 0xBFBC639840000000) #9
%143 = tail call float @llvm.fmuladd.f32(float %111, float %142, float 0x3FD45FCA80000000) #9
%144 = tail call float @llvm.fmuladd.f32(float %111, float %143, float 0xBFD7D24100000000) #9
%145 = tail call float @llvm.fmuladd.f32(float %111, float %144, float 0x3FDA8D00A0000000) #9
%146 = tail call float @llvm.fmuladd.f32(float %111, float %145, float 0xBF6359B8C0000000) #9
%147 = tail call float @llvm.fmuladd.f32(float %111, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%148 = tail call float @llvm.fmuladd.f32(float %111, float %147, float 0x3FC02660E0000000) #9
%149 = tail call float @llvm.fmuladd.f32(float %111, float %148, float 0x3FB2635CE0000000) #9
%150 = tail call float @llvm.fmuladd.f32(float %111, float %149, float 0x3FE14AF0A0000000) #9
%151 = tail call float @llvm.fmuladd.f32(float %111, float %150, float 0x3FBB3E6620000000) #9
%152 = select i1 %108, float %146, float %139
%153 = select i1 %108, float %151, float %140
%154 = tail call float @llvm.fmuladd.f32(float %111, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%155 = tail call float @llvm.fmuladd.f32(float %111, float %154, float 0xBF9D2A51E0000000) #9
%156 = tail call float @llvm.fmuladd.f32(float %111, float %155, float 0xBFD4CD7D60000000) #9
%157 = tail call float @llvm.fmuladd.f32(float %111, float %156, float 0x3FC06EBA80000000) #9
%158 = tail call float @llvm.fmuladd.f32(float %111, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%159 = tail call float @llvm.fmuladd.f32(float %111, float %158, float 0x3F74D022C0000000) #9
%160 = tail call float @llvm.fmuladd.f32(float %111, float %159, float 0x3FB0A54C60000000) #9
%161 = tail call float @llvm.fmuladd.f32(float %111, float %160, float 0x3FD97779C0000000) #9
%162 = select i1 %110, float %157, float %152
%163 = select i1 %110, float %161, float %153
%164 = tail call float @llvm.fmuladd.f32(float %111, float %163, float 1.000000e+00) #9
%165 = fdiv float %162, %164, !fpmath !33
%166 = and i32 %102, 2147479552
%167 = bitcast i32 %166 to float
%168 = fsub float -0.000000e+00, %167
%169 = tail call float @llvm.fmuladd.f32(float %168, float %167, float -5.625000e-01) #9
%170 = fcmp olt float %169, 0.000000e+00
%171 = select i1 %170, float -5.000000e-01, float 5.000000e-01
%172 = tail call float @llvm.fmuladd.f32(float %169, float 0x3FF7154760000000, float %171) #9
%173 = fptosi float %172 to i32
%174 = sitofp i32 %173 to float
%175 = tail call float @llvm.fmuladd.f32(float %174, float 0xBFE62E3000000000, float %169) #9
%176 = fmul float %174, 0xBEE2FEFA20000000
%177 = fadd float %175, %176
%178 = fmul float %177, %177
%179 = tail call float @llvm.fmuladd.f32(float %178, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%180 = tail call float @llvm.fmuladd.f32(float %178, float %179, float 0x3F11566AA0000000) #9
%181 = tail call float @llvm.fmuladd.f32(float %178, float %180, float 0xBF66C16C20000000) #9
%182 = tail call float @llvm.fmuladd.f32(float %178, float %181, float 0x3FC5555560000000) #9
%183 = fsub float -0.000000e+00, %182
%184 = tail call float @llvm.fmuladd.f32(float %178, float %183, float %177) #9
%185 = fsub float -0.000000e+00, %176
%186 = fmul float %177, %184
%187 = fsub float 2.000000e+00, %184
%188 = fdiv float %186, %187, !fpmath !33
%189 = fsub float %185, %188
%190 = fsub float %189, %175
%191 = fsub float 1.000000e+00, %190
%192 = bitcast float %191 to i32
%193 = shl i32 %173, 23
%194 = add nsw i32 %192, %193
%195 = bitcast i32 %194 to float
%196 = fcmp olt float %169, 0xC055D589E0000000
%197 = select i1 %196, float 0.000000e+00, float %195
%198 = fcmp olt float %169, 0x40562E4300000000
%199 = select i1 %198, float %197, float 0x7FF0000000000000
%200 = fcmp uno float %169, 0.000000e+00
%201 = select i1 %200, float %169, float %199
%202 = fsub float %167, %104
%203 = fadd float %167, %104
%204 = tail call float @llvm.fmuladd.f32(float %202, float %203, float %165) #9
%205 = fcmp olt float %204, 0.000000e+00
%206 = select i1 %205, float -5.000000e-01, float 5.000000e-01
%207 = tail call float @llvm.fmuladd.f32(float %204, float 0x3FF7154760000000, float %206) #9
%208 = fptosi float %207 to i32
%209 = sitofp i32 %208 to float
%210 = tail call float @llvm.fmuladd.f32(float %209, float 0xBFE62E3000000000, float %204) #9
%211 = fmul float %209, 0xBEE2FEFA20000000
%212 = fadd float %210, %211
%213 = fmul float %212, %212
%214 = tail call float @llvm.fmuladd.f32(float %213, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%215 = tail call float @llvm.fmuladd.f32(float %213, float %214, float 0x3F11566AA0000000) #9
%216 = tail call float @llvm.fmuladd.f32(float %213, float %215, float 0xBF66C16C20000000) #9
%217 = tail call float @llvm.fmuladd.f32(float %213, float %216, float 0x3FC5555560000000) #9
%218 = fsub float -0.000000e+00, %217
%219 = tail call float @llvm.fmuladd.f32(float %213, float %218, float %212) #9
%220 = fsub float -0.000000e+00, %211
%221 = fmul float %212, %219
%222 = fsub float 2.000000e+00, %219
%223 = fdiv float %221, %222, !fpmath !33
%224 = fsub float %220, %223
%225 = fsub float %224, %210
%226 = fsub float 1.000000e+00, %225
%227 = bitcast float %226 to i32
%228 = shl i32 %208, 23
%229 = add nsw i32 %227, %228
%230 = bitcast i32 %229 to float
%231 = fcmp olt float %204, 0xC055D589E0000000
%232 = select i1 %231, float 0.000000e+00, float %230
%233 = fcmp olt float %204, 0x40562E4300000000
%234 = select i1 %233, float %232, float 0x7FF0000000000000
%235 = fcmp uno float %204, 0.000000e+00
%236 = select i1 %235, float %204, float %234
%237 = fmul float %201, %236
%238 = fdiv float %237, %104, !fpmath !33
%239 = fsub float 1.000000e+00, %238
%240 = fcmp olt float %104, 6.000000e+00
%241 = select i1 %240, float %239, float 1.000000e+00
%242 = fadd float %165, 0x3FEB0AC160000000
%243 = select i1 %108, float %242, float %241
%244 = and i32 %102, -2147483648
%245 = bitcast float %243 to i32
%246 = or i32 %245, %244
%247 = bitcast i32 %246 to float
%248 = tail call float @llvm.fmuladd.f32(float %mul215, float %165, float %mul215) #9
%249 = select i1 %110, float %248, float %247
%250 = fmul float %mul215, 0x3FF06EBA80000000
%251 = tail call float @llvm.fmuladd.f32(float %mul215, float 8.000000e+00, float %250) #9
%252 = fmul float %251, 1.250000e-01
%253 = fcmp olt float %104, 0x3E30000000000000
%254 = select i1 %253, float %252, float %249
%255 = fcmp uno float %mul215, 0.000000e+00
%256 = select i1 %255, float %mul215, float %254
%sub217 = fsub fast float %cond, %256
%257 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond
%neg220 = fsub fast float -0.000000e+00, %257
%258 = tail call fast float @llvm.fmuladd.f32(float %div188, float %sub217, float %neg220)
%259 = tail call fast float @llvm.fmuladd.f32(float %mul206, float %258, float %E_el.2560)
%splat.splatinsert = insertelement <3 x float> undef, float %101, i32 0
%splat.splat = shufflevector <3 x float> %splat.splatinsert, <3 x float> undef, <3 x i32> zeroinitializer
%mul225 = fmul fast <3 x float> %splat.splat, %extractVec165
%sub234 = fsub fast <3 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %mul225
%extractVec235 = shufflevector <3 x float> %sub234, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244 = shufflevector <4 x float> %loadVec4243.3727759, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245 = fadd fast <3 x float> %mul225, %extractVec244
%extractVec246 = shufflevector <3 x float> %add245, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %260
; <label>:260: ; preds = %62, %69, %78
%loadVec4243.3727751 = phi <4 x float> [ %extractVec246, %78 ], [ %loadVec4243.3727759, %69 ], [ %loadVec4243.3727759, %62 ]
%E_el.5 = phi float [ %259, %78 ], [ %E_el.2560, %69 ], [ %E_el.2560, %62 ]
%fcj_buf.sroa.0.1 = phi <4 x float> [ %extractVec235, %78 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %69 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %62 ]
%E_lj.3 = phi float [ %add205, %78 ], [ %E_lj.0561, %69 ], [ %E_lj.0561, %62 ]
%and144.1 = and i32 %57, 2
%tobool145.1 = icmp eq i32 %and144.1, 0
br i1 %tobool145.1, label %494, label %303
.preheader.1735: ; preds = %.preheader.preheader, %1646
%loadVec4243.7.3820 = phi <4 x float> [ %loadVec4243.7.3814, %1646 ], [ %loadVec4243.7.3822, %.preheader.preheader ]
%loadVec4243.6.3811 = phi <4 x float> [ %loadVec4243.6.3805, %1646 ], [ %loadVec4243.6.3813, %.preheader.preheader ]
%loadVec4243.5.3802 = phi <4 x float> [ %loadVec4243.5.3796, %1646 ], [ %loadVec4243.5.3804, %.preheader.preheader ]
%loadVec4243.4.3793 = phi <4 x float> [ %loadVec4243.4.3787, %1646 ], [ %loadVec4243.4.3795, %.preheader.preheader ]
%loadVec4243.3.3784 = phi <4 x float> [ %loadVec4243.3.3778, %1646 ], [ %loadVec4243.3.3786, %.preheader.preheader ]
%loadVec4243.2.3775 = phi <4 x float> [ %loadVec4243.2.3769, %1646 ], [ %loadVec4243.2.3777, %.preheader.preheader ]
%loadVec4243.1.3766 = phi <4 x float> [ %loadVec4243.1.3760, %1646 ], [ %loadVec4243.1.3768, %.preheader.preheader ]
%loadVec4243.3727757 = phi <4 x float> [ %loadVec4243.3727751, %1646 ], [ %loadVec4243.3727759, %.preheader.preheader ]
%E_el.6 = phi float [ %E_el.5.7, %1646 ], [ %E_el.2560, %.preheader.preheader ]
%E_lj.4 = phi float [ %E_lj.3.7, %1646 ], [ %E_lj.0561, %.preheader.preheader ]
%and123.1 = and i32 %57, 65280
%tobool124.1 = icmp eq i32 %and123.1, 0
br i1 %tobool124.1, label %.preheader.2736, label %1650
.loopexit: ; preds = %.preheader.3737, %6284, %55
%loadVec4243.7.3821 = phi <4 x float> [ %loadVec4243.7.3822, %55 ], [ %loadVec4243.7.3817, %6284 ], [ %loadVec4243.7.3818, %.preheader.3737 ]
%loadVec4243.6.3812 = phi <4 x float> [ %loadVec4243.6.3813, %55 ], [ %loadVec4243.6.3808, %6284 ], [ %loadVec4243.6.3809, %.preheader.3737 ]
%loadVec4243.5.3803 = phi <4 x float> [ %loadVec4243.5.3804, %55 ], [ %loadVec4243.5.3799, %6284 ], [ %loadVec4243.5.3800, %.preheader.3737 ]
%loadVec4243.4.3794 = phi <4 x float> [ %loadVec4243.4.3795, %55 ], [ %loadVec4243.4.3790, %6284 ], [ %loadVec4243.4.3791, %.preheader.3737 ]
%loadVec4243.3.3785 = phi <4 x float> [ %loadVec4243.3.3786, %55 ], [ %loadVec4243.3.3781, %6284 ], [ %loadVec4243.3.3782, %.preheader.3737 ]
%loadVec4243.2.3776 = phi <4 x float> [ %loadVec4243.2.3777, %55 ], [ %loadVec4243.2.3772, %6284 ], [ %loadVec4243.2.3773, %.preheader.3737 ]
%loadVec4243.1.3767 = phi <4 x float> [ %loadVec4243.1.3768, %55 ], [ %loadVec4243.1.3763, %6284 ], [ %loadVec4243.1.3764, %.preheader.3737 ]
%loadVec4243.3727758 = phi <4 x float> [ %loadVec4243.3727759, %55 ], [ %loadVec4243.3727754, %6284 ], [ %loadVec4243.3727755, %.preheader.3737 ]
%E_el.7 = phi float [ %E_el.2560, %55 ], [ %E_el.5.7.3, %6284 ], [ %E_el.6.2, %.preheader.3737 ]
%E_lj.5 = phi float [ %E_lj.0561, %55 ], [ %E_lj.3.7.3, %6284 ], [ %E_lj.4.2, %.preheader.3737 ]
%inc259 = add nsw i32 %j4.0562, 1
%exitcond = icmp eq i32 %inc259, %nb_sci.sroa.12.0.copyload
br i1 %exitcond, label %._crit_edge.loopexit, label %55
._crit_edge.loopexit: ; preds = %.loopexit
store <4 x float> %loadVec4243.3727758, <4 x float>* %storetmp, align 16
store <4 x float> %loadVec4243.1.3767, <4 x float>* %storetmp.1, align 16
store <4 x float> %loadVec4243.2.3776, <4 x float>* %storetmp.2, align 16
store <4 x float> %loadVec4243.3.3785, <4 x float>* %storetmp.3, align 16
store <4 x float> %loadVec4243.4.3794, <4 x float>* %storetmp.4, align 16
store <4 x float> %loadVec4243.5.3803, <4 x float>* %storetmp.5, align 16
store <4 x float> %loadVec4243.6.3812, <4 x float>* %storetmp.6, align 16
store <4 x float> %loadVec4243.7.3821, <4 x float>* %storetmp.7, align 16
%.pre = load <3 x float>, <3 x float>* %arrayidx64, align 16
%.pre741 = load <3 x float>, <3 x float>* %arrayidx64.1, align 16
%.pre742 = load <3 x float>, <3 x float>* %arrayidx64.2, align 16
%.pre743 = load <3 x float>, <3 x float>* %arrayidx64.3, align 16
%.pre744 = load <3 x float>, <3 x float>* %arrayidx64.4, align 16
%.pre745 = load <3 x float>, <3 x float>* %arrayidx64.5, align 16
%.pre746 = load <3 x float>, <3 x float>* %arrayidx64.6, align 16
br label %._crit_edge
._crit_edge: ; preds = %.preheader548.._crit_edge_crit_edge, %._crit_edge.loopexit
%arrayidx282.pre-phi = phi float addrspace(3)* [ %.pre749, %.preheader548.._crit_edge_crit_edge ], [ %arrayidx257, %._crit_edge.loopexit ]
%arrayidx272.pre-phi = phi float addrspace(3)* [ %.pre747, %.preheader548.._crit_edge_crit_edge ], [ %arrayidx251, %._crit_edge.loopexit ]
%261 = phi <3 x float> [ zeroinitializer, %.preheader548.._crit_edge_crit_edge ], [ %.pre746, %._crit_edge.loopexit ]
%262 = phi <3 x float> [ zeroinitializer, %.preheader548.._crit_edge_crit_edge ], [ %.pre745, %._crit_edge.loopexit ]
%263 = phi <3 x float> [ zeroinitializer, %.preheader548.._crit_edge_crit_edge ], [ %.pre744, %._crit_edge.loopexit ]
%264 = phi <3 x float> [ zeroinitializer, %.preheader548.._crit_edge_crit_edge ], [ %.pre743, %._crit_edge.loopexit ]
%265 = phi <3 x float> [ zeroinitializer, %.preheader548.._crit_edge_crit_edge ], [ %.pre742, %._crit_edge.loopexit ]
%266 = phi <3 x float> [ zeroinitializer, %.preheader548.._crit_edge_crit_edge ], [ %.pre741, %._crit_edge.loopexit ]
%267 = phi <3 x float> [ zeroinitializer, %.preheader548.._crit_edge_crit_edge ], [ %.pre, %._crit_edge.loopexit ]
%E_el.2.lcssa = phi float [ %E_el.2.ph, %.preheader548.._crit_edge_crit_edge ], [ %E_el.7, %._crit_edge.loopexit ]
%E_lj.0.lcssa = phi float [ 0.000000e+00, %.preheader548.._crit_edge_crit_edge ], [ %E_lj.5, %._crit_edge.loopexit ]
store float 0.000000e+00, float* %fshift_buf, align 4, !tbaa !17
%add275 = add nuw nsw i32 %addconv, 64
%arrayidx277 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %add275
%tobool283750 = icmp ne i32 %bCalcFshift, 0
%not.cmp66 = xor i1 %cmp66, true
%tobool283 = and i1 %tobool283750, %not.cmp66
%mul267 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%add268 = add i32 %mul267, %1
%268 = extractelement <3 x float> %267, i64 0
store float %268, float addrspace(3)* %arrayidx272.pre-phi, align 4, !tbaa !17
%269 = extractelement <3 x float> %267, i64 1
store float %269, float addrspace(3)* %arrayidx277, align 4, !tbaa !17
%270 = extractelement <3 x float> %267, i64 2
store float %270, float addrspace(3)* %arrayidx282.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool283, i32 %1, i32 %3, i32 %add268) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add266.1 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul267.1 = or i32 %add266.1, 8
%add268.1 = add i32 %mul267.1, %1
%271 = extractelement <3 x float> %266, i64 0
store float %271, float addrspace(3)* %arrayidx272.pre-phi, align 4, !tbaa !17
%272 = extractelement <3 x float> %266, i64 1
store float %272, float addrspace(3)* %arrayidx277, align 4, !tbaa !17
%273 = extractelement <3 x float> %266, i64 2
store float %273, float addrspace(3)* %arrayidx282.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool283, i32 %1, i32 %3, i32 %add268.1) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add266.2 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul267.2 = or i32 %add266.2, 16
%add268.2 = add i32 %mul267.2, %1
%274 = extractelement <3 x float> %265, i64 0
store float %274, float addrspace(3)* %arrayidx272.pre-phi, align 4, !tbaa !17
%275 = extractelement <3 x float> %265, i64 1
store float %275, float addrspace(3)* %arrayidx277, align 4, !tbaa !17
%276 = extractelement <3 x float> %265, i64 2
store float %276, float addrspace(3)* %arrayidx282.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool283, i32 %1, i32 %3, i32 %add268.2) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add266.3 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul267.3 = or i32 %add266.3, 24
%add268.3 = add i32 %mul267.3, %1
%277 = extractelement <3 x float> %264, i64 0
store float %277, float addrspace(3)* %arrayidx272.pre-phi, align 4, !tbaa !17
%278 = extractelement <3 x float> %264, i64 1
store float %278, float addrspace(3)* %arrayidx277, align 4, !tbaa !17
%279 = extractelement <3 x float> %264, i64 2
store float %279, float addrspace(3)* %arrayidx282.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool283, i32 %1, i32 %3, i32 %add268.3) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add266.4 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul267.4 = or i32 %add266.4, 32
%add268.4 = add i32 %mul267.4, %1
%280 = extractelement <3 x float> %263, i64 0
store float %280, float addrspace(3)* %arrayidx272.pre-phi, align 4, !tbaa !17
%281 = extractelement <3 x float> %263, i64 1
store float %281, float addrspace(3)* %arrayidx277, align 4, !tbaa !17
%282 = extractelement <3 x float> %263, i64 2
store float %282, float addrspace(3)* %arrayidx282.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool283, i32 %1, i32 %3, i32 %add268.4) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add266.5 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul267.5 = or i32 %add266.5, 40
%add268.5 = add i32 %mul267.5, %1
%283 = extractelement <3 x float> %262, i64 0
store float %283, float addrspace(3)* %arrayidx272.pre-phi, align 4, !tbaa !17
%284 = extractelement <3 x float> %262, i64 1
store float %284, float addrspace(3)* %arrayidx277, align 4, !tbaa !17
%285 = extractelement <3 x float> %262, i64 2
store float %285, float addrspace(3)* %arrayidx282.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool283, i32 %1, i32 %3, i32 %add268.5) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add266.6 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul267.6 = or i32 %add266.6, 48
%add268.6 = add i32 %mul267.6, %1
%286 = extractelement <3 x float> %261, i64 0
store float %286, float addrspace(3)* %arrayidx272.pre-phi, align 4, !tbaa !17
%287 = extractelement <3 x float> %261, i64 1
store float %287, float addrspace(3)* %arrayidx277, align 4, !tbaa !17
%288 = extractelement <3 x float> %261, i64 2
store float %288, float addrspace(3)* %arrayidx282.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool283, i32 %1, i32 %3, i32 %add268.6) #9
tail call void @llvm.amdgcn.s.barrier() #9
%add266.7 = shl i32 %nb_sci.sroa.0.0.copyload, 6
%mul267.7 = or i32 %add266.7, 56
%add268.7 = add i32 %mul267.7, %1
%289 = load <3 x float>, <3 x float>* %arrayidx64.7, align 16
%290 = extractelement <3 x float> %289, i64 0
store float %290, float addrspace(3)* %arrayidx272.pre-phi, align 4, !tbaa !17
%291 = extractelement <3 x float> %289, i64 1
store float %291, float addrspace(3)* %arrayidx277, align 4, !tbaa !17
%292 = extractelement <3 x float> %289, i64 2
store float %292, float addrspace(3)* %arrayidx282.pre-phi, align 4, !tbaa !17
tail call void @llvm.amdgcn.s.barrier() #9
call void @reduce_force_i_pow2(float addrspace(3)* %11, float addrspace(1)* %f, float* nonnull %fshift_buf, i1 zeroext %tobool283, i32 %1, i32 %3, i32 %add268.7) #9
tail call void @llvm.amdgcn.s.barrier() #9
%cmp286 = icmp ult i32 %3, 3
%or.cond303 = and i1 %cmp286, %tobool283
br i1 %or.cond303, label %293, label %atomicAdd_g_f.exit
; <label>:293: ; preds = %._crit_edge
%add290 = add i32 %mul28, %3
%idxprom291 = zext i32 %add290 to i64
%arrayidx292 = getelementptr inbounds float, float addrspace(1)* %fshift, i64 %idxprom291
%294 = load float, float* %fshift_buf, align 4, !tbaa !17
%295 = load volatile float, float addrspace(1)* %arrayidx292, align 4, !tbaa !17
%296 = bitcast float %295 to i32
%297 = bitcast float addrspace(1)* %arrayidx292 to i32 addrspace(1)*
br label %298
; <label>:298: ; preds = %298, %293
%current.sroa.0.0.i = phi i32 [ %296, %293 ], [ %302, %298 ]
%299 = bitcast i32 %current.sroa.0.0.i to float
%add.i = fadd fast float %299, %294
%300 = bitcast float %add.i to i32
%301 = cmpxchg volatile i32 addrspace(1)* %297, i32 %current.sroa.0.0.i, i32 %300 seq_cst seq_cst
%302 = extractvalue { i32, i1 } %301, 0
%cmp.i = extractvalue { i32, i1 } %301, 1
br i1 %cmp.i, label %atomicAdd_g_f.exit.loopexit, label %298
atomicAdd_g_f.exit.loopexit: ; preds = %298
br label %atomicAdd_g_f.exit
atomicAdd_g_f.exit: ; preds = %atomicAdd_g_f.exit.loopexit, %._crit_edge
store float %E_lj.0.lcssa, float addrspace(3)* %arrayidx272.pre-phi, align 4, !tbaa !17
store float %E_el.2.lcssa, float addrspace(3)* %arrayidx277, align 4, !tbaa !17
%and298 = and i32 %addconv, 32
%add.ptr299 = getelementptr inbounds <4 x float>, <4 x float> addrspace(3)* %xqib, i32 98, i32 %and298
%and300 = and i32 %addconv, 134217695
tail call void @reduce_energy_pow2(float addrspace(3)* %add.ptr299, float addrspace(1)* %e_lj, float addrspace(1)* %e_el, i32 %and300)
call void @llvm.lifetime.end(i64 128, i8* nonnull %8) #9
call void @llvm.lifetime.end(i64 4, i8* nonnull %7) #9
ret void
; <label>:303: ; preds = %260
%304 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.1, align 16, !tbaa !13
%305 = fsub fast <4 x float> %304, %64
%306 = extractelement <4 x float> %305, i32 0
%307 = extractelement <4 x float> %305, i32 1
%308 = fmul float %307, %307
%309 = tail call float @llvm.fmuladd.f32(float %306, float %306, float %308) #9
%310 = extractelement <4 x float> %305, i32 2
%311 = tail call float @llvm.fmuladd.f32(float %310, float %310, float %309) #9
%and167.1 = and i32 %58, 2
%tobool168.1 = icmp ne i32 %and167.1, 0
%cond.1 = select i1 %tobool168.1, float 1.000000e+00, float 0.000000e+00
%cmp172.1 = icmp eq i32 %add147.1, %63
%or.cond.1 = and i1 %cmp66, %cmp172.1
%not.or.cond.1 = xor i1 %or.cond.1, true
%cmp174..1 = or i1 %cmp174, %not.or.cond.1
%conv176.1 = uitofp i1 %cmp174..1 to float
%mul177.1 = fmul fast float %conv176.1, %nbparam_params.coerce.fca.9.extract
%cmp178.1 = fcmp fast olt float %311, %mul177.1
br i1 %cmp178.1, label %312, label %494
; <label>:312: ; preds = %303
%extractVec165.1 = shufflevector <4 x float> %305, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%313 = extractelement <4 x float> %304, i64 3
%314 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.1, align 8, !tbaa !13
%315 = extractelement <2 x float> %314, i64 0
%mul184.1 = fmul fast float %315, %67
%316 = extractelement <2 x float> %314, i64 1
%mul185.1 = fmul fast float %316, %68
%317 = fcmp ogt float %311, 0x3E99A2B5C0000000
%318 = select i1 %317, float %311, float 0x3E99A2B5C0000000
%319 = tail call float @llvm.sqrt.f32(float %318) #10
%div188.1 = fdiv fast float 1.000000e+00, %319, !fpmath !33
%mul189.1 = fmul fast float %div188.1, %div188.1
%320 = fmul fast float %mul189.1, %mul189.1
%mul191.1 = fmul fast float %320, %cond.1
%mul192.1 = fmul fast float %mul191.1, %mul189.1
%neg.1 = fsub fast float -0.000000e+00, %mul184.1
%321 = tail call fast float @llvm.fmuladd.f32(float %mul185.1, float %mul192.1, float %neg.1)
%mul194.1 = fmul fast float %mul192.1, %mul189.1
%mul195.1 = fmul fast float %mul194.1, %321
%322 = tail call fast float @llvm.fmuladd.f32(float %mul192.1, float %mul192.1, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.1 = fmul fast float %mul185.1, %322
%add200.1 = fadd fast float %mul192.1, %nbparam_params.coerce.fca.13.2.extract
%mul202.1 = fmul fast float %add200.1, 0xBFC5555560000000
%neg203.1 = fmul fast float %mul202.1, %mul184.1
%323 = tail call fast float @llvm.fmuladd.f32(float %mul197.1, float 0x3FB5555540000000, float %neg203.1)
%mul204.1 = fmul fast float %323, %cond.1
%add205.1 = fadd fast float %mul204.1, %E_lj.3
%mul206.1 = fmul fast float %313, %65
%mul207.1 = fmul fast float %mul189.1, %cond.1
%mul209.1 = fmul fast float %318, %mul
%mul.i.1 = fmul fast float %mul209.1, %mul209.1
%324 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%325 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%326 = tail call fast float @llvm.fmuladd.f32(float %324, float %mul.i.1, float 1.000000e+00) #9
%327 = tail call fast float @llvm.fmuladd.f32(float %325, float %mul209.1, float %326) #9
%div.i.1 = fdiv fast float 1.000000e+00, %327, !fpmath !33
%328 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%329 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%330 = tail call fast float @llvm.fmuladd.f32(float %328, float %mul.i.1, float 0xBF93BDB200000000) #9
%331 = tail call fast float @llvm.fmuladd.f32(float %329, float %mul.i.1, float 0x3FB1D5E760000000) #9
%332 = tail call fast float @llvm.fmuladd.f32(float %330, float %mul.i.1, float 0xBFE81272E0000000) #9
%333 = tail call fast float @llvm.fmuladd.f32(float %331, float %mul209.1, float %332) #9
%mul7.1 = fmul fast float %mul11.i, %div.i.1
%mul211.1 = fmul fast float %mul7.1, %333
%334 = tail call fast float @llvm.fmuladd.f32(float %mul207.1, float %div188.1, float %mul211.1)
%335 = tail call fast float @llvm.fmuladd.f32(float %mul206.1, float %334, float %mul195.1)
%mul214.1 = fmul fast float %318, %nbparam_params.coerce.fca.5.extract
%mul215.1 = fmul fast float %mul214.1, %div188.1
%336 = bitcast float %mul215.1 to i32
%337 = and i32 %336, 2147483647
%338 = bitcast i32 %337 to float
%339 = fmul float %338, %338
%340 = fdiv float 1.000000e+00, %339, !fpmath !33
%341 = fadd float %338, -1.000000e+00
%342 = fcmp olt float %338, 1.250000e+00
%343 = select i1 %342, float %341, float %340
%344 = fcmp olt float %338, 8.437500e-01
%345 = select i1 %344, float %339, float %343
%346 = tail call float @llvm.fmuladd.f32(float %345, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%347 = tail call float @llvm.fmuladd.f32(float %345, float %346, float 0xC083EC8820000000) #9
%348 = tail call float @llvm.fmuladd.f32(float %345, float %347, float 0xC064145D40000000) #9
%349 = tail call float @llvm.fmuladd.f32(float %345, float %348, float 0xC031C20960000000) #9
%350 = tail call float @llvm.fmuladd.f32(float %345, float %349, float 0xBFE993BA80000000) #9
%351 = tail call float @llvm.fmuladd.f32(float %345, float %350, float 0xBF84341240000000) #9
%352 = tail call float @llvm.fmuladd.f32(float %345, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%353 = tail call float @llvm.fmuladd.f32(float %345, float %352, float 0x40A3F219C0000000) #9
%354 = tail call float @llvm.fmuladd.f32(float %345, float %353, float 0x40A8FFB760000000) #9
%355 = tail call float @llvm.fmuladd.f32(float %345, float %354, float 0x409802EB20000000) #9
%356 = tail call float @llvm.fmuladd.f32(float %345, float %355, float 0x40745CAE20000000) #9
%357 = tail call float @llvm.fmuladd.f32(float %345, float %356, float 0x403E568B20000000) #9
%358 = tail call float @llvm.fmuladd.f32(float %345, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%359 = tail call float @llvm.fmuladd.f32(float %345, float %358, float 0xC067135CE0000000) #9
%360 = tail call float @llvm.fmuladd.f32(float %345, float %359, float 0xC0644CB180000000) #9
%361 = tail call float @llvm.fmuladd.f32(float %345, float %360, float 0xC04F300AE0000000) #9
%362 = tail call float @llvm.fmuladd.f32(float %345, float %361, float 0xC0251E0440000000) #9
%363 = tail call float @llvm.fmuladd.f32(float %345, float %362, float 0xBFE63416E0000000) #9
%364 = tail call float @llvm.fmuladd.f32(float %345, float %363, float 0xBF84341260000000) #9
%365 = tail call float @llvm.fmuladd.f32(float %345, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%366 = tail call float @llvm.fmuladd.f32(float %345, float %365, float 0x405B28A3E0000000) #9
%367 = tail call float @llvm.fmuladd.f32(float %345, float %366, float 0x407AD02160000000) #9
%368 = tail call float @llvm.fmuladd.f32(float %345, float %367, float 0x40842B1920000000) #9
%369 = tail call float @llvm.fmuladd.f32(float %345, float %368, float 0x407B290DE0000000) #9
%370 = tail call float @llvm.fmuladd.f32(float %345, float %369, float 0x4061350C60000000) #9
%371 = tail call float @llvm.fmuladd.f32(float %345, float %370, float 0x4033A6B9C0000000) #9
%372 = fcmp olt float %338, 0x4006DB6DC0000000
%373 = select i1 %372, float %364, float %351
%374 = select i1 %372, float %371, float %357
%375 = tail call float @llvm.fmuladd.f32(float %345, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%376 = tail call float @llvm.fmuladd.f32(float %345, float %375, float 0xBFBC639840000000) #9
%377 = tail call float @llvm.fmuladd.f32(float %345, float %376, float 0x3FD45FCA80000000) #9
%378 = tail call float @llvm.fmuladd.f32(float %345, float %377, float 0xBFD7D24100000000) #9
%379 = tail call float @llvm.fmuladd.f32(float %345, float %378, float 0x3FDA8D00A0000000) #9
%380 = tail call float @llvm.fmuladd.f32(float %345, float %379, float 0xBF6359B8C0000000) #9
%381 = tail call float @llvm.fmuladd.f32(float %345, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%382 = tail call float @llvm.fmuladd.f32(float %345, float %381, float 0x3FC02660E0000000) #9
%383 = tail call float @llvm.fmuladd.f32(float %345, float %382, float 0x3FB2635CE0000000) #9
%384 = tail call float @llvm.fmuladd.f32(float %345, float %383, float 0x3FE14AF0A0000000) #9
%385 = tail call float @llvm.fmuladd.f32(float %345, float %384, float 0x3FBB3E6620000000) #9
%386 = select i1 %342, float %380, float %373
%387 = select i1 %342, float %385, float %374
%388 = tail call float @llvm.fmuladd.f32(float %345, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%389 = tail call float @llvm.fmuladd.f32(float %345, float %388, float 0xBF9D2A51E0000000) #9
%390 = tail call float @llvm.fmuladd.f32(float %345, float %389, float 0xBFD4CD7D60000000) #9
%391 = tail call float @llvm.fmuladd.f32(float %345, float %390, float 0x3FC06EBA80000000) #9
%392 = tail call float @llvm.fmuladd.f32(float %345, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%393 = tail call float @llvm.fmuladd.f32(float %345, float %392, float 0x3F74D022C0000000) #9
%394 = tail call float @llvm.fmuladd.f32(float %345, float %393, float 0x3FB0A54C60000000) #9
%395 = tail call float @llvm.fmuladd.f32(float %345, float %394, float 0x3FD97779C0000000) #9
%396 = select i1 %344, float %391, float %386
%397 = select i1 %344, float %395, float %387
%398 = tail call float @llvm.fmuladd.f32(float %345, float %397, float 1.000000e+00) #9
%399 = fdiv float %396, %398, !fpmath !33
%400 = and i32 %336, 2147479552
%401 = bitcast i32 %400 to float
%402 = fsub float -0.000000e+00, %401
%403 = tail call float @llvm.fmuladd.f32(float %402, float %401, float -5.625000e-01) #9
%404 = fcmp olt float %403, 0.000000e+00
%405 = select i1 %404, float -5.000000e-01, float 5.000000e-01
%406 = tail call float @llvm.fmuladd.f32(float %403, float 0x3FF7154760000000, float %405) #9
%407 = fptosi float %406 to i32
%408 = sitofp i32 %407 to float
%409 = tail call float @llvm.fmuladd.f32(float %408, float 0xBFE62E3000000000, float %403) #9
%410 = fmul float %408, 0xBEE2FEFA20000000
%411 = fadd float %409, %410
%412 = fmul float %411, %411
%413 = tail call float @llvm.fmuladd.f32(float %412, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%414 = tail call float @llvm.fmuladd.f32(float %412, float %413, float 0x3F11566AA0000000) #9
%415 = tail call float @llvm.fmuladd.f32(float %412, float %414, float 0xBF66C16C20000000) #9
%416 = tail call float @llvm.fmuladd.f32(float %412, float %415, float 0x3FC5555560000000) #9
%417 = fsub float -0.000000e+00, %416
%418 = tail call float @llvm.fmuladd.f32(float %412, float %417, float %411) #9
%419 = fsub float -0.000000e+00, %410
%420 = fmul float %411, %418
%421 = fsub float 2.000000e+00, %418
%422 = fdiv float %420, %421, !fpmath !33
%423 = fsub float %419, %422
%424 = fsub float %423, %409
%425 = fsub float 1.000000e+00, %424
%426 = bitcast float %425 to i32
%427 = shl i32 %407, 23
%428 = add nsw i32 %426, %427
%429 = bitcast i32 %428 to float
%430 = fcmp olt float %403, 0xC055D589E0000000
%431 = select i1 %430, float 0.000000e+00, float %429
%432 = fcmp olt float %403, 0x40562E4300000000
%433 = select i1 %432, float %431, float 0x7FF0000000000000
%434 = fcmp uno float %403, 0.000000e+00
%435 = select i1 %434, float %403, float %433
%436 = fsub float %401, %338
%437 = fadd float %401, %338
%438 = tail call float @llvm.fmuladd.f32(float %436, float %437, float %399) #9
%439 = fcmp olt float %438, 0.000000e+00
%440 = select i1 %439, float -5.000000e-01, float 5.000000e-01
%441 = tail call float @llvm.fmuladd.f32(float %438, float 0x3FF7154760000000, float %440) #9
%442 = fptosi float %441 to i32
%443 = sitofp i32 %442 to float
%444 = tail call float @llvm.fmuladd.f32(float %443, float 0xBFE62E3000000000, float %438) #9
%445 = fmul float %443, 0xBEE2FEFA20000000
%446 = fadd float %444, %445
%447 = fmul float %446, %446
%448 = tail call float @llvm.fmuladd.f32(float %447, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%449 = tail call float @llvm.fmuladd.f32(float %447, float %448, float 0x3F11566AA0000000) #9
%450 = tail call float @llvm.fmuladd.f32(float %447, float %449, float 0xBF66C16C20000000) #9
%451 = tail call float @llvm.fmuladd.f32(float %447, float %450, float 0x3FC5555560000000) #9
%452 = fsub float -0.000000e+00, %451
%453 = tail call float @llvm.fmuladd.f32(float %447, float %452, float %446) #9
%454 = fsub float -0.000000e+00, %445
%455 = fmul float %446, %453
%456 = fsub float 2.000000e+00, %453
%457 = fdiv float %455, %456, !fpmath !33
%458 = fsub float %454, %457
%459 = fsub float %458, %444
%460 = fsub float 1.000000e+00, %459
%461 = bitcast float %460 to i32
%462 = shl i32 %442, 23
%463 = add nsw i32 %461, %462
%464 = bitcast i32 %463 to float
%465 = fcmp olt float %438, 0xC055D589E0000000
%466 = select i1 %465, float 0.000000e+00, float %464
%467 = fcmp olt float %438, 0x40562E4300000000
%468 = select i1 %467, float %466, float 0x7FF0000000000000
%469 = fcmp uno float %438, 0.000000e+00
%470 = select i1 %469, float %438, float %468
%471 = fmul float %435, %470
%472 = fdiv float %471, %338, !fpmath !33
%473 = fsub float 1.000000e+00, %472
%474 = fcmp olt float %338, 6.000000e+00
%475 = select i1 %474, float %473, float 1.000000e+00
%476 = fadd float %399, 0x3FEB0AC160000000
%477 = select i1 %342, float %476, float %475
%478 = and i32 %336, -2147483648
%479 = bitcast float %477 to i32
%480 = or i32 %479, %478
%481 = bitcast i32 %480 to float
%482 = tail call float @llvm.fmuladd.f32(float %mul215.1, float %399, float %mul215.1) #9
%483 = select i1 %344, float %482, float %481
%484 = fmul float %mul215.1, 0x3FF06EBA80000000
%485 = tail call float @llvm.fmuladd.f32(float %mul215.1, float 8.000000e+00, float %484) #9
%486 = fmul float %485, 1.250000e-01
%487 = fcmp olt float %338, 0x3E30000000000000
%488 = select i1 %487, float %486, float %483
%489 = fcmp uno float %mul215.1, 0.000000e+00
%490 = select i1 %489, float %mul215.1, float %488
%sub217.1 = fsub fast float %cond.1, %490
%491 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.1
%neg220.1 = fsub fast float -0.000000e+00, %491
%492 = tail call fast float @llvm.fmuladd.f32(float %div188.1, float %sub217.1, float %neg220.1)
%493 = tail call fast float @llvm.fmuladd.f32(float %mul206.1, float %492, float %E_el.5)
%splat.splatinsert.1 = insertelement <3 x float> undef, float %335, i32 0
%splat.splat.1 = shufflevector <3 x float> %splat.splatinsert.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.1 = fmul fast <3 x float> %splat.splat.1, %extractVec165.1
%extractVec233.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.1 = fsub fast <3 x float> %extractVec233.1, %mul225.1
%extractVec235.1 = shufflevector <3 x float> %sub234.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.1 = shufflevector <4 x float> %loadVec4243.1.3768, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.1 = fadd fast <3 x float> %mul225.1, %extractVec244.1
%extractVec246.1 = shufflevector <3 x float> %add245.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %494
; <label>:494: ; preds = %312, %303, %260
%loadVec4243.1.3760 = phi <4 x float> [ %extractVec246.1, %312 ], [ %loadVec4243.1.3768, %303 ], [ %loadVec4243.1.3768, %260 ]
%E_el.5.1 = phi float [ %493, %312 ], [ %E_el.5, %303 ], [ %E_el.5, %260 ]
%fcj_buf.sroa.0.1.1 = phi <4 x float> [ %extractVec235.1, %312 ], [ %fcj_buf.sroa.0.1, %303 ], [ %fcj_buf.sroa.0.1, %260 ]
%E_lj.3.1 = phi float [ %add205.1, %312 ], [ %E_lj.3, %303 ], [ %E_lj.3, %260 ]
%and144.2 = and i32 %57, 4
%tobool145.2 = icmp eq i32 %and144.2, 0
br i1 %tobool145.2, label %686, label %495
; <label>:495: ; preds = %494
%496 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.2, align 16, !tbaa !13
%497 = fsub fast <4 x float> %496, %64
%498 = extractelement <4 x float> %497, i32 0
%499 = extractelement <4 x float> %497, i32 1
%500 = fmul float %499, %499
%501 = tail call float @llvm.fmuladd.f32(float %498, float %498, float %500) #9
%502 = extractelement <4 x float> %497, i32 2
%503 = tail call float @llvm.fmuladd.f32(float %502, float %502, float %501) #9
%and167.2 = and i32 %58, 4
%tobool168.2 = icmp ne i32 %and167.2, 0
%cond.2 = select i1 %tobool168.2, float 1.000000e+00, float 0.000000e+00
%cmp172.2 = icmp eq i32 %add147.2, %63
%or.cond.2 = and i1 %cmp66, %cmp172.2
%not.or.cond.2 = xor i1 %or.cond.2, true
%cmp174..2 = or i1 %cmp174, %not.or.cond.2
%conv176.2 = uitofp i1 %cmp174..2 to float
%mul177.2 = fmul fast float %conv176.2, %nbparam_params.coerce.fca.9.extract
%cmp178.2 = fcmp fast olt float %503, %mul177.2
br i1 %cmp178.2, label %504, label %686
; <label>:504: ; preds = %495
%extractVec165.2 = shufflevector <4 x float> %497, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%505 = extractelement <4 x float> %496, i64 3
%506 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.2, align 8, !tbaa !13
%507 = extractelement <2 x float> %506, i64 0
%mul184.2 = fmul fast float %507, %67
%508 = extractelement <2 x float> %506, i64 1
%mul185.2 = fmul fast float %508, %68
%509 = fcmp ogt float %503, 0x3E99A2B5C0000000
%510 = select i1 %509, float %503, float 0x3E99A2B5C0000000
%511 = tail call float @llvm.sqrt.f32(float %510) #10
%div188.2 = fdiv fast float 1.000000e+00, %511, !fpmath !33
%mul189.2 = fmul fast float %div188.2, %div188.2
%512 = fmul fast float %mul189.2, %mul189.2
%mul191.2 = fmul fast float %512, %cond.2
%mul192.2 = fmul fast float %mul191.2, %mul189.2
%neg.2 = fsub fast float -0.000000e+00, %mul184.2
%513 = tail call fast float @llvm.fmuladd.f32(float %mul185.2, float %mul192.2, float %neg.2)
%mul194.2 = fmul fast float %mul192.2, %mul189.2
%mul195.2 = fmul fast float %mul194.2, %513
%514 = tail call fast float @llvm.fmuladd.f32(float %mul192.2, float %mul192.2, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.2 = fmul fast float %mul185.2, %514
%add200.2 = fadd fast float %mul192.2, %nbparam_params.coerce.fca.13.2.extract
%mul202.2 = fmul fast float %add200.2, 0xBFC5555560000000
%neg203.2 = fmul fast float %mul202.2, %mul184.2
%515 = tail call fast float @llvm.fmuladd.f32(float %mul197.2, float 0x3FB5555540000000, float %neg203.2)
%mul204.2 = fmul fast float %515, %cond.2
%add205.2 = fadd fast float %mul204.2, %E_lj.3.1
%mul206.2 = fmul fast float %505, %65
%mul207.2 = fmul fast float %mul189.2, %cond.2
%mul209.2 = fmul fast float %510, %mul
%mul.i.2 = fmul fast float %mul209.2, %mul209.2
%516 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%517 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%518 = tail call fast float @llvm.fmuladd.f32(float %516, float %mul.i.2, float 1.000000e+00) #9
%519 = tail call fast float @llvm.fmuladd.f32(float %517, float %mul209.2, float %518) #9
%div.i.2 = fdiv fast float 1.000000e+00, %519, !fpmath !33
%520 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%521 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%522 = tail call fast float @llvm.fmuladd.f32(float %520, float %mul.i.2, float 0xBF93BDB200000000) #9
%523 = tail call fast float @llvm.fmuladd.f32(float %521, float %mul.i.2, float 0x3FB1D5E760000000) #9
%524 = tail call fast float @llvm.fmuladd.f32(float %522, float %mul.i.2, float 0xBFE81272E0000000) #9
%525 = tail call fast float @llvm.fmuladd.f32(float %523, float %mul209.2, float %524) #9
%mul7.2 = fmul fast float %mul11.i, %div.i.2
%mul211.2 = fmul fast float %mul7.2, %525
%526 = tail call fast float @llvm.fmuladd.f32(float %mul207.2, float %div188.2, float %mul211.2)
%527 = tail call fast float @llvm.fmuladd.f32(float %mul206.2, float %526, float %mul195.2)
%mul214.2 = fmul fast float %510, %nbparam_params.coerce.fca.5.extract
%mul215.2 = fmul fast float %mul214.2, %div188.2
%528 = bitcast float %mul215.2 to i32
%529 = and i32 %528, 2147483647
%530 = bitcast i32 %529 to float
%531 = fmul float %530, %530
%532 = fdiv float 1.000000e+00, %531, !fpmath !33
%533 = fadd float %530, -1.000000e+00
%534 = fcmp olt float %530, 1.250000e+00
%535 = select i1 %534, float %533, float %532
%536 = fcmp olt float %530, 8.437500e-01
%537 = select i1 %536, float %531, float %535
%538 = tail call float @llvm.fmuladd.f32(float %537, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%539 = tail call float @llvm.fmuladd.f32(float %537, float %538, float 0xC083EC8820000000) #9
%540 = tail call float @llvm.fmuladd.f32(float %537, float %539, float 0xC064145D40000000) #9
%541 = tail call float @llvm.fmuladd.f32(float %537, float %540, float 0xC031C20960000000) #9
%542 = tail call float @llvm.fmuladd.f32(float %537, float %541, float 0xBFE993BA80000000) #9
%543 = tail call float @llvm.fmuladd.f32(float %537, float %542, float 0xBF84341240000000) #9
%544 = tail call float @llvm.fmuladd.f32(float %537, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%545 = tail call float @llvm.fmuladd.f32(float %537, float %544, float 0x40A3F219C0000000) #9
%546 = tail call float @llvm.fmuladd.f32(float %537, float %545, float 0x40A8FFB760000000) #9
%547 = tail call float @llvm.fmuladd.f32(float %537, float %546, float 0x409802EB20000000) #9
%548 = tail call float @llvm.fmuladd.f32(float %537, float %547, float 0x40745CAE20000000) #9
%549 = tail call float @llvm.fmuladd.f32(float %537, float %548, float 0x403E568B20000000) #9
%550 = tail call float @llvm.fmuladd.f32(float %537, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%551 = tail call float @llvm.fmuladd.f32(float %537, float %550, float 0xC067135CE0000000) #9
%552 = tail call float @llvm.fmuladd.f32(float %537, float %551, float 0xC0644CB180000000) #9
%553 = tail call float @llvm.fmuladd.f32(float %537, float %552, float 0xC04F300AE0000000) #9
%554 = tail call float @llvm.fmuladd.f32(float %537, float %553, float 0xC0251E0440000000) #9
%555 = tail call float @llvm.fmuladd.f32(float %537, float %554, float 0xBFE63416E0000000) #9
%556 = tail call float @llvm.fmuladd.f32(float %537, float %555, float 0xBF84341260000000) #9
%557 = tail call float @llvm.fmuladd.f32(float %537, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%558 = tail call float @llvm.fmuladd.f32(float %537, float %557, float 0x405B28A3E0000000) #9
%559 = tail call float @llvm.fmuladd.f32(float %537, float %558, float 0x407AD02160000000) #9
%560 = tail call float @llvm.fmuladd.f32(float %537, float %559, float 0x40842B1920000000) #9
%561 = tail call float @llvm.fmuladd.f32(float %537, float %560, float 0x407B290DE0000000) #9
%562 = tail call float @llvm.fmuladd.f32(float %537, float %561, float 0x4061350C60000000) #9
%563 = tail call float @llvm.fmuladd.f32(float %537, float %562, float 0x4033A6B9C0000000) #9
%564 = fcmp olt float %530, 0x4006DB6DC0000000
%565 = select i1 %564, float %556, float %543
%566 = select i1 %564, float %563, float %549
%567 = tail call float @llvm.fmuladd.f32(float %537, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%568 = tail call float @llvm.fmuladd.f32(float %537, float %567, float 0xBFBC639840000000) #9
%569 = tail call float @llvm.fmuladd.f32(float %537, float %568, float 0x3FD45FCA80000000) #9
%570 = tail call float @llvm.fmuladd.f32(float %537, float %569, float 0xBFD7D24100000000) #9
%571 = tail call float @llvm.fmuladd.f32(float %537, float %570, float 0x3FDA8D00A0000000) #9
%572 = tail call float @llvm.fmuladd.f32(float %537, float %571, float 0xBF6359B8C0000000) #9
%573 = tail call float @llvm.fmuladd.f32(float %537, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%574 = tail call float @llvm.fmuladd.f32(float %537, float %573, float 0x3FC02660E0000000) #9
%575 = tail call float @llvm.fmuladd.f32(float %537, float %574, float 0x3FB2635CE0000000) #9
%576 = tail call float @llvm.fmuladd.f32(float %537, float %575, float 0x3FE14AF0A0000000) #9
%577 = tail call float @llvm.fmuladd.f32(float %537, float %576, float 0x3FBB3E6620000000) #9
%578 = select i1 %534, float %572, float %565
%579 = select i1 %534, float %577, float %566
%580 = tail call float @llvm.fmuladd.f32(float %537, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%581 = tail call float @llvm.fmuladd.f32(float %537, float %580, float 0xBF9D2A51E0000000) #9
%582 = tail call float @llvm.fmuladd.f32(float %537, float %581, float 0xBFD4CD7D60000000) #9
%583 = tail call float @llvm.fmuladd.f32(float %537, float %582, float 0x3FC06EBA80000000) #9
%584 = tail call float @llvm.fmuladd.f32(float %537, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%585 = tail call float @llvm.fmuladd.f32(float %537, float %584, float 0x3F74D022C0000000) #9
%586 = tail call float @llvm.fmuladd.f32(float %537, float %585, float 0x3FB0A54C60000000) #9
%587 = tail call float @llvm.fmuladd.f32(float %537, float %586, float 0x3FD97779C0000000) #9
%588 = select i1 %536, float %583, float %578
%589 = select i1 %536, float %587, float %579
%590 = tail call float @llvm.fmuladd.f32(float %537, float %589, float 1.000000e+00) #9
%591 = fdiv float %588, %590, !fpmath !33
%592 = and i32 %528, 2147479552
%593 = bitcast i32 %592 to float
%594 = fsub float -0.000000e+00, %593
%595 = tail call float @llvm.fmuladd.f32(float %594, float %593, float -5.625000e-01) #9
%596 = fcmp olt float %595, 0.000000e+00
%597 = select i1 %596, float -5.000000e-01, float 5.000000e-01
%598 = tail call float @llvm.fmuladd.f32(float %595, float 0x3FF7154760000000, float %597) #9
%599 = fptosi float %598 to i32
%600 = sitofp i32 %599 to float
%601 = tail call float @llvm.fmuladd.f32(float %600, float 0xBFE62E3000000000, float %595) #9
%602 = fmul float %600, 0xBEE2FEFA20000000
%603 = fadd float %601, %602
%604 = fmul float %603, %603
%605 = tail call float @llvm.fmuladd.f32(float %604, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%606 = tail call float @llvm.fmuladd.f32(float %604, float %605, float 0x3F11566AA0000000) #9
%607 = tail call float @llvm.fmuladd.f32(float %604, float %606, float 0xBF66C16C20000000) #9
%608 = tail call float @llvm.fmuladd.f32(float %604, float %607, float 0x3FC5555560000000) #9
%609 = fsub float -0.000000e+00, %608
%610 = tail call float @llvm.fmuladd.f32(float %604, float %609, float %603) #9
%611 = fsub float -0.000000e+00, %602
%612 = fmul float %603, %610
%613 = fsub float 2.000000e+00, %610
%614 = fdiv float %612, %613, !fpmath !33
%615 = fsub float %611, %614
%616 = fsub float %615, %601
%617 = fsub float 1.000000e+00, %616
%618 = bitcast float %617 to i32
%619 = shl i32 %599, 23
%620 = add nsw i32 %618, %619
%621 = bitcast i32 %620 to float
%622 = fcmp olt float %595, 0xC055D589E0000000
%623 = select i1 %622, float 0.000000e+00, float %621
%624 = fcmp olt float %595, 0x40562E4300000000
%625 = select i1 %624, float %623, float 0x7FF0000000000000
%626 = fcmp uno float %595, 0.000000e+00
%627 = select i1 %626, float %595, float %625
%628 = fsub float %593, %530
%629 = fadd float %593, %530
%630 = tail call float @llvm.fmuladd.f32(float %628, float %629, float %591) #9
%631 = fcmp olt float %630, 0.000000e+00
%632 = select i1 %631, float -5.000000e-01, float 5.000000e-01
%633 = tail call float @llvm.fmuladd.f32(float %630, float 0x3FF7154760000000, float %632) #9
%634 = fptosi float %633 to i32
%635 = sitofp i32 %634 to float
%636 = tail call float @llvm.fmuladd.f32(float %635, float 0xBFE62E3000000000, float %630) #9
%637 = fmul float %635, 0xBEE2FEFA20000000
%638 = fadd float %636, %637
%639 = fmul float %638, %638
%640 = tail call float @llvm.fmuladd.f32(float %639, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%641 = tail call float @llvm.fmuladd.f32(float %639, float %640, float 0x3F11566AA0000000) #9
%642 = tail call float @llvm.fmuladd.f32(float %639, float %641, float 0xBF66C16C20000000) #9
%643 = tail call float @llvm.fmuladd.f32(float %639, float %642, float 0x3FC5555560000000) #9
%644 = fsub float -0.000000e+00, %643
%645 = tail call float @llvm.fmuladd.f32(float %639, float %644, float %638) #9
%646 = fsub float -0.000000e+00, %637
%647 = fmul float %638, %645
%648 = fsub float 2.000000e+00, %645
%649 = fdiv float %647, %648, !fpmath !33
%650 = fsub float %646, %649
%651 = fsub float %650, %636
%652 = fsub float 1.000000e+00, %651
%653 = bitcast float %652 to i32
%654 = shl i32 %634, 23
%655 = add nsw i32 %653, %654
%656 = bitcast i32 %655 to float
%657 = fcmp olt float %630, 0xC055D589E0000000
%658 = select i1 %657, float 0.000000e+00, float %656
%659 = fcmp olt float %630, 0x40562E4300000000
%660 = select i1 %659, float %658, float 0x7FF0000000000000
%661 = fcmp uno float %630, 0.000000e+00
%662 = select i1 %661, float %630, float %660
%663 = fmul float %627, %662
%664 = fdiv float %663, %530, !fpmath !33
%665 = fsub float 1.000000e+00, %664
%666 = fcmp olt float %530, 6.000000e+00
%667 = select i1 %666, float %665, float 1.000000e+00
%668 = fadd float %591, 0x3FEB0AC160000000
%669 = select i1 %534, float %668, float %667
%670 = and i32 %528, -2147483648
%671 = bitcast float %669 to i32
%672 = or i32 %671, %670
%673 = bitcast i32 %672 to float
%674 = tail call float @llvm.fmuladd.f32(float %mul215.2, float %591, float %mul215.2) #9
%675 = select i1 %536, float %674, float %673
%676 = fmul float %mul215.2, 0x3FF06EBA80000000
%677 = tail call float @llvm.fmuladd.f32(float %mul215.2, float 8.000000e+00, float %676) #9
%678 = fmul float %677, 1.250000e-01
%679 = fcmp olt float %530, 0x3E30000000000000
%680 = select i1 %679, float %678, float %675
%681 = fcmp uno float %mul215.2, 0.000000e+00
%682 = select i1 %681, float %mul215.2, float %680
%sub217.2 = fsub fast float %cond.2, %682
%683 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.2
%neg220.2 = fsub fast float -0.000000e+00, %683
%684 = tail call fast float @llvm.fmuladd.f32(float %div188.2, float %sub217.2, float %neg220.2)
%685 = tail call fast float @llvm.fmuladd.f32(float %mul206.2, float %684, float %E_el.5.1)
%splat.splatinsert.2 = insertelement <3 x float> undef, float %527, i32 0
%splat.splat.2 = shufflevector <3 x float> %splat.splatinsert.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.2 = fmul fast <3 x float> %splat.splat.2, %extractVec165.2
%extractVec233.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.2 = fsub fast <3 x float> %extractVec233.2, %mul225.2
%extractVec235.2 = shufflevector <3 x float> %sub234.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.2 = shufflevector <4 x float> %loadVec4243.2.3777, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.2 = fadd fast <3 x float> %mul225.2, %extractVec244.2
%extractVec246.2 = shufflevector <3 x float> %add245.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %686
; <label>:686: ; preds = %504, %495, %494
%loadVec4243.2.3769 = phi <4 x float> [ %extractVec246.2, %504 ], [ %loadVec4243.2.3777, %495 ], [ %loadVec4243.2.3777, %494 ]
%E_el.5.2 = phi float [ %685, %504 ], [ %E_el.5.1, %495 ], [ %E_el.5.1, %494 ]
%fcj_buf.sroa.0.1.2 = phi <4 x float> [ %extractVec235.2, %504 ], [ %fcj_buf.sroa.0.1.1, %495 ], [ %fcj_buf.sroa.0.1.1, %494 ]
%E_lj.3.2 = phi float [ %add205.2, %504 ], [ %E_lj.3.1, %495 ], [ %E_lj.3.1, %494 ]
%and144.3 = and i32 %57, 8
%tobool145.3 = icmp eq i32 %and144.3, 0
br i1 %tobool145.3, label %878, label %687
; <label>:687: ; preds = %686
%688 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.3, align 16, !tbaa !13
%689 = fsub fast <4 x float> %688, %64
%690 = extractelement <4 x float> %689, i32 0
%691 = extractelement <4 x float> %689, i32 1
%692 = fmul float %691, %691
%693 = tail call float @llvm.fmuladd.f32(float %690, float %690, float %692) #9
%694 = extractelement <4 x float> %689, i32 2
%695 = tail call float @llvm.fmuladd.f32(float %694, float %694, float %693) #9
%and167.3 = and i32 %58, 8
%tobool168.3 = icmp ne i32 %and167.3, 0
%cond.3 = select i1 %tobool168.3, float 1.000000e+00, float 0.000000e+00
%cmp172.3 = icmp eq i32 %add147.3, %63
%or.cond.3 = and i1 %cmp66, %cmp172.3
%not.or.cond.3 = xor i1 %or.cond.3, true
%cmp174..3 = or i1 %cmp174, %not.or.cond.3
%conv176.3 = uitofp i1 %cmp174..3 to float
%mul177.3 = fmul fast float %conv176.3, %nbparam_params.coerce.fca.9.extract
%cmp178.3 = fcmp fast olt float %695, %mul177.3
br i1 %cmp178.3, label %696, label %878
; <label>:696: ; preds = %687
%extractVec165.3 = shufflevector <4 x float> %689, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%697 = extractelement <4 x float> %688, i64 3
%698 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.3, align 8, !tbaa !13
%699 = extractelement <2 x float> %698, i64 0
%mul184.3 = fmul fast float %699, %67
%700 = extractelement <2 x float> %698, i64 1
%mul185.3 = fmul fast float %700, %68
%701 = fcmp ogt float %695, 0x3E99A2B5C0000000
%702 = select i1 %701, float %695, float 0x3E99A2B5C0000000
%703 = tail call float @llvm.sqrt.f32(float %702) #10
%div188.3 = fdiv fast float 1.000000e+00, %703, !fpmath !33
%mul189.3 = fmul fast float %div188.3, %div188.3
%704 = fmul fast float %mul189.3, %mul189.3
%mul191.3 = fmul fast float %704, %cond.3
%mul192.3 = fmul fast float %mul191.3, %mul189.3
%neg.3 = fsub fast float -0.000000e+00, %mul184.3
%705 = tail call fast float @llvm.fmuladd.f32(float %mul185.3, float %mul192.3, float %neg.3)
%mul194.3 = fmul fast float %mul192.3, %mul189.3
%mul195.3 = fmul fast float %mul194.3, %705
%706 = tail call fast float @llvm.fmuladd.f32(float %mul192.3, float %mul192.3, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.3 = fmul fast float %mul185.3, %706
%add200.3 = fadd fast float %mul192.3, %nbparam_params.coerce.fca.13.2.extract
%mul202.3 = fmul fast float %add200.3, 0xBFC5555560000000
%neg203.3 = fmul fast float %mul202.3, %mul184.3
%707 = tail call fast float @llvm.fmuladd.f32(float %mul197.3, float 0x3FB5555540000000, float %neg203.3)
%mul204.3 = fmul fast float %707, %cond.3
%add205.3 = fadd fast float %mul204.3, %E_lj.3.2
%mul206.3 = fmul fast float %697, %65
%mul207.3 = fmul fast float %mul189.3, %cond.3
%mul209.3 = fmul fast float %702, %mul
%mul.i.3 = fmul fast float %mul209.3, %mul209.3
%708 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%709 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%710 = tail call fast float @llvm.fmuladd.f32(float %708, float %mul.i.3, float 1.000000e+00) #9
%711 = tail call fast float @llvm.fmuladd.f32(float %709, float %mul209.3, float %710) #9
%div.i.3 = fdiv fast float 1.000000e+00, %711, !fpmath !33
%712 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%713 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%714 = tail call fast float @llvm.fmuladd.f32(float %712, float %mul.i.3, float 0xBF93BDB200000000) #9
%715 = tail call fast float @llvm.fmuladd.f32(float %713, float %mul.i.3, float 0x3FB1D5E760000000) #9
%716 = tail call fast float @llvm.fmuladd.f32(float %714, float %mul.i.3, float 0xBFE81272E0000000) #9
%717 = tail call fast float @llvm.fmuladd.f32(float %715, float %mul209.3, float %716) #9
%mul7.3 = fmul fast float %mul11.i, %div.i.3
%mul211.3 = fmul fast float %mul7.3, %717
%718 = tail call fast float @llvm.fmuladd.f32(float %mul207.3, float %div188.3, float %mul211.3)
%719 = tail call fast float @llvm.fmuladd.f32(float %mul206.3, float %718, float %mul195.3)
%mul214.3 = fmul fast float %702, %nbparam_params.coerce.fca.5.extract
%mul215.3 = fmul fast float %mul214.3, %div188.3
%720 = bitcast float %mul215.3 to i32
%721 = and i32 %720, 2147483647
%722 = bitcast i32 %721 to float
%723 = fmul float %722, %722
%724 = fdiv float 1.000000e+00, %723, !fpmath !33
%725 = fadd float %722, -1.000000e+00
%726 = fcmp olt float %722, 1.250000e+00
%727 = select i1 %726, float %725, float %724
%728 = fcmp olt float %722, 8.437500e-01
%729 = select i1 %728, float %723, float %727
%730 = tail call float @llvm.fmuladd.f32(float %729, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%731 = tail call float @llvm.fmuladd.f32(float %729, float %730, float 0xC083EC8820000000) #9
%732 = tail call float @llvm.fmuladd.f32(float %729, float %731, float 0xC064145D40000000) #9
%733 = tail call float @llvm.fmuladd.f32(float %729, float %732, float 0xC031C20960000000) #9
%734 = tail call float @llvm.fmuladd.f32(float %729, float %733, float 0xBFE993BA80000000) #9
%735 = tail call float @llvm.fmuladd.f32(float %729, float %734, float 0xBF84341240000000) #9
%736 = tail call float @llvm.fmuladd.f32(float %729, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%737 = tail call float @llvm.fmuladd.f32(float %729, float %736, float 0x40A3F219C0000000) #9
%738 = tail call float @llvm.fmuladd.f32(float %729, float %737, float 0x40A8FFB760000000) #9
%739 = tail call float @llvm.fmuladd.f32(float %729, float %738, float 0x409802EB20000000) #9
%740 = tail call float @llvm.fmuladd.f32(float %729, float %739, float 0x40745CAE20000000) #9
%741 = tail call float @llvm.fmuladd.f32(float %729, float %740, float 0x403E568B20000000) #9
%742 = tail call float @llvm.fmuladd.f32(float %729, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%743 = tail call float @llvm.fmuladd.f32(float %729, float %742, float 0xC067135CE0000000) #9
%744 = tail call float @llvm.fmuladd.f32(float %729, float %743, float 0xC0644CB180000000) #9
%745 = tail call float @llvm.fmuladd.f32(float %729, float %744, float 0xC04F300AE0000000) #9
%746 = tail call float @llvm.fmuladd.f32(float %729, float %745, float 0xC0251E0440000000) #9
%747 = tail call float @llvm.fmuladd.f32(float %729, float %746, float 0xBFE63416E0000000) #9
%748 = tail call float @llvm.fmuladd.f32(float %729, float %747, float 0xBF84341260000000) #9
%749 = tail call float @llvm.fmuladd.f32(float %729, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%750 = tail call float @llvm.fmuladd.f32(float %729, float %749, float 0x405B28A3E0000000) #9
%751 = tail call float @llvm.fmuladd.f32(float %729, float %750, float 0x407AD02160000000) #9
%752 = tail call float @llvm.fmuladd.f32(float %729, float %751, float 0x40842B1920000000) #9
%753 = tail call float @llvm.fmuladd.f32(float %729, float %752, float 0x407B290DE0000000) #9
%754 = tail call float @llvm.fmuladd.f32(float %729, float %753, float 0x4061350C60000000) #9
%755 = tail call float @llvm.fmuladd.f32(float %729, float %754, float 0x4033A6B9C0000000) #9
%756 = fcmp olt float %722, 0x4006DB6DC0000000
%757 = select i1 %756, float %748, float %735
%758 = select i1 %756, float %755, float %741
%759 = tail call float @llvm.fmuladd.f32(float %729, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%760 = tail call float @llvm.fmuladd.f32(float %729, float %759, float 0xBFBC639840000000) #9
%761 = tail call float @llvm.fmuladd.f32(float %729, float %760, float 0x3FD45FCA80000000) #9
%762 = tail call float @llvm.fmuladd.f32(float %729, float %761, float 0xBFD7D24100000000) #9
%763 = tail call float @llvm.fmuladd.f32(float %729, float %762, float 0x3FDA8D00A0000000) #9
%764 = tail call float @llvm.fmuladd.f32(float %729, float %763, float 0xBF6359B8C0000000) #9
%765 = tail call float @llvm.fmuladd.f32(float %729, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%766 = tail call float @llvm.fmuladd.f32(float %729, float %765, float 0x3FC02660E0000000) #9
%767 = tail call float @llvm.fmuladd.f32(float %729, float %766, float 0x3FB2635CE0000000) #9
%768 = tail call float @llvm.fmuladd.f32(float %729, float %767, float 0x3FE14AF0A0000000) #9
%769 = tail call float @llvm.fmuladd.f32(float %729, float %768, float 0x3FBB3E6620000000) #9
%770 = select i1 %726, float %764, float %757
%771 = select i1 %726, float %769, float %758
%772 = tail call float @llvm.fmuladd.f32(float %729, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%773 = tail call float @llvm.fmuladd.f32(float %729, float %772, float 0xBF9D2A51E0000000) #9
%774 = tail call float @llvm.fmuladd.f32(float %729, float %773, float 0xBFD4CD7D60000000) #9
%775 = tail call float @llvm.fmuladd.f32(float %729, float %774, float 0x3FC06EBA80000000) #9
%776 = tail call float @llvm.fmuladd.f32(float %729, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%777 = tail call float @llvm.fmuladd.f32(float %729, float %776, float 0x3F74D022C0000000) #9
%778 = tail call float @llvm.fmuladd.f32(float %729, float %777, float 0x3FB0A54C60000000) #9
%779 = tail call float @llvm.fmuladd.f32(float %729, float %778, float 0x3FD97779C0000000) #9
%780 = select i1 %728, float %775, float %770
%781 = select i1 %728, float %779, float %771
%782 = tail call float @llvm.fmuladd.f32(float %729, float %781, float 1.000000e+00) #9
%783 = fdiv float %780, %782, !fpmath !33
%784 = and i32 %720, 2147479552
%785 = bitcast i32 %784 to float
%786 = fsub float -0.000000e+00, %785
%787 = tail call float @llvm.fmuladd.f32(float %786, float %785, float -5.625000e-01) #9
%788 = fcmp olt float %787, 0.000000e+00
%789 = select i1 %788, float -5.000000e-01, float 5.000000e-01
%790 = tail call float @llvm.fmuladd.f32(float %787, float 0x3FF7154760000000, float %789) #9
%791 = fptosi float %790 to i32
%792 = sitofp i32 %791 to float
%793 = tail call float @llvm.fmuladd.f32(float %792, float 0xBFE62E3000000000, float %787) #9
%794 = fmul float %792, 0xBEE2FEFA20000000
%795 = fadd float %793, %794
%796 = fmul float %795, %795
%797 = tail call float @llvm.fmuladd.f32(float %796, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%798 = tail call float @llvm.fmuladd.f32(float %796, float %797, float 0x3F11566AA0000000) #9
%799 = tail call float @llvm.fmuladd.f32(float %796, float %798, float 0xBF66C16C20000000) #9
%800 = tail call float @llvm.fmuladd.f32(float %796, float %799, float 0x3FC5555560000000) #9
%801 = fsub float -0.000000e+00, %800
%802 = tail call float @llvm.fmuladd.f32(float %796, float %801, float %795) #9
%803 = fsub float -0.000000e+00, %794
%804 = fmul float %795, %802
%805 = fsub float 2.000000e+00, %802
%806 = fdiv float %804, %805, !fpmath !33
%807 = fsub float %803, %806
%808 = fsub float %807, %793
%809 = fsub float 1.000000e+00, %808
%810 = bitcast float %809 to i32
%811 = shl i32 %791, 23
%812 = add nsw i32 %810, %811
%813 = bitcast i32 %812 to float
%814 = fcmp olt float %787, 0xC055D589E0000000
%815 = select i1 %814, float 0.000000e+00, float %813
%816 = fcmp olt float %787, 0x40562E4300000000
%817 = select i1 %816, float %815, float 0x7FF0000000000000
%818 = fcmp uno float %787, 0.000000e+00
%819 = select i1 %818, float %787, float %817
%820 = fsub float %785, %722
%821 = fadd float %785, %722
%822 = tail call float @llvm.fmuladd.f32(float %820, float %821, float %783) #9
%823 = fcmp olt float %822, 0.000000e+00
%824 = select i1 %823, float -5.000000e-01, float 5.000000e-01
%825 = tail call float @llvm.fmuladd.f32(float %822, float 0x3FF7154760000000, float %824) #9
%826 = fptosi float %825 to i32
%827 = sitofp i32 %826 to float
%828 = tail call float @llvm.fmuladd.f32(float %827, float 0xBFE62E3000000000, float %822) #9
%829 = fmul float %827, 0xBEE2FEFA20000000
%830 = fadd float %828, %829
%831 = fmul float %830, %830
%832 = tail call float @llvm.fmuladd.f32(float %831, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%833 = tail call float @llvm.fmuladd.f32(float %831, float %832, float 0x3F11566AA0000000) #9
%834 = tail call float @llvm.fmuladd.f32(float %831, float %833, float 0xBF66C16C20000000) #9
%835 = tail call float @llvm.fmuladd.f32(float %831, float %834, float 0x3FC5555560000000) #9
%836 = fsub float -0.000000e+00, %835
%837 = tail call float @llvm.fmuladd.f32(float %831, float %836, float %830) #9
%838 = fsub float -0.000000e+00, %829
%839 = fmul float %830, %837
%840 = fsub float 2.000000e+00, %837
%841 = fdiv float %839, %840, !fpmath !33
%842 = fsub float %838, %841
%843 = fsub float %842, %828
%844 = fsub float 1.000000e+00, %843
%845 = bitcast float %844 to i32
%846 = shl i32 %826, 23
%847 = add nsw i32 %845, %846
%848 = bitcast i32 %847 to float
%849 = fcmp olt float %822, 0xC055D589E0000000
%850 = select i1 %849, float 0.000000e+00, float %848
%851 = fcmp olt float %822, 0x40562E4300000000
%852 = select i1 %851, float %850, float 0x7FF0000000000000
%853 = fcmp uno float %822, 0.000000e+00
%854 = select i1 %853, float %822, float %852
%855 = fmul float %819, %854
%856 = fdiv float %855, %722, !fpmath !33
%857 = fsub float 1.000000e+00, %856
%858 = fcmp olt float %722, 6.000000e+00
%859 = select i1 %858, float %857, float 1.000000e+00
%860 = fadd float %783, 0x3FEB0AC160000000
%861 = select i1 %726, float %860, float %859
%862 = and i32 %720, -2147483648
%863 = bitcast float %861 to i32
%864 = or i32 %863, %862
%865 = bitcast i32 %864 to float
%866 = tail call float @llvm.fmuladd.f32(float %mul215.3, float %783, float %mul215.3) #9
%867 = select i1 %728, float %866, float %865
%868 = fmul float %mul215.3, 0x3FF06EBA80000000
%869 = tail call float @llvm.fmuladd.f32(float %mul215.3, float 8.000000e+00, float %868) #9
%870 = fmul float %869, 1.250000e-01
%871 = fcmp olt float %722, 0x3E30000000000000
%872 = select i1 %871, float %870, float %867
%873 = fcmp uno float %mul215.3, 0.000000e+00
%874 = select i1 %873, float %mul215.3, float %872
%sub217.3 = fsub fast float %cond.3, %874
%875 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.3
%neg220.3 = fsub fast float -0.000000e+00, %875
%876 = tail call fast float @llvm.fmuladd.f32(float %div188.3, float %sub217.3, float %neg220.3)
%877 = tail call fast float @llvm.fmuladd.f32(float %mul206.3, float %876, float %E_el.5.2)
%splat.splatinsert.3 = insertelement <3 x float> undef, float %719, i32 0
%splat.splat.3 = shufflevector <3 x float> %splat.splatinsert.3, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.3 = fmul fast <3 x float> %splat.splat.3, %extractVec165.3
%extractVec233.3 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.3 = fsub fast <3 x float> %extractVec233.3, %mul225.3
%extractVec235.3 = shufflevector <3 x float> %sub234.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.3 = shufflevector <4 x float> %loadVec4243.3.3786, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.3 = fadd fast <3 x float> %mul225.3, %extractVec244.3
%extractVec246.3 = shufflevector <3 x float> %add245.3, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %878
; <label>:878: ; preds = %696, %687, %686
%loadVec4243.3.3778 = phi <4 x float> [ %extractVec246.3, %696 ], [ %loadVec4243.3.3786, %687 ], [ %loadVec4243.3.3786, %686 ]
%E_el.5.3 = phi float [ %877, %696 ], [ %E_el.5.2, %687 ], [ %E_el.5.2, %686 ]
%fcj_buf.sroa.0.1.3 = phi <4 x float> [ %extractVec235.3, %696 ], [ %fcj_buf.sroa.0.1.2, %687 ], [ %fcj_buf.sroa.0.1.2, %686 ]
%E_lj.3.3 = phi float [ %add205.3, %696 ], [ %E_lj.3.2, %687 ], [ %E_lj.3.2, %686 ]
%and144.4 = and i32 %57, 16
%tobool145.4 = icmp eq i32 %and144.4, 0
br i1 %tobool145.4, label %1070, label %879
; <label>:879: ; preds = %878
%880 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.4, align 16, !tbaa !13
%881 = fsub fast <4 x float> %880, %64
%882 = extractelement <4 x float> %881, i32 0
%883 = extractelement <4 x float> %881, i32 1
%884 = fmul float %883, %883
%885 = tail call float @llvm.fmuladd.f32(float %882, float %882, float %884) #9
%886 = extractelement <4 x float> %881, i32 2
%887 = tail call float @llvm.fmuladd.f32(float %886, float %886, float %885) #9
%and167.4 = and i32 %58, 16
%tobool168.4 = icmp ne i32 %and167.4, 0
%cond.4 = select i1 %tobool168.4, float 1.000000e+00, float 0.000000e+00
%cmp172.4 = icmp eq i32 %add147.4, %63
%or.cond.4 = and i1 %cmp66, %cmp172.4
%not.or.cond.4 = xor i1 %or.cond.4, true
%cmp174..4 = or i1 %cmp174, %not.or.cond.4
%conv176.4 = uitofp i1 %cmp174..4 to float
%mul177.4 = fmul fast float %conv176.4, %nbparam_params.coerce.fca.9.extract
%cmp178.4 = fcmp fast olt float %887, %mul177.4
br i1 %cmp178.4, label %888, label %1070
; <label>:888: ; preds = %879
%extractVec165.4 = shufflevector <4 x float> %881, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%889 = extractelement <4 x float> %880, i64 3
%890 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.4, align 8, !tbaa !13
%891 = extractelement <2 x float> %890, i64 0
%mul184.4 = fmul fast float %891, %67
%892 = extractelement <2 x float> %890, i64 1
%mul185.4 = fmul fast float %892, %68
%893 = fcmp ogt float %887, 0x3E99A2B5C0000000
%894 = select i1 %893, float %887, float 0x3E99A2B5C0000000
%895 = tail call float @llvm.sqrt.f32(float %894) #10
%div188.4 = fdiv fast float 1.000000e+00, %895, !fpmath !33
%mul189.4 = fmul fast float %div188.4, %div188.4
%896 = fmul fast float %mul189.4, %mul189.4
%mul191.4 = fmul fast float %896, %cond.4
%mul192.4 = fmul fast float %mul191.4, %mul189.4
%neg.4 = fsub fast float -0.000000e+00, %mul184.4
%897 = tail call fast float @llvm.fmuladd.f32(float %mul185.4, float %mul192.4, float %neg.4)
%mul194.4 = fmul fast float %mul192.4, %mul189.4
%mul195.4 = fmul fast float %mul194.4, %897
%898 = tail call fast float @llvm.fmuladd.f32(float %mul192.4, float %mul192.4, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.4 = fmul fast float %mul185.4, %898
%add200.4 = fadd fast float %mul192.4, %nbparam_params.coerce.fca.13.2.extract
%mul202.4 = fmul fast float %add200.4, 0xBFC5555560000000
%neg203.4 = fmul fast float %mul202.4, %mul184.4
%899 = tail call fast float @llvm.fmuladd.f32(float %mul197.4, float 0x3FB5555540000000, float %neg203.4)
%mul204.4 = fmul fast float %899, %cond.4
%add205.4 = fadd fast float %mul204.4, %E_lj.3.3
%mul206.4 = fmul fast float %889, %65
%mul207.4 = fmul fast float %mul189.4, %cond.4
%mul209.4 = fmul fast float %894, %mul
%mul.i.4 = fmul fast float %mul209.4, %mul209.4
%900 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%901 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%902 = tail call fast float @llvm.fmuladd.f32(float %900, float %mul.i.4, float 1.000000e+00) #9
%903 = tail call fast float @llvm.fmuladd.f32(float %901, float %mul209.4, float %902) #9
%div.i.4 = fdiv fast float 1.000000e+00, %903, !fpmath !33
%904 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%905 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%906 = tail call fast float @llvm.fmuladd.f32(float %904, float %mul.i.4, float 0xBF93BDB200000000) #9
%907 = tail call fast float @llvm.fmuladd.f32(float %905, float %mul.i.4, float 0x3FB1D5E760000000) #9
%908 = tail call fast float @llvm.fmuladd.f32(float %906, float %mul.i.4, float 0xBFE81272E0000000) #9
%909 = tail call fast float @llvm.fmuladd.f32(float %907, float %mul209.4, float %908) #9
%mul7.4 = fmul fast float %mul11.i, %div.i.4
%mul211.4 = fmul fast float %mul7.4, %909
%910 = tail call fast float @llvm.fmuladd.f32(float %mul207.4, float %div188.4, float %mul211.4)
%911 = tail call fast float @llvm.fmuladd.f32(float %mul206.4, float %910, float %mul195.4)
%mul214.4 = fmul fast float %894, %nbparam_params.coerce.fca.5.extract
%mul215.4 = fmul fast float %mul214.4, %div188.4
%912 = bitcast float %mul215.4 to i32
%913 = and i32 %912, 2147483647
%914 = bitcast i32 %913 to float
%915 = fmul float %914, %914
%916 = fdiv float 1.000000e+00, %915, !fpmath !33
%917 = fadd float %914, -1.000000e+00
%918 = fcmp olt float %914, 1.250000e+00
%919 = select i1 %918, float %917, float %916
%920 = fcmp olt float %914, 8.437500e-01
%921 = select i1 %920, float %915, float %919
%922 = tail call float @llvm.fmuladd.f32(float %921, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%923 = tail call float @llvm.fmuladd.f32(float %921, float %922, float 0xC083EC8820000000) #9
%924 = tail call float @llvm.fmuladd.f32(float %921, float %923, float 0xC064145D40000000) #9
%925 = tail call float @llvm.fmuladd.f32(float %921, float %924, float 0xC031C20960000000) #9
%926 = tail call float @llvm.fmuladd.f32(float %921, float %925, float 0xBFE993BA80000000) #9
%927 = tail call float @llvm.fmuladd.f32(float %921, float %926, float 0xBF84341240000000) #9
%928 = tail call float @llvm.fmuladd.f32(float %921, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%929 = tail call float @llvm.fmuladd.f32(float %921, float %928, float 0x40A3F219C0000000) #9
%930 = tail call float @llvm.fmuladd.f32(float %921, float %929, float 0x40A8FFB760000000) #9
%931 = tail call float @llvm.fmuladd.f32(float %921, float %930, float 0x409802EB20000000) #9
%932 = tail call float @llvm.fmuladd.f32(float %921, float %931, float 0x40745CAE20000000) #9
%933 = tail call float @llvm.fmuladd.f32(float %921, float %932, float 0x403E568B20000000) #9
%934 = tail call float @llvm.fmuladd.f32(float %921, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%935 = tail call float @llvm.fmuladd.f32(float %921, float %934, float 0xC067135CE0000000) #9
%936 = tail call float @llvm.fmuladd.f32(float %921, float %935, float 0xC0644CB180000000) #9
%937 = tail call float @llvm.fmuladd.f32(float %921, float %936, float 0xC04F300AE0000000) #9
%938 = tail call float @llvm.fmuladd.f32(float %921, float %937, float 0xC0251E0440000000) #9
%939 = tail call float @llvm.fmuladd.f32(float %921, float %938, float 0xBFE63416E0000000) #9
%940 = tail call float @llvm.fmuladd.f32(float %921, float %939, float 0xBF84341260000000) #9
%941 = tail call float @llvm.fmuladd.f32(float %921, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%942 = tail call float @llvm.fmuladd.f32(float %921, float %941, float 0x405B28A3E0000000) #9
%943 = tail call float @llvm.fmuladd.f32(float %921, float %942, float 0x407AD02160000000) #9
%944 = tail call float @llvm.fmuladd.f32(float %921, float %943, float 0x40842B1920000000) #9
%945 = tail call float @llvm.fmuladd.f32(float %921, float %944, float 0x407B290DE0000000) #9
%946 = tail call float @llvm.fmuladd.f32(float %921, float %945, float 0x4061350C60000000) #9
%947 = tail call float @llvm.fmuladd.f32(float %921, float %946, float 0x4033A6B9C0000000) #9
%948 = fcmp olt float %914, 0x4006DB6DC0000000
%949 = select i1 %948, float %940, float %927
%950 = select i1 %948, float %947, float %933
%951 = tail call float @llvm.fmuladd.f32(float %921, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%952 = tail call float @llvm.fmuladd.f32(float %921, float %951, float 0xBFBC639840000000) #9
%953 = tail call float @llvm.fmuladd.f32(float %921, float %952, float 0x3FD45FCA80000000) #9
%954 = tail call float @llvm.fmuladd.f32(float %921, float %953, float 0xBFD7D24100000000) #9
%955 = tail call float @llvm.fmuladd.f32(float %921, float %954, float 0x3FDA8D00A0000000) #9
%956 = tail call float @llvm.fmuladd.f32(float %921, float %955, float 0xBF6359B8C0000000) #9
%957 = tail call float @llvm.fmuladd.f32(float %921, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%958 = tail call float @llvm.fmuladd.f32(float %921, float %957, float 0x3FC02660E0000000) #9
%959 = tail call float @llvm.fmuladd.f32(float %921, float %958, float 0x3FB2635CE0000000) #9
%960 = tail call float @llvm.fmuladd.f32(float %921, float %959, float 0x3FE14AF0A0000000) #9
%961 = tail call float @llvm.fmuladd.f32(float %921, float %960, float 0x3FBB3E6620000000) #9
%962 = select i1 %918, float %956, float %949
%963 = select i1 %918, float %961, float %950
%964 = tail call float @llvm.fmuladd.f32(float %921, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%965 = tail call float @llvm.fmuladd.f32(float %921, float %964, float 0xBF9D2A51E0000000) #9
%966 = tail call float @llvm.fmuladd.f32(float %921, float %965, float 0xBFD4CD7D60000000) #9
%967 = tail call float @llvm.fmuladd.f32(float %921, float %966, float 0x3FC06EBA80000000) #9
%968 = tail call float @llvm.fmuladd.f32(float %921, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%969 = tail call float @llvm.fmuladd.f32(float %921, float %968, float 0x3F74D022C0000000) #9
%970 = tail call float @llvm.fmuladd.f32(float %921, float %969, float 0x3FB0A54C60000000) #9
%971 = tail call float @llvm.fmuladd.f32(float %921, float %970, float 0x3FD97779C0000000) #9
%972 = select i1 %920, float %967, float %962
%973 = select i1 %920, float %971, float %963
%974 = tail call float @llvm.fmuladd.f32(float %921, float %973, float 1.000000e+00) #9
%975 = fdiv float %972, %974, !fpmath !33
%976 = and i32 %912, 2147479552
%977 = bitcast i32 %976 to float
%978 = fsub float -0.000000e+00, %977
%979 = tail call float @llvm.fmuladd.f32(float %978, float %977, float -5.625000e-01) #9
%980 = fcmp olt float %979, 0.000000e+00
%981 = select i1 %980, float -5.000000e-01, float 5.000000e-01
%982 = tail call float @llvm.fmuladd.f32(float %979, float 0x3FF7154760000000, float %981) #9
%983 = fptosi float %982 to i32
%984 = sitofp i32 %983 to float
%985 = tail call float @llvm.fmuladd.f32(float %984, float 0xBFE62E3000000000, float %979) #9
%986 = fmul float %984, 0xBEE2FEFA20000000
%987 = fadd float %985, %986
%988 = fmul float %987, %987
%989 = tail call float @llvm.fmuladd.f32(float %988, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%990 = tail call float @llvm.fmuladd.f32(float %988, float %989, float 0x3F11566AA0000000) #9
%991 = tail call float @llvm.fmuladd.f32(float %988, float %990, float 0xBF66C16C20000000) #9
%992 = tail call float @llvm.fmuladd.f32(float %988, float %991, float 0x3FC5555560000000) #9
%993 = fsub float -0.000000e+00, %992
%994 = tail call float @llvm.fmuladd.f32(float %988, float %993, float %987) #9
%995 = fsub float -0.000000e+00, %986
%996 = fmul float %987, %994
%997 = fsub float 2.000000e+00, %994
%998 = fdiv float %996, %997, !fpmath !33
%999 = fsub float %995, %998
%1000 = fsub float %999, %985
%1001 = fsub float 1.000000e+00, %1000
%1002 = bitcast float %1001 to i32
%1003 = shl i32 %983, 23
%1004 = add nsw i32 %1002, %1003
%1005 = bitcast i32 %1004 to float
%1006 = fcmp olt float %979, 0xC055D589E0000000
%1007 = select i1 %1006, float 0.000000e+00, float %1005
%1008 = fcmp olt float %979, 0x40562E4300000000
%1009 = select i1 %1008, float %1007, float 0x7FF0000000000000
%1010 = fcmp uno float %979, 0.000000e+00
%1011 = select i1 %1010, float %979, float %1009
%1012 = fsub float %977, %914
%1013 = fadd float %977, %914
%1014 = tail call float @llvm.fmuladd.f32(float %1012, float %1013, float %975) #9
%1015 = fcmp olt float %1014, 0.000000e+00
%1016 = select i1 %1015, float -5.000000e-01, float 5.000000e-01
%1017 = tail call float @llvm.fmuladd.f32(float %1014, float 0x3FF7154760000000, float %1016) #9
%1018 = fptosi float %1017 to i32
%1019 = sitofp i32 %1018 to float
%1020 = tail call float @llvm.fmuladd.f32(float %1019, float 0xBFE62E3000000000, float %1014) #9
%1021 = fmul float %1019, 0xBEE2FEFA20000000
%1022 = fadd float %1020, %1021
%1023 = fmul float %1022, %1022
%1024 = tail call float @llvm.fmuladd.f32(float %1023, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%1025 = tail call float @llvm.fmuladd.f32(float %1023, float %1024, float 0x3F11566AA0000000) #9
%1026 = tail call float @llvm.fmuladd.f32(float %1023, float %1025, float 0xBF66C16C20000000) #9
%1027 = tail call float @llvm.fmuladd.f32(float %1023, float %1026, float 0x3FC5555560000000) #9
%1028 = fsub float -0.000000e+00, %1027
%1029 = tail call float @llvm.fmuladd.f32(float %1023, float %1028, float %1022) #9
%1030 = fsub float -0.000000e+00, %1021
%1031 = fmul float %1022, %1029
%1032 = fsub float 2.000000e+00, %1029
%1033 = fdiv float %1031, %1032, !fpmath !33
%1034 = fsub float %1030, %1033
%1035 = fsub float %1034, %1020
%1036 = fsub float 1.000000e+00, %1035
%1037 = bitcast float %1036 to i32
%1038 = shl i32 %1018, 23
%1039 = add nsw i32 %1037, %1038
%1040 = bitcast i32 %1039 to float
%1041 = fcmp olt float %1014, 0xC055D589E0000000
%1042 = select i1 %1041, float 0.000000e+00, float %1040
%1043 = fcmp olt float %1014, 0x40562E4300000000
%1044 = select i1 %1043, float %1042, float 0x7FF0000000000000
%1045 = fcmp uno float %1014, 0.000000e+00
%1046 = select i1 %1045, float %1014, float %1044
%1047 = fmul float %1011, %1046
%1048 = fdiv float %1047, %914, !fpmath !33
%1049 = fsub float 1.000000e+00, %1048
%1050 = fcmp olt float %914, 6.000000e+00
%1051 = select i1 %1050, float %1049, float 1.000000e+00
%1052 = fadd float %975, 0x3FEB0AC160000000
%1053 = select i1 %918, float %1052, float %1051
%1054 = and i32 %912, -2147483648
%1055 = bitcast float %1053 to i32
%1056 = or i32 %1055, %1054
%1057 = bitcast i32 %1056 to float
%1058 = tail call float @llvm.fmuladd.f32(float %mul215.4, float %975, float %mul215.4) #9
%1059 = select i1 %920, float %1058, float %1057
%1060 = fmul float %mul215.4, 0x3FF06EBA80000000
%1061 = tail call float @llvm.fmuladd.f32(float %mul215.4, float 8.000000e+00, float %1060) #9
%1062 = fmul float %1061, 1.250000e-01
%1063 = fcmp olt float %914, 0x3E30000000000000
%1064 = select i1 %1063, float %1062, float %1059
%1065 = fcmp uno float %mul215.4, 0.000000e+00
%1066 = select i1 %1065, float %mul215.4, float %1064
%sub217.4 = fsub fast float %cond.4, %1066
%1067 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.4
%neg220.4 = fsub fast float -0.000000e+00, %1067
%1068 = tail call fast float @llvm.fmuladd.f32(float %div188.4, float %sub217.4, float %neg220.4)
%1069 = tail call fast float @llvm.fmuladd.f32(float %mul206.4, float %1068, float %E_el.5.3)
%splat.splatinsert.4 = insertelement <3 x float> undef, float %911, i32 0
%splat.splat.4 = shufflevector <3 x float> %splat.splatinsert.4, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.4 = fmul fast <3 x float> %splat.splat.4, %extractVec165.4
%extractVec233.4 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.4 = fsub fast <3 x float> %extractVec233.4, %mul225.4
%extractVec235.4 = shufflevector <3 x float> %sub234.4, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.4 = shufflevector <4 x float> %loadVec4243.4.3795, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.4 = fadd fast <3 x float> %mul225.4, %extractVec244.4
%extractVec246.4 = shufflevector <3 x float> %add245.4, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1070
; <label>:1070: ; preds = %888, %879, %878
%loadVec4243.4.3787 = phi <4 x float> [ %extractVec246.4, %888 ], [ %loadVec4243.4.3795, %879 ], [ %loadVec4243.4.3795, %878 ]
%E_el.5.4 = phi float [ %1069, %888 ], [ %E_el.5.3, %879 ], [ %E_el.5.3, %878 ]
%fcj_buf.sroa.0.1.4 = phi <4 x float> [ %extractVec235.4, %888 ], [ %fcj_buf.sroa.0.1.3, %879 ], [ %fcj_buf.sroa.0.1.3, %878 ]
%E_lj.3.4 = phi float [ %add205.4, %888 ], [ %E_lj.3.3, %879 ], [ %E_lj.3.3, %878 ]
%and144.5 = and i32 %57, 32
%tobool145.5 = icmp eq i32 %and144.5, 0
br i1 %tobool145.5, label %1262, label %1071
; <label>:1071: ; preds = %1070
%1072 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.5, align 16, !tbaa !13
%1073 = fsub fast <4 x float> %1072, %64
%1074 = extractelement <4 x float> %1073, i32 0
%1075 = extractelement <4 x float> %1073, i32 1
%1076 = fmul float %1075, %1075
%1077 = tail call float @llvm.fmuladd.f32(float %1074, float %1074, float %1076) #9
%1078 = extractelement <4 x float> %1073, i32 2
%1079 = tail call float @llvm.fmuladd.f32(float %1078, float %1078, float %1077) #9
%and167.5 = and i32 %58, 32
%tobool168.5 = icmp ne i32 %and167.5, 0
%cond.5 = select i1 %tobool168.5, float 1.000000e+00, float 0.000000e+00
%cmp172.5 = icmp eq i32 %add147.5, %63
%or.cond.5 = and i1 %cmp66, %cmp172.5
%not.or.cond.5 = xor i1 %or.cond.5, true
%cmp174..5 = or i1 %cmp174, %not.or.cond.5
%conv176.5 = uitofp i1 %cmp174..5 to float
%mul177.5 = fmul fast float %conv176.5, %nbparam_params.coerce.fca.9.extract
%cmp178.5 = fcmp fast olt float %1079, %mul177.5
br i1 %cmp178.5, label %1080, label %1262
; <label>:1080: ; preds = %1071
%extractVec165.5 = shufflevector <4 x float> %1073, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1081 = extractelement <4 x float> %1072, i64 3
%1082 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.5, align 8, !tbaa !13
%1083 = extractelement <2 x float> %1082, i64 0
%mul184.5 = fmul fast float %1083, %67
%1084 = extractelement <2 x float> %1082, i64 1
%mul185.5 = fmul fast float %1084, %68
%1085 = fcmp ogt float %1079, 0x3E99A2B5C0000000
%1086 = select i1 %1085, float %1079, float 0x3E99A2B5C0000000
%1087 = tail call float @llvm.sqrt.f32(float %1086) #10
%div188.5 = fdiv fast float 1.000000e+00, %1087, !fpmath !33
%mul189.5 = fmul fast float %div188.5, %div188.5
%1088 = fmul fast float %mul189.5, %mul189.5
%mul191.5 = fmul fast float %1088, %cond.5
%mul192.5 = fmul fast float %mul191.5, %mul189.5
%neg.5 = fsub fast float -0.000000e+00, %mul184.5
%1089 = tail call fast float @llvm.fmuladd.f32(float %mul185.5, float %mul192.5, float %neg.5)
%mul194.5 = fmul fast float %mul192.5, %mul189.5
%mul195.5 = fmul fast float %mul194.5, %1089
%1090 = tail call fast float @llvm.fmuladd.f32(float %mul192.5, float %mul192.5, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.5 = fmul fast float %mul185.5, %1090
%add200.5 = fadd fast float %mul192.5, %nbparam_params.coerce.fca.13.2.extract
%mul202.5 = fmul fast float %add200.5, 0xBFC5555560000000
%neg203.5 = fmul fast float %mul202.5, %mul184.5
%1091 = tail call fast float @llvm.fmuladd.f32(float %mul197.5, float 0x3FB5555540000000, float %neg203.5)
%mul204.5 = fmul fast float %1091, %cond.5
%add205.5 = fadd fast float %mul204.5, %E_lj.3.4
%mul206.5 = fmul fast float %1081, %65
%mul207.5 = fmul fast float %mul189.5, %cond.5
%mul209.5 = fmul fast float %1086, %mul
%mul.i.5 = fmul fast float %mul209.5, %mul209.5
%1092 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1093 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1094 = tail call fast float @llvm.fmuladd.f32(float %1092, float %mul.i.5, float 1.000000e+00) #9
%1095 = tail call fast float @llvm.fmuladd.f32(float %1093, float %mul209.5, float %1094) #9
%div.i.5 = fdiv fast float 1.000000e+00, %1095, !fpmath !33
%1096 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1097 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1098 = tail call fast float @llvm.fmuladd.f32(float %1096, float %mul.i.5, float 0xBF93BDB200000000) #9
%1099 = tail call fast float @llvm.fmuladd.f32(float %1097, float %mul.i.5, float 0x3FB1D5E760000000) #9
%1100 = tail call fast float @llvm.fmuladd.f32(float %1098, float %mul.i.5, float 0xBFE81272E0000000) #9
%1101 = tail call fast float @llvm.fmuladd.f32(float %1099, float %mul209.5, float %1100) #9
%mul7.5 = fmul fast float %mul11.i, %div.i.5
%mul211.5 = fmul fast float %mul7.5, %1101
%1102 = tail call fast float @llvm.fmuladd.f32(float %mul207.5, float %div188.5, float %mul211.5)
%1103 = tail call fast float @llvm.fmuladd.f32(float %mul206.5, float %1102, float %mul195.5)
%mul214.5 = fmul fast float %1086, %nbparam_params.coerce.fca.5.extract
%mul215.5 = fmul fast float %mul214.5, %div188.5
%1104 = bitcast float %mul215.5 to i32
%1105 = and i32 %1104, 2147483647
%1106 = bitcast i32 %1105 to float
%1107 = fmul float %1106, %1106
%1108 = fdiv float 1.000000e+00, %1107, !fpmath !33
%1109 = fadd float %1106, -1.000000e+00
%1110 = fcmp olt float %1106, 1.250000e+00
%1111 = select i1 %1110, float %1109, float %1108
%1112 = fcmp olt float %1106, 8.437500e-01
%1113 = select i1 %1112, float %1107, float %1111
%1114 = tail call float @llvm.fmuladd.f32(float %1113, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%1115 = tail call float @llvm.fmuladd.f32(float %1113, float %1114, float 0xC083EC8820000000) #9
%1116 = tail call float @llvm.fmuladd.f32(float %1113, float %1115, float 0xC064145D40000000) #9
%1117 = tail call float @llvm.fmuladd.f32(float %1113, float %1116, float 0xC031C20960000000) #9
%1118 = tail call float @llvm.fmuladd.f32(float %1113, float %1117, float 0xBFE993BA80000000) #9
%1119 = tail call float @llvm.fmuladd.f32(float %1113, float %1118, float 0xBF84341240000000) #9
%1120 = tail call float @llvm.fmuladd.f32(float %1113, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%1121 = tail call float @llvm.fmuladd.f32(float %1113, float %1120, float 0x40A3F219C0000000) #9
%1122 = tail call float @llvm.fmuladd.f32(float %1113, float %1121, float 0x40A8FFB760000000) #9
%1123 = tail call float @llvm.fmuladd.f32(float %1113, float %1122, float 0x409802EB20000000) #9
%1124 = tail call float @llvm.fmuladd.f32(float %1113, float %1123, float 0x40745CAE20000000) #9
%1125 = tail call float @llvm.fmuladd.f32(float %1113, float %1124, float 0x403E568B20000000) #9
%1126 = tail call float @llvm.fmuladd.f32(float %1113, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%1127 = tail call float @llvm.fmuladd.f32(float %1113, float %1126, float 0xC067135CE0000000) #9
%1128 = tail call float @llvm.fmuladd.f32(float %1113, float %1127, float 0xC0644CB180000000) #9
%1129 = tail call float @llvm.fmuladd.f32(float %1113, float %1128, float 0xC04F300AE0000000) #9
%1130 = tail call float @llvm.fmuladd.f32(float %1113, float %1129, float 0xC0251E0440000000) #9
%1131 = tail call float @llvm.fmuladd.f32(float %1113, float %1130, float 0xBFE63416E0000000) #9
%1132 = tail call float @llvm.fmuladd.f32(float %1113, float %1131, float 0xBF84341260000000) #9
%1133 = tail call float @llvm.fmuladd.f32(float %1113, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%1134 = tail call float @llvm.fmuladd.f32(float %1113, float %1133, float 0x405B28A3E0000000) #9
%1135 = tail call float @llvm.fmuladd.f32(float %1113, float %1134, float 0x407AD02160000000) #9
%1136 = tail call float @llvm.fmuladd.f32(float %1113, float %1135, float 0x40842B1920000000) #9
%1137 = tail call float @llvm.fmuladd.f32(float %1113, float %1136, float 0x407B290DE0000000) #9
%1138 = tail call float @llvm.fmuladd.f32(float %1113, float %1137, float 0x4061350C60000000) #9
%1139 = tail call float @llvm.fmuladd.f32(float %1113, float %1138, float 0x4033A6B9C0000000) #9
%1140 = fcmp olt float %1106, 0x4006DB6DC0000000
%1141 = select i1 %1140, float %1132, float %1119
%1142 = select i1 %1140, float %1139, float %1125
%1143 = tail call float @llvm.fmuladd.f32(float %1113, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%1144 = tail call float @llvm.fmuladd.f32(float %1113, float %1143, float 0xBFBC639840000000) #9
%1145 = tail call float @llvm.fmuladd.f32(float %1113, float %1144, float 0x3FD45FCA80000000) #9
%1146 = tail call float @llvm.fmuladd.f32(float %1113, float %1145, float 0xBFD7D24100000000) #9
%1147 = tail call float @llvm.fmuladd.f32(float %1113, float %1146, float 0x3FDA8D00A0000000) #9
%1148 = tail call float @llvm.fmuladd.f32(float %1113, float %1147, float 0xBF6359B8C0000000) #9
%1149 = tail call float @llvm.fmuladd.f32(float %1113, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%1150 = tail call float @llvm.fmuladd.f32(float %1113, float %1149, float 0x3FC02660E0000000) #9
%1151 = tail call float @llvm.fmuladd.f32(float %1113, float %1150, float 0x3FB2635CE0000000) #9
%1152 = tail call float @llvm.fmuladd.f32(float %1113, float %1151, float 0x3FE14AF0A0000000) #9
%1153 = tail call float @llvm.fmuladd.f32(float %1113, float %1152, float 0x3FBB3E6620000000) #9
%1154 = select i1 %1110, float %1148, float %1141
%1155 = select i1 %1110, float %1153, float %1142
%1156 = tail call float @llvm.fmuladd.f32(float %1113, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%1157 = tail call float @llvm.fmuladd.f32(float %1113, float %1156, float 0xBF9D2A51E0000000) #9
%1158 = tail call float @llvm.fmuladd.f32(float %1113, float %1157, float 0xBFD4CD7D60000000) #9
%1159 = tail call float @llvm.fmuladd.f32(float %1113, float %1158, float 0x3FC06EBA80000000) #9
%1160 = tail call float @llvm.fmuladd.f32(float %1113, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%1161 = tail call float @llvm.fmuladd.f32(float %1113, float %1160, float 0x3F74D022C0000000) #9
%1162 = tail call float @llvm.fmuladd.f32(float %1113, float %1161, float 0x3FB0A54C60000000) #9
%1163 = tail call float @llvm.fmuladd.f32(float %1113, float %1162, float 0x3FD97779C0000000) #9
%1164 = select i1 %1112, float %1159, float %1154
%1165 = select i1 %1112, float %1163, float %1155
%1166 = tail call float @llvm.fmuladd.f32(float %1113, float %1165, float 1.000000e+00) #9
%1167 = fdiv float %1164, %1166, !fpmath !33
%1168 = and i32 %1104, 2147479552
%1169 = bitcast i32 %1168 to float
%1170 = fsub float -0.000000e+00, %1169
%1171 = tail call float @llvm.fmuladd.f32(float %1170, float %1169, float -5.625000e-01) #9
%1172 = fcmp olt float %1171, 0.000000e+00
%1173 = select i1 %1172, float -5.000000e-01, float 5.000000e-01
%1174 = tail call float @llvm.fmuladd.f32(float %1171, float 0x3FF7154760000000, float %1173) #9
%1175 = fptosi float %1174 to i32
%1176 = sitofp i32 %1175 to float
%1177 = tail call float @llvm.fmuladd.f32(float %1176, float 0xBFE62E3000000000, float %1171) #9
%1178 = fmul float %1176, 0xBEE2FEFA20000000
%1179 = fadd float %1177, %1178
%1180 = fmul float %1179, %1179
%1181 = tail call float @llvm.fmuladd.f32(float %1180, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%1182 = tail call float @llvm.fmuladd.f32(float %1180, float %1181, float 0x3F11566AA0000000) #9
%1183 = tail call float @llvm.fmuladd.f32(float %1180, float %1182, float 0xBF66C16C20000000) #9
%1184 = tail call float @llvm.fmuladd.f32(float %1180, float %1183, float 0x3FC5555560000000) #9
%1185 = fsub float -0.000000e+00, %1184
%1186 = tail call float @llvm.fmuladd.f32(float %1180, float %1185, float %1179) #9
%1187 = fsub float -0.000000e+00, %1178
%1188 = fmul float %1179, %1186
%1189 = fsub float 2.000000e+00, %1186
%1190 = fdiv float %1188, %1189, !fpmath !33
%1191 = fsub float %1187, %1190
%1192 = fsub float %1191, %1177
%1193 = fsub float 1.000000e+00, %1192
%1194 = bitcast float %1193 to i32
%1195 = shl i32 %1175, 23
%1196 = add nsw i32 %1194, %1195
%1197 = bitcast i32 %1196 to float
%1198 = fcmp olt float %1171, 0xC055D589E0000000
%1199 = select i1 %1198, float 0.000000e+00, float %1197
%1200 = fcmp olt float %1171, 0x40562E4300000000
%1201 = select i1 %1200, float %1199, float 0x7FF0000000000000
%1202 = fcmp uno float %1171, 0.000000e+00
%1203 = select i1 %1202, float %1171, float %1201
%1204 = fsub float %1169, %1106
%1205 = fadd float %1169, %1106
%1206 = tail call float @llvm.fmuladd.f32(float %1204, float %1205, float %1167) #9
%1207 = fcmp olt float %1206, 0.000000e+00
%1208 = select i1 %1207, float -5.000000e-01, float 5.000000e-01
%1209 = tail call float @llvm.fmuladd.f32(float %1206, float 0x3FF7154760000000, float %1208) #9
%1210 = fptosi float %1209 to i32
%1211 = sitofp i32 %1210 to float
%1212 = tail call float @llvm.fmuladd.f32(float %1211, float 0xBFE62E3000000000, float %1206) #9
%1213 = fmul float %1211, 0xBEE2FEFA20000000
%1214 = fadd float %1212, %1213
%1215 = fmul float %1214, %1214
%1216 = tail call float @llvm.fmuladd.f32(float %1215, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%1217 = tail call float @llvm.fmuladd.f32(float %1215, float %1216, float 0x3F11566AA0000000) #9
%1218 = tail call float @llvm.fmuladd.f32(float %1215, float %1217, float 0xBF66C16C20000000) #9
%1219 = tail call float @llvm.fmuladd.f32(float %1215, float %1218, float 0x3FC5555560000000) #9
%1220 = fsub float -0.000000e+00, %1219
%1221 = tail call float @llvm.fmuladd.f32(float %1215, float %1220, float %1214) #9
%1222 = fsub float -0.000000e+00, %1213
%1223 = fmul float %1214, %1221
%1224 = fsub float 2.000000e+00, %1221
%1225 = fdiv float %1223, %1224, !fpmath !33
%1226 = fsub float %1222, %1225
%1227 = fsub float %1226, %1212
%1228 = fsub float 1.000000e+00, %1227
%1229 = bitcast float %1228 to i32
%1230 = shl i32 %1210, 23
%1231 = add nsw i32 %1229, %1230
%1232 = bitcast i32 %1231 to float
%1233 = fcmp olt float %1206, 0xC055D589E0000000
%1234 = select i1 %1233, float 0.000000e+00, float %1232
%1235 = fcmp olt float %1206, 0x40562E4300000000
%1236 = select i1 %1235, float %1234, float 0x7FF0000000000000
%1237 = fcmp uno float %1206, 0.000000e+00
%1238 = select i1 %1237, float %1206, float %1236
%1239 = fmul float %1203, %1238
%1240 = fdiv float %1239, %1106, !fpmath !33
%1241 = fsub float 1.000000e+00, %1240
%1242 = fcmp olt float %1106, 6.000000e+00
%1243 = select i1 %1242, float %1241, float 1.000000e+00
%1244 = fadd float %1167, 0x3FEB0AC160000000
%1245 = select i1 %1110, float %1244, float %1243
%1246 = and i32 %1104, -2147483648
%1247 = bitcast float %1245 to i32
%1248 = or i32 %1247, %1246
%1249 = bitcast i32 %1248 to float
%1250 = tail call float @llvm.fmuladd.f32(float %mul215.5, float %1167, float %mul215.5) #9
%1251 = select i1 %1112, float %1250, float %1249
%1252 = fmul float %mul215.5, 0x3FF06EBA80000000
%1253 = tail call float @llvm.fmuladd.f32(float %mul215.5, float 8.000000e+00, float %1252) #9
%1254 = fmul float %1253, 1.250000e-01
%1255 = fcmp olt float %1106, 0x3E30000000000000
%1256 = select i1 %1255, float %1254, float %1251
%1257 = fcmp uno float %mul215.5, 0.000000e+00
%1258 = select i1 %1257, float %mul215.5, float %1256
%sub217.5 = fsub fast float %cond.5, %1258
%1259 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.5
%neg220.5 = fsub fast float -0.000000e+00, %1259
%1260 = tail call fast float @llvm.fmuladd.f32(float %div188.5, float %sub217.5, float %neg220.5)
%1261 = tail call fast float @llvm.fmuladd.f32(float %mul206.5, float %1260, float %E_el.5.4)
%splat.splatinsert.5 = insertelement <3 x float> undef, float %1103, i32 0
%splat.splat.5 = shufflevector <3 x float> %splat.splatinsert.5, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.5 = fmul fast <3 x float> %splat.splat.5, %extractVec165.5
%extractVec233.5 = shufflevector <4 x float> %fcj_buf.sroa.0.1.4, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.5 = fsub fast <3 x float> %extractVec233.5, %mul225.5
%extractVec235.5 = shufflevector <3 x float> %sub234.5, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.5 = shufflevector <4 x float> %loadVec4243.5.3804, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.5 = fadd fast <3 x float> %mul225.5, %extractVec244.5
%extractVec246.5 = shufflevector <3 x float> %add245.5, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1262
; <label>:1262: ; preds = %1080, %1071, %1070
%loadVec4243.5.3796 = phi <4 x float> [ %extractVec246.5, %1080 ], [ %loadVec4243.5.3804, %1071 ], [ %loadVec4243.5.3804, %1070 ]
%E_el.5.5 = phi float [ %1261, %1080 ], [ %E_el.5.4, %1071 ], [ %E_el.5.4, %1070 ]
%fcj_buf.sroa.0.1.5 = phi <4 x float> [ %extractVec235.5, %1080 ], [ %fcj_buf.sroa.0.1.4, %1071 ], [ %fcj_buf.sroa.0.1.4, %1070 ]
%E_lj.3.5 = phi float [ %add205.5, %1080 ], [ %E_lj.3.4, %1071 ], [ %E_lj.3.4, %1070 ]
%and144.6 = and i32 %57, 64
%tobool145.6 = icmp eq i32 %and144.6, 0
br i1 %tobool145.6, label %1454, label %1263
; <label>:1263: ; preds = %1262
%1264 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.6, align 16, !tbaa !13
%1265 = fsub fast <4 x float> %1264, %64
%1266 = extractelement <4 x float> %1265, i32 0
%1267 = extractelement <4 x float> %1265, i32 1
%1268 = fmul float %1267, %1267
%1269 = tail call float @llvm.fmuladd.f32(float %1266, float %1266, float %1268) #9
%1270 = extractelement <4 x float> %1265, i32 2
%1271 = tail call float @llvm.fmuladd.f32(float %1270, float %1270, float %1269) #9
%and167.6 = and i32 %58, 64
%tobool168.6 = icmp ne i32 %and167.6, 0
%cond.6 = select i1 %tobool168.6, float 1.000000e+00, float 0.000000e+00
%cmp172.6 = icmp eq i32 %add147.6, %63
%or.cond.6 = and i1 %cmp66, %cmp172.6
%not.or.cond.6 = xor i1 %or.cond.6, true
%cmp174..6 = or i1 %cmp174, %not.or.cond.6
%conv176.6 = uitofp i1 %cmp174..6 to float
%mul177.6 = fmul fast float %conv176.6, %nbparam_params.coerce.fca.9.extract
%cmp178.6 = fcmp fast olt float %1271, %mul177.6
br i1 %cmp178.6, label %1272, label %1454
; <label>:1272: ; preds = %1263
%extractVec165.6 = shufflevector <4 x float> %1265, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1273 = extractelement <4 x float> %1264, i64 3
%1274 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.6, align 8, !tbaa !13
%1275 = extractelement <2 x float> %1274, i64 0
%mul184.6 = fmul fast float %1275, %67
%1276 = extractelement <2 x float> %1274, i64 1
%mul185.6 = fmul fast float %1276, %68
%1277 = fcmp ogt float %1271, 0x3E99A2B5C0000000
%1278 = select i1 %1277, float %1271, float 0x3E99A2B5C0000000
%1279 = tail call float @llvm.sqrt.f32(float %1278) #10
%div188.6 = fdiv fast float 1.000000e+00, %1279, !fpmath !33
%mul189.6 = fmul fast float %div188.6, %div188.6
%1280 = fmul fast float %mul189.6, %mul189.6
%mul191.6 = fmul fast float %1280, %cond.6
%mul192.6 = fmul fast float %mul191.6, %mul189.6
%neg.6 = fsub fast float -0.000000e+00, %mul184.6
%1281 = tail call fast float @llvm.fmuladd.f32(float %mul185.6, float %mul192.6, float %neg.6)
%mul194.6 = fmul fast float %mul192.6, %mul189.6
%mul195.6 = fmul fast float %mul194.6, %1281
%1282 = tail call fast float @llvm.fmuladd.f32(float %mul192.6, float %mul192.6, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.6 = fmul fast float %mul185.6, %1282
%add200.6 = fadd fast float %mul192.6, %nbparam_params.coerce.fca.13.2.extract
%mul202.6 = fmul fast float %add200.6, 0xBFC5555560000000
%neg203.6 = fmul fast float %mul202.6, %mul184.6
%1283 = tail call fast float @llvm.fmuladd.f32(float %mul197.6, float 0x3FB5555540000000, float %neg203.6)
%mul204.6 = fmul fast float %1283, %cond.6
%add205.6 = fadd fast float %mul204.6, %E_lj.3.5
%mul206.6 = fmul fast float %1273, %65
%mul207.6 = fmul fast float %mul189.6, %cond.6
%mul209.6 = fmul fast float %1278, %mul
%mul.i.6 = fmul fast float %mul209.6, %mul209.6
%1284 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1285 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1286 = tail call fast float @llvm.fmuladd.f32(float %1284, float %mul.i.6, float 1.000000e+00) #9
%1287 = tail call fast float @llvm.fmuladd.f32(float %1285, float %mul209.6, float %1286) #9
%div.i.6 = fdiv fast float 1.000000e+00, %1287, !fpmath !33
%1288 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1289 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1290 = tail call fast float @llvm.fmuladd.f32(float %1288, float %mul.i.6, float 0xBF93BDB200000000) #9
%1291 = tail call fast float @llvm.fmuladd.f32(float %1289, float %mul.i.6, float 0x3FB1D5E760000000) #9
%1292 = tail call fast float @llvm.fmuladd.f32(float %1290, float %mul.i.6, float 0xBFE81272E0000000) #9
%1293 = tail call fast float @llvm.fmuladd.f32(float %1291, float %mul209.6, float %1292) #9
%mul7.6 = fmul fast float %mul11.i, %div.i.6
%mul211.6 = fmul fast float %mul7.6, %1293
%1294 = tail call fast float @llvm.fmuladd.f32(float %mul207.6, float %div188.6, float %mul211.6)
%1295 = tail call fast float @llvm.fmuladd.f32(float %mul206.6, float %1294, float %mul195.6)
%mul214.6 = fmul fast float %1278, %nbparam_params.coerce.fca.5.extract
%mul215.6 = fmul fast float %mul214.6, %div188.6
%1296 = bitcast float %mul215.6 to i32
%1297 = and i32 %1296, 2147483647
%1298 = bitcast i32 %1297 to float
%1299 = fmul float %1298, %1298
%1300 = fdiv float 1.000000e+00, %1299, !fpmath !33
%1301 = fadd float %1298, -1.000000e+00
%1302 = fcmp olt float %1298, 1.250000e+00
%1303 = select i1 %1302, float %1301, float %1300
%1304 = fcmp olt float %1298, 8.437500e-01
%1305 = select i1 %1304, float %1299, float %1303
%1306 = tail call float @llvm.fmuladd.f32(float %1305, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%1307 = tail call float @llvm.fmuladd.f32(float %1305, float %1306, float 0xC083EC8820000000) #9
%1308 = tail call float @llvm.fmuladd.f32(float %1305, float %1307, float 0xC064145D40000000) #9
%1309 = tail call float @llvm.fmuladd.f32(float %1305, float %1308, float 0xC031C20960000000) #9
%1310 = tail call float @llvm.fmuladd.f32(float %1305, float %1309, float 0xBFE993BA80000000) #9
%1311 = tail call float @llvm.fmuladd.f32(float %1305, float %1310, float 0xBF84341240000000) #9
%1312 = tail call float @llvm.fmuladd.f32(float %1305, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%1313 = tail call float @llvm.fmuladd.f32(float %1305, float %1312, float 0x40A3F219C0000000) #9
%1314 = tail call float @llvm.fmuladd.f32(float %1305, float %1313, float 0x40A8FFB760000000) #9
%1315 = tail call float @llvm.fmuladd.f32(float %1305, float %1314, float 0x409802EB20000000) #9
%1316 = tail call float @llvm.fmuladd.f32(float %1305, float %1315, float 0x40745CAE20000000) #9
%1317 = tail call float @llvm.fmuladd.f32(float %1305, float %1316, float 0x403E568B20000000) #9
%1318 = tail call float @llvm.fmuladd.f32(float %1305, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%1319 = tail call float @llvm.fmuladd.f32(float %1305, float %1318, float 0xC067135CE0000000) #9
%1320 = tail call float @llvm.fmuladd.f32(float %1305, float %1319, float 0xC0644CB180000000) #9
%1321 = tail call float @llvm.fmuladd.f32(float %1305, float %1320, float 0xC04F300AE0000000) #9
%1322 = tail call float @llvm.fmuladd.f32(float %1305, float %1321, float 0xC0251E0440000000) #9
%1323 = tail call float @llvm.fmuladd.f32(float %1305, float %1322, float 0xBFE63416E0000000) #9
%1324 = tail call float @llvm.fmuladd.f32(float %1305, float %1323, float 0xBF84341260000000) #9
%1325 = tail call float @llvm.fmuladd.f32(float %1305, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%1326 = tail call float @llvm.fmuladd.f32(float %1305, float %1325, float 0x405B28A3E0000000) #9
%1327 = tail call float @llvm.fmuladd.f32(float %1305, float %1326, float 0x407AD02160000000) #9
%1328 = tail call float @llvm.fmuladd.f32(float %1305, float %1327, float 0x40842B1920000000) #9
%1329 = tail call float @llvm.fmuladd.f32(float %1305, float %1328, float 0x407B290DE0000000) #9
%1330 = tail call float @llvm.fmuladd.f32(float %1305, float %1329, float 0x4061350C60000000) #9
%1331 = tail call float @llvm.fmuladd.f32(float %1305, float %1330, float 0x4033A6B9C0000000) #9
%1332 = fcmp olt float %1298, 0x4006DB6DC0000000
%1333 = select i1 %1332, float %1324, float %1311
%1334 = select i1 %1332, float %1331, float %1317
%1335 = tail call float @llvm.fmuladd.f32(float %1305, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%1336 = tail call float @llvm.fmuladd.f32(float %1305, float %1335, float 0xBFBC639840000000) #9
%1337 = tail call float @llvm.fmuladd.f32(float %1305, float %1336, float 0x3FD45FCA80000000) #9
%1338 = tail call float @llvm.fmuladd.f32(float %1305, float %1337, float 0xBFD7D24100000000) #9
%1339 = tail call float @llvm.fmuladd.f32(float %1305, float %1338, float 0x3FDA8D00A0000000) #9
%1340 = tail call float @llvm.fmuladd.f32(float %1305, float %1339, float 0xBF6359B8C0000000) #9
%1341 = tail call float @llvm.fmuladd.f32(float %1305, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%1342 = tail call float @llvm.fmuladd.f32(float %1305, float %1341, float 0x3FC02660E0000000) #9
%1343 = tail call float @llvm.fmuladd.f32(float %1305, float %1342, float 0x3FB2635CE0000000) #9
%1344 = tail call float @llvm.fmuladd.f32(float %1305, float %1343, float 0x3FE14AF0A0000000) #9
%1345 = tail call float @llvm.fmuladd.f32(float %1305, float %1344, float 0x3FBB3E6620000000) #9
%1346 = select i1 %1302, float %1340, float %1333
%1347 = select i1 %1302, float %1345, float %1334
%1348 = tail call float @llvm.fmuladd.f32(float %1305, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%1349 = tail call float @llvm.fmuladd.f32(float %1305, float %1348, float 0xBF9D2A51E0000000) #9
%1350 = tail call float @llvm.fmuladd.f32(float %1305, float %1349, float 0xBFD4CD7D60000000) #9
%1351 = tail call float @llvm.fmuladd.f32(float %1305, float %1350, float 0x3FC06EBA80000000) #9
%1352 = tail call float @llvm.fmuladd.f32(float %1305, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%1353 = tail call float @llvm.fmuladd.f32(float %1305, float %1352, float 0x3F74D022C0000000) #9
%1354 = tail call float @llvm.fmuladd.f32(float %1305, float %1353, float 0x3FB0A54C60000000) #9
%1355 = tail call float @llvm.fmuladd.f32(float %1305, float %1354, float 0x3FD97779C0000000) #9
%1356 = select i1 %1304, float %1351, float %1346
%1357 = select i1 %1304, float %1355, float %1347
%1358 = tail call float @llvm.fmuladd.f32(float %1305, float %1357, float 1.000000e+00) #9
%1359 = fdiv float %1356, %1358, !fpmath !33
%1360 = and i32 %1296, 2147479552
%1361 = bitcast i32 %1360 to float
%1362 = fsub float -0.000000e+00, %1361
%1363 = tail call float @llvm.fmuladd.f32(float %1362, float %1361, float -5.625000e-01) #9
%1364 = fcmp olt float %1363, 0.000000e+00
%1365 = select i1 %1364, float -5.000000e-01, float 5.000000e-01
%1366 = tail call float @llvm.fmuladd.f32(float %1363, float 0x3FF7154760000000, float %1365) #9
%1367 = fptosi float %1366 to i32
%1368 = sitofp i32 %1367 to float
%1369 = tail call float @llvm.fmuladd.f32(float %1368, float 0xBFE62E3000000000, float %1363) #9
%1370 = fmul float %1368, 0xBEE2FEFA20000000
%1371 = fadd float %1369, %1370
%1372 = fmul float %1371, %1371
%1373 = tail call float @llvm.fmuladd.f32(float %1372, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%1374 = tail call float @llvm.fmuladd.f32(float %1372, float %1373, float 0x3F11566AA0000000) #9
%1375 = tail call float @llvm.fmuladd.f32(float %1372, float %1374, float 0xBF66C16C20000000) #9
%1376 = tail call float @llvm.fmuladd.f32(float %1372, float %1375, float 0x3FC5555560000000) #9
%1377 = fsub float -0.000000e+00, %1376
%1378 = tail call float @llvm.fmuladd.f32(float %1372, float %1377, float %1371) #9
%1379 = fsub float -0.000000e+00, %1370
%1380 = fmul float %1371, %1378
%1381 = fsub float 2.000000e+00, %1378
%1382 = fdiv float %1380, %1381, !fpmath !33
%1383 = fsub float %1379, %1382
%1384 = fsub float %1383, %1369
%1385 = fsub float 1.000000e+00, %1384
%1386 = bitcast float %1385 to i32
%1387 = shl i32 %1367, 23
%1388 = add nsw i32 %1386, %1387
%1389 = bitcast i32 %1388 to float
%1390 = fcmp olt float %1363, 0xC055D589E0000000
%1391 = select i1 %1390, float 0.000000e+00, float %1389
%1392 = fcmp olt float %1363, 0x40562E4300000000
%1393 = select i1 %1392, float %1391, float 0x7FF0000000000000
%1394 = fcmp uno float %1363, 0.000000e+00
%1395 = select i1 %1394, float %1363, float %1393
%1396 = fsub float %1361, %1298
%1397 = fadd float %1361, %1298
%1398 = tail call float @llvm.fmuladd.f32(float %1396, float %1397, float %1359) #9
%1399 = fcmp olt float %1398, 0.000000e+00
%1400 = select i1 %1399, float -5.000000e-01, float 5.000000e-01
%1401 = tail call float @llvm.fmuladd.f32(float %1398, float 0x3FF7154760000000, float %1400) #9
%1402 = fptosi float %1401 to i32
%1403 = sitofp i32 %1402 to float
%1404 = tail call float @llvm.fmuladd.f32(float %1403, float 0xBFE62E3000000000, float %1398) #9
%1405 = fmul float %1403, 0xBEE2FEFA20000000
%1406 = fadd float %1404, %1405
%1407 = fmul float %1406, %1406
%1408 = tail call float @llvm.fmuladd.f32(float %1407, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%1409 = tail call float @llvm.fmuladd.f32(float %1407, float %1408, float 0x3F11566AA0000000) #9
%1410 = tail call float @llvm.fmuladd.f32(float %1407, float %1409, float 0xBF66C16C20000000) #9
%1411 = tail call float @llvm.fmuladd.f32(float %1407, float %1410, float 0x3FC5555560000000) #9
%1412 = fsub float -0.000000e+00, %1411
%1413 = tail call float @llvm.fmuladd.f32(float %1407, float %1412, float %1406) #9
%1414 = fsub float -0.000000e+00, %1405
%1415 = fmul float %1406, %1413
%1416 = fsub float 2.000000e+00, %1413
%1417 = fdiv float %1415, %1416, !fpmath !33
%1418 = fsub float %1414, %1417
%1419 = fsub float %1418, %1404
%1420 = fsub float 1.000000e+00, %1419
%1421 = bitcast float %1420 to i32
%1422 = shl i32 %1402, 23
%1423 = add nsw i32 %1421, %1422
%1424 = bitcast i32 %1423 to float
%1425 = fcmp olt float %1398, 0xC055D589E0000000
%1426 = select i1 %1425, float 0.000000e+00, float %1424
%1427 = fcmp olt float %1398, 0x40562E4300000000
%1428 = select i1 %1427, float %1426, float 0x7FF0000000000000
%1429 = fcmp uno float %1398, 0.000000e+00
%1430 = select i1 %1429, float %1398, float %1428
%1431 = fmul float %1395, %1430
%1432 = fdiv float %1431, %1298, !fpmath !33
%1433 = fsub float 1.000000e+00, %1432
%1434 = fcmp olt float %1298, 6.000000e+00
%1435 = select i1 %1434, float %1433, float 1.000000e+00
%1436 = fadd float %1359, 0x3FEB0AC160000000
%1437 = select i1 %1302, float %1436, float %1435
%1438 = and i32 %1296, -2147483648
%1439 = bitcast float %1437 to i32
%1440 = or i32 %1439, %1438
%1441 = bitcast i32 %1440 to float
%1442 = tail call float @llvm.fmuladd.f32(float %mul215.6, float %1359, float %mul215.6) #9
%1443 = select i1 %1304, float %1442, float %1441
%1444 = fmul float %mul215.6, 0x3FF06EBA80000000
%1445 = tail call float @llvm.fmuladd.f32(float %mul215.6, float 8.000000e+00, float %1444) #9
%1446 = fmul float %1445, 1.250000e-01
%1447 = fcmp olt float %1298, 0x3E30000000000000
%1448 = select i1 %1447, float %1446, float %1443
%1449 = fcmp uno float %mul215.6, 0.000000e+00
%1450 = select i1 %1449, float %mul215.6, float %1448
%sub217.6 = fsub fast float %cond.6, %1450
%1451 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.6
%neg220.6 = fsub fast float -0.000000e+00, %1451
%1452 = tail call fast float @llvm.fmuladd.f32(float %div188.6, float %sub217.6, float %neg220.6)
%1453 = tail call fast float @llvm.fmuladd.f32(float %mul206.6, float %1452, float %E_el.5.5)
%splat.splatinsert.6 = insertelement <3 x float> undef, float %1295, i32 0
%splat.splat.6 = shufflevector <3 x float> %splat.splatinsert.6, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.6 = fmul fast <3 x float> %splat.splat.6, %extractVec165.6
%extractVec233.6 = shufflevector <4 x float> %fcj_buf.sroa.0.1.5, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.6 = fsub fast <3 x float> %extractVec233.6, %mul225.6
%extractVec235.6 = shufflevector <3 x float> %sub234.6, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.6 = shufflevector <4 x float> %loadVec4243.6.3813, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.6 = fadd fast <3 x float> %mul225.6, %extractVec244.6
%extractVec246.6 = shufflevector <3 x float> %add245.6, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1454
; <label>:1454: ; preds = %1272, %1263, %1262
%loadVec4243.6.3805 = phi <4 x float> [ %extractVec246.6, %1272 ], [ %loadVec4243.6.3813, %1263 ], [ %loadVec4243.6.3813, %1262 ]
%E_el.5.6 = phi float [ %1453, %1272 ], [ %E_el.5.5, %1263 ], [ %E_el.5.5, %1262 ]
%fcj_buf.sroa.0.1.6 = phi <4 x float> [ %extractVec235.6, %1272 ], [ %fcj_buf.sroa.0.1.5, %1263 ], [ %fcj_buf.sroa.0.1.5, %1262 ]
%E_lj.3.6 = phi float [ %add205.6, %1272 ], [ %E_lj.3.5, %1263 ], [ %E_lj.3.5, %1262 ]
%and144.7 = and i32 %57, 128
%tobool145.7 = icmp eq i32 %and144.7, 0
br i1 %tobool145.7, label %1646, label %1455
; <label>:1455: ; preds = %1454
%1456 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.7, align 16, !tbaa !13
%1457 = fsub fast <4 x float> %1456, %64
%1458 = extractelement <4 x float> %1457, i32 0
%1459 = extractelement <4 x float> %1457, i32 1
%1460 = fmul float %1459, %1459
%1461 = tail call float @llvm.fmuladd.f32(float %1458, float %1458, float %1460) #9
%1462 = extractelement <4 x float> %1457, i32 2
%1463 = tail call float @llvm.fmuladd.f32(float %1462, float %1462, float %1461) #9
%and167.7 = and i32 %58, 128
%tobool168.7 = icmp ne i32 %and167.7, 0
%cond.7 = select i1 %tobool168.7, float 1.000000e+00, float 0.000000e+00
%cmp172.7 = icmp eq i32 %add147.7, %63
%or.cond.7 = and i1 %cmp66, %cmp172.7
%not.or.cond.7 = xor i1 %or.cond.7, true
%cmp174..7 = or i1 %cmp174, %not.or.cond.7
%conv176.7 = uitofp i1 %cmp174..7 to float
%mul177.7 = fmul fast float %conv176.7, %nbparam_params.coerce.fca.9.extract
%cmp178.7 = fcmp fast olt float %1463, %mul177.7
br i1 %cmp178.7, label %1464, label %1646
; <label>:1464: ; preds = %1455
%extractVec165.7 = shufflevector <4 x float> %1457, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1465 = extractelement <4 x float> %1456, i64 3
%1466 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.7, align 8, !tbaa !13
%1467 = extractelement <2 x float> %1466, i64 0
%mul184.7 = fmul fast float %1467, %67
%1468 = extractelement <2 x float> %1466, i64 1
%mul185.7 = fmul fast float %1468, %68
%1469 = fcmp ogt float %1463, 0x3E99A2B5C0000000
%1470 = select i1 %1469, float %1463, float 0x3E99A2B5C0000000
%1471 = tail call float @llvm.sqrt.f32(float %1470) #10
%div188.7 = fdiv fast float 1.000000e+00, %1471, !fpmath !33
%mul189.7 = fmul fast float %div188.7, %div188.7
%1472 = fmul fast float %mul189.7, %mul189.7
%mul191.7 = fmul fast float %1472, %cond.7
%mul192.7 = fmul fast float %mul191.7, %mul189.7
%neg.7 = fsub fast float -0.000000e+00, %mul184.7
%1473 = tail call fast float @llvm.fmuladd.f32(float %mul185.7, float %mul192.7, float %neg.7)
%mul194.7 = fmul fast float %mul192.7, %mul189.7
%mul195.7 = fmul fast float %mul194.7, %1473
%1474 = tail call fast float @llvm.fmuladd.f32(float %mul192.7, float %mul192.7, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.7 = fmul fast float %mul185.7, %1474
%add200.7 = fadd fast float %mul192.7, %nbparam_params.coerce.fca.13.2.extract
%mul202.7 = fmul fast float %add200.7, 0xBFC5555560000000
%neg203.7 = fmul fast float %mul202.7, %mul184.7
%1475 = tail call fast float @llvm.fmuladd.f32(float %mul197.7, float 0x3FB5555540000000, float %neg203.7)
%mul204.7 = fmul fast float %1475, %cond.7
%add205.7 = fadd fast float %mul204.7, %E_lj.3.6
%mul206.7 = fmul fast float %1465, %65
%mul207.7 = fmul fast float %mul189.7, %cond.7
%mul209.7 = fmul fast float %1470, %mul
%mul.i.7 = fmul fast float %mul209.7, %mul209.7
%1476 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1477 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1478 = tail call fast float @llvm.fmuladd.f32(float %1476, float %mul.i.7, float 1.000000e+00) #9
%1479 = tail call fast float @llvm.fmuladd.f32(float %1477, float %mul209.7, float %1478) #9
%div.i.7 = fdiv fast float 1.000000e+00, %1479, !fpmath !33
%1480 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1481 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1482 = tail call fast float @llvm.fmuladd.f32(float %1480, float %mul.i.7, float 0xBF93BDB200000000) #9
%1483 = tail call fast float @llvm.fmuladd.f32(float %1481, float %mul.i.7, float 0x3FB1D5E760000000) #9
%1484 = tail call fast float @llvm.fmuladd.f32(float %1482, float %mul.i.7, float 0xBFE81272E0000000) #9
%1485 = tail call fast float @llvm.fmuladd.f32(float %1483, float %mul209.7, float %1484) #9
%mul7.7 = fmul fast float %mul11.i, %div.i.7
%mul211.7 = fmul fast float %mul7.7, %1485
%1486 = tail call fast float @llvm.fmuladd.f32(float %mul207.7, float %div188.7, float %mul211.7)
%1487 = tail call fast float @llvm.fmuladd.f32(float %mul206.7, float %1486, float %mul195.7)
%mul214.7 = fmul fast float %1470, %nbparam_params.coerce.fca.5.extract
%mul215.7 = fmul fast float %mul214.7, %div188.7
%1488 = bitcast float %mul215.7 to i32
%1489 = and i32 %1488, 2147483647
%1490 = bitcast i32 %1489 to float
%1491 = fmul float %1490, %1490
%1492 = fdiv float 1.000000e+00, %1491, !fpmath !33
%1493 = fadd float %1490, -1.000000e+00
%1494 = fcmp olt float %1490, 1.250000e+00
%1495 = select i1 %1494, float %1493, float %1492
%1496 = fcmp olt float %1490, 8.437500e-01
%1497 = select i1 %1496, float %1491, float %1495
%1498 = tail call float @llvm.fmuladd.f32(float %1497, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%1499 = tail call float @llvm.fmuladd.f32(float %1497, float %1498, float 0xC083EC8820000000) #9
%1500 = tail call float @llvm.fmuladd.f32(float %1497, float %1499, float 0xC064145D40000000) #9
%1501 = tail call float @llvm.fmuladd.f32(float %1497, float %1500, float 0xC031C20960000000) #9
%1502 = tail call float @llvm.fmuladd.f32(float %1497, float %1501, float 0xBFE993BA80000000) #9
%1503 = tail call float @llvm.fmuladd.f32(float %1497, float %1502, float 0xBF84341240000000) #9
%1504 = tail call float @llvm.fmuladd.f32(float %1497, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%1505 = tail call float @llvm.fmuladd.f32(float %1497, float %1504, float 0x40A3F219C0000000) #9
%1506 = tail call float @llvm.fmuladd.f32(float %1497, float %1505, float 0x40A8FFB760000000) #9
%1507 = tail call float @llvm.fmuladd.f32(float %1497, float %1506, float 0x409802EB20000000) #9
%1508 = tail call float @llvm.fmuladd.f32(float %1497, float %1507, float 0x40745CAE20000000) #9
%1509 = tail call float @llvm.fmuladd.f32(float %1497, float %1508, float 0x403E568B20000000) #9
%1510 = tail call float @llvm.fmuladd.f32(float %1497, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%1511 = tail call float @llvm.fmuladd.f32(float %1497, float %1510, float 0xC067135CE0000000) #9
%1512 = tail call float @llvm.fmuladd.f32(float %1497, float %1511, float 0xC0644CB180000000) #9
%1513 = tail call float @llvm.fmuladd.f32(float %1497, float %1512, float 0xC04F300AE0000000) #9
%1514 = tail call float @llvm.fmuladd.f32(float %1497, float %1513, float 0xC0251E0440000000) #9
%1515 = tail call float @llvm.fmuladd.f32(float %1497, float %1514, float 0xBFE63416E0000000) #9
%1516 = tail call float @llvm.fmuladd.f32(float %1497, float %1515, float 0xBF84341260000000) #9
%1517 = tail call float @llvm.fmuladd.f32(float %1497, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%1518 = tail call float @llvm.fmuladd.f32(float %1497, float %1517, float 0x405B28A3E0000000) #9
%1519 = tail call float @llvm.fmuladd.f32(float %1497, float %1518, float 0x407AD02160000000) #9
%1520 = tail call float @llvm.fmuladd.f32(float %1497, float %1519, float 0x40842B1920000000) #9
%1521 = tail call float @llvm.fmuladd.f32(float %1497, float %1520, float 0x407B290DE0000000) #9
%1522 = tail call float @llvm.fmuladd.f32(float %1497, float %1521, float 0x4061350C60000000) #9
%1523 = tail call float @llvm.fmuladd.f32(float %1497, float %1522, float 0x4033A6B9C0000000) #9
%1524 = fcmp olt float %1490, 0x4006DB6DC0000000
%1525 = select i1 %1524, float %1516, float %1503
%1526 = select i1 %1524, float %1523, float %1509
%1527 = tail call float @llvm.fmuladd.f32(float %1497, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%1528 = tail call float @llvm.fmuladd.f32(float %1497, float %1527, float 0xBFBC639840000000) #9
%1529 = tail call float @llvm.fmuladd.f32(float %1497, float %1528, float 0x3FD45FCA80000000) #9
%1530 = tail call float @llvm.fmuladd.f32(float %1497, float %1529, float 0xBFD7D24100000000) #9
%1531 = tail call float @llvm.fmuladd.f32(float %1497, float %1530, float 0x3FDA8D00A0000000) #9
%1532 = tail call float @llvm.fmuladd.f32(float %1497, float %1531, float 0xBF6359B8C0000000) #9
%1533 = tail call float @llvm.fmuladd.f32(float %1497, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%1534 = tail call float @llvm.fmuladd.f32(float %1497, float %1533, float 0x3FC02660E0000000) #9
%1535 = tail call float @llvm.fmuladd.f32(float %1497, float %1534, float 0x3FB2635CE0000000) #9
%1536 = tail call float @llvm.fmuladd.f32(float %1497, float %1535, float 0x3FE14AF0A0000000) #9
%1537 = tail call float @llvm.fmuladd.f32(float %1497, float %1536, float 0x3FBB3E6620000000) #9
%1538 = select i1 %1494, float %1532, float %1525
%1539 = select i1 %1494, float %1537, float %1526
%1540 = tail call float @llvm.fmuladd.f32(float %1497, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%1541 = tail call float @llvm.fmuladd.f32(float %1497, float %1540, float 0xBF9D2A51E0000000) #9
%1542 = tail call float @llvm.fmuladd.f32(float %1497, float %1541, float 0xBFD4CD7D60000000) #9
%1543 = tail call float @llvm.fmuladd.f32(float %1497, float %1542, float 0x3FC06EBA80000000) #9
%1544 = tail call float @llvm.fmuladd.f32(float %1497, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%1545 = tail call float @llvm.fmuladd.f32(float %1497, float %1544, float 0x3F74D022C0000000) #9
%1546 = tail call float @llvm.fmuladd.f32(float %1497, float %1545, float 0x3FB0A54C60000000) #9
%1547 = tail call float @llvm.fmuladd.f32(float %1497, float %1546, float 0x3FD97779C0000000) #9
%1548 = select i1 %1496, float %1543, float %1538
%1549 = select i1 %1496, float %1547, float %1539
%1550 = tail call float @llvm.fmuladd.f32(float %1497, float %1549, float 1.000000e+00) #9
%1551 = fdiv float %1548, %1550, !fpmath !33
%1552 = and i32 %1488, 2147479552
%1553 = bitcast i32 %1552 to float
%1554 = fsub float -0.000000e+00, %1553
%1555 = tail call float @llvm.fmuladd.f32(float %1554, float %1553, float -5.625000e-01) #9
%1556 = fcmp olt float %1555, 0.000000e+00
%1557 = select i1 %1556, float -5.000000e-01, float 5.000000e-01
%1558 = tail call float @llvm.fmuladd.f32(float %1555, float 0x3FF7154760000000, float %1557) #9
%1559 = fptosi float %1558 to i32
%1560 = sitofp i32 %1559 to float
%1561 = tail call float @llvm.fmuladd.f32(float %1560, float 0xBFE62E3000000000, float %1555) #9
%1562 = fmul float %1560, 0xBEE2FEFA20000000
%1563 = fadd float %1561, %1562
%1564 = fmul float %1563, %1563
%1565 = tail call float @llvm.fmuladd.f32(float %1564, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%1566 = tail call float @llvm.fmuladd.f32(float %1564, float %1565, float 0x3F11566AA0000000) #9
%1567 = tail call float @llvm.fmuladd.f32(float %1564, float %1566, float 0xBF66C16C20000000) #9
%1568 = tail call float @llvm.fmuladd.f32(float %1564, float %1567, float 0x3FC5555560000000) #9
%1569 = fsub float -0.000000e+00, %1568
%1570 = tail call float @llvm.fmuladd.f32(float %1564, float %1569, float %1563) #9
%1571 = fsub float -0.000000e+00, %1562
%1572 = fmul float %1563, %1570
%1573 = fsub float 2.000000e+00, %1570
%1574 = fdiv float %1572, %1573, !fpmath !33
%1575 = fsub float %1571, %1574
%1576 = fsub float %1575, %1561
%1577 = fsub float 1.000000e+00, %1576
%1578 = bitcast float %1577 to i32
%1579 = shl i32 %1559, 23
%1580 = add nsw i32 %1578, %1579
%1581 = bitcast i32 %1580 to float
%1582 = fcmp olt float %1555, 0xC055D589E0000000
%1583 = select i1 %1582, float 0.000000e+00, float %1581
%1584 = fcmp olt float %1555, 0x40562E4300000000
%1585 = select i1 %1584, float %1583, float 0x7FF0000000000000
%1586 = fcmp uno float %1555, 0.000000e+00
%1587 = select i1 %1586, float %1555, float %1585
%1588 = fsub float %1553, %1490
%1589 = fadd float %1553, %1490
%1590 = tail call float @llvm.fmuladd.f32(float %1588, float %1589, float %1551) #9
%1591 = fcmp olt float %1590, 0.000000e+00
%1592 = select i1 %1591, float -5.000000e-01, float 5.000000e-01
%1593 = tail call float @llvm.fmuladd.f32(float %1590, float 0x3FF7154760000000, float %1592) #9
%1594 = fptosi float %1593 to i32
%1595 = sitofp i32 %1594 to float
%1596 = tail call float @llvm.fmuladd.f32(float %1595, float 0xBFE62E3000000000, float %1590) #9
%1597 = fmul float %1595, 0xBEE2FEFA20000000
%1598 = fadd float %1596, %1597
%1599 = fmul float %1598, %1598
%1600 = tail call float @llvm.fmuladd.f32(float %1599, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%1601 = tail call float @llvm.fmuladd.f32(float %1599, float %1600, float 0x3F11566AA0000000) #9
%1602 = tail call float @llvm.fmuladd.f32(float %1599, float %1601, float 0xBF66C16C20000000) #9
%1603 = tail call float @llvm.fmuladd.f32(float %1599, float %1602, float 0x3FC5555560000000) #9
%1604 = fsub float -0.000000e+00, %1603
%1605 = tail call float @llvm.fmuladd.f32(float %1599, float %1604, float %1598) #9
%1606 = fsub float -0.000000e+00, %1597
%1607 = fmul float %1598, %1605
%1608 = fsub float 2.000000e+00, %1605
%1609 = fdiv float %1607, %1608, !fpmath !33
%1610 = fsub float %1606, %1609
%1611 = fsub float %1610, %1596
%1612 = fsub float 1.000000e+00, %1611
%1613 = bitcast float %1612 to i32
%1614 = shl i32 %1594, 23
%1615 = add nsw i32 %1613, %1614
%1616 = bitcast i32 %1615 to float
%1617 = fcmp olt float %1590, 0xC055D589E0000000
%1618 = select i1 %1617, float 0.000000e+00, float %1616
%1619 = fcmp olt float %1590, 0x40562E4300000000
%1620 = select i1 %1619, float %1618, float 0x7FF0000000000000
%1621 = fcmp uno float %1590, 0.000000e+00
%1622 = select i1 %1621, float %1590, float %1620
%1623 = fmul float %1587, %1622
%1624 = fdiv float %1623, %1490, !fpmath !33
%1625 = fsub float 1.000000e+00, %1624
%1626 = fcmp olt float %1490, 6.000000e+00
%1627 = select i1 %1626, float %1625, float 1.000000e+00
%1628 = fadd float %1551, 0x3FEB0AC160000000
%1629 = select i1 %1494, float %1628, float %1627
%1630 = and i32 %1488, -2147483648
%1631 = bitcast float %1629 to i32
%1632 = or i32 %1631, %1630
%1633 = bitcast i32 %1632 to float
%1634 = tail call float @llvm.fmuladd.f32(float %mul215.7, float %1551, float %mul215.7) #9
%1635 = select i1 %1496, float %1634, float %1633
%1636 = fmul float %mul215.7, 0x3FF06EBA80000000
%1637 = tail call float @llvm.fmuladd.f32(float %mul215.7, float 8.000000e+00, float %1636) #9
%1638 = fmul float %1637, 1.250000e-01
%1639 = fcmp olt float %1490, 0x3E30000000000000
%1640 = select i1 %1639, float %1638, float %1635
%1641 = fcmp uno float %mul215.7, 0.000000e+00
%1642 = select i1 %1641, float %mul215.7, float %1640
%sub217.7 = fsub fast float %cond.7, %1642
%1643 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.7
%neg220.7 = fsub fast float -0.000000e+00, %1643
%1644 = tail call fast float @llvm.fmuladd.f32(float %div188.7, float %sub217.7, float %neg220.7)
%1645 = tail call fast float @llvm.fmuladd.f32(float %mul206.7, float %1644, float %E_el.5.6)
%splat.splatinsert.7 = insertelement <3 x float> undef, float %1487, i32 0
%splat.splat.7 = shufflevector <3 x float> %splat.splatinsert.7, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.7 = fmul fast <3 x float> %splat.splat.7, %extractVec165.7
%extractVec233.7 = shufflevector <4 x float> %fcj_buf.sroa.0.1.6, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.7 = fsub fast <3 x float> %extractVec233.7, %mul225.7
%extractVec235.7 = shufflevector <3 x float> %sub234.7, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.7 = shufflevector <4 x float> %loadVec4243.7.3822, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.7 = fadd fast <3 x float> %mul225.7, %extractVec244.7
%extractVec246.7 = shufflevector <3 x float> %add245.7, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1646
; <label>:1646: ; preds = %1464, %1455, %1454
%loadVec4243.7.3814 = phi <4 x float> [ %extractVec246.7, %1464 ], [ %loadVec4243.7.3822, %1455 ], [ %loadVec4243.7.3822, %1454 ]
%E_el.5.7 = phi float [ %1645, %1464 ], [ %E_el.5.6, %1455 ], [ %E_el.5.6, %1454 ]
%fcj_buf.sroa.0.1.7 = phi <4 x float> [ %extractVec235.7, %1464 ], [ %fcj_buf.sroa.0.1.6, %1455 ], [ %fcj_buf.sroa.0.1.6, %1454 ]
%E_lj.3.7 = phi float [ %add205.7, %1464 ], [ %E_lj.3.6, %1455 ], [ %E_lj.3.6, %1454 ]
%1647 = extractelement <4 x float> %fcj_buf.sroa.0.1.7, i32 0
store float %1647, float addrspace(3)* %arrayidx251, align 4, !tbaa !17
%1648 = extractelement <4 x float> %fcj_buf.sroa.0.1.7, i32 1
store float %1648, float addrspace(3)* %arrayidx254, align 4, !tbaa !17
%1649 = extractelement <4 x float> %fcj_buf.sroa.0.1.7, i32 2
store float %1649, float addrspace(3)* %arrayidx257, align 4, !tbaa !17
tail call void @reduce_force_j_generic(float addrspace(3)* %11, float addrspace(1)* %f, i32 %1, i32 %3, i32 %add135)
br label %.preheader.1735
; <label>:1650: ; preds = %.preheader.1735
%1651 = load i32, i32 addrspace(3)* %arrayidx133.1, align 4, !tbaa !9
%mul134.1 = shl nsw i32 %1651, 3
%add135.1 = add i32 %mul134.1, %3
%idxprom136.1 = sext i32 %add135.1 to i64
%arrayidx137.1 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom136.1
%1652 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx137.1, align 16, !tbaa !13
%1653 = extractelement <4 x float> %1652, i64 3
%arrayidx140.1 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom136.1
%1654 = load <2 x float>, <2 x float> addrspace(1)* %arrayidx140.1, align 8, !tbaa !13
%1655 = extractelement <2 x float> %1654, i64 0
%1656 = extractelement <2 x float> %1654, i64 1
%and144.1567 = and i32 %57, 256
%tobool145.1568 = icmp eq i32 %and144.1567, 0
br i1 %tobool145.1568, label %1848, label %1657
; <label>:1657: ; preds = %1650
%1658 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.1569, align 16, !tbaa !13
%1659 = fsub fast <4 x float> %1658, %1652
%1660 = extractelement <4 x float> %1659, i32 0
%1661 = extractelement <4 x float> %1659, i32 1
%1662 = fmul float %1661, %1661
%1663 = tail call float @llvm.fmuladd.f32(float %1660, float %1660, float %1662) #9
%1664 = extractelement <4 x float> %1659, i32 2
%1665 = tail call float @llvm.fmuladd.f32(float %1664, float %1664, float %1663) #9
%and167.1570 = and i32 %58, 256
%tobool168.1571 = icmp ne i32 %and167.1570, 0
%cond.1572 = select i1 %tobool168.1571, float 1.000000e+00, float 0.000000e+00
%cmp172.1573 = icmp eq i32 %mul22, %1651
%or.cond.1574 = and i1 %cmp66, %cmp172.1573
%not.or.cond.1575 = xor i1 %or.cond.1574, true
%cmp174..1576 = or i1 %cmp174, %not.or.cond.1575
%conv176.1577 = uitofp i1 %cmp174..1576 to float
%mul177.1578 = fmul fast float %conv176.1577, %nbparam_params.coerce.fca.9.extract
%cmp178.1579 = fcmp fast olt float %1665, %mul177.1578
br i1 %cmp178.1579, label %1666, label %1848
; <label>:1666: ; preds = %1657
%extractVec165.1580 = shufflevector <4 x float> %1659, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1667 = extractelement <4 x float> %1658, i64 3
%1668 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.1581, align 8, !tbaa !13
%1669 = extractelement <2 x float> %1668, i64 0
%mul184.1582 = fmul fast float %1669, %1655
%1670 = extractelement <2 x float> %1668, i64 1
%mul185.1583 = fmul fast float %1670, %1656
%1671 = fcmp ogt float %1665, 0x3E99A2B5C0000000
%1672 = select i1 %1671, float %1665, float 0x3E99A2B5C0000000
%1673 = tail call float @llvm.sqrt.f32(float %1672) #10
%div188.1584 = fdiv fast float 1.000000e+00, %1673, !fpmath !33
%mul189.1585 = fmul fast float %div188.1584, %div188.1584
%1674 = fmul fast float %mul189.1585, %mul189.1585
%mul191.1586 = fmul fast float %1674, %cond.1572
%mul192.1587 = fmul fast float %mul191.1586, %mul189.1585
%neg.1588 = fsub fast float -0.000000e+00, %mul184.1582
%1675 = tail call fast float @llvm.fmuladd.f32(float %mul185.1583, float %mul192.1587, float %neg.1588)
%mul194.1589 = fmul fast float %mul192.1587, %mul189.1585
%mul195.1590 = fmul fast float %mul194.1589, %1675
%1676 = tail call fast float @llvm.fmuladd.f32(float %mul192.1587, float %mul192.1587, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.1591 = fmul fast float %mul185.1583, %1676
%add200.1592 = fadd fast float %mul192.1587, %nbparam_params.coerce.fca.13.2.extract
%mul202.1593 = fmul fast float %add200.1592, 0xBFC5555560000000
%neg203.1594 = fmul fast float %mul202.1593, %mul184.1582
%1677 = tail call fast float @llvm.fmuladd.f32(float %mul197.1591, float 0x3FB5555540000000, float %neg203.1594)
%mul204.1595 = fmul fast float %1677, %cond.1572
%add205.1596 = fadd fast float %mul204.1595, %E_lj.4
%mul206.1597 = fmul fast float %1667, %1653
%mul207.1598 = fmul fast float %mul189.1585, %cond.1572
%mul209.1599 = fmul fast float %1672, %mul
%mul.i.1600 = fmul fast float %mul209.1599, %mul209.1599
%1678 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1600, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1679 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1600, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1680 = tail call fast float @llvm.fmuladd.f32(float %1678, float %mul.i.1600, float 1.000000e+00) #9
%1681 = tail call fast float @llvm.fmuladd.f32(float %1679, float %mul209.1599, float %1680) #9
%div.i.1601 = fdiv fast float 1.000000e+00, %1681, !fpmath !33
%1682 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1600, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1683 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1600, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1684 = tail call fast float @llvm.fmuladd.f32(float %1682, float %mul.i.1600, float 0xBF93BDB200000000) #9
%1685 = tail call fast float @llvm.fmuladd.f32(float %1683, float %mul.i.1600, float 0x3FB1D5E760000000) #9
%1686 = tail call fast float @llvm.fmuladd.f32(float %1684, float %mul.i.1600, float 0xBFE81272E0000000) #9
%1687 = tail call fast float @llvm.fmuladd.f32(float %1685, float %mul209.1599, float %1686) #9
%mul7.1602 = fmul fast float %mul11.i, %div.i.1601
%mul211.1603 = fmul fast float %mul7.1602, %1687
%1688 = tail call fast float @llvm.fmuladd.f32(float %mul207.1598, float %div188.1584, float %mul211.1603)
%1689 = tail call fast float @llvm.fmuladd.f32(float %mul206.1597, float %1688, float %mul195.1590)
%mul214.1604 = fmul fast float %1672, %nbparam_params.coerce.fca.5.extract
%mul215.1605 = fmul fast float %mul214.1604, %div188.1584
%1690 = bitcast float %mul215.1605 to i32
%1691 = and i32 %1690, 2147483647
%1692 = bitcast i32 %1691 to float
%1693 = fmul float %1692, %1692
%1694 = fdiv float 1.000000e+00, %1693, !fpmath !33
%1695 = fadd float %1692, -1.000000e+00
%1696 = fcmp olt float %1692, 1.250000e+00
%1697 = select i1 %1696, float %1695, float %1694
%1698 = fcmp olt float %1692, 8.437500e-01
%1699 = select i1 %1698, float %1693, float %1697
%1700 = tail call float @llvm.fmuladd.f32(float %1699, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%1701 = tail call float @llvm.fmuladd.f32(float %1699, float %1700, float 0xC083EC8820000000) #9
%1702 = tail call float @llvm.fmuladd.f32(float %1699, float %1701, float 0xC064145D40000000) #9
%1703 = tail call float @llvm.fmuladd.f32(float %1699, float %1702, float 0xC031C20960000000) #9
%1704 = tail call float @llvm.fmuladd.f32(float %1699, float %1703, float 0xBFE993BA80000000) #9
%1705 = tail call float @llvm.fmuladd.f32(float %1699, float %1704, float 0xBF84341240000000) #9
%1706 = tail call float @llvm.fmuladd.f32(float %1699, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%1707 = tail call float @llvm.fmuladd.f32(float %1699, float %1706, float 0x40A3F219C0000000) #9
%1708 = tail call float @llvm.fmuladd.f32(float %1699, float %1707, float 0x40A8FFB760000000) #9
%1709 = tail call float @llvm.fmuladd.f32(float %1699, float %1708, float 0x409802EB20000000) #9
%1710 = tail call float @llvm.fmuladd.f32(float %1699, float %1709, float 0x40745CAE20000000) #9
%1711 = tail call float @llvm.fmuladd.f32(float %1699, float %1710, float 0x403E568B20000000) #9
%1712 = tail call float @llvm.fmuladd.f32(float %1699, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%1713 = tail call float @llvm.fmuladd.f32(float %1699, float %1712, float 0xC067135CE0000000) #9
%1714 = tail call float @llvm.fmuladd.f32(float %1699, float %1713, float 0xC0644CB180000000) #9
%1715 = tail call float @llvm.fmuladd.f32(float %1699, float %1714, float 0xC04F300AE0000000) #9
%1716 = tail call float @llvm.fmuladd.f32(float %1699, float %1715, float 0xC0251E0440000000) #9
%1717 = tail call float @llvm.fmuladd.f32(float %1699, float %1716, float 0xBFE63416E0000000) #9
%1718 = tail call float @llvm.fmuladd.f32(float %1699, float %1717, float 0xBF84341260000000) #9
%1719 = tail call float @llvm.fmuladd.f32(float %1699, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%1720 = tail call float @llvm.fmuladd.f32(float %1699, float %1719, float 0x405B28A3E0000000) #9
%1721 = tail call float @llvm.fmuladd.f32(float %1699, float %1720, float 0x407AD02160000000) #9
%1722 = tail call float @llvm.fmuladd.f32(float %1699, float %1721, float 0x40842B1920000000) #9
%1723 = tail call float @llvm.fmuladd.f32(float %1699, float %1722, float 0x407B290DE0000000) #9
%1724 = tail call float @llvm.fmuladd.f32(float %1699, float %1723, float 0x4061350C60000000) #9
%1725 = tail call float @llvm.fmuladd.f32(float %1699, float %1724, float 0x4033A6B9C0000000) #9
%1726 = fcmp olt float %1692, 0x4006DB6DC0000000
%1727 = select i1 %1726, float %1718, float %1705
%1728 = select i1 %1726, float %1725, float %1711
%1729 = tail call float @llvm.fmuladd.f32(float %1699, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%1730 = tail call float @llvm.fmuladd.f32(float %1699, float %1729, float 0xBFBC639840000000) #9
%1731 = tail call float @llvm.fmuladd.f32(float %1699, float %1730, float 0x3FD45FCA80000000) #9
%1732 = tail call float @llvm.fmuladd.f32(float %1699, float %1731, float 0xBFD7D24100000000) #9
%1733 = tail call float @llvm.fmuladd.f32(float %1699, float %1732, float 0x3FDA8D00A0000000) #9
%1734 = tail call float @llvm.fmuladd.f32(float %1699, float %1733, float 0xBF6359B8C0000000) #9
%1735 = tail call float @llvm.fmuladd.f32(float %1699, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%1736 = tail call float @llvm.fmuladd.f32(float %1699, float %1735, float 0x3FC02660E0000000) #9
%1737 = tail call float @llvm.fmuladd.f32(float %1699, float %1736, float 0x3FB2635CE0000000) #9
%1738 = tail call float @llvm.fmuladd.f32(float %1699, float %1737, float 0x3FE14AF0A0000000) #9
%1739 = tail call float @llvm.fmuladd.f32(float %1699, float %1738, float 0x3FBB3E6620000000) #9
%1740 = select i1 %1696, float %1734, float %1727
%1741 = select i1 %1696, float %1739, float %1728
%1742 = tail call float @llvm.fmuladd.f32(float %1699, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%1743 = tail call float @llvm.fmuladd.f32(float %1699, float %1742, float 0xBF9D2A51E0000000) #9
%1744 = tail call float @llvm.fmuladd.f32(float %1699, float %1743, float 0xBFD4CD7D60000000) #9
%1745 = tail call float @llvm.fmuladd.f32(float %1699, float %1744, float 0x3FC06EBA80000000) #9
%1746 = tail call float @llvm.fmuladd.f32(float %1699, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%1747 = tail call float @llvm.fmuladd.f32(float %1699, float %1746, float 0x3F74D022C0000000) #9
%1748 = tail call float @llvm.fmuladd.f32(float %1699, float %1747, float 0x3FB0A54C60000000) #9
%1749 = tail call float @llvm.fmuladd.f32(float %1699, float %1748, float 0x3FD97779C0000000) #9
%1750 = select i1 %1698, float %1745, float %1740
%1751 = select i1 %1698, float %1749, float %1741
%1752 = tail call float @llvm.fmuladd.f32(float %1699, float %1751, float 1.000000e+00) #9
%1753 = fdiv float %1750, %1752, !fpmath !33
%1754 = and i32 %1690, 2147479552
%1755 = bitcast i32 %1754 to float
%1756 = fsub float -0.000000e+00, %1755
%1757 = tail call float @llvm.fmuladd.f32(float %1756, float %1755, float -5.625000e-01) #9
%1758 = fcmp olt float %1757, 0.000000e+00
%1759 = select i1 %1758, float -5.000000e-01, float 5.000000e-01
%1760 = tail call float @llvm.fmuladd.f32(float %1757, float 0x3FF7154760000000, float %1759) #9
%1761 = fptosi float %1760 to i32
%1762 = sitofp i32 %1761 to float
%1763 = tail call float @llvm.fmuladd.f32(float %1762, float 0xBFE62E3000000000, float %1757) #9
%1764 = fmul float %1762, 0xBEE2FEFA20000000
%1765 = fadd float %1763, %1764
%1766 = fmul float %1765, %1765
%1767 = tail call float @llvm.fmuladd.f32(float %1766, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%1768 = tail call float @llvm.fmuladd.f32(float %1766, float %1767, float 0x3F11566AA0000000) #9
%1769 = tail call float @llvm.fmuladd.f32(float %1766, float %1768, float 0xBF66C16C20000000) #9
%1770 = tail call float @llvm.fmuladd.f32(float %1766, float %1769, float 0x3FC5555560000000) #9
%1771 = fsub float -0.000000e+00, %1770
%1772 = tail call float @llvm.fmuladd.f32(float %1766, float %1771, float %1765) #9
%1773 = fsub float -0.000000e+00, %1764
%1774 = fmul float %1765, %1772
%1775 = fsub float 2.000000e+00, %1772
%1776 = fdiv float %1774, %1775, !fpmath !33
%1777 = fsub float %1773, %1776
%1778 = fsub float %1777, %1763
%1779 = fsub float 1.000000e+00, %1778
%1780 = bitcast float %1779 to i32
%1781 = shl i32 %1761, 23
%1782 = add nsw i32 %1780, %1781
%1783 = bitcast i32 %1782 to float
%1784 = fcmp olt float %1757, 0xC055D589E0000000
%1785 = select i1 %1784, float 0.000000e+00, float %1783
%1786 = fcmp olt float %1757, 0x40562E4300000000
%1787 = select i1 %1786, float %1785, float 0x7FF0000000000000
%1788 = fcmp uno float %1757, 0.000000e+00
%1789 = select i1 %1788, float %1757, float %1787
%1790 = fsub float %1755, %1692
%1791 = fadd float %1755, %1692
%1792 = tail call float @llvm.fmuladd.f32(float %1790, float %1791, float %1753) #9
%1793 = fcmp olt float %1792, 0.000000e+00
%1794 = select i1 %1793, float -5.000000e-01, float 5.000000e-01
%1795 = tail call float @llvm.fmuladd.f32(float %1792, float 0x3FF7154760000000, float %1794) #9
%1796 = fptosi float %1795 to i32
%1797 = sitofp i32 %1796 to float
%1798 = tail call float @llvm.fmuladd.f32(float %1797, float 0xBFE62E3000000000, float %1792) #9
%1799 = fmul float %1797, 0xBEE2FEFA20000000
%1800 = fadd float %1798, %1799
%1801 = fmul float %1800, %1800
%1802 = tail call float @llvm.fmuladd.f32(float %1801, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%1803 = tail call float @llvm.fmuladd.f32(float %1801, float %1802, float 0x3F11566AA0000000) #9
%1804 = tail call float @llvm.fmuladd.f32(float %1801, float %1803, float 0xBF66C16C20000000) #9
%1805 = tail call float @llvm.fmuladd.f32(float %1801, float %1804, float 0x3FC5555560000000) #9
%1806 = fsub float -0.000000e+00, %1805
%1807 = tail call float @llvm.fmuladd.f32(float %1801, float %1806, float %1800) #9
%1808 = fsub float -0.000000e+00, %1799
%1809 = fmul float %1800, %1807
%1810 = fsub float 2.000000e+00, %1807
%1811 = fdiv float %1809, %1810, !fpmath !33
%1812 = fsub float %1808, %1811
%1813 = fsub float %1812, %1798
%1814 = fsub float 1.000000e+00, %1813
%1815 = bitcast float %1814 to i32
%1816 = shl i32 %1796, 23
%1817 = add nsw i32 %1815, %1816
%1818 = bitcast i32 %1817 to float
%1819 = fcmp olt float %1792, 0xC055D589E0000000
%1820 = select i1 %1819, float 0.000000e+00, float %1818
%1821 = fcmp olt float %1792, 0x40562E4300000000
%1822 = select i1 %1821, float %1820, float 0x7FF0000000000000
%1823 = fcmp uno float %1792, 0.000000e+00
%1824 = select i1 %1823, float %1792, float %1822
%1825 = fmul float %1789, %1824
%1826 = fdiv float %1825, %1692, !fpmath !33
%1827 = fsub float 1.000000e+00, %1826
%1828 = fcmp olt float %1692, 6.000000e+00
%1829 = select i1 %1828, float %1827, float 1.000000e+00
%1830 = fadd float %1753, 0x3FEB0AC160000000
%1831 = select i1 %1696, float %1830, float %1829
%1832 = and i32 %1690, -2147483648
%1833 = bitcast float %1831 to i32
%1834 = or i32 %1833, %1832
%1835 = bitcast i32 %1834 to float
%1836 = tail call float @llvm.fmuladd.f32(float %mul215.1605, float %1753, float %mul215.1605) #9
%1837 = select i1 %1698, float %1836, float %1835
%1838 = fmul float %mul215.1605, 0x3FF06EBA80000000
%1839 = tail call float @llvm.fmuladd.f32(float %mul215.1605, float 8.000000e+00, float %1838) #9
%1840 = fmul float %1839, 1.250000e-01
%1841 = fcmp olt float %1692, 0x3E30000000000000
%1842 = select i1 %1841, float %1840, float %1837
%1843 = fcmp uno float %mul215.1605, 0.000000e+00
%1844 = select i1 %1843, float %mul215.1605, float %1842
%sub217.1606 = fsub fast float %cond.1572, %1844
%1845 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.1572
%neg220.1607 = fsub fast float -0.000000e+00, %1845
%1846 = tail call fast float @llvm.fmuladd.f32(float %div188.1584, float %sub217.1606, float %neg220.1607)
%1847 = tail call fast float @llvm.fmuladd.f32(float %mul206.1597, float %1846, float %E_el.6)
%splat.splatinsert.1608 = insertelement <3 x float> undef, float %1689, i32 0
%splat.splat.1609 = shufflevector <3 x float> %splat.splatinsert.1608, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.1610 = fmul fast <3 x float> %splat.splat.1609, %extractVec165.1580
%sub234.1611 = fsub fast <3 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %mul225.1610
%extractVec235.1612 = shufflevector <3 x float> %sub234.1611, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.1616 = shufflevector <4 x float> %loadVec4243.3727757, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.1617 = fadd fast <3 x float> %mul225.1610, %extractVec244.1616
%extractVec246.1618 = shufflevector <3 x float> %add245.1617, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %1848
; <label>:1848: ; preds = %1666, %1657, %1650
%loadVec4243.3727752 = phi <4 x float> [ %extractVec246.1618, %1666 ], [ %loadVec4243.3727757, %1657 ], [ %loadVec4243.3727757, %1650 ]
%E_el.5.1619 = phi float [ %1847, %1666 ], [ %E_el.6, %1657 ], [ %E_el.6, %1650 ]
%fcj_buf.sroa.0.1.1620 = phi <4 x float> [ %extractVec235.1612, %1666 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %1657 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %1650 ]
%E_lj.3.1621 = phi float [ %add205.1596, %1666 ], [ %E_lj.4, %1657 ], [ %E_lj.4, %1650 ]
%and144.1.1 = and i32 %57, 512
%tobool145.1.1 = icmp eq i32 %and144.1.1, 0
br i1 %tobool145.1.1, label %2040, label %1849
; <label>:1849: ; preds = %1848
%1850 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.1.1, align 16, !tbaa !13
%1851 = fsub fast <4 x float> %1850, %1652
%1852 = extractelement <4 x float> %1851, i32 0
%1853 = extractelement <4 x float> %1851, i32 1
%1854 = fmul float %1853, %1853
%1855 = tail call float @llvm.fmuladd.f32(float %1852, float %1852, float %1854) #9
%1856 = extractelement <4 x float> %1851, i32 2
%1857 = tail call float @llvm.fmuladd.f32(float %1856, float %1856, float %1855) #9
%and167.1.1 = and i32 %58, 512
%tobool168.1.1 = icmp ne i32 %and167.1.1, 0
%cond.1.1 = select i1 %tobool168.1.1, float 1.000000e+00, float 0.000000e+00
%cmp172.1.1 = icmp eq i32 %add147.1.1, %1651
%or.cond.1.1 = and i1 %cmp66, %cmp172.1.1
%not.or.cond.1.1 = xor i1 %or.cond.1.1, true
%cmp174..1.1 = or i1 %cmp174, %not.or.cond.1.1
%conv176.1.1 = uitofp i1 %cmp174..1.1 to float
%mul177.1.1 = fmul fast float %conv176.1.1, %nbparam_params.coerce.fca.9.extract
%cmp178.1.1 = fcmp fast olt float %1857, %mul177.1.1
br i1 %cmp178.1.1, label %1858, label %2040
; <label>:1858: ; preds = %1849
%extractVec165.1.1 = shufflevector <4 x float> %1851, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%1859 = extractelement <4 x float> %1850, i64 3
%1860 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.1.1, align 8, !tbaa !13
%1861 = extractelement <2 x float> %1860, i64 0
%mul184.1.1 = fmul fast float %1861, %1655
%1862 = extractelement <2 x float> %1860, i64 1
%mul185.1.1 = fmul fast float %1862, %1656
%1863 = fcmp ogt float %1857, 0x3E99A2B5C0000000
%1864 = select i1 %1863, float %1857, float 0x3E99A2B5C0000000
%1865 = tail call float @llvm.sqrt.f32(float %1864) #10
%div188.1.1 = fdiv fast float 1.000000e+00, %1865, !fpmath !33
%mul189.1.1 = fmul fast float %div188.1.1, %div188.1.1
%1866 = fmul fast float %mul189.1.1, %mul189.1.1
%mul191.1.1 = fmul fast float %1866, %cond.1.1
%mul192.1.1 = fmul fast float %mul191.1.1, %mul189.1.1
%neg.1.1 = fsub fast float -0.000000e+00, %mul184.1.1
%1867 = tail call fast float @llvm.fmuladd.f32(float %mul185.1.1, float %mul192.1.1, float %neg.1.1)
%mul194.1.1 = fmul fast float %mul192.1.1, %mul189.1.1
%mul195.1.1 = fmul fast float %mul194.1.1, %1867
%1868 = tail call fast float @llvm.fmuladd.f32(float %mul192.1.1, float %mul192.1.1, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.1.1 = fmul fast float %mul185.1.1, %1868
%add200.1.1 = fadd fast float %mul192.1.1, %nbparam_params.coerce.fca.13.2.extract
%mul202.1.1 = fmul fast float %add200.1.1, 0xBFC5555560000000
%neg203.1.1 = fmul fast float %mul202.1.1, %mul184.1.1
%1869 = tail call fast float @llvm.fmuladd.f32(float %mul197.1.1, float 0x3FB5555540000000, float %neg203.1.1)
%mul204.1.1 = fmul fast float %1869, %cond.1.1
%add205.1.1 = fadd fast float %mul204.1.1, %E_lj.3.1621
%mul206.1.1 = fmul fast float %1859, %1653
%mul207.1.1 = fmul fast float %mul189.1.1, %cond.1.1
%mul209.1.1 = fmul fast float %1864, %mul
%mul.i.1.1 = fmul fast float %mul209.1.1, %mul209.1.1
%1870 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%1871 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%1872 = tail call fast float @llvm.fmuladd.f32(float %1870, float %mul.i.1.1, float 1.000000e+00) #9
%1873 = tail call fast float @llvm.fmuladd.f32(float %1871, float %mul209.1.1, float %1872) #9
%div.i.1.1 = fdiv fast float 1.000000e+00, %1873, !fpmath !33
%1874 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%1875 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%1876 = tail call fast float @llvm.fmuladd.f32(float %1874, float %mul.i.1.1, float 0xBF93BDB200000000) #9
%1877 = tail call fast float @llvm.fmuladd.f32(float %1875, float %mul.i.1.1, float 0x3FB1D5E760000000) #9
%1878 = tail call fast float @llvm.fmuladd.f32(float %1876, float %mul.i.1.1, float 0xBFE81272E0000000) #9
%1879 = tail call fast float @llvm.fmuladd.f32(float %1877, float %mul209.1.1, float %1878) #9
%mul7.1.1 = fmul fast float %mul11.i, %div.i.1.1
%mul211.1.1 = fmul fast float %mul7.1.1, %1879
%1880 = tail call fast float @llvm.fmuladd.f32(float %mul207.1.1, float %div188.1.1, float %mul211.1.1)
%1881 = tail call fast float @llvm.fmuladd.f32(float %mul206.1.1, float %1880, float %mul195.1.1)
%mul214.1.1 = fmul fast float %1864, %nbparam_params.coerce.fca.5.extract
%mul215.1.1 = fmul fast float %mul214.1.1, %div188.1.1
%1882 = bitcast float %mul215.1.1 to i32
%1883 = and i32 %1882, 2147483647
%1884 = bitcast i32 %1883 to float
%1885 = fmul float %1884, %1884
%1886 = fdiv float 1.000000e+00, %1885, !fpmath !33
%1887 = fadd float %1884, -1.000000e+00
%1888 = fcmp olt float %1884, 1.250000e+00
%1889 = select i1 %1888, float %1887, float %1886
%1890 = fcmp olt float %1884, 8.437500e-01
%1891 = select i1 %1890, float %1885, float %1889
%1892 = tail call float @llvm.fmuladd.f32(float %1891, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%1893 = tail call float @llvm.fmuladd.f32(float %1891, float %1892, float 0xC083EC8820000000) #9
%1894 = tail call float @llvm.fmuladd.f32(float %1891, float %1893, float 0xC064145D40000000) #9
%1895 = tail call float @llvm.fmuladd.f32(float %1891, float %1894, float 0xC031C20960000000) #9
%1896 = tail call float @llvm.fmuladd.f32(float %1891, float %1895, float 0xBFE993BA80000000) #9
%1897 = tail call float @llvm.fmuladd.f32(float %1891, float %1896, float 0xBF84341240000000) #9
%1898 = tail call float @llvm.fmuladd.f32(float %1891, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%1899 = tail call float @llvm.fmuladd.f32(float %1891, float %1898, float 0x40A3F219C0000000) #9
%1900 = tail call float @llvm.fmuladd.f32(float %1891, float %1899, float 0x40A8FFB760000000) #9
%1901 = tail call float @llvm.fmuladd.f32(float %1891, float %1900, float 0x409802EB20000000) #9
%1902 = tail call float @llvm.fmuladd.f32(float %1891, float %1901, float 0x40745CAE20000000) #9
%1903 = tail call float @llvm.fmuladd.f32(float %1891, float %1902, float 0x403E568B20000000) #9
%1904 = tail call float @llvm.fmuladd.f32(float %1891, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%1905 = tail call float @llvm.fmuladd.f32(float %1891, float %1904, float 0xC067135CE0000000) #9
%1906 = tail call float @llvm.fmuladd.f32(float %1891, float %1905, float 0xC0644CB180000000) #9
%1907 = tail call float @llvm.fmuladd.f32(float %1891, float %1906, float 0xC04F300AE0000000) #9
%1908 = tail call float @llvm.fmuladd.f32(float %1891, float %1907, float 0xC0251E0440000000) #9
%1909 = tail call float @llvm.fmuladd.f32(float %1891, float %1908, float 0xBFE63416E0000000) #9
%1910 = tail call float @llvm.fmuladd.f32(float %1891, float %1909, float 0xBF84341260000000) #9
%1911 = tail call float @llvm.fmuladd.f32(float %1891, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%1912 = tail call float @llvm.fmuladd.f32(float %1891, float %1911, float 0x405B28A3E0000000) #9
%1913 = tail call float @llvm.fmuladd.f32(float %1891, float %1912, float 0x407AD02160000000) #9
%1914 = tail call float @llvm.fmuladd.f32(float %1891, float %1913, float 0x40842B1920000000) #9
%1915 = tail call float @llvm.fmuladd.f32(float %1891, float %1914, float 0x407B290DE0000000) #9
%1916 = tail call float @llvm.fmuladd.f32(float %1891, float %1915, float 0x4061350C60000000) #9
%1917 = tail call float @llvm.fmuladd.f32(float %1891, float %1916, float 0x4033A6B9C0000000) #9
%1918 = fcmp olt float %1884, 0x4006DB6DC0000000
%1919 = select i1 %1918, float %1910, float %1897
%1920 = select i1 %1918, float %1917, float %1903
%1921 = tail call float @llvm.fmuladd.f32(float %1891, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%1922 = tail call float @llvm.fmuladd.f32(float %1891, float %1921, float 0xBFBC639840000000) #9
%1923 = tail call float @llvm.fmuladd.f32(float %1891, float %1922, float 0x3FD45FCA80000000) #9
%1924 = tail call float @llvm.fmuladd.f32(float %1891, float %1923, float 0xBFD7D24100000000) #9
%1925 = tail call float @llvm.fmuladd.f32(float %1891, float %1924, float 0x3FDA8D00A0000000) #9
%1926 = tail call float @llvm.fmuladd.f32(float %1891, float %1925, float 0xBF6359B8C0000000) #9
%1927 = tail call float @llvm.fmuladd.f32(float %1891, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%1928 = tail call float @llvm.fmuladd.f32(float %1891, float %1927, float 0x3FC02660E0000000) #9
%1929 = tail call float @llvm.fmuladd.f32(float %1891, float %1928, float 0x3FB2635CE0000000) #9
%1930 = tail call float @llvm.fmuladd.f32(float %1891, float %1929, float 0x3FE14AF0A0000000) #9
%1931 = tail call float @llvm.fmuladd.f32(float %1891, float %1930, float 0x3FBB3E6620000000) #9
%1932 = select i1 %1888, float %1926, float %1919
%1933 = select i1 %1888, float %1931, float %1920
%1934 = tail call float @llvm.fmuladd.f32(float %1891, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%1935 = tail call float @llvm.fmuladd.f32(float %1891, float %1934, float 0xBF9D2A51E0000000) #9
%1936 = tail call float @llvm.fmuladd.f32(float %1891, float %1935, float 0xBFD4CD7D60000000) #9
%1937 = tail call float @llvm.fmuladd.f32(float %1891, float %1936, float 0x3FC06EBA80000000) #9
%1938 = tail call float @llvm.fmuladd.f32(float %1891, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%1939 = tail call float @llvm.fmuladd.f32(float %1891, float %1938, float 0x3F74D022C0000000) #9
%1940 = tail call float @llvm.fmuladd.f32(float %1891, float %1939, float 0x3FB0A54C60000000) #9
%1941 = tail call float @llvm.fmuladd.f32(float %1891, float %1940, float 0x3FD97779C0000000) #9
%1942 = select i1 %1890, float %1937, float %1932
%1943 = select i1 %1890, float %1941, float %1933
%1944 = tail call float @llvm.fmuladd.f32(float %1891, float %1943, float 1.000000e+00) #9
%1945 = fdiv float %1942, %1944, !fpmath !33
%1946 = and i32 %1882, 2147479552
%1947 = bitcast i32 %1946 to float
%1948 = fsub float -0.000000e+00, %1947
%1949 = tail call float @llvm.fmuladd.f32(float %1948, float %1947, float -5.625000e-01) #9
%1950 = fcmp olt float %1949, 0.000000e+00
%1951 = select i1 %1950, float -5.000000e-01, float 5.000000e-01
%1952 = tail call float @llvm.fmuladd.f32(float %1949, float 0x3FF7154760000000, float %1951) #9
%1953 = fptosi float %1952 to i32
%1954 = sitofp i32 %1953 to float
%1955 = tail call float @llvm.fmuladd.f32(float %1954, float 0xBFE62E3000000000, float %1949) #9
%1956 = fmul float %1954, 0xBEE2FEFA20000000
%1957 = fadd float %1955, %1956
%1958 = fmul float %1957, %1957
%1959 = tail call float @llvm.fmuladd.f32(float %1958, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%1960 = tail call float @llvm.fmuladd.f32(float %1958, float %1959, float 0x3F11566AA0000000) #9
%1961 = tail call float @llvm.fmuladd.f32(float %1958, float %1960, float 0xBF66C16C20000000) #9
%1962 = tail call float @llvm.fmuladd.f32(float %1958, float %1961, float 0x3FC5555560000000) #9
%1963 = fsub float -0.000000e+00, %1962
%1964 = tail call float @llvm.fmuladd.f32(float %1958, float %1963, float %1957) #9
%1965 = fsub float -0.000000e+00, %1956
%1966 = fmul float %1957, %1964
%1967 = fsub float 2.000000e+00, %1964
%1968 = fdiv float %1966, %1967, !fpmath !33
%1969 = fsub float %1965, %1968
%1970 = fsub float %1969, %1955
%1971 = fsub float 1.000000e+00, %1970
%1972 = bitcast float %1971 to i32
%1973 = shl i32 %1953, 23
%1974 = add nsw i32 %1972, %1973
%1975 = bitcast i32 %1974 to float
%1976 = fcmp olt float %1949, 0xC055D589E0000000
%1977 = select i1 %1976, float 0.000000e+00, float %1975
%1978 = fcmp olt float %1949, 0x40562E4300000000
%1979 = select i1 %1978, float %1977, float 0x7FF0000000000000
%1980 = fcmp uno float %1949, 0.000000e+00
%1981 = select i1 %1980, float %1949, float %1979
%1982 = fsub float %1947, %1884
%1983 = fadd float %1947, %1884
%1984 = tail call float @llvm.fmuladd.f32(float %1982, float %1983, float %1945) #9
%1985 = fcmp olt float %1984, 0.000000e+00
%1986 = select i1 %1985, float -5.000000e-01, float 5.000000e-01
%1987 = tail call float @llvm.fmuladd.f32(float %1984, float 0x3FF7154760000000, float %1986) #9
%1988 = fptosi float %1987 to i32
%1989 = sitofp i32 %1988 to float
%1990 = tail call float @llvm.fmuladd.f32(float %1989, float 0xBFE62E3000000000, float %1984) #9
%1991 = fmul float %1989, 0xBEE2FEFA20000000
%1992 = fadd float %1990, %1991
%1993 = fmul float %1992, %1992
%1994 = tail call float @llvm.fmuladd.f32(float %1993, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%1995 = tail call float @llvm.fmuladd.f32(float %1993, float %1994, float 0x3F11566AA0000000) #9
%1996 = tail call float @llvm.fmuladd.f32(float %1993, float %1995, float 0xBF66C16C20000000) #9
%1997 = tail call float @llvm.fmuladd.f32(float %1993, float %1996, float 0x3FC5555560000000) #9
%1998 = fsub float -0.000000e+00, %1997
%1999 = tail call float @llvm.fmuladd.f32(float %1993, float %1998, float %1992) #9
%2000 = fsub float -0.000000e+00, %1991
%2001 = fmul float %1992, %1999
%2002 = fsub float 2.000000e+00, %1999
%2003 = fdiv float %2001, %2002, !fpmath !33
%2004 = fsub float %2000, %2003
%2005 = fsub float %2004, %1990
%2006 = fsub float 1.000000e+00, %2005
%2007 = bitcast float %2006 to i32
%2008 = shl i32 %1988, 23
%2009 = add nsw i32 %2007, %2008
%2010 = bitcast i32 %2009 to float
%2011 = fcmp olt float %1984, 0xC055D589E0000000
%2012 = select i1 %2011, float 0.000000e+00, float %2010
%2013 = fcmp olt float %1984, 0x40562E4300000000
%2014 = select i1 %2013, float %2012, float 0x7FF0000000000000
%2015 = fcmp uno float %1984, 0.000000e+00
%2016 = select i1 %2015, float %1984, float %2014
%2017 = fmul float %1981, %2016
%2018 = fdiv float %2017, %1884, !fpmath !33
%2019 = fsub float 1.000000e+00, %2018
%2020 = fcmp olt float %1884, 6.000000e+00
%2021 = select i1 %2020, float %2019, float 1.000000e+00
%2022 = fadd float %1945, 0x3FEB0AC160000000
%2023 = select i1 %1888, float %2022, float %2021
%2024 = and i32 %1882, -2147483648
%2025 = bitcast float %2023 to i32
%2026 = or i32 %2025, %2024
%2027 = bitcast i32 %2026 to float
%2028 = tail call float @llvm.fmuladd.f32(float %mul215.1.1, float %1945, float %mul215.1.1) #9
%2029 = select i1 %1890, float %2028, float %2027
%2030 = fmul float %mul215.1.1, 0x3FF06EBA80000000
%2031 = tail call float @llvm.fmuladd.f32(float %mul215.1.1, float 8.000000e+00, float %2030) #9
%2032 = fmul float %2031, 1.250000e-01
%2033 = fcmp olt float %1884, 0x3E30000000000000
%2034 = select i1 %2033, float %2032, float %2029
%2035 = fcmp uno float %mul215.1.1, 0.000000e+00
%2036 = select i1 %2035, float %mul215.1.1, float %2034
%sub217.1.1 = fsub fast float %cond.1.1, %2036
%2037 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.1.1
%neg220.1.1 = fsub fast float -0.000000e+00, %2037
%2038 = tail call fast float @llvm.fmuladd.f32(float %div188.1.1, float %sub217.1.1, float %neg220.1.1)
%2039 = tail call fast float @llvm.fmuladd.f32(float %mul206.1.1, float %2038, float %E_el.5.1619)
%splat.splatinsert.1.1 = insertelement <3 x float> undef, float %1881, i32 0
%splat.splat.1.1 = shufflevector <3 x float> %splat.splatinsert.1.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.1.1 = fmul fast <3 x float> %splat.splat.1.1, %extractVec165.1.1
%extractVec233.1.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1620, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.1.1 = fsub fast <3 x float> %extractVec233.1.1, %mul225.1.1
%extractVec235.1.1 = shufflevector <3 x float> %sub234.1.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.1.1 = shufflevector <4 x float> %loadVec4243.1.3766, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.1.1 = fadd fast <3 x float> %mul225.1.1, %extractVec244.1.1
%extractVec246.1.1 = shufflevector <3 x float> %add245.1.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %2040
; <label>:2040: ; preds = %1858, %1849, %1848
%loadVec4243.1.3761 = phi <4 x float> [ %extractVec246.1.1, %1858 ], [ %loadVec4243.1.3766, %1849 ], [ %loadVec4243.1.3766, %1848 ]
%E_el.5.1.1 = phi float [ %2039, %1858 ], [ %E_el.5.1619, %1849 ], [ %E_el.5.1619, %1848 ]
%fcj_buf.sroa.0.1.1.1 = phi <4 x float> [ %extractVec235.1.1, %1858 ], [ %fcj_buf.sroa.0.1.1620, %1849 ], [ %fcj_buf.sroa.0.1.1620, %1848 ]
%E_lj.3.1.1 = phi float [ %add205.1.1, %1858 ], [ %E_lj.3.1621, %1849 ], [ %E_lj.3.1621, %1848 ]
%and144.2.1 = and i32 %57, 1024
%tobool145.2.1 = icmp eq i32 %and144.2.1, 0
br i1 %tobool145.2.1, label %2232, label %2041
; <label>:2041: ; preds = %2040
%2042 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.2.1, align 16, !tbaa !13
%2043 = fsub fast <4 x float> %2042, %1652
%2044 = extractelement <4 x float> %2043, i32 0
%2045 = extractelement <4 x float> %2043, i32 1
%2046 = fmul float %2045, %2045
%2047 = tail call float @llvm.fmuladd.f32(float %2044, float %2044, float %2046) #9
%2048 = extractelement <4 x float> %2043, i32 2
%2049 = tail call float @llvm.fmuladd.f32(float %2048, float %2048, float %2047) #9
%and167.2.1 = and i32 %58, 1024
%tobool168.2.1 = icmp ne i32 %and167.2.1, 0
%cond.2.1 = select i1 %tobool168.2.1, float 1.000000e+00, float 0.000000e+00
%cmp172.2.1 = icmp eq i32 %add147.2.1, %1651
%or.cond.2.1 = and i1 %cmp66, %cmp172.2.1
%not.or.cond.2.1 = xor i1 %or.cond.2.1, true
%cmp174..2.1 = or i1 %cmp174, %not.or.cond.2.1
%conv176.2.1 = uitofp i1 %cmp174..2.1 to float
%mul177.2.1 = fmul fast float %conv176.2.1, %nbparam_params.coerce.fca.9.extract
%cmp178.2.1 = fcmp fast olt float %2049, %mul177.2.1
br i1 %cmp178.2.1, label %2050, label %2232
; <label>:2050: ; preds = %2041
%extractVec165.2.1 = shufflevector <4 x float> %2043, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%2051 = extractelement <4 x float> %2042, i64 3
%2052 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.2.1, align 8, !tbaa !13
%2053 = extractelement <2 x float> %2052, i64 0
%mul184.2.1 = fmul fast float %2053, %1655
%2054 = extractelement <2 x float> %2052, i64 1
%mul185.2.1 = fmul fast float %2054, %1656
%2055 = fcmp ogt float %2049, 0x3E99A2B5C0000000
%2056 = select i1 %2055, float %2049, float 0x3E99A2B5C0000000
%2057 = tail call float @llvm.sqrt.f32(float %2056) #10
%div188.2.1 = fdiv fast float 1.000000e+00, %2057, !fpmath !33
%mul189.2.1 = fmul fast float %div188.2.1, %div188.2.1
%2058 = fmul fast float %mul189.2.1, %mul189.2.1
%mul191.2.1 = fmul fast float %2058, %cond.2.1
%mul192.2.1 = fmul fast float %mul191.2.1, %mul189.2.1
%neg.2.1 = fsub fast float -0.000000e+00, %mul184.2.1
%2059 = tail call fast float @llvm.fmuladd.f32(float %mul185.2.1, float %mul192.2.1, float %neg.2.1)
%mul194.2.1 = fmul fast float %mul192.2.1, %mul189.2.1
%mul195.2.1 = fmul fast float %mul194.2.1, %2059
%2060 = tail call fast float @llvm.fmuladd.f32(float %mul192.2.1, float %mul192.2.1, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.2.1 = fmul fast float %mul185.2.1, %2060
%add200.2.1 = fadd fast float %mul192.2.1, %nbparam_params.coerce.fca.13.2.extract
%mul202.2.1 = fmul fast float %add200.2.1, 0xBFC5555560000000
%neg203.2.1 = fmul fast float %mul202.2.1, %mul184.2.1
%2061 = tail call fast float @llvm.fmuladd.f32(float %mul197.2.1, float 0x3FB5555540000000, float %neg203.2.1)
%mul204.2.1 = fmul fast float %2061, %cond.2.1
%add205.2.1 = fadd fast float %mul204.2.1, %E_lj.3.1.1
%mul206.2.1 = fmul fast float %2051, %1653
%mul207.2.1 = fmul fast float %mul189.2.1, %cond.2.1
%mul209.2.1 = fmul fast float %2056, %mul
%mul.i.2.1 = fmul fast float %mul209.2.1, %mul209.2.1
%2062 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%2063 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%2064 = tail call fast float @llvm.fmuladd.f32(float %2062, float %mul.i.2.1, float 1.000000e+00) #9
%2065 = tail call fast float @llvm.fmuladd.f32(float %2063, float %mul209.2.1, float %2064) #9
%div.i.2.1 = fdiv fast float 1.000000e+00, %2065, !fpmath !33
%2066 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%2067 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%2068 = tail call fast float @llvm.fmuladd.f32(float %2066, float %mul.i.2.1, float 0xBF93BDB200000000) #9
%2069 = tail call fast float @llvm.fmuladd.f32(float %2067, float %mul.i.2.1, float 0x3FB1D5E760000000) #9
%2070 = tail call fast float @llvm.fmuladd.f32(float %2068, float %mul.i.2.1, float 0xBFE81272E0000000) #9
%2071 = tail call fast float @llvm.fmuladd.f32(float %2069, float %mul209.2.1, float %2070) #9
%mul7.2.1 = fmul fast float %mul11.i, %div.i.2.1
%mul211.2.1 = fmul fast float %mul7.2.1, %2071
%2072 = tail call fast float @llvm.fmuladd.f32(float %mul207.2.1, float %div188.2.1, float %mul211.2.1)
%2073 = tail call fast float @llvm.fmuladd.f32(float %mul206.2.1, float %2072, float %mul195.2.1)
%mul214.2.1 = fmul fast float %2056, %nbparam_params.coerce.fca.5.extract
%mul215.2.1 = fmul fast float %mul214.2.1, %div188.2.1
%2074 = bitcast float %mul215.2.1 to i32
%2075 = and i32 %2074, 2147483647
%2076 = bitcast i32 %2075 to float
%2077 = fmul float %2076, %2076
%2078 = fdiv float 1.000000e+00, %2077, !fpmath !33
%2079 = fadd float %2076, -1.000000e+00
%2080 = fcmp olt float %2076, 1.250000e+00
%2081 = select i1 %2080, float %2079, float %2078
%2082 = fcmp olt float %2076, 8.437500e-01
%2083 = select i1 %2082, float %2077, float %2081
%2084 = tail call float @llvm.fmuladd.f32(float %2083, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%2085 = tail call float @llvm.fmuladd.f32(float %2083, float %2084, float 0xC083EC8820000000) #9
%2086 = tail call float @llvm.fmuladd.f32(float %2083, float %2085, float 0xC064145D40000000) #9
%2087 = tail call float @llvm.fmuladd.f32(float %2083, float %2086, float 0xC031C20960000000) #9
%2088 = tail call float @llvm.fmuladd.f32(float %2083, float %2087, float 0xBFE993BA80000000) #9
%2089 = tail call float @llvm.fmuladd.f32(float %2083, float %2088, float 0xBF84341240000000) #9
%2090 = tail call float @llvm.fmuladd.f32(float %2083, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%2091 = tail call float @llvm.fmuladd.f32(float %2083, float %2090, float 0x40A3F219C0000000) #9
%2092 = tail call float @llvm.fmuladd.f32(float %2083, float %2091, float 0x40A8FFB760000000) #9
%2093 = tail call float @llvm.fmuladd.f32(float %2083, float %2092, float 0x409802EB20000000) #9
%2094 = tail call float @llvm.fmuladd.f32(float %2083, float %2093, float 0x40745CAE20000000) #9
%2095 = tail call float @llvm.fmuladd.f32(float %2083, float %2094, float 0x403E568B20000000) #9
%2096 = tail call float @llvm.fmuladd.f32(float %2083, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%2097 = tail call float @llvm.fmuladd.f32(float %2083, float %2096, float 0xC067135CE0000000) #9
%2098 = tail call float @llvm.fmuladd.f32(float %2083, float %2097, float 0xC0644CB180000000) #9
%2099 = tail call float @llvm.fmuladd.f32(float %2083, float %2098, float 0xC04F300AE0000000) #9
%2100 = tail call float @llvm.fmuladd.f32(float %2083, float %2099, float 0xC0251E0440000000) #9
%2101 = tail call float @llvm.fmuladd.f32(float %2083, float %2100, float 0xBFE63416E0000000) #9
%2102 = tail call float @llvm.fmuladd.f32(float %2083, float %2101, float 0xBF84341260000000) #9
%2103 = tail call float @llvm.fmuladd.f32(float %2083, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%2104 = tail call float @llvm.fmuladd.f32(float %2083, float %2103, float 0x405B28A3E0000000) #9
%2105 = tail call float @llvm.fmuladd.f32(float %2083, float %2104, float 0x407AD02160000000) #9
%2106 = tail call float @llvm.fmuladd.f32(float %2083, float %2105, float 0x40842B1920000000) #9
%2107 = tail call float @llvm.fmuladd.f32(float %2083, float %2106, float 0x407B290DE0000000) #9
%2108 = tail call float @llvm.fmuladd.f32(float %2083, float %2107, float 0x4061350C60000000) #9
%2109 = tail call float @llvm.fmuladd.f32(float %2083, float %2108, float 0x4033A6B9C0000000) #9
%2110 = fcmp olt float %2076, 0x4006DB6DC0000000
%2111 = select i1 %2110, float %2102, float %2089
%2112 = select i1 %2110, float %2109, float %2095
%2113 = tail call float @llvm.fmuladd.f32(float %2083, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%2114 = tail call float @llvm.fmuladd.f32(float %2083, float %2113, float 0xBFBC639840000000) #9
%2115 = tail call float @llvm.fmuladd.f32(float %2083, float %2114, float 0x3FD45FCA80000000) #9
%2116 = tail call float @llvm.fmuladd.f32(float %2083, float %2115, float 0xBFD7D24100000000) #9
%2117 = tail call float @llvm.fmuladd.f32(float %2083, float %2116, float 0x3FDA8D00A0000000) #9
%2118 = tail call float @llvm.fmuladd.f32(float %2083, float %2117, float 0xBF6359B8C0000000) #9
%2119 = tail call float @llvm.fmuladd.f32(float %2083, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%2120 = tail call float @llvm.fmuladd.f32(float %2083, float %2119, float 0x3FC02660E0000000) #9
%2121 = tail call float @llvm.fmuladd.f32(float %2083, float %2120, float 0x3FB2635CE0000000) #9
%2122 = tail call float @llvm.fmuladd.f32(float %2083, float %2121, float 0x3FE14AF0A0000000) #9
%2123 = tail call float @llvm.fmuladd.f32(float %2083, float %2122, float 0x3FBB3E6620000000) #9
%2124 = select i1 %2080, float %2118, float %2111
%2125 = select i1 %2080, float %2123, float %2112
%2126 = tail call float @llvm.fmuladd.f32(float %2083, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%2127 = tail call float @llvm.fmuladd.f32(float %2083, float %2126, float 0xBF9D2A51E0000000) #9
%2128 = tail call float @llvm.fmuladd.f32(float %2083, float %2127, float 0xBFD4CD7D60000000) #9
%2129 = tail call float @llvm.fmuladd.f32(float %2083, float %2128, float 0x3FC06EBA80000000) #9
%2130 = tail call float @llvm.fmuladd.f32(float %2083, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%2131 = tail call float @llvm.fmuladd.f32(float %2083, float %2130, float 0x3F74D022C0000000) #9
%2132 = tail call float @llvm.fmuladd.f32(float %2083, float %2131, float 0x3FB0A54C60000000) #9
%2133 = tail call float @llvm.fmuladd.f32(float %2083, float %2132, float 0x3FD97779C0000000) #9
%2134 = select i1 %2082, float %2129, float %2124
%2135 = select i1 %2082, float %2133, float %2125
%2136 = tail call float @llvm.fmuladd.f32(float %2083, float %2135, float 1.000000e+00) #9
%2137 = fdiv float %2134, %2136, !fpmath !33
%2138 = and i32 %2074, 2147479552
%2139 = bitcast i32 %2138 to float
%2140 = fsub float -0.000000e+00, %2139
%2141 = tail call float @llvm.fmuladd.f32(float %2140, float %2139, float -5.625000e-01) #9
%2142 = fcmp olt float %2141, 0.000000e+00
%2143 = select i1 %2142, float -5.000000e-01, float 5.000000e-01
%2144 = tail call float @llvm.fmuladd.f32(float %2141, float 0x3FF7154760000000, float %2143) #9
%2145 = fptosi float %2144 to i32
%2146 = sitofp i32 %2145 to float
%2147 = tail call float @llvm.fmuladd.f32(float %2146, float 0xBFE62E3000000000, float %2141) #9
%2148 = fmul float %2146, 0xBEE2FEFA20000000
%2149 = fadd float %2147, %2148
%2150 = fmul float %2149, %2149
%2151 = tail call float @llvm.fmuladd.f32(float %2150, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%2152 = tail call float @llvm.fmuladd.f32(float %2150, float %2151, float 0x3F11566AA0000000) #9
%2153 = tail call float @llvm.fmuladd.f32(float %2150, float %2152, float 0xBF66C16C20000000) #9
%2154 = tail call float @llvm.fmuladd.f32(float %2150, float %2153, float 0x3FC5555560000000) #9
%2155 = fsub float -0.000000e+00, %2154
%2156 = tail call float @llvm.fmuladd.f32(float %2150, float %2155, float %2149) #9
%2157 = fsub float -0.000000e+00, %2148
%2158 = fmul float %2149, %2156
%2159 = fsub float 2.000000e+00, %2156
%2160 = fdiv float %2158, %2159, !fpmath !33
%2161 = fsub float %2157, %2160
%2162 = fsub float %2161, %2147
%2163 = fsub float 1.000000e+00, %2162
%2164 = bitcast float %2163 to i32
%2165 = shl i32 %2145, 23
%2166 = add nsw i32 %2164, %2165
%2167 = bitcast i32 %2166 to float
%2168 = fcmp olt float %2141, 0xC055D589E0000000
%2169 = select i1 %2168, float 0.000000e+00, float %2167
%2170 = fcmp olt float %2141, 0x40562E4300000000
%2171 = select i1 %2170, float %2169, float 0x7FF0000000000000
%2172 = fcmp uno float %2141, 0.000000e+00
%2173 = select i1 %2172, float %2141, float %2171
%2174 = fsub float %2139, %2076
%2175 = fadd float %2139, %2076
%2176 = tail call float @llvm.fmuladd.f32(float %2174, float %2175, float %2137) #9
%2177 = fcmp olt float %2176, 0.000000e+00
%2178 = select i1 %2177, float -5.000000e-01, float 5.000000e-01
%2179 = tail call float @llvm.fmuladd.f32(float %2176, float 0x3FF7154760000000, float %2178) #9
%2180 = fptosi float %2179 to i32
%2181 = sitofp i32 %2180 to float
%2182 = tail call float @llvm.fmuladd.f32(float %2181, float 0xBFE62E3000000000, float %2176) #9
%2183 = fmul float %2181, 0xBEE2FEFA20000000
%2184 = fadd float %2182, %2183
%2185 = fmul float %2184, %2184
%2186 = tail call float @llvm.fmuladd.f32(float %2185, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%2187 = tail call float @llvm.fmuladd.f32(float %2185, float %2186, float 0x3F11566AA0000000) #9
%2188 = tail call float @llvm.fmuladd.f32(float %2185, float %2187, float 0xBF66C16C20000000) #9
%2189 = tail call float @llvm.fmuladd.f32(float %2185, float %2188, float 0x3FC5555560000000) #9
%2190 = fsub float -0.000000e+00, %2189
%2191 = tail call float @llvm.fmuladd.f32(float %2185, float %2190, float %2184) #9
%2192 = fsub float -0.000000e+00, %2183
%2193 = fmul float %2184, %2191
%2194 = fsub float 2.000000e+00, %2191
%2195 = fdiv float %2193, %2194, !fpmath !33
%2196 = fsub float %2192, %2195
%2197 = fsub float %2196, %2182
%2198 = fsub float 1.000000e+00, %2197
%2199 = bitcast float %2198 to i32
%2200 = shl i32 %2180, 23
%2201 = add nsw i32 %2199, %2200
%2202 = bitcast i32 %2201 to float
%2203 = fcmp olt float %2176, 0xC055D589E0000000
%2204 = select i1 %2203, float 0.000000e+00, float %2202
%2205 = fcmp olt float %2176, 0x40562E4300000000
%2206 = select i1 %2205, float %2204, float 0x7FF0000000000000
%2207 = fcmp uno float %2176, 0.000000e+00
%2208 = select i1 %2207, float %2176, float %2206
%2209 = fmul float %2173, %2208
%2210 = fdiv float %2209, %2076, !fpmath !33
%2211 = fsub float 1.000000e+00, %2210
%2212 = fcmp olt float %2076, 6.000000e+00
%2213 = select i1 %2212, float %2211, float 1.000000e+00
%2214 = fadd float %2137, 0x3FEB0AC160000000
%2215 = select i1 %2080, float %2214, float %2213
%2216 = and i32 %2074, -2147483648
%2217 = bitcast float %2215 to i32
%2218 = or i32 %2217, %2216
%2219 = bitcast i32 %2218 to float
%2220 = tail call float @llvm.fmuladd.f32(float %mul215.2.1, float %2137, float %mul215.2.1) #9
%2221 = select i1 %2082, float %2220, float %2219
%2222 = fmul float %mul215.2.1, 0x3FF06EBA80000000
%2223 = tail call float @llvm.fmuladd.f32(float %mul215.2.1, float 8.000000e+00, float %2222) #9
%2224 = fmul float %2223, 1.250000e-01
%2225 = fcmp olt float %2076, 0x3E30000000000000
%2226 = select i1 %2225, float %2224, float %2221
%2227 = fcmp uno float %mul215.2.1, 0.000000e+00
%2228 = select i1 %2227, float %mul215.2.1, float %2226
%sub217.2.1 = fsub fast float %cond.2.1, %2228
%2229 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.2.1
%neg220.2.1 = fsub fast float -0.000000e+00, %2229
%2230 = tail call fast float @llvm.fmuladd.f32(float %div188.2.1, float %sub217.2.1, float %neg220.2.1)
%2231 = tail call fast float @llvm.fmuladd.f32(float %mul206.2.1, float %2230, float %E_el.5.1.1)
%splat.splatinsert.2.1 = insertelement <3 x float> undef, float %2073, i32 0
%splat.splat.2.1 = shufflevector <3 x float> %splat.splatinsert.2.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.2.1 = fmul fast <3 x float> %splat.splat.2.1, %extractVec165.2.1
%extractVec233.2.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.2.1 = fsub fast <3 x float> %extractVec233.2.1, %mul225.2.1
%extractVec235.2.1 = shufflevector <3 x float> %sub234.2.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.2.1 = shufflevector <4 x float> %loadVec4243.2.3775, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.2.1 = fadd fast <3 x float> %mul225.2.1, %extractVec244.2.1
%extractVec246.2.1 = shufflevector <3 x float> %add245.2.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %2232
; <label>:2232: ; preds = %2050, %2041, %2040
%loadVec4243.2.3770 = phi <4 x float> [ %extractVec246.2.1, %2050 ], [ %loadVec4243.2.3775, %2041 ], [ %loadVec4243.2.3775, %2040 ]
%E_el.5.2.1 = phi float [ %2231, %2050 ], [ %E_el.5.1.1, %2041 ], [ %E_el.5.1.1, %2040 ]
%fcj_buf.sroa.0.1.2.1 = phi <4 x float> [ %extractVec235.2.1, %2050 ], [ %fcj_buf.sroa.0.1.1.1, %2041 ], [ %fcj_buf.sroa.0.1.1.1, %2040 ]
%E_lj.3.2.1 = phi float [ %add205.2.1, %2050 ], [ %E_lj.3.1.1, %2041 ], [ %E_lj.3.1.1, %2040 ]
%and144.3.1 = and i32 %57, 2048
%tobool145.3.1 = icmp eq i32 %and144.3.1, 0
br i1 %tobool145.3.1, label %2424, label %2233
; <label>:2233: ; preds = %2232
%2234 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.3.1, align 16, !tbaa !13
%2235 = fsub fast <4 x float> %2234, %1652
%2236 = extractelement <4 x float> %2235, i32 0
%2237 = extractelement <4 x float> %2235, i32 1
%2238 = fmul float %2237, %2237
%2239 = tail call float @llvm.fmuladd.f32(float %2236, float %2236, float %2238) #9
%2240 = extractelement <4 x float> %2235, i32 2
%2241 = tail call float @llvm.fmuladd.f32(float %2240, float %2240, float %2239) #9
%and167.3.1 = and i32 %58, 2048
%tobool168.3.1 = icmp ne i32 %and167.3.1, 0
%cond.3.1 = select i1 %tobool168.3.1, float 1.000000e+00, float 0.000000e+00
%cmp172.3.1 = icmp eq i32 %add147.3.1, %1651
%or.cond.3.1 = and i1 %cmp66, %cmp172.3.1
%not.or.cond.3.1 = xor i1 %or.cond.3.1, true
%cmp174..3.1 = or i1 %cmp174, %not.or.cond.3.1
%conv176.3.1 = uitofp i1 %cmp174..3.1 to float
%mul177.3.1 = fmul fast float %conv176.3.1, %nbparam_params.coerce.fca.9.extract
%cmp178.3.1 = fcmp fast olt float %2241, %mul177.3.1
br i1 %cmp178.3.1, label %2242, label %2424
; <label>:2242: ; preds = %2233
%extractVec165.3.1 = shufflevector <4 x float> %2235, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%2243 = extractelement <4 x float> %2234, i64 3
%2244 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.3.1, align 8, !tbaa !13
%2245 = extractelement <2 x float> %2244, i64 0
%mul184.3.1 = fmul fast float %2245, %1655
%2246 = extractelement <2 x float> %2244, i64 1
%mul185.3.1 = fmul fast float %2246, %1656
%2247 = fcmp ogt float %2241, 0x3E99A2B5C0000000
%2248 = select i1 %2247, float %2241, float 0x3E99A2B5C0000000
%2249 = tail call float @llvm.sqrt.f32(float %2248) #10
%div188.3.1 = fdiv fast float 1.000000e+00, %2249, !fpmath !33
%mul189.3.1 = fmul fast float %div188.3.1, %div188.3.1
%2250 = fmul fast float %mul189.3.1, %mul189.3.1
%mul191.3.1 = fmul fast float %2250, %cond.3.1
%mul192.3.1 = fmul fast float %mul191.3.1, %mul189.3.1
%neg.3.1 = fsub fast float -0.000000e+00, %mul184.3.1
%2251 = tail call fast float @llvm.fmuladd.f32(float %mul185.3.1, float %mul192.3.1, float %neg.3.1)
%mul194.3.1 = fmul fast float %mul192.3.1, %mul189.3.1
%mul195.3.1 = fmul fast float %mul194.3.1, %2251
%2252 = tail call fast float @llvm.fmuladd.f32(float %mul192.3.1, float %mul192.3.1, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.3.1 = fmul fast float %mul185.3.1, %2252
%add200.3.1 = fadd fast float %mul192.3.1, %nbparam_params.coerce.fca.13.2.extract
%mul202.3.1 = fmul fast float %add200.3.1, 0xBFC5555560000000
%neg203.3.1 = fmul fast float %mul202.3.1, %mul184.3.1
%2253 = tail call fast float @llvm.fmuladd.f32(float %mul197.3.1, float 0x3FB5555540000000, float %neg203.3.1)
%mul204.3.1 = fmul fast float %2253, %cond.3.1
%add205.3.1 = fadd fast float %mul204.3.1, %E_lj.3.2.1
%mul206.3.1 = fmul fast float %2243, %1653
%mul207.3.1 = fmul fast float %mul189.3.1, %cond.3.1
%mul209.3.1 = fmul fast float %2248, %mul
%mul.i.3.1 = fmul fast float %mul209.3.1, %mul209.3.1
%2254 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%2255 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%2256 = tail call fast float @llvm.fmuladd.f32(float %2254, float %mul.i.3.1, float 1.000000e+00) #9
%2257 = tail call fast float @llvm.fmuladd.f32(float %2255, float %mul209.3.1, float %2256) #9
%div.i.3.1 = fdiv fast float 1.000000e+00, %2257, !fpmath !33
%2258 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%2259 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%2260 = tail call fast float @llvm.fmuladd.f32(float %2258, float %mul.i.3.1, float 0xBF93BDB200000000) #9
%2261 = tail call fast float @llvm.fmuladd.f32(float %2259, float %mul.i.3.1, float 0x3FB1D5E760000000) #9
%2262 = tail call fast float @llvm.fmuladd.f32(float %2260, float %mul.i.3.1, float 0xBFE81272E0000000) #9
%2263 = tail call fast float @llvm.fmuladd.f32(float %2261, float %mul209.3.1, float %2262) #9
%mul7.3.1 = fmul fast float %mul11.i, %div.i.3.1
%mul211.3.1 = fmul fast float %mul7.3.1, %2263
%2264 = tail call fast float @llvm.fmuladd.f32(float %mul207.3.1, float %div188.3.1, float %mul211.3.1)
%2265 = tail call fast float @llvm.fmuladd.f32(float %mul206.3.1, float %2264, float %mul195.3.1)
%mul214.3.1 = fmul fast float %2248, %nbparam_params.coerce.fca.5.extract
%mul215.3.1 = fmul fast float %mul214.3.1, %div188.3.1
%2266 = bitcast float %mul215.3.1 to i32
%2267 = and i32 %2266, 2147483647
%2268 = bitcast i32 %2267 to float
%2269 = fmul float %2268, %2268
%2270 = fdiv float 1.000000e+00, %2269, !fpmath !33
%2271 = fadd float %2268, -1.000000e+00
%2272 = fcmp olt float %2268, 1.250000e+00
%2273 = select i1 %2272, float %2271, float %2270
%2274 = fcmp olt float %2268, 8.437500e-01
%2275 = select i1 %2274, float %2269, float %2273
%2276 = tail call float @llvm.fmuladd.f32(float %2275, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%2277 = tail call float @llvm.fmuladd.f32(float %2275, float %2276, float 0xC083EC8820000000) #9
%2278 = tail call float @llvm.fmuladd.f32(float %2275, float %2277, float 0xC064145D40000000) #9
%2279 = tail call float @llvm.fmuladd.f32(float %2275, float %2278, float 0xC031C20960000000) #9
%2280 = tail call float @llvm.fmuladd.f32(float %2275, float %2279, float 0xBFE993BA80000000) #9
%2281 = tail call float @llvm.fmuladd.f32(float %2275, float %2280, float 0xBF84341240000000) #9
%2282 = tail call float @llvm.fmuladd.f32(float %2275, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%2283 = tail call float @llvm.fmuladd.f32(float %2275, float %2282, float 0x40A3F219C0000000) #9
%2284 = tail call float @llvm.fmuladd.f32(float %2275, float %2283, float 0x40A8FFB760000000) #9
%2285 = tail call float @llvm.fmuladd.f32(float %2275, float %2284, float 0x409802EB20000000) #9
%2286 = tail call float @llvm.fmuladd.f32(float %2275, float %2285, float 0x40745CAE20000000) #9
%2287 = tail call float @llvm.fmuladd.f32(float %2275, float %2286, float 0x403E568B20000000) #9
%2288 = tail call float @llvm.fmuladd.f32(float %2275, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%2289 = tail call float @llvm.fmuladd.f32(float %2275, float %2288, float 0xC067135CE0000000) #9
%2290 = tail call float @llvm.fmuladd.f32(float %2275, float %2289, float 0xC0644CB180000000) #9
%2291 = tail call float @llvm.fmuladd.f32(float %2275, float %2290, float 0xC04F300AE0000000) #9
%2292 = tail call float @llvm.fmuladd.f32(float %2275, float %2291, float 0xC0251E0440000000) #9
%2293 = tail call float @llvm.fmuladd.f32(float %2275, float %2292, float 0xBFE63416E0000000) #9
%2294 = tail call float @llvm.fmuladd.f32(float %2275, float %2293, float 0xBF84341260000000) #9
%2295 = tail call float @llvm.fmuladd.f32(float %2275, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%2296 = tail call float @llvm.fmuladd.f32(float %2275, float %2295, float 0x405B28A3E0000000) #9
%2297 = tail call float @llvm.fmuladd.f32(float %2275, float %2296, float 0x407AD02160000000) #9
%2298 = tail call float @llvm.fmuladd.f32(float %2275, float %2297, float 0x40842B1920000000) #9
%2299 = tail call float @llvm.fmuladd.f32(float %2275, float %2298, float 0x407B290DE0000000) #9
%2300 = tail call float @llvm.fmuladd.f32(float %2275, float %2299, float 0x4061350C60000000) #9
%2301 = tail call float @llvm.fmuladd.f32(float %2275, float %2300, float 0x4033A6B9C0000000) #9
%2302 = fcmp olt float %2268, 0x4006DB6DC0000000
%2303 = select i1 %2302, float %2294, float %2281
%2304 = select i1 %2302, float %2301, float %2287
%2305 = tail call float @llvm.fmuladd.f32(float %2275, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%2306 = tail call float @llvm.fmuladd.f32(float %2275, float %2305, float 0xBFBC639840000000) #9
%2307 = tail call float @llvm.fmuladd.f32(float %2275, float %2306, float 0x3FD45FCA80000000) #9
%2308 = tail call float @llvm.fmuladd.f32(float %2275, float %2307, float 0xBFD7D24100000000) #9
%2309 = tail call float @llvm.fmuladd.f32(float %2275, float %2308, float 0x3FDA8D00A0000000) #9
%2310 = tail call float @llvm.fmuladd.f32(float %2275, float %2309, float 0xBF6359B8C0000000) #9
%2311 = tail call float @llvm.fmuladd.f32(float %2275, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%2312 = tail call float @llvm.fmuladd.f32(float %2275, float %2311, float 0x3FC02660E0000000) #9
%2313 = tail call float @llvm.fmuladd.f32(float %2275, float %2312, float 0x3FB2635CE0000000) #9
%2314 = tail call float @llvm.fmuladd.f32(float %2275, float %2313, float 0x3FE14AF0A0000000) #9
%2315 = tail call float @llvm.fmuladd.f32(float %2275, float %2314, float 0x3FBB3E6620000000) #9
%2316 = select i1 %2272, float %2310, float %2303
%2317 = select i1 %2272, float %2315, float %2304
%2318 = tail call float @llvm.fmuladd.f32(float %2275, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%2319 = tail call float @llvm.fmuladd.f32(float %2275, float %2318, float 0xBF9D2A51E0000000) #9
%2320 = tail call float @llvm.fmuladd.f32(float %2275, float %2319, float 0xBFD4CD7D60000000) #9
%2321 = tail call float @llvm.fmuladd.f32(float %2275, float %2320, float 0x3FC06EBA80000000) #9
%2322 = tail call float @llvm.fmuladd.f32(float %2275, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%2323 = tail call float @llvm.fmuladd.f32(float %2275, float %2322, float 0x3F74D022C0000000) #9
%2324 = tail call float @llvm.fmuladd.f32(float %2275, float %2323, float 0x3FB0A54C60000000) #9
%2325 = tail call float @llvm.fmuladd.f32(float %2275, float %2324, float 0x3FD97779C0000000) #9
%2326 = select i1 %2274, float %2321, float %2316
%2327 = select i1 %2274, float %2325, float %2317
%2328 = tail call float @llvm.fmuladd.f32(float %2275, float %2327, float 1.000000e+00) #9
%2329 = fdiv float %2326, %2328, !fpmath !33
%2330 = and i32 %2266, 2147479552
%2331 = bitcast i32 %2330 to float
%2332 = fsub float -0.000000e+00, %2331
%2333 = tail call float @llvm.fmuladd.f32(float %2332, float %2331, float -5.625000e-01) #9
%2334 = fcmp olt float %2333, 0.000000e+00
%2335 = select i1 %2334, float -5.000000e-01, float 5.000000e-01
%2336 = tail call float @llvm.fmuladd.f32(float %2333, float 0x3FF7154760000000, float %2335) #9
%2337 = fptosi float %2336 to i32
%2338 = sitofp i32 %2337 to float
%2339 = tail call float @llvm.fmuladd.f32(float %2338, float 0xBFE62E3000000000, float %2333) #9
%2340 = fmul float %2338, 0xBEE2FEFA20000000
%2341 = fadd float %2339, %2340
%2342 = fmul float %2341, %2341
%2343 = tail call float @llvm.fmuladd.f32(float %2342, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%2344 = tail call float @llvm.fmuladd.f32(float %2342, float %2343, float 0x3F11566AA0000000) #9
%2345 = tail call float @llvm.fmuladd.f32(float %2342, float %2344, float 0xBF66C16C20000000) #9
%2346 = tail call float @llvm.fmuladd.f32(float %2342, float %2345, float 0x3FC5555560000000) #9
%2347 = fsub float -0.000000e+00, %2346
%2348 = tail call float @llvm.fmuladd.f32(float %2342, float %2347, float %2341) #9
%2349 = fsub float -0.000000e+00, %2340
%2350 = fmul float %2341, %2348
%2351 = fsub float 2.000000e+00, %2348
%2352 = fdiv float %2350, %2351, !fpmath !33
%2353 = fsub float %2349, %2352
%2354 = fsub float %2353, %2339
%2355 = fsub float 1.000000e+00, %2354
%2356 = bitcast float %2355 to i32
%2357 = shl i32 %2337, 23
%2358 = add nsw i32 %2356, %2357
%2359 = bitcast i32 %2358 to float
%2360 = fcmp olt float %2333, 0xC055D589E0000000
%2361 = select i1 %2360, float 0.000000e+00, float %2359
%2362 = fcmp olt float %2333, 0x40562E4300000000
%2363 = select i1 %2362, float %2361, float 0x7FF0000000000000
%2364 = fcmp uno float %2333, 0.000000e+00
%2365 = select i1 %2364, float %2333, float %2363
%2366 = fsub float %2331, %2268
%2367 = fadd float %2331, %2268
%2368 = tail call float @llvm.fmuladd.f32(float %2366, float %2367, float %2329) #9
%2369 = fcmp olt float %2368, 0.000000e+00
%2370 = select i1 %2369, float -5.000000e-01, float 5.000000e-01
%2371 = tail call float @llvm.fmuladd.f32(float %2368, float 0x3FF7154760000000, float %2370) #9
%2372 = fptosi float %2371 to i32
%2373 = sitofp i32 %2372 to float
%2374 = tail call float @llvm.fmuladd.f32(float %2373, float 0xBFE62E3000000000, float %2368) #9
%2375 = fmul float %2373, 0xBEE2FEFA20000000
%2376 = fadd float %2374, %2375
%2377 = fmul float %2376, %2376
%2378 = tail call float @llvm.fmuladd.f32(float %2377, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%2379 = tail call float @llvm.fmuladd.f32(float %2377, float %2378, float 0x3F11566AA0000000) #9
%2380 = tail call float @llvm.fmuladd.f32(float %2377, float %2379, float 0xBF66C16C20000000) #9
%2381 = tail call float @llvm.fmuladd.f32(float %2377, float %2380, float 0x3FC5555560000000) #9
%2382 = fsub float -0.000000e+00, %2381
%2383 = tail call float @llvm.fmuladd.f32(float %2377, float %2382, float %2376) #9
%2384 = fsub float -0.000000e+00, %2375
%2385 = fmul float %2376, %2383
%2386 = fsub float 2.000000e+00, %2383
%2387 = fdiv float %2385, %2386, !fpmath !33
%2388 = fsub float %2384, %2387
%2389 = fsub float %2388, %2374
%2390 = fsub float 1.000000e+00, %2389
%2391 = bitcast float %2390 to i32
%2392 = shl i32 %2372, 23
%2393 = add nsw i32 %2391, %2392
%2394 = bitcast i32 %2393 to float
%2395 = fcmp olt float %2368, 0xC055D589E0000000
%2396 = select i1 %2395, float 0.000000e+00, float %2394
%2397 = fcmp olt float %2368, 0x40562E4300000000
%2398 = select i1 %2397, float %2396, float 0x7FF0000000000000
%2399 = fcmp uno float %2368, 0.000000e+00
%2400 = select i1 %2399, float %2368, float %2398
%2401 = fmul float %2365, %2400
%2402 = fdiv float %2401, %2268, !fpmath !33
%2403 = fsub float 1.000000e+00, %2402
%2404 = fcmp olt float %2268, 6.000000e+00
%2405 = select i1 %2404, float %2403, float 1.000000e+00
%2406 = fadd float %2329, 0x3FEB0AC160000000
%2407 = select i1 %2272, float %2406, float %2405
%2408 = and i32 %2266, -2147483648
%2409 = bitcast float %2407 to i32
%2410 = or i32 %2409, %2408
%2411 = bitcast i32 %2410 to float
%2412 = tail call float @llvm.fmuladd.f32(float %mul215.3.1, float %2329, float %mul215.3.1) #9
%2413 = select i1 %2274, float %2412, float %2411
%2414 = fmul float %mul215.3.1, 0x3FF06EBA80000000
%2415 = tail call float @llvm.fmuladd.f32(float %mul215.3.1, float 8.000000e+00, float %2414) #9
%2416 = fmul float %2415, 1.250000e-01
%2417 = fcmp olt float %2268, 0x3E30000000000000
%2418 = select i1 %2417, float %2416, float %2413
%2419 = fcmp uno float %mul215.3.1, 0.000000e+00
%2420 = select i1 %2419, float %mul215.3.1, float %2418
%sub217.3.1 = fsub fast float %cond.3.1, %2420
%2421 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.3.1
%neg220.3.1 = fsub fast float -0.000000e+00, %2421
%2422 = tail call fast float @llvm.fmuladd.f32(float %div188.3.1, float %sub217.3.1, float %neg220.3.1)
%2423 = tail call fast float @llvm.fmuladd.f32(float %mul206.3.1, float %2422, float %E_el.5.2.1)
%splat.splatinsert.3.1 = insertelement <3 x float> undef, float %2265, i32 0
%splat.splat.3.1 = shufflevector <3 x float> %splat.splatinsert.3.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.3.1 = fmul fast <3 x float> %splat.splat.3.1, %extractVec165.3.1
%extractVec233.3.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.3.1 = fsub fast <3 x float> %extractVec233.3.1, %mul225.3.1
%extractVec235.3.1 = shufflevector <3 x float> %sub234.3.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.3.1 = shufflevector <4 x float> %loadVec4243.3.3784, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.3.1 = fadd fast <3 x float> %mul225.3.1, %extractVec244.3.1
%extractVec246.3.1 = shufflevector <3 x float> %add245.3.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %2424
; <label>:2424: ; preds = %2242, %2233, %2232
%loadVec4243.3.3779 = phi <4 x float> [ %extractVec246.3.1, %2242 ], [ %loadVec4243.3.3784, %2233 ], [ %loadVec4243.3.3784, %2232 ]
%E_el.5.3.1 = phi float [ %2423, %2242 ], [ %E_el.5.2.1, %2233 ], [ %E_el.5.2.1, %2232 ]
%fcj_buf.sroa.0.1.3.1 = phi <4 x float> [ %extractVec235.3.1, %2242 ], [ %fcj_buf.sroa.0.1.2.1, %2233 ], [ %fcj_buf.sroa.0.1.2.1, %2232 ]
%E_lj.3.3.1 = phi float [ %add205.3.1, %2242 ], [ %E_lj.3.2.1, %2233 ], [ %E_lj.3.2.1, %2232 ]
%and144.4.1 = and i32 %57, 4096
%tobool145.4.1 = icmp eq i32 %and144.4.1, 0
br i1 %tobool145.4.1, label %2616, label %2425
; <label>:2425: ; preds = %2424
%2426 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.4.1, align 16, !tbaa !13
%2427 = fsub fast <4 x float> %2426, %1652
%2428 = extractelement <4 x float> %2427, i32 0
%2429 = extractelement <4 x float> %2427, i32 1
%2430 = fmul float %2429, %2429
%2431 = tail call float @llvm.fmuladd.f32(float %2428, float %2428, float %2430) #9
%2432 = extractelement <4 x float> %2427, i32 2
%2433 = tail call float @llvm.fmuladd.f32(float %2432, float %2432, float %2431) #9
%and167.4.1 = and i32 %58, 4096
%tobool168.4.1 = icmp ne i32 %and167.4.1, 0
%cond.4.1 = select i1 %tobool168.4.1, float 1.000000e+00, float 0.000000e+00
%cmp172.4.1 = icmp eq i32 %add147.4.1, %1651
%or.cond.4.1 = and i1 %cmp66, %cmp172.4.1
%not.or.cond.4.1 = xor i1 %or.cond.4.1, true
%cmp174..4.1 = or i1 %cmp174, %not.or.cond.4.1
%conv176.4.1 = uitofp i1 %cmp174..4.1 to float
%mul177.4.1 = fmul fast float %conv176.4.1, %nbparam_params.coerce.fca.9.extract
%cmp178.4.1 = fcmp fast olt float %2433, %mul177.4.1
br i1 %cmp178.4.1, label %2434, label %2616
; <label>:2434: ; preds = %2425
%extractVec165.4.1 = shufflevector <4 x float> %2427, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%2435 = extractelement <4 x float> %2426, i64 3
%2436 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.4.1, align 8, !tbaa !13
%2437 = extractelement <2 x float> %2436, i64 0
%mul184.4.1 = fmul fast float %2437, %1655
%2438 = extractelement <2 x float> %2436, i64 1
%mul185.4.1 = fmul fast float %2438, %1656
%2439 = fcmp ogt float %2433, 0x3E99A2B5C0000000
%2440 = select i1 %2439, float %2433, float 0x3E99A2B5C0000000
%2441 = tail call float @llvm.sqrt.f32(float %2440) #10
%div188.4.1 = fdiv fast float 1.000000e+00, %2441, !fpmath !33
%mul189.4.1 = fmul fast float %div188.4.1, %div188.4.1
%2442 = fmul fast float %mul189.4.1, %mul189.4.1
%mul191.4.1 = fmul fast float %2442, %cond.4.1
%mul192.4.1 = fmul fast float %mul191.4.1, %mul189.4.1
%neg.4.1 = fsub fast float -0.000000e+00, %mul184.4.1
%2443 = tail call fast float @llvm.fmuladd.f32(float %mul185.4.1, float %mul192.4.1, float %neg.4.1)
%mul194.4.1 = fmul fast float %mul192.4.1, %mul189.4.1
%mul195.4.1 = fmul fast float %mul194.4.1, %2443
%2444 = tail call fast float @llvm.fmuladd.f32(float %mul192.4.1, float %mul192.4.1, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.4.1 = fmul fast float %mul185.4.1, %2444
%add200.4.1 = fadd fast float %mul192.4.1, %nbparam_params.coerce.fca.13.2.extract
%mul202.4.1 = fmul fast float %add200.4.1, 0xBFC5555560000000
%neg203.4.1 = fmul fast float %mul202.4.1, %mul184.4.1
%2445 = tail call fast float @llvm.fmuladd.f32(float %mul197.4.1, float 0x3FB5555540000000, float %neg203.4.1)
%mul204.4.1 = fmul fast float %2445, %cond.4.1
%add205.4.1 = fadd fast float %mul204.4.1, %E_lj.3.3.1
%mul206.4.1 = fmul fast float %2435, %1653
%mul207.4.1 = fmul fast float %mul189.4.1, %cond.4.1
%mul209.4.1 = fmul fast float %2440, %mul
%mul.i.4.1 = fmul fast float %mul209.4.1, %mul209.4.1
%2446 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%2447 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%2448 = tail call fast float @llvm.fmuladd.f32(float %2446, float %mul.i.4.1, float 1.000000e+00) #9
%2449 = tail call fast float @llvm.fmuladd.f32(float %2447, float %mul209.4.1, float %2448) #9
%div.i.4.1 = fdiv fast float 1.000000e+00, %2449, !fpmath !33
%2450 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%2451 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%2452 = tail call fast float @llvm.fmuladd.f32(float %2450, float %mul.i.4.1, float 0xBF93BDB200000000) #9
%2453 = tail call fast float @llvm.fmuladd.f32(float %2451, float %mul.i.4.1, float 0x3FB1D5E760000000) #9
%2454 = tail call fast float @llvm.fmuladd.f32(float %2452, float %mul.i.4.1, float 0xBFE81272E0000000) #9
%2455 = tail call fast float @llvm.fmuladd.f32(float %2453, float %mul209.4.1, float %2454) #9
%mul7.4.1 = fmul fast float %mul11.i, %div.i.4.1
%mul211.4.1 = fmul fast float %mul7.4.1, %2455
%2456 = tail call fast float @llvm.fmuladd.f32(float %mul207.4.1, float %div188.4.1, float %mul211.4.1)
%2457 = tail call fast float @llvm.fmuladd.f32(float %mul206.4.1, float %2456, float %mul195.4.1)
%mul214.4.1 = fmul fast float %2440, %nbparam_params.coerce.fca.5.extract
%mul215.4.1 = fmul fast float %mul214.4.1, %div188.4.1
%2458 = bitcast float %mul215.4.1 to i32
%2459 = and i32 %2458, 2147483647
%2460 = bitcast i32 %2459 to float
%2461 = fmul float %2460, %2460
%2462 = fdiv float 1.000000e+00, %2461, !fpmath !33
%2463 = fadd float %2460, -1.000000e+00
%2464 = fcmp olt float %2460, 1.250000e+00
%2465 = select i1 %2464, float %2463, float %2462
%2466 = fcmp olt float %2460, 8.437500e-01
%2467 = select i1 %2466, float %2461, float %2465
%2468 = tail call float @llvm.fmuladd.f32(float %2467, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%2469 = tail call float @llvm.fmuladd.f32(float %2467, float %2468, float 0xC083EC8820000000) #9
%2470 = tail call float @llvm.fmuladd.f32(float %2467, float %2469, float 0xC064145D40000000) #9
%2471 = tail call float @llvm.fmuladd.f32(float %2467, float %2470, float 0xC031C20960000000) #9
%2472 = tail call float @llvm.fmuladd.f32(float %2467, float %2471, float 0xBFE993BA80000000) #9
%2473 = tail call float @llvm.fmuladd.f32(float %2467, float %2472, float 0xBF84341240000000) #9
%2474 = tail call float @llvm.fmuladd.f32(float %2467, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%2475 = tail call float @llvm.fmuladd.f32(float %2467, float %2474, float 0x40A3F219C0000000) #9
%2476 = tail call float @llvm.fmuladd.f32(float %2467, float %2475, float 0x40A8FFB760000000) #9
%2477 = tail call float @llvm.fmuladd.f32(float %2467, float %2476, float 0x409802EB20000000) #9
%2478 = tail call float @llvm.fmuladd.f32(float %2467, float %2477, float 0x40745CAE20000000) #9
%2479 = tail call float @llvm.fmuladd.f32(float %2467, float %2478, float 0x403E568B20000000) #9
%2480 = tail call float @llvm.fmuladd.f32(float %2467, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%2481 = tail call float @llvm.fmuladd.f32(float %2467, float %2480, float 0xC067135CE0000000) #9
%2482 = tail call float @llvm.fmuladd.f32(float %2467, float %2481, float 0xC0644CB180000000) #9
%2483 = tail call float @llvm.fmuladd.f32(float %2467, float %2482, float 0xC04F300AE0000000) #9
%2484 = tail call float @llvm.fmuladd.f32(float %2467, float %2483, float 0xC0251E0440000000) #9
%2485 = tail call float @llvm.fmuladd.f32(float %2467, float %2484, float 0xBFE63416E0000000) #9
%2486 = tail call float @llvm.fmuladd.f32(float %2467, float %2485, float 0xBF84341260000000) #9
%2487 = tail call float @llvm.fmuladd.f32(float %2467, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%2488 = tail call float @llvm.fmuladd.f32(float %2467, float %2487, float 0x405B28A3E0000000) #9
%2489 = tail call float @llvm.fmuladd.f32(float %2467, float %2488, float 0x407AD02160000000) #9
%2490 = tail call float @llvm.fmuladd.f32(float %2467, float %2489, float 0x40842B1920000000) #9
%2491 = tail call float @llvm.fmuladd.f32(float %2467, float %2490, float 0x407B290DE0000000) #9
%2492 = tail call float @llvm.fmuladd.f32(float %2467, float %2491, float 0x4061350C60000000) #9
%2493 = tail call float @llvm.fmuladd.f32(float %2467, float %2492, float 0x4033A6B9C0000000) #9
%2494 = fcmp olt float %2460, 0x4006DB6DC0000000
%2495 = select i1 %2494, float %2486, float %2473
%2496 = select i1 %2494, float %2493, float %2479
%2497 = tail call float @llvm.fmuladd.f32(float %2467, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%2498 = tail call float @llvm.fmuladd.f32(float %2467, float %2497, float 0xBFBC639840000000) #9
%2499 = tail call float @llvm.fmuladd.f32(float %2467, float %2498, float 0x3FD45FCA80000000) #9
%2500 = tail call float @llvm.fmuladd.f32(float %2467, float %2499, float 0xBFD7D24100000000) #9
%2501 = tail call float @llvm.fmuladd.f32(float %2467, float %2500, float 0x3FDA8D00A0000000) #9
%2502 = tail call float @llvm.fmuladd.f32(float %2467, float %2501, float 0xBF6359B8C0000000) #9
%2503 = tail call float @llvm.fmuladd.f32(float %2467, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%2504 = tail call float @llvm.fmuladd.f32(float %2467, float %2503, float 0x3FC02660E0000000) #9
%2505 = tail call float @llvm.fmuladd.f32(float %2467, float %2504, float 0x3FB2635CE0000000) #9
%2506 = tail call float @llvm.fmuladd.f32(float %2467, float %2505, float 0x3FE14AF0A0000000) #9
%2507 = tail call float @llvm.fmuladd.f32(float %2467, float %2506, float 0x3FBB3E6620000000) #9
%2508 = select i1 %2464, float %2502, float %2495
%2509 = select i1 %2464, float %2507, float %2496
%2510 = tail call float @llvm.fmuladd.f32(float %2467, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%2511 = tail call float @llvm.fmuladd.f32(float %2467, float %2510, float 0xBF9D2A51E0000000) #9
%2512 = tail call float @llvm.fmuladd.f32(float %2467, float %2511, float 0xBFD4CD7D60000000) #9
%2513 = tail call float @llvm.fmuladd.f32(float %2467, float %2512, float 0x3FC06EBA80000000) #9
%2514 = tail call float @llvm.fmuladd.f32(float %2467, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%2515 = tail call float @llvm.fmuladd.f32(float %2467, float %2514, float 0x3F74D022C0000000) #9
%2516 = tail call float @llvm.fmuladd.f32(float %2467, float %2515, float 0x3FB0A54C60000000) #9
%2517 = tail call float @llvm.fmuladd.f32(float %2467, float %2516, float 0x3FD97779C0000000) #9
%2518 = select i1 %2466, float %2513, float %2508
%2519 = select i1 %2466, float %2517, float %2509
%2520 = tail call float @llvm.fmuladd.f32(float %2467, float %2519, float 1.000000e+00) #9
%2521 = fdiv float %2518, %2520, !fpmath !33
%2522 = and i32 %2458, 2147479552
%2523 = bitcast i32 %2522 to float
%2524 = fsub float -0.000000e+00, %2523
%2525 = tail call float @llvm.fmuladd.f32(float %2524, float %2523, float -5.625000e-01) #9
%2526 = fcmp olt float %2525, 0.000000e+00
%2527 = select i1 %2526, float -5.000000e-01, float 5.000000e-01
%2528 = tail call float @llvm.fmuladd.f32(float %2525, float 0x3FF7154760000000, float %2527) #9
%2529 = fptosi float %2528 to i32
%2530 = sitofp i32 %2529 to float
%2531 = tail call float @llvm.fmuladd.f32(float %2530, float 0xBFE62E3000000000, float %2525) #9
%2532 = fmul float %2530, 0xBEE2FEFA20000000
%2533 = fadd float %2531, %2532
%2534 = fmul float %2533, %2533
%2535 = tail call float @llvm.fmuladd.f32(float %2534, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%2536 = tail call float @llvm.fmuladd.f32(float %2534, float %2535, float 0x3F11566AA0000000) #9
%2537 = tail call float @llvm.fmuladd.f32(float %2534, float %2536, float 0xBF66C16C20000000) #9
%2538 = tail call float @llvm.fmuladd.f32(float %2534, float %2537, float 0x3FC5555560000000) #9
%2539 = fsub float -0.000000e+00, %2538
%2540 = tail call float @llvm.fmuladd.f32(float %2534, float %2539, float %2533) #9
%2541 = fsub float -0.000000e+00, %2532
%2542 = fmul float %2533, %2540
%2543 = fsub float 2.000000e+00, %2540
%2544 = fdiv float %2542, %2543, !fpmath !33
%2545 = fsub float %2541, %2544
%2546 = fsub float %2545, %2531
%2547 = fsub float 1.000000e+00, %2546
%2548 = bitcast float %2547 to i32
%2549 = shl i32 %2529, 23
%2550 = add nsw i32 %2548, %2549
%2551 = bitcast i32 %2550 to float
%2552 = fcmp olt float %2525, 0xC055D589E0000000
%2553 = select i1 %2552, float 0.000000e+00, float %2551
%2554 = fcmp olt float %2525, 0x40562E4300000000
%2555 = select i1 %2554, float %2553, float 0x7FF0000000000000
%2556 = fcmp uno float %2525, 0.000000e+00
%2557 = select i1 %2556, float %2525, float %2555
%2558 = fsub float %2523, %2460
%2559 = fadd float %2523, %2460
%2560 = tail call float @llvm.fmuladd.f32(float %2558, float %2559, float %2521) #9
%2561 = fcmp olt float %2560, 0.000000e+00
%2562 = select i1 %2561, float -5.000000e-01, float 5.000000e-01
%2563 = tail call float @llvm.fmuladd.f32(float %2560, float 0x3FF7154760000000, float %2562) #9
%2564 = fptosi float %2563 to i32
%2565 = sitofp i32 %2564 to float
%2566 = tail call float @llvm.fmuladd.f32(float %2565, float 0xBFE62E3000000000, float %2560) #9
%2567 = fmul float %2565, 0xBEE2FEFA20000000
%2568 = fadd float %2566, %2567
%2569 = fmul float %2568, %2568
%2570 = tail call float @llvm.fmuladd.f32(float %2569, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%2571 = tail call float @llvm.fmuladd.f32(float %2569, float %2570, float 0x3F11566AA0000000) #9
%2572 = tail call float @llvm.fmuladd.f32(float %2569, float %2571, float 0xBF66C16C20000000) #9
%2573 = tail call float @llvm.fmuladd.f32(float %2569, float %2572, float 0x3FC5555560000000) #9
%2574 = fsub float -0.000000e+00, %2573
%2575 = tail call float @llvm.fmuladd.f32(float %2569, float %2574, float %2568) #9
%2576 = fsub float -0.000000e+00, %2567
%2577 = fmul float %2568, %2575
%2578 = fsub float 2.000000e+00, %2575
%2579 = fdiv float %2577, %2578, !fpmath !33
%2580 = fsub float %2576, %2579
%2581 = fsub float %2580, %2566
%2582 = fsub float 1.000000e+00, %2581
%2583 = bitcast float %2582 to i32
%2584 = shl i32 %2564, 23
%2585 = add nsw i32 %2583, %2584
%2586 = bitcast i32 %2585 to float
%2587 = fcmp olt float %2560, 0xC055D589E0000000
%2588 = select i1 %2587, float 0.000000e+00, float %2586
%2589 = fcmp olt float %2560, 0x40562E4300000000
%2590 = select i1 %2589, float %2588, float 0x7FF0000000000000
%2591 = fcmp uno float %2560, 0.000000e+00
%2592 = select i1 %2591, float %2560, float %2590
%2593 = fmul float %2557, %2592
%2594 = fdiv float %2593, %2460, !fpmath !33
%2595 = fsub float 1.000000e+00, %2594
%2596 = fcmp olt float %2460, 6.000000e+00
%2597 = select i1 %2596, float %2595, float 1.000000e+00
%2598 = fadd float %2521, 0x3FEB0AC160000000
%2599 = select i1 %2464, float %2598, float %2597
%2600 = and i32 %2458, -2147483648
%2601 = bitcast float %2599 to i32
%2602 = or i32 %2601, %2600
%2603 = bitcast i32 %2602 to float
%2604 = tail call float @llvm.fmuladd.f32(float %mul215.4.1, float %2521, float %mul215.4.1) #9
%2605 = select i1 %2466, float %2604, float %2603
%2606 = fmul float %mul215.4.1, 0x3FF06EBA80000000
%2607 = tail call float @llvm.fmuladd.f32(float %mul215.4.1, float 8.000000e+00, float %2606) #9
%2608 = fmul float %2607, 1.250000e-01
%2609 = fcmp olt float %2460, 0x3E30000000000000
%2610 = select i1 %2609, float %2608, float %2605
%2611 = fcmp uno float %mul215.4.1, 0.000000e+00
%2612 = select i1 %2611, float %mul215.4.1, float %2610
%sub217.4.1 = fsub fast float %cond.4.1, %2612
%2613 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.4.1
%neg220.4.1 = fsub fast float -0.000000e+00, %2613
%2614 = tail call fast float @llvm.fmuladd.f32(float %div188.4.1, float %sub217.4.1, float %neg220.4.1)
%2615 = tail call fast float @llvm.fmuladd.f32(float %mul206.4.1, float %2614, float %E_el.5.3.1)
%splat.splatinsert.4.1 = insertelement <3 x float> undef, float %2457, i32 0
%splat.splat.4.1 = shufflevector <3 x float> %splat.splatinsert.4.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.4.1 = fmul fast <3 x float> %splat.splat.4.1, %extractVec165.4.1
%extractVec233.4.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.4.1 = fsub fast <3 x float> %extractVec233.4.1, %mul225.4.1
%extractVec235.4.1 = shufflevector <3 x float> %sub234.4.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.4.1 = shufflevector <4 x float> %loadVec4243.4.3793, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.4.1 = fadd fast <3 x float> %mul225.4.1, %extractVec244.4.1
%extractVec246.4.1 = shufflevector <3 x float> %add245.4.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %2616
; <label>:2616: ; preds = %2434, %2425, %2424
%loadVec4243.4.3788 = phi <4 x float> [ %extractVec246.4.1, %2434 ], [ %loadVec4243.4.3793, %2425 ], [ %loadVec4243.4.3793, %2424 ]
%E_el.5.4.1 = phi float [ %2615, %2434 ], [ %E_el.5.3.1, %2425 ], [ %E_el.5.3.1, %2424 ]
%fcj_buf.sroa.0.1.4.1 = phi <4 x float> [ %extractVec235.4.1, %2434 ], [ %fcj_buf.sroa.0.1.3.1, %2425 ], [ %fcj_buf.sroa.0.1.3.1, %2424 ]
%E_lj.3.4.1 = phi float [ %add205.4.1, %2434 ], [ %E_lj.3.3.1, %2425 ], [ %E_lj.3.3.1, %2424 ]
%and144.5.1 = and i32 %57, 8192
%tobool145.5.1 = icmp eq i32 %and144.5.1, 0
br i1 %tobool145.5.1, label %2808, label %2617
; <label>:2617: ; preds = %2616
%2618 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.5.1, align 16, !tbaa !13
%2619 = fsub fast <4 x float> %2618, %1652
%2620 = extractelement <4 x float> %2619, i32 0
%2621 = extractelement <4 x float> %2619, i32 1
%2622 = fmul float %2621, %2621
%2623 = tail call float @llvm.fmuladd.f32(float %2620, float %2620, float %2622) #9
%2624 = extractelement <4 x float> %2619, i32 2
%2625 = tail call float @llvm.fmuladd.f32(float %2624, float %2624, float %2623) #9
%and167.5.1 = and i32 %58, 8192
%tobool168.5.1 = icmp ne i32 %and167.5.1, 0
%cond.5.1 = select i1 %tobool168.5.1, float 1.000000e+00, float 0.000000e+00
%cmp172.5.1 = icmp eq i32 %add147.5.1, %1651
%or.cond.5.1 = and i1 %cmp66, %cmp172.5.1
%not.or.cond.5.1 = xor i1 %or.cond.5.1, true
%cmp174..5.1 = or i1 %cmp174, %not.or.cond.5.1
%conv176.5.1 = uitofp i1 %cmp174..5.1 to float
%mul177.5.1 = fmul fast float %conv176.5.1, %nbparam_params.coerce.fca.9.extract
%cmp178.5.1 = fcmp fast olt float %2625, %mul177.5.1
br i1 %cmp178.5.1, label %2626, label %2808
; <label>:2626: ; preds = %2617
%extractVec165.5.1 = shufflevector <4 x float> %2619, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%2627 = extractelement <4 x float> %2618, i64 3
%2628 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.5.1, align 8, !tbaa !13
%2629 = extractelement <2 x float> %2628, i64 0
%mul184.5.1 = fmul fast float %2629, %1655
%2630 = extractelement <2 x float> %2628, i64 1
%mul185.5.1 = fmul fast float %2630, %1656
%2631 = fcmp ogt float %2625, 0x3E99A2B5C0000000
%2632 = select i1 %2631, float %2625, float 0x3E99A2B5C0000000
%2633 = tail call float @llvm.sqrt.f32(float %2632) #10
%div188.5.1 = fdiv fast float 1.000000e+00, %2633, !fpmath !33
%mul189.5.1 = fmul fast float %div188.5.1, %div188.5.1
%2634 = fmul fast float %mul189.5.1, %mul189.5.1
%mul191.5.1 = fmul fast float %2634, %cond.5.1
%mul192.5.1 = fmul fast float %mul191.5.1, %mul189.5.1
%neg.5.1 = fsub fast float -0.000000e+00, %mul184.5.1
%2635 = tail call fast float @llvm.fmuladd.f32(float %mul185.5.1, float %mul192.5.1, float %neg.5.1)
%mul194.5.1 = fmul fast float %mul192.5.1, %mul189.5.1
%mul195.5.1 = fmul fast float %mul194.5.1, %2635
%2636 = tail call fast float @llvm.fmuladd.f32(float %mul192.5.1, float %mul192.5.1, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.5.1 = fmul fast float %mul185.5.1, %2636
%add200.5.1 = fadd fast float %mul192.5.1, %nbparam_params.coerce.fca.13.2.extract
%mul202.5.1 = fmul fast float %add200.5.1, 0xBFC5555560000000
%neg203.5.1 = fmul fast float %mul202.5.1, %mul184.5.1
%2637 = tail call fast float @llvm.fmuladd.f32(float %mul197.5.1, float 0x3FB5555540000000, float %neg203.5.1)
%mul204.5.1 = fmul fast float %2637, %cond.5.1
%add205.5.1 = fadd fast float %mul204.5.1, %E_lj.3.4.1
%mul206.5.1 = fmul fast float %2627, %1653
%mul207.5.1 = fmul fast float %mul189.5.1, %cond.5.1
%mul209.5.1 = fmul fast float %2632, %mul
%mul.i.5.1 = fmul fast float %mul209.5.1, %mul209.5.1
%2638 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%2639 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%2640 = tail call fast float @llvm.fmuladd.f32(float %2638, float %mul.i.5.1, float 1.000000e+00) #9
%2641 = tail call fast float @llvm.fmuladd.f32(float %2639, float %mul209.5.1, float %2640) #9
%div.i.5.1 = fdiv fast float 1.000000e+00, %2641, !fpmath !33
%2642 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%2643 = tail call fast float @llvm.fmuladd.f32(float %mul.i.5.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%2644 = tail call fast float @llvm.fmuladd.f32(float %2642, float %mul.i.5.1, float 0xBF93BDB200000000) #9
%2645 = tail call fast float @llvm.fmuladd.f32(float %2643, float %mul.i.5.1, float 0x3FB1D5E760000000) #9
%2646 = tail call fast float @llvm.fmuladd.f32(float %2644, float %mul.i.5.1, float 0xBFE81272E0000000) #9
%2647 = tail call fast float @llvm.fmuladd.f32(float %2645, float %mul209.5.1, float %2646) #9
%mul7.5.1 = fmul fast float %mul11.i, %div.i.5.1
%mul211.5.1 = fmul fast float %mul7.5.1, %2647
%2648 = tail call fast float @llvm.fmuladd.f32(float %mul207.5.1, float %div188.5.1, float %mul211.5.1)
%2649 = tail call fast float @llvm.fmuladd.f32(float %mul206.5.1, float %2648, float %mul195.5.1)
%mul214.5.1 = fmul fast float %2632, %nbparam_params.coerce.fca.5.extract
%mul215.5.1 = fmul fast float %mul214.5.1, %div188.5.1
%2650 = bitcast float %mul215.5.1 to i32
%2651 = and i32 %2650, 2147483647
%2652 = bitcast i32 %2651 to float
%2653 = fmul float %2652, %2652
%2654 = fdiv float 1.000000e+00, %2653, !fpmath !33
%2655 = fadd float %2652, -1.000000e+00
%2656 = fcmp olt float %2652, 1.250000e+00
%2657 = select i1 %2656, float %2655, float %2654
%2658 = fcmp olt float %2652, 8.437500e-01
%2659 = select i1 %2658, float %2653, float %2657
%2660 = tail call float @llvm.fmuladd.f32(float %2659, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%2661 = tail call float @llvm.fmuladd.f32(float %2659, float %2660, float 0xC083EC8820000000) #9
%2662 = tail call float @llvm.fmuladd.f32(float %2659, float %2661, float 0xC064145D40000000) #9
%2663 = tail call float @llvm.fmuladd.f32(float %2659, float %2662, float 0xC031C20960000000) #9
%2664 = tail call float @llvm.fmuladd.f32(float %2659, float %2663, float 0xBFE993BA80000000) #9
%2665 = tail call float @llvm.fmuladd.f32(float %2659, float %2664, float 0xBF84341240000000) #9
%2666 = tail call float @llvm.fmuladd.f32(float %2659, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%2667 = tail call float @llvm.fmuladd.f32(float %2659, float %2666, float 0x40A3F219C0000000) #9
%2668 = tail call float @llvm.fmuladd.f32(float %2659, float %2667, float 0x40A8FFB760000000) #9
%2669 = tail call float @llvm.fmuladd.f32(float %2659, float %2668, float 0x409802EB20000000) #9
%2670 = tail call float @llvm.fmuladd.f32(float %2659, float %2669, float 0x40745CAE20000000) #9
%2671 = tail call float @llvm.fmuladd.f32(float %2659, float %2670, float 0x403E568B20000000) #9
%2672 = tail call float @llvm.fmuladd.f32(float %2659, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%2673 = tail call float @llvm.fmuladd.f32(float %2659, float %2672, float 0xC067135CE0000000) #9
%2674 = tail call float @llvm.fmuladd.f32(float %2659, float %2673, float 0xC0644CB180000000) #9
%2675 = tail call float @llvm.fmuladd.f32(float %2659, float %2674, float 0xC04F300AE0000000) #9
%2676 = tail call float @llvm.fmuladd.f32(float %2659, float %2675, float 0xC0251E0440000000) #9
%2677 = tail call float @llvm.fmuladd.f32(float %2659, float %2676, float 0xBFE63416E0000000) #9
%2678 = tail call float @llvm.fmuladd.f32(float %2659, float %2677, float 0xBF84341260000000) #9
%2679 = tail call float @llvm.fmuladd.f32(float %2659, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%2680 = tail call float @llvm.fmuladd.f32(float %2659, float %2679, float 0x405B28A3E0000000) #9
%2681 = tail call float @llvm.fmuladd.f32(float %2659, float %2680, float 0x407AD02160000000) #9
%2682 = tail call float @llvm.fmuladd.f32(float %2659, float %2681, float 0x40842B1920000000) #9
%2683 = tail call float @llvm.fmuladd.f32(float %2659, float %2682, float 0x407B290DE0000000) #9
%2684 = tail call float @llvm.fmuladd.f32(float %2659, float %2683, float 0x4061350C60000000) #9
%2685 = tail call float @llvm.fmuladd.f32(float %2659, float %2684, float 0x4033A6B9C0000000) #9
%2686 = fcmp olt float %2652, 0x4006DB6DC0000000
%2687 = select i1 %2686, float %2678, float %2665
%2688 = select i1 %2686, float %2685, float %2671
%2689 = tail call float @llvm.fmuladd.f32(float %2659, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%2690 = tail call float @llvm.fmuladd.f32(float %2659, float %2689, float 0xBFBC639840000000) #9
%2691 = tail call float @llvm.fmuladd.f32(float %2659, float %2690, float 0x3FD45FCA80000000) #9
%2692 = tail call float @llvm.fmuladd.f32(float %2659, float %2691, float 0xBFD7D24100000000) #9
%2693 = tail call float @llvm.fmuladd.f32(float %2659, float %2692, float 0x3FDA8D00A0000000) #9
%2694 = tail call float @llvm.fmuladd.f32(float %2659, float %2693, float 0xBF6359B8C0000000) #9
%2695 = tail call float @llvm.fmuladd.f32(float %2659, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%2696 = tail call float @llvm.fmuladd.f32(float %2659, float %2695, float 0x3FC02660E0000000) #9
%2697 = tail call float @llvm.fmuladd.f32(float %2659, float %2696, float 0x3FB2635CE0000000) #9
%2698 = tail call float @llvm.fmuladd.f32(float %2659, float %2697, float 0x3FE14AF0A0000000) #9
%2699 = tail call float @llvm.fmuladd.f32(float %2659, float %2698, float 0x3FBB3E6620000000) #9
%2700 = select i1 %2656, float %2694, float %2687
%2701 = select i1 %2656, float %2699, float %2688
%2702 = tail call float @llvm.fmuladd.f32(float %2659, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%2703 = tail call float @llvm.fmuladd.f32(float %2659, float %2702, float 0xBF9D2A51E0000000) #9
%2704 = tail call float @llvm.fmuladd.f32(float %2659, float %2703, float 0xBFD4CD7D60000000) #9
%2705 = tail call float @llvm.fmuladd.f32(float %2659, float %2704, float 0x3FC06EBA80000000) #9
%2706 = tail call float @llvm.fmuladd.f32(float %2659, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%2707 = tail call float @llvm.fmuladd.f32(float %2659, float %2706, float 0x3F74D022C0000000) #9
%2708 = tail call float @llvm.fmuladd.f32(float %2659, float %2707, float 0x3FB0A54C60000000) #9
%2709 = tail call float @llvm.fmuladd.f32(float %2659, float %2708, float 0x3FD97779C0000000) #9
%2710 = select i1 %2658, float %2705, float %2700
%2711 = select i1 %2658, float %2709, float %2701
%2712 = tail call float @llvm.fmuladd.f32(float %2659, float %2711, float 1.000000e+00) #9
%2713 = fdiv float %2710, %2712, !fpmath !33
%2714 = and i32 %2650, 2147479552
%2715 = bitcast i32 %2714 to float
%2716 = fsub float -0.000000e+00, %2715
%2717 = tail call float @llvm.fmuladd.f32(float %2716, float %2715, float -5.625000e-01) #9
%2718 = fcmp olt float %2717, 0.000000e+00
%2719 = select i1 %2718, float -5.000000e-01, float 5.000000e-01
%2720 = tail call float @llvm.fmuladd.f32(float %2717, float 0x3FF7154760000000, float %2719) #9
%2721 = fptosi float %2720 to i32
%2722 = sitofp i32 %2721 to float
%2723 = tail call float @llvm.fmuladd.f32(float %2722, float 0xBFE62E3000000000, float %2717) #9
%2724 = fmul float %2722, 0xBEE2FEFA20000000
%2725 = fadd float %2723, %2724
%2726 = fmul float %2725, %2725
%2727 = tail call float @llvm.fmuladd.f32(float %2726, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%2728 = tail call float @llvm.fmuladd.f32(float %2726, float %2727, float 0x3F11566AA0000000) #9
%2729 = tail call float @llvm.fmuladd.f32(float %2726, float %2728, float 0xBF66C16C20000000) #9
%2730 = tail call float @llvm.fmuladd.f32(float %2726, float %2729, float 0x3FC5555560000000) #9
%2731 = fsub float -0.000000e+00, %2730
%2732 = tail call float @llvm.fmuladd.f32(float %2726, float %2731, float %2725) #9
%2733 = fsub float -0.000000e+00, %2724
%2734 = fmul float %2725, %2732
%2735 = fsub float 2.000000e+00, %2732
%2736 = fdiv float %2734, %2735, !fpmath !33
%2737 = fsub float %2733, %2736
%2738 = fsub float %2737, %2723
%2739 = fsub float 1.000000e+00, %2738
%2740 = bitcast float %2739 to i32
%2741 = shl i32 %2721, 23
%2742 = add nsw i32 %2740, %2741
%2743 = bitcast i32 %2742 to float
%2744 = fcmp olt float %2717, 0xC055D589E0000000
%2745 = select i1 %2744, float 0.000000e+00, float %2743
%2746 = fcmp olt float %2717, 0x40562E4300000000
%2747 = select i1 %2746, float %2745, float 0x7FF0000000000000
%2748 = fcmp uno float %2717, 0.000000e+00
%2749 = select i1 %2748, float %2717, float %2747
%2750 = fsub float %2715, %2652
%2751 = fadd float %2715, %2652
%2752 = tail call float @llvm.fmuladd.f32(float %2750, float %2751, float %2713) #9
%2753 = fcmp olt float %2752, 0.000000e+00
%2754 = select i1 %2753, float -5.000000e-01, float 5.000000e-01
%2755 = tail call float @llvm.fmuladd.f32(float %2752, float 0x3FF7154760000000, float %2754) #9
%2756 = fptosi float %2755 to i32
%2757 = sitofp i32 %2756 to float
%2758 = tail call float @llvm.fmuladd.f32(float %2757, float 0xBFE62E3000000000, float %2752) #9
%2759 = fmul float %2757, 0xBEE2FEFA20000000
%2760 = fadd float %2758, %2759
%2761 = fmul float %2760, %2760
%2762 = tail call float @llvm.fmuladd.f32(float %2761, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%2763 = tail call float @llvm.fmuladd.f32(float %2761, float %2762, float 0x3F11566AA0000000) #9
%2764 = tail call float @llvm.fmuladd.f32(float %2761, float %2763, float 0xBF66C16C20000000) #9
%2765 = tail call float @llvm.fmuladd.f32(float %2761, float %2764, float 0x3FC5555560000000) #9
%2766 = fsub float -0.000000e+00, %2765
%2767 = tail call float @llvm.fmuladd.f32(float %2761, float %2766, float %2760) #9
%2768 = fsub float -0.000000e+00, %2759
%2769 = fmul float %2760, %2767
%2770 = fsub float 2.000000e+00, %2767
%2771 = fdiv float %2769, %2770, !fpmath !33
%2772 = fsub float %2768, %2771
%2773 = fsub float %2772, %2758
%2774 = fsub float 1.000000e+00, %2773
%2775 = bitcast float %2774 to i32
%2776 = shl i32 %2756, 23
%2777 = add nsw i32 %2775, %2776
%2778 = bitcast i32 %2777 to float
%2779 = fcmp olt float %2752, 0xC055D589E0000000
%2780 = select i1 %2779, float 0.000000e+00, float %2778
%2781 = fcmp olt float %2752, 0x40562E4300000000
%2782 = select i1 %2781, float %2780, float 0x7FF0000000000000
%2783 = fcmp uno float %2752, 0.000000e+00
%2784 = select i1 %2783, float %2752, float %2782
%2785 = fmul float %2749, %2784
%2786 = fdiv float %2785, %2652, !fpmath !33
%2787 = fsub float 1.000000e+00, %2786
%2788 = fcmp olt float %2652, 6.000000e+00
%2789 = select i1 %2788, float %2787, float 1.000000e+00
%2790 = fadd float %2713, 0x3FEB0AC160000000
%2791 = select i1 %2656, float %2790, float %2789
%2792 = and i32 %2650, -2147483648
%2793 = bitcast float %2791 to i32
%2794 = or i32 %2793, %2792
%2795 = bitcast i32 %2794 to float
%2796 = tail call float @llvm.fmuladd.f32(float %mul215.5.1, float %2713, float %mul215.5.1) #9
%2797 = select i1 %2658, float %2796, float %2795
%2798 = fmul float %mul215.5.1, 0x3FF06EBA80000000
%2799 = tail call float @llvm.fmuladd.f32(float %mul215.5.1, float 8.000000e+00, float %2798) #9
%2800 = fmul float %2799, 1.250000e-01
%2801 = fcmp olt float %2652, 0x3E30000000000000
%2802 = select i1 %2801, float %2800, float %2797
%2803 = fcmp uno float %mul215.5.1, 0.000000e+00
%2804 = select i1 %2803, float %mul215.5.1, float %2802
%sub217.5.1 = fsub fast float %cond.5.1, %2804
%2805 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.5.1
%neg220.5.1 = fsub fast float -0.000000e+00, %2805
%2806 = tail call fast float @llvm.fmuladd.f32(float %div188.5.1, float %sub217.5.1, float %neg220.5.1)
%2807 = tail call fast float @llvm.fmuladd.f32(float %mul206.5.1, float %2806, float %E_el.5.4.1)
%splat.splatinsert.5.1 = insertelement <3 x float> undef, float %2649, i32 0
%splat.splat.5.1 = shufflevector <3 x float> %splat.splatinsert.5.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.5.1 = fmul fast <3 x float> %splat.splat.5.1, %extractVec165.5.1
%extractVec233.5.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.4.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.5.1 = fsub fast <3 x float> %extractVec233.5.1, %mul225.5.1
%extractVec235.5.1 = shufflevector <3 x float> %sub234.5.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.5.1 = shufflevector <4 x float> %loadVec4243.5.3802, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.5.1 = fadd fast <3 x float> %mul225.5.1, %extractVec244.5.1
%extractVec246.5.1 = shufflevector <3 x float> %add245.5.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %2808
; <label>:2808: ; preds = %2626, %2617, %2616
%loadVec4243.5.3797 = phi <4 x float> [ %extractVec246.5.1, %2626 ], [ %loadVec4243.5.3802, %2617 ], [ %loadVec4243.5.3802, %2616 ]
%E_el.5.5.1 = phi float [ %2807, %2626 ], [ %E_el.5.4.1, %2617 ], [ %E_el.5.4.1, %2616 ]
%fcj_buf.sroa.0.1.5.1 = phi <4 x float> [ %extractVec235.5.1, %2626 ], [ %fcj_buf.sroa.0.1.4.1, %2617 ], [ %fcj_buf.sroa.0.1.4.1, %2616 ]
%E_lj.3.5.1 = phi float [ %add205.5.1, %2626 ], [ %E_lj.3.4.1, %2617 ], [ %E_lj.3.4.1, %2616 ]
%and144.6.1 = and i32 %57, 16384
%tobool145.6.1 = icmp eq i32 %and144.6.1, 0
br i1 %tobool145.6.1, label %3000, label %2809
; <label>:2809: ; preds = %2808
%2810 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.6.1, align 16, !tbaa !13
%2811 = fsub fast <4 x float> %2810, %1652
%2812 = extractelement <4 x float> %2811, i32 0
%2813 = extractelement <4 x float> %2811, i32 1
%2814 = fmul float %2813, %2813
%2815 = tail call float @llvm.fmuladd.f32(float %2812, float %2812, float %2814) #9
%2816 = extractelement <4 x float> %2811, i32 2
%2817 = tail call float @llvm.fmuladd.f32(float %2816, float %2816, float %2815) #9
%and167.6.1 = and i32 %58, 16384
%tobool168.6.1 = icmp ne i32 %and167.6.1, 0
%cond.6.1 = select i1 %tobool168.6.1, float 1.000000e+00, float 0.000000e+00
%cmp172.6.1 = icmp eq i32 %add147.6.1, %1651
%or.cond.6.1 = and i1 %cmp66, %cmp172.6.1
%not.or.cond.6.1 = xor i1 %or.cond.6.1, true
%cmp174..6.1 = or i1 %cmp174, %not.or.cond.6.1
%conv176.6.1 = uitofp i1 %cmp174..6.1 to float
%mul177.6.1 = fmul fast float %conv176.6.1, %nbparam_params.coerce.fca.9.extract
%cmp178.6.1 = fcmp fast olt float %2817, %mul177.6.1
br i1 %cmp178.6.1, label %2818, label %3000
; <label>:2818: ; preds = %2809
%extractVec165.6.1 = shufflevector <4 x float> %2811, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%2819 = extractelement <4 x float> %2810, i64 3
%2820 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.6.1, align 8, !tbaa !13
%2821 = extractelement <2 x float> %2820, i64 0
%mul184.6.1 = fmul fast float %2821, %1655
%2822 = extractelement <2 x float> %2820, i64 1
%mul185.6.1 = fmul fast float %2822, %1656
%2823 = fcmp ogt float %2817, 0x3E99A2B5C0000000
%2824 = select i1 %2823, float %2817, float 0x3E99A2B5C0000000
%2825 = tail call float @llvm.sqrt.f32(float %2824) #10
%div188.6.1 = fdiv fast float 1.000000e+00, %2825, !fpmath !33
%mul189.6.1 = fmul fast float %div188.6.1, %div188.6.1
%2826 = fmul fast float %mul189.6.1, %mul189.6.1
%mul191.6.1 = fmul fast float %2826, %cond.6.1
%mul192.6.1 = fmul fast float %mul191.6.1, %mul189.6.1
%neg.6.1 = fsub fast float -0.000000e+00, %mul184.6.1
%2827 = tail call fast float @llvm.fmuladd.f32(float %mul185.6.1, float %mul192.6.1, float %neg.6.1)
%mul194.6.1 = fmul fast float %mul192.6.1, %mul189.6.1
%mul195.6.1 = fmul fast float %mul194.6.1, %2827
%2828 = tail call fast float @llvm.fmuladd.f32(float %mul192.6.1, float %mul192.6.1, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.6.1 = fmul fast float %mul185.6.1, %2828
%add200.6.1 = fadd fast float %mul192.6.1, %nbparam_params.coerce.fca.13.2.extract
%mul202.6.1 = fmul fast float %add200.6.1, 0xBFC5555560000000
%neg203.6.1 = fmul fast float %mul202.6.1, %mul184.6.1
%2829 = tail call fast float @llvm.fmuladd.f32(float %mul197.6.1, float 0x3FB5555540000000, float %neg203.6.1)
%mul204.6.1 = fmul fast float %2829, %cond.6.1
%add205.6.1 = fadd fast float %mul204.6.1, %E_lj.3.5.1
%mul206.6.1 = fmul fast float %2819, %1653
%mul207.6.1 = fmul fast float %mul189.6.1, %cond.6.1
%mul209.6.1 = fmul fast float %2824, %mul
%mul.i.6.1 = fmul fast float %mul209.6.1, %mul209.6.1
%2830 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%2831 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%2832 = tail call fast float @llvm.fmuladd.f32(float %2830, float %mul.i.6.1, float 1.000000e+00) #9
%2833 = tail call fast float @llvm.fmuladd.f32(float %2831, float %mul209.6.1, float %2832) #9
%div.i.6.1 = fdiv fast float 1.000000e+00, %2833, !fpmath !33
%2834 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%2835 = tail call fast float @llvm.fmuladd.f32(float %mul.i.6.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%2836 = tail call fast float @llvm.fmuladd.f32(float %2834, float %mul.i.6.1, float 0xBF93BDB200000000) #9
%2837 = tail call fast float @llvm.fmuladd.f32(float %2835, float %mul.i.6.1, float 0x3FB1D5E760000000) #9
%2838 = tail call fast float @llvm.fmuladd.f32(float %2836, float %mul.i.6.1, float 0xBFE81272E0000000) #9
%2839 = tail call fast float @llvm.fmuladd.f32(float %2837, float %mul209.6.1, float %2838) #9
%mul7.6.1 = fmul fast float %mul11.i, %div.i.6.1
%mul211.6.1 = fmul fast float %mul7.6.1, %2839
%2840 = tail call fast float @llvm.fmuladd.f32(float %mul207.6.1, float %div188.6.1, float %mul211.6.1)
%2841 = tail call fast float @llvm.fmuladd.f32(float %mul206.6.1, float %2840, float %mul195.6.1)
%mul214.6.1 = fmul fast float %2824, %nbparam_params.coerce.fca.5.extract
%mul215.6.1 = fmul fast float %mul214.6.1, %div188.6.1
%2842 = bitcast float %mul215.6.1 to i32
%2843 = and i32 %2842, 2147483647
%2844 = bitcast i32 %2843 to float
%2845 = fmul float %2844, %2844
%2846 = fdiv float 1.000000e+00, %2845, !fpmath !33
%2847 = fadd float %2844, -1.000000e+00
%2848 = fcmp olt float %2844, 1.250000e+00
%2849 = select i1 %2848, float %2847, float %2846
%2850 = fcmp olt float %2844, 8.437500e-01
%2851 = select i1 %2850, float %2845, float %2849
%2852 = tail call float @llvm.fmuladd.f32(float %2851, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%2853 = tail call float @llvm.fmuladd.f32(float %2851, float %2852, float 0xC083EC8820000000) #9
%2854 = tail call float @llvm.fmuladd.f32(float %2851, float %2853, float 0xC064145D40000000) #9
%2855 = tail call float @llvm.fmuladd.f32(float %2851, float %2854, float 0xC031C20960000000) #9
%2856 = tail call float @llvm.fmuladd.f32(float %2851, float %2855, float 0xBFE993BA80000000) #9
%2857 = tail call float @llvm.fmuladd.f32(float %2851, float %2856, float 0xBF84341240000000) #9
%2858 = tail call float @llvm.fmuladd.f32(float %2851, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%2859 = tail call float @llvm.fmuladd.f32(float %2851, float %2858, float 0x40A3F219C0000000) #9
%2860 = tail call float @llvm.fmuladd.f32(float %2851, float %2859, float 0x40A8FFB760000000) #9
%2861 = tail call float @llvm.fmuladd.f32(float %2851, float %2860, float 0x409802EB20000000) #9
%2862 = tail call float @llvm.fmuladd.f32(float %2851, float %2861, float 0x40745CAE20000000) #9
%2863 = tail call float @llvm.fmuladd.f32(float %2851, float %2862, float 0x403E568B20000000) #9
%2864 = tail call float @llvm.fmuladd.f32(float %2851, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%2865 = tail call float @llvm.fmuladd.f32(float %2851, float %2864, float 0xC067135CE0000000) #9
%2866 = tail call float @llvm.fmuladd.f32(float %2851, float %2865, float 0xC0644CB180000000) #9
%2867 = tail call float @llvm.fmuladd.f32(float %2851, float %2866, float 0xC04F300AE0000000) #9
%2868 = tail call float @llvm.fmuladd.f32(float %2851, float %2867, float 0xC0251E0440000000) #9
%2869 = tail call float @llvm.fmuladd.f32(float %2851, float %2868, float 0xBFE63416E0000000) #9
%2870 = tail call float @llvm.fmuladd.f32(float %2851, float %2869, float 0xBF84341260000000) #9
%2871 = tail call float @llvm.fmuladd.f32(float %2851, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%2872 = tail call float @llvm.fmuladd.f32(float %2851, float %2871, float 0x405B28A3E0000000) #9
%2873 = tail call float @llvm.fmuladd.f32(float %2851, float %2872, float 0x407AD02160000000) #9
%2874 = tail call float @llvm.fmuladd.f32(float %2851, float %2873, float 0x40842B1920000000) #9
%2875 = tail call float @llvm.fmuladd.f32(float %2851, float %2874, float 0x407B290DE0000000) #9
%2876 = tail call float @llvm.fmuladd.f32(float %2851, float %2875, float 0x4061350C60000000) #9
%2877 = tail call float @llvm.fmuladd.f32(float %2851, float %2876, float 0x4033A6B9C0000000) #9
%2878 = fcmp olt float %2844, 0x4006DB6DC0000000
%2879 = select i1 %2878, float %2870, float %2857
%2880 = select i1 %2878, float %2877, float %2863
%2881 = tail call float @llvm.fmuladd.f32(float %2851, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%2882 = tail call float @llvm.fmuladd.f32(float %2851, float %2881, float 0xBFBC639840000000) #9
%2883 = tail call float @llvm.fmuladd.f32(float %2851, float %2882, float 0x3FD45FCA80000000) #9
%2884 = tail call float @llvm.fmuladd.f32(float %2851, float %2883, float 0xBFD7D24100000000) #9
%2885 = tail call float @llvm.fmuladd.f32(float %2851, float %2884, float 0x3FDA8D00A0000000) #9
%2886 = tail call float @llvm.fmuladd.f32(float %2851, float %2885, float 0xBF6359B8C0000000) #9
%2887 = tail call float @llvm.fmuladd.f32(float %2851, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%2888 = tail call float @llvm.fmuladd.f32(float %2851, float %2887, float 0x3FC02660E0000000) #9
%2889 = tail call float @llvm.fmuladd.f32(float %2851, float %2888, float 0x3FB2635CE0000000) #9
%2890 = tail call float @llvm.fmuladd.f32(float %2851, float %2889, float 0x3FE14AF0A0000000) #9
%2891 = tail call float @llvm.fmuladd.f32(float %2851, float %2890, float 0x3FBB3E6620000000) #9
%2892 = select i1 %2848, float %2886, float %2879
%2893 = select i1 %2848, float %2891, float %2880
%2894 = tail call float @llvm.fmuladd.f32(float %2851, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%2895 = tail call float @llvm.fmuladd.f32(float %2851, float %2894, float 0xBF9D2A51E0000000) #9
%2896 = tail call float @llvm.fmuladd.f32(float %2851, float %2895, float 0xBFD4CD7D60000000) #9
%2897 = tail call float @llvm.fmuladd.f32(float %2851, float %2896, float 0x3FC06EBA80000000) #9
%2898 = tail call float @llvm.fmuladd.f32(float %2851, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%2899 = tail call float @llvm.fmuladd.f32(float %2851, float %2898, float 0x3F74D022C0000000) #9
%2900 = tail call float @llvm.fmuladd.f32(float %2851, float %2899, float 0x3FB0A54C60000000) #9
%2901 = tail call float @llvm.fmuladd.f32(float %2851, float %2900, float 0x3FD97779C0000000) #9
%2902 = select i1 %2850, float %2897, float %2892
%2903 = select i1 %2850, float %2901, float %2893
%2904 = tail call float @llvm.fmuladd.f32(float %2851, float %2903, float 1.000000e+00) #9
%2905 = fdiv float %2902, %2904, !fpmath !33
%2906 = and i32 %2842, 2147479552
%2907 = bitcast i32 %2906 to float
%2908 = fsub float -0.000000e+00, %2907
%2909 = tail call float @llvm.fmuladd.f32(float %2908, float %2907, float -5.625000e-01) #9
%2910 = fcmp olt float %2909, 0.000000e+00
%2911 = select i1 %2910, float -5.000000e-01, float 5.000000e-01
%2912 = tail call float @llvm.fmuladd.f32(float %2909, float 0x3FF7154760000000, float %2911) #9
%2913 = fptosi float %2912 to i32
%2914 = sitofp i32 %2913 to float
%2915 = tail call float @llvm.fmuladd.f32(float %2914, float 0xBFE62E3000000000, float %2909) #9
%2916 = fmul float %2914, 0xBEE2FEFA20000000
%2917 = fadd float %2915, %2916
%2918 = fmul float %2917, %2917
%2919 = tail call float @llvm.fmuladd.f32(float %2918, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%2920 = tail call float @llvm.fmuladd.f32(float %2918, float %2919, float 0x3F11566AA0000000) #9
%2921 = tail call float @llvm.fmuladd.f32(float %2918, float %2920, float 0xBF66C16C20000000) #9
%2922 = tail call float @llvm.fmuladd.f32(float %2918, float %2921, float 0x3FC5555560000000) #9
%2923 = fsub float -0.000000e+00, %2922
%2924 = tail call float @llvm.fmuladd.f32(float %2918, float %2923, float %2917) #9
%2925 = fsub float -0.000000e+00, %2916
%2926 = fmul float %2917, %2924
%2927 = fsub float 2.000000e+00, %2924
%2928 = fdiv float %2926, %2927, !fpmath !33
%2929 = fsub float %2925, %2928
%2930 = fsub float %2929, %2915
%2931 = fsub float 1.000000e+00, %2930
%2932 = bitcast float %2931 to i32
%2933 = shl i32 %2913, 23
%2934 = add nsw i32 %2932, %2933
%2935 = bitcast i32 %2934 to float
%2936 = fcmp olt float %2909, 0xC055D589E0000000
%2937 = select i1 %2936, float 0.000000e+00, float %2935
%2938 = fcmp olt float %2909, 0x40562E4300000000
%2939 = select i1 %2938, float %2937, float 0x7FF0000000000000
%2940 = fcmp uno float %2909, 0.000000e+00
%2941 = select i1 %2940, float %2909, float %2939
%2942 = fsub float %2907, %2844
%2943 = fadd float %2907, %2844
%2944 = tail call float @llvm.fmuladd.f32(float %2942, float %2943, float %2905) #9
%2945 = fcmp olt float %2944, 0.000000e+00
%2946 = select i1 %2945, float -5.000000e-01, float 5.000000e-01
%2947 = tail call float @llvm.fmuladd.f32(float %2944, float 0x3FF7154760000000, float %2946) #9
%2948 = fptosi float %2947 to i32
%2949 = sitofp i32 %2948 to float
%2950 = tail call float @llvm.fmuladd.f32(float %2949, float 0xBFE62E3000000000, float %2944) #9
%2951 = fmul float %2949, 0xBEE2FEFA20000000
%2952 = fadd float %2950, %2951
%2953 = fmul float %2952, %2952
%2954 = tail call float @llvm.fmuladd.f32(float %2953, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%2955 = tail call float @llvm.fmuladd.f32(float %2953, float %2954, float 0x3F11566AA0000000) #9
%2956 = tail call float @llvm.fmuladd.f32(float %2953, float %2955, float 0xBF66C16C20000000) #9
%2957 = tail call float @llvm.fmuladd.f32(float %2953, float %2956, float 0x3FC5555560000000) #9
%2958 = fsub float -0.000000e+00, %2957
%2959 = tail call float @llvm.fmuladd.f32(float %2953, float %2958, float %2952) #9
%2960 = fsub float -0.000000e+00, %2951
%2961 = fmul float %2952, %2959
%2962 = fsub float 2.000000e+00, %2959
%2963 = fdiv float %2961, %2962, !fpmath !33
%2964 = fsub float %2960, %2963
%2965 = fsub float %2964, %2950
%2966 = fsub float 1.000000e+00, %2965
%2967 = bitcast float %2966 to i32
%2968 = shl i32 %2948, 23
%2969 = add nsw i32 %2967, %2968
%2970 = bitcast i32 %2969 to float
%2971 = fcmp olt float %2944, 0xC055D589E0000000
%2972 = select i1 %2971, float 0.000000e+00, float %2970
%2973 = fcmp olt float %2944, 0x40562E4300000000
%2974 = select i1 %2973, float %2972, float 0x7FF0000000000000
%2975 = fcmp uno float %2944, 0.000000e+00
%2976 = select i1 %2975, float %2944, float %2974
%2977 = fmul float %2941, %2976
%2978 = fdiv float %2977, %2844, !fpmath !33
%2979 = fsub float 1.000000e+00, %2978
%2980 = fcmp olt float %2844, 6.000000e+00
%2981 = select i1 %2980, float %2979, float 1.000000e+00
%2982 = fadd float %2905, 0x3FEB0AC160000000
%2983 = select i1 %2848, float %2982, float %2981
%2984 = and i32 %2842, -2147483648
%2985 = bitcast float %2983 to i32
%2986 = or i32 %2985, %2984
%2987 = bitcast i32 %2986 to float
%2988 = tail call float @llvm.fmuladd.f32(float %mul215.6.1, float %2905, float %mul215.6.1) #9
%2989 = select i1 %2850, float %2988, float %2987
%2990 = fmul float %mul215.6.1, 0x3FF06EBA80000000
%2991 = tail call float @llvm.fmuladd.f32(float %mul215.6.1, float 8.000000e+00, float %2990) #9
%2992 = fmul float %2991, 1.250000e-01
%2993 = fcmp olt float %2844, 0x3E30000000000000
%2994 = select i1 %2993, float %2992, float %2989
%2995 = fcmp uno float %mul215.6.1, 0.000000e+00
%2996 = select i1 %2995, float %mul215.6.1, float %2994
%sub217.6.1 = fsub fast float %cond.6.1, %2996
%2997 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.6.1
%neg220.6.1 = fsub fast float -0.000000e+00, %2997
%2998 = tail call fast float @llvm.fmuladd.f32(float %div188.6.1, float %sub217.6.1, float %neg220.6.1)
%2999 = tail call fast float @llvm.fmuladd.f32(float %mul206.6.1, float %2998, float %E_el.5.5.1)
%splat.splatinsert.6.1 = insertelement <3 x float> undef, float %2841, i32 0
%splat.splat.6.1 = shufflevector <3 x float> %splat.splatinsert.6.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.6.1 = fmul fast <3 x float> %splat.splat.6.1, %extractVec165.6.1
%extractVec233.6.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.5.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.6.1 = fsub fast <3 x float> %extractVec233.6.1, %mul225.6.1
%extractVec235.6.1 = shufflevector <3 x float> %sub234.6.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.6.1 = shufflevector <4 x float> %loadVec4243.6.3811, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.6.1 = fadd fast <3 x float> %mul225.6.1, %extractVec244.6.1
%extractVec246.6.1 = shufflevector <3 x float> %add245.6.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %3000
; <label>:3000: ; preds = %2818, %2809, %2808
%loadVec4243.6.3806 = phi <4 x float> [ %extractVec246.6.1, %2818 ], [ %loadVec4243.6.3811, %2809 ], [ %loadVec4243.6.3811, %2808 ]
%E_el.5.6.1 = phi float [ %2999, %2818 ], [ %E_el.5.5.1, %2809 ], [ %E_el.5.5.1, %2808 ]
%fcj_buf.sroa.0.1.6.1 = phi <4 x float> [ %extractVec235.6.1, %2818 ], [ %fcj_buf.sroa.0.1.5.1, %2809 ], [ %fcj_buf.sroa.0.1.5.1, %2808 ]
%E_lj.3.6.1 = phi float [ %add205.6.1, %2818 ], [ %E_lj.3.5.1, %2809 ], [ %E_lj.3.5.1, %2808 ]
%and144.7.1 = and i32 %57, 32768
%tobool145.7.1 = icmp eq i32 %and144.7.1, 0
br i1 %tobool145.7.1, label %3192, label %3001
; <label>:3001: ; preds = %3000
%3002 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.7.1, align 16, !tbaa !13
%3003 = fsub fast <4 x float> %3002, %1652
%3004 = extractelement <4 x float> %3003, i32 0
%3005 = extractelement <4 x float> %3003, i32 1
%3006 = fmul float %3005, %3005
%3007 = tail call float @llvm.fmuladd.f32(float %3004, float %3004, float %3006) #9
%3008 = extractelement <4 x float> %3003, i32 2
%3009 = tail call float @llvm.fmuladd.f32(float %3008, float %3008, float %3007) #9
%and167.7.1 = and i32 %58, 32768
%tobool168.7.1 = icmp ne i32 %and167.7.1, 0
%cond.7.1 = select i1 %tobool168.7.1, float 1.000000e+00, float 0.000000e+00
%cmp172.7.1 = icmp eq i32 %add147.7.1, %1651
%or.cond.7.1 = and i1 %cmp66, %cmp172.7.1
%not.or.cond.7.1 = xor i1 %or.cond.7.1, true
%cmp174..7.1 = or i1 %cmp174, %not.or.cond.7.1
%conv176.7.1 = uitofp i1 %cmp174..7.1 to float
%mul177.7.1 = fmul fast float %conv176.7.1, %nbparam_params.coerce.fca.9.extract
%cmp178.7.1 = fcmp fast olt float %3009, %mul177.7.1
br i1 %cmp178.7.1, label %3010, label %3192
; <label>:3010: ; preds = %3001
%extractVec165.7.1 = shufflevector <4 x float> %3003, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%3011 = extractelement <4 x float> %3002, i64 3
%3012 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.7.1, align 8, !tbaa !13
%3013 = extractelement <2 x float> %3012, i64 0
%mul184.7.1 = fmul fast float %3013, %1655
%3014 = extractelement <2 x float> %3012, i64 1
%mul185.7.1 = fmul fast float %3014, %1656
%3015 = fcmp ogt float %3009, 0x3E99A2B5C0000000
%3016 = select i1 %3015, float %3009, float 0x3E99A2B5C0000000
%3017 = tail call float @llvm.sqrt.f32(float %3016) #10
%div188.7.1 = fdiv fast float 1.000000e+00, %3017, !fpmath !33
%mul189.7.1 = fmul fast float %div188.7.1, %div188.7.1
%3018 = fmul fast float %mul189.7.1, %mul189.7.1
%mul191.7.1 = fmul fast float %3018, %cond.7.1
%mul192.7.1 = fmul fast float %mul191.7.1, %mul189.7.1
%neg.7.1 = fsub fast float -0.000000e+00, %mul184.7.1
%3019 = tail call fast float @llvm.fmuladd.f32(float %mul185.7.1, float %mul192.7.1, float %neg.7.1)
%mul194.7.1 = fmul fast float %mul192.7.1, %mul189.7.1
%mul195.7.1 = fmul fast float %mul194.7.1, %3019
%3020 = tail call fast float @llvm.fmuladd.f32(float %mul192.7.1, float %mul192.7.1, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.7.1 = fmul fast float %mul185.7.1, %3020
%add200.7.1 = fadd fast float %mul192.7.1, %nbparam_params.coerce.fca.13.2.extract
%mul202.7.1 = fmul fast float %add200.7.1, 0xBFC5555560000000
%neg203.7.1 = fmul fast float %mul202.7.1, %mul184.7.1
%3021 = tail call fast float @llvm.fmuladd.f32(float %mul197.7.1, float 0x3FB5555540000000, float %neg203.7.1)
%mul204.7.1 = fmul fast float %3021, %cond.7.1
%add205.7.1 = fadd fast float %mul204.7.1, %E_lj.3.6.1
%mul206.7.1 = fmul fast float %3011, %1653
%mul207.7.1 = fmul fast float %mul189.7.1, %cond.7.1
%mul209.7.1 = fmul fast float %3016, %mul
%mul.i.7.1 = fmul fast float %mul209.7.1, %mul209.7.1
%3022 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.1, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%3023 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.1, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%3024 = tail call fast float @llvm.fmuladd.f32(float %3022, float %mul.i.7.1, float 1.000000e+00) #9
%3025 = tail call fast float @llvm.fmuladd.f32(float %3023, float %mul209.7.1, float %3024) #9
%div.i.7.1 = fdiv fast float 1.000000e+00, %3025, !fpmath !33
%3026 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.1, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%3027 = tail call fast float @llvm.fmuladd.f32(float %mul.i.7.1, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%3028 = tail call fast float @llvm.fmuladd.f32(float %3026, float %mul.i.7.1, float 0xBF93BDB200000000) #9
%3029 = tail call fast float @llvm.fmuladd.f32(float %3027, float %mul.i.7.1, float 0x3FB1D5E760000000) #9
%3030 = tail call fast float @llvm.fmuladd.f32(float %3028, float %mul.i.7.1, float 0xBFE81272E0000000) #9
%3031 = tail call fast float @llvm.fmuladd.f32(float %3029, float %mul209.7.1, float %3030) #9
%mul7.7.1 = fmul fast float %mul11.i, %div.i.7.1
%mul211.7.1 = fmul fast float %mul7.7.1, %3031
%3032 = tail call fast float @llvm.fmuladd.f32(float %mul207.7.1, float %div188.7.1, float %mul211.7.1)
%3033 = tail call fast float @llvm.fmuladd.f32(float %mul206.7.1, float %3032, float %mul195.7.1)
%mul214.7.1 = fmul fast float %3016, %nbparam_params.coerce.fca.5.extract
%mul215.7.1 = fmul fast float %mul214.7.1, %div188.7.1
%3034 = bitcast float %mul215.7.1 to i32
%3035 = and i32 %3034, 2147483647
%3036 = bitcast i32 %3035 to float
%3037 = fmul float %3036, %3036
%3038 = fdiv float 1.000000e+00, %3037, !fpmath !33
%3039 = fadd float %3036, -1.000000e+00
%3040 = fcmp olt float %3036, 1.250000e+00
%3041 = select i1 %3040, float %3039, float %3038
%3042 = fcmp olt float %3036, 8.437500e-01
%3043 = select i1 %3042, float %3037, float %3041
%3044 = tail call float @llvm.fmuladd.f32(float %3043, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%3045 = tail call float @llvm.fmuladd.f32(float %3043, float %3044, float 0xC083EC8820000000) #9
%3046 = tail call float @llvm.fmuladd.f32(float %3043, float %3045, float 0xC064145D40000000) #9
%3047 = tail call float @llvm.fmuladd.f32(float %3043, float %3046, float 0xC031C20960000000) #9
%3048 = tail call float @llvm.fmuladd.f32(float %3043, float %3047, float 0xBFE993BA80000000) #9
%3049 = tail call float @llvm.fmuladd.f32(float %3043, float %3048, float 0xBF84341240000000) #9
%3050 = tail call float @llvm.fmuladd.f32(float %3043, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%3051 = tail call float @llvm.fmuladd.f32(float %3043, float %3050, float 0x40A3F219C0000000) #9
%3052 = tail call float @llvm.fmuladd.f32(float %3043, float %3051, float 0x40A8FFB760000000) #9
%3053 = tail call float @llvm.fmuladd.f32(float %3043, float %3052, float 0x409802EB20000000) #9
%3054 = tail call float @llvm.fmuladd.f32(float %3043, float %3053, float 0x40745CAE20000000) #9
%3055 = tail call float @llvm.fmuladd.f32(float %3043, float %3054, float 0x403E568B20000000) #9
%3056 = tail call float @llvm.fmuladd.f32(float %3043, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%3057 = tail call float @llvm.fmuladd.f32(float %3043, float %3056, float 0xC067135CE0000000) #9
%3058 = tail call float @llvm.fmuladd.f32(float %3043, float %3057, float 0xC0644CB180000000) #9
%3059 = tail call float @llvm.fmuladd.f32(float %3043, float %3058, float 0xC04F300AE0000000) #9
%3060 = tail call float @llvm.fmuladd.f32(float %3043, float %3059, float 0xC0251E0440000000) #9
%3061 = tail call float @llvm.fmuladd.f32(float %3043, float %3060, float 0xBFE63416E0000000) #9
%3062 = tail call float @llvm.fmuladd.f32(float %3043, float %3061, float 0xBF84341260000000) #9
%3063 = tail call float @llvm.fmuladd.f32(float %3043, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%3064 = tail call float @llvm.fmuladd.f32(float %3043, float %3063, float 0x405B28A3E0000000) #9
%3065 = tail call float @llvm.fmuladd.f32(float %3043, float %3064, float 0x407AD02160000000) #9
%3066 = tail call float @llvm.fmuladd.f32(float %3043, float %3065, float 0x40842B1920000000) #9
%3067 = tail call float @llvm.fmuladd.f32(float %3043, float %3066, float 0x407B290DE0000000) #9
%3068 = tail call float @llvm.fmuladd.f32(float %3043, float %3067, float 0x4061350C60000000) #9
%3069 = tail call float @llvm.fmuladd.f32(float %3043, float %3068, float 0x4033A6B9C0000000) #9
%3070 = fcmp olt float %3036, 0x4006DB6DC0000000
%3071 = select i1 %3070, float %3062, float %3049
%3072 = select i1 %3070, float %3069, float %3055
%3073 = tail call float @llvm.fmuladd.f32(float %3043, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%3074 = tail call float @llvm.fmuladd.f32(float %3043, float %3073, float 0xBFBC639840000000) #9
%3075 = tail call float @llvm.fmuladd.f32(float %3043, float %3074, float 0x3FD45FCA80000000) #9
%3076 = tail call float @llvm.fmuladd.f32(float %3043, float %3075, float 0xBFD7D24100000000) #9
%3077 = tail call float @llvm.fmuladd.f32(float %3043, float %3076, float 0x3FDA8D00A0000000) #9
%3078 = tail call float @llvm.fmuladd.f32(float %3043, float %3077, float 0xBF6359B8C0000000) #9
%3079 = tail call float @llvm.fmuladd.f32(float %3043, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%3080 = tail call float @llvm.fmuladd.f32(float %3043, float %3079, float 0x3FC02660E0000000) #9
%3081 = tail call float @llvm.fmuladd.f32(float %3043, float %3080, float 0x3FB2635CE0000000) #9
%3082 = tail call float @llvm.fmuladd.f32(float %3043, float %3081, float 0x3FE14AF0A0000000) #9
%3083 = tail call float @llvm.fmuladd.f32(float %3043, float %3082, float 0x3FBB3E6620000000) #9
%3084 = select i1 %3040, float %3078, float %3071
%3085 = select i1 %3040, float %3083, float %3072
%3086 = tail call float @llvm.fmuladd.f32(float %3043, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%3087 = tail call float @llvm.fmuladd.f32(float %3043, float %3086, float 0xBF9D2A51E0000000) #9
%3088 = tail call float @llvm.fmuladd.f32(float %3043, float %3087, float 0xBFD4CD7D60000000) #9
%3089 = tail call float @llvm.fmuladd.f32(float %3043, float %3088, float 0x3FC06EBA80000000) #9
%3090 = tail call float @llvm.fmuladd.f32(float %3043, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%3091 = tail call float @llvm.fmuladd.f32(float %3043, float %3090, float 0x3F74D022C0000000) #9
%3092 = tail call float @llvm.fmuladd.f32(float %3043, float %3091, float 0x3FB0A54C60000000) #9
%3093 = tail call float @llvm.fmuladd.f32(float %3043, float %3092, float 0x3FD97779C0000000) #9
%3094 = select i1 %3042, float %3089, float %3084
%3095 = select i1 %3042, float %3093, float %3085
%3096 = tail call float @llvm.fmuladd.f32(float %3043, float %3095, float 1.000000e+00) #9
%3097 = fdiv float %3094, %3096, !fpmath !33
%3098 = and i32 %3034, 2147479552
%3099 = bitcast i32 %3098 to float
%3100 = fsub float -0.000000e+00, %3099
%3101 = tail call float @llvm.fmuladd.f32(float %3100, float %3099, float -5.625000e-01) #9
%3102 = fcmp olt float %3101, 0.000000e+00
%3103 = select i1 %3102, float -5.000000e-01, float 5.000000e-01
%3104 = tail call float @llvm.fmuladd.f32(float %3101, float 0x3FF7154760000000, float %3103) #9
%3105 = fptosi float %3104 to i32
%3106 = sitofp i32 %3105 to float
%3107 = tail call float @llvm.fmuladd.f32(float %3106, float 0xBFE62E3000000000, float %3101) #9
%3108 = fmul float %3106, 0xBEE2FEFA20000000
%3109 = fadd float %3107, %3108
%3110 = fmul float %3109, %3109
%3111 = tail call float @llvm.fmuladd.f32(float %3110, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%3112 = tail call float @llvm.fmuladd.f32(float %3110, float %3111, float 0x3F11566AA0000000) #9
%3113 = tail call float @llvm.fmuladd.f32(float %3110, float %3112, float 0xBF66C16C20000000) #9
%3114 = tail call float @llvm.fmuladd.f32(float %3110, float %3113, float 0x3FC5555560000000) #9
%3115 = fsub float -0.000000e+00, %3114
%3116 = tail call float @llvm.fmuladd.f32(float %3110, float %3115, float %3109) #9
%3117 = fsub float -0.000000e+00, %3108
%3118 = fmul float %3109, %3116
%3119 = fsub float 2.000000e+00, %3116
%3120 = fdiv float %3118, %3119, !fpmath !33
%3121 = fsub float %3117, %3120
%3122 = fsub float %3121, %3107
%3123 = fsub float 1.000000e+00, %3122
%3124 = bitcast float %3123 to i32
%3125 = shl i32 %3105, 23
%3126 = add nsw i32 %3124, %3125
%3127 = bitcast i32 %3126 to float
%3128 = fcmp olt float %3101, 0xC055D589E0000000
%3129 = select i1 %3128, float 0.000000e+00, float %3127
%3130 = fcmp olt float %3101, 0x40562E4300000000
%3131 = select i1 %3130, float %3129, float 0x7FF0000000000000
%3132 = fcmp uno float %3101, 0.000000e+00
%3133 = select i1 %3132, float %3101, float %3131
%3134 = fsub float %3099, %3036
%3135 = fadd float %3099, %3036
%3136 = tail call float @llvm.fmuladd.f32(float %3134, float %3135, float %3097) #9
%3137 = fcmp olt float %3136, 0.000000e+00
%3138 = select i1 %3137, float -5.000000e-01, float 5.000000e-01
%3139 = tail call float @llvm.fmuladd.f32(float %3136, float 0x3FF7154760000000, float %3138) #9
%3140 = fptosi float %3139 to i32
%3141 = sitofp i32 %3140 to float
%3142 = tail call float @llvm.fmuladd.f32(float %3141, float 0xBFE62E3000000000, float %3136) #9
%3143 = fmul float %3141, 0xBEE2FEFA20000000
%3144 = fadd float %3142, %3143
%3145 = fmul float %3144, %3144
%3146 = tail call float @llvm.fmuladd.f32(float %3145, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%3147 = tail call float @llvm.fmuladd.f32(float %3145, float %3146, float 0x3F11566AA0000000) #9
%3148 = tail call float @llvm.fmuladd.f32(float %3145, float %3147, float 0xBF66C16C20000000) #9
%3149 = tail call float @llvm.fmuladd.f32(float %3145, float %3148, float 0x3FC5555560000000) #9
%3150 = fsub float -0.000000e+00, %3149
%3151 = tail call float @llvm.fmuladd.f32(float %3145, float %3150, float %3144) #9
%3152 = fsub float -0.000000e+00, %3143
%3153 = fmul float %3144, %3151
%3154 = fsub float 2.000000e+00, %3151
%3155 = fdiv float %3153, %3154, !fpmath !33
%3156 = fsub float %3152, %3155
%3157 = fsub float %3156, %3142
%3158 = fsub float 1.000000e+00, %3157
%3159 = bitcast float %3158 to i32
%3160 = shl i32 %3140, 23
%3161 = add nsw i32 %3159, %3160
%3162 = bitcast i32 %3161 to float
%3163 = fcmp olt float %3136, 0xC055D589E0000000
%3164 = select i1 %3163, float 0.000000e+00, float %3162
%3165 = fcmp olt float %3136, 0x40562E4300000000
%3166 = select i1 %3165, float %3164, float 0x7FF0000000000000
%3167 = fcmp uno float %3136, 0.000000e+00
%3168 = select i1 %3167, float %3136, float %3166
%3169 = fmul float %3133, %3168
%3170 = fdiv float %3169, %3036, !fpmath !33
%3171 = fsub float 1.000000e+00, %3170
%3172 = fcmp olt float %3036, 6.000000e+00
%3173 = select i1 %3172, float %3171, float 1.000000e+00
%3174 = fadd float %3097, 0x3FEB0AC160000000
%3175 = select i1 %3040, float %3174, float %3173
%3176 = and i32 %3034, -2147483648
%3177 = bitcast float %3175 to i32
%3178 = or i32 %3177, %3176
%3179 = bitcast i32 %3178 to float
%3180 = tail call float @llvm.fmuladd.f32(float %mul215.7.1, float %3097, float %mul215.7.1) #9
%3181 = select i1 %3042, float %3180, float %3179
%3182 = fmul float %mul215.7.1, 0x3FF06EBA80000000
%3183 = tail call float @llvm.fmuladd.f32(float %mul215.7.1, float 8.000000e+00, float %3182) #9
%3184 = fmul float %3183, 1.250000e-01
%3185 = fcmp olt float %3036, 0x3E30000000000000
%3186 = select i1 %3185, float %3184, float %3181
%3187 = fcmp uno float %mul215.7.1, 0.000000e+00
%3188 = select i1 %3187, float %mul215.7.1, float %3186
%sub217.7.1 = fsub fast float %cond.7.1, %3188
%3189 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.7.1
%neg220.7.1 = fsub fast float -0.000000e+00, %3189
%3190 = tail call fast float @llvm.fmuladd.f32(float %div188.7.1, float %sub217.7.1, float %neg220.7.1)
%3191 = tail call fast float @llvm.fmuladd.f32(float %mul206.7.1, float %3190, float %E_el.5.6.1)
%splat.splatinsert.7.1 = insertelement <3 x float> undef, float %3033, i32 0
%splat.splat.7.1 = shufflevector <3 x float> %splat.splatinsert.7.1, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.7.1 = fmul fast <3 x float> %splat.splat.7.1, %extractVec165.7.1
%extractVec233.7.1 = shufflevector <4 x float> %fcj_buf.sroa.0.1.6.1, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.7.1 = fsub fast <3 x float> %extractVec233.7.1, %mul225.7.1
%extractVec235.7.1 = shufflevector <3 x float> %sub234.7.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.7.1 = shufflevector <4 x float> %loadVec4243.7.3820, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.7.1 = fadd fast <3 x float> %mul225.7.1, %extractVec244.7.1
%extractVec246.7.1 = shufflevector <3 x float> %add245.7.1, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %3192
; <label>:3192: ; preds = %3010, %3001, %3000
%loadVec4243.7.3815 = phi <4 x float> [ %extractVec246.7.1, %3010 ], [ %loadVec4243.7.3820, %3001 ], [ %loadVec4243.7.3820, %3000 ]
%E_el.5.7.1 = phi float [ %3191, %3010 ], [ %E_el.5.6.1, %3001 ], [ %E_el.5.6.1, %3000 ]
%fcj_buf.sroa.0.1.7.1 = phi <4 x float> [ %extractVec235.7.1, %3010 ], [ %fcj_buf.sroa.0.1.6.1, %3001 ], [ %fcj_buf.sroa.0.1.6.1, %3000 ]
%E_lj.3.7.1 = phi float [ %add205.7.1, %3010 ], [ %E_lj.3.6.1, %3001 ], [ %E_lj.3.6.1, %3000 ]
%3193 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.1, i32 0
store float %3193, float addrspace(3)* %arrayidx251, align 4, !tbaa !17
%3194 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.1, i32 1
store float %3194, float addrspace(3)* %arrayidx254, align 4, !tbaa !17
%3195 = extractelement <4 x float> %fcj_buf.sroa.0.1.7.1, i32 2
store float %3195, float addrspace(3)* %arrayidx257, align 4, !tbaa !17
tail call void @reduce_force_j_generic(float addrspace(3)* %11, float addrspace(1)* %f, i32 %1, i32 %3, i32 %add135.1)
br label %.preheader.2736
.preheader.2736: ; preds = %3192, %.preheader.1735
%loadVec4243.7.3819 = phi <4 x float> [ %loadVec4243.7.3815, %3192 ], [ %loadVec4243.7.3820, %.preheader.1735 ]
%loadVec4243.6.3810 = phi <4 x float> [ %loadVec4243.6.3806, %3192 ], [ %loadVec4243.6.3811, %.preheader.1735 ]
%loadVec4243.5.3801 = phi <4 x float> [ %loadVec4243.5.3797, %3192 ], [ %loadVec4243.5.3802, %.preheader.1735 ]
%loadVec4243.4.3792 = phi <4 x float> [ %loadVec4243.4.3788, %3192 ], [ %loadVec4243.4.3793, %.preheader.1735 ]
%loadVec4243.3.3783 = phi <4 x float> [ %loadVec4243.3.3779, %3192 ], [ %loadVec4243.3.3784, %.preheader.1735 ]
%loadVec4243.2.3774 = phi <4 x float> [ %loadVec4243.2.3770, %3192 ], [ %loadVec4243.2.3775, %.preheader.1735 ]
%loadVec4243.1.3765 = phi <4 x float> [ %loadVec4243.1.3761, %3192 ], [ %loadVec4243.1.3766, %.preheader.1735 ]
%loadVec4243.3727756 = phi <4 x float> [ %loadVec4243.3727752, %3192 ], [ %loadVec4243.3727757, %.preheader.1735 ]
%E_el.6.1 = phi float [ %E_el.5.7.1, %3192 ], [ %E_el.6, %.preheader.1735 ]
%E_lj.4.1 = phi float [ %E_lj.3.7.1, %3192 ], [ %E_lj.4, %.preheader.1735 ]
%and123.2 = and i32 %57, 16711680
%tobool124.2 = icmp eq i32 %and123.2, 0
br i1 %tobool124.2, label %.preheader.3737, label %3196
; <label>:3196: ; preds = %.preheader.2736
%3197 = load i32, i32 addrspace(3)* %arrayidx133.2, align 4, !tbaa !9
%mul134.2 = shl nsw i32 %3197, 3
%add135.2 = add i32 %mul134.2, %3
%idxprom136.2 = sext i32 %add135.2 to i64
%arrayidx137.2 = getelementptr inbounds <4 x float>, <4 x float> addrspace(1)* %xq, i64 %idxprom136.2
%3198 = load <4 x float>, <4 x float> addrspace(1)* %arrayidx137.2, align 16, !tbaa !13
%3199 = extractelement <4 x float> %3198, i64 3
%arrayidx140.2 = getelementptr inbounds <2 x float>, <2 x float> addrspace(1)* %lj_comb, i64 %idxprom136.2
%3200 = load <2 x float>, <2 x float> addrspace(1)* %arrayidx140.2, align 8, !tbaa !13
%3201 = extractelement <2 x float> %3200, i64 0
%3202 = extractelement <2 x float> %3200, i64 1
%and144.2623 = and i32 %57, 65536
%tobool145.2624 = icmp eq i32 %and144.2623, 0
br i1 %tobool145.2624, label %3394, label %3203
; <label>:3203: ; preds = %3196
%3204 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.2625, align 16, !tbaa !13
%3205 = fsub fast <4 x float> %3204, %3198
%3206 = extractelement <4 x float> %3205, i32 0
%3207 = extractelement <4 x float> %3205, i32 1
%3208 = fmul float %3207, %3207
%3209 = tail call float @llvm.fmuladd.f32(float %3206, float %3206, float %3208) #9
%3210 = extractelement <4 x float> %3205, i32 2
%3211 = tail call float @llvm.fmuladd.f32(float %3210, float %3210, float %3209) #9
%and167.2626 = and i32 %58, 65536
%tobool168.2627 = icmp ne i32 %and167.2626, 0
%cond.2628 = select i1 %tobool168.2627, float 1.000000e+00, float 0.000000e+00
%cmp172.2629 = icmp eq i32 %mul22, %3197
%or.cond.2630 = and i1 %cmp66, %cmp172.2629
%not.or.cond.2631 = xor i1 %or.cond.2630, true
%cmp174..2632 = or i1 %cmp174, %not.or.cond.2631
%conv176.2633 = uitofp i1 %cmp174..2632 to float
%mul177.2634 = fmul fast float %conv176.2633, %nbparam_params.coerce.fca.9.extract
%cmp178.2635 = fcmp fast olt float %3211, %mul177.2634
br i1 %cmp178.2635, label %3212, label %3394
; <label>:3212: ; preds = %3203
%extractVec165.2636 = shufflevector <4 x float> %3205, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%3213 = extractelement <4 x float> %3204, i64 3
%3214 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.2637, align 8, !tbaa !13
%3215 = extractelement <2 x float> %3214, i64 0
%mul184.2638 = fmul fast float %3215, %3201
%3216 = extractelement <2 x float> %3214, i64 1
%mul185.2639 = fmul fast float %3216, %3202
%3217 = fcmp ogt float %3211, 0x3E99A2B5C0000000
%3218 = select i1 %3217, float %3211, float 0x3E99A2B5C0000000
%3219 = tail call float @llvm.sqrt.f32(float %3218) #10
%div188.2640 = fdiv fast float 1.000000e+00, %3219, !fpmath !33
%mul189.2641 = fmul fast float %div188.2640, %div188.2640
%3220 = fmul fast float %mul189.2641, %mul189.2641
%mul191.2642 = fmul fast float %3220, %cond.2628
%mul192.2643 = fmul fast float %mul191.2642, %mul189.2641
%neg.2644 = fsub fast float -0.000000e+00, %mul184.2638
%3221 = tail call fast float @llvm.fmuladd.f32(float %mul185.2639, float %mul192.2643, float %neg.2644)
%mul194.2645 = fmul fast float %mul192.2643, %mul189.2641
%mul195.2646 = fmul fast float %mul194.2645, %3221
%3222 = tail call fast float @llvm.fmuladd.f32(float %mul192.2643, float %mul192.2643, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.2647 = fmul fast float %mul185.2639, %3222
%add200.2648 = fadd fast float %mul192.2643, %nbparam_params.coerce.fca.13.2.extract
%mul202.2649 = fmul fast float %add200.2648, 0xBFC5555560000000
%neg203.2650 = fmul fast float %mul202.2649, %mul184.2638
%3223 = tail call fast float @llvm.fmuladd.f32(float %mul197.2647, float 0x3FB5555540000000, float %neg203.2650)
%mul204.2651 = fmul fast float %3223, %cond.2628
%add205.2652 = fadd fast float %mul204.2651, %E_lj.4.1
%mul206.2653 = fmul fast float %3213, %3199
%mul207.2654 = fmul fast float %mul189.2641, %cond.2628
%mul209.2655 = fmul fast float %3218, %mul
%mul.i.2656 = fmul fast float %mul209.2655, %mul209.2655
%3224 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2656, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%3225 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2656, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%3226 = tail call fast float @llvm.fmuladd.f32(float %3224, float %mul.i.2656, float 1.000000e+00) #9
%3227 = tail call fast float @llvm.fmuladd.f32(float %3225, float %mul209.2655, float %3226) #9
%div.i.2657 = fdiv fast float 1.000000e+00, %3227, !fpmath !33
%3228 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2656, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%3229 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2656, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%3230 = tail call fast float @llvm.fmuladd.f32(float %3228, float %mul.i.2656, float 0xBF93BDB200000000) #9
%3231 = tail call fast float @llvm.fmuladd.f32(float %3229, float %mul.i.2656, float 0x3FB1D5E760000000) #9
%3232 = tail call fast float @llvm.fmuladd.f32(float %3230, float %mul.i.2656, float 0xBFE81272E0000000) #9
%3233 = tail call fast float @llvm.fmuladd.f32(float %3231, float %mul209.2655, float %3232) #9
%mul7.2658 = fmul fast float %mul11.i, %div.i.2657
%mul211.2659 = fmul fast float %mul7.2658, %3233
%3234 = tail call fast float @llvm.fmuladd.f32(float %mul207.2654, float %div188.2640, float %mul211.2659)
%3235 = tail call fast float @llvm.fmuladd.f32(float %mul206.2653, float %3234, float %mul195.2646)
%mul214.2660 = fmul fast float %3218, %nbparam_params.coerce.fca.5.extract
%mul215.2661 = fmul fast float %mul214.2660, %div188.2640
%3236 = bitcast float %mul215.2661 to i32
%3237 = and i32 %3236, 2147483647
%3238 = bitcast i32 %3237 to float
%3239 = fmul float %3238, %3238
%3240 = fdiv float 1.000000e+00, %3239, !fpmath !33
%3241 = fadd float %3238, -1.000000e+00
%3242 = fcmp olt float %3238, 1.250000e+00
%3243 = select i1 %3242, float %3241, float %3240
%3244 = fcmp olt float %3238, 8.437500e-01
%3245 = select i1 %3244, float %3239, float %3243
%3246 = tail call float @llvm.fmuladd.f32(float %3245, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%3247 = tail call float @llvm.fmuladd.f32(float %3245, float %3246, float 0xC083EC8820000000) #9
%3248 = tail call float @llvm.fmuladd.f32(float %3245, float %3247, float 0xC064145D40000000) #9
%3249 = tail call float @llvm.fmuladd.f32(float %3245, float %3248, float 0xC031C20960000000) #9
%3250 = tail call float @llvm.fmuladd.f32(float %3245, float %3249, float 0xBFE993BA80000000) #9
%3251 = tail call float @llvm.fmuladd.f32(float %3245, float %3250, float 0xBF84341240000000) #9
%3252 = tail call float @llvm.fmuladd.f32(float %3245, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%3253 = tail call float @llvm.fmuladd.f32(float %3245, float %3252, float 0x40A3F219C0000000) #9
%3254 = tail call float @llvm.fmuladd.f32(float %3245, float %3253, float 0x40A8FFB760000000) #9
%3255 = tail call float @llvm.fmuladd.f32(float %3245, float %3254, float 0x409802EB20000000) #9
%3256 = tail call float @llvm.fmuladd.f32(float %3245, float %3255, float 0x40745CAE20000000) #9
%3257 = tail call float @llvm.fmuladd.f32(float %3245, float %3256, float 0x403E568B20000000) #9
%3258 = tail call float @llvm.fmuladd.f32(float %3245, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%3259 = tail call float @llvm.fmuladd.f32(float %3245, float %3258, float 0xC067135CE0000000) #9
%3260 = tail call float @llvm.fmuladd.f32(float %3245, float %3259, float 0xC0644CB180000000) #9
%3261 = tail call float @llvm.fmuladd.f32(float %3245, float %3260, float 0xC04F300AE0000000) #9
%3262 = tail call float @llvm.fmuladd.f32(float %3245, float %3261, float 0xC0251E0440000000) #9
%3263 = tail call float @llvm.fmuladd.f32(float %3245, float %3262, float 0xBFE63416E0000000) #9
%3264 = tail call float @llvm.fmuladd.f32(float %3245, float %3263, float 0xBF84341260000000) #9
%3265 = tail call float @llvm.fmuladd.f32(float %3245, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%3266 = tail call float @llvm.fmuladd.f32(float %3245, float %3265, float 0x405B28A3E0000000) #9
%3267 = tail call float @llvm.fmuladd.f32(float %3245, float %3266, float 0x407AD02160000000) #9
%3268 = tail call float @llvm.fmuladd.f32(float %3245, float %3267, float 0x40842B1920000000) #9
%3269 = tail call float @llvm.fmuladd.f32(float %3245, float %3268, float 0x407B290DE0000000) #9
%3270 = tail call float @llvm.fmuladd.f32(float %3245, float %3269, float 0x4061350C60000000) #9
%3271 = tail call float @llvm.fmuladd.f32(float %3245, float %3270, float 0x4033A6B9C0000000) #9
%3272 = fcmp olt float %3238, 0x4006DB6DC0000000
%3273 = select i1 %3272, float %3264, float %3251
%3274 = select i1 %3272, float %3271, float %3257
%3275 = tail call float @llvm.fmuladd.f32(float %3245, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%3276 = tail call float @llvm.fmuladd.f32(float %3245, float %3275, float 0xBFBC639840000000) #9
%3277 = tail call float @llvm.fmuladd.f32(float %3245, float %3276, float 0x3FD45FCA80000000) #9
%3278 = tail call float @llvm.fmuladd.f32(float %3245, float %3277, float 0xBFD7D24100000000) #9
%3279 = tail call float @llvm.fmuladd.f32(float %3245, float %3278, float 0x3FDA8D00A0000000) #9
%3280 = tail call float @llvm.fmuladd.f32(float %3245, float %3279, float 0xBF6359B8C0000000) #9
%3281 = tail call float @llvm.fmuladd.f32(float %3245, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%3282 = tail call float @llvm.fmuladd.f32(float %3245, float %3281, float 0x3FC02660E0000000) #9
%3283 = tail call float @llvm.fmuladd.f32(float %3245, float %3282, float 0x3FB2635CE0000000) #9
%3284 = tail call float @llvm.fmuladd.f32(float %3245, float %3283, float 0x3FE14AF0A0000000) #9
%3285 = tail call float @llvm.fmuladd.f32(float %3245, float %3284, float 0x3FBB3E6620000000) #9
%3286 = select i1 %3242, float %3280, float %3273
%3287 = select i1 %3242, float %3285, float %3274
%3288 = tail call float @llvm.fmuladd.f32(float %3245, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%3289 = tail call float @llvm.fmuladd.f32(float %3245, float %3288, float 0xBF9D2A51E0000000) #9
%3290 = tail call float @llvm.fmuladd.f32(float %3245, float %3289, float 0xBFD4CD7D60000000) #9
%3291 = tail call float @llvm.fmuladd.f32(float %3245, float %3290, float 0x3FC06EBA80000000) #9
%3292 = tail call float @llvm.fmuladd.f32(float %3245, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%3293 = tail call float @llvm.fmuladd.f32(float %3245, float %3292, float 0x3F74D022C0000000) #9
%3294 = tail call float @llvm.fmuladd.f32(float %3245, float %3293, float 0x3FB0A54C60000000) #9
%3295 = tail call float @llvm.fmuladd.f32(float %3245, float %3294, float 0x3FD97779C0000000) #9
%3296 = select i1 %3244, float %3291, float %3286
%3297 = select i1 %3244, float %3295, float %3287
%3298 = tail call float @llvm.fmuladd.f32(float %3245, float %3297, float 1.000000e+00) #9
%3299 = fdiv float %3296, %3298, !fpmath !33
%3300 = and i32 %3236, 2147479552
%3301 = bitcast i32 %3300 to float
%3302 = fsub float -0.000000e+00, %3301
%3303 = tail call float @llvm.fmuladd.f32(float %3302, float %3301, float -5.625000e-01) #9
%3304 = fcmp olt float %3303, 0.000000e+00
%3305 = select i1 %3304, float -5.000000e-01, float 5.000000e-01
%3306 = tail call float @llvm.fmuladd.f32(float %3303, float 0x3FF7154760000000, float %3305) #9
%3307 = fptosi float %3306 to i32
%3308 = sitofp i32 %3307 to float
%3309 = tail call float @llvm.fmuladd.f32(float %3308, float 0xBFE62E3000000000, float %3303) #9
%3310 = fmul float %3308, 0xBEE2FEFA20000000
%3311 = fadd float %3309, %3310
%3312 = fmul float %3311, %3311
%3313 = tail call float @llvm.fmuladd.f32(float %3312, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%3314 = tail call float @llvm.fmuladd.f32(float %3312, float %3313, float 0x3F11566AA0000000) #9
%3315 = tail call float @llvm.fmuladd.f32(float %3312, float %3314, float 0xBF66C16C20000000) #9
%3316 = tail call float @llvm.fmuladd.f32(float %3312, float %3315, float 0x3FC5555560000000) #9
%3317 = fsub float -0.000000e+00, %3316
%3318 = tail call float @llvm.fmuladd.f32(float %3312, float %3317, float %3311) #9
%3319 = fsub float -0.000000e+00, %3310
%3320 = fmul float %3311, %3318
%3321 = fsub float 2.000000e+00, %3318
%3322 = fdiv float %3320, %3321, !fpmath !33
%3323 = fsub float %3319, %3322
%3324 = fsub float %3323, %3309
%3325 = fsub float 1.000000e+00, %3324
%3326 = bitcast float %3325 to i32
%3327 = shl i32 %3307, 23
%3328 = add nsw i32 %3326, %3327
%3329 = bitcast i32 %3328 to float
%3330 = fcmp olt float %3303, 0xC055D589E0000000
%3331 = select i1 %3330, float 0.000000e+00, float %3329
%3332 = fcmp olt float %3303, 0x40562E4300000000
%3333 = select i1 %3332, float %3331, float 0x7FF0000000000000
%3334 = fcmp uno float %3303, 0.000000e+00
%3335 = select i1 %3334, float %3303, float %3333
%3336 = fsub float %3301, %3238
%3337 = fadd float %3301, %3238
%3338 = tail call float @llvm.fmuladd.f32(float %3336, float %3337, float %3299) #9
%3339 = fcmp olt float %3338, 0.000000e+00
%3340 = select i1 %3339, float -5.000000e-01, float 5.000000e-01
%3341 = tail call float @llvm.fmuladd.f32(float %3338, float 0x3FF7154760000000, float %3340) #9
%3342 = fptosi float %3341 to i32
%3343 = sitofp i32 %3342 to float
%3344 = tail call float @llvm.fmuladd.f32(float %3343, float 0xBFE62E3000000000, float %3338) #9
%3345 = fmul float %3343, 0xBEE2FEFA20000000
%3346 = fadd float %3344, %3345
%3347 = fmul float %3346, %3346
%3348 = tail call float @llvm.fmuladd.f32(float %3347, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%3349 = tail call float @llvm.fmuladd.f32(float %3347, float %3348, float 0x3F11566AA0000000) #9
%3350 = tail call float @llvm.fmuladd.f32(float %3347, float %3349, float 0xBF66C16C20000000) #9
%3351 = tail call float @llvm.fmuladd.f32(float %3347, float %3350, float 0x3FC5555560000000) #9
%3352 = fsub float -0.000000e+00, %3351
%3353 = tail call float @llvm.fmuladd.f32(float %3347, float %3352, float %3346) #9
%3354 = fsub float -0.000000e+00, %3345
%3355 = fmul float %3346, %3353
%3356 = fsub float 2.000000e+00, %3353
%3357 = fdiv float %3355, %3356, !fpmath !33
%3358 = fsub float %3354, %3357
%3359 = fsub float %3358, %3344
%3360 = fsub float 1.000000e+00, %3359
%3361 = bitcast float %3360 to i32
%3362 = shl i32 %3342, 23
%3363 = add nsw i32 %3361, %3362
%3364 = bitcast i32 %3363 to float
%3365 = fcmp olt float %3338, 0xC055D589E0000000
%3366 = select i1 %3365, float 0.000000e+00, float %3364
%3367 = fcmp olt float %3338, 0x40562E4300000000
%3368 = select i1 %3367, float %3366, float 0x7FF0000000000000
%3369 = fcmp uno float %3338, 0.000000e+00
%3370 = select i1 %3369, float %3338, float %3368
%3371 = fmul float %3335, %3370
%3372 = fdiv float %3371, %3238, !fpmath !33
%3373 = fsub float 1.000000e+00, %3372
%3374 = fcmp olt float %3238, 6.000000e+00
%3375 = select i1 %3374, float %3373, float 1.000000e+00
%3376 = fadd float %3299, 0x3FEB0AC160000000
%3377 = select i1 %3242, float %3376, float %3375
%3378 = and i32 %3236, -2147483648
%3379 = bitcast float %3377 to i32
%3380 = or i32 %3379, %3378
%3381 = bitcast i32 %3380 to float
%3382 = tail call float @llvm.fmuladd.f32(float %mul215.2661, float %3299, float %mul215.2661) #9
%3383 = select i1 %3244, float %3382, float %3381
%3384 = fmul float %mul215.2661, 0x3FF06EBA80000000
%3385 = tail call float @llvm.fmuladd.f32(float %mul215.2661, float 8.000000e+00, float %3384) #9
%3386 = fmul float %3385, 1.250000e-01
%3387 = fcmp olt float %3238, 0x3E30000000000000
%3388 = select i1 %3387, float %3386, float %3383
%3389 = fcmp uno float %mul215.2661, 0.000000e+00
%3390 = select i1 %3389, float %mul215.2661, float %3388
%sub217.2662 = fsub fast float %cond.2628, %3390
%3391 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.2628
%neg220.2663 = fsub fast float -0.000000e+00, %3391
%3392 = tail call fast float @llvm.fmuladd.f32(float %div188.2640, float %sub217.2662, float %neg220.2663)
%3393 = tail call fast float @llvm.fmuladd.f32(float %mul206.2653, float %3392, float %E_el.6.1)
%splat.splatinsert.2664 = insertelement <3 x float> undef, float %3235, i32 0
%splat.splat.2665 = shufflevector <3 x float> %splat.splatinsert.2664, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.2666 = fmul fast <3 x float> %splat.splat.2665, %extractVec165.2636
%sub234.2667 = fsub fast <3 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %mul225.2666
%extractVec235.2668 = shufflevector <3 x float> %sub234.2667, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.2672 = shufflevector <4 x float> %loadVec4243.3727756, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.2673 = fadd fast <3 x float> %mul225.2666, %extractVec244.2672
%extractVec246.2674 = shufflevector <3 x float> %add245.2673, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %3394
; <label>:3394: ; preds = %3212, %3203, %3196
%loadVec4243.3727753 = phi <4 x float> [ %extractVec246.2674, %3212 ], [ %loadVec4243.3727756, %3203 ], [ %loadVec4243.3727756, %3196 ]
%E_el.5.2675 = phi float [ %3393, %3212 ], [ %E_el.6.1, %3203 ], [ %E_el.6.1, %3196 ]
%fcj_buf.sroa.0.1.2676 = phi <4 x float> [ %extractVec235.2668, %3212 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %3203 ], [ <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float undef>, %3196 ]
%E_lj.3.2677 = phi float [ %add205.2652, %3212 ], [ %E_lj.4.1, %3203 ], [ %E_lj.4.1, %3196 ]
%and144.1.2 = and i32 %57, 131072
%tobool145.1.2 = icmp eq i32 %and144.1.2, 0
br i1 %tobool145.1.2, label %3586, label %3395
; <label>:3395: ; preds = %3394
%3396 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.1.2, align 16, !tbaa !13
%3397 = fsub fast <4 x float> %3396, %3198
%3398 = extractelement <4 x float> %3397, i32 0
%3399 = extractelement <4 x float> %3397, i32 1
%3400 = fmul float %3399, %3399
%3401 = tail call float @llvm.fmuladd.f32(float %3398, float %3398, float %3400) #9
%3402 = extractelement <4 x float> %3397, i32 2
%3403 = tail call float @llvm.fmuladd.f32(float %3402, float %3402, float %3401) #9
%and167.1.2 = and i32 %58, 131072
%tobool168.1.2 = icmp ne i32 %and167.1.2, 0
%cond.1.2 = select i1 %tobool168.1.2, float 1.000000e+00, float 0.000000e+00
%cmp172.1.2 = icmp eq i32 %add147.1.2, %3197
%or.cond.1.2 = and i1 %cmp66, %cmp172.1.2
%not.or.cond.1.2 = xor i1 %or.cond.1.2, true
%cmp174..1.2 = or i1 %cmp174, %not.or.cond.1.2
%conv176.1.2 = uitofp i1 %cmp174..1.2 to float
%mul177.1.2 = fmul fast float %conv176.1.2, %nbparam_params.coerce.fca.9.extract
%cmp178.1.2 = fcmp fast olt float %3403, %mul177.1.2
br i1 %cmp178.1.2, label %3404, label %3586
; <label>:3404: ; preds = %3395
%extractVec165.1.2 = shufflevector <4 x float> %3397, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%3405 = extractelement <4 x float> %3396, i64 3
%3406 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.1.2, align 8, !tbaa !13
%3407 = extractelement <2 x float> %3406, i64 0
%mul184.1.2 = fmul fast float %3407, %3201
%3408 = extractelement <2 x float> %3406, i64 1
%mul185.1.2 = fmul fast float %3408, %3202
%3409 = fcmp ogt float %3403, 0x3E99A2B5C0000000
%3410 = select i1 %3409, float %3403, float 0x3E99A2B5C0000000
%3411 = tail call float @llvm.sqrt.f32(float %3410) #10
%div188.1.2 = fdiv fast float 1.000000e+00, %3411, !fpmath !33
%mul189.1.2 = fmul fast float %div188.1.2, %div188.1.2
%3412 = fmul fast float %mul189.1.2, %mul189.1.2
%mul191.1.2 = fmul fast float %3412, %cond.1.2
%mul192.1.2 = fmul fast float %mul191.1.2, %mul189.1.2
%neg.1.2 = fsub fast float -0.000000e+00, %mul184.1.2
%3413 = tail call fast float @llvm.fmuladd.f32(float %mul185.1.2, float %mul192.1.2, float %neg.1.2)
%mul194.1.2 = fmul fast float %mul192.1.2, %mul189.1.2
%mul195.1.2 = fmul fast float %mul194.1.2, %3413
%3414 = tail call fast float @llvm.fmuladd.f32(float %mul192.1.2, float %mul192.1.2, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.1.2 = fmul fast float %mul185.1.2, %3414
%add200.1.2 = fadd fast float %mul192.1.2, %nbparam_params.coerce.fca.13.2.extract
%mul202.1.2 = fmul fast float %add200.1.2, 0xBFC5555560000000
%neg203.1.2 = fmul fast float %mul202.1.2, %mul184.1.2
%3415 = tail call fast float @llvm.fmuladd.f32(float %mul197.1.2, float 0x3FB5555540000000, float %neg203.1.2)
%mul204.1.2 = fmul fast float %3415, %cond.1.2
%add205.1.2 = fadd fast float %mul204.1.2, %E_lj.3.2677
%mul206.1.2 = fmul fast float %3405, %3199
%mul207.1.2 = fmul fast float %mul189.1.2, %cond.1.2
%mul209.1.2 = fmul fast float %3410, %mul
%mul.i.1.2 = fmul fast float %mul209.1.2, %mul209.1.2
%3416 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%3417 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%3418 = tail call fast float @llvm.fmuladd.f32(float %3416, float %mul.i.1.2, float 1.000000e+00) #9
%3419 = tail call fast float @llvm.fmuladd.f32(float %3417, float %mul209.1.2, float %3418) #9
%div.i.1.2 = fdiv fast float 1.000000e+00, %3419, !fpmath !33
%3420 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%3421 = tail call fast float @llvm.fmuladd.f32(float %mul.i.1.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%3422 = tail call fast float @llvm.fmuladd.f32(float %3420, float %mul.i.1.2, float 0xBF93BDB200000000) #9
%3423 = tail call fast float @llvm.fmuladd.f32(float %3421, float %mul.i.1.2, float 0x3FB1D5E760000000) #9
%3424 = tail call fast float @llvm.fmuladd.f32(float %3422, float %mul.i.1.2, float 0xBFE81272E0000000) #9
%3425 = tail call fast float @llvm.fmuladd.f32(float %3423, float %mul209.1.2, float %3424) #9
%mul7.1.2 = fmul fast float %mul11.i, %div.i.1.2
%mul211.1.2 = fmul fast float %mul7.1.2, %3425
%3426 = tail call fast float @llvm.fmuladd.f32(float %mul207.1.2, float %div188.1.2, float %mul211.1.2)
%3427 = tail call fast float @llvm.fmuladd.f32(float %mul206.1.2, float %3426, float %mul195.1.2)
%mul214.1.2 = fmul fast float %3410, %nbparam_params.coerce.fca.5.extract
%mul215.1.2 = fmul fast float %mul214.1.2, %div188.1.2
%3428 = bitcast float %mul215.1.2 to i32
%3429 = and i32 %3428, 2147483647
%3430 = bitcast i32 %3429 to float
%3431 = fmul float %3430, %3430
%3432 = fdiv float 1.000000e+00, %3431, !fpmath !33
%3433 = fadd float %3430, -1.000000e+00
%3434 = fcmp olt float %3430, 1.250000e+00
%3435 = select i1 %3434, float %3433, float %3432
%3436 = fcmp olt float %3430, 8.437500e-01
%3437 = select i1 %3436, float %3431, float %3435
%3438 = tail call float @llvm.fmuladd.f32(float %3437, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%3439 = tail call float @llvm.fmuladd.f32(float %3437, float %3438, float 0xC083EC8820000000) #9
%3440 = tail call float @llvm.fmuladd.f32(float %3437, float %3439, float 0xC064145D40000000) #9
%3441 = tail call float @llvm.fmuladd.f32(float %3437, float %3440, float 0xC031C20960000000) #9
%3442 = tail call float @llvm.fmuladd.f32(float %3437, float %3441, float 0xBFE993BA80000000) #9
%3443 = tail call float @llvm.fmuladd.f32(float %3437, float %3442, float 0xBF84341240000000) #9
%3444 = tail call float @llvm.fmuladd.f32(float %3437, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%3445 = tail call float @llvm.fmuladd.f32(float %3437, float %3444, float 0x40A3F219C0000000) #9
%3446 = tail call float @llvm.fmuladd.f32(float %3437, float %3445, float 0x40A8FFB760000000) #9
%3447 = tail call float @llvm.fmuladd.f32(float %3437, float %3446, float 0x409802EB20000000) #9
%3448 = tail call float @llvm.fmuladd.f32(float %3437, float %3447, float 0x40745CAE20000000) #9
%3449 = tail call float @llvm.fmuladd.f32(float %3437, float %3448, float 0x403E568B20000000) #9
%3450 = tail call float @llvm.fmuladd.f32(float %3437, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%3451 = tail call float @llvm.fmuladd.f32(float %3437, float %3450, float 0xC067135CE0000000) #9
%3452 = tail call float @llvm.fmuladd.f32(float %3437, float %3451, float 0xC0644CB180000000) #9
%3453 = tail call float @llvm.fmuladd.f32(float %3437, float %3452, float 0xC04F300AE0000000) #9
%3454 = tail call float @llvm.fmuladd.f32(float %3437, float %3453, float 0xC0251E0440000000) #9
%3455 = tail call float @llvm.fmuladd.f32(float %3437, float %3454, float 0xBFE63416E0000000) #9
%3456 = tail call float @llvm.fmuladd.f32(float %3437, float %3455, float 0xBF84341260000000) #9
%3457 = tail call float @llvm.fmuladd.f32(float %3437, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%3458 = tail call float @llvm.fmuladd.f32(float %3437, float %3457, float 0x405B28A3E0000000) #9
%3459 = tail call float @llvm.fmuladd.f32(float %3437, float %3458, float 0x407AD02160000000) #9
%3460 = tail call float @llvm.fmuladd.f32(float %3437, float %3459, float 0x40842B1920000000) #9
%3461 = tail call float @llvm.fmuladd.f32(float %3437, float %3460, float 0x407B290DE0000000) #9
%3462 = tail call float @llvm.fmuladd.f32(float %3437, float %3461, float 0x4061350C60000000) #9
%3463 = tail call float @llvm.fmuladd.f32(float %3437, float %3462, float 0x4033A6B9C0000000) #9
%3464 = fcmp olt float %3430, 0x4006DB6DC0000000
%3465 = select i1 %3464, float %3456, float %3443
%3466 = select i1 %3464, float %3463, float %3449
%3467 = tail call float @llvm.fmuladd.f32(float %3437, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%3468 = tail call float @llvm.fmuladd.f32(float %3437, float %3467, float 0xBFBC639840000000) #9
%3469 = tail call float @llvm.fmuladd.f32(float %3437, float %3468, float 0x3FD45FCA80000000) #9
%3470 = tail call float @llvm.fmuladd.f32(float %3437, float %3469, float 0xBFD7D24100000000) #9
%3471 = tail call float @llvm.fmuladd.f32(float %3437, float %3470, float 0x3FDA8D00A0000000) #9
%3472 = tail call float @llvm.fmuladd.f32(float %3437, float %3471, float 0xBF6359B8C0000000) #9
%3473 = tail call float @llvm.fmuladd.f32(float %3437, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%3474 = tail call float @llvm.fmuladd.f32(float %3437, float %3473, float 0x3FC02660E0000000) #9
%3475 = tail call float @llvm.fmuladd.f32(float %3437, float %3474, float 0x3FB2635CE0000000) #9
%3476 = tail call float @llvm.fmuladd.f32(float %3437, float %3475, float 0x3FE14AF0A0000000) #9
%3477 = tail call float @llvm.fmuladd.f32(float %3437, float %3476, float 0x3FBB3E6620000000) #9
%3478 = select i1 %3434, float %3472, float %3465
%3479 = select i1 %3434, float %3477, float %3466
%3480 = tail call float @llvm.fmuladd.f32(float %3437, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%3481 = tail call float @llvm.fmuladd.f32(float %3437, float %3480, float 0xBF9D2A51E0000000) #9
%3482 = tail call float @llvm.fmuladd.f32(float %3437, float %3481, float 0xBFD4CD7D60000000) #9
%3483 = tail call float @llvm.fmuladd.f32(float %3437, float %3482, float 0x3FC06EBA80000000) #9
%3484 = tail call float @llvm.fmuladd.f32(float %3437, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%3485 = tail call float @llvm.fmuladd.f32(float %3437, float %3484, float 0x3F74D022C0000000) #9
%3486 = tail call float @llvm.fmuladd.f32(float %3437, float %3485, float 0x3FB0A54C60000000) #9
%3487 = tail call float @llvm.fmuladd.f32(float %3437, float %3486, float 0x3FD97779C0000000) #9
%3488 = select i1 %3436, float %3483, float %3478
%3489 = select i1 %3436, float %3487, float %3479
%3490 = tail call float @llvm.fmuladd.f32(float %3437, float %3489, float 1.000000e+00) #9
%3491 = fdiv float %3488, %3490, !fpmath !33
%3492 = and i32 %3428, 2147479552
%3493 = bitcast i32 %3492 to float
%3494 = fsub float -0.000000e+00, %3493
%3495 = tail call float @llvm.fmuladd.f32(float %3494, float %3493, float -5.625000e-01) #9
%3496 = fcmp olt float %3495, 0.000000e+00
%3497 = select i1 %3496, float -5.000000e-01, float 5.000000e-01
%3498 = tail call float @llvm.fmuladd.f32(float %3495, float 0x3FF7154760000000, float %3497) #9
%3499 = fptosi float %3498 to i32
%3500 = sitofp i32 %3499 to float
%3501 = tail call float @llvm.fmuladd.f32(float %3500, float 0xBFE62E3000000000, float %3495) #9
%3502 = fmul float %3500, 0xBEE2FEFA20000000
%3503 = fadd float %3501, %3502
%3504 = fmul float %3503, %3503
%3505 = tail call float @llvm.fmuladd.f32(float %3504, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%3506 = tail call float @llvm.fmuladd.f32(float %3504, float %3505, float 0x3F11566AA0000000) #9
%3507 = tail call float @llvm.fmuladd.f32(float %3504, float %3506, float 0xBF66C16C20000000) #9
%3508 = tail call float @llvm.fmuladd.f32(float %3504, float %3507, float 0x3FC5555560000000) #9
%3509 = fsub float -0.000000e+00, %3508
%3510 = tail call float @llvm.fmuladd.f32(float %3504, float %3509, float %3503) #9
%3511 = fsub float -0.000000e+00, %3502
%3512 = fmul float %3503, %3510
%3513 = fsub float 2.000000e+00, %3510
%3514 = fdiv float %3512, %3513, !fpmath !33
%3515 = fsub float %3511, %3514
%3516 = fsub float %3515, %3501
%3517 = fsub float 1.000000e+00, %3516
%3518 = bitcast float %3517 to i32
%3519 = shl i32 %3499, 23
%3520 = add nsw i32 %3518, %3519
%3521 = bitcast i32 %3520 to float
%3522 = fcmp olt float %3495, 0xC055D589E0000000
%3523 = select i1 %3522, float 0.000000e+00, float %3521
%3524 = fcmp olt float %3495, 0x40562E4300000000
%3525 = select i1 %3524, float %3523, float 0x7FF0000000000000
%3526 = fcmp uno float %3495, 0.000000e+00
%3527 = select i1 %3526, float %3495, float %3525
%3528 = fsub float %3493, %3430
%3529 = fadd float %3493, %3430
%3530 = tail call float @llvm.fmuladd.f32(float %3528, float %3529, float %3491) #9
%3531 = fcmp olt float %3530, 0.000000e+00
%3532 = select i1 %3531, float -5.000000e-01, float 5.000000e-01
%3533 = tail call float @llvm.fmuladd.f32(float %3530, float 0x3FF7154760000000, float %3532) #9
%3534 = fptosi float %3533 to i32
%3535 = sitofp i32 %3534 to float
%3536 = tail call float @llvm.fmuladd.f32(float %3535, float 0xBFE62E3000000000, float %3530) #9
%3537 = fmul float %3535, 0xBEE2FEFA20000000
%3538 = fadd float %3536, %3537
%3539 = fmul float %3538, %3538
%3540 = tail call float @llvm.fmuladd.f32(float %3539, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%3541 = tail call float @llvm.fmuladd.f32(float %3539, float %3540, float 0x3F11566AA0000000) #9
%3542 = tail call float @llvm.fmuladd.f32(float %3539, float %3541, float 0xBF66C16C20000000) #9
%3543 = tail call float @llvm.fmuladd.f32(float %3539, float %3542, float 0x3FC5555560000000) #9
%3544 = fsub float -0.000000e+00, %3543
%3545 = tail call float @llvm.fmuladd.f32(float %3539, float %3544, float %3538) #9
%3546 = fsub float -0.000000e+00, %3537
%3547 = fmul float %3538, %3545
%3548 = fsub float 2.000000e+00, %3545
%3549 = fdiv float %3547, %3548, !fpmath !33
%3550 = fsub float %3546, %3549
%3551 = fsub float %3550, %3536
%3552 = fsub float 1.000000e+00, %3551
%3553 = bitcast float %3552 to i32
%3554 = shl i32 %3534, 23
%3555 = add nsw i32 %3553, %3554
%3556 = bitcast i32 %3555 to float
%3557 = fcmp olt float %3530, 0xC055D589E0000000
%3558 = select i1 %3557, float 0.000000e+00, float %3556
%3559 = fcmp olt float %3530, 0x40562E4300000000
%3560 = select i1 %3559, float %3558, float 0x7FF0000000000000
%3561 = fcmp uno float %3530, 0.000000e+00
%3562 = select i1 %3561, float %3530, float %3560
%3563 = fmul float %3527, %3562
%3564 = fdiv float %3563, %3430, !fpmath !33
%3565 = fsub float 1.000000e+00, %3564
%3566 = fcmp olt float %3430, 6.000000e+00
%3567 = select i1 %3566, float %3565, float 1.000000e+00
%3568 = fadd float %3491, 0x3FEB0AC160000000
%3569 = select i1 %3434, float %3568, float %3567
%3570 = and i32 %3428, -2147483648
%3571 = bitcast float %3569 to i32
%3572 = or i32 %3571, %3570
%3573 = bitcast i32 %3572 to float
%3574 = tail call float @llvm.fmuladd.f32(float %mul215.1.2, float %3491, float %mul215.1.2) #9
%3575 = select i1 %3436, float %3574, float %3573
%3576 = fmul float %mul215.1.2, 0x3FF06EBA80000000
%3577 = tail call float @llvm.fmuladd.f32(float %mul215.1.2, float 8.000000e+00, float %3576) #9
%3578 = fmul float %3577, 1.250000e-01
%3579 = fcmp olt float %3430, 0x3E30000000000000
%3580 = select i1 %3579, float %3578, float %3575
%3581 = fcmp uno float %mul215.1.2, 0.000000e+00
%3582 = select i1 %3581, float %mul215.1.2, float %3580
%sub217.1.2 = fsub fast float %cond.1.2, %3582
%3583 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.1.2
%neg220.1.2 = fsub fast float -0.000000e+00, %3583
%3584 = tail call fast float @llvm.fmuladd.f32(float %div188.1.2, float %sub217.1.2, float %neg220.1.2)
%3585 = tail call fast float @llvm.fmuladd.f32(float %mul206.1.2, float %3584, float %E_el.5.2675)
%splat.splatinsert.1.2 = insertelement <3 x float> undef, float %3427, i32 0
%splat.splat.1.2 = shufflevector <3 x float> %splat.splatinsert.1.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.1.2 = fmul fast <3 x float> %splat.splat.1.2, %extractVec165.1.2
%extractVec233.1.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2676, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.1.2 = fsub fast <3 x float> %extractVec233.1.2, %mul225.1.2
%extractVec235.1.2 = shufflevector <3 x float> %sub234.1.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.1.2 = shufflevector <4 x float> %loadVec4243.1.3765, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.1.2 = fadd fast <3 x float> %mul225.1.2, %extractVec244.1.2
%extractVec246.1.2 = shufflevector <3 x float> %add245.1.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %3586
; <label>:3586: ; preds = %3404, %3395, %3394
%loadVec4243.1.3762 = phi <4 x float> [ %extractVec246.1.2, %3404 ], [ %loadVec4243.1.3765, %3395 ], [ %loadVec4243.1.3765, %3394 ]
%E_el.5.1.2 = phi float [ %3585, %3404 ], [ %E_el.5.2675, %3395 ], [ %E_el.5.2675, %3394 ]
%fcj_buf.sroa.0.1.1.2 = phi <4 x float> [ %extractVec235.1.2, %3404 ], [ %fcj_buf.sroa.0.1.2676, %3395 ], [ %fcj_buf.sroa.0.1.2676, %3394 ]
%E_lj.3.1.2 = phi float [ %add205.1.2, %3404 ], [ %E_lj.3.2677, %3395 ], [ %E_lj.3.2677, %3394 ]
%and144.2.2 = and i32 %57, 262144
%tobool145.2.2 = icmp eq i32 %and144.2.2, 0
br i1 %tobool145.2.2, label %3778, label %3587
; <label>:3587: ; preds = %3586
%3588 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.2.2, align 16, !tbaa !13
%3589 = fsub fast <4 x float> %3588, %3198
%3590 = extractelement <4 x float> %3589, i32 0
%3591 = extractelement <4 x float> %3589, i32 1
%3592 = fmul float %3591, %3591
%3593 = tail call float @llvm.fmuladd.f32(float %3590, float %3590, float %3592) #9
%3594 = extractelement <4 x float> %3589, i32 2
%3595 = tail call float @llvm.fmuladd.f32(float %3594, float %3594, float %3593) #9
%and167.2.2 = and i32 %58, 262144
%tobool168.2.2 = icmp ne i32 %and167.2.2, 0
%cond.2.2 = select i1 %tobool168.2.2, float 1.000000e+00, float 0.000000e+00
%cmp172.2.2 = icmp eq i32 %add147.2.2, %3197
%or.cond.2.2 = and i1 %cmp66, %cmp172.2.2
%not.or.cond.2.2 = xor i1 %or.cond.2.2, true
%cmp174..2.2 = or i1 %cmp174, %not.or.cond.2.2
%conv176.2.2 = uitofp i1 %cmp174..2.2 to float
%mul177.2.2 = fmul fast float %conv176.2.2, %nbparam_params.coerce.fca.9.extract
%cmp178.2.2 = fcmp fast olt float %3595, %mul177.2.2
br i1 %cmp178.2.2, label %3596, label %3778
; <label>:3596: ; preds = %3587
%extractVec165.2.2 = shufflevector <4 x float> %3589, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%3597 = extractelement <4 x float> %3588, i64 3
%3598 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.2.2, align 8, !tbaa !13
%3599 = extractelement <2 x float> %3598, i64 0
%mul184.2.2 = fmul fast float %3599, %3201
%3600 = extractelement <2 x float> %3598, i64 1
%mul185.2.2 = fmul fast float %3600, %3202
%3601 = fcmp ogt float %3595, 0x3E99A2B5C0000000
%3602 = select i1 %3601, float %3595, float 0x3E99A2B5C0000000
%3603 = tail call float @llvm.sqrt.f32(float %3602) #10
%div188.2.2 = fdiv fast float 1.000000e+00, %3603, !fpmath !33
%mul189.2.2 = fmul fast float %div188.2.2, %div188.2.2
%3604 = fmul fast float %mul189.2.2, %mul189.2.2
%mul191.2.2 = fmul fast float %3604, %cond.2.2
%mul192.2.2 = fmul fast float %mul191.2.2, %mul189.2.2
%neg.2.2 = fsub fast float -0.000000e+00, %mul184.2.2
%3605 = tail call fast float @llvm.fmuladd.f32(float %mul185.2.2, float %mul192.2.2, float %neg.2.2)
%mul194.2.2 = fmul fast float %mul192.2.2, %mul189.2.2
%mul195.2.2 = fmul fast float %mul194.2.2, %3605
%3606 = tail call fast float @llvm.fmuladd.f32(float %mul192.2.2, float %mul192.2.2, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.2.2 = fmul fast float %mul185.2.2, %3606
%add200.2.2 = fadd fast float %mul192.2.2, %nbparam_params.coerce.fca.13.2.extract
%mul202.2.2 = fmul fast float %add200.2.2, 0xBFC5555560000000
%neg203.2.2 = fmul fast float %mul202.2.2, %mul184.2.2
%3607 = tail call fast float @llvm.fmuladd.f32(float %mul197.2.2, float 0x3FB5555540000000, float %neg203.2.2)
%mul204.2.2 = fmul fast float %3607, %cond.2.2
%add205.2.2 = fadd fast float %mul204.2.2, %E_lj.3.1.2
%mul206.2.2 = fmul fast float %3597, %3199
%mul207.2.2 = fmul fast float %mul189.2.2, %cond.2.2
%mul209.2.2 = fmul fast float %3602, %mul
%mul.i.2.2 = fmul fast float %mul209.2.2, %mul209.2.2
%3608 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%3609 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%3610 = tail call fast float @llvm.fmuladd.f32(float %3608, float %mul.i.2.2, float 1.000000e+00) #9
%3611 = tail call fast float @llvm.fmuladd.f32(float %3609, float %mul209.2.2, float %3610) #9
%div.i.2.2 = fdiv fast float 1.000000e+00, %3611, !fpmath !33
%3612 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%3613 = tail call fast float @llvm.fmuladd.f32(float %mul.i.2.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%3614 = tail call fast float @llvm.fmuladd.f32(float %3612, float %mul.i.2.2, float 0xBF93BDB200000000) #9
%3615 = tail call fast float @llvm.fmuladd.f32(float %3613, float %mul.i.2.2, float 0x3FB1D5E760000000) #9
%3616 = tail call fast float @llvm.fmuladd.f32(float %3614, float %mul.i.2.2, float 0xBFE81272E0000000) #9
%3617 = tail call fast float @llvm.fmuladd.f32(float %3615, float %mul209.2.2, float %3616) #9
%mul7.2.2 = fmul fast float %mul11.i, %div.i.2.2
%mul211.2.2 = fmul fast float %mul7.2.2, %3617
%3618 = tail call fast float @llvm.fmuladd.f32(float %mul207.2.2, float %div188.2.2, float %mul211.2.2)
%3619 = tail call fast float @llvm.fmuladd.f32(float %mul206.2.2, float %3618, float %mul195.2.2)
%mul214.2.2 = fmul fast float %3602, %nbparam_params.coerce.fca.5.extract
%mul215.2.2 = fmul fast float %mul214.2.2, %div188.2.2
%3620 = bitcast float %mul215.2.2 to i32
%3621 = and i32 %3620, 2147483647
%3622 = bitcast i32 %3621 to float
%3623 = fmul float %3622, %3622
%3624 = fdiv float 1.000000e+00, %3623, !fpmath !33
%3625 = fadd float %3622, -1.000000e+00
%3626 = fcmp olt float %3622, 1.250000e+00
%3627 = select i1 %3626, float %3625, float %3624
%3628 = fcmp olt float %3622, 8.437500e-01
%3629 = select i1 %3628, float %3623, float %3627
%3630 = tail call float @llvm.fmuladd.f32(float %3629, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%3631 = tail call float @llvm.fmuladd.f32(float %3629, float %3630, float 0xC083EC8820000000) #9
%3632 = tail call float @llvm.fmuladd.f32(float %3629, float %3631, float 0xC064145D40000000) #9
%3633 = tail call float @llvm.fmuladd.f32(float %3629, float %3632, float 0xC031C20960000000) #9
%3634 = tail call float @llvm.fmuladd.f32(float %3629, float %3633, float 0xBFE993BA80000000) #9
%3635 = tail call float @llvm.fmuladd.f32(float %3629, float %3634, float 0xBF84341240000000) #9
%3636 = tail call float @llvm.fmuladd.f32(float %3629, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%3637 = tail call float @llvm.fmuladd.f32(float %3629, float %3636, float 0x40A3F219C0000000) #9
%3638 = tail call float @llvm.fmuladd.f32(float %3629, float %3637, float 0x40A8FFB760000000) #9
%3639 = tail call float @llvm.fmuladd.f32(float %3629, float %3638, float 0x409802EB20000000) #9
%3640 = tail call float @llvm.fmuladd.f32(float %3629, float %3639, float 0x40745CAE20000000) #9
%3641 = tail call float @llvm.fmuladd.f32(float %3629, float %3640, float 0x403E568B20000000) #9
%3642 = tail call float @llvm.fmuladd.f32(float %3629, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%3643 = tail call float @llvm.fmuladd.f32(float %3629, float %3642, float 0xC067135CE0000000) #9
%3644 = tail call float @llvm.fmuladd.f32(float %3629, float %3643, float 0xC0644CB180000000) #9
%3645 = tail call float @llvm.fmuladd.f32(float %3629, float %3644, float 0xC04F300AE0000000) #9
%3646 = tail call float @llvm.fmuladd.f32(float %3629, float %3645, float 0xC0251E0440000000) #9
%3647 = tail call float @llvm.fmuladd.f32(float %3629, float %3646, float 0xBFE63416E0000000) #9
%3648 = tail call float @llvm.fmuladd.f32(float %3629, float %3647, float 0xBF84341260000000) #9
%3649 = tail call float @llvm.fmuladd.f32(float %3629, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%3650 = tail call float @llvm.fmuladd.f32(float %3629, float %3649, float 0x405B28A3E0000000) #9
%3651 = tail call float @llvm.fmuladd.f32(float %3629, float %3650, float 0x407AD02160000000) #9
%3652 = tail call float @llvm.fmuladd.f32(float %3629, float %3651, float 0x40842B1920000000) #9
%3653 = tail call float @llvm.fmuladd.f32(float %3629, float %3652, float 0x407B290DE0000000) #9
%3654 = tail call float @llvm.fmuladd.f32(float %3629, float %3653, float 0x4061350C60000000) #9
%3655 = tail call float @llvm.fmuladd.f32(float %3629, float %3654, float 0x4033A6B9C0000000) #9
%3656 = fcmp olt float %3622, 0x4006DB6DC0000000
%3657 = select i1 %3656, float %3648, float %3635
%3658 = select i1 %3656, float %3655, float %3641
%3659 = tail call float @llvm.fmuladd.f32(float %3629, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%3660 = tail call float @llvm.fmuladd.f32(float %3629, float %3659, float 0xBFBC639840000000) #9
%3661 = tail call float @llvm.fmuladd.f32(float %3629, float %3660, float 0x3FD45FCA80000000) #9
%3662 = tail call float @llvm.fmuladd.f32(float %3629, float %3661, float 0xBFD7D24100000000) #9
%3663 = tail call float @llvm.fmuladd.f32(float %3629, float %3662, float 0x3FDA8D00A0000000) #9
%3664 = tail call float @llvm.fmuladd.f32(float %3629, float %3663, float 0xBF6359B8C0000000) #9
%3665 = tail call float @llvm.fmuladd.f32(float %3629, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%3666 = tail call float @llvm.fmuladd.f32(float %3629, float %3665, float 0x3FC02660E0000000) #9
%3667 = tail call float @llvm.fmuladd.f32(float %3629, float %3666, float 0x3FB2635CE0000000) #9
%3668 = tail call float @llvm.fmuladd.f32(float %3629, float %3667, float 0x3FE14AF0A0000000) #9
%3669 = tail call float @llvm.fmuladd.f32(float %3629, float %3668, float 0x3FBB3E6620000000) #9
%3670 = select i1 %3626, float %3664, float %3657
%3671 = select i1 %3626, float %3669, float %3658
%3672 = tail call float @llvm.fmuladd.f32(float %3629, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%3673 = tail call float @llvm.fmuladd.f32(float %3629, float %3672, float 0xBF9D2A51E0000000) #9
%3674 = tail call float @llvm.fmuladd.f32(float %3629, float %3673, float 0xBFD4CD7D60000000) #9
%3675 = tail call float @llvm.fmuladd.f32(float %3629, float %3674, float 0x3FC06EBA80000000) #9
%3676 = tail call float @llvm.fmuladd.f32(float %3629, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%3677 = tail call float @llvm.fmuladd.f32(float %3629, float %3676, float 0x3F74D022C0000000) #9
%3678 = tail call float @llvm.fmuladd.f32(float %3629, float %3677, float 0x3FB0A54C60000000) #9
%3679 = tail call float @llvm.fmuladd.f32(float %3629, float %3678, float 0x3FD97779C0000000) #9
%3680 = select i1 %3628, float %3675, float %3670
%3681 = select i1 %3628, float %3679, float %3671
%3682 = tail call float @llvm.fmuladd.f32(float %3629, float %3681, float 1.000000e+00) #9
%3683 = fdiv float %3680, %3682, !fpmath !33
%3684 = and i32 %3620, 2147479552
%3685 = bitcast i32 %3684 to float
%3686 = fsub float -0.000000e+00, %3685
%3687 = tail call float @llvm.fmuladd.f32(float %3686, float %3685, float -5.625000e-01) #9
%3688 = fcmp olt float %3687, 0.000000e+00
%3689 = select i1 %3688, float -5.000000e-01, float 5.000000e-01
%3690 = tail call float @llvm.fmuladd.f32(float %3687, float 0x3FF7154760000000, float %3689) #9
%3691 = fptosi float %3690 to i32
%3692 = sitofp i32 %3691 to float
%3693 = tail call float @llvm.fmuladd.f32(float %3692, float 0xBFE62E3000000000, float %3687) #9
%3694 = fmul float %3692, 0xBEE2FEFA20000000
%3695 = fadd float %3693, %3694
%3696 = fmul float %3695, %3695
%3697 = tail call float @llvm.fmuladd.f32(float %3696, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%3698 = tail call float @llvm.fmuladd.f32(float %3696, float %3697, float 0x3F11566AA0000000) #9
%3699 = tail call float @llvm.fmuladd.f32(float %3696, float %3698, float 0xBF66C16C20000000) #9
%3700 = tail call float @llvm.fmuladd.f32(float %3696, float %3699, float 0x3FC5555560000000) #9
%3701 = fsub float -0.000000e+00, %3700
%3702 = tail call float @llvm.fmuladd.f32(float %3696, float %3701, float %3695) #9
%3703 = fsub float -0.000000e+00, %3694
%3704 = fmul float %3695, %3702
%3705 = fsub float 2.000000e+00, %3702
%3706 = fdiv float %3704, %3705, !fpmath !33
%3707 = fsub float %3703, %3706
%3708 = fsub float %3707, %3693
%3709 = fsub float 1.000000e+00, %3708
%3710 = bitcast float %3709 to i32
%3711 = shl i32 %3691, 23
%3712 = add nsw i32 %3710, %3711
%3713 = bitcast i32 %3712 to float
%3714 = fcmp olt float %3687, 0xC055D589E0000000
%3715 = select i1 %3714, float 0.000000e+00, float %3713
%3716 = fcmp olt float %3687, 0x40562E4300000000
%3717 = select i1 %3716, float %3715, float 0x7FF0000000000000
%3718 = fcmp uno float %3687, 0.000000e+00
%3719 = select i1 %3718, float %3687, float %3717
%3720 = fsub float %3685, %3622
%3721 = fadd float %3685, %3622
%3722 = tail call float @llvm.fmuladd.f32(float %3720, float %3721, float %3683) #9
%3723 = fcmp olt float %3722, 0.000000e+00
%3724 = select i1 %3723, float -5.000000e-01, float 5.000000e-01
%3725 = tail call float @llvm.fmuladd.f32(float %3722, float 0x3FF7154760000000, float %3724) #9
%3726 = fptosi float %3725 to i32
%3727 = sitofp i32 %3726 to float
%3728 = tail call float @llvm.fmuladd.f32(float %3727, float 0xBFE62E3000000000, float %3722) #9
%3729 = fmul float %3727, 0xBEE2FEFA20000000
%3730 = fadd float %3728, %3729
%3731 = fmul float %3730, %3730
%3732 = tail call float @llvm.fmuladd.f32(float %3731, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%3733 = tail call float @llvm.fmuladd.f32(float %3731, float %3732, float 0x3F11566AA0000000) #9
%3734 = tail call float @llvm.fmuladd.f32(float %3731, float %3733, float 0xBF66C16C20000000) #9
%3735 = tail call float @llvm.fmuladd.f32(float %3731, float %3734, float 0x3FC5555560000000) #9
%3736 = fsub float -0.000000e+00, %3735
%3737 = tail call float @llvm.fmuladd.f32(float %3731, float %3736, float %3730) #9
%3738 = fsub float -0.000000e+00, %3729
%3739 = fmul float %3730, %3737
%3740 = fsub float 2.000000e+00, %3737
%3741 = fdiv float %3739, %3740, !fpmath !33
%3742 = fsub float %3738, %3741
%3743 = fsub float %3742, %3728
%3744 = fsub float 1.000000e+00, %3743
%3745 = bitcast float %3744 to i32
%3746 = shl i32 %3726, 23
%3747 = add nsw i32 %3745, %3746
%3748 = bitcast i32 %3747 to float
%3749 = fcmp olt float %3722, 0xC055D589E0000000
%3750 = select i1 %3749, float 0.000000e+00, float %3748
%3751 = fcmp olt float %3722, 0x40562E4300000000
%3752 = select i1 %3751, float %3750, float 0x7FF0000000000000
%3753 = fcmp uno float %3722, 0.000000e+00
%3754 = select i1 %3753, float %3722, float %3752
%3755 = fmul float %3719, %3754
%3756 = fdiv float %3755, %3622, !fpmath !33
%3757 = fsub float 1.000000e+00, %3756
%3758 = fcmp olt float %3622, 6.000000e+00
%3759 = select i1 %3758, float %3757, float 1.000000e+00
%3760 = fadd float %3683, 0x3FEB0AC160000000
%3761 = select i1 %3626, float %3760, float %3759
%3762 = and i32 %3620, -2147483648
%3763 = bitcast float %3761 to i32
%3764 = or i32 %3763, %3762
%3765 = bitcast i32 %3764 to float
%3766 = tail call float @llvm.fmuladd.f32(float %mul215.2.2, float %3683, float %mul215.2.2) #9
%3767 = select i1 %3628, float %3766, float %3765
%3768 = fmul float %mul215.2.2, 0x3FF06EBA80000000
%3769 = tail call float @llvm.fmuladd.f32(float %mul215.2.2, float 8.000000e+00, float %3768) #9
%3770 = fmul float %3769, 1.250000e-01
%3771 = fcmp olt float %3622, 0x3E30000000000000
%3772 = select i1 %3771, float %3770, float %3767
%3773 = fcmp uno float %mul215.2.2, 0.000000e+00
%3774 = select i1 %3773, float %mul215.2.2, float %3772
%sub217.2.2 = fsub fast float %cond.2.2, %3774
%3775 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.2.2
%neg220.2.2 = fsub fast float -0.000000e+00, %3775
%3776 = tail call fast float @llvm.fmuladd.f32(float %div188.2.2, float %sub217.2.2, float %neg220.2.2)
%3777 = tail call fast float @llvm.fmuladd.f32(float %mul206.2.2, float %3776, float %E_el.5.1.2)
%splat.splatinsert.2.2 = insertelement <3 x float> undef, float %3619, i32 0
%splat.splat.2.2 = shufflevector <3 x float> %splat.splatinsert.2.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.2.2 = fmul fast <3 x float> %splat.splat.2.2, %extractVec165.2.2
%extractVec233.2.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.1.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.2.2 = fsub fast <3 x float> %extractVec233.2.2, %mul225.2.2
%extractVec235.2.2 = shufflevector <3 x float> %sub234.2.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.2.2 = shufflevector <4 x float> %loadVec4243.2.3774, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.2.2 = fadd fast <3 x float> %mul225.2.2, %extractVec244.2.2
%extractVec246.2.2 = shufflevector <3 x float> %add245.2.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %3778
; <label>:3778: ; preds = %3596, %3587, %3586
%loadVec4243.2.3771 = phi <4 x float> [ %extractVec246.2.2, %3596 ], [ %loadVec4243.2.3774, %3587 ], [ %loadVec4243.2.3774, %3586 ]
%E_el.5.2.2 = phi float [ %3777, %3596 ], [ %E_el.5.1.2, %3587 ], [ %E_el.5.1.2, %3586 ]
%fcj_buf.sroa.0.1.2.2 = phi <4 x float> [ %extractVec235.2.2, %3596 ], [ %fcj_buf.sroa.0.1.1.2, %3587 ], [ %fcj_buf.sroa.0.1.1.2, %3586 ]
%E_lj.3.2.2 = phi float [ %add205.2.2, %3596 ], [ %E_lj.3.1.2, %3587 ], [ %E_lj.3.1.2, %3586 ]
%and144.3.2 = and i32 %57, 524288
%tobool145.3.2 = icmp eq i32 %and144.3.2, 0
br i1 %tobool145.3.2, label %3970, label %3779
; <label>:3779: ; preds = %3778
%3780 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.3.2, align 16, !tbaa !13
%3781 = fsub fast <4 x float> %3780, %3198
%3782 = extractelement <4 x float> %3781, i32 0
%3783 = extractelement <4 x float> %3781, i32 1
%3784 = fmul float %3783, %3783
%3785 = tail call float @llvm.fmuladd.f32(float %3782, float %3782, float %3784) #9
%3786 = extractelement <4 x float> %3781, i32 2
%3787 = tail call float @llvm.fmuladd.f32(float %3786, float %3786, float %3785) #9
%and167.3.2 = and i32 %58, 524288
%tobool168.3.2 = icmp ne i32 %and167.3.2, 0
%cond.3.2 = select i1 %tobool168.3.2, float 1.000000e+00, float 0.000000e+00
%cmp172.3.2 = icmp eq i32 %add147.3.2, %3197
%or.cond.3.2 = and i1 %cmp66, %cmp172.3.2
%not.or.cond.3.2 = xor i1 %or.cond.3.2, true
%cmp174..3.2 = or i1 %cmp174, %not.or.cond.3.2
%conv176.3.2 = uitofp i1 %cmp174..3.2 to float
%mul177.3.2 = fmul fast float %conv176.3.2, %nbparam_params.coerce.fca.9.extract
%cmp178.3.2 = fcmp fast olt float %3787, %mul177.3.2
br i1 %cmp178.3.2, label %3788, label %3970
; <label>:3788: ; preds = %3779
%extractVec165.3.2 = shufflevector <4 x float> %3781, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%3789 = extractelement <4 x float> %3780, i64 3
%3790 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.3.2, align 8, !tbaa !13
%3791 = extractelement <2 x float> %3790, i64 0
%mul184.3.2 = fmul fast float %3791, %3201
%3792 = extractelement <2 x float> %3790, i64 1
%mul185.3.2 = fmul fast float %3792, %3202
%3793 = fcmp ogt float %3787, 0x3E99A2B5C0000000
%3794 = select i1 %3793, float %3787, float 0x3E99A2B5C0000000
%3795 = tail call float @llvm.sqrt.f32(float %3794) #10
%div188.3.2 = fdiv fast float 1.000000e+00, %3795, !fpmath !33
%mul189.3.2 = fmul fast float %div188.3.2, %div188.3.2
%3796 = fmul fast float %mul189.3.2, %mul189.3.2
%mul191.3.2 = fmul fast float %3796, %cond.3.2
%mul192.3.2 = fmul fast float %mul191.3.2, %mul189.3.2
%neg.3.2 = fsub fast float -0.000000e+00, %mul184.3.2
%3797 = tail call fast float @llvm.fmuladd.f32(float %mul185.3.2, float %mul192.3.2, float %neg.3.2)
%mul194.3.2 = fmul fast float %mul192.3.2, %mul189.3.2
%mul195.3.2 = fmul fast float %mul194.3.2, %3797
%3798 = tail call fast float @llvm.fmuladd.f32(float %mul192.3.2, float %mul192.3.2, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.3.2 = fmul fast float %mul185.3.2, %3798
%add200.3.2 = fadd fast float %mul192.3.2, %nbparam_params.coerce.fca.13.2.extract
%mul202.3.2 = fmul fast float %add200.3.2, 0xBFC5555560000000
%neg203.3.2 = fmul fast float %mul202.3.2, %mul184.3.2
%3799 = tail call fast float @llvm.fmuladd.f32(float %mul197.3.2, float 0x3FB5555540000000, float %neg203.3.2)
%mul204.3.2 = fmul fast float %3799, %cond.3.2
%add205.3.2 = fadd fast float %mul204.3.2, %E_lj.3.2.2
%mul206.3.2 = fmul fast float %3789, %3199
%mul207.3.2 = fmul fast float %mul189.3.2, %cond.3.2
%mul209.3.2 = fmul fast float %3794, %mul
%mul.i.3.2 = fmul fast float %mul209.3.2, %mul209.3.2
%3800 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%3801 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%3802 = tail call fast float @llvm.fmuladd.f32(float %3800, float %mul.i.3.2, float 1.000000e+00) #9
%3803 = tail call fast float @llvm.fmuladd.f32(float %3801, float %mul209.3.2, float %3802) #9
%div.i.3.2 = fdiv fast float 1.000000e+00, %3803, !fpmath !33
%3804 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%3805 = tail call fast float @llvm.fmuladd.f32(float %mul.i.3.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%3806 = tail call fast float @llvm.fmuladd.f32(float %3804, float %mul.i.3.2, float 0xBF93BDB200000000) #9
%3807 = tail call fast float @llvm.fmuladd.f32(float %3805, float %mul.i.3.2, float 0x3FB1D5E760000000) #9
%3808 = tail call fast float @llvm.fmuladd.f32(float %3806, float %mul.i.3.2, float 0xBFE81272E0000000) #9
%3809 = tail call fast float @llvm.fmuladd.f32(float %3807, float %mul209.3.2, float %3808) #9
%mul7.3.2 = fmul fast float %mul11.i, %div.i.3.2
%mul211.3.2 = fmul fast float %mul7.3.2, %3809
%3810 = tail call fast float @llvm.fmuladd.f32(float %mul207.3.2, float %div188.3.2, float %mul211.3.2)
%3811 = tail call fast float @llvm.fmuladd.f32(float %mul206.3.2, float %3810, float %mul195.3.2)
%mul214.3.2 = fmul fast float %3794, %nbparam_params.coerce.fca.5.extract
%mul215.3.2 = fmul fast float %mul214.3.2, %div188.3.2
%3812 = bitcast float %mul215.3.2 to i32
%3813 = and i32 %3812, 2147483647
%3814 = bitcast i32 %3813 to float
%3815 = fmul float %3814, %3814
%3816 = fdiv float 1.000000e+00, %3815, !fpmath !33
%3817 = fadd float %3814, -1.000000e+00
%3818 = fcmp olt float %3814, 1.250000e+00
%3819 = select i1 %3818, float %3817, float %3816
%3820 = fcmp olt float %3814, 8.437500e-01
%3821 = select i1 %3820, float %3815, float %3819
%3822 = tail call float @llvm.fmuladd.f32(float %3821, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%3823 = tail call float @llvm.fmuladd.f32(float %3821, float %3822, float 0xC083EC8820000000) #9
%3824 = tail call float @llvm.fmuladd.f32(float %3821, float %3823, float 0xC064145D40000000) #9
%3825 = tail call float @llvm.fmuladd.f32(float %3821, float %3824, float 0xC031C20960000000) #9
%3826 = tail call float @llvm.fmuladd.f32(float %3821, float %3825, float 0xBFE993BA80000000) #9
%3827 = tail call float @llvm.fmuladd.f32(float %3821, float %3826, float 0xBF84341240000000) #9
%3828 = tail call float @llvm.fmuladd.f32(float %3821, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%3829 = tail call float @llvm.fmuladd.f32(float %3821, float %3828, float 0x40A3F219C0000000) #9
%3830 = tail call float @llvm.fmuladd.f32(float %3821, float %3829, float 0x40A8FFB760000000) #9
%3831 = tail call float @llvm.fmuladd.f32(float %3821, float %3830, float 0x409802EB20000000) #9
%3832 = tail call float @llvm.fmuladd.f32(float %3821, float %3831, float 0x40745CAE20000000) #9
%3833 = tail call float @llvm.fmuladd.f32(float %3821, float %3832, float 0x403E568B20000000) #9
%3834 = tail call float @llvm.fmuladd.f32(float %3821, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%3835 = tail call float @llvm.fmuladd.f32(float %3821, float %3834, float 0xC067135CE0000000) #9
%3836 = tail call float @llvm.fmuladd.f32(float %3821, float %3835, float 0xC0644CB180000000) #9
%3837 = tail call float @llvm.fmuladd.f32(float %3821, float %3836, float 0xC04F300AE0000000) #9
%3838 = tail call float @llvm.fmuladd.f32(float %3821, float %3837, float 0xC0251E0440000000) #9
%3839 = tail call float @llvm.fmuladd.f32(float %3821, float %3838, float 0xBFE63416E0000000) #9
%3840 = tail call float @llvm.fmuladd.f32(float %3821, float %3839, float 0xBF84341260000000) #9
%3841 = tail call float @llvm.fmuladd.f32(float %3821, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%3842 = tail call float @llvm.fmuladd.f32(float %3821, float %3841, float 0x405B28A3E0000000) #9
%3843 = tail call float @llvm.fmuladd.f32(float %3821, float %3842, float 0x407AD02160000000) #9
%3844 = tail call float @llvm.fmuladd.f32(float %3821, float %3843, float 0x40842B1920000000) #9
%3845 = tail call float @llvm.fmuladd.f32(float %3821, float %3844, float 0x407B290DE0000000) #9
%3846 = tail call float @llvm.fmuladd.f32(float %3821, float %3845, float 0x4061350C60000000) #9
%3847 = tail call float @llvm.fmuladd.f32(float %3821, float %3846, float 0x4033A6B9C0000000) #9
%3848 = fcmp olt float %3814, 0x4006DB6DC0000000
%3849 = select i1 %3848, float %3840, float %3827
%3850 = select i1 %3848, float %3847, float %3833
%3851 = tail call float @llvm.fmuladd.f32(float %3821, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%3852 = tail call float @llvm.fmuladd.f32(float %3821, float %3851, float 0xBFBC639840000000) #9
%3853 = tail call float @llvm.fmuladd.f32(float %3821, float %3852, float 0x3FD45FCA80000000) #9
%3854 = tail call float @llvm.fmuladd.f32(float %3821, float %3853, float 0xBFD7D24100000000) #9
%3855 = tail call float @llvm.fmuladd.f32(float %3821, float %3854, float 0x3FDA8D00A0000000) #9
%3856 = tail call float @llvm.fmuladd.f32(float %3821, float %3855, float 0xBF6359B8C0000000) #9
%3857 = tail call float @llvm.fmuladd.f32(float %3821, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%3858 = tail call float @llvm.fmuladd.f32(float %3821, float %3857, float 0x3FC02660E0000000) #9
%3859 = tail call float @llvm.fmuladd.f32(float %3821, float %3858, float 0x3FB2635CE0000000) #9
%3860 = tail call float @llvm.fmuladd.f32(float %3821, float %3859, float 0x3FE14AF0A0000000) #9
%3861 = tail call float @llvm.fmuladd.f32(float %3821, float %3860, float 0x3FBB3E6620000000) #9
%3862 = select i1 %3818, float %3856, float %3849
%3863 = select i1 %3818, float %3861, float %3850
%3864 = tail call float @llvm.fmuladd.f32(float %3821, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%3865 = tail call float @llvm.fmuladd.f32(float %3821, float %3864, float 0xBF9D2A51E0000000) #9
%3866 = tail call float @llvm.fmuladd.f32(float %3821, float %3865, float 0xBFD4CD7D60000000) #9
%3867 = tail call float @llvm.fmuladd.f32(float %3821, float %3866, float 0x3FC06EBA80000000) #9
%3868 = tail call float @llvm.fmuladd.f32(float %3821, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%3869 = tail call float @llvm.fmuladd.f32(float %3821, float %3868, float 0x3F74D022C0000000) #9
%3870 = tail call float @llvm.fmuladd.f32(float %3821, float %3869, float 0x3FB0A54C60000000) #9
%3871 = tail call float @llvm.fmuladd.f32(float %3821, float %3870, float 0x3FD97779C0000000) #9
%3872 = select i1 %3820, float %3867, float %3862
%3873 = select i1 %3820, float %3871, float %3863
%3874 = tail call float @llvm.fmuladd.f32(float %3821, float %3873, float 1.000000e+00) #9
%3875 = fdiv float %3872, %3874, !fpmath !33
%3876 = and i32 %3812, 2147479552
%3877 = bitcast i32 %3876 to float
%3878 = fsub float -0.000000e+00, %3877
%3879 = tail call float @llvm.fmuladd.f32(float %3878, float %3877, float -5.625000e-01) #9
%3880 = fcmp olt float %3879, 0.000000e+00
%3881 = select i1 %3880, float -5.000000e-01, float 5.000000e-01
%3882 = tail call float @llvm.fmuladd.f32(float %3879, float 0x3FF7154760000000, float %3881) #9
%3883 = fptosi float %3882 to i32
%3884 = sitofp i32 %3883 to float
%3885 = tail call float @llvm.fmuladd.f32(float %3884, float 0xBFE62E3000000000, float %3879) #9
%3886 = fmul float %3884, 0xBEE2FEFA20000000
%3887 = fadd float %3885, %3886
%3888 = fmul float %3887, %3887
%3889 = tail call float @llvm.fmuladd.f32(float %3888, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%3890 = tail call float @llvm.fmuladd.f32(float %3888, float %3889, float 0x3F11566AA0000000) #9
%3891 = tail call float @llvm.fmuladd.f32(float %3888, float %3890, float 0xBF66C16C20000000) #9
%3892 = tail call float @llvm.fmuladd.f32(float %3888, float %3891, float 0x3FC5555560000000) #9
%3893 = fsub float -0.000000e+00, %3892
%3894 = tail call float @llvm.fmuladd.f32(float %3888, float %3893, float %3887) #9
%3895 = fsub float -0.000000e+00, %3886
%3896 = fmul float %3887, %3894
%3897 = fsub float 2.000000e+00, %3894
%3898 = fdiv float %3896, %3897, !fpmath !33
%3899 = fsub float %3895, %3898
%3900 = fsub float %3899, %3885
%3901 = fsub float 1.000000e+00, %3900
%3902 = bitcast float %3901 to i32
%3903 = shl i32 %3883, 23
%3904 = add nsw i32 %3902, %3903
%3905 = bitcast i32 %3904 to float
%3906 = fcmp olt float %3879, 0xC055D589E0000000
%3907 = select i1 %3906, float 0.000000e+00, float %3905
%3908 = fcmp olt float %3879, 0x40562E4300000000
%3909 = select i1 %3908, float %3907, float 0x7FF0000000000000
%3910 = fcmp uno float %3879, 0.000000e+00
%3911 = select i1 %3910, float %3879, float %3909
%3912 = fsub float %3877, %3814
%3913 = fadd float %3877, %3814
%3914 = tail call float @llvm.fmuladd.f32(float %3912, float %3913, float %3875) #9
%3915 = fcmp olt float %3914, 0.000000e+00
%3916 = select i1 %3915, float -5.000000e-01, float 5.000000e-01
%3917 = tail call float @llvm.fmuladd.f32(float %3914, float 0x3FF7154760000000, float %3916) #9
%3918 = fptosi float %3917 to i32
%3919 = sitofp i32 %3918 to float
%3920 = tail call float @llvm.fmuladd.f32(float %3919, float 0xBFE62E3000000000, float %3914) #9
%3921 = fmul float %3919, 0xBEE2FEFA20000000
%3922 = fadd float %3920, %3921
%3923 = fmul float %3922, %3922
%3924 = tail call float @llvm.fmuladd.f32(float %3923, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%3925 = tail call float @llvm.fmuladd.f32(float %3923, float %3924, float 0x3F11566AA0000000) #9
%3926 = tail call float @llvm.fmuladd.f32(float %3923, float %3925, float 0xBF66C16C20000000) #9
%3927 = tail call float @llvm.fmuladd.f32(float %3923, float %3926, float 0x3FC5555560000000) #9
%3928 = fsub float -0.000000e+00, %3927
%3929 = tail call float @llvm.fmuladd.f32(float %3923, float %3928, float %3922) #9
%3930 = fsub float -0.000000e+00, %3921
%3931 = fmul float %3922, %3929
%3932 = fsub float 2.000000e+00, %3929
%3933 = fdiv float %3931, %3932, !fpmath !33
%3934 = fsub float %3930, %3933
%3935 = fsub float %3934, %3920
%3936 = fsub float 1.000000e+00, %3935
%3937 = bitcast float %3936 to i32
%3938 = shl i32 %3918, 23
%3939 = add nsw i32 %3937, %3938
%3940 = bitcast i32 %3939 to float
%3941 = fcmp olt float %3914, 0xC055D589E0000000
%3942 = select i1 %3941, float 0.000000e+00, float %3940
%3943 = fcmp olt float %3914, 0x40562E4300000000
%3944 = select i1 %3943, float %3942, float 0x7FF0000000000000
%3945 = fcmp uno float %3914, 0.000000e+00
%3946 = select i1 %3945, float %3914, float %3944
%3947 = fmul float %3911, %3946
%3948 = fdiv float %3947, %3814, !fpmath !33
%3949 = fsub float 1.000000e+00, %3948
%3950 = fcmp olt float %3814, 6.000000e+00
%3951 = select i1 %3950, float %3949, float 1.000000e+00
%3952 = fadd float %3875, 0x3FEB0AC160000000
%3953 = select i1 %3818, float %3952, float %3951
%3954 = and i32 %3812, -2147483648
%3955 = bitcast float %3953 to i32
%3956 = or i32 %3955, %3954
%3957 = bitcast i32 %3956 to float
%3958 = tail call float @llvm.fmuladd.f32(float %mul215.3.2, float %3875, float %mul215.3.2) #9
%3959 = select i1 %3820, float %3958, float %3957
%3960 = fmul float %mul215.3.2, 0x3FF06EBA80000000
%3961 = tail call float @llvm.fmuladd.f32(float %mul215.3.2, float 8.000000e+00, float %3960) #9
%3962 = fmul float %3961, 1.250000e-01
%3963 = fcmp olt float %3814, 0x3E30000000000000
%3964 = select i1 %3963, float %3962, float %3959
%3965 = fcmp uno float %mul215.3.2, 0.000000e+00
%3966 = select i1 %3965, float %mul215.3.2, float %3964
%sub217.3.2 = fsub fast float %cond.3.2, %3966
%3967 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.3.2
%neg220.3.2 = fsub fast float -0.000000e+00, %3967
%3968 = tail call fast float @llvm.fmuladd.f32(float %div188.3.2, float %sub217.3.2, float %neg220.3.2)
%3969 = tail call fast float @llvm.fmuladd.f32(float %mul206.3.2, float %3968, float %E_el.5.2.2)
%splat.splatinsert.3.2 = insertelement <3 x float> undef, float %3811, i32 0
%splat.splat.3.2 = shufflevector <3 x float> %splat.splatinsert.3.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.3.2 = fmul fast <3 x float> %splat.splat.3.2, %extractVec165.3.2
%extractVec233.3.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.2.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.3.2 = fsub fast <3 x float> %extractVec233.3.2, %mul225.3.2
%extractVec235.3.2 = shufflevector <3 x float> %sub234.3.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.3.2 = shufflevector <4 x float> %loadVec4243.3.3783, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.3.2 = fadd fast <3 x float> %mul225.3.2, %extractVec244.3.2
%extractVec246.3.2 = shufflevector <3 x float> %add245.3.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %3970
; <label>:3970: ; preds = %3788, %3779, %3778
%loadVec4243.3.3780 = phi <4 x float> [ %extractVec246.3.2, %3788 ], [ %loadVec4243.3.3783, %3779 ], [ %loadVec4243.3.3783, %3778 ]
%E_el.5.3.2 = phi float [ %3969, %3788 ], [ %E_el.5.2.2, %3779 ], [ %E_el.5.2.2, %3778 ]
%fcj_buf.sroa.0.1.3.2 = phi <4 x float> [ %extractVec235.3.2, %3788 ], [ %fcj_buf.sroa.0.1.2.2, %3779 ], [ %fcj_buf.sroa.0.1.2.2, %3778 ]
%E_lj.3.3.2 = phi float [ %add205.3.2, %3788 ], [ %E_lj.3.2.2, %3779 ], [ %E_lj.3.2.2, %3778 ]
%and144.4.2 = and i32 %57, 1048576
%tobool145.4.2 = icmp eq i32 %and144.4.2, 0
br i1 %tobool145.4.2, label %4162, label %3971
; <label>:3971: ; preds = %3970
%3972 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.4.2, align 16, !tbaa !13
%3973 = fsub fast <4 x float> %3972, %3198
%3974 = extractelement <4 x float> %3973, i32 0
%3975 = extractelement <4 x float> %3973, i32 1
%3976 = fmul float %3975, %3975
%3977 = tail call float @llvm.fmuladd.f32(float %3974, float %3974, float %3976) #9
%3978 = extractelement <4 x float> %3973, i32 2
%3979 = tail call float @llvm.fmuladd.f32(float %3978, float %3978, float %3977) #9
%and167.4.2 = and i32 %58, 1048576
%tobool168.4.2 = icmp ne i32 %and167.4.2, 0
%cond.4.2 = select i1 %tobool168.4.2, float 1.000000e+00, float 0.000000e+00
%cmp172.4.2 = icmp eq i32 %add147.4.2, %3197
%or.cond.4.2 = and i1 %cmp66, %cmp172.4.2
%not.or.cond.4.2 = xor i1 %or.cond.4.2, true
%cmp174..4.2 = or i1 %cmp174, %not.or.cond.4.2
%conv176.4.2 = uitofp i1 %cmp174..4.2 to float
%mul177.4.2 = fmul fast float %conv176.4.2, %nbparam_params.coerce.fca.9.extract
%cmp178.4.2 = fcmp fast olt float %3979, %mul177.4.2
br i1 %cmp178.4.2, label %3980, label %4162
; <label>:3980: ; preds = %3971
%extractVec165.4.2 = shufflevector <4 x float> %3973, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%3981 = extractelement <4 x float> %3972, i64 3
%3982 = load <2 x float>, <2 x float> addrspace(3)* %arrayidx183.4.2, align 8, !tbaa !13
%3983 = extractelement <2 x float> %3982, i64 0
%mul184.4.2 = fmul fast float %3983, %3201
%3984 = extractelement <2 x float> %3982, i64 1
%mul185.4.2 = fmul fast float %3984, %3202
%3985 = fcmp ogt float %3979, 0x3E99A2B5C0000000
%3986 = select i1 %3985, float %3979, float 0x3E99A2B5C0000000
%3987 = tail call float @llvm.sqrt.f32(float %3986) #10
%div188.4.2 = fdiv fast float 1.000000e+00, %3987, !fpmath !33
%mul189.4.2 = fmul fast float %div188.4.2, %div188.4.2
%3988 = fmul fast float %mul189.4.2, %mul189.4.2
%mul191.4.2 = fmul fast float %3988, %cond.4.2
%mul192.4.2 = fmul fast float %mul191.4.2, %mul189.4.2
%neg.4.2 = fsub fast float -0.000000e+00, %mul184.4.2
%3989 = tail call fast float @llvm.fmuladd.f32(float %mul185.4.2, float %mul192.4.2, float %neg.4.2)
%mul194.4.2 = fmul fast float %mul192.4.2, %mul189.4.2
%mul195.4.2 = fmul fast float %mul194.4.2, %3989
%3990 = tail call fast float @llvm.fmuladd.f32(float %mul192.4.2, float %mul192.4.2, float %nbparam_params.coerce.fca.14.2.extract)
%mul197.4.2 = fmul fast float %mul185.4.2, %3990
%add200.4.2 = fadd fast float %mul192.4.2, %nbparam_params.coerce.fca.13.2.extract
%mul202.4.2 = fmul fast float %add200.4.2, 0xBFC5555560000000
%neg203.4.2 = fmul fast float %mul202.4.2, %mul184.4.2
%3991 = tail call fast float @llvm.fmuladd.f32(float %mul197.4.2, float 0x3FB5555540000000, float %neg203.4.2)
%mul204.4.2 = fmul fast float %3991, %cond.4.2
%add205.4.2 = fadd fast float %mul204.4.2, %E_lj.3.3.2
%mul206.4.2 = fmul fast float %3981, %3199
%mul207.4.2 = fmul fast float %mul189.4.2, %cond.4.2
%mul209.4.2 = fmul fast float %3986, %mul
%mul.i.4.2 = fmul fast float %mul209.4.2, %mul209.4.2
%3992 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.2, float 0x3F5256E0E0000000, float 0x3FBDA79640000000) #9
%3993 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.2, float 0x3F8E7290E0000000, float 0x3FE03C5780000000) #9
%3994 = tail call fast float @llvm.fmuladd.f32(float %3992, float %mul.i.4.2, float 1.000000e+00) #9
%3995 = tail call fast float @llvm.fmuladd.f32(float %3993, float %mul209.4.2, float %3994) #9
%div.i.4.2 = fdiv fast float 1.000000e+00, %3995, !fpmath !33
%3996 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.2, float 0xBE52A32500000000, float 0xBF0BFF7260000000) #9
%3997 = tail call fast float @llvm.fmuladd.f32(float %mul.i.4.2, float 0x3EB8AB28A0000000, float 0x3F50794180000000) #9
%3998 = tail call fast float @llvm.fmuladd.f32(float %3996, float %mul.i.4.2, float 0xBF93BDB200000000) #9
%3999 = tail call fast float @llvm.fmuladd.f32(float %3997, float %mul.i.4.2, float 0x3FB1D5E760000000) #9
%4000 = tail call fast float @llvm.fmuladd.f32(float %3998, float %mul.i.4.2, float 0xBFE81272E0000000) #9
%4001 = tail call fast float @llvm.fmuladd.f32(float %3999, float %mul209.4.2, float %4000) #9
%mul7.4.2 = fmul fast float %mul11.i, %div.i.4.2
%mul211.4.2 = fmul fast float %mul7.4.2, %4001
%4002 = tail call fast float @llvm.fmuladd.f32(float %mul207.4.2, float %div188.4.2, float %mul211.4.2)
%4003 = tail call fast float @llvm.fmuladd.f32(float %mul206.4.2, float %4002, float %mul195.4.2)
%mul214.4.2 = fmul fast float %3986, %nbparam_params.coerce.fca.5.extract
%mul215.4.2 = fmul fast float %mul214.4.2, %div188.4.2
%4004 = bitcast float %mul215.4.2 to i32
%4005 = and i32 %4004, 2147483647
%4006 = bitcast i32 %4005 to float
%4007 = fmul float %4006, %4006
%4008 = fdiv float 1.000000e+00, %4007, !fpmath !33
%4009 = fadd float %4006, -1.000000e+00
%4010 = fcmp olt float %4006, 1.250000e+00
%4011 = select i1 %4010, float %4009, float %4008
%4012 = fcmp olt float %4006, 8.437500e-01
%4013 = select i1 %4012, float %4007, float %4011
%4014 = tail call float @llvm.fmuladd.f32(float %4013, float 0xC07E384EA0000000, float 0xC090046160000000) #9
%4015 = tail call float @llvm.fmuladd.f32(float %4013, float %4014, float 0xC083EC8820000000) #9
%4016 = tail call float @llvm.fmuladd.f32(float %4013, float %4015, float 0xC064145D40000000) #9
%4017 = tail call float @llvm.fmuladd.f32(float %4013, float %4016, float 0xC031C20960000000) #9
%4018 = tail call float @llvm.fmuladd.f32(float %4013, float %4017, float 0xBFE993BA80000000) #9
%4019 = tail call float @llvm.fmuladd.f32(float %4013, float %4018, float 0xBF84341240000000) #9
%4020 = tail call float @llvm.fmuladd.f32(float %4013, float 0xC03670E240000000, float 0x407DA874E0000000) #9
%4021 = tail call float @llvm.fmuladd.f32(float %4013, float %4020, float 0x40A3F219C0000000) #9
%4022 = tail call float @llvm.fmuladd.f32(float %4013, float %4021, float 0x40A8FFB760000000) #9
%4023 = tail call float @llvm.fmuladd.f32(float %4013, float %4022, float 0x409802EB20000000) #9
%4024 = tail call float @llvm.fmuladd.f32(float %4013, float %4023, float 0x40745CAE20000000) #9
%4025 = tail call float @llvm.fmuladd.f32(float %4013, float %4024, float 0x403E568B20000000) #9
%4026 = tail call float @llvm.fmuladd.f32(float %4013, float 0xC023A0EFC0000000, float 0xC054526560000000) #9
%4027 = tail call float @llvm.fmuladd.f32(float %4013, float %4026, float 0xC067135CE0000000) #9
%4028 = tail call float @llvm.fmuladd.f32(float %4013, float %4027, float 0xC0644CB180000000) #9
%4029 = tail call float @llvm.fmuladd.f32(float %4013, float %4028, float 0xC04F300AE0000000) #9
%4030 = tail call float @llvm.fmuladd.f32(float %4013, float %4029, float 0xC0251E0440000000) #9
%4031 = tail call float @llvm.fmuladd.f32(float %4013, float %4030, float 0xBFE63416E0000000) #9
%4032 = tail call float @llvm.fmuladd.f32(float %4013, float %4031, float 0xBF84341260000000) #9
%4033 = tail call float @llvm.fmuladd.f32(float %4013, float 0xBFAEEFF2E0000000, float 0x401A47EF80000000) #9
%4034 = tail call float @llvm.fmuladd.f32(float %4013, float %4033, float 0x405B28A3E0000000) #9
%4035 = tail call float @llvm.fmuladd.f32(float %4013, float %4034, float 0x407AD02160000000) #9
%4036 = tail call float @llvm.fmuladd.f32(float %4013, float %4035, float 0x40842B1920000000) #9
%4037 = tail call float @llvm.fmuladd.f32(float %4013, float %4036, float 0x407B290DE0000000) #9
%4038 = tail call float @llvm.fmuladd.f32(float %4013, float %4037, float 0x4061350C60000000) #9
%4039 = tail call float @llvm.fmuladd.f32(float %4013, float %4038, float 0x4033A6B9C0000000) #9
%4040 = fcmp olt float %4006, 0x4006DB6DC0000000
%4041 = select i1 %4040, float %4032, float %4019
%4042 = select i1 %4040, float %4039, float %4025
%4043 = tail call float @llvm.fmuladd.f32(float %4013, float 0xBF61BF3800000000, float 0x3FA22A3660000000) #9
%4044 = tail call float @llvm.fmuladd.f32(float %4013, float %4043, float 0xBFBC639840000000) #9
%4045 = tail call float @llvm.fmuladd.f32(float %4013, float %4044, float 0x3FD45FCA80000000) #9
%4046 = tail call float @llvm.fmuladd.f32(float %4013, float %4045, float 0xBFD7D24100000000) #9
%4047 = tail call float @llvm.fmuladd.f32(float %4013, float %4046, float 0x3FDA8D00A0000000) #9
%4048 = tail call float @llvm.fmuladd.f32(float %4013, float %4047, float 0xBF6359B8C0000000) #9
%4049 = tail call float @llvm.fmuladd.f32(float %4013, float 0x3F888B5460000000, float 0x3F8BEDC260000000) #9
%4050 = tail call float @llvm.fmuladd.f32(float %4013, float %4049, float 0x3FC02660E0000000) #9
%4051 = tail call float @llvm.fmuladd.f32(float %4013, float %4050, float 0x3FB2635CE0000000) #9
%4052 = tail call float @llvm.fmuladd.f32(float %4013, float %4051, float 0x3FE14AF0A0000000) #9
%4053 = tail call float @llvm.fmuladd.f32(float %4013, float %4052, float 0x3FBB3E6620000000) #9
%4054 = select i1 %4010, float %4048, float %4041
%4055 = select i1 %4010, float %4053, float %4042
%4056 = tail call float @llvm.fmuladd.f32(float %4013, float 0xBEF8EAD620000000, float 0xBF77A29120000000) #9
%4057 = tail call float @llvm.fmuladd.f32(float %4013, float %4056, float 0xBF9D2A51E0000000) #9
%4058 = tail call float @llvm.fmuladd.f32(float %4013, float %4057, float 0xBFD4CD7D60000000) #9
%4059 = tail call float @llvm.fmuladd.f32(float %4013, float %4058, float 0x3FC06EBA80000000) #9
%4060 = tail call float @llvm.fmuladd.f32(float %4013, float 0xBED09C4340000000, float 0x3F215DC920000000) #9
%4061 = tail call float @llvm.fmuladd.f32(float %4013, float %4060, float 0x3F74D022C0000000) #9
%4062 = tail call float @llvm.fmuladd.f32(float %4013, float %4061, float 0x3FB0A54C60000000) #9
%4063 = tail call float @llvm.fmuladd.f32(float %4013, float %4062, float 0x3FD97779C0000000) #9
%4064 = select i1 %4012, float %4059, float %4054
%4065 = select i1 %4012, float %4063, float %4055
%4066 = tail call float @llvm.fmuladd.f32(float %4013, float %4065, float 1.000000e+00) #9
%4067 = fdiv float %4064, %4066, !fpmath !33
%4068 = and i32 %4004, 2147479552
%4069 = bitcast i32 %4068 to float
%4070 = fsub float -0.000000e+00, %4069
%4071 = tail call float @llvm.fmuladd.f32(float %4070, float %4069, float -5.625000e-01) #9
%4072 = fcmp olt float %4071, 0.000000e+00
%4073 = select i1 %4072, float -5.000000e-01, float 5.000000e-01
%4074 = tail call float @llvm.fmuladd.f32(float %4071, float 0x3FF7154760000000, float %4073) #9
%4075 = fptosi float %4074 to i32
%4076 = sitofp i32 %4075 to float
%4077 = tail call float @llvm.fmuladd.f32(float %4076, float 0xBFE62E3000000000, float %4071) #9
%4078 = fmul float %4076, 0xBEE2FEFA20000000
%4079 = fadd float %4077, %4078
%4080 = fmul float %4079, %4079
%4081 = tail call float @llvm.fmuladd.f32(float %4080, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%4082 = tail call float @llvm.fmuladd.f32(float %4080, float %4081, float 0x3F11566AA0000000) #9
%4083 = tail call float @llvm.fmuladd.f32(float %4080, float %4082, float 0xBF66C16C20000000) #9
%4084 = tail call float @llvm.fmuladd.f32(float %4080, float %4083, float 0x3FC5555560000000) #9
%4085 = fsub float -0.000000e+00, %4084
%4086 = tail call float @llvm.fmuladd.f32(float %4080, float %4085, float %4079) #9
%4087 = fsub float -0.000000e+00, %4078
%4088 = fmul float %4079, %4086
%4089 = fsub float 2.000000e+00, %4086
%4090 = fdiv float %4088, %4089, !fpmath !33
%4091 = fsub float %4087, %4090
%4092 = fsub float %4091, %4077
%4093 = fsub float 1.000000e+00, %4092
%4094 = bitcast float %4093 to i32
%4095 = shl i32 %4075, 23
%4096 = add nsw i32 %4094, %4095
%4097 = bitcast i32 %4096 to float
%4098 = fcmp olt float %4071, 0xC055D589E0000000
%4099 = select i1 %4098, float 0.000000e+00, float %4097
%4100 = fcmp olt float %4071, 0x40562E4300000000
%4101 = select i1 %4100, float %4099, float 0x7FF0000000000000
%4102 = fcmp uno float %4071, 0.000000e+00
%4103 = select i1 %4102, float %4071, float %4101
%4104 = fsub float %4069, %4006
%4105 = fadd float %4069, %4006
%4106 = tail call float @llvm.fmuladd.f32(float %4104, float %4105, float %4067) #9
%4107 = fcmp olt float %4106, 0.000000e+00
%4108 = select i1 %4107, float -5.000000e-01, float 5.000000e-01
%4109 = tail call float @llvm.fmuladd.f32(float %4106, float 0x3FF7154760000000, float %4108) #9
%4110 = fptosi float %4109 to i32
%4111 = sitofp i32 %4110 to float
%4112 = tail call float @llvm.fmuladd.f32(float %4111, float 0xBFE62E3000000000, float %4106) #9
%4113 = fmul float %4111, 0xBEE2FEFA20000000
%4114 = fadd float %4112, %4113
%4115 = fmul float %4114, %4114
%4116 = tail call float @llvm.fmuladd.f32(float %4115, float 0x3E66376980000000, float 0xBEBBBD41C0000000) #9
%4117 = tail call float @llvm.fmuladd.f32(float %4115, float %4116, float 0x3F11566AA0000000) #9
%4118 = tail call float @llvm.fmuladd.f32(float %4115, float %4117, float 0xBF66C16C20000000) #9
%4119 = tail call float @llvm.fmuladd.f32(float %4115, float %4118, float 0x3FC5555560000000) #9
%4120 = fsub float -0.000000e+00, %4119
%4121 = tail call float @llvm.fmuladd.f32(float %4115, float %4120, float %4114) #9
%4122 = fsub float -0.000000e+00, %4113
%4123 = fmul float %4114, %4121
%4124 = fsub float 2.000000e+00, %4121
%4125 = fdiv float %4123, %4124, !fpmath !33
%4126 = fsub float %4122, %4125
%4127 = fsub float %4126, %4112
%4128 = fsub float 1.000000e+00, %4127
%4129 = bitcast float %4128 to i32
%4130 = shl i32 %4110, 23
%4131 = add nsw i32 %4129, %4130
%4132 = bitcast i32 %4131 to float
%4133 = fcmp olt float %4106, 0xC055D589E0000000
%4134 = select i1 %4133, float 0.000000e+00, float %4132
%4135 = fcmp olt float %4106, 0x40562E4300000000
%4136 = select i1 %4135, float %4134, float 0x7FF0000000000000
%4137 = fcmp uno float %4106, 0.000000e+00
%4138 = select i1 %4137, float %4106, float %4136
%4139 = fmul float %4103, %4138
%4140 = fdiv float %4139, %4006, !fpmath !33
%4141 = fsub float 1.000000e+00, %4140
%4142 = fcmp olt float %4006, 6.000000e+00
%4143 = select i1 %4142, float %4141, float 1.000000e+00
%4144 = fadd float %4067, 0x3FEB0AC160000000
%4145 = select i1 %4010, float %4144, float %4143
%4146 = and i32 %4004, -2147483648
%4147 = bitcast float %4145 to i32
%4148 = or i32 %4147, %4146
%4149 = bitcast i32 %4148 to float
%4150 = tail call float @llvm.fmuladd.f32(float %mul215.4.2, float %4067, float %mul215.4.2) #9
%4151 = select i1 %4012, float %4150, float %4149
%4152 = fmul float %mul215.4.2, 0x3FF06EBA80000000
%4153 = tail call float @llvm.fmuladd.f32(float %mul215.4.2, float 8.000000e+00, float %4152) #9
%4154 = fmul float %4153, 1.250000e-01
%4155 = fcmp olt float %4006, 0x3E30000000000000
%4156 = select i1 %4155, float %4154, float %4151
%4157 = fcmp uno float %mul215.4.2, 0.000000e+00
%4158 = select i1 %4157, float %mul215.4.2, float %4156
%sub217.4.2 = fsub fast float %cond.4.2, %4158
%4159 = fmul fast float %nbparam_params.coerce.fca.6.extract, %cond.4.2
%neg220.4.2 = fsub fast float -0.000000e+00, %4159
%4160 = tail call fast float @llvm.fmuladd.f32(float %div188.4.2, float %sub217.4.2, float %neg220.4.2)
%4161 = tail call fast float @llvm.fmuladd.f32(float %mul206.4.2, float %4160, float %E_el.5.3.2)
%splat.splatinsert.4.2 = insertelement <3 x float> undef, float %4003, i32 0
%splat.splat.4.2 = shufflevector <3 x float> %splat.splatinsert.4.2, <3 x float> undef, <3 x i32> zeroinitializer
%mul225.4.2 = fmul fast <3 x float> %splat.splat.4.2, %extractVec165.4.2
%extractVec233.4.2 = shufflevector <4 x float> %fcj_buf.sroa.0.1.3.2, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%sub234.4.2 = fsub fast <3 x float> %extractVec233.4.2, %mul225.4.2
%extractVec235.4.2 = shufflevector <3 x float> %sub234.4.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%extractVec244.4.2 = shufflevector <4 x float> %loadVec4243.4.3792, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
%add245.4.2 = fadd fast <3 x float> %mul225.4.2, %extractVec244.4.2
%extractVec246.4.2 = shufflevector <3 x float> %add245.4.2, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
br label %4162
; <label>:4162: ; preds = %3980, %3971, %3970
%loadVec4243.4.3789 = phi <4 x float> [ %extractVec246.4.2, %3980 ], [ %loadVec4243.4.3792, %3971 ], [ %loadVec4243.4.3792, %3970 ]
%E_el.5.4.2 = phi float [ %4161, %3980 ], [ %E_el.5.3.2, %3971 ], [ %E_el.5.3.2, %3970 ]
%fcj_buf.sroa.0.1.4.2 = phi <4 x float> [ %extractVec235.4.2, %3980 ], [ %fcj_buf.sroa.0.1.3.2, %3971 ], [ %fcj_buf.sroa.0.1.3.2, %3970 ]
%E_lj.3.4.2 = phi float [ %add205.4.2, %3980 ], [ %E_lj.3.3.2, %3971 ], [ %E_lj.3.3.2, %3970 ]
%and144.5.2 = and i32 %57, 2097152
%tobool145.5.2 = icmp eq i32 %and144.5.2, 0
br i1 %tobool145.5.2, label %4354, label %4163
; <label>:4163: ; preds = %4162
%4164 = load <4 x float>, <4 x float> addrspace(3)* %arrayidx153.5.2, align 16, !tbaa !13
%4165 = fsub fast <4 x float> %4164, %3198
%4166 = extractelement <4 x float> %4165, i32 0
%4167 = extractelement <4 x float> %4165, i32 1
%4168 = fmul float %4167, %4167
%4169 = tail call float @llvm.fmuladd.f32(float %4166, float %4166, float %4168) #9
%4170 = extractelement <4 x float> %4165, i32 2
%4171 = tail call float @llvm.fmuladd.f32(float %4170, float %4170, float %4169) #9
%and167.5.2 = and i32 %58, 2097152
%tobool168.5.2 = icmp ne i32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment