UpdateCTestConfiguration from :/home/bruce/Projects/VTK/build/DartConfiguration.tcl Parse Config file:/home/bruce/Projects/VTK/build/DartConfiguration.tcl Add coverage exclude regular expressions. Add coverage exclude: vtk.*TCLInit.cxx Add coverage exclude: vtk[^\.]+(Java|Python|Tcl).cxx Add coverage exclude: .*vtkOpenGLState.* Add coverage exclude: .*Testing.Cxx.*cxx Add coverage exclude: .*Testing.Cxx.*h Add coverage exclude: .*moc_.*cxx Add coverage exclude: .*/Rendering/OpenGL/vtkgl.* Add coverage exclude: .*/Utilities/.* Add coverage exclude: .*/ThirdParty/.* Add coverage exclude: .*vtkOpenGLPolyDataMapper.* UpdateCTestConfiguration from :/home/bruce/Projects/VTK/build/DartConfiguration.tcl Parse Config file:/home/bruce/Projects/VTK/build/DartConfiguration.tcl Test project /home/bruce/Projects/VTK/build Constructing a list of tests Done constructing a list of tests Checking test dependency graph... Checking test dependency graph end test 1525 Start vtkRenderingCoreCxx-TestTextureRGBADepthPeeling Test command: /home/bruce/Projects/VTK/build/bin/vtkRenderingCoreCxxTests "TestTextureRGBADepthPeeling" "-D" "/home/bruce/Projects/VTK/build/ExternalData//Testing" "-T" "/home/bruce/Projects/VTK/build/Testing/Temporary" "-V" "/home/bruce/Projects/VTK/build/ExternalData/Rendering/Core/Testing/Data/Baseline/TestTextureRGBADepthPeeling.png" Test timeout computed to be: 3600 SWR detected AVX2 asked to convert unsupported format PIPE_FORMAT_X8Z24_UNORM Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable asked to convert unsupported format PIPE_FORMAT_A8B8G8R8_SRGB asked to convert unsupported format PIPE_FORMAT_NONE Unexpected PIPE_CAP 125 query Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable asked to convert unsupported format PIPE_FORMAT_A8B8G8R8_SRGB asked to convert unsupported format PIPE_FORMAT_NONE Unexpected PIPE_CAP 125 query Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable asked to convert unsupported format PIPE_FORMAT_A8B8G8R8_SRGB asked to convert unsupported format PIPE_FORMAT_NONE Unexpected PIPE_CAP 125 query Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable asked to convert unsupported format PIPE_FORMAT_A8B8G8R8_SRGB asked to convert unsupported format PIPE_FORMAT_NONE Unexpected PIPE_CAP 125 query Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable asked to convert unsupported format PIPE_FORMAT_A8B8G8R8_SRGB asked to convert unsupported format PIPE_FORMAT_NONE Unexpected PIPE_CAP 125 query Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable asked to convert unsupported format PIPE_FORMAT_A8B8G8R8_SRGB asked to convert unsupported format PIPE_FORMAT_NONE Unexpected PIPE_CAP 125 query Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable asked to convert unsupported format PIPE_FORMAT_A8B8G8R8_SRGB asked to convert unsupported format PIPE_FORMAT_NONE Unexpected PIPE_CAP 125 query ; Function Attrs: alignstack(32) define void @VS({ [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx) #0 { entry: %temp10 = alloca <8 x float> %temp9 = alloca <8 x float> %temp8 = alloca <8 x float> %temp = alloca <8 x float> %output7 = alloca <8 x float> %output6 = alloca <8 x float> %output5 = alloca <8 x float> %output4 = alloca <8 x float> %output3 = alloca <8 x float> %output2 = alloca <8 x float> %output1 = alloca <8 x float> %output = alloca <8 x float> %looplimiter = alloca i32 %vs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 0 %num_vs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 1 %0 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 0 %1 = load { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }** %0 %2 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 0 %3 = load <8 x float>, <8 x float>* %2 %4 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 1 %5 = load <8 x float>, <8 x float>* %4 %6 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 2 %7 = load <8 x float>, <8 x float>* %6 %8 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 3 %9 = load <8 x float>, <8 x float>* %8 %10 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 0 %11 = load <8 x float>, <8 x float>* %10 %12 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 1 %13 = load <8 x float>, <8 x float>* %12 %14 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 2 %15 = load <8 x float>, <8 x float>* %14 %16 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 3 %17 = load <8 x float>, <8 x float>* %16 %18 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 2 %19 = load i32, i32* %18 %20 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 3 %21 = load <8 x i32>, <8 x i32>* %20 store i32 0, i32* %looplimiter store i32 65535, i32* %looplimiter store <8 x float> zeroinitializer, <8 x float>* %output store <8 x float> zeroinitializer, <8 x float>* %output1 store <8 x float> zeroinitializer, <8 x float>* %output2 store <8 x float> zeroinitializer, <8 x float>* %output3 store <8 x float> zeroinitializer, <8 x float>* %output4 store <8 x float> zeroinitializer, <8 x float>* %output5 store <8 x float> zeroinitializer, <8 x float>* %output6 store <8 x float> zeroinitializer, <8 x float>* %output7 %"&vs_constants[]" = getelementptr [32 x float*], [32 x float*]* %vs_constants, i32 0, i32 0 %"vs_constants[]" = load float*, float** %"&vs_constants[]" %"&num_vs_constants[]" = getelementptr [32 x i32], [32 x i32]* %num_vs_constants, i32 0, i32 0 %"num_vs_constants[]" = load i32, i32* %"&num_vs_constants[]" store <8 x float> zeroinitializer, <8 x float>* %temp store <8 x float> zeroinitializer, <8 x float>* %temp8 store <8 x float> zeroinitializer, <8 x float>* %temp9 store <8 x float> zeroinitializer, <8 x float>* %temp10 %22 = getelementptr float, float* %"vs_constants[]", i32 0 %23 = load float, float* %22 %24 = insertelement <8 x float> undef, float %23, i32 0 %25 = shufflevector <8 x float> %24, <8 x float> undef, <8 x i32> zeroinitializer %26 = fmul <8 x float> %3, %25 %27 = getelementptr float, float* %"vs_constants[]", i32 1 %28 = load float, float* %27 %29 = insertelement <8 x float> undef, float %28, i32 0 %30 = shufflevector <8 x float> %29, <8 x float> undef, <8 x i32> zeroinitializer %31 = fmul <8 x float> %3, %30 %32 = getelementptr float, float* %"vs_constants[]", i32 2 %33 = load float, float* %32 %34 = insertelement <8 x float> undef, float %33, i32 0 %35 = shufflevector <8 x float> %34, <8 x float> undef, <8 x i32> zeroinitializer %36 = fmul <8 x float> %3, %35 %37 = getelementptr float, float* %"vs_constants[]", i32 3 %38 = load float, float* %37 %39 = insertelement <8 x float> undef, float %38, i32 0 %40 = shufflevector <8 x float> %39, <8 x float> undef, <8 x i32> zeroinitializer %41 = fmul <8 x float> %3, %40 store <8 x float> %26, <8 x float>* %temp store <8 x float> %31, <8 x float>* %temp8 store <8 x float> %36, <8 x float>* %temp9 store <8 x float> %41, <8 x float>* %temp10 %42 = getelementptr float, float* %"vs_constants[]", i32 4 %43 = load float, float* %42 %44 = insertelement <8 x float> undef, float %43, i32 0 %45 = shufflevector <8 x float> %44, <8 x float> undef, <8 x i32> zeroinitializer %46 = load <8 x float>, <8 x float>* %temp %47 = fmul <8 x float> %5, %45 %48 = fadd <8 x float> %47, %46 %49 = getelementptr float, float* %"vs_constants[]", i32 5 %50 = load float, float* %49 %51 = insertelement <8 x float> undef, float %50, i32 0 %52 = shufflevector <8 x float> %51, <8 x float> undef, <8 x i32> zeroinitializer %53 = load <8 x float>, <8 x float>* %temp8 %54 = fmul <8 x float> %5, %52 %55 = fadd <8 x float> %54, %53 %56 = getelementptr float, float* %"vs_constants[]", i32 6 %57 = load float, float* %56 %58 = insertelement <8 x float> undef, float %57, i32 0 %59 = shufflevector <8 x float> %58, <8 x float> undef, <8 x i32> zeroinitializer %60 = load <8 x float>, <8 x float>* %temp9 %61 = fmul <8 x float> %5, %59 %62 = fadd <8 x float> %61, %60 %63 = getelementptr float, float* %"vs_constants[]", i32 7 %64 = load float, float* %63 %65 = insertelement <8 x float> undef, float %64, i32 0 %66 = shufflevector <8 x float> %65, <8 x float> undef, <8 x i32> zeroinitializer %67 = load <8 x float>, <8 x float>* %temp10 %68 = fmul <8 x float> %5, %66 %69 = fadd <8 x float> %68, %67 store <8 x float> %48, <8 x float>* %temp store <8 x float> %55, <8 x float>* %temp8 store <8 x float> %62, <8 x float>* %temp9 store <8 x float> %69, <8 x float>* %temp10 %70 = getelementptr float, float* %"vs_constants[]", i32 8 %71 = load float, float* %70 %72 = insertelement <8 x float> undef, float %71, i32 0 %73 = shufflevector <8 x float> %72, <8 x float> undef, <8 x i32> zeroinitializer %74 = load <8 x float>, <8 x float>* %temp %75 = fmul <8 x float> %7, %73 %76 = fadd <8 x float> %75, %74 %77 = getelementptr float, float* %"vs_constants[]", i32 9 %78 = load float, float* %77 %79 = insertelement <8 x float> undef, float %78, i32 0 %80 = shufflevector <8 x float> %79, <8 x float> undef, <8 x i32> zeroinitializer %81 = load <8 x float>, <8 x float>* %temp8 %82 = fmul <8 x float> %7, %80 %83 = fadd <8 x float> %82, %81 %84 = getelementptr float, float* %"vs_constants[]", i32 10 %85 = load float, float* %84 %86 = insertelement <8 x float> undef, float %85, i32 0 %87 = shufflevector <8 x float> %86, <8 x float> undef, <8 x i32> zeroinitializer %88 = load <8 x float>, <8 x float>* %temp9 %89 = fmul <8 x float> %7, %87 %90 = fadd <8 x float> %89, %88 %91 = getelementptr float, float* %"vs_constants[]", i32 11 %92 = load float, float* %91 %93 = insertelement <8 x float> undef, float %92, i32 0 %94 = shufflevector <8 x float> %93, <8 x float> undef, <8 x i32> zeroinitializer %95 = load <8 x float>, <8 x float>* %temp10 %96 = fmul <8 x float> %7, %94 %97 = fadd <8 x float> %96, %95 store <8 x float> %76, <8 x float>* %temp store <8 x float> %83, <8 x float>* %temp8 store <8 x float> %90, <8 x float>* %temp9 store <8 x float> %97, <8 x float>* %temp10 %98 = getelementptr float, float* %"vs_constants[]", i32 12 %99 = load float, float* %98 %100 = insertelement <8 x float> undef, float %99, i32 0 %101 = shufflevector <8 x float> %100, <8 x float> undef, <8 x i32> zeroinitializer %102 = load <8 x float>, <8 x float>* %temp %103 = fmul <8 x float> %9, %101 %104 = fadd <8 x float> %103, %102 %105 = getelementptr float, float* %"vs_constants[]", i32 13 %106 = load float, float* %105 %107 = insertelement <8 x float> undef, float %106, i32 0 %108 = shufflevector <8 x float> %107, <8 x float> undef, <8 x i32> zeroinitializer %109 = load <8 x float>, <8 x float>* %temp8 %110 = fmul <8 x float> %9, %108 %111 = fadd <8 x float> %110, %109 %112 = getelementptr float, float* %"vs_constants[]", i32 14 %113 = load float, float* %112 %114 = insertelement <8 x float> undef, float %113, i32 0 %115 = shufflevector <8 x float> %114, <8 x float> undef, <8 x i32> zeroinitializer %116 = load <8 x float>, <8 x float>* %temp9 %117 = fmul <8 x float> %9, %115 %118 = fadd <8 x float> %117, %116 %119 = getelementptr float, float* %"vs_constants[]", i32 15 %120 = load float, float* %119 %121 = insertelement <8 x float> undef, float %120, i32 0 %122 = shufflevector <8 x float> %121, <8 x float> undef, <8 x i32> zeroinitializer %123 = load <8 x float>, <8 x float>* %temp10 %124 = fmul <8 x float> %9, %122 %125 = fadd <8 x float> %124, %123 store <8 x float> %104, <8 x float>* %output store <8 x float> %111, <8 x float>* %output1 store <8 x float> %118, <8 x float>* %output2 store <8 x float> %125, <8 x float>* %output3 store <8 x float> %11, <8 x float>* %output4 store <8 x float> %13, <8 x float>* %output5 store <8 x float> %15, <8 x float>* %output6 store <8 x float> %17, <8 x float>* %output7 %126 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 1 %127 = load { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }** %126 %128 = load <8 x float>, <8 x float>* %output %129 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %127, i32 0, i32 0, i32 0, i32 0 store <8 x float> %128, <8 x float>* %129 %130 = load <8 x float>, <8 x float>* %output4 %131 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %127, i32 0, i32 0, i32 1, i32 0 store <8 x float> %130, <8 x float>* %131 %132 = load <8 x float>, <8 x float>* %output1 %133 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %127, i32 0, i32 0, i32 0, i32 1 store <8 x float> %132, <8 x float>* %133 %134 = load <8 x float>, <8 x float>* %output5 %135 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %127, i32 0, i32 0, i32 1, i32 1 store <8 x float> %134, <8 x float>* %135 %136 = load <8 x float>, <8 x float>* %output2 %137 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %127, i32 0, i32 0, i32 0, i32 2 store <8 x float> %136, <8 x float>* %137 %138 = load <8 x float>, <8 x float>* %output6 %139 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %127, i32 0, i32 0, i32 1, i32 2 store <8 x float> %138, <8 x float>* %139 %140 = load <8 x float>, <8 x float>* %output3 %141 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %127, i32 0, i32 0, i32 0, i32 3 store <8 x float> %140, <8 x float>* %141 %142 = load <8 x float>, <8 x float>* %output7 %143 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %127, i32 0, i32 0, i32 1, i32 3 store <8 x float> %142, <8 x float>* %143 ret void } VS: 0: pushq %rbp 1: movq %rsp, %rbp 4: andq $-32, %rsp 8: subq $32, %rsp 12: movq (%rsi), %rcx 15: movq 8(%rsi), %rax 19: vmovaps (%rcx), %ymm6 23: vmovaps 32(%rcx), %ymm7 28: vmovaps 64(%rcx), %ymm5 33: vmovaps 96(%rcx), %ymm4 38: vmovaps 128(%rcx), %ymm3 46: vmovaps 160(%rcx), %ymm2 54: vmovaps 192(%rcx), %ymm1 62: vmovaps 224(%rcx), %ymm0 70: movq (%rdi), %rcx 73: vbroadcastss (%rcx), %ymm8 78: vmulps %ymm8, %ymm6, %ymm8 83: vbroadcastss 4(%rcx), %ymm9 89: vmulps %ymm9, %ymm6, %ymm9 94: vbroadcastss 8(%rcx), %ymm10 100: vmulps %ymm10, %ymm6, %ymm10 105: vbroadcastss 12(%rcx), %ymm11 111: vmulps %ymm11, %ymm6, %ymm6 116: vbroadcastss 16(%rcx), %ymm11 122: vmulps %ymm11, %ymm7, %ymm11 127: vaddps %ymm11, %ymm8, %ymm8 132: vbroadcastss 20(%rcx), %ymm11 138: vmulps %ymm11, %ymm7, %ymm11 143: vaddps %ymm11, %ymm9, %ymm9 148: vbroadcastss 24(%rcx), %ymm11 154: vmulps %ymm11, %ymm7, %ymm11 159: vaddps %ymm11, %ymm10, %ymm10 164: vbroadcastss 28(%rcx), %ymm11 170: vmulps %ymm11, %ymm7, %ymm7 175: vaddps %ymm7, %ymm6, %ymm6 179: vbroadcastss 32(%rcx), %ymm7 185: vmulps %ymm7, %ymm5, %ymm7 189: vaddps %ymm7, %ymm8, %ymm7 193: vbroadcastss 36(%rcx), %ymm8 199: vmulps %ymm8, %ymm5, %ymm8 204: vaddps %ymm8, %ymm9, %ymm8 209: vbroadcastss 40(%rcx), %ymm9 215: vmulps %ymm9, %ymm5, %ymm9 220: vaddps %ymm9, %ymm10, %ymm9 225: vbroadcastss 44(%rcx), %ymm10 231: vmulps %ymm10, %ymm5, %ymm5 236: vaddps %ymm5, %ymm6, %ymm5 240: vbroadcastss 48(%rcx), %ymm6 246: vmulps %ymm6, %ymm4, %ymm6 250: vaddps %ymm6, %ymm7, %ymm6 254: vbroadcastss 52(%rcx), %ymm7 260: vmulps %ymm7, %ymm4, %ymm7 264: vaddps %ymm7, %ymm8, %ymm7 268: vbroadcastss 56(%rcx), %ymm8 274: vmulps %ymm8, %ymm4, %ymm8 279: vaddps %ymm8, %ymm9, %ymm8 284: vbroadcastss 60(%rcx), %ymm9 290: vmulps %ymm9, %ymm4, %ymm4 295: vaddps %ymm4, %ymm5, %ymm4 299: vmovaps %ymm6, (%rax) 303: vmovaps %ymm3, 128(%rax) 311: vmovaps %ymm7, 32(%rax) 316: vmovaps %ymm2, 160(%rax) 324: vmovaps %ymm8, 64(%rax) 329: vmovaps %ymm1, 192(%rax) 337: vmovaps %ymm4, 96(%rax) 342: vmovaps %ymm0, 224(%rax) 350: movq %rbp, %rsp 353: popq %rbp 354: vzeroupper 357: retq vert shader 0x7f7aa462f000 ; Function Attrs: alignstack(32) define void @FS({ [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx) #0 { entry: %output25 = alloca <8 x float> %output24 = alloca <8 x float> %output23 = alloca <8 x float> %output = alloca <8 x float> %looplimiter = alloca i32 %fs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 2 %num_fs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 3 %0 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 9 %pRawAttribs = load float*, float** %0 %1 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 10 %pPerspAttribs = load float*, float** %1 %2 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 6, i32 1 %i = load <8 x float>, <8 x float>* %2 %3 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 7, i32 1 %j = load <8 x float>, <8 x float>* %3 %4 = getelementptr float, float* %pRawAttribs, i32 0 %5 = load float, float* %4 %.splatinsert = insertelement <8 x float> undef, float %5, i32 0 %.splat = shufflevector <8 x float> %.splatinsert, <8 x float> undef, <8 x i32> zeroinitializer %6 = getelementptr float, float* %pRawAttribs, i32 4 %7 = load float, float* %6 %.splatinsert1 = insertelement <8 x float> undef, float %7, i32 0 %.splat2 = shufflevector <8 x float> %.splatinsert1, <8 x float> undef, <8 x i32> zeroinitializer %8 = getelementptr float, float* %pRawAttribs, i32 8 %9 = load float, float* %8 %.splatinsert3 = insertelement <8 x float> undef, float %9, i32 0 %.splat4 = shufflevector <8 x float> %.splatinsert3, <8 x float> undef, <8 x i32> zeroinitializer %10 = fsub <8 x float> , %i %11 = fsub <8 x float> %10, %j %12 = fmul <8 x float> %11, %.splat4 %13 = fmul <8 x float> %.splat, %i %14 = fmul <8 x float> %.splat2, %j %15 = fadd <8 x float> %13, %14 %16 = fadd <8 x float> %15, %12 %17 = getelementptr float, float* %pRawAttribs, i32 1 %18 = load float, float* %17 %.splatinsert5 = insertelement <8 x float> undef, float %18, i32 0 %.splat6 = shufflevector <8 x float> %.splatinsert5, <8 x float> undef, <8 x i32> zeroinitializer %19 = getelementptr float, float* %pRawAttribs, i32 5 %20 = load float, float* %19 %.splatinsert7 = insertelement <8 x float> undef, float %20, i32 0 %.splat8 = shufflevector <8 x float> %.splatinsert7, <8 x float> undef, <8 x i32> zeroinitializer %21 = getelementptr float, float* %pRawAttribs, i32 9 %22 = load float, float* %21 %.splatinsert9 = insertelement <8 x float> undef, float %22, i32 0 %.splat10 = shufflevector <8 x float> %.splatinsert9, <8 x float> undef, <8 x i32> zeroinitializer %23 = fsub <8 x float> , %i %24 = fsub <8 x float> %23, %j %25 = fmul <8 x float> %24, %.splat10 %26 = fmul <8 x float> %.splat6, %i %27 = fmul <8 x float> %.splat8, %j %28 = fadd <8 x float> %26, %27 %29 = fadd <8 x float> %28, %25 %30 = getelementptr float, float* %pRawAttribs, i32 2 %31 = load float, float* %30 %.splatinsert11 = insertelement <8 x float> undef, float %31, i32 0 %.splat12 = shufflevector <8 x float> %.splatinsert11, <8 x float> undef, <8 x i32> zeroinitializer %32 = getelementptr float, float* %pRawAttribs, i32 6 %33 = load float, float* %32 %.splatinsert13 = insertelement <8 x float> undef, float %33, i32 0 %.splat14 = shufflevector <8 x float> %.splatinsert13, <8 x float> undef, <8 x i32> zeroinitializer %34 = getelementptr float, float* %pRawAttribs, i32 10 %35 = load float, float* %34 %.splatinsert15 = insertelement <8 x float> undef, float %35, i32 0 %.splat16 = shufflevector <8 x float> %.splatinsert15, <8 x float> undef, <8 x i32> zeroinitializer %36 = fsub <8 x float> , %i %37 = fsub <8 x float> %36, %j %38 = fmul <8 x float> %37, %.splat16 %39 = fmul <8 x float> %.splat12, %i %40 = fmul <8 x float> %.splat14, %j %41 = fadd <8 x float> %39, %40 %42 = fadd <8 x float> %41, %38 %43 = getelementptr float, float* %pRawAttribs, i32 3 %44 = load float, float* %43 %.splatinsert17 = insertelement <8 x float> undef, float %44, i32 0 %.splat18 = shufflevector <8 x float> %.splatinsert17, <8 x float> undef, <8 x i32> zeroinitializer %45 = getelementptr float, float* %pRawAttribs, i32 7 %46 = load float, float* %45 %.splatinsert19 = insertelement <8 x float> undef, float %46, i32 0 %.splat20 = shufflevector <8 x float> %.splatinsert19, <8 x float> undef, <8 x i32> zeroinitializer %47 = getelementptr float, float* %pRawAttribs, i32 11 %48 = load float, float* %47 %.splatinsert21 = insertelement <8 x float> undef, float %48, i32 0 %.splat22 = shufflevector <8 x float> %.splatinsert21, <8 x float> undef, <8 x i32> zeroinitializer %49 = fsub <8 x float> , %i %50 = fsub <8 x float> %49, %j %51 = fmul <8 x float> %50, %.splat22 %52 = fmul <8 x float> %.splat18, %i %53 = fmul <8 x float> %.splat20, %j %54 = fadd <8 x float> %52, %53 %55 = fadd <8 x float> %54, %51 store i32 0, i32* %looplimiter store i32 65535, i32* %looplimiter store <8 x float> zeroinitializer, <8 x float>* %output store <8 x float> zeroinitializer, <8 x float>* %output23 store <8 x float> zeroinitializer, <8 x float>* %output24 store <8 x float> zeroinitializer, <8 x float>* %output25 store <8 x float> %16, <8 x float>* %output store <8 x float> %29, <8 x float>* %output23 store <8 x float> %42, <8 x float>* %output24 store <8 x float> %55, <8 x float>* %output25 %56 = load <8 x float>, <8 x float>* %output %57 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 0 store <8 x float> %56, <8 x float>* %57 %58 = load <8 x float>, <8 x float>* %output23 %59 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 1 store <8 x float> %58, <8 x float>* %59 %60 = load <8 x float>, <8 x float>* %output24 %61 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 2 store <8 x float> %60, <8 x float>* %61 %62 = load <8 x float>, <8 x float>* %output25 %63 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 3 store <8 x float> %62, <8 x float>* %63 ret void } FS: 0: pushq %rbp 1: movq %rsp, %rbp 4: andq $-32, %rsp 8: subq $32, %rsp 12: movq 768(%rsi), %rax 19: vmovaps 416(%rsi), %ymm0 27: vmovaps 544(%rsi), %ymm1 35: vbroadcastss (%rax), %ymm2 40: vbroadcastss 16(%rax), %ymm3 46: vbroadcastss 32(%rax), %ymm4 52: movabsq $140164720672768, %rcx 62: vbroadcastss (%rcx), %ymm5 67: vsubps %ymm0, %ymm5, %ymm5 71: vsubps %ymm1, %ymm5, %ymm5 75: vmulps %ymm4, %ymm5, %ymm4 79: vmulps %ymm2, %ymm0, %ymm2 83: vmulps %ymm3, %ymm1, %ymm3 87: vaddps %ymm3, %ymm2, %ymm2 91: vaddps %ymm4, %ymm2, %ymm2 95: vbroadcastss 4(%rax), %ymm3 101: vbroadcastss 20(%rax), %ymm4 107: vbroadcastss 36(%rax), %ymm6 113: vmulps %ymm6, %ymm5, %ymm6 117: vmulps %ymm3, %ymm0, %ymm3 121: vmulps %ymm4, %ymm1, %ymm4 125: vaddps %ymm4, %ymm3, %ymm3 129: vaddps %ymm6, %ymm3, %ymm3 133: vbroadcastss 8(%rax), %ymm4 139: vbroadcastss 24(%rax), %ymm6 145: vbroadcastss 40(%rax), %ymm7 151: vmulps %ymm7, %ymm5, %ymm7 155: vmulps %ymm4, %ymm0, %ymm4 159: vmulps %ymm6, %ymm1, %ymm6 163: vaddps %ymm6, %ymm4, %ymm4 167: vaddps %ymm7, %ymm4, %ymm4 171: vbroadcastss 12(%rax), %ymm6 177: vbroadcastss 28(%rax), %ymm7 183: vbroadcastss 44(%rax), %ymm8 189: vmulps %ymm8, %ymm5, %ymm5 194: vmulps %ymm6, %ymm0, %ymm0 198: vmulps %ymm7, %ymm1, %ymm1 202: vaddps %ymm1, %ymm0, %ymm0 206: vaddps %ymm5, %ymm0, %ymm0 210: vmovaps %ymm2, 832(%rsi) 218: vmovaps %ymm3, 864(%rsi) 226: vmovaps %ymm4, 896(%rsi) 234: vmovaps %ymm0, 928(%rsi) 242: movq %rbp, %rsp 245: popq %rbp 246: vzeroupper 249: retq frag shader 0x7f7aa462d000 BLEND shader 0x7f7aa462b000 dual depth peeling FRAG PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1 DCL IN[0], COLOR, COLOR DCL OUT[0], COLOR 0: MOV OUT[0], IN[0] 1: END OUT[0].x = IN[0].x OUT[0].y = IN[0].y OUT[0].z = IN[0].z OUT[0].w = IN[0].w ; Function Attrs: alignstack(32) define void @FS({ [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx) #0 { entry: %output25 = alloca <8 x float> %output24 = alloca <8 x float> %output23 = alloca <8 x float> %output = alloca <8 x float> %looplimiter = alloca i32 %fs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 2 %num_fs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 3 %0 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 9 %pRawAttribs = load float*, float** %0 %1 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 10 %pPerspAttribs = load float*, float** %1 %2 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 6, i32 1 %i = load <8 x float>, <8 x float>* %2 %3 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 7, i32 1 %j = load <8 x float>, <8 x float>* %3 %4 = getelementptr float, float* %pRawAttribs, i32 0 %5 = load float, float* %4 %.splatinsert = insertelement <8 x float> undef, float %5, i32 0 %.splat = shufflevector <8 x float> %.splatinsert, <8 x float> undef, <8 x i32> zeroinitializer %6 = getelementptr float, float* %pRawAttribs, i32 4 %7 = load float, float* %6 %.splatinsert1 = insertelement <8 x float> undef, float %7, i32 0 %.splat2 = shufflevector <8 x float> %.splatinsert1, <8 x float> undef, <8 x i32> zeroinitializer %8 = getelementptr float, float* %pRawAttribs, i32 8 %9 = load float, float* %8 %.splatinsert3 = insertelement <8 x float> undef, float %9, i32 0 %.splat4 = shufflevector <8 x float> %.splatinsert3, <8 x float> undef, <8 x i32> zeroinitializer %10 = fsub <8 x float> , %i %11 = fsub <8 x float> %10, %j %12 = fmul <8 x float> %11, %.splat4 %13 = fmul <8 x float> %.splat, %i %14 = fmul <8 x float> %.splat2, %j %15 = fadd <8 x float> %13, %14 %16 = fadd <8 x float> %15, %12 %17 = getelementptr float, float* %pRawAttribs, i32 1 %18 = load float, float* %17 %.splatinsert5 = insertelement <8 x float> undef, float %18, i32 0 %.splat6 = shufflevector <8 x float> %.splatinsert5, <8 x float> undef, <8 x i32> zeroinitializer %19 = getelementptr float, float* %pRawAttribs, i32 5 %20 = load float, float* %19 %.splatinsert7 = insertelement <8 x float> undef, float %20, i32 0 %.splat8 = shufflevector <8 x float> %.splatinsert7, <8 x float> undef, <8 x i32> zeroinitializer %21 = getelementptr float, float* %pRawAttribs, i32 9 %22 = load float, float* %21 %.splatinsert9 = insertelement <8 x float> undef, float %22, i32 0 %.splat10 = shufflevector <8 x float> %.splatinsert9, <8 x float> undef, <8 x i32> zeroinitializer %23 = fsub <8 x float> , %i %24 = fsub <8 x float> %23, %j %25 = fmul <8 x float> %24, %.splat10 %26 = fmul <8 x float> %.splat6, %i %27 = fmul <8 x float> %.splat8, %j %28 = fadd <8 x float> %26, %27 %29 = fadd <8 x float> %28, %25 %30 = getelementptr float, float* %pRawAttribs, i32 2 %31 = load float, float* %30 %.splatinsert11 = insertelement <8 x float> undef, float %31, i32 0 %.splat12 = shufflevector <8 x float> %.splatinsert11, <8 x float> undef, <8 x i32> zeroinitializer %32 = getelementptr float, float* %pRawAttribs, i32 6 %33 = load float, float* %32 %.splatinsert13 = insertelement <8 x float> undef, float %33, i32 0 %.splat14 = shufflevector <8 x float> %.splatinsert13, <8 x float> undef, <8 x i32> zeroinitializer %34 = getelementptr float, float* %pRawAttribs, i32 10 %35 = load float, float* %34 %.splatinsert15 = insertelement <8 x float> undef, float %35, i32 0 %.splat16 = shufflevector <8 x float> %.splatinsert15, <8 x float> undef, <8 x i32> zeroinitializer %36 = fsub <8 x float> , %i %37 = fsub <8 x float> %36, %j %38 = fmul <8 x float> %37, %.splat16 %39 = fmul <8 x float> %.splat12, %i %40 = fmul <8 x float> %.splat14, %j %41 = fadd <8 x float> %39, %40 %42 = fadd <8 x float> %41, %38 %43 = getelementptr float, float* %pRawAttribs, i32 3 %44 = load float, float* %43 %.splatinsert17 = insertelement <8 x float> undef, float %44, i32 0 %.splat18 = shufflevector <8 x float> %.splatinsert17, <8 x float> undef, <8 x i32> zeroinitializer %45 = getelementptr float, float* %pRawAttribs, i32 7 %46 = load float, float* %45 %.splatinsert19 = insertelement <8 x float> undef, float %46, i32 0 %.splat20 = shufflevector <8 x float> %.splatinsert19, <8 x float> undef, <8 x i32> zeroinitializer %47 = getelementptr float, float* %pRawAttribs, i32 11 %48 = load float, float* %47 %.splatinsert21 = insertelement <8 x float> undef, float %48, i32 0 %.splat22 = shufflevector <8 x float> %.splatinsert21, <8 x float> undef, <8 x i32> zeroinitializer %49 = fsub <8 x float> , %i %50 = fsub <8 x float> %49, %j %51 = fmul <8 x float> %50, %.splat22 %52 = fmul <8 x float> %.splat18, %i %53 = fmul <8 x float> %.splat20, %j %54 = fadd <8 x float> %52, %53 %55 = fadd <8 x float> %54, %51 store i32 0, i32* %looplimiter store i32 65535, i32* %looplimiter store <8 x float> zeroinitializer, <8 x float>* %output store <8 x float> zeroinitializer, <8 x float>* %output23 store <8 x float> zeroinitializer, <8 x float>* %output24 store <8 x float> zeroinitializer, <8 x float>* %output25 store <8 x float> %16, <8 x float>* %output store <8 x float> %29, <8 x float>* %output23 store <8 x float> %42, <8 x float>* %output24 store <8 x float> %55, <8 x float>* %output25 %56 = load <8 x float>, <8 x float>* %output %57 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 0 store <8 x float> %56, <8 x float>* %57 %58 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 1, i32 0 store <8 x float> %56, <8 x float>* %58 %59 = load <8 x float>, <8 x float>* %output23 %60 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 1 store <8 x float> %59, <8 x float>* %60 %61 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 1, i32 1 store <8 x float> %59, <8 x float>* %61 %62 = load <8 x float>, <8 x float>* %output24 %63 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 2 store <8 x float> %62, <8 x float>* %63 %64 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 1, i32 2 store <8 x float> %62, <8 x float>* %64 %65 = load <8 x float>, <8 x float>* %output25 %66 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 3 store <8 x float> %65, <8 x float>* %66 %67 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 1, i32 3 store <8 x float> %65, <8 x float>* %67 ret void } FS: 0: pushq %rbp 1: movq %rsp, %rbp 4: andq $-32, %rsp 8: subq $32, %rsp 12: movq 768(%rsi), %rax 19: vmovaps 416(%rsi), %ymm0 27: vmovaps 544(%rsi), %ymm1 35: vbroadcastss (%rax), %ymm2 40: vbroadcastss 16(%rax), %ymm3 46: vbroadcastss 32(%rax), %ymm4 52: movabsq $140164720652288, %rcx 62: vbroadcastss (%rcx), %ymm5 67: vsubps %ymm0, %ymm5, %ymm5 71: vsubps %ymm1, %ymm5, %ymm5 75: vmulps %ymm4, %ymm5, %ymm4 79: vmulps %ymm2, %ymm0, %ymm2 83: vmulps %ymm3, %ymm1, %ymm3 87: vaddps %ymm3, %ymm2, %ymm2 91: vaddps %ymm4, %ymm2, %ymm2 95: vbroadcastss 4(%rax), %ymm3 101: vbroadcastss 20(%rax), %ymm4 107: vbroadcastss 36(%rax), %ymm6 113: vmulps %ymm6, %ymm5, %ymm6 117: vmulps %ymm3, %ymm0, %ymm3 121: vmulps %ymm4, %ymm1, %ymm4 125: vaddps %ymm4, %ymm3, %ymm3 129: vaddps %ymm6, %ymm3, %ymm3 133: vbroadcastss 8(%rax), %ymm4 139: vbroadcastss 24(%rax), %ymm6 145: vbroadcastss 40(%rax), %ymm7 151: vmulps %ymm7, %ymm5, %ymm7 155: vmulps %ymm4, %ymm0, %ymm4 159: vmulps %ymm6, %ymm1, %ymm6 163: vaddps %ymm6, %ymm4, %ymm4 167: vaddps %ymm7, %ymm4, %ymm4 171: vbroadcastss 12(%rax), %ymm6 177: vbroadcastss 28(%rax), %ymm7 183: vbroadcastss 44(%rax), %ymm8 189: vmulps %ymm8, %ymm5, %ymm5 194: vmulps %ymm6, %ymm0, %ymm0 198: vmulps %ymm7, %ymm1, %ymm1 202: vaddps %ymm1, %ymm0, %ymm0 206: vaddps %ymm5, %ymm0, %ymm0 210: vmovaps %ymm2, 832(%rsi) 218: vmovaps %ymm2, 960(%rsi) 226: vmovaps %ymm3, 864(%rsi) 234: vmovaps %ymm3, 992(%rsi) 242: vmovaps %ymm4, 896(%rsi) 250: vmovaps %ymm4, 1024(%rsi) 258: vmovaps %ymm0, 928(%rsi) 266: vmovaps %ymm0, 1056(%rsi) 274: movq %rbp, %rsp 277: popq %rbp 278: vzeroupper 281: retq frag shader 0x7f7aa4628000 BLEND shader 0x7f7aa4626000 BLEND shader 0x7f7aa4624000 FRAG DCL IN[0], GENERIC[0], LINEAR DCL OUT[0], COLOR DCL OUT[1], POSITION DCL SAMP[0] DCL SVIEW[0], 2D, FLOAT IMM[0] FLT32 { 0.0000, 1.0000, 0.0000, 0.0000} 0: MOV OUT[0], IMM[0].xxxy 1: TEX OUT[1].z, IN[0], SAMP[0], 2D 2: END TEX[0] = IN[0].x IN[0].y _ _, RES[0], SAMP[0], 2D OUT[0].x = 0.000000 OUT[0].y = 0.000000 OUT[0].z = 0.000000 OUT[0].w = 1.000000 VERT PROPERTY NEXT_SHADER 0 DCL IN[0] DCL IN[1] DCL OUT[0], POSITION DCL OUT[1], GENERIC[0] 0: MOV OUT[0], IN[0] 1: MOV OUT[1], IN[1] 2: END OUT[0].x = IN[0].x OUT[0].y = IN[0].y OUT[0].z = IN[0].z OUT[0].w = IN[0].w OUT[1].x = IN[1].x OUT[1].y = IN[1].y OUT[1].z = IN[1].z OUT[1].w = IN[1].w ; Function Attrs: alignstack(32) define void @VS({ [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx) #0 { entry: %output7 = alloca <8 x float> %output6 = alloca <8 x float> %output5 = alloca <8 x float> %output4 = alloca <8 x float> %output3 = alloca <8 x float> %output2 = alloca <8 x float> %output1 = alloca <8 x float> %output = alloca <8 x float> %looplimiter = alloca i32 %vs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 0 %num_vs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 1 %0 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 0 %1 = load { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }** %0 %2 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 0 %3 = load <8 x float>, <8 x float>* %2 %4 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 1 %5 = load <8 x float>, <8 x float>* %4 %6 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 2 %7 = load <8 x float>, <8 x float>* %6 %8 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 3 %9 = load <8 x float>, <8 x float>* %8 %10 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 0 %11 = load <8 x float>, <8 x float>* %10 %12 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 1 %13 = load <8 x float>, <8 x float>* %12 %14 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 2 %15 = load <8 x float>, <8 x float>* %14 %16 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 3 %17 = load <8 x float>, <8 x float>* %16 %18 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 2 %19 = load i32, i32* %18 %20 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 3 %21 = load <8 x i32>, <8 x i32>* %20 store i32 0, i32* %looplimiter store i32 65535, i32* %looplimiter store <8 x float> zeroinitializer, <8 x float>* %output store <8 x float> zeroinitializer, <8 x float>* %output1 store <8 x float> zeroinitializer, <8 x float>* %output2 store <8 x float> zeroinitializer, <8 x float>* %output3 store <8 x float> zeroinitializer, <8 x float>* %output4 store <8 x float> zeroinitializer, <8 x float>* %output5 store <8 x float> zeroinitializer, <8 x float>* %output6 store <8 x float> zeroinitializer, <8 x float>* %output7 store <8 x float> %3, <8 x float>* %output store <8 x float> %5, <8 x float>* %output1 store <8 x float> %7, <8 x float>* %output2 store <8 x float> %9, <8 x float>* %output3 store <8 x float> %11, <8 x float>* %output4 store <8 x float> %13, <8 x float>* %output5 store <8 x float> %15, <8 x float>* %output6 store <8 x float> %17, <8 x float>* %output7 %22 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 1 %23 = load { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }** %22 %24 = load <8 x float>, <8 x float>* %output %25 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 0, i32 0 store <8 x float> %24, <8 x float>* %25 %26 = load <8 x float>, <8 x float>* %output4 %27 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 1, i32 0 store <8 x float> %26, <8 x float>* %27 %28 = load <8 x float>, <8 x float>* %output1 %29 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 0, i32 1 store <8 x float> %28, <8 x float>* %29 %30 = load <8 x float>, <8 x float>* %output5 %31 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 1, i32 1 store <8 x float> %30, <8 x float>* %31 %32 = load <8 x float>, <8 x float>* %output2 %33 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 0, i32 2 store <8 x float> %32, <8 x float>* %33 %34 = load <8 x float>, <8 x float>* %output6 %35 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 1, i32 2 store <8 x float> %34, <8 x float>* %35 %36 = load <8 x float>, <8 x float>* %output3 %37 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 0, i32 3 store <8 x float> %36, <8 x float>* %37 %38 = load <8 x float>, <8 x float>* %output7 %39 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 1, i32 3 store <8 x float> %38, <8 x float>* %39 ret void } VS: 0: pushq %rbp 1: movq %rsp, %rbp 4: andq $-32, %rsp 8: subq $32, %rsp 12: movq (%rsi), %rax 15: movq 8(%rsi), %rcx 19: vmovaps (%rax), %ymm0 23: vmovaps 32(%rax), %ymm1 28: vmovaps 64(%rax), %ymm2 33: vmovaps 96(%rax), %ymm3 38: vmovaps 128(%rax), %ymm4 46: vmovaps 160(%rax), %ymm5 54: vmovaps 192(%rax), %ymm6 62: vmovaps 224(%rax), %ymm7 70: vmovaps %ymm0, (%rcx) 74: vmovaps %ymm4, 128(%rcx) 82: vmovaps %ymm1, 32(%rcx) 87: vmovaps %ymm5, 160(%rcx) 95: vmovaps %ymm2, 64(%rcx) 100: vmovaps %ymm6, 192(%rcx) 108: vmovaps %ymm3, 96(%rcx) 113: vmovaps %ymm7, 224(%rcx) 121: movq %rbp, %rsp 124: popq %rbp 125: vzeroupper 128: retq vert shader 0x7f7aa4622000 ; Function Attrs: alignstack(32) define void @FS({ [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx) #0 { entry: %sampler0_texel_w_var = alloca <8 x float> %sampler0_texel_z_var = alloca <8 x float> %sampler0_texel_y_var = alloca <8 x float> %sampler0_texel_x_var = alloca <8 x float> %output17 = alloca <8 x float> %output16 = alloca <8 x float> %output15 = alloca <8 x float> %output14 = alloca <8 x float> %output13 = alloca <8 x float> %output12 = alloca <8 x float> %output11 = alloca <8 x float> %output = alloca <8 x float> %looplimiter = alloca i32 %fs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 2 %num_fs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 3 %0 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 9 %pRawAttribs = load float*, float** %0 %1 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 10 %pPerspAttribs = load float*, float** %1 %2 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 6, i32 1 %i = load <8 x float>, <8 x float>* %2 %3 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 7, i32 1 %j = load <8 x float>, <8 x float>* %3 %4 = getelementptr float, float* %pRawAttribs, i32 0 %5 = load float, float* %4 %.splatinsert = insertelement <8 x float> undef, float %5, i32 0 %.splat = shufflevector <8 x float> %.splatinsert, <8 x float> undef, <8 x i32> zeroinitializer %6 = getelementptr float, float* %pRawAttribs, i32 4 %7 = load float, float* %6 %.splatinsert1 = insertelement <8 x float> undef, float %7, i32 0 %.splat2 = shufflevector <8 x float> %.splatinsert1, <8 x float> undef, <8 x i32> zeroinitializer %8 = getelementptr float, float* %pRawAttribs, i32 8 %9 = load float, float* %8 %.splatinsert3 = insertelement <8 x float> undef, float %9, i32 0 %.splat4 = shufflevector <8 x float> %.splatinsert3, <8 x float> undef, <8 x i32> zeroinitializer %10 = fsub <8 x float> , %i %11 = fsub <8 x float> %10, %j %12 = fmul <8 x float> %11, %.splat4 %13 = fmul <8 x float> %.splat, %i %14 = fmul <8 x float> %.splat2, %j %15 = fadd <8 x float> %13, %14 %16 = fadd <8 x float> %15, %12 %17 = getelementptr float, float* %pRawAttribs, i32 1 %18 = load float, float* %17 %.splatinsert5 = insertelement <8 x float> undef, float %18, i32 0 %.splat6 = shufflevector <8 x float> %.splatinsert5, <8 x float> undef, <8 x i32> zeroinitializer %19 = getelementptr float, float* %pRawAttribs, i32 5 %20 = load float, float* %19 %.splatinsert7 = insertelement <8 x float> undef, float %20, i32 0 %.splat8 = shufflevector <8 x float> %.splatinsert7, <8 x float> undef, <8 x i32> zeroinitializer %21 = getelementptr float, float* %pRawAttribs, i32 9 %22 = load float, float* %21 %.splatinsert9 = insertelement <8 x float> undef, float %22, i32 0 %.splat10 = shufflevector <8 x float> %.splatinsert9, <8 x float> undef, <8 x i32> zeroinitializer %23 = fsub <8 x float> , %i %24 = fsub <8 x float> %23, %j %25 = fmul <8 x float> %24, %.splat10 %26 = fmul <8 x float> %.splat6, %i %27 = fmul <8 x float> %.splat8, %j %28 = fadd <8 x float> %26, %27 %29 = fadd <8 x float> %28, %25 store i32 0, i32* %looplimiter store i32 65535, i32* %looplimiter store <8 x float> zeroinitializer, <8 x float>* %output store <8 x float> zeroinitializer, <8 x float>* %output11 store <8 x float> zeroinitializer, <8 x float>* %output12 store <8 x float> zeroinitializer, <8 x float>* %output13 store <8 x float> zeroinitializer, <8 x float>* %output14 store <8 x float> zeroinitializer, <8 x float>* %output15 store <8 x float> zeroinitializer, <8 x float>* %output16 store <8 x float> zeroinitializer, <8 x float>* %output17 store <8 x float> zeroinitializer, <8 x float>* %output store <8 x float> zeroinitializer, <8 x float>* %output11 store <8 x float> zeroinitializer, <8 x float>* %output12 store <8 x float> , <8 x float>* %output13 %30 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 0 %context.texture0.width = load i32, i32* %30 %context.texture0.row_stride = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 6 %context.texture0.img_stride = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 7 %31 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 5 %context.texture0.base_ptr = load i8*, i8** %31 %context.texture0.mip_offsets = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 8 %32 = insertelement <4 x i32> undef, i32 %context.texture0.width, i32 0 %33 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 1 %context.texture0.height = load i32, i32* %33 %34 = insertelement <4 x i32> %32, i32 %context.texture0.height, i32 1 %35 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 3 %context.texture0.first_level = load i32, i32* %35 store <8 x float> zeroinitializer, <8 x float>* %sampler0_texel_x_var store <8 x float> zeroinitializer, <8 x float>* %sampler0_texel_y_var store <8 x float> zeroinitializer, <8 x float>* %sampler0_texel_z_var store <8 x float> zeroinitializer, <8 x float>* %sampler0_texel_w_var %36 = insertelement <4 x i32> undef, i32 %context.texture0.first_level, i32 0 %37 = shufflevector <4 x i32> %36, <4 x i32> undef, <4 x i32> zeroinitializer %minify = lshr <4 x i32> %34, %37 %38 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify, <4 x i32> ) %39 = getelementptr [16 x i32], [16 x i32]* %context.texture0.row_stride, i32 0, i32 %context.texture0.first_level %40 = load i32, i32* %39 %41 = insertelement <8 x i32> undef, i32 %40, i32 0 %42 = shufflevector <8 x i32> %41, <8 x i32> undef, <8 x i32> zeroinitializer %43 = getelementptr [16 x i32], [16 x i32]* %context.texture0.mip_offsets, i32 0, i32 %context.texture0.first_level %44 = load i32, i32* %43 %45 = getelementptr i8, i8* %context.texture0.base_ptr, i32 %44 %46 = shufflevector <4 x i32> %38, <4 x i32> undef, <8 x i32> zeroinitializer %47 = shufflevector <4 x i32> %38, <4 x i32> undef, <8 x i32> %48 = sitofp <4 x i32> %38 to <4 x float> %49 = shufflevector <4 x float> %48, <4 x float> undef, <8 x i32> zeroinitializer %50 = shufflevector <4 x float> %48, <4 x float> undef, <8 x i32> %51 = sub <8 x i32> %46, %52 = fmul <8 x float> %16, %49 %53 = fptosi <8 x float> %52 to <8 x i32> %54 = shufflevector <8 x i32> %53, <8 x i32> %53, <4 x i32> %55 = shufflevector <8 x i32> %51, <8 x i32> %51, <4 x i32> %56 = call <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32> %54, <4 x i32> %55) %57 = shufflevector <8 x i32> %53, <8 x i32> %53, <4 x i32> %58 = shufflevector <8 x i32> %51, <8 x i32> %51, <4 x i32> %59 = call <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32> %57, <4 x i32> %58) %60 = shufflevector <4 x i32> %56, <4 x i32> %59, <8 x i32> %61 = shufflevector <8 x i32> %60, <8 x i32> %60, <4 x i32> %62 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %61, <4 x i32> zeroinitializer) %63 = shufflevector <8 x i32> %60, <8 x i32> %60, <4 x i32> %64 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %63, <4 x i32> zeroinitializer) %tex.x.wrapped = shufflevector <4 x i32> %62, <4 x i32> %64, <8 x i32> %65 = sub <8 x i32> %47, %66 = fmul <8 x float> %29, %50 %67 = fptosi <8 x float> %66 to <8 x i32> %68 = shufflevector <8 x i32> %67, <8 x i32> %67, <4 x i32> %69 = shufflevector <8 x i32> %65, <8 x i32> %65, <4 x i32> %70 = call <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32> %68, <4 x i32> %69) %71 = shufflevector <8 x i32> %67, <8 x i32> %67, <4 x i32> %72 = shufflevector <8 x i32> %65, <8 x i32> %65, <4 x i32> %73 = call <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32> %71, <4 x i32> %72) %74 = shufflevector <4 x i32> %70, <4 x i32> %73, <8 x i32> %75 = shufflevector <8 x i32> %74, <8 x i32> %74, <4 x i32> %76 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %75, <4 x i32> zeroinitializer) %77 = shufflevector <8 x i32> %74, <8 x i32> %74, <4 x i32> %78 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %77, <4 x i32> zeroinitializer) %tex.y.wrapped = shufflevector <4 x i32> %76, <4 x i32> %78, <8 x i32> %79 = mul <8 x i32> %tex.x.wrapped, %80 = mul <8 x i32> %tex.y.wrapped, %42 %81 = add <8 x i32> %79, %80 %82 = extractelement <8 x i32> %81, i32 0 %83 = getelementptr i8, i8* %45, i32 %82 %84 = bitcast i8* %83 to i32* %85 = load i32, i32* %84 %86 = insertelement <8 x i32> undef, i32 %85, i32 0 %87 = extractelement <8 x i32> %81, i32 1 %88 = getelementptr i8, i8* %45, i32 %87 %89 = bitcast i8* %88 to i32* %90 = load i32, i32* %89 %91 = insertelement <8 x i32> %86, i32 %90, i32 1 %92 = extractelement <8 x i32> %81, i32 2 %93 = getelementptr i8, i8* %45, i32 %92 %94 = bitcast i8* %93 to i32* %95 = load i32, i32* %94 %96 = insertelement <8 x i32> %91, i32 %95, i32 2 %97 = extractelement <8 x i32> %81, i32 3 %98 = getelementptr i8, i8* %45, i32 %97 %99 = bitcast i8* %98 to i32* %100 = load i32, i32* %99 %101 = insertelement <8 x i32> %96, i32 %100, i32 3 %102 = extractelement <8 x i32> %81, i32 4 %103 = getelementptr i8, i8* %45, i32 %102 %104 = bitcast i8* %103 to i32* %105 = load i32, i32* %104 %106 = insertelement <8 x i32> %101, i32 %105, i32 4 %107 = extractelement <8 x i32> %81, i32 5 %108 = getelementptr i8, i8* %45, i32 %107 %109 = bitcast i8* %108 to i32* %110 = load i32, i32* %109 %111 = insertelement <8 x i32> %106, i32 %110, i32 5 %112 = extractelement <8 x i32> %81, i32 6 %113 = getelementptr i8, i8* %45, i32 %112 %114 = bitcast i8* %113 to i32* %115 = load i32, i32* %114 %116 = insertelement <8 x i32> %111, i32 %115, i32 6 %117 = extractelement <8 x i32> %81, i32 7 %118 = getelementptr i8, i8* %45, i32 %117 %119 = bitcast i8* %118 to i32* %120 = load i32, i32* %119 %121 = insertelement <8 x i32> %116, i32 %120, i32 7 %122 = and <8 x i32> %121, %123 = sitofp <8 x i32> %122 to <8 x float> %124 = fmul <8 x float> %123, store <8 x float> %124, <8 x float>* %sampler0_texel_x_var store <8 x float> %124, <8 x float>* %sampler0_texel_y_var store <8 x float> %124, <8 x float>* %sampler0_texel_z_var store <8 x float> , <8 x float>* %sampler0_texel_w_var %sampler0_texel_x = load <8 x float>, <8 x float>* %sampler0_texel_x_var %sampler0_texel_y = load <8 x float>, <8 x float>* %sampler0_texel_y_var %sampler0_texel_z = load <8 x float>, <8 x float>* %sampler0_texel_z_var %sampler0_texel_w = load <8 x float>, <8 x float>* %sampler0_texel_w_var store <8 x float> %sampler0_texel_z, <8 x float>* %output16 %125 = load <8 x float>, <8 x float>* %output %126 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 0 store <8 x float> %125, <8 x float>* %126 %127 = load <8 x float>, <8 x float>* %output11 %128 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 1 store <8 x float> %127, <8 x float>* %128 %129 = load <8 x float>, <8 x float>* %output12 %130 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 2 store <8 x float> %129, <8 x float>* %130 %131 = load <8 x float>, <8 x float>* %output13 %132 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 3 store <8 x float> %131, <8 x float>* %132 %133 = load <8 x float>, <8 x float>* %output16 %134 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 2 store <8 x float> %133, <8 x float>* %134 ret void } FS: 0: pushq %rbp 1: movq %rsp, %rbp 4: pushq %rbx 5: andq $-32, %rsp 9: subq $32, %rsp 13: movq 768(%rsi), %rax 20: vmovaps 416(%rsi), %ymm1 28: vmovaps 544(%rsi), %ymm2 36: vbroadcastss (%rax), %ymm3 41: vbroadcastss 16(%rax), %ymm4 47: vbroadcastss 32(%rax), %ymm5 53: movabsq $140164720619520, %rcx 63: vbroadcastss (%rcx), %ymm9 68: vsubps %ymm1, %ymm9, %ymm6 72: vsubps %ymm2, %ymm6, %ymm6 76: vmulps %ymm5, %ymm6, %ymm5 80: vmulps %ymm3, %ymm1, %ymm3 84: vmulps %ymm4, %ymm2, %ymm4 88: vaddps %ymm4, %ymm3, %ymm3 92: vaddps %ymm5, %ymm3, %ymm3 96: vbroadcastss 4(%rax), %ymm4 102: vbroadcastss 20(%rax), %ymm5 108: vbroadcastss 36(%rax), %ymm7 114: vmulps %ymm7, %ymm6, %ymm6 118: vmulps %ymm4, %ymm1, %ymm1 122: vmulps %ymm5, %ymm2, %ymm2 126: vaddps %ymm2, %ymm1, %ymm1 130: vaddps %ymm6, %ymm1, %ymm2 134: vmovq 8832(%rdi), %xmm1 142: movslq 8844(%rdi), %rax 149: vmovd %eax, %xmm4 153: vpsrld %xmm4, %xmm1, %xmm1 157: movabsq $140164720619524, %rcx 167: movl (%rcx), %ecx 169: vmovd %ecx, %xmm4 173: vpbroadcastd %xmm4, %xmm5 178: vpmaxsd %xmm5, %xmm1, %xmm5 183: vpbroadcastd 8864(%rdi,%rax,4), %ymm1 193: movslq 8992(%rdi,%rax,4), %rax 201: addq 8856(%rdi), %rax 208: vpbroadcastd %xmm5, %ymm6 213: vpbroadcastd %xmm4, %ymm4 218: vpermd %ymm5, %ymm4, %ymm7 223: vcvtdq2ps %xmm5, %xmm5 227: vbroadcastss %xmm5, %ymm8 232: vpermps %ymm5, %ymm4, %ymm4 237: vpcmpeqd %ymm5, %ymm5, %ymm5 241: vpaddd %ymm5, %ymm6, %ymm6 245: vmulps %ymm8, %ymm3, %ymm3 250: vcvttps2dq %ymm3, %ymm3 254: vpminsd %xmm6, %xmm3, %xmm0 259: vextracti128 $1, %ymm3, %xmm3 265: vextracti128 $1, %ymm6, %xmm6 271: vpminsd %xmm6, %xmm3, %xmm3 276: vpxor %xmm6, %xmm6, %xmm6 280: vpmaxsd %xmm6, %xmm0, %xmm0 285: vpmaxsd %xmm6, %xmm3, %xmm3 290: vinserti128 $1, %xmm3, %ymm0, %ymm0 296: vpaddd %ymm5, %ymm7, %ymm3 300: vmulps %ymm4, %ymm2, %ymm2 304: vcvttps2dq %ymm2, %ymm2 308: vpminsd %xmm3, %xmm2, %xmm4 313: vextracti128 $1, %ymm2, %xmm2 319: vextracti128 $1, %ymm3, %xmm3 325: vpminsd %xmm3, %xmm2, %xmm2 330: vpmaxsd %xmm6, %xmm4, %xmm3 335: vpmaxsd %xmm6, %xmm2, %xmm2 340: vinserti128 $1, %xmm2, %ymm3, %ymm2 346: vpslld $2, %ymm0, %ymm0 351: vpmulld %ymm1, %ymm2, %ymm1 356: vpaddd %ymm0, %ymm1, %ymm0 360: vpextrq $1, %xmm0, %r10 366: vmovq %xmm0, %rdx 371: movslq %edx, %r8 374: sarq $32, %rdx 378: movslq %r10d, %r9 381: sarq $32, %r10 385: vextracti128 $1, %ymm0, %xmm0 391: vpextrq $1, %xmm0, %rdi 397: vmovq %xmm0, %rcx 402: movslq %ecx, %r11 405: sarq $32, %rcx 409: movslq %edi, %rbx 412: sarq $32, %rdi 416: vmovd (%r11,%rax), %xmm0 422: vpinsrd $1, (%rcx,%rax), %xmm0, %xmm0 429: vpinsrd $2, (%rbx,%rax), %xmm0, %xmm0 436: vpinsrd $3, (%rdi,%rax), %xmm0, %xmm0 443: vmovd (%r8,%rax), %xmm1 449: vpinsrd $1, (%rdx,%rax), %xmm1, %xmm1 456: vpinsrd $2, (%r9,%rax), %xmm1, %xmm1 463: vpinsrd $3, (%r10,%rax), %xmm1, %xmm1 470: vinserti128 $1, %xmm0, %ymm1, %ymm0 476: movabsq $140164720619528, %rax 486: vpbroadcastd (%rax), %ymm1 491: vpand %ymm1, %ymm0, %ymm0 495: vcvtdq2ps %ymm0, %ymm0 499: movabsq $140164720619532, %rax 509: vbroadcastss (%rax), %ymm1 514: vmulps %ymm1, %ymm0, %ymm0 518: vxorps %ymm1, %ymm1, %ymm1 522: vmovaps %ymm1, 832(%rsi) 530: vmovaps %ymm1, 864(%rsi) 538: vmovaps %ymm1, 896(%rsi) 546: vmovaps %ymm9, 928(%rsi) 554: vmovaps %ymm0, 256(%rsi) 562: leaq -8(%rbp), %rsp 566: popq %rbx 567: popq %rbp 568: vzeroupper 571: retq frag shader 0x7f7aa4620000 fetch shader 0x7f7aa461e000 FRAG DCL IN[0], GENERIC[9], PERSPECTIVE DCL OUT[0], COLOR DCL OUT[1], COLOR[1] DCL SAMP[0] DCL SVIEW[0], 2D, FLOAT DCL CONST[0] DCL TEMP[0..1], LOCAL IMM[0] FLT32 { 1.0000, -1.0000, 0.0000, 0.0000} 0: MOV TEMP[0].xy, IN[0].xyyy 1: TEX TEMP[0].x, TEMP[0], SAMP[0], 2D 2: FSEQ TEMP[1].x, TEMP[0].xxxx, CONST[0].xxxx 3: AND TEMP[1].x, TEMP[1].xxxx, IMM[0].xxxx 4: KILL_IF -TEMP[1].xxxx 5: MOV TEMP[1].xzw, IMM[0].yyzz 6: MOV TEMP[1].y, TEMP[0].xxxx 7: MOV OUT[0], TEMP[1] 8: MOV OUT[1], TEMP[1] 9: END TEX[0] = IN[0].x IN[0].y _ _, RES[0], SAMP[0], 2D OUT[0].x = -1.000000 OUT[0].z = 0.000000 OUT[0].w = 0.000000 OUT[1].x = -1.000000 OUT[1].z = 0.000000 OUT[1].w = 0.000000 VERT PROPERTY NEXT_SHADER 0 DCL IN[0] DCL IN[1] DCL OUT[0], POSITION DCL OUT[1], GENERIC[9] DCL TEMP[0], LOCAL 0: MOV TEMP[0].xy, IN[1].xyxx 1: MOV OUT[0], IN[0] 2: MOV OUT[1], TEMP[0] 3: END OUT[0].x = IN[0].x OUT[0].y = IN[0].y OUT[0].z = IN[0].z OUT[0].w = IN[0].w OUT[1].x = IN[1].x OUT[1].y = IN[1].y ; Function Attrs: alignstack(32) define void @VS({ [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx) #0 { entry: %temp10 = alloca <8 x float> %temp9 = alloca <8 x float> %temp8 = alloca <8 x float> %temp = alloca <8 x float> %output7 = alloca <8 x float> %output6 = alloca <8 x float> %output5 = alloca <8 x float> %output4 = alloca <8 x float> %output3 = alloca <8 x float> %output2 = alloca <8 x float> %output1 = alloca <8 x float> %output = alloca <8 x float> %looplimiter = alloca i32 %vs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 0 %num_vs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 1 %0 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 0 %1 = load { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }** %0 %2 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 0 %3 = load <8 x float>, <8 x float>* %2 %4 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 1 %5 = load <8 x float>, <8 x float>* %4 %6 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 2 %7 = load <8 x float>, <8 x float>* %6 %8 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 3 %9 = load <8 x float>, <8 x float>* %8 %10 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 0 %11 = load <8 x float>, <8 x float>* %10 %12 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 1 %13 = load <8 x float>, <8 x float>* %12 %14 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 2 %15 = load i32, i32* %14 %16 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 3 %17 = load <8 x i32>, <8 x i32>* %16 store i32 0, i32* %looplimiter store i32 65535, i32* %looplimiter store <8 x float> zeroinitializer, <8 x float>* %output store <8 x float> zeroinitializer, <8 x float>* %output1 store <8 x float> zeroinitializer, <8 x float>* %output2 store <8 x float> zeroinitializer, <8 x float>* %output3 store <8 x float> zeroinitializer, <8 x float>* %output4 store <8 x float> zeroinitializer, <8 x float>* %output5 store <8 x float> zeroinitializer, <8 x float>* %output6 store <8 x float> zeroinitializer, <8 x float>* %output7 store <8 x float> zeroinitializer, <8 x float>* %temp store <8 x float> zeroinitializer, <8 x float>* %temp8 store <8 x float> zeroinitializer, <8 x float>* %temp9 store <8 x float> zeroinitializer, <8 x float>* %temp10 store <8 x float> %11, <8 x float>* %temp store <8 x float> %13, <8 x float>* %temp8 store <8 x float> %3, <8 x float>* %output store <8 x float> %5, <8 x float>* %output1 store <8 x float> %7, <8 x float>* %output2 store <8 x float> %9, <8 x float>* %output3 %18 = load <8 x float>, <8 x float>* %temp %19 = load <8 x float>, <8 x float>* %temp8 %20 = load <8 x float>, <8 x float>* %temp9 %21 = load <8 x float>, <8 x float>* %temp10 store <8 x float> %18, <8 x float>* %output4 store <8 x float> %19, <8 x float>* %output5 store <8 x float> %20, <8 x float>* %output6 store <8 x float> %21, <8 x float>* %output7 %22 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 1 %23 = load { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }** %22 %24 = load <8 x float>, <8 x float>* %output %25 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 0, i32 0 store <8 x float> %24, <8 x float>* %25 %26 = load <8 x float>, <8 x float>* %output4 %27 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 1, i32 0 store <8 x float> %26, <8 x float>* %27 %28 = load <8 x float>, <8 x float>* %output1 %29 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 0, i32 1 store <8 x float> %28, <8 x float>* %29 %30 = load <8 x float>, <8 x float>* %output5 %31 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 1, i32 1 store <8 x float> %30, <8 x float>* %31 %32 = load <8 x float>, <8 x float>* %output2 %33 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 0, i32 2 store <8 x float> %32, <8 x float>* %33 %34 = load <8 x float>, <8 x float>* %output6 %35 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 1, i32 2 store <8 x float> %34, <8 x float>* %35 %36 = load <8 x float>, <8 x float>* %output3 %37 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 0, i32 3 store <8 x float> %36, <8 x float>* %37 %38 = load <8 x float>, <8 x float>* %output7 %39 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %23, i32 0, i32 0, i32 1, i32 3 store <8 x float> %38, <8 x float>* %39 ret void } VS: 0: pushq %rbp 1: movq %rsp, %rbp 4: andq $-32, %rsp 8: subq $32, %rsp 12: movq (%rsi), %rax 15: movq 8(%rsi), %rcx 19: vmovaps (%rax), %ymm0 23: vmovaps 32(%rax), %ymm1 28: vmovaps 64(%rax), %ymm2 33: vmovaps 96(%rax), %ymm3 38: vmovaps 128(%rax), %ymm4 46: vmovaps 160(%rax), %ymm5 54: vmovaps %ymm0, (%rcx) 58: vmovaps %ymm4, 128(%rcx) 66: vmovaps %ymm1, 32(%rcx) 71: vmovaps %ymm5, 160(%rcx) 79: vmovaps %ymm2, 64(%rcx) 84: vxorps %ymm0, %ymm0, %ymm0 88: vmovaps %ymm0, 192(%rcx) 96: vmovaps %ymm3, 96(%rcx) 101: vmovaps %ymm0, 224(%rcx) 109: movq %rbp, %rsp 112: popq %rbp 113: vzeroupper 116: retq vert shader 0x7f7aa461c000 ; Function Attrs: alignstack(32) define void @FS({ [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx) #0 { entry: %sampler0_texel_w_var = alloca <8 x float> %sampler0_texel_z_var = alloca <8 x float> %sampler0_texel_y_var = alloca <8 x float> %sampler0_texel_x_var = alloca <8 x float> %temp24 = alloca <8 x float> %temp23 = alloca <8 x float> %temp22 = alloca <8 x float> %temp21 = alloca <8 x float> %temp20 = alloca <8 x float> %temp19 = alloca <8 x float> %temp18 = alloca <8 x float> %temp = alloca <8 x float> %output17 = alloca <8 x float> %output16 = alloca <8 x float> %output15 = alloca <8 x float> %output14 = alloca <8 x float> %output13 = alloca <8 x float> %output12 = alloca <8 x float> %output11 = alloca <8 x float> %output = alloca <8 x float> %looplimiter = alloca i32 %execution_mask = alloca <8 x i32> %fs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 2 %num_fs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 3 %0 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 9 %pRawAttribs = load float*, float** %0 %1 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 10 %pPerspAttribs = load float*, float** %1 %2 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 6, i32 1 %i = load <8 x float>, <8 x float>* %2 %3 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 7, i32 1 %j = load <8 x float>, <8 x float>* %3 %4 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 8, i32 1 %5 = load <8 x float>, <8 x float>* %4 %w = fdiv <8 x float> , %5 %6 = getelementptr float, float* %pPerspAttribs, i32 0 %7 = load float, float* %6 %.splatinsert = insertelement <8 x float> undef, float %7, i32 0 %.splat = shufflevector <8 x float> %.splatinsert, <8 x float> undef, <8 x i32> zeroinitializer %8 = getelementptr float, float* %pPerspAttribs, i32 4 %9 = load float, float* %8 %.splatinsert1 = insertelement <8 x float> undef, float %9, i32 0 %.splat2 = shufflevector <8 x float> %.splatinsert1, <8 x float> undef, <8 x i32> zeroinitializer %10 = getelementptr float, float* %pPerspAttribs, i32 8 %11 = load float, float* %10 %.splatinsert3 = insertelement <8 x float> undef, float %11, i32 0 %.splat4 = shufflevector <8 x float> %.splatinsert3, <8 x float> undef, <8 x i32> zeroinitializer %12 = fsub <8 x float> , %i %13 = fsub <8 x float> %12, %j %14 = fmul <8 x float> %13, %.splat4 %15 = fmul <8 x float> %.splat, %i %16 = fmul <8 x float> %.splat2, %j %17 = fadd <8 x float> %15, %16 %18 = fadd <8 x float> %17, %14 %19 = fmul <8 x float> %18, %w %20 = getelementptr float, float* %pPerspAttribs, i32 1 %21 = load float, float* %20 %.splatinsert5 = insertelement <8 x float> undef, float %21, i32 0 %.splat6 = shufflevector <8 x float> %.splatinsert5, <8 x float> undef, <8 x i32> zeroinitializer %22 = getelementptr float, float* %pPerspAttribs, i32 5 %23 = load float, float* %22 %.splatinsert7 = insertelement <8 x float> undef, float %23, i32 0 %.splat8 = shufflevector <8 x float> %.splatinsert7, <8 x float> undef, <8 x i32> zeroinitializer %24 = getelementptr float, float* %pPerspAttribs, i32 9 %25 = load float, float* %24 %.splatinsert9 = insertelement <8 x float> undef, float %25, i32 0 %.splat10 = shufflevector <8 x float> %.splatinsert9, <8 x float> undef, <8 x i32> zeroinitializer %26 = fsub <8 x float> , %i %27 = fsub <8 x float> %26, %j %28 = fmul <8 x float> %27, %.splat10 %29 = fmul <8 x float> %.splat6, %i %30 = fmul <8 x float> %.splat8, %j %31 = fadd <8 x float> %29, %30 %32 = fadd <8 x float> %31, %28 %33 = fmul <8 x float> %32, %w %34 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 3 %activeMask = load <8 x i32>, <8 x i32>* %34 store <8 x i32> zeroinitializer, <8 x i32>* %execution_mask store <8 x i32> %activeMask, <8 x i32>* %execution_mask store i32 0, i32* %looplimiter store i32 65535, i32* %looplimiter store <8 x float> zeroinitializer, <8 x float>* %output store <8 x float> zeroinitializer, <8 x float>* %output11 store <8 x float> zeroinitializer, <8 x float>* %output12 store <8 x float> zeroinitializer, <8 x float>* %output13 store <8 x float> zeroinitializer, <8 x float>* %output14 store <8 x float> zeroinitializer, <8 x float>* %output15 store <8 x float> zeroinitializer, <8 x float>* %output16 store <8 x float> zeroinitializer, <8 x float>* %output17 %"&fs_constants[]" = getelementptr [32 x float*], [32 x float*]* %fs_constants, i32 0, i32 0 %"fs_constants[]" = load float*, float** %"&fs_constants[]" %"&num_fs_constants[]" = getelementptr [32 x i32], [32 x i32]* %num_fs_constants, i32 0, i32 0 %"num_fs_constants[]" = load i32, i32* %"&num_fs_constants[]" store <8 x float> zeroinitializer, <8 x float>* %temp store <8 x float> zeroinitializer, <8 x float>* %temp18 store <8 x float> zeroinitializer, <8 x float>* %temp19 store <8 x float> zeroinitializer, <8 x float>* %temp20 store <8 x float> zeroinitializer, <8 x float>* %temp21 store <8 x float> zeroinitializer, <8 x float>* %temp22 store <8 x float> zeroinitializer, <8 x float>* %temp23 store <8 x float> zeroinitializer, <8 x float>* %temp24 store <8 x float> %19, <8 x float>* %temp store <8 x float> %33, <8 x float>* %temp18 %35 = load <8 x float>, <8 x float>* %temp %36 = load <8 x float>, <8 x float>* %temp18 %37 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 0 %context.texture0.width = load i32, i32* %37 %context.texture0.row_stride = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 6 %context.texture0.img_stride = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 7 %38 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 5 %context.texture0.base_ptr = load i8*, i8** %38 %context.texture0.mip_offsets = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 8 %39 = insertelement <4 x i32> undef, i32 %context.texture0.width, i32 0 %40 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 1 %context.texture0.height = load i32, i32* %40 %41 = insertelement <4 x i32> %39, i32 %context.texture0.height, i32 1 %42 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 3 %context.texture0.first_level = load i32, i32* %42 store <8 x float> zeroinitializer, <8 x float>* %sampler0_texel_x_var store <8 x float> zeroinitializer, <8 x float>* %sampler0_texel_y_var store <8 x float> zeroinitializer, <8 x float>* %sampler0_texel_z_var store <8 x float> zeroinitializer, <8 x float>* %sampler0_texel_w_var %43 = insertelement <4 x i32> undef, i32 %context.texture0.first_level, i32 0 %44 = shufflevector <4 x i32> %43, <4 x i32> undef, <4 x i32> zeroinitializer %minify = lshr <4 x i32> %41, %44 %45 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify, <4 x i32> ) %46 = getelementptr [16 x i32], [16 x i32]* %context.texture0.row_stride, i32 0, i32 %context.texture0.first_level %47 = load i32, i32* %46 %48 = insertelement <8 x i32> undef, i32 %47, i32 0 %49 = shufflevector <8 x i32> %48, <8 x i32> undef, <8 x i32> zeroinitializer %50 = getelementptr [16 x i32], [16 x i32]* %context.texture0.mip_offsets, i32 0, i32 %context.texture0.first_level %51 = load i32, i32* %50 %52 = getelementptr i8, i8* %context.texture0.base_ptr, i32 %51 %53 = shufflevector <4 x i32> %45, <4 x i32> undef, <8 x i32> zeroinitializer %54 = shufflevector <4 x i32> %45, <4 x i32> undef, <8 x i32> %55 = sitofp <4 x i32> %45 to <4 x float> %56 = shufflevector <4 x float> %55, <4 x float> undef, <8 x i32> zeroinitializer %57 = shufflevector <4 x float> %55, <4 x float> undef, <8 x i32> %58 = sub <8 x i32> %53, %59 = call <8 x float> @llvm.floor.v8f32(<8 x float> %35) %60 = fsub <8 x float> %35, %59 %61 = call <8 x float> @llvm.x86.avx.min.ps.256(<8 x float> %60, <8 x float> ) %62 = fmul <8 x float> %61, %56 %tex.x.wrapped = fptosi <8 x float> %62 to <8 x i32> %63 = sub <8 x i32> %54, %64 = call <8 x float> @llvm.floor.v8f32(<8 x float> %36) %65 = fsub <8 x float> %36, %64 %66 = call <8 x float> @llvm.x86.avx.min.ps.256(<8 x float> %65, <8 x float> ) %67 = fmul <8 x float> %66, %57 %tex.y.wrapped = fptosi <8 x float> %67 to <8 x i32> %68 = mul <8 x i32> %tex.x.wrapped, %69 = mul <8 x i32> %tex.y.wrapped, %49 %70 = add <8 x i32> %68, %69 %71 = extractelement <8 x i32> %70, i32 0 %72 = getelementptr i8, i8* %52, i32 %71 %73 = bitcast i8* %72 to i32* %74 = load i32, i32* %73 %75 = insertelement <8 x i32> undef, i32 %74, i32 0 %76 = extractelement <8 x i32> %70, i32 1 %77 = getelementptr i8, i8* %52, i32 %76 %78 = bitcast i8* %77 to i32* %79 = load i32, i32* %78 %80 = insertelement <8 x i32> %75, i32 %79, i32 1 %81 = extractelement <8 x i32> %70, i32 2 %82 = getelementptr i8, i8* %52, i32 %81 %83 = bitcast i8* %82 to i32* %84 = load i32, i32* %83 %85 = insertelement <8 x i32> %80, i32 %84, i32 2 %86 = extractelement <8 x i32> %70, i32 3 %87 = getelementptr i8, i8* %52, i32 %86 %88 = bitcast i8* %87 to i32* %89 = load i32, i32* %88 %90 = insertelement <8 x i32> %85, i32 %89, i32 3 %91 = extractelement <8 x i32> %70, i32 4 %92 = getelementptr i8, i8* %52, i32 %91 %93 = bitcast i8* %92 to i32* %94 = load i32, i32* %93 %95 = insertelement <8 x i32> %90, i32 %94, i32 4 %96 = extractelement <8 x i32> %70, i32 5 %97 = getelementptr i8, i8* %52, i32 %96 %98 = bitcast i8* %97 to i32* %99 = load i32, i32* %98 %100 = insertelement <8 x i32> %95, i32 %99, i32 5 %101 = extractelement <8 x i32> %70, i32 6 %102 = getelementptr i8, i8* %52, i32 %101 %103 = bitcast i8* %102 to i32* %104 = load i32, i32* %103 %105 = insertelement <8 x i32> %100, i32 %104, i32 6 %106 = extractelement <8 x i32> %70, i32 7 %107 = getelementptr i8, i8* %52, i32 %106 %108 = bitcast i8* %107 to i32* %109 = load i32, i32* %108 %110 = insertelement <8 x i32> %105, i32 %109, i32 7 %111 = and <8 x i32> %110, %112 = sitofp <8 x i32> %111 to <8 x float> %113 = fmul <8 x float> %112, store <8 x float> %113, <8 x float>* %sampler0_texel_x_var store <8 x float> %113, <8 x float>* %sampler0_texel_y_var store <8 x float> %113, <8 x float>* %sampler0_texel_z_var store <8 x float> , <8 x float>* %sampler0_texel_w_var %sampler0_texel_x = load <8 x float>, <8 x float>* %sampler0_texel_x_var %sampler0_texel_y = load <8 x float>, <8 x float>* %sampler0_texel_y_var %sampler0_texel_z = load <8 x float>, <8 x float>* %sampler0_texel_z_var %sampler0_texel_w = load <8 x float>, <8 x float>* %sampler0_texel_w_var store <8 x float> %sampler0_texel_x, <8 x float>* %temp %114 = load <8 x float>, <8 x float>* %temp %115 = getelementptr float, float* %"fs_constants[]", i32 0 %116 = load float, float* %115 %117 = insertelement <8 x float> undef, float %116, i32 0 %118 = shufflevector <8 x float> %117, <8 x float> undef, <8 x i32> zeroinitializer %119 = fcmp oeq <8 x float> %114, %118 %120 = sext <8 x i1> %119 to <8 x i32> %121 = bitcast <8 x i32> %120 to <8 x float> store <8 x float> %121, <8 x float>* %temp21 %122 = load <8 x float>, <8 x float>* %temp21 %123 = bitcast <8 x float> %122 to <8 x i32> %124 = and <8 x i32> %123, %125 = bitcast <8 x i32> %124 to <8 x float> store <8 x float> %125, <8 x float>* %temp21 %126 = load <8 x float>, <8 x float>* %temp21 %127 = fsub <8 x float> , %126 %128 = load <8 x float>, <8 x float>* %temp21 %129 = fsub <8 x float> , %128 %130 = load <8 x float>, <8 x float>* %temp21 %131 = fsub <8 x float> , %130 %132 = load <8 x float>, <8 x float>* %temp21 %133 = fsub <8 x float> , %132 %134 = load <8 x float>, <8 x float>* %temp21 %135 = fsub <8 x float> , %134 %136 = fcmp uge <8 x float> %135, zeroinitializer %137 = sext <8 x i1> %136 to <8 x i32> %138 = load <8 x i32>, <8 x i32>* %execution_mask %139 = and <8 x i32> %138, %137 store <8 x i32> %139, <8 x i32>* %execution_mask store <8 x float> , <8 x float>* %temp21 store <8 x float> zeroinitializer, <8 x float>* %temp23 store <8 x float> zeroinitializer, <8 x float>* %temp24 %140 = load <8 x float>, <8 x float>* %temp store <8 x float> %140, <8 x float>* %temp22 %141 = load <8 x float>, <8 x float>* %temp21 %142 = load <8 x float>, <8 x float>* %temp22 %143 = load <8 x float>, <8 x float>* %temp23 %144 = load <8 x float>, <8 x float>* %temp24 store <8 x float> %141, <8 x float>* %output store <8 x float> %142, <8 x float>* %output11 store <8 x float> %143, <8 x float>* %output12 store <8 x float> %144, <8 x float>* %output13 %145 = load <8 x float>, <8 x float>* %temp21 %146 = load <8 x float>, <8 x float>* %temp22 %147 = load <8 x float>, <8 x float>* %temp23 %148 = load <8 x float>, <8 x float>* %temp24 store <8 x float> %145, <8 x float>* %output14 store <8 x float> %146, <8 x float>* %output15 store <8 x float> %147, <8 x float>* %output16 store <8 x float> %148, <8 x float>* %output17 %149 = load <8 x float>, <8 x float>* %output %150 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 0 store <8 x float> %149, <8 x float>* %150 %151 = load <8 x float>, <8 x float>* %output11 %152 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 1 store <8 x float> %151, <8 x float>* %152 %153 = load <8 x float>, <8 x float>* %output12 %154 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 2 store <8 x float> %153, <8 x float>* %154 %155 = load <8 x float>, <8 x float>* %output13 %156 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 3 store <8 x float> %155, <8 x float>* %156 %157 = load <8 x float>, <8 x float>* %output14 %158 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 1, i32 0 store <8 x float> %157, <8 x float>* %158 %159 = load <8 x float>, <8 x float>* %output15 %160 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 1, i32 1 store <8 x float> %159, <8 x float>* %160 %161 = load <8 x float>, <8 x float>* %output16 %162 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 1, i32 2 store <8 x float> %161, <8 x float>* %162 %163 = load <8 x float>, <8 x float>* %output17 %164 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 1, i32 3 store <8 x float> %163, <8 x float>* %164 br label %skip skip: ; preds = %entry %165 = load <8 x i32>, <8 x i32>* %execution_mask %166 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 3 store <8 x i32> %165, <8 x i32>* %166 ret void } FS: 0: pushq %rbp 1: movq %rsp, %rbp 4: pushq %r14 6: pushq %rbx 7: andq $-32, %rsp 11: movq 776(%rsi), %rax 18: vmovaps 288(%rsi), %ymm0 26: vmovaps 416(%rsi), %ymm1 34: movabsq $140164720594944, %rcx 44: vbroadcastss (%rcx), %ymm2 49: vdivps 672(%rsi), %ymm2, %ymm3 57: vmovaps 544(%rsi), %ymm4 65: vbroadcastss (%rax), %ymm5 70: vbroadcastss 16(%rax), %ymm6 76: vbroadcastss 32(%rax), %ymm7 82: vsubps %ymm1, %ymm2, %ymm2 86: vsubps %ymm4, %ymm2, %ymm2 90: vmulps %ymm7, %ymm2, %ymm7 94: vmulps %ymm5, %ymm1, %ymm5 98: vmulps %ymm6, %ymm4, %ymm6 102: vaddps %ymm6, %ymm5, %ymm5 106: vaddps %ymm7, %ymm5, %ymm5 110: vmulps %ymm5, %ymm3, %ymm5 114: vbroadcastss 4(%rax), %ymm6 120: vbroadcastss 20(%rax), %ymm7 126: vbroadcastss 36(%rax), %ymm8 132: vmulps %ymm8, %ymm2, %ymm2 137: vmulps %ymm6, %ymm1, %ymm1 141: vmulps %ymm7, %ymm4, %ymm4 145: vaddps %ymm4, %ymm1, %ymm1 149: vaddps %ymm2, %ymm1, %ymm1 153: vmulps %ymm1, %ymm3, %ymm1 157: movq 384(%rdi), %r8 164: vmovq 8832(%rdi), %xmm2 172: movslq 8844(%rdi), %rcx 179: vmovd %ecx, %xmm3 183: vpsrld %xmm3, %xmm2, %xmm2 187: movabsq $140164720594948, %rdx 197: movl (%rdx), %edx 199: vmovd %edx, %xmm3 203: vpbroadcastd %xmm3, %xmm4 208: vpmaxsd %xmm4, %xmm2, %xmm2 213: vpbroadcastd 8864(%rdi,%rcx,4), %ymm4 223: movslq 8992(%rdi,%rcx,4), %rcx 231: addq 8856(%rdi), %rcx 238: vcvtdq2ps %xmm2, %xmm2 242: vbroadcastss %xmm2, %ymm6 247: vpbroadcastd %xmm3, %ymm3 252: vpermps %ymm2, %ymm3, %ymm2 257: vroundps $1, %ymm5, %ymm3 263: vsubps %ymm3, %ymm5, %ymm3 267: movabsq $140164720594952, %rdx 277: vbroadcastss (%rdx), %ymm5 282: vminps %ymm5, %ymm3, %ymm3 286: vmulps %ymm3, %ymm6, %ymm3 290: vcvttps2dq %ymm3, %ymm3 294: vroundps $1, %ymm1, %ymm6 300: vsubps %ymm6, %ymm1, %ymm1 304: vminps %ymm5, %ymm1, %ymm1 308: vmulps %ymm1, %ymm2, %ymm1 312: vcvttps2dq %ymm1, %ymm1 316: vpslld $2, %ymm3, %ymm2 321: vpmulld %ymm4, %ymm1, %ymm1 326: vpaddd %ymm2, %ymm1, %ymm1 330: vpextrq $1, %xmm1, %r11 336: vmovq %xmm1, %rdi 341: movslq %edi, %r9 344: sarq $32, %rdi 348: movslq %r11d, %r10 351: sarq $32, %r11 355: vextracti128 $1, %ymm1, %xmm1 361: vpextrq $1, %xmm1, %rax 367: vmovq %xmm1, %rdx 372: movslq %edx, %r14 375: sarq $32, %rdx 379: movslq %eax, %rbx 382: sarq $32, %rax 386: vmovd (%r14,%rcx), %xmm1 392: vpinsrd $1, (%rdx,%rcx), %xmm1, %xmm1 399: vpinsrd $2, (%rbx,%rcx), %xmm1, %xmm1 406: vpinsrd $3, (%rax,%rcx), %xmm1, %xmm1 413: vmovd (%r9,%rcx), %xmm2 419: vpinsrd $1, (%rdi,%rcx), %xmm2, %xmm2 426: vpinsrd $2, (%r10,%rcx), %xmm2, %xmm2 433: vpinsrd $3, (%r11,%rcx), %xmm2, %xmm2 440: vinserti128 $1, %xmm1, %ymm2, %ymm1 446: movabsq $140164720594956, %rax 456: vpbroadcastd (%rax), %ymm2 461: vpand %ymm2, %ymm1, %ymm1 465: vcvtdq2ps %ymm1, %ymm1 469: movabsq $140164720594960, %rax 479: vbroadcastss (%rax), %ymm2 484: vmulps %ymm2, %ymm1, %ymm1 488: vbroadcastss (%r8), %ymm2 493: vcmpeqps %ymm2, %ymm1, %ymm2 498: movabsq $140164720594964, %rax 508: vbroadcastss (%rax), %ymm3 513: movabsq $140164720594968, %rax 523: vbroadcastss (%rax), %ymm4 528: vblendvps %ymm2, %ymm3, %ymm4, %ymm2 534: vxorps %ymm4, %ymm4, %ymm4 538: vcmpnltps %ymm4, %ymm2, %ymm2 543: vandps %ymm0, %ymm2, %ymm0 547: vmovaps %ymm3, 832(%rsi) 555: vmovaps %ymm1, 864(%rsi) 563: vmovaps %ymm4, 896(%rsi) 571: vmovaps %ymm4, 928(%rsi) 579: vmovaps %ymm3, 960(%rsi) 587: vmovaps %ymm1, 992(%rsi) 595: vmovaps %ymm4, 1024(%rsi) 603: vmovaps %ymm4, 1056(%rsi) 611: vmovaps %ymm0, 288(%rsi) 619: leaq -16(%rbp), %rsp 623: popq %rbx 624: popq %r14 626: popq %rbp 627: vzeroupper 630: retq frag shader 0x7f7aa461a000 fetch shader 0x7f7aa4618000 FRAG DCL IN[0], POSITION, LINEAR DCL IN[1], FACE, CONSTANT DCL IN[2], GENERIC[9], PERSPECTIVE DCL IN[3], GENERIC[10], PERSPECTIVE DCL OUT[0], COLOR DCL OUT[1], COLOR[1] DCL SAMP[0] DCL SAMP[1] DCL SVIEW[0], 2D, FLOAT DCL SVIEW[1], 2D, FLOAT DCL CONST[7] DCL CONST[0..4] DCL TEMP[0..1] DCL TEMP[2..6], LOCAL IMM[0] FLT32 { 0.0000, -1.0000, 10.0000, 1.0000} IMM[1] UINT32 {0, 0, 0, 0} IMM[2] INT32 {0, 0, 0, 0} 0: MOV TEMP[0], IN[0] 1: MAD TEMP[0].y, IN[0], CONST[7].xxxx, CONST[7].yyyy 2: FSGE TEMP[1], IN[1], IMM[0].xxxx 3: MOV TEMP[2].xy, IN[2].zwzz 4: MOV TEMP[2].z, IN[3].xxxx 5: F2I TEMP[3].xy, TEMP[0].xyyy 6: MOV TEMP[3].xy, TEMP[3].xyyy 7: MOV TEMP[3].w, IMM[2].xxxx 8: TXF TEMP[3].y, TEMP[3], SAMP[1], 2D 9: FSNE TEMP[4].x, TEMP[3].yyyy, IMM[0].yyyy 10: FSLT TEMP[5].x, TEMP[3].yyyy, TEMP[0].zzzz 11: AND TEMP[4].x, TEMP[4].xxxx, TEMP[5].xxxx 12: UIF TEMP[4].xxxx :3 13: MOV TEMP[4].x, IMM[0].yyyy 14: MOV TEMP[4].y, TEMP[3].yyyy 15: MOV TEMP[3].xy, TEMP[4].xyxx 16: MOV OUT[1], TEMP[3] 17: RET 18: ELSE :3 19: FSLT TEMP[4].x, TEMP[0].zzzz, IMM[0].zzzz 20: UIF TEMP[4].xxxx :3 21: MOV TEMP[4].x, -TEMP[0].zzzz 22: MOV TEMP[4].y, TEMP[0].zzzz 23: MOV TEMP[3].xy, TEMP[4].xyxx 24: MOV OUT[1], TEMP[3] 25: RET 26: ENDIF 27: ENDIF 28: DP3 TEMP[4].x, TEMP[2].xyzz, TEMP[2].xyzz 29: RSQ TEMP[4].x, TEMP[4].xxxx 30: MUL TEMP[4].xyz, TEMP[2].xyzz, TEMP[4].xxxx 31: MOV TEMP[5].z, TEMP[4].xyzx 32: USEQ TEMP[6].x, TEMP[1].xxxx, IMM[1].xxxx 33: UIF TEMP[6].xxxx :3 34: MOV TEMP[5].z, -TEMP[4].xyzx 35: ENDIF 36: MAX TEMP[4].x, IMM[0].xxxx, TEMP[5].zzzz 37: POW TEMP[5].x, TEMP[4].xxxx, CONST[4].xxxx 38: MAD TEMP[4].xyz, TEMP[4].xxxx, CONST[2].xyzz, CONST[1].xyzz 39: MAD TEMP[4].xyz, TEMP[5].xxxx, CONST[3].xyzz, TEMP[4].xyzz 40: MOV TEMP[4].w, CONST[0].xxxx 41: MOV_SAT TEMP[4], TEMP[4] 42: MOV TEMP[5].xy, IN[2].xyyy 43: TEX TEMP[5], TEMP[5], SAMP[0], 2D 44: MUL TEMP[4], TEMP[4], TEMP[5] 45: FSGE TEMP[2].x, IMM[0].xxxx, TEMP[4].wwww 46: AND TEMP[2].x, TEMP[2].xxxx, IMM[0].wwww 47: KILL_IF -TEMP[2].xxxx 48: MOV OUT[0], TEMP[4] 49: MOV OUT[1], TEMP[3] 50: END TEX[0] = IN[2].x IN[2].y _ _, RES[0], SAMP[0], 2D VERT PROPERTY NEXT_SHADER 0 DCL IN[0] DCL IN[1] DCL IN[2] DCL OUT[0], POSITION DCL OUT[1], GENERIC[9] DCL OUT[2], GENERIC[10] DCL CONST[0..6] DCL TEMP[0..2], LOCAL 0: MUL TEMP[0].xyz, CONST[0].xyzz, IN[1].xxxx 1: MAD TEMP[0].xyz, CONST[1].xyzz, IN[1].yyyy, TEMP[0].xyzz 2: MAD TEMP[0].xyz, CONST[2].xyzz, IN[1].zzzz, TEMP[0].xyzz 3: MUL TEMP[1], CONST[3], IN[0].xxxx 4: MAD TEMP[1], CONST[4], IN[0].yyyy, TEMP[1] 5: MAD TEMP[1], CONST[5], IN[0].zzzz, TEMP[1] 6: MAD TEMP[1], CONST[6], IN[0].wwww, TEMP[1] 7: MOV TEMP[2].zw, TEMP[0].yyxy 8: MOV TEMP[0].x, TEMP[0].zzzz 9: MOV TEMP[2].xy, IN[2].xyxx 10: MOV OUT[2], TEMP[0] 11: MOV OUT[1], TEMP[2] 12: MOV OUT[0], TEMP[1] 13: END OUT[1].x = IN[2].x OUT[1].y = IN[2].y ; Function Attrs: alignstack(32) define void @VS({ [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx) #0 { entry: %temp22 = alloca <8 x float> %temp21 = alloca <8 x float> %temp20 = alloca <8 x float> %temp19 = alloca <8 x float> %temp18 = alloca <8 x float> %temp17 = alloca <8 x float> %temp16 = alloca <8 x float> %temp15 = alloca <8 x float> %temp14 = alloca <8 x float> %temp13 = alloca <8 x float> %temp12 = alloca <8 x float> %temp = alloca <8 x float> %output11 = alloca <8 x float> %output10 = alloca <8 x float> %output9 = alloca <8 x float> %output8 = alloca <8 x float> %output7 = alloca <8 x float> %output6 = alloca <8 x float> %output5 = alloca <8 x float> %output4 = alloca <8 x float> %output3 = alloca <8 x float> %output2 = alloca <8 x float> %output1 = alloca <8 x float> %output = alloca <8 x float> %looplimiter = alloca i32 %vs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 0 %num_vs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 1 %0 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 0 %1 = load { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }** %0 %2 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 0 %3 = load <8 x float>, <8 x float>* %2 %4 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 1 %5 = load <8 x float>, <8 x float>* %4 %6 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 2 %7 = load <8 x float>, <8 x float>* %6 %8 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 0, i32 3 %9 = load <8 x float>, <8 x float>* %8 %10 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 0 %11 = load <8 x float>, <8 x float>* %10 %12 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 1 %13 = load <8 x float>, <8 x float>* %12 %14 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 1, i32 2 %15 = load <8 x float>, <8 x float>* %14 %16 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 2, i32 0 %17 = load <8 x float>, <8 x float>* %16 %18 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %1, i32 0, i32 0, i32 2, i32 1 %19 = load <8 x float>, <8 x float>* %18 %20 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 2 %21 = load i32, i32* %20 %22 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 3 %23 = load <8 x i32>, <8 x i32>* %22 store i32 0, i32* %looplimiter store i32 65535, i32* %looplimiter store <8 x float> zeroinitializer, <8 x float>* %output store <8 x float> zeroinitializer, <8 x float>* %output1 store <8 x float> zeroinitializer, <8 x float>* %output2 store <8 x float> zeroinitializer, <8 x float>* %output3 store <8 x float> zeroinitializer, <8 x float>* %output4 store <8 x float> zeroinitializer, <8 x float>* %output5 store <8 x float> zeroinitializer, <8 x float>* %output6 store <8 x float> zeroinitializer, <8 x float>* %output7 store <8 x float> zeroinitializer, <8 x float>* %output8 store <8 x float> zeroinitializer, <8 x float>* %output9 store <8 x float> zeroinitializer, <8 x float>* %output10 store <8 x float> zeroinitializer, <8 x float>* %output11 %"&vs_constants[]" = getelementptr [32 x float*], [32 x float*]* %vs_constants, i32 0, i32 0 %"vs_constants[]" = load float*, float** %"&vs_constants[]" %"&num_vs_constants[]" = getelementptr [32 x i32], [32 x i32]* %num_vs_constants, i32 0, i32 0 %"num_vs_constants[]" = load i32, i32* %"&num_vs_constants[]" store <8 x float> zeroinitializer, <8 x float>* %temp store <8 x float> zeroinitializer, <8 x float>* %temp12 store <8 x float> zeroinitializer, <8 x float>* %temp13 store <8 x float> zeroinitializer, <8 x float>* %temp14 store <8 x float> zeroinitializer, <8 x float>* %temp15 store <8 x float> zeroinitializer, <8 x float>* %temp16 store <8 x float> zeroinitializer, <8 x float>* %temp17 store <8 x float> zeroinitializer, <8 x float>* %temp18 store <8 x float> zeroinitializer, <8 x float>* %temp19 store <8 x float> zeroinitializer, <8 x float>* %temp20 store <8 x float> zeroinitializer, <8 x float>* %temp21 store <8 x float> zeroinitializer, <8 x float>* %temp22 %24 = getelementptr float, float* %"vs_constants[]", i32 0 %25 = load float, float* %24 %26 = insertelement <8 x float> undef, float %25, i32 0 %27 = shufflevector <8 x float> %26, <8 x float> undef, <8 x i32> zeroinitializer %28 = fmul <8 x float> %27, %11 %29 = getelementptr float, float* %"vs_constants[]", i32 1 %30 = load float, float* %29 %31 = insertelement <8 x float> undef, float %30, i32 0 %32 = shufflevector <8 x float> %31, <8 x float> undef, <8 x i32> zeroinitializer %33 = fmul <8 x float> %32, %11 %34 = getelementptr float, float* %"vs_constants[]", i32 2 %35 = load float, float* %34 %36 = insertelement <8 x float> undef, float %35, i32 0 %37 = shufflevector <8 x float> %36, <8 x float> undef, <8 x i32> zeroinitializer %38 = fmul <8 x float> %37, %11 store <8 x float> %28, <8 x float>* %temp store <8 x float> %33, <8 x float>* %temp12 store <8 x float> %38, <8 x float>* %temp13 %39 = getelementptr float, float* %"vs_constants[]", i32 4 %40 = load float, float* %39 %41 = insertelement <8 x float> undef, float %40, i32 0 %42 = shufflevector <8 x float> %41, <8 x float> undef, <8 x i32> zeroinitializer %43 = load <8 x float>, <8 x float>* %temp %44 = fmul <8 x float> %42, %13 %45 = fadd <8 x float> %44, %43 %46 = getelementptr float, float* %"vs_constants[]", i32 5 %47 = load float, float* %46 %48 = insertelement <8 x float> undef, float %47, i32 0 %49 = shufflevector <8 x float> %48, <8 x float> undef, <8 x i32> zeroinitializer %50 = load <8 x float>, <8 x float>* %temp12 %51 = fmul <8 x float> %49, %13 %52 = fadd <8 x float> %51, %50 %53 = getelementptr float, float* %"vs_constants[]", i32 6 %54 = load float, float* %53 %55 = insertelement <8 x float> undef, float %54, i32 0 %56 = shufflevector <8 x float> %55, <8 x float> undef, <8 x i32> zeroinitializer %57 = load <8 x float>, <8 x float>* %temp13 %58 = fmul <8 x float> %56, %13 %59 = fadd <8 x float> %58, %57 store <8 x float> %45, <8 x float>* %temp store <8 x float> %52, <8 x float>* %temp12 store <8 x float> %59, <8 x float>* %temp13 %60 = getelementptr float, float* %"vs_constants[]", i32 8 %61 = load float, float* %60 %62 = insertelement <8 x float> undef, float %61, i32 0 %63 = shufflevector <8 x float> %62, <8 x float> undef, <8 x i32> zeroinitializer %64 = load <8 x float>, <8 x float>* %temp %65 = fmul <8 x float> %63, %15 %66 = fadd <8 x float> %65, %64 %67 = getelementptr float, float* %"vs_constants[]", i32 9 %68 = load float, float* %67 %69 = insertelement <8 x float> undef, float %68, i32 0 %70 = shufflevector <8 x float> %69, <8 x float> undef, <8 x i32> zeroinitializer %71 = load <8 x float>, <8 x float>* %temp12 %72 = fmul <8 x float> %70, %15 %73 = fadd <8 x float> %72, %71 %74 = getelementptr float, float* %"vs_constants[]", i32 10 %75 = load float, float* %74 %76 = insertelement <8 x float> undef, float %75, i32 0 %77 = shufflevector <8 x float> %76, <8 x float> undef, <8 x i32> zeroinitializer %78 = load <8 x float>, <8 x float>* %temp13 %79 = fmul <8 x float> %77, %15 %80 = fadd <8 x float> %79, %78 store <8 x float> %66, <8 x float>* %temp store <8 x float> %73, <8 x float>* %temp12 store <8 x float> %80, <8 x float>* %temp13 %81 = getelementptr float, float* %"vs_constants[]", i32 12 %82 = load float, float* %81 %83 = insertelement <8 x float> undef, float %82, i32 0 %84 = shufflevector <8 x float> %83, <8 x float> undef, <8 x i32> zeroinitializer %85 = fmul <8 x float> %84, %3 %86 = getelementptr float, float* %"vs_constants[]", i32 13 %87 = load float, float* %86 %88 = insertelement <8 x float> undef, float %87, i32 0 %89 = shufflevector <8 x float> %88, <8 x float> undef, <8 x i32> zeroinitializer %90 = fmul <8 x float> %89, %3 %91 = getelementptr float, float* %"vs_constants[]", i32 14 %92 = load float, float* %91 %93 = insertelement <8 x float> undef, float %92, i32 0 %94 = shufflevector <8 x float> %93, <8 x float> undef, <8 x i32> zeroinitializer %95 = fmul <8 x float> %94, %3 %96 = getelementptr float, float* %"vs_constants[]", i32 15 %97 = load float, float* %96 %98 = insertelement <8 x float> undef, float %97, i32 0 %99 = shufflevector <8 x float> %98, <8 x float> undef, <8 x i32> zeroinitializer %100 = fmul <8 x float> %99, %3 store <8 x float> %85, <8 x float>* %temp15 store <8 x float> %90, <8 x float>* %temp16 store <8 x float> %95, <8 x float>* %temp17 store <8 x float> %100, <8 x float>* %temp18 %101 = getelementptr float, float* %"vs_constants[]", i32 16 %102 = load float, float* %101 %103 = insertelement <8 x float> undef, float %102, i32 0 %104 = shufflevector <8 x float> %103, <8 x float> undef, <8 x i32> zeroinitializer %105 = load <8 x float>, <8 x float>* %temp15 %106 = fmul <8 x float> %104, %5 %107 = fadd <8 x float> %106, %105 %108 = getelementptr float, float* %"vs_constants[]", i32 17 %109 = load float, float* %108 %110 = insertelement <8 x float> undef, float %109, i32 0 %111 = shufflevector <8 x float> %110, <8 x float> undef, <8 x i32> zeroinitializer %112 = load <8 x float>, <8 x float>* %temp16 %113 = fmul <8 x float> %111, %5 %114 = fadd <8 x float> %113, %112 %115 = getelementptr float, float* %"vs_constants[]", i32 18 %116 = load float, float* %115 %117 = insertelement <8 x float> undef, float %116, i32 0 %118 = shufflevector <8 x float> %117, <8 x float> undef, <8 x i32> zeroinitializer %119 = load <8 x float>, <8 x float>* %temp17 %120 = fmul <8 x float> %118, %5 %121 = fadd <8 x float> %120, %119 %122 = getelementptr float, float* %"vs_constants[]", i32 19 %123 = load float, float* %122 %124 = insertelement <8 x float> undef, float %123, i32 0 %125 = shufflevector <8 x float> %124, <8 x float> undef, <8 x i32> zeroinitializer %126 = load <8 x float>, <8 x float>* %temp18 %127 = fmul <8 x float> %125, %5 %128 = fadd <8 x float> %127, %126 store <8 x float> %107, <8 x float>* %temp15 store <8 x float> %114, <8 x float>* %temp16 store <8 x float> %121, <8 x float>* %temp17 store <8 x float> %128, <8 x float>* %temp18 %129 = getelementptr float, float* %"vs_constants[]", i32 20 %130 = load float, float* %129 %131 = insertelement <8 x float> undef, float %130, i32 0 %132 = shufflevector <8 x float> %131, <8 x float> undef, <8 x i32> zeroinitializer %133 = load <8 x float>, <8 x float>* %temp15 %134 = fmul <8 x float> %132, %7 %135 = fadd <8 x float> %134, %133 %136 = getelementptr float, float* %"vs_constants[]", i32 21 %137 = load float, float* %136 %138 = insertelement <8 x float> undef, float %137, i32 0 %139 = shufflevector <8 x float> %138, <8 x float> undef, <8 x i32> zeroinitializer %140 = load <8 x float>, <8 x float>* %temp16 %141 = fmul <8 x float> %139, %7 %142 = fadd <8 x float> %141, %140 %143 = getelementptr float, float* %"vs_constants[]", i32 22 %144 = load float, float* %143 %145 = insertelement <8 x float> undef, float %144, i32 0 %146 = shufflevector <8 x float> %145, <8 x float> undef, <8 x i32> zeroinitializer %147 = load <8 x float>, <8 x float>* %temp17 %148 = fmul <8 x float> %146, %7 %149 = fadd <8 x float> %148, %147 %150 = getelementptr float, float* %"vs_constants[]", i32 23 %151 = load float, float* %150 %152 = insertelement <8 x float> undef, float %151, i32 0 %153 = shufflevector <8 x float> %152, <8 x float> undef, <8 x i32> zeroinitializer %154 = load <8 x float>, <8 x float>* %temp18 %155 = fmul <8 x float> %153, %7 %156 = fadd <8 x float> %155, %154 store <8 x float> %135, <8 x float>* %temp15 store <8 x float> %142, <8 x float>* %temp16 store <8 x float> %149, <8 x float>* %temp17 store <8 x float> %156, <8 x float>* %temp18 %157 = getelementptr float, float* %"vs_constants[]", i32 24 %158 = load float, float* %157 %159 = insertelement <8 x float> undef, float %158, i32 0 %160 = shufflevector <8 x float> %159, <8 x float> undef, <8 x i32> zeroinitializer %161 = load <8 x float>, <8 x float>* %temp15 %162 = fmul <8 x float> %160, %9 %163 = fadd <8 x float> %162, %161 %164 = getelementptr float, float* %"vs_constants[]", i32 25 %165 = load float, float* %164 %166 = insertelement <8 x float> undef, float %165, i32 0 %167 = shufflevector <8 x float> %166, <8 x float> undef, <8 x i32> zeroinitializer %168 = load <8 x float>, <8 x float>* %temp16 %169 = fmul <8 x float> %167, %9 %170 = fadd <8 x float> %169, %168 %171 = getelementptr float, float* %"vs_constants[]", i32 26 %172 = load float, float* %171 %173 = insertelement <8 x float> undef, float %172, i32 0 %174 = shufflevector <8 x float> %173, <8 x float> undef, <8 x i32> zeroinitializer %175 = load <8 x float>, <8 x float>* %temp17 %176 = fmul <8 x float> %174, %9 %177 = fadd <8 x float> %176, %175 %178 = getelementptr float, float* %"vs_constants[]", i32 27 %179 = load float, float* %178 %180 = insertelement <8 x float> undef, float %179, i32 0 %181 = shufflevector <8 x float> %180, <8 x float> undef, <8 x i32> zeroinitializer %182 = load <8 x float>, <8 x float>* %temp18 %183 = fmul <8 x float> %181, %9 %184 = fadd <8 x float> %183, %182 store <8 x float> %163, <8 x float>* %temp15 store <8 x float> %170, <8 x float>* %temp16 store <8 x float> %177, <8 x float>* %temp17 store <8 x float> %184, <8 x float>* %temp18 %185 = load <8 x float>, <8 x float>* %temp %186 = load <8 x float>, <8 x float>* %temp12 store <8 x float> %185, <8 x float>* %temp21 store <8 x float> %186, <8 x float>* %temp22 %187 = load <8 x float>, <8 x float>* %temp13 store <8 x float> %187, <8 x float>* %temp store <8 x float> %17, <8 x float>* %temp19 store <8 x float> %19, <8 x float>* %temp20 %188 = load <8 x float>, <8 x float>* %temp %189 = load <8 x float>, <8 x float>* %temp12 %190 = load <8 x float>, <8 x float>* %temp13 %191 = load <8 x float>, <8 x float>* %temp14 store <8 x float> %188, <8 x float>* %output8 store <8 x float> %189, <8 x float>* %output9 store <8 x float> %190, <8 x float>* %output10 store <8 x float> %191, <8 x float>* %output11 %192 = load <8 x float>, <8 x float>* %temp19 %193 = load <8 x float>, <8 x float>* %temp20 %194 = load <8 x float>, <8 x float>* %temp21 %195 = load <8 x float>, <8 x float>* %temp22 store <8 x float> %192, <8 x float>* %output4 store <8 x float> %193, <8 x float>* %output5 store <8 x float> %194, <8 x float>* %output6 store <8 x float> %195, <8 x float>* %output7 %196 = load <8 x float>, <8 x float>* %temp15 %197 = load <8 x float>, <8 x float>* %temp16 %198 = load <8 x float>, <8 x float>* %temp17 %199 = load <8 x float>, <8 x float>* %temp18 store <8 x float> %196, <8 x float>* %output store <8 x float> %197, <8 x float>* %output1 store <8 x float> %198, <8 x float>* %output2 store <8 x float> %199, <8 x float>* %output3 %200 = getelementptr { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }, { { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }*, i32, <8 x i32>, <8 x i32> }* %vsCtx, i32 0, i32 1 %201 = load { [38 x [4 x <8 x float>]] }*, { [38 x [4 x <8 x float>]] }** %200 %202 = load <8 x float>, <8 x float>* %output %203 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %201, i32 0, i32 0, i32 0, i32 0 store <8 x float> %202, <8 x float>* %203 %204 = load <8 x float>, <8 x float>* %output4 %205 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %201, i32 0, i32 0, i32 1, i32 0 store <8 x float> %204, <8 x float>* %205 %206 = load <8 x float>, <8 x float>* %output8 %207 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %201, i32 0, i32 0, i32 2, i32 0 store <8 x float> %206, <8 x float>* %207 %208 = load <8 x float>, <8 x float>* %output1 %209 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %201, i32 0, i32 0, i32 0, i32 1 store <8 x float> %208, <8 x float>* %209 %210 = load <8 x float>, <8 x float>* %output5 %211 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %201, i32 0, i32 0, i32 1, i32 1 store <8 x float> %210, <8 x float>* %211 %212 = load <8 x float>, <8 x float>* %output9 %213 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %201, i32 0, i32 0, i32 2, i32 1 store <8 x float> %212, <8 x float>* %213 %214 = load <8 x float>, <8 x float>* %output2 %215 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %201, i32 0, i32 0, i32 0, i32 2 store <8 x float> %214, <8 x float>* %215 %216 = load <8 x float>, <8 x float>* %output6 %217 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %201, i32 0, i32 0, i32 1, i32 2 store <8 x float> %216, <8 x float>* %217 %218 = load <8 x float>, <8 x float>* %output10 %219 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %201, i32 0, i32 0, i32 2, i32 2 store <8 x float> %218, <8 x float>* %219 %220 = load <8 x float>, <8 x float>* %output3 %221 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %201, i32 0, i32 0, i32 0, i32 3 store <8 x float> %220, <8 x float>* %221 %222 = load <8 x float>, <8 x float>* %output7 %223 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %201, i32 0, i32 0, i32 1, i32 3 store <8 x float> %222, <8 x float>* %223 %224 = load <8 x float>, <8 x float>* %output11 %225 = getelementptr { [38 x [4 x <8 x float>]] }, { [38 x [4 x <8 x float>]] }* %201, i32 0, i32 0, i32 2, i32 3 store <8 x float> %224, <8 x float>* %225 ret void } VS: 0: pushq %rbp 1: movq %rsp, %rbp 4: andq $-32, %rsp 8: subq $32, %rsp 12: movq (%rsi), %rcx 15: movq 8(%rsi), %rax 19: vmovaps (%rcx), %ymm8 23: vmovaps 32(%rcx), %ymm7 28: vmovaps 64(%rcx), %ymm3 33: vmovaps 96(%rcx), %ymm1 38: vmovaps 128(%rcx), %ymm4 46: vmovaps 160(%rcx), %ymm5 54: vmovaps 192(%rcx), %ymm6 62: vmovaps 256(%rcx), %ymm2 70: vmovaps 288(%rcx), %ymm0 78: movq (%rdi), %rcx 81: vbroadcastss (%rcx), %ymm9 86: vmulps %ymm9, %ymm4, %ymm9 91: vbroadcastss 4(%rcx), %ymm10 97: vmulps %ymm10, %ymm4, %ymm10 102: vbroadcastss 8(%rcx), %ymm11 108: vmulps %ymm11, %ymm4, %ymm4 113: vbroadcastss 16(%rcx), %ymm11 119: vmulps %ymm11, %ymm5, %ymm11 124: vaddps %ymm11, %ymm9, %ymm9 129: vbroadcastss 20(%rcx), %ymm11 135: vmulps %ymm11, %ymm5, %ymm11 140: vaddps %ymm11, %ymm10, %ymm10 145: vbroadcastss 24(%rcx), %ymm11 151: vmulps %ymm11, %ymm5, %ymm5 156: vaddps %ymm5, %ymm4, %ymm11 160: vbroadcastss 32(%rcx), %ymm4 166: vmulps %ymm4, %ymm6, %ymm4 170: vaddps %ymm4, %ymm9, %ymm4 174: vbroadcastss 36(%rcx), %ymm5 180: vmulps %ymm5, %ymm6, %ymm5 184: vaddps %ymm5, %ymm10, %ymm5 188: vbroadcastss 40(%rcx), %ymm9 194: vmulps %ymm9, %ymm6, %ymm6 199: vaddps %ymm6, %ymm11, %ymm6 203: vbroadcastss 48(%rcx), %ymm9 209: vmulps %ymm9, %ymm8, %ymm9 214: vbroadcastss 52(%rcx), %ymm10 220: vmulps %ymm10, %ymm8, %ymm10 225: vbroadcastss 56(%rcx), %ymm11 231: vmulps %ymm11, %ymm8, %ymm11 236: vbroadcastss 60(%rcx), %ymm12 242: vmulps %ymm12, %ymm8, %ymm8 247: vbroadcastss 64(%rcx), %ymm12 253: vmulps %ymm12, %ymm7, %ymm12 258: vaddps %ymm12, %ymm9, %ymm9 263: vbroadcastss 68(%rcx), %ymm12 269: vmulps %ymm12, %ymm7, %ymm12 274: vaddps %ymm12, %ymm10, %ymm10 279: vbroadcastss 72(%rcx), %ymm12 285: vmulps %ymm12, %ymm7, %ymm12 290: vaddps %ymm12, %ymm11, %ymm11 295: vbroadcastss 76(%rcx), %ymm12 301: vmulps %ymm12, %ymm7, %ymm7 306: vaddps %ymm7, %ymm8, %ymm7 310: vbroadcastss 80(%rcx), %ymm8 316: vmulps %ymm8, %ymm3, %ymm8 321: vaddps %ymm8, %ymm9, %ymm8 326: vbroadcastss 84(%rcx), %ymm9 332: vmulps %ymm9, %ymm3, %ymm9 337: vaddps %ymm9, %ymm10, %ymm9 342: vbroadcastss 88(%rcx), %ymm10 348: vmulps %ymm10, %ymm3, %ymm10 353: vaddps %ymm10, %ymm11, %ymm10 358: vbroadcastss 92(%rcx), %ymm11 364: vmulps %ymm11, %ymm3, %ymm3 369: vaddps %ymm3, %ymm7, %ymm3 373: vbroadcastss 96(%rcx), %ymm7 379: vmulps %ymm7, %ymm1, %ymm7 383: vaddps %ymm7, %ymm8, %ymm7 387: vbroadcastss 100(%rcx), %ymm8 393: vmulps %ymm8, %ymm1, %ymm8 398: vaddps %ymm8, %ymm9, %ymm8 403: vbroadcastss 104(%rcx), %ymm9 409: vmulps %ymm9, %ymm1, %ymm9 414: vaddps %ymm9, %ymm10, %ymm9 419: vbroadcastss 108(%rcx), %ymm10 425: vmulps %ymm10, %ymm1, %ymm1 430: vaddps %ymm1, %ymm3, %ymm1 434: vmovaps %ymm7, (%rax) 438: vmovaps %ymm2, 128(%rax) 446: vmovaps %ymm6, 256(%rax) 454: vmovaps %ymm8, 32(%rax) 459: vmovaps %ymm0, 160(%rax) 467: vmovaps %ymm5, 288(%rax) 475: vmovaps %ymm9, 64(%rax) 480: vmovaps %ymm4, 192(%rax) 488: vmovaps %ymm6, 320(%rax) 496: vmovaps %ymm1, 96(%rax) 501: vmovaps %ymm5, 224(%rax) 509: vxorps %ymm0, %ymm0, %ymm0 513: vmovaps %ymm0, 352(%rax) 521: movq %rbp, %rsp 524: popq %rbp 525: vzeroupper 528: retq vert shader 0x7f7aa4616000 ; Function Attrs: alignstack(32) define void @FS({ [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx) #0 { entry: %packed_var91 = alloca <16 x i8> %packed_var = alloca <16 x i8> %temp73 = alloca <8 x float> %temp72 = alloca <8 x float> %temp71 = alloca <8 x float> %temp70 = alloca <8 x float> %temp69 = alloca <8 x float> %temp68 = alloca <8 x float> %temp67 = alloca <8 x float> %temp66 = alloca <8 x float> %temp65 = alloca <8 x float> %temp64 = alloca <8 x float> %temp63 = alloca <8 x float> %temp62 = alloca <8 x float> %temp61 = alloca <8 x float> %temp60 = alloca <8 x float> %temp59 = alloca <8 x float> %temp58 = alloca <8 x float> %temp57 = alloca <8 x float> %temp56 = alloca <8 x float> %temp55 = alloca <8 x float> %temp54 = alloca <8 x float> %temp53 = alloca <8 x float> %temp52 = alloca <8 x float> %temp51 = alloca <8 x float> %temp50 = alloca <8 x float> %temp49 = alloca <8 x float> %temp48 = alloca <8 x float> %temp47 = alloca <8 x float> %temp = alloca <8 x float> %output42 = alloca <8 x float> %output41 = alloca <8 x float> %output40 = alloca <8 x float> %output39 = alloca <8 x float> %output38 = alloca <8 x float> %output37 = alloca <8 x float> %output36 = alloca <8 x float> %output = alloca <8 x float> %looplimiter = alloca i32 %execution_mask = alloca <8 x i32> %fs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 2 %num_fs_constants = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 3 %0 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 9 %pRawAttribs = load float*, float** %0 %1 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 10 %pPerspAttribs = load float*, float** %1 %2 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 6, i32 1 %i = load <8 x float>, <8 x float>* %2 %3 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 7, i32 1 %j = load <8 x float>, <8 x float>* %3 %4 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 0, i32 1 %vX = load <8 x float>, <8 x float>* %4 %5 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 1, i32 1 %vY = load <8 x float>, <8 x float>* %5 %6 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 2 %vZ = load <8 x float>, <8 x float>* %6 %7 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 8, i32 1 %vOneOverW = load <8 x float>, <8 x float>* %7 %8 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 6, i32 1 %i1 = load <8 x float>, <8 x float>* %8 %9 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 7, i32 1 %j2 = load <8 x float>, <8 x float>* %9 %10 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 18 %11 = load i32, i32* %10 %12 = uitofp i32 %11 to float %13 = fmul float %12, 2.000000e+00 %14 = fsub float %13, 1.000000e+00 %vFrontFace.splatinsert = insertelement <8 x float> undef, float %14, i32 0 %vFrontFace.splat = shufflevector <8 x float> %vFrontFace.splatinsert, <8 x float> undef, <8 x i32> zeroinitializer %15 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 6, i32 1 %i3 = load <8 x float>, <8 x float>* %15 %16 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 7, i32 1 %j4 = load <8 x float>, <8 x float>* %16 %17 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 8, i32 1 %18 = load <8 x float>, <8 x float>* %17 %w = fdiv <8 x float> , %18 %19 = getelementptr float, float* %pPerspAttribs, i32 0 %20 = load float, float* %19 %.splatinsert = insertelement <8 x float> undef, float %20, i32 0 %.splat = shufflevector <8 x float> %.splatinsert, <8 x float> undef, <8 x i32> zeroinitializer %21 = getelementptr float, float* %pPerspAttribs, i32 4 %22 = load float, float* %21 %.splatinsert5 = insertelement <8 x float> undef, float %22, i32 0 %.splat6 = shufflevector <8 x float> %.splatinsert5, <8 x float> undef, <8 x i32> zeroinitializer %23 = getelementptr float, float* %pPerspAttribs, i32 8 %24 = load float, float* %23 %.splatinsert7 = insertelement <8 x float> undef, float %24, i32 0 %.splat8 = shufflevector <8 x float> %.splatinsert7, <8 x float> undef, <8 x i32> zeroinitializer %25 = fsub <8 x float> , %i3 %26 = fsub <8 x float> %25, %j4 %27 = fmul <8 x float> %26, %.splat8 %28 = fmul <8 x float> %.splat, %i3 %29 = fmul <8 x float> %.splat6, %j4 %30 = fadd <8 x float> %28, %29 %31 = fadd <8 x float> %30, %27 %32 = fmul <8 x float> %31, %w %33 = getelementptr float, float* %pPerspAttribs, i32 1 %34 = load float, float* %33 %.splatinsert9 = insertelement <8 x float> undef, float %34, i32 0 %.splat10 = shufflevector <8 x float> %.splatinsert9, <8 x float> undef, <8 x i32> zeroinitializer %35 = getelementptr float, float* %pPerspAttribs, i32 5 %36 = load float, float* %35 %.splatinsert11 = insertelement <8 x float> undef, float %36, i32 0 %.splat12 = shufflevector <8 x float> %.splatinsert11, <8 x float> undef, <8 x i32> zeroinitializer %37 = getelementptr float, float* %pPerspAttribs, i32 9 %38 = load float, float* %37 %.splatinsert13 = insertelement <8 x float> undef, float %38, i32 0 %.splat14 = shufflevector <8 x float> %.splatinsert13, <8 x float> undef, <8 x i32> zeroinitializer %39 = fsub <8 x float> , %i3 %40 = fsub <8 x float> %39, %j4 %41 = fmul <8 x float> %40, %.splat14 %42 = fmul <8 x float> %.splat10, %i3 %43 = fmul <8 x float> %.splat12, %j4 %44 = fadd <8 x float> %42, %43 %45 = fadd <8 x float> %44, %41 %46 = fmul <8 x float> %45, %w %47 = getelementptr float, float* %pPerspAttribs, i32 2 %48 = load float, float* %47 %.splatinsert15 = insertelement <8 x float> undef, float %48, i32 0 %.splat16 = shufflevector <8 x float> %.splatinsert15, <8 x float> undef, <8 x i32> zeroinitializer %49 = getelementptr float, float* %pPerspAttribs, i32 6 %50 = load float, float* %49 %.splatinsert17 = insertelement <8 x float> undef, float %50, i32 0 %.splat18 = shufflevector <8 x float> %.splatinsert17, <8 x float> undef, <8 x i32> zeroinitializer %51 = getelementptr float, float* %pPerspAttribs, i32 10 %52 = load float, float* %51 %.splatinsert19 = insertelement <8 x float> undef, float %52, i32 0 %.splat20 = shufflevector <8 x float> %.splatinsert19, <8 x float> undef, <8 x i32> zeroinitializer %53 = fsub <8 x float> , %i3 %54 = fsub <8 x float> %53, %j4 %55 = fmul <8 x float> %54, %.splat20 %56 = fmul <8 x float> %.splat16, %i3 %57 = fmul <8 x float> %.splat18, %j4 %58 = fadd <8 x float> %56, %57 %59 = fadd <8 x float> %58, %55 %60 = fmul <8 x float> %59, %w %61 = getelementptr float, float* %pPerspAttribs, i32 3 %62 = load float, float* %61 %.splatinsert21 = insertelement <8 x float> undef, float %62, i32 0 %.splat22 = shufflevector <8 x float> %.splatinsert21, <8 x float> undef, <8 x i32> zeroinitializer %63 = getelementptr float, float* %pPerspAttribs, i32 7 %64 = load float, float* %63 %.splatinsert23 = insertelement <8 x float> undef, float %64, i32 0 %.splat24 = shufflevector <8 x float> %.splatinsert23, <8 x float> undef, <8 x i32> zeroinitializer %65 = getelementptr float, float* %pPerspAttribs, i32 11 %66 = load float, float* %65 %.splatinsert25 = insertelement <8 x float> undef, float %66, i32 0 %.splat26 = shufflevector <8 x float> %.splatinsert25, <8 x float> undef, <8 x i32> zeroinitializer %67 = fsub <8 x float> , %i3 %68 = fsub <8 x float> %67, %j4 %69 = fmul <8 x float> %68, %.splat26 %70 = fmul <8 x float> %.splat22, %i3 %71 = fmul <8 x float> %.splat24, %j4 %72 = fadd <8 x float> %70, %71 %73 = fadd <8 x float> %72, %69 %74 = fmul <8 x float> %73, %w %75 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 6, i32 1 %i27 = load <8 x float>, <8 x float>* %75 %76 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 7, i32 1 %j28 = load <8 x float>, <8 x float>* %76 %77 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 8, i32 1 %78 = load <8 x float>, <8 x float>* %77 %w29 = fdiv <8 x float> , %78 %79 = getelementptr float, float* %pPerspAttribs, i32 12 %80 = load float, float* %79 %.splatinsert30 = insertelement <8 x float> undef, float %80, i32 0 %.splat31 = shufflevector <8 x float> %.splatinsert30, <8 x float> undef, <8 x i32> zeroinitializer %81 = getelementptr float, float* %pPerspAttribs, i32 16 %82 = load float, float* %81 %.splatinsert32 = insertelement <8 x float> undef, float %82, i32 0 %.splat33 = shufflevector <8 x float> %.splatinsert32, <8 x float> undef, <8 x i32> zeroinitializer %83 = getelementptr float, float* %pPerspAttribs, i32 20 %84 = load float, float* %83 %.splatinsert34 = insertelement <8 x float> undef, float %84, i32 0 %.splat35 = shufflevector <8 x float> %.splatinsert34, <8 x float> undef, <8 x i32> zeroinitializer %85 = fsub <8 x float> , %i27 %86 = fsub <8 x float> %85, %j28 %87 = fmul <8 x float> %86, %.splat35 %88 = fmul <8 x float> %.splat31, %i27 %89 = fmul <8 x float> %.splat33, %j28 %90 = fadd <8 x float> %88, %89 %91 = fadd <8 x float> %90, %87 %92 = fmul <8 x float> %91, %w29 %93 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 3 %activeMask = load <8 x i32>, <8 x i32>* %93 store <8 x i32> zeroinitializer, <8 x i32>* %execution_mask store <8 x i32> %activeMask, <8 x i32>* %execution_mask store i32 0, i32* %looplimiter store i32 65535, i32* %looplimiter store <8 x float> zeroinitializer, <8 x float>* %output store <8 x float> zeroinitializer, <8 x float>* %output36 store <8 x float> zeroinitializer, <8 x float>* %output37 store <8 x float> zeroinitializer, <8 x float>* %output38 store <8 x float> zeroinitializer, <8 x float>* %output39 store <8 x float> zeroinitializer, <8 x float>* %output40 store <8 x float> zeroinitializer, <8 x float>* %output41 store <8 x float> zeroinitializer, <8 x float>* %output42 %"&fs_constants[]" = getelementptr [32 x float*], [32 x float*]* %fs_constants, i32 0, i32 0 %"fs_constants[]" = load float*, float** %"&fs_constants[]" %"&num_fs_constants[]" = getelementptr [32 x i32], [32 x i32]* %num_fs_constants, i32 0, i32 0 %"num_fs_constants[]" = load i32, i32* %"&num_fs_constants[]" %"&fs_constants[]43" = getelementptr [32 x float*], [32 x float*]* %fs_constants, i32 0, i32 0 %"fs_constants[]44" = load float*, float** %"&fs_constants[]43" %"&num_fs_constants[]45" = getelementptr [32 x i32], [32 x i32]* %num_fs_constants, i32 0, i32 0 %"num_fs_constants[]46" = load i32, i32* %"&num_fs_constants[]45" store <8 x float> zeroinitializer, <8 x float>* %temp store <8 x float> zeroinitializer, <8 x float>* %temp47 store <8 x float> zeroinitializer, <8 x float>* %temp48 store <8 x float> zeroinitializer, <8 x float>* %temp49 store <8 x float> zeroinitializer, <8 x float>* %temp50 store <8 x float> zeroinitializer, <8 x float>* %temp51 store <8 x float> zeroinitializer, <8 x float>* %temp52 store <8 x float> zeroinitializer, <8 x float>* %temp53 store <8 x float> zeroinitializer, <8 x float>* %temp54 store <8 x float> zeroinitializer, <8 x float>* %temp55 store <8 x float> zeroinitializer, <8 x float>* %temp56 store <8 x float> zeroinitializer, <8 x float>* %temp57 store <8 x float> zeroinitializer, <8 x float>* %temp58 store <8 x float> zeroinitializer, <8 x float>* %temp59 store <8 x float> zeroinitializer, <8 x float>* %temp60 store <8 x float> zeroinitializer, <8 x float>* %temp61 store <8 x float> zeroinitializer, <8 x float>* %temp62 store <8 x float> zeroinitializer, <8 x float>* %temp63 store <8 x float> zeroinitializer, <8 x float>* %temp64 store <8 x float> zeroinitializer, <8 x float>* %temp65 store <8 x float> zeroinitializer, <8 x float>* %temp66 store <8 x float> zeroinitializer, <8 x float>* %temp67 store <8 x float> zeroinitializer, <8 x float>* %temp68 store <8 x float> zeroinitializer, <8 x float>* %temp69 store <8 x float> zeroinitializer, <8 x float>* %temp70 store <8 x float> zeroinitializer, <8 x float>* %temp71 store <8 x float> zeroinitializer, <8 x float>* %temp72 store <8 x float> zeroinitializer, <8 x float>* %temp73 store <8 x float> %vX, <8 x float>* %temp store <8 x float> %vY, <8 x float>* %temp47 store <8 x float> %vZ, <8 x float>* %temp48 store <8 x float> %vOneOverW, <8 x float>* %temp49 %94 = getelementptr float, float* %"fs_constants[]44", i32 28 %95 = load float, float* %94 %96 = insertelement <8 x float> undef, float %95, i32 0 %97 = shufflevector <8 x float> %96, <8 x float> undef, <8 x i32> zeroinitializer %98 = getelementptr float, float* %"fs_constants[]44", i32 29 %99 = load float, float* %98 %100 = insertelement <8 x float> undef, float %99, i32 0 %101 = shufflevector <8 x float> %100, <8 x float> undef, <8 x i32> zeroinitializer %102 = fmul <8 x float> %vY, %97 %103 = fadd <8 x float> %102, %101 store <8 x float> %103, <8 x float>* %temp47 %104 = fcmp oge <8 x float> %vFrontFace.splat, zeroinitializer %105 = sext <8 x i1> %104 to <8 x i32> %106 = bitcast <8 x i32> %105 to <8 x float> store <8 x float> %106, <8 x float>* %temp50 store <8 x float> , <8 x float>* %temp51 store <8 x float> , <8 x float>* %temp52 store <8 x float> , <8 x float>* %temp53 store <8 x float> %60, <8 x float>* %temp54 store <8 x float> %74, <8 x float>* %temp55 store <8 x float> %92, <8 x float>* %temp56 %107 = load <8 x float>, <8 x float>* %temp %108 = fptosi <8 x float> %107 to <8 x i32> %109 = load <8 x float>, <8 x float>* %temp47 %110 = fptosi <8 x float> %109 to <8 x i32> %111 = bitcast <8 x i32> %108 to <8 x float> store <8 x float> %111, <8 x float>* %temp58 %112 = bitcast <8 x i32> %110 to <8 x float> store <8 x float> %112, <8 x float>* %temp59 %113 = load <8 x float>, <8 x float>* %temp58 %114 = load <8 x float>, <8 x float>* %temp59 store <8 x float> %113, <8 x float>* %temp58 store <8 x float> %114, <8 x float>* %temp59 store <8 x float> zeroinitializer, <8 x float>* %temp61 %115 = load <8 x float>, <8 x float>* %temp61 %116 = bitcast <8 x float> %115 to <8 x i32> %117 = load <8 x float>, <8 x float>* %temp58 %118 = bitcast <8 x float> %117 to <8 x i32> %119 = load <8 x float>, <8 x float>* %temp59 %120 = bitcast <8 x float> %119 to <8 x i32> %121 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 1, i32 0 %context.texture1.width = load i32, i32* %121 %context.texture1.row_stride = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 1, i32 6 %context.texture1.img_stride = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 1, i32 7 %122 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 1, i32 5 %context.texture1.base_ptr = load i8*, i8** %122 %context.texture1.mip_offsets = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 1, i32 8 %123 = insertelement <4 x i32> undef, i32 %context.texture1.width, i32 0 %124 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 1, i32 1 %context.texture1.height = load i32, i32* %124 %125 = insertelement <4 x i32> %123, i32 %context.texture1.height, i32 1 %126 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 1, i32 3 %context.texture1.first_level = load i32, i32* %126 %127 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 1, i32 4 %context.texture1.last_level = load i32, i32* %127 %128 = insertelement <8 x i32> undef, i32 %context.texture1.first_level, i32 0 %129 = shufflevector <8 x i32> %128, <8 x i32> undef, <8 x i32> zeroinitializer %130 = insertelement <8 x i32> undef, i32 %context.texture1.last_level, i32 0 %131 = shufflevector <8 x i32> %130, <8 x i32> undef, <8 x i32> zeroinitializer %132 = add <8 x i32> %116, %129 %133 = icmp slt <8 x i32> %132, %129 %134 = sext <8 x i1> %133 to <8 x i32> %135 = icmp sgt <8 x i32> %132, %131 %136 = sext <8 x i1> %135 to <8 x i32> %137 = or <8 x i32> %134, %136 %138 = xor <8 x i32> %137, %139 = and <8 x i32> %132, %138 %140 = shufflevector <8 x i32> %139, <8 x i32> undef, <4 x i32> zeroinitializer %minify = lshr <4 x i32> %125, %140 %141 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify, <4 x i32> ) %142 = shufflevector <8 x i32> %139, <8 x i32> undef, <4 x i32> %minify74 = lshr <4 x i32> %125, %142 %143 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify74, <4 x i32> ) %144 = shufflevector <8 x i32> %139, <8 x i32> undef, <4 x i32> %minify75 = lshr <4 x i32> %125, %144 %145 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify75, <4 x i32> ) %146 = shufflevector <8 x i32> %139, <8 x i32> undef, <4 x i32> %minify76 = lshr <4 x i32> %125, %146 %147 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify76, <4 x i32> ) %148 = shufflevector <8 x i32> %139, <8 x i32> undef, <4 x i32> %minify77 = lshr <4 x i32> %125, %148 %149 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify77, <4 x i32> ) %150 = shufflevector <8 x i32> %139, <8 x i32> undef, <4 x i32> %minify78 = lshr <4 x i32> %125, %150 %151 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify78, <4 x i32> ) %152 = shufflevector <8 x i32> %139, <8 x i32> undef, <4 x i32> %minify79 = lshr <4 x i32> %125, %152 %153 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify79, <4 x i32> ) %154 = shufflevector <8 x i32> %139, <8 x i32> undef, <4 x i32> %minify80 = lshr <4 x i32> %125, %154 %155 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify80, <4 x i32> ) %156 = shufflevector <4 x i32> %141, <4 x i32> %143, <8 x i32> %157 = shufflevector <4 x i32> %145, <4 x i32> %147, <8 x i32> %158 = shufflevector <4 x i32> %149, <4 x i32> %151, <8 x i32> %159 = shufflevector <4 x i32> %153, <4 x i32> %155, <8 x i32> %160 = shufflevector <8 x i32> %156, <8 x i32> %157, <16 x i32> %161 = shufflevector <8 x i32> %158, <8 x i32> %159, <16 x i32> %162 = shufflevector <16 x i32> %160, <16 x i32> %161, <32 x i32> %163 = extractelement <8 x i32> %139, i32 0 %164 = getelementptr [16 x i32], [16 x i32]* %context.texture1.row_stride, i32 0, i32 %163 %165 = load i32, i32* %164 %166 = insertelement <8 x i32> undef, i32 %165, i32 0 %167 = extractelement <8 x i32> %139, i32 1 %168 = getelementptr [16 x i32], [16 x i32]* %context.texture1.row_stride, i32 0, i32 %167 %169 = load i32, i32* %168 %170 = insertelement <8 x i32> %166, i32 %169, i32 1 %171 = extractelement <8 x i32> %139, i32 2 %172 = getelementptr [16 x i32], [16 x i32]* %context.texture1.row_stride, i32 0, i32 %171 %173 = load i32, i32* %172 %174 = insertelement <8 x i32> %170, i32 %173, i32 2 %175 = extractelement <8 x i32> %139, i32 3 %176 = getelementptr [16 x i32], [16 x i32]* %context.texture1.row_stride, i32 0, i32 %175 %177 = load i32, i32* %176 %178 = insertelement <8 x i32> %174, i32 %177, i32 3 %179 = extractelement <8 x i32> %139, i32 4 %180 = getelementptr [16 x i32], [16 x i32]* %context.texture1.row_stride, i32 0, i32 %179 %181 = load i32, i32* %180 %182 = insertelement <8 x i32> %178, i32 %181, i32 4 %183 = extractelement <8 x i32> %139, i32 5 %184 = getelementptr [16 x i32], [16 x i32]* %context.texture1.row_stride, i32 0, i32 %183 %185 = load i32, i32* %184 %186 = insertelement <8 x i32> %182, i32 %185, i32 5 %187 = extractelement <8 x i32> %139, i32 6 %188 = getelementptr [16 x i32], [16 x i32]* %context.texture1.row_stride, i32 0, i32 %187 %189 = load i32, i32* %188 %190 = insertelement <8 x i32> %186, i32 %189, i32 6 %191 = extractelement <8 x i32> %139, i32 7 %192 = getelementptr [16 x i32], [16 x i32]* %context.texture1.row_stride, i32 0, i32 %191 %193 = load i32, i32* %192 %194 = insertelement <8 x i32> %190, i32 %193, i32 7 %195 = shufflevector <32 x i32> %162, <32 x i32> %162, <8 x i32> %196 = shufflevector <32 x i32> %162, <32 x i32> %162, <8 x i32> %197 = icmp slt <8 x i32> %118, zeroinitializer %198 = sext <8 x i1> %197 to <8 x i32> %199 = or <8 x i32> %137, %198 %200 = icmp sge <8 x i32> %118, %195 %201 = sext <8 x i1> %200 to <8 x i32> %202 = or <8 x i32> %199, %201 %203 = icmp slt <8 x i32> %120, zeroinitializer %204 = sext <8 x i1> %203 to <8 x i32> %205 = or <8 x i32> %202, %204 %206 = icmp sge <8 x i32> %120, %196 %207 = sext <8 x i1> %206 to <8 x i32> %208 = or <8 x i32> %205, %207 %209 = mul <8 x i32> %118, %210 = mul <8 x i32> %120, %194 %211 = add <8 x i32> %209, %210 %212 = extractelement <8 x i32> %139, i32 0 %213 = getelementptr [16 x i32], [16 x i32]* %context.texture1.mip_offsets, i32 0, i32 %212 %214 = load i32, i32* %213 %215 = insertelement <8 x i32> undef, i32 %214, i32 0 %216 = extractelement <8 x i32> %139, i32 1 %217 = getelementptr [16 x i32], [16 x i32]* %context.texture1.mip_offsets, i32 0, i32 %216 %218 = load i32, i32* %217 %219 = insertelement <8 x i32> %215, i32 %218, i32 1 %220 = extractelement <8 x i32> %139, i32 2 %221 = getelementptr [16 x i32], [16 x i32]* %context.texture1.mip_offsets, i32 0, i32 %220 %222 = load i32, i32* %221 %223 = insertelement <8 x i32> %219, i32 %222, i32 2 %224 = extractelement <8 x i32> %139, i32 3 %225 = getelementptr [16 x i32], [16 x i32]* %context.texture1.mip_offsets, i32 0, i32 %224 %226 = load i32, i32* %225 %227 = insertelement <8 x i32> %223, i32 %226, i32 3 %228 = extractelement <8 x i32> %139, i32 4 %229 = getelementptr [16 x i32], [16 x i32]* %context.texture1.mip_offsets, i32 0, i32 %228 %230 = load i32, i32* %229 %231 = insertelement <8 x i32> %227, i32 %230, i32 4 %232 = extractelement <8 x i32> %139, i32 5 %233 = getelementptr [16 x i32], [16 x i32]* %context.texture1.mip_offsets, i32 0, i32 %232 %234 = load i32, i32* %233 %235 = insertelement <8 x i32> %231, i32 %234, i32 5 %236 = extractelement <8 x i32> %139, i32 6 %237 = getelementptr [16 x i32], [16 x i32]* %context.texture1.mip_offsets, i32 0, i32 %236 %238 = load i32, i32* %237 %239 = insertelement <8 x i32> %235, i32 %238, i32 6 %240 = extractelement <8 x i32> %139, i32 7 %241 = getelementptr [16 x i32], [16 x i32]* %context.texture1.mip_offsets, i32 0, i32 %240 %242 = load i32, i32* %241 %243 = insertelement <8 x i32> %239, i32 %242, i32 7 %244 = add <8 x i32> %211, %243 %245 = xor <8 x i32> %208, %246 = and <8 x i32> %244, %245 %247 = extractelement <8 x i32> %246, i32 0 %248 = getelementptr i8, i8* %context.texture1.base_ptr, i32 %247 %249 = bitcast i8* %248 to i64* %250 = load i64, i64* %249 %251 = zext i64 %250 to i128 %252 = bitcast i128 %251 to <4 x float> %253 = shufflevector <4 x float> %252, <4 x float> , <4 x i32> %254 = extractelement <4 x float> %253, i32 0 %255 = insertelement <8 x float> undef, float %254, i32 0 %256 = extractelement <4 x float> %253, i32 1 %257 = insertelement <8 x float> undef, float %256, i32 0 %258 = extractelement <4 x float> %253, i32 2 %259 = insertelement <8 x float> undef, float %258, i32 0 %260 = extractelement <4 x float> %253, i32 3 %261 = insertelement <8 x float> undef, float %260, i32 0 %262 = extractelement <8 x i32> %246, i32 1 %263 = getelementptr i8, i8* %context.texture1.base_ptr, i32 %262 %264 = bitcast i8* %263 to i64* %265 = load i64, i64* %264 %266 = zext i64 %265 to i128 %267 = bitcast i128 %266 to <4 x float> %268 = shufflevector <4 x float> %267, <4 x float> , <4 x i32> %269 = extractelement <4 x float> %268, i32 0 %270 = insertelement <8 x float> %255, float %269, i32 1 %271 = extractelement <4 x float> %268, i32 1 %272 = insertelement <8 x float> %257, float %271, i32 1 %273 = extractelement <4 x float> %268, i32 2 %274 = insertelement <8 x float> %259, float %273, i32 1 %275 = extractelement <4 x float> %268, i32 3 %276 = insertelement <8 x float> %261, float %275, i32 1 %277 = extractelement <8 x i32> %246, i32 2 %278 = getelementptr i8, i8* %context.texture1.base_ptr, i32 %277 %279 = bitcast i8* %278 to i64* %280 = load i64, i64* %279 %281 = zext i64 %280 to i128 %282 = bitcast i128 %281 to <4 x float> %283 = shufflevector <4 x float> %282, <4 x float> , <4 x i32> %284 = extractelement <4 x float> %283, i32 0 %285 = insertelement <8 x float> %270, float %284, i32 2 %286 = extractelement <4 x float> %283, i32 1 %287 = insertelement <8 x float> %272, float %286, i32 2 %288 = extractelement <4 x float> %283, i32 2 %289 = insertelement <8 x float> %274, float %288, i32 2 %290 = extractelement <4 x float> %283, i32 3 %291 = insertelement <8 x float> %276, float %290, i32 2 %292 = extractelement <8 x i32> %246, i32 3 %293 = getelementptr i8, i8* %context.texture1.base_ptr, i32 %292 %294 = bitcast i8* %293 to i64* %295 = load i64, i64* %294 %296 = zext i64 %295 to i128 %297 = bitcast i128 %296 to <4 x float> %298 = shufflevector <4 x float> %297, <4 x float> , <4 x i32> %299 = extractelement <4 x float> %298, i32 0 %300 = insertelement <8 x float> %285, float %299, i32 3 %301 = extractelement <4 x float> %298, i32 1 %302 = insertelement <8 x float> %287, float %301, i32 3 %303 = extractelement <4 x float> %298, i32 2 %304 = insertelement <8 x float> %289, float %303, i32 3 %305 = extractelement <4 x float> %298, i32 3 %306 = insertelement <8 x float> %291, float %305, i32 3 %307 = extractelement <8 x i32> %246, i32 4 %308 = getelementptr i8, i8* %context.texture1.base_ptr, i32 %307 %309 = bitcast i8* %308 to i64* %310 = load i64, i64* %309 %311 = zext i64 %310 to i128 %312 = bitcast i128 %311 to <4 x float> %313 = shufflevector <4 x float> %312, <4 x float> , <4 x i32> %314 = extractelement <4 x float> %313, i32 0 %315 = insertelement <8 x float> %300, float %314, i32 4 %316 = extractelement <4 x float> %313, i32 1 %317 = insertelement <8 x float> %302, float %316, i32 4 %318 = extractelement <4 x float> %313, i32 2 %319 = insertelement <8 x float> %304, float %318, i32 4 %320 = extractelement <4 x float> %313, i32 3 %321 = insertelement <8 x float> %306, float %320, i32 4 %322 = extractelement <8 x i32> %246, i32 5 %323 = getelementptr i8, i8* %context.texture1.base_ptr, i32 %322 %324 = bitcast i8* %323 to i64* %325 = load i64, i64* %324 %326 = zext i64 %325 to i128 %327 = bitcast i128 %326 to <4 x float> %328 = shufflevector <4 x float> %327, <4 x float> , <4 x i32> %329 = extractelement <4 x float> %328, i32 0 %330 = insertelement <8 x float> %315, float %329, i32 5 %331 = extractelement <4 x float> %328, i32 1 %332 = insertelement <8 x float> %317, float %331, i32 5 %333 = extractelement <4 x float> %328, i32 2 %334 = insertelement <8 x float> %319, float %333, i32 5 %335 = extractelement <4 x float> %328, i32 3 %336 = insertelement <8 x float> %321, float %335, i32 5 %337 = extractelement <8 x i32> %246, i32 6 %338 = getelementptr i8, i8* %context.texture1.base_ptr, i32 %337 %339 = bitcast i8* %338 to i64* %340 = load i64, i64* %339 %341 = zext i64 %340 to i128 %342 = bitcast i128 %341 to <4 x float> %343 = shufflevector <4 x float> %342, <4 x float> , <4 x i32> %344 = extractelement <4 x float> %343, i32 0 %345 = insertelement <8 x float> %330, float %344, i32 6 %346 = extractelement <4 x float> %343, i32 1 %347 = insertelement <8 x float> %332, float %346, i32 6 %348 = extractelement <4 x float> %343, i32 2 %349 = insertelement <8 x float> %334, float %348, i32 6 %350 = extractelement <4 x float> %343, i32 3 %351 = insertelement <8 x float> %336, float %350, i32 6 %352 = extractelement <8 x i32> %246, i32 7 %353 = getelementptr i8, i8* %context.texture1.base_ptr, i32 %352 %354 = bitcast i8* %353 to i64* %355 = load i64, i64* %354 %356 = zext i64 %355 to i128 %357 = bitcast i128 %356 to <4 x float> %358 = shufflevector <4 x float> %357, <4 x float> , <4 x i32> %359 = extractelement <4 x float> %358, i32 0 %360 = insertelement <8 x float> %345, float %359, i32 7 %361 = extractelement <4 x float> %358, i32 1 %362 = insertelement <8 x float> %347, float %361, i32 7 %363 = extractelement <4 x float> %358, i32 2 %364 = insertelement <8 x float> %349, float %363, i32 7 %365 = extractelement <4 x float> %358, i32 3 %366 = insertelement <8 x float> %351, float %365, i32 7 %367 = bitcast <8 x float> %360 to <8 x i32> %368 = and <8 x i32> zeroinitializer, %208 %369 = xor <8 x i32> %208, %370 = and <8 x i32> %367, %369 %371 = or <8 x i32> %368, %370 %372 = bitcast <8 x i32> %371 to <8 x float> %373 = bitcast <8 x float> %362 to <8 x i32> %374 = and <8 x i32> zeroinitializer, %208 %375 = xor <8 x i32> %208, %376 = and <8 x i32> %373, %375 %377 = or <8 x i32> %374, %376 %378 = bitcast <8 x i32> %377 to <8 x float> %379 = bitcast <8 x float> %364 to <8 x i32> %380 = and <8 x i32> zeroinitializer, %208 %381 = xor <8 x i32> %208, %382 = and <8 x i32> %379, %381 %383 = or <8 x i32> %380, %382 %384 = bitcast <8 x i32> %383 to <8 x float> %385 = bitcast <8 x float> %366 to <8 x i32> %386 = and <8 x i32> zeroinitializer, %208 %387 = xor <8 x i32> %208, %388 = and <8 x i32> %385, %387 %389 = or <8 x i32> %386, %388 %390 = bitcast <8 x i32> %389 to <8 x float> store <8 x float> %378, <8 x float>* %temp59 %391 = load <8 x float>, <8 x float>* %temp59 %392 = fcmp une <8 x float> %391, %393 = sext <8 x i1> %392 to <8 x i32> %394 = bitcast <8 x i32> %393 to <8 x float> store <8 x float> %394, <8 x float>* %temp62 %395 = load <8 x float>, <8 x float>* %temp59 %396 = load <8 x float>, <8 x float>* %temp48 %397 = fcmp olt <8 x float> %395, %396 %398 = sext <8 x i1> %397 to <8 x i32> %399 = bitcast <8 x i32> %398 to <8 x float> store <8 x float> %399, <8 x float>* %temp66 %400 = load <8 x float>, <8 x float>* %temp62 %401 = bitcast <8 x float> %400 to <8 x i32> %402 = load <8 x float>, <8 x float>* %temp66 %403 = bitcast <8 x float> %402 to <8 x i32> %404 = and <8 x i32> %401, %403 %405 = bitcast <8 x i32> %404 to <8 x float> store <8 x float> %405, <8 x float>* %temp62 %406 = load <8 x float>, <8 x float>* %temp62 %407 = bitcast <8 x float> %406 to <8 x i32> %408 = icmp ne <8 x i32> %407, zeroinitializer %409 = sext <8 x i1> %408 to <8 x i32> %410 = and <8 x i32> , %409 %411 = load <8 x float>, <8 x float>* %temp62 %412 = bitcast <8 x float> %411 to <8 x i32> %413 = and <8 x i32> , %410 %414 = xor <8 x i32> %410, %415 = and <8 x i32> %412, %414 %416 = or <8 x i32> %413, %415 %417 = bitcast <8 x i32> %416 to <8 x float> store <8 x float> %417, <8 x float>* %temp62 %418 = load <8 x float>, <8 x float>* %temp59 %419 = load <8 x float>, <8 x float>* %temp63 %420 = bitcast <8 x i32> %410 to <8 x float> %421 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %419, <8 x float> %418, <8 x float> %420) store <8 x float> %421, <8 x float>* %temp63 %422 = load <8 x float>, <8 x float>* %temp62 %423 = load <8 x float>, <8 x float>* %temp63 %424 = load <8 x float>, <8 x float>* %temp58 %425 = bitcast <8 x i32> %410 to <8 x float> %426 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %424, <8 x float> %422, <8 x float> %425) store <8 x float> %426, <8 x float>* %temp58 %427 = load <8 x float>, <8 x float>* %temp59 %428 = bitcast <8 x i32> %410 to <8 x float> %429 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %427, <8 x float> %423, <8 x float> %428) store <8 x float> %429, <8 x float>* %temp59 %430 = load <8 x float>, <8 x float>* %temp58 %431 = load <8 x float>, <8 x float>* %temp59 %432 = load <8 x float>, <8 x float>* %temp60 %433 = load <8 x float>, <8 x float>* %temp61 %434 = load <8 x float>, <8 x float>* %output39 %435 = bitcast <8 x i32> %410 to <8 x float> %436 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %434, <8 x float> %430, <8 x float> %435) store <8 x float> %436, <8 x float>* %output39 %437 = load <8 x float>, <8 x float>* %output40 %438 = bitcast <8 x i32> %410 to <8 x float> %439 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %437, <8 x float> %431, <8 x float> %438) store <8 x float> %439, <8 x float>* %output40 %440 = load <8 x float>, <8 x float>* %output41 %441 = bitcast <8 x i32> %410 to <8 x float> %442 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %440, <8 x float> %432, <8 x float> %441) store <8 x float> %442, <8 x float>* %output41 %443 = load <8 x float>, <8 x float>* %output42 %444 = bitcast <8 x i32> %410 to <8 x float> %445 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %443, <8 x float> %433, <8 x float> %444) store <8 x float> %445, <8 x float>* %output42 %ret = xor <8 x i32> %410, %ret_full = and <8 x i32> , %ret %callmask = and <8 x i32> %410, %ret_full %446 = xor <8 x i32> %410, %447 = and <8 x i32> %446, %callmask81 = and <8 x i32> %447, %ret_full %448 = load <8 x float>, <8 x float>* %temp48 %449 = fcmp olt <8 x float> %448, %450 = sext <8 x i1> %449 to <8 x i32> %451 = bitcast <8 x i32> %450 to <8 x float> %452 = load <8 x float>, <8 x float>* %temp62 %453 = bitcast <8 x i32> %callmask81 to <8 x float> %454 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %452, <8 x float> %451, <8 x float> %453) store <8 x float> %454, <8 x float>* %temp62 %455 = load <8 x float>, <8 x float>* %temp62 %456 = bitcast <8 x float> %455 to <8 x i32> %457 = icmp ne <8 x i32> %456, zeroinitializer %458 = sext <8 x i1> %457 to <8 x i32> %459 = and <8 x i32> %447, %458 %callmask82 = and <8 x i32> %459, %ret_full %460 = load <8 x float>, <8 x float>* %temp48 %461 = fsub <8 x float> , %460 %462 = load <8 x float>, <8 x float>* %temp62 %463 = bitcast <8 x i32> %callmask82 to <8 x float> %464 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %462, <8 x float> %461, <8 x float> %463) store <8 x float> %464, <8 x float>* %temp62 %465 = load <8 x float>, <8 x float>* %temp48 %466 = load <8 x float>, <8 x float>* %temp63 %467 = bitcast <8 x i32> %callmask82 to <8 x float> %468 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %466, <8 x float> %465, <8 x float> %467) store <8 x float> %468, <8 x float>* %temp63 %469 = load <8 x float>, <8 x float>* %temp62 %470 = load <8 x float>, <8 x float>* %temp63 %471 = load <8 x float>, <8 x float>* %temp58 %472 = bitcast <8 x i32> %callmask82 to <8 x float> %473 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %471, <8 x float> %469, <8 x float> %472) store <8 x float> %473, <8 x float>* %temp58 %474 = load <8 x float>, <8 x float>* %temp59 %475 = bitcast <8 x i32> %callmask82 to <8 x float> %476 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %474, <8 x float> %470, <8 x float> %475) store <8 x float> %476, <8 x float>* %temp59 %477 = load <8 x float>, <8 x float>* %temp58 %478 = load <8 x float>, <8 x float>* %temp59 %479 = load <8 x float>, <8 x float>* %temp60 %480 = load <8 x float>, <8 x float>* %temp61 %481 = load <8 x float>, <8 x float>* %output39 %482 = bitcast <8 x i32> %callmask82 to <8 x float> %483 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %481, <8 x float> %477, <8 x float> %482) store <8 x float> %483, <8 x float>* %output39 %484 = load <8 x float>, <8 x float>* %output40 %485 = bitcast <8 x i32> %callmask82 to <8 x float> %486 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %484, <8 x float> %478, <8 x float> %485) store <8 x float> %486, <8 x float>* %output40 %487 = load <8 x float>, <8 x float>* %output41 %488 = bitcast <8 x i32> %callmask82 to <8 x float> %489 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %487, <8 x float> %479, <8 x float> %488) store <8 x float> %489, <8 x float>* %output41 %490 = load <8 x float>, <8 x float>* %output42 %491 = bitcast <8 x i32> %callmask82 to <8 x float> %492 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %490, <8 x float> %480, <8 x float> %491) store <8 x float> %492, <8 x float>* %output42 %ret83 = xor <8 x i32> %callmask82, %ret_full84 = and <8 x i32> %ret_full, %ret83 %callmask85 = and <8 x i32> %459, %ret_full84 %callmask86 = and <8 x i32> %447, %ret_full84 %callmask87 = and <8 x i32> , %ret_full84 %493 = load <8 x float>, <8 x float>* %temp54 %494 = load <8 x float>, <8 x float>* %temp55 %495 = load <8 x float>, <8 x float>* %temp56 %496 = load <8 x float>, <8 x float>* %temp54 %497 = load <8 x float>, <8 x float>* %temp55 %498 = load <8 x float>, <8 x float>* %temp56 %499 = fmul <8 x float> %493, %496 %500 = fmul <8 x float> %494, %497 %501 = fadd <8 x float> %500, %499 %502 = fmul <8 x float> %495, %498 %503 = fadd <8 x float> %501, %502 %504 = load <8 x float>, <8 x float>* %temp62 %505 = bitcast <8 x i32> %callmask87 to <8 x float> %506 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %504, <8 x float> %503, <8 x float> %505) store <8 x float> %506, <8 x float>* %temp62 %507 = load <8 x float>, <8 x float>* %temp62 %508 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %507) %509 = fdiv <8 x float> , %508 %510 = load <8 x float>, <8 x float>* %temp62 %511 = bitcast <8 x i32> %callmask87 to <8 x float> %512 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %510, <8 x float> %509, <8 x float> %511) store <8 x float> %512, <8 x float>* %temp62 %513 = load <8 x float>, <8 x float>* %temp54 %514 = load <8 x float>, <8 x float>* %temp62 %515 = fmul <8 x float> %513, %514 %516 = load <8 x float>, <8 x float>* %temp55 %517 = load <8 x float>, <8 x float>* %temp62 %518 = fmul <8 x float> %516, %517 %519 = load <8 x float>, <8 x float>* %temp56 %520 = load <8 x float>, <8 x float>* %temp62 %521 = fmul <8 x float> %519, %520 %522 = load <8 x float>, <8 x float>* %temp62 %523 = bitcast <8 x i32> %callmask87 to <8 x float> %524 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %522, <8 x float> %515, <8 x float> %523) store <8 x float> %524, <8 x float>* %temp62 %525 = load <8 x float>, <8 x float>* %temp63 %526 = bitcast <8 x i32> %callmask87 to <8 x float> %527 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %525, <8 x float> %518, <8 x float> %526) store <8 x float> %527, <8 x float>* %temp63 %528 = load <8 x float>, <8 x float>* %temp64 %529 = bitcast <8 x i32> %callmask87 to <8 x float> %530 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %528, <8 x float> %521, <8 x float> %529) store <8 x float> %530, <8 x float>* %temp64 %531 = load <8 x float>, <8 x float>* %temp64 %532 = load <8 x float>, <8 x float>* %temp68 %533 = bitcast <8 x i32> %callmask87 to <8 x float> %534 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %532, <8 x float> %531, <8 x float> %533) store <8 x float> %534, <8 x float>* %temp68 %535 = load <8 x float>, <8 x float>* %temp50 %536 = bitcast <8 x float> %535 to <8 x i32> %537 = icmp eq <8 x i32> %536, zeroinitializer %538 = sext <8 x i1> %537 to <8 x i32> %539 = bitcast <8 x i32> %538 to <8 x float> %540 = load <8 x float>, <8 x float>* %temp70 %541 = bitcast <8 x i32> %callmask87 to <8 x float> %542 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %540, <8 x float> %539, <8 x float> %541) store <8 x float> %542, <8 x float>* %temp70 %543 = load <8 x float>, <8 x float>* %temp70 %544 = bitcast <8 x float> %543 to <8 x i32> %545 = icmp ne <8 x i32> %544, zeroinitializer %546 = sext <8 x i1> %545 to <8 x i32> %547 = and <8 x i32> , %546 %callmask88 = and <8 x i32> %547, %ret_full84 %548 = load <8 x float>, <8 x float>* %temp64 %549 = fsub <8 x float> , %548 %550 = load <8 x float>, <8 x float>* %temp68 %551 = bitcast <8 x i32> %callmask88 to <8 x float> %552 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %550, <8 x float> %549, <8 x float> %551) store <8 x float> %552, <8 x float>* %temp68 %callmask89 = and <8 x i32> , %ret_full84 %553 = load <8 x float>, <8 x float>* %temp68 %554 = call <8 x float> @llvm.x86.avx.max.ps.256(<8 x float> zeroinitializer, <8 x float> %553) %isnotnan = fcmp oeq <8 x float> %553, %553 %555 = xor <8 x i1> %isnotnan, %isnan = sext <8 x i1> %555 to <8 x i32> %556 = bitcast <8 x float> %554 to <8 x i32> %557 = and <8 x i32> zeroinitializer, %isnan %558 = xor <8 x i32> %isnan, %559 = and <8 x i32> %556, %558 %560 = or <8 x i32> %557, %559 %561 = bitcast <8 x i32> %560 to <8 x float> %562 = load <8 x float>, <8 x float>* %temp62 %563 = bitcast <8 x i32> %callmask89 to <8 x float> %564 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %562, <8 x float> %561, <8 x float> %563) store <8 x float> %564, <8 x float>* %temp62 %565 = load <8 x float>, <8 x float>* %temp62 %566 = getelementptr float, float* %"fs_constants[]44", i32 16 %567 = load float, float* %566 %568 = insertelement <8 x float> undef, float %567, i32 0 %569 = shufflevector <8 x float> %568, <8 x float> undef, <8 x i32> zeroinitializer %570 = bitcast <8 x float> %565 to <8 x i32> %571 = and <8 x i32> %570, %572 = lshr <8 x i32> %571, %573 = sub <8 x i32> %572, %574 = sitofp <8 x i32> %573 to <8 x float> %575 = and <8 x i32> %570, %576 = or <8 x i32> %575, %577 = bitcast <8 x i32> %576 to <8 x float> %578 = fadd <8 x float> %577, %579 = fsub <8 x float> %577, %580 = fdiv <8 x float> , %578 %581 = fmul <8 x float> %579, %580 %582 = fmul <8 x float> %581, %581 %583 = fmul <8 x float> %582, %582 %584 = fmul <8 x float> %583, %585 = fadd <8 x float> , %584 %586 = fmul <8 x float> %583, %587 = fadd <8 x float> , %586 %588 = fmul <8 x float> %583, %585 %589 = fadd <8 x float> , %588 %590 = fmul <8 x float> %587, %582 %591 = fadd <8 x float> %590, %589 %592 = fmul <8 x float> %581, %591 %593 = fadd <8 x float> %592, %574 %594 = fmul <8 x float> %593, %569 %595 = call <8 x float> @llvm.x86.avx.min.ps.256(<8 x float> , <8 x float> %594) %596 = call <8 x float> @llvm.x86.avx.max.ps.256(<8 x float> , <8 x float> %595) %597 = call <8 x float> @llvm.floor.v8f32(<8 x float> %596) %fpart = fsub <8 x float> %596, %597 %ipart = fptosi <8 x float> %597 to <8 x i32> %598 = add <8 x i32> %ipart, %599 = shl <8 x i32> %598, %600 = bitcast <8 x i32> %599 to <8 x float> %601 = fmul <8 x float> %fpart, %fpart %602 = fmul <8 x float> %601, %603 = fadd <8 x float> , %602 %604 = fmul <8 x float> %601, %605 = fadd <8 x float> , %604 %606 = fmul <8 x float> %601, %603 %607 = fadd <8 x float> , %606 %608 = fmul <8 x float> %601, %605 %609 = fadd <8 x float> , %608 %610 = fmul <8 x float> %607, %fpart %611 = fadd <8 x float> %610, %609 %612 = fmul <8 x float> %600, %611 %613 = load <8 x float>, <8 x float>* %temp66 %614 = bitcast <8 x i32> %callmask89 to <8 x float> %615 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %613, <8 x float> %612, <8 x float> %614) store <8 x float> %615, <8 x float>* %temp66 %616 = load <8 x float>, <8 x float>* %temp62 %617 = getelementptr float, float* %"fs_constants[]44", i32 8 %618 = load float, float* %617 %619 = insertelement <8 x float> undef, float %618, i32 0 %620 = shufflevector <8 x float> %619, <8 x float> undef, <8 x i32> zeroinitializer %621 = getelementptr float, float* %"fs_constants[]44", i32 4 %622 = load float, float* %621 %623 = insertelement <8 x float> undef, float %622, i32 0 %624 = shufflevector <8 x float> %623, <8 x float> undef, <8 x i32> zeroinitializer %625 = fmul <8 x float> %616, %620 %626 = fadd <8 x float> %625, %624 %627 = load <8 x float>, <8 x float>* %temp62 %628 = getelementptr float, float* %"fs_constants[]44", i32 9 %629 = load float, float* %628 %630 = insertelement <8 x float> undef, float %629, i32 0 %631 = shufflevector <8 x float> %630, <8 x float> undef, <8 x i32> zeroinitializer %632 = getelementptr float, float* %"fs_constants[]44", i32 5 %633 = load float, float* %632 %634 = insertelement <8 x float> undef, float %633, i32 0 %635 = shufflevector <8 x float> %634, <8 x float> undef, <8 x i32> zeroinitializer %636 = fmul <8 x float> %627, %631 %637 = fadd <8 x float> %636, %635 %638 = load <8 x float>, <8 x float>* %temp62 %639 = getelementptr float, float* %"fs_constants[]44", i32 10 %640 = load float, float* %639 %641 = insertelement <8 x float> undef, float %640, i32 0 %642 = shufflevector <8 x float> %641, <8 x float> undef, <8 x i32> zeroinitializer %643 = getelementptr float, float* %"fs_constants[]44", i32 6 %644 = load float, float* %643 %645 = insertelement <8 x float> undef, float %644, i32 0 %646 = shufflevector <8 x float> %645, <8 x float> undef, <8 x i32> zeroinitializer %647 = fmul <8 x float> %638, %642 %648 = fadd <8 x float> %647, %646 %649 = load <8 x float>, <8 x float>* %temp62 %650 = bitcast <8 x i32> %callmask89 to <8 x float> %651 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %649, <8 x float> %626, <8 x float> %650) store <8 x float> %651, <8 x float>* %temp62 %652 = load <8 x float>, <8 x float>* %temp63 %653 = bitcast <8 x i32> %callmask89 to <8 x float> %654 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %652, <8 x float> %637, <8 x float> %653) store <8 x float> %654, <8 x float>* %temp63 %655 = load <8 x float>, <8 x float>* %temp64 %656 = bitcast <8 x i32> %callmask89 to <8 x float> %657 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %655, <8 x float> %648, <8 x float> %656) store <8 x float> %657, <8 x float>* %temp64 %658 = load <8 x float>, <8 x float>* %temp66 %659 = getelementptr float, float* %"fs_constants[]44", i32 12 %660 = load float, float* %659 %661 = insertelement <8 x float> undef, float %660, i32 0 %662 = shufflevector <8 x float> %661, <8 x float> undef, <8 x i32> zeroinitializer %663 = load <8 x float>, <8 x float>* %temp62 %664 = fmul <8 x float> %658, %662 %665 = fadd <8 x float> %664, %663 %666 = load <8 x float>, <8 x float>* %temp66 %667 = getelementptr float, float* %"fs_constants[]44", i32 13 %668 = load float, float* %667 %669 = insertelement <8 x float> undef, float %668, i32 0 %670 = shufflevector <8 x float> %669, <8 x float> undef, <8 x i32> zeroinitializer %671 = load <8 x float>, <8 x float>* %temp63 %672 = fmul <8 x float> %666, %670 %673 = fadd <8 x float> %672, %671 %674 = load <8 x float>, <8 x float>* %temp66 %675 = getelementptr float, float* %"fs_constants[]44", i32 14 %676 = load float, float* %675 %677 = insertelement <8 x float> undef, float %676, i32 0 %678 = shufflevector <8 x float> %677, <8 x float> undef, <8 x i32> zeroinitializer %679 = load <8 x float>, <8 x float>* %temp64 %680 = fmul <8 x float> %674, %678 %681 = fadd <8 x float> %680, %679 %682 = load <8 x float>, <8 x float>* %temp62 %683 = bitcast <8 x i32> %callmask89 to <8 x float> %684 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %682, <8 x float> %665, <8 x float> %683) store <8 x float> %684, <8 x float>* %temp62 %685 = load <8 x float>, <8 x float>* %temp63 %686 = bitcast <8 x i32> %callmask89 to <8 x float> %687 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %685, <8 x float> %673, <8 x float> %686) store <8 x float> %687, <8 x float>* %temp63 %688 = load <8 x float>, <8 x float>* %temp64 %689 = bitcast <8 x i32> %callmask89 to <8 x float> %690 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %688, <8 x float> %681, <8 x float> %689) store <8 x float> %690, <8 x float>* %temp64 %691 = getelementptr float, float* %"fs_constants[]44", i32 0 %692 = load float, float* %691 %693 = insertelement <8 x float> undef, float %692, i32 0 %694 = shufflevector <8 x float> %693, <8 x float> undef, <8 x i32> zeroinitializer %695 = load <8 x float>, <8 x float>* %temp65 %696 = bitcast <8 x i32> %callmask89 to <8 x float> %697 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %695, <8 x float> %694, <8 x float> %696) store <8 x float> %697, <8 x float>* %temp65 %698 = load <8 x float>, <8 x float>* %temp62 %699 = load <8 x float>, <8 x float>* %temp63 %700 = load <8 x float>, <8 x float>* %temp64 %701 = load <8 x float>, <8 x float>* %temp65 %702 = call <8 x float> @llvm.x86.avx.max.ps.256(<8 x float> %698, <8 x float> zeroinitializer) %703 = call <8 x float> @llvm.x86.avx.min.ps.256(<8 x float> %702, <8 x float> ) %704 = load <8 x float>, <8 x float>* %temp62 %705 = bitcast <8 x i32> %callmask89 to <8 x float> %706 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %704, <8 x float> %703, <8 x float> %705) store <8 x float> %706, <8 x float>* %temp62 %707 = call <8 x float> @llvm.x86.avx.max.ps.256(<8 x float> %699, <8 x float> zeroinitializer) %708 = call <8 x float> @llvm.x86.avx.min.ps.256(<8 x float> %707, <8 x float> ) %709 = load <8 x float>, <8 x float>* %temp63 %710 = bitcast <8 x i32> %callmask89 to <8 x float> %711 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %709, <8 x float> %708, <8 x float> %710) store <8 x float> %711, <8 x float>* %temp63 %712 = call <8 x float> @llvm.x86.avx.max.ps.256(<8 x float> %700, <8 x float> zeroinitializer) %713 = call <8 x float> @llvm.x86.avx.min.ps.256(<8 x float> %712, <8 x float> ) %714 = load <8 x float>, <8 x float>* %temp64 %715 = bitcast <8 x i32> %callmask89 to <8 x float> %716 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %714, <8 x float> %713, <8 x float> %715) store <8 x float> %716, <8 x float>* %temp64 %717 = call <8 x float> @llvm.x86.avx.max.ps.256(<8 x float> %701, <8 x float> zeroinitializer) %718 = call <8 x float> @llvm.x86.avx.min.ps.256(<8 x float> %717, <8 x float> ) %719 = load <8 x float>, <8 x float>* %temp65 %720 = bitcast <8 x i32> %callmask89 to <8 x float> %721 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %719, <8 x float> %718, <8 x float> %720) store <8 x float> %721, <8 x float>* %temp65 %722 = load <8 x float>, <8 x float>* %temp66 %723 = bitcast <8 x i32> %callmask89 to <8 x float> %724 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %722, <8 x float> %32, <8 x float> %723) store <8 x float> %724, <8 x float>* %temp66 %725 = load <8 x float>, <8 x float>* %temp67 %726 = bitcast <8 x i32> %callmask89 to <8 x float> %727 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %725, <8 x float> %46, <8 x float> %726) store <8 x float> %727, <8 x float>* %temp67 %728 = load <8 x float>, <8 x float>* %temp66 %729 = load <8 x float>, <8 x float>* %temp67 %730 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 0 %context.texture0.width = load i32, i32* %730 %context.texture0.row_stride = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 6 %context.texture0.img_stride = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 7 %731 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 5 %context.texture0.base_ptr = load i8*, i8** %731 %context.texture0.mip_offsets = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 8 %732 = insertelement <4 x i32> undef, i32 %context.texture0.width, i32 0 %733 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 1 %context.texture0.height = load i32, i32* %733 %734 = insertelement <4 x i32> %732, i32 %context.texture0.height, i32 1 %735 = getelementptr { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }, { [32 x float*], [32 x i32], [32 x float*], [32 x i32], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [32 x { i32, i32, i32, i32, i32, i8*, [16 x i32], [16 x i32], [16 x i32] }], [32 x { float, float, float, [4 x float] }], [10 x { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i8, i32, i32, i32, i32, [2 x [15 x i32]], i8* }] }* %hPrivateData, i32 0, i32 6, i32 0, i32 3 %context.texture0.first_level = load i32, i32* %735 %736 = shufflevector <8 x float> %728, <8 x float> %728, <4 x i32> %737 = shufflevector <8 x float> %729, <8 x float> %729, <4 x i32> store <16 x i8> zeroinitializer, <16 x i8>* %packed_var %738 = insertelement <4 x i32> undef, i32 %context.texture0.first_level, i32 0 %739 = shufflevector <4 x i32> %738, <4 x i32> undef, <4 x i32> zeroinitializer %minify90 = lshr <4 x i32> %734, %739 %740 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify90, <4 x i32> ) %741 = getelementptr [16 x i32], [16 x i32]* %context.texture0.row_stride, i32 0, i32 %context.texture0.first_level %742 = load i32, i32* %741 %743 = insertelement <4 x i32> undef, i32 %742, i32 0 %744 = shufflevector <4 x i32> %743, <4 x i32> undef, <4 x i32> zeroinitializer %745 = getelementptr [16 x i32], [16 x i32]* %context.texture0.mip_offsets, i32 0, i32 %context.texture0.first_level %746 = load i32, i32* %745 %747 = getelementptr i8, i8* %context.texture0.base_ptr, i32 %746 %748 = shufflevector <4 x i32> %740, <4 x i32> undef, <4 x i32> zeroinitializer %749 = shufflevector <4 x i32> %740, <4 x i32> undef, <4 x i32> %750 = shl <4 x i32> %740, %751 = sitofp <4 x i32> %750 to <4 x float> %752 = shufflevector <4 x float> %751, <4 x float> undef, <4 x i32> zeroinitializer %753 = shufflevector <4 x float> %751, <4 x float> undef, <4 x i32> %754 = fmul <4 x float> %736, %752 %755 = fmul <4 x float> %737, %753 %756 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %754) %757 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %755) %758 = add <4 x i32> %756, %759 = add <4 x i32> %757, %760 = ashr <4 x i32> %758, %761 = ashr <4 x i32> %759, %762 = and <4 x i32> %758, %763 = and <4 x i32> %759, %764 = sub <4 x i32> %748, %765 = sitofp <4 x i32> %748 to <4 x float> %766 = sub <4 x i32> %748, %767 = call <4 x float> @llvm.floor.v4f32(<4 x float> %736) %768 = fsub <4 x float> %736, %767 %769 = fmul <4 x float> %768, %765 %770 = fmul <4 x float> %769, %771 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %770) %772 = add <4 x i32> %771, %773 = and <4 x i32> %772, %774 = ashr <4 x i32> %772, %775 = icmp slt <4 x i32> %774, zeroinitializer %776 = sext <4 x i1> %775 to <4 x i32> %777 = bitcast <4 x i32> %776 to <16 x i8> %778 = bitcast <4 x i32> %766 to <16 x i8> %779 = bitcast <4 x i32> %774 to <16 x i8> %780 = call <16 x i8> @llvm.x86.sse41.pblendvb(<16 x i8> %779, <16 x i8> %778, <16 x i8> %777) %781 = bitcast <16 x i8> %780 to <4 x i32> %782 = icmp ne <4 x i32> %781, %764 %783 = sext <4 x i1> %782 to <4 x i32> %784 = mul <4 x i32> %781, %785 = add <4 x i32> %784, %786 = and <4 x i32> %785, %783 %787 = sub <4 x i32> %749, %788 = sitofp <4 x i32> %749 to <4 x float> %789 = sub <4 x i32> %749, %790 = call <4 x float> @llvm.floor.v4f32(<4 x float> %737) %791 = fsub <4 x float> %737, %790 %792 = fmul <4 x float> %791, %788 %793 = fmul <4 x float> %792, %794 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %793) %795 = add <4 x i32> %794, %796 = and <4 x i32> %795, %797 = ashr <4 x i32> %795, %798 = icmp slt <4 x i32> %797, zeroinitializer %799 = sext <4 x i1> %798 to <4 x i32> %800 = bitcast <4 x i32> %799 to <16 x i8> %801 = bitcast <4 x i32> %789 to <16 x i8> %802 = bitcast <4 x i32> %797 to <16 x i8> %803 = call <16 x i8> @llvm.x86.sse41.pblendvb(<16 x i8> %802, <16 x i8> %801, <16 x i8> %800) %804 = bitcast <16 x i8> %803 to <4 x i32> %805 = icmp ne <4 x i32> %804, %787 %806 = sext <4 x i1> %805 to <4 x i32> %807 = mul <4 x i32> %804, %744 %808 = add <4 x i32> %807, %744 %809 = and <4 x i32> %808, %806 %810 = add <4 x i32> %784, %807 %811 = add <4 x i32> %784, %809 %812 = add <4 x i32> %786, %807 %813 = add <4 x i32> %786, %809 %814 = add <4 x i32> %784, %807 %815 = add <4 x i32> %784, %809 %816 = add <4 x i32> %786, %807 %817 = add <4 x i32> %786, %809 %818 = bitcast <4 x i32> %773 to <16 x i8> %819 = bitcast <4 x i32> %796 to <16 x i8> %820 = shufflevector <16 x i8> %818, <16 x i8> undef, <16 x i32> %821 = shufflevector <16 x i8> %819, <16 x i8> undef, <16 x i32> %822 = extractelement <4 x i32> %810, i32 0 %823 = getelementptr i8, i8* %747, i32 %822 %824 = bitcast i8* %823 to i32* %825 = load i32, i32* %824 %826 = insertelement <4 x i32> undef, i32 %825, i32 0 %827 = extractelement <4 x i32> %810, i32 1 %828 = getelementptr i8, i8* %747, i32 %827 %829 = bitcast i8* %828 to i32* %830 = load i32, i32* %829 %831 = insertelement <4 x i32> %826, i32 %830, i32 1 %832 = extractelement <4 x i32> %810, i32 2 %833 = getelementptr i8, i8* %747, i32 %832 %834 = bitcast i8* %833 to i32* %835 = load i32, i32* %834 %836 = insertelement <4 x i32> %831, i32 %835, i32 2 %837 = extractelement <4 x i32> %810, i32 3 %838 = getelementptr i8, i8* %747, i32 %837 %839 = bitcast i8* %838 to i32* %840 = load i32, i32* %839 %841 = insertelement <4 x i32> %836, i32 %840, i32 3 %842 = bitcast <4 x i32> %841 to <16 x i8> %843 = extractelement <4 x i32> %812, i32 0 %844 = getelementptr i8, i8* %747, i32 %843 %845 = bitcast i8* %844 to i32* %846 = load i32, i32* %845 %847 = insertelement <4 x i32> undef, i32 %846, i32 0 %848 = extractelement <4 x i32> %812, i32 1 %849 = getelementptr i8, i8* %747, i32 %848 %850 = bitcast i8* %849 to i32* %851 = load i32, i32* %850 %852 = insertelement <4 x i32> %847, i32 %851, i32 1 %853 = extractelement <4 x i32> %812, i32 2 %854 = getelementptr i8, i8* %747, i32 %853 %855 = bitcast i8* %854 to i32* %856 = load i32, i32* %855 %857 = insertelement <4 x i32> %852, i32 %856, i32 2 %858 = extractelement <4 x i32> %812, i32 3 %859 = getelementptr i8, i8* %747, i32 %858 %860 = bitcast i8* %859 to i32* %861 = load i32, i32* %860 %862 = insertelement <4 x i32> %857, i32 %861, i32 3 %863 = bitcast <4 x i32> %862 to <16 x i8> %864 = extractelement <4 x i32> %811, i32 0 %865 = getelementptr i8, i8* %747, i32 %864 %866 = bitcast i8* %865 to i32* %867 = load i32, i32* %866 %868 = insertelement <4 x i32> undef, i32 %867, i32 0 %869 = extractelement <4 x i32> %811, i32 1 %870 = getelementptr i8, i8* %747, i32 %869 %871 = bitcast i8* %870 to i32* %872 = load i32, i32* %871 %873 = insertelement <4 x i32> %868, i32 %872, i32 1 %874 = extractelement <4 x i32> %811, i32 2 %875 = getelementptr i8, i8* %747, i32 %874 %876 = bitcast i8* %875 to i32* %877 = load i32, i32* %876 %878 = insertelement <4 x i32> %873, i32 %877, i32 2 %879 = extractelement <4 x i32> %811, i32 3 %880 = getelementptr i8, i8* %747, i32 %879 %881 = bitcast i8* %880 to i32* %882 = load i32, i32* %881 %883 = insertelement <4 x i32> %878, i32 %882, i32 3 %884 = bitcast <4 x i32> %883 to <16 x i8> %885 = extractelement <4 x i32> %813, i32 0 %886 = getelementptr i8, i8* %747, i32 %885 %887 = bitcast i8* %886 to i32* %888 = load i32, i32* %887 %889 = insertelement <4 x i32> undef, i32 %888, i32 0 %890 = extractelement <4 x i32> %813, i32 1 %891 = getelementptr i8, i8* %747, i32 %890 %892 = bitcast i8* %891 to i32* %893 = load i32, i32* %892 %894 = insertelement <4 x i32> %889, i32 %893, i32 1 %895 = extractelement <4 x i32> %813, i32 2 %896 = getelementptr i8, i8* %747, i32 %895 %897 = bitcast i8* %896 to i32* %898 = load i32, i32* %897 %899 = insertelement <4 x i32> %894, i32 %898, i32 2 %900 = extractelement <4 x i32> %813, i32 3 %901 = getelementptr i8, i8* %747, i32 %900 %902 = bitcast i8* %901 to i32* %903 = load i32, i32* %902 %904 = insertelement <4 x i32> %899, i32 %903, i32 3 %905 = bitcast <4 x i32> %904 to <16 x i8> %906 = shufflevector <16 x i8> %820, <16 x i8> zeroinitializer, <16 x i32> %907 = shufflevector <16 x i8> %820, <16 x i8> zeroinitializer, <16 x i32> %908 = bitcast <16 x i8> %906 to <8 x i16> %909 = bitcast <16 x i8> %907 to <8 x i16> %910 = shufflevector <16 x i8> %842, <16 x i8> zeroinitializer, <16 x i32> %911 = shufflevector <16 x i8> %842, <16 x i8> zeroinitializer, <16 x i32> %912 = bitcast <16 x i8> %910 to <8 x i16> %913 = bitcast <16 x i8> %911 to <8 x i16> %914 = shufflevector <16 x i8> %863, <16 x i8> zeroinitializer, <16 x i32> %915 = shufflevector <16 x i8> %863, <16 x i8> zeroinitializer, <16 x i32> %916 = bitcast <16 x i8> %914 to <8 x i16> %917 = bitcast <16 x i8> %915 to <8 x i16> %918 = sub <8 x i16> %916, %912 %919 = mul <8 x i16> %908, %918 %920 = lshr <8 x i16> %919, %921 = add <8 x i16> %912, %920 %922 = and <8 x i16> %921, %923 = sub <8 x i16> %917, %913 %924 = mul <8 x i16> %909, %923 %925 = lshr <8 x i16> %924, %926 = add <8 x i16> %913, %925 %927 = and <8 x i16> %926, %928 = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %922, <8 x i16> %927) %929 = shufflevector <16 x i8> %820, <16 x i8> zeroinitializer, <16 x i32> %930 = shufflevector <16 x i8> %820, <16 x i8> zeroinitializer, <16 x i32> %931 = bitcast <16 x i8> %929 to <8 x i16> %932 = bitcast <16 x i8> %930 to <8 x i16> %933 = shufflevector <16 x i8> %884, <16 x i8> zeroinitializer, <16 x i32> %934 = shufflevector <16 x i8> %884, <16 x i8> zeroinitializer, <16 x i32> %935 = bitcast <16 x i8> %933 to <8 x i16> %936 = bitcast <16 x i8> %934 to <8 x i16> %937 = shufflevector <16 x i8> %905, <16 x i8> zeroinitializer, <16 x i32> %938 = shufflevector <16 x i8> %905, <16 x i8> zeroinitializer, <16 x i32> %939 = bitcast <16 x i8> %937 to <8 x i16> %940 = bitcast <16 x i8> %938 to <8 x i16> %941 = sub <8 x i16> %939, %935 %942 = mul <8 x i16> %931, %941 %943 = lshr <8 x i16> %942, %944 = add <8 x i16> %935, %943 %945 = and <8 x i16> %944, %946 = sub <8 x i16> %940, %936 %947 = mul <8 x i16> %932, %946 %948 = lshr <8 x i16> %947, %949 = add <8 x i16> %936, %948 %950 = and <8 x i16> %949, %951 = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %945, <8 x i16> %950) %952 = shufflevector <16 x i8> %821, <16 x i8> zeroinitializer, <16 x i32> %953 = shufflevector <16 x i8> %821, <16 x i8> zeroinitializer, <16 x i32> %954 = bitcast <16 x i8> %952 to <8 x i16> %955 = bitcast <16 x i8> %953 to <8 x i16> %956 = shufflevector <16 x i8> %928, <16 x i8> zeroinitializer, <16 x i32> %957 = shufflevector <16 x i8> %928, <16 x i8> zeroinitializer, <16 x i32> %958 = bitcast <16 x i8> %956 to <8 x i16> %959 = bitcast <16 x i8> %957 to <8 x i16> %960 = shufflevector <16 x i8> %951, <16 x i8> zeroinitializer, <16 x i32> %961 = shufflevector <16 x i8> %951, <16 x i8> zeroinitializer, <16 x i32> %962 = bitcast <16 x i8> %960 to <8 x i16> %963 = bitcast <16 x i8> %961 to <8 x i16> %964 = sub <8 x i16> %962, %958 %965 = mul <8 x i16> %954, %964 %966 = lshr <8 x i16> %965, %967 = add <8 x i16> %958, %966 %968 = and <8 x i16> %967, %969 = sub <8 x i16> %963, %959 %970 = mul <8 x i16> %955, %969 %971 = lshr <8 x i16> %970, %972 = add <8 x i16> %959, %971 %973 = and <8 x i16> %972, %974 = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %968, <8 x i16> %973) store <16 x i8> %974, <16 x i8>* %packed_var %975 = load <16 x i8>, <16 x i8>* %packed_var %976 = bitcast <16 x i8> %975 to <4 x i32> %977 = and <4 x i32> %976, %978 = sitofp <4 x i32> %977 to <4 x float> %979 = fmul <4 x float> %978, %980 = lshr <4 x i32> %976, %981 = and <4 x i32> %980, %982 = sitofp <4 x i32> %981 to <4 x float> %983 = fmul <4 x float> %982, %984 = lshr <4 x i32> %976, %985 = and <4 x i32> %984, %986 = sitofp <4 x i32> %985 to <4 x float> %987 = fmul <4 x float> %986, %988 = lshr <4 x i32> %976, %989 = sitofp <4 x i32> %988 to <4 x float> %990 = fmul <4 x float> %989, %991 = shufflevector <8 x float> %728, <8 x float> %728, <4 x i32> %992 = shufflevector <8 x float> %729, <8 x float> %729, <4 x i32> store <16 x i8> zeroinitializer, <16 x i8>* %packed_var91 %993 = insertelement <4 x i32> undef, i32 %context.texture0.first_level, i32 0 %994 = shufflevector <4 x i32> %993, <4 x i32> undef, <4 x i32> zeroinitializer %minify92 = lshr <4 x i32> %734, %994 %995 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify92, <4 x i32> ) %996 = getelementptr [16 x i32], [16 x i32]* %context.texture0.row_stride, i32 0, i32 %context.texture0.first_level %997 = load i32, i32* %996 %998 = insertelement <4 x i32> undef, i32 %997, i32 0 %999 = shufflevector <4 x i32> %998, <4 x i32> undef, <4 x i32> zeroinitializer %1000 = getelementptr [16 x i32], [16 x i32]* %context.texture0.mip_offsets, i32 0, i32 %context.texture0.first_level %1001 = load i32, i32* %1000 %1002 = getelementptr i8, i8* %context.texture0.base_ptr, i32 %1001 %1003 = shufflevector <4 x i32> %995, <4 x i32> undef, <4 x i32> zeroinitializer %1004 = shufflevector <4 x i32> %995, <4 x i32> undef, <4 x i32> %1005 = shl <4 x i32> %995, %1006 = sitofp <4 x i32> %1005 to <4 x float> %1007 = shufflevector <4 x float> %1006, <4 x float> undef, <4 x i32> zeroinitializer %1008 = shufflevector <4 x float> %1006, <4 x float> undef, <4 x i32> %1009 = fmul <4 x float> %991, %1007 %1010 = fmul <4 x float> %992, %1008 %1011 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %1009) %1012 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %1010) %1013 = add <4 x i32> %1011, %1014 = add <4 x i32> %1012, %1015 = ashr <4 x i32> %1013, %1016 = ashr <4 x i32> %1014, %1017 = and <4 x i32> %1013, %1018 = and <4 x i32> %1014, %1019 = sub <4 x i32> %1003, %1020 = sitofp <4 x i32> %1003 to <4 x float> %1021 = sub <4 x i32> %1003, %1022 = call <4 x float> @llvm.floor.v4f32(<4 x float> %991) %1023 = fsub <4 x float> %991, %1022 %1024 = fmul <4 x float> %1023, %1020 %1025 = fmul <4 x float> %1024, %1026 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %1025) %1027 = add <4 x i32> %1026, %1028 = and <4 x i32> %1027, %1029 = ashr <4 x i32> %1027, %1030 = icmp slt <4 x i32> %1029, zeroinitializer %1031 = sext <4 x i1> %1030 to <4 x i32> %1032 = bitcast <4 x i32> %1031 to <16 x i8> %1033 = bitcast <4 x i32> %1021 to <16 x i8> %1034 = bitcast <4 x i32> %1029 to <16 x i8> %1035 = call <16 x i8> @llvm.x86.sse41.pblendvb(<16 x i8> %1034, <16 x i8> %1033, <16 x i8> %1032) %1036 = bitcast <16 x i8> %1035 to <4 x i32> %1037 = icmp ne <4 x i32> %1036, %1019 %1038 = sext <4 x i1> %1037 to <4 x i32> %1039 = mul <4 x i32> %1036, %1040 = add <4 x i32> %1039, %1041 = and <4 x i32> %1040, %1038 %1042 = sub <4 x i32> %1004, %1043 = sitofp <4 x i32> %1004 to <4 x float> %1044 = sub <4 x i32> %1004, %1045 = call <4 x float> @llvm.floor.v4f32(<4 x float> %992) %1046 = fsub <4 x float> %992, %1045 %1047 = fmul <4 x float> %1046, %1043 %1048 = fmul <4 x float> %1047, %1049 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %1048) %1050 = add <4 x i32> %1049, %1051 = and <4 x i32> %1050, %1052 = ashr <4 x i32> %1050, %1053 = icmp slt <4 x i32> %1052, zeroinitializer %1054 = sext <4 x i1> %1053 to <4 x i32> %1055 = bitcast <4 x i32> %1054 to <16 x i8> %1056 = bitcast <4 x i32> %1044 to <16 x i8> %1057 = bitcast <4 x i32> %1052 to <16 x i8> %1058 = call <16 x i8> @llvm.x86.sse41.pblendvb(<16 x i8> %1057, <16 x i8> %1056, <16 x i8> %1055) %1059 = bitcast <16 x i8> %1058 to <4 x i32> %1060 = icmp ne <4 x i32> %1059, %1042 %1061 = sext <4 x i1> %1060 to <4 x i32> %1062 = mul <4 x i32> %1059, %999 %1063 = add <4 x i32> %1062, %999 %1064 = and <4 x i32> %1063, %1061 %1065 = add <4 x i32> %1039, %1062 %1066 = add <4 x i32> %1039, %1064 %1067 = add <4 x i32> %1041, %1062 %1068 = add <4 x i32> %1041, %1064 %1069 = add <4 x i32> %1039, %1062 %1070 = add <4 x i32> %1039, %1064 %1071 = add <4 x i32> %1041, %1062 %1072 = add <4 x i32> %1041, %1064 %1073 = bitcast <4 x i32> %1028 to <16 x i8> %1074 = bitcast <4 x i32> %1051 to <16 x i8> %1075 = shufflevector <16 x i8> %1073, <16 x i8> undef, <16 x i32> %1076 = shufflevector <16 x i8> %1074, <16 x i8> undef, <16 x i32> %1077 = extractelement <4 x i32> %1065, i32 0 %1078 = getelementptr i8, i8* %1002, i32 %1077 %1079 = bitcast i8* %1078 to i32* %1080 = load i32, i32* %1079 %1081 = insertelement <4 x i32> undef, i32 %1080, i32 0 %1082 = extractelement <4 x i32> %1065, i32 1 %1083 = getelementptr i8, i8* %1002, i32 %1082 %1084 = bitcast i8* %1083 to i32* %1085 = load i32, i32* %1084 %1086 = insertelement <4 x i32> %1081, i32 %1085, i32 1 %1087 = extractelement <4 x i32> %1065, i32 2 %1088 = getelementptr i8, i8* %1002, i32 %1087 %1089 = bitcast i8* %1088 to i32* %1090 = load i32, i32* %1089 %1091 = insertelement <4 x i32> %1086, i32 %1090, i32 2 %1092 = extractelement <4 x i32> %1065, i32 3 %1093 = getelementptr i8, i8* %1002, i32 %1092 %1094 = bitcast i8* %1093 to i32* %1095 = load i32, i32* %1094 %1096 = insertelement <4 x i32> %1091, i32 %1095, i32 3 %1097 = bitcast <4 x i32> %1096 to <16 x i8> %1098 = extractelement <4 x i32> %1067, i32 0 %1099 = getelementptr i8, i8* %1002, i32 %1098 %1100 = bitcast i8* %1099 to i32* %1101 = load i32, i32* %1100 %1102 = insertelement <4 x i32> undef, i32 %1101, i32 0 %1103 = extractelement <4 x i32> %1067, i32 1 %1104 = getelementptr i8, i8* %1002, i32 %1103 %1105 = bitcast i8* %1104 to i32* %1106 = load i32, i32* %1105 %1107 = insertelement <4 x i32> %1102, i32 %1106, i32 1 %1108 = extractelement <4 x i32> %1067, i32 2 %1109 = getelementptr i8, i8* %1002, i32 %1108 %1110 = bitcast i8* %1109 to i32* %1111 = load i32, i32* %1110 %1112 = insertelement <4 x i32> %1107, i32 %1111, i32 2 %1113 = extractelement <4 x i32> %1067, i32 3 %1114 = getelementptr i8, i8* %1002, i32 %1113 %1115 = bitcast i8* %1114 to i32* %1116 = load i32, i32* %1115 %1117 = insertelement <4 x i32> %1112, i32 %1116, i32 3 %1118 = bitcast <4 x i32> %1117 to <16 x i8> %1119 = extractelement <4 x i32> %1066, i32 0 %1120 = getelementptr i8, i8* %1002, i32 %1119 %1121 = bitcast i8* %1120 to i32* %1122 = load i32, i32* %1121 %1123 = insertelement <4 x i32> undef, i32 %1122, i32 0 %1124 = extractelement <4 x i32> %1066, i32 1 %1125 = getelementptr i8, i8* %1002, i32 %1124 %1126 = bitcast i8* %1125 to i32* %1127 = load i32, i32* %1126 %1128 = insertelement <4 x i32> %1123, i32 %1127, i32 1 %1129 = extractelement <4 x i32> %1066, i32 2 %1130 = getelementptr i8, i8* %1002, i32 %1129 %1131 = bitcast i8* %1130 to i32* %1132 = load i32, i32* %1131 %1133 = insertelement <4 x i32> %1128, i32 %1132, i32 2 %1134 = extractelement <4 x i32> %1066, i32 3 %1135 = getelementptr i8, i8* %1002, i32 %1134 %1136 = bitcast i8* %1135 to i32* %1137 = load i32, i32* %1136 %1138 = insertelement <4 x i32> %1133, i32 %1137, i32 3 %1139 = bitcast <4 x i32> %1138 to <16 x i8> %1140 = extractelement <4 x i32> %1068, i32 0 %1141 = getelementptr i8, i8* %1002, i32 %1140 %1142 = bitcast i8* %1141 to i32* %1143 = load i32, i32* %1142 %1144 = insertelement <4 x i32> undef, i32 %1143, i32 0 %1145 = extractelement <4 x i32> %1068, i32 1 %1146 = getelementptr i8, i8* %1002, i32 %1145 %1147 = bitcast i8* %1146 to i32* %1148 = load i32, i32* %1147 %1149 = insertelement <4 x i32> %1144, i32 %1148, i32 1 %1150 = extractelement <4 x i32> %1068, i32 2 %1151 = getelementptr i8, i8* %1002, i32 %1150 %1152 = bitcast i8* %1151 to i32* %1153 = load i32, i32* %1152 %1154 = insertelement <4 x i32> %1149, i32 %1153, i32 2 %1155 = extractelement <4 x i32> %1068, i32 3 %1156 = getelementptr i8, i8* %1002, i32 %1155 %1157 = bitcast i8* %1156 to i32* %1158 = load i32, i32* %1157 %1159 = insertelement <4 x i32> %1154, i32 %1158, i32 3 %1160 = bitcast <4 x i32> %1159 to <16 x i8> %1161 = shufflevector <16 x i8> %1075, <16 x i8> zeroinitializer, <16 x i32> %1162 = shufflevector <16 x i8> %1075, <16 x i8> zeroinitializer, <16 x i32> %1163 = bitcast <16 x i8> %1161 to <8 x i16> %1164 = bitcast <16 x i8> %1162 to <8 x i16> %1165 = shufflevector <16 x i8> %1097, <16 x i8> zeroinitializer, <16 x i32> %1166 = shufflevector <16 x i8> %1097, <16 x i8> zeroinitializer, <16 x i32> %1167 = bitcast <16 x i8> %1165 to <8 x i16> %1168 = bitcast <16 x i8> %1166 to <8 x i16> %1169 = shufflevector <16 x i8> %1118, <16 x i8> zeroinitializer, <16 x i32> %1170 = shufflevector <16 x i8> %1118, <16 x i8> zeroinitializer, <16 x i32> %1171 = bitcast <16 x i8> %1169 to <8 x i16> %1172 = bitcast <16 x i8> %1170 to <8 x i16> %1173 = sub <8 x i16> %1171, %1167 %1174 = mul <8 x i16> %1163, %1173 %1175 = lshr <8 x i16> %1174, %1176 = add <8 x i16> %1167, %1175 %1177 = and <8 x i16> %1176, %1178 = sub <8 x i16> %1172, %1168 %1179 = mul <8 x i16> %1164, %1178 %1180 = lshr <8 x i16> %1179, %1181 = add <8 x i16> %1168, %1180 %1182 = and <8 x i16> %1181, %1183 = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %1177, <8 x i16> %1182) %1184 = shufflevector <16 x i8> %1075, <16 x i8> zeroinitializer, <16 x i32> %1185 = shufflevector <16 x i8> %1075, <16 x i8> zeroinitializer, <16 x i32> %1186 = bitcast <16 x i8> %1184 to <8 x i16> %1187 = bitcast <16 x i8> %1185 to <8 x i16> %1188 = shufflevector <16 x i8> %1139, <16 x i8> zeroinitializer, <16 x i32> %1189 = shufflevector <16 x i8> %1139, <16 x i8> zeroinitializer, <16 x i32> %1190 = bitcast <16 x i8> %1188 to <8 x i16> %1191 = bitcast <16 x i8> %1189 to <8 x i16> %1192 = shufflevector <16 x i8> %1160, <16 x i8> zeroinitializer, <16 x i32> %1193 = shufflevector <16 x i8> %1160, <16 x i8> zeroinitializer, <16 x i32> %1194 = bitcast <16 x i8> %1192 to <8 x i16> %1195 = bitcast <16 x i8> %1193 to <8 x i16> %1196 = sub <8 x i16> %1194, %1190 %1197 = mul <8 x i16> %1186, %1196 %1198 = lshr <8 x i16> %1197, %1199 = add <8 x i16> %1190, %1198 %1200 = and <8 x i16> %1199, %1201 = sub <8 x i16> %1195, %1191 %1202 = mul <8 x i16> %1187, %1201 %1203 = lshr <8 x i16> %1202, %1204 = add <8 x i16> %1191, %1203 %1205 = and <8 x i16> %1204, %1206 = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %1200, <8 x i16> %1205) %1207 = shufflevector <16 x i8> %1076, <16 x i8> zeroinitializer, <16 x i32> %1208 = shufflevector <16 x i8> %1076, <16 x i8> zeroinitializer, <16 x i32> %1209 = bitcast <16 x i8> %1207 to <8 x i16> %1210 = bitcast <16 x i8> %1208 to <8 x i16> %1211 = shufflevector <16 x i8> %1183, <16 x i8> zeroinitializer, <16 x i32> %1212 = shufflevector <16 x i8> %1183, <16 x i8> zeroinitializer, <16 x i32> %1213 = bitcast <16 x i8> %1211 to <8 x i16> %1214 = bitcast <16 x i8> %1212 to <8 x i16> %1215 = shufflevector <16 x i8> %1206, <16 x i8> zeroinitializer, <16 x i32> %1216 = shufflevector <16 x i8> %1206, <16 x i8> zeroinitializer, <16 x i32> %1217 = bitcast <16 x i8> %1215 to <8 x i16> %1218 = bitcast <16 x i8> %1216 to <8 x i16> %1219 = sub <8 x i16> %1217, %1213 %1220 = mul <8 x i16> %1209, %1219 %1221 = lshr <8 x i16> %1220, %1222 = add <8 x i16> %1213, %1221 %1223 = and <8 x i16> %1222, %1224 = sub <8 x i16> %1218, %1214 %1225 = mul <8 x i16> %1210, %1224 %1226 = lshr <8 x i16> %1225, %1227 = add <8 x i16> %1214, %1226 %1228 = and <8 x i16> %1227, %1229 = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %1223, <8 x i16> %1228) store <16 x i8> %1229, <16 x i8>* %packed_var91 %1230 = load <16 x i8>, <16 x i8>* %packed_var91 %1231 = bitcast <16 x i8> %1230 to <4 x i32> %1232 = and <4 x i32> %1231, %1233 = sitofp <4 x i32> %1232 to <4 x float> %1234 = fmul <4 x float> %1233, %1235 = lshr <4 x i32> %1231, %1236 = and <4 x i32> %1235, %1237 = sitofp <4 x i32> %1236 to <4 x float> %1238 = fmul <4 x float> %1237, %1239 = lshr <4 x i32> %1231, %1240 = and <4 x i32> %1239, %1241 = sitofp <4 x i32> %1240 to <4 x float> %1242 = fmul <4 x float> %1241, %1243 = lshr <4 x i32> %1231, %1244 = sitofp <4 x i32> %1243 to <4 x float> %1245 = fmul <4 x float> %1244, %1246 = shufflevector <4 x float> %979, <4 x float> %1234, <8 x i32> %1247 = shufflevector <4 x float> %983, <4 x float> %1238, <8 x i32> %1248 = shufflevector <4 x float> %987, <4 x float> %1242, <8 x i32> %1249 = shufflevector <4 x float> %990, <4 x float> %1245, <8 x i32> %1250 = load <8 x float>, <8 x float>* %temp66 %1251 = bitcast <8 x i32> %callmask89 to <8 x float> %1252 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1250, <8 x float> %1246, <8 x float> %1251) store <8 x float> %1252, <8 x float>* %temp66 %1253 = load <8 x float>, <8 x float>* %temp67 %1254 = bitcast <8 x i32> %callmask89 to <8 x float> %1255 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1253, <8 x float> %1247, <8 x float> %1254) store <8 x float> %1255, <8 x float>* %temp67 %1256 = load <8 x float>, <8 x float>* %temp68 %1257 = bitcast <8 x i32> %callmask89 to <8 x float> %1258 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1256, <8 x float> %1248, <8 x float> %1257) store <8 x float> %1258, <8 x float>* %temp68 %1259 = load <8 x float>, <8 x float>* %temp69 %1260 = bitcast <8 x i32> %callmask89 to <8 x float> %1261 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1259, <8 x float> %1249, <8 x float> %1260) store <8 x float> %1261, <8 x float>* %temp69 %1262 = load <8 x float>, <8 x float>* %temp62 %1263 = load <8 x float>, <8 x float>* %temp66 %1264 = fmul <8 x float> %1262, %1263 %1265 = load <8 x float>, <8 x float>* %temp63 %1266 = load <8 x float>, <8 x float>* %temp67 %1267 = fmul <8 x float> %1265, %1266 %1268 = load <8 x float>, <8 x float>* %temp64 %1269 = load <8 x float>, <8 x float>* %temp68 %1270 = fmul <8 x float> %1268, %1269 %1271 = load <8 x float>, <8 x float>* %temp65 %1272 = load <8 x float>, <8 x float>* %temp69 %1273 = fmul <8 x float> %1271, %1272 %1274 = load <8 x float>, <8 x float>* %temp62 %1275 = bitcast <8 x i32> %callmask89 to <8 x float> %1276 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1274, <8 x float> %1264, <8 x float> %1275) store <8 x float> %1276, <8 x float>* %temp62 %1277 = load <8 x float>, <8 x float>* %temp63 %1278 = bitcast <8 x i32> %callmask89 to <8 x float> %1279 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1277, <8 x float> %1267, <8 x float> %1278) store <8 x float> %1279, <8 x float>* %temp63 %1280 = load <8 x float>, <8 x float>* %temp64 %1281 = bitcast <8 x i32> %callmask89 to <8 x float> %1282 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1280, <8 x float> %1270, <8 x float> %1281) store <8 x float> %1282, <8 x float>* %temp64 %1283 = load <8 x float>, <8 x float>* %temp65 %1284 = bitcast <8 x i32> %callmask89 to <8 x float> %1285 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1283, <8 x float> %1273, <8 x float> %1284) store <8 x float> %1285, <8 x float>* %temp65 %1286 = load <8 x float>, <8 x float>* %temp65 %1287 = fcmp oge <8 x float> zeroinitializer, %1286 %1288 = sext <8 x i1> %1287 to <8 x i32> %1289 = bitcast <8 x i32> %1288 to <8 x float> %1290 = load <8 x float>, <8 x float>* %temp54 %1291 = bitcast <8 x i32> %callmask89 to <8 x float> %1292 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1290, <8 x float> %1289, <8 x float> %1291) store <8 x float> %1292, <8 x float>* %temp54 %1293 = load <8 x float>, <8 x float>* %temp54 %1294 = bitcast <8 x float> %1293 to <8 x i32> %1295 = and <8 x i32> %1294, %1296 = bitcast <8 x i32> %1295 to <8 x float> %1297 = load <8 x float>, <8 x float>* %temp54 %1298 = bitcast <8 x i32> %callmask89 to <8 x float> %1299 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1297, <8 x float> %1296, <8 x float> %1298) store <8 x float> %1299, <8 x float>* %temp54 %1300 = load <8 x float>, <8 x float>* %temp54 %1301 = fsub <8 x float> , %1300 %1302 = load <8 x float>, <8 x float>* %temp54 %1303 = fsub <8 x float> , %1302 %1304 = load <8 x float>, <8 x float>* %temp54 %1305 = fsub <8 x float> , %1304 %1306 = load <8 x float>, <8 x float>* %temp54 %1307 = fsub <8 x float> , %1306 %1308 = load <8 x float>, <8 x float>* %temp54 %1309 = fsub <8 x float> , %1308 %1310 = fcmp uge <8 x float> %1309, zeroinitializer %1311 = sext <8 x i1> %1310 to <8 x i32> %kilp = xor <8 x i32> %callmask89, %1312 = or <8 x i32> %1311, %kilp %1313 = load <8 x i32>, <8 x i32>* %execution_mask %1314 = and <8 x i32> %1313, %1312 store <8 x i32> %1314, <8 x i32>* %execution_mask %1315 = load <8 x float>, <8 x float>* %temp62 %1316 = load <8 x float>, <8 x float>* %temp63 %1317 = load <8 x float>, <8 x float>* %temp64 %1318 = load <8 x float>, <8 x float>* %temp65 %1319 = load <8 x float>, <8 x float>* %output %1320 = bitcast <8 x i32> %callmask89 to <8 x float> %1321 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1319, <8 x float> %1315, <8 x float> %1320) store <8 x float> %1321, <8 x float>* %output %1322 = load <8 x float>, <8 x float>* %output36 %1323 = bitcast <8 x i32> %callmask89 to <8 x float> %1324 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1322, <8 x float> %1316, <8 x float> %1323) store <8 x float> %1324, <8 x float>* %output36 %1325 = load <8 x float>, <8 x float>* %output37 %1326 = bitcast <8 x i32> %callmask89 to <8 x float> %1327 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1325, <8 x float> %1317, <8 x float> %1326) store <8 x float> %1327, <8 x float>* %output37 %1328 = load <8 x float>, <8 x float>* %output38 %1329 = bitcast <8 x i32> %callmask89 to <8 x float> %1330 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1328, <8 x float> %1318, <8 x float> %1329) store <8 x float> %1330, <8 x float>* %output38 %1331 = load <8 x float>, <8 x float>* %temp58 %1332 = load <8 x float>, <8 x float>* %temp59 %1333 = load <8 x float>, <8 x float>* %temp60 %1334 = load <8 x float>, <8 x float>* %temp61 %1335 = load <8 x float>, <8 x float>* %output39 %1336 = bitcast <8 x i32> %callmask89 to <8 x float> %1337 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1335, <8 x float> %1331, <8 x float> %1336) store <8 x float> %1337, <8 x float>* %output39 %1338 = load <8 x float>, <8 x float>* %output40 %1339 = bitcast <8 x i32> %callmask89 to <8 x float> %1340 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1338, <8 x float> %1332, <8 x float> %1339) store <8 x float> %1340, <8 x float>* %output40 %1341 = load <8 x float>, <8 x float>* %output41 %1342 = bitcast <8 x i32> %callmask89 to <8 x float> %1343 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1341, <8 x float> %1333, <8 x float> %1342) store <8 x float> %1343, <8 x float>* %output41 %1344 = load <8 x float>, <8 x float>* %output42 %1345 = bitcast <8 x i32> %callmask89 to <8 x float> %1346 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %1344, <8 x float> %1334, <8 x float> %1345) store <8 x float> %1346, <8 x float>* %output42 %1347 = load <8 x float>, <8 x float>* %output %1348 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 0 store <8 x float> %1347, <8 x float>* %1348 %1349 = load <8 x float>, <8 x float>* %output36 %1350 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 1 store <8 x float> %1349, <8 x float>* %1350 %1351 = load <8 x float>, <8 x float>* %output37 %1352 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 2 store <8 x float> %1351, <8 x float>* %1352 %1353 = load <8 x float>, <8 x float>* %output38 %1354 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 0, i32 3 store <8 x float> %1353, <8 x float>* %1354 %1355 = load <8 x float>, <8 x float>* %output39 %1356 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 1, i32 0 store <8 x float> %1355, <8 x float>* %1356 %1357 = load <8 x float>, <8 x float>* %output40 %1358 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 1, i32 1 store <8 x float> %1357, <8 x float>* %1358 %1359 = load <8 x float>, <8 x float>* %output41 %1360 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 1, i32 2 store <8 x float> %1359, <8 x float>* %1360 %1361 = load <8 x float>, <8 x float>* %output42 %1362 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 17, i32 1, i32 3 store <8 x float> %1361, <8 x float>* %1362 br label %skip skip: ; preds = %entry %1363 = load <8 x i32>, <8 x i32>* %execution_mask %1364 = getelementptr { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }, { { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, <8 x float>, <8 x i32>, <8 x float>, <8 x i32>, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, { <8 x float>, <8 x float>, <8 x float>, <8 x float> }, float*, float*, float*, float*, float*, float, float*, float*, [8 x [4 x <8 x float>]], i32, i32, i32 }* %psCtx, i32 0, i32 3 store <8 x i32> %1363, <8 x i32>* %1364 ret void } FS: 0: pushq %rbp 1: movq %rsp, %rbp 4: pushq %r15 6: pushq %r14 8: pushq %r13 10: pushq %r12 12: pushq %rbx 13: andq $-32, %rsp 17: subq $704, %rsp 24: movq %rsi, 24(%rsp) 29: movq %rdi, %r10 32: movq 776(%rsi), %r14 39: vmovaps 416(%rsi), %ymm3 47: vmovaps %ymm3, 544(%rsp) 56: vmovaps 544(%rsi), %ymm2 64: vmovaps %ymm2, 512(%rsp) 73: movabsq $140164720566276, %rax 83: vbroadcastss (%rax), %ymm1 88: vmovaps %ymm1, 192(%rsp) 97: vsubps %ymm3, %ymm1, %ymm0 101: vmovaps %ymm3, %ymm5 105: vmovaps %ymm1, %ymm14 109: vsubps %ymm2, %ymm0, %ymm4 113: vmovaps %ymm4, 576(%rsp) 122: vmovaps %ymm2, %ymm3 126: vbroadcastss 8(%r14), %ymm0 132: vbroadcastss 24(%r14), %ymm1 138: vbroadcastss 40(%r14), %ymm2 144: vmulps %ymm2, %ymm4, %ymm2 148: vmulps %ymm0, %ymm5, %ymm0 152: vmulps %ymm1, %ymm3, %ymm1 156: vaddps %ymm1, %ymm0, %ymm0 160: vaddps %ymm2, %ymm0, %ymm15 164: vbroadcastss 12(%r14), %ymm0 170: vbroadcastss 28(%r14), %ymm1 176: vbroadcastss 44(%r14), %ymm2 182: vmulps %ymm2, %ymm4, %ymm2 186: vmulps %ymm0, %ymm5, %ymm0 190: vmulps %ymm1, %ymm3, %ymm1 194: vaddps %ymm1, %ymm0, %ymm0 198: vaddps %ymm2, %ymm0, %ymm0 202: vmovaps %ymm0, 480(%rsp) 211: vbroadcastss 48(%r14), %ymm0 217: vbroadcastss 64(%r14), %ymm1 223: vbroadcastss 80(%r14), %ymm2 229: vmulps %ymm2, %ymm4, %ymm2 233: vmulps %ymm0, %ymm5, %ymm0 237: vmulps %ymm1, %ymm3, %ymm1 241: vaddps %ymm1, %ymm0, %ymm0 245: vaddps %ymm2, %ymm0, %ymm0 249: vmovaps %ymm0, 416(%rsp) 258: movq 384(%r10), %rax 265: movq %rax, 640(%rsp) 273: vbroadcastss 112(%rax), %ymm0 279: vbroadcastss 116(%rax), %ymm1 285: vmulps 160(%rsi), %ymm0, %ymm0 293: vaddps %ymm1, %ymm0, %ymm13 297: vmovq 9056(%r10), %xmm3 306: vpbroadcastd 9068(%r10), %ymm0 315: vpbroadcastd 9072(%r10), %ymm1 324: vpcmpgtd %ymm1, %ymm0, %ymm8 328: vpandn %ymm0, %ymm8, %ymm2 332: vpxor %xmm6, %xmm6, %xmm6 336: vpblendw $3, %xmm2, %xmm6, %xmm0 342: vpsrld %xmm0, %xmm3, %xmm9 346: vpshufd $229, %xmm2, %xmm0 351: vpblendw $3, %xmm0, %xmm6, %xmm0 357: vpsrld %xmm0, %xmm3, %xmm10 361: vpshufd $78, %xmm2, %xmm0 366: vpblendw $3, %xmm0, %xmm6, %xmm0 372: vpsrld %xmm0, %xmm3, %xmm12 376: vpshufd $231, %xmm2, %xmm0 381: vpblendw $3, %xmm0, %xmm6, %xmm0 387: vpsrld %xmm0, %xmm3, %xmm11 391: vextracti128 $1, %ymm2, %xmm7 397: vpblendw $3, %xmm7, %xmm6, %xmm0 403: vpsrld %xmm0, %xmm3, %xmm0 407: vpshufd $229, %xmm7, %xmm1 412: vpblendw $3, %xmm1, %xmm6, %xmm1 418: vpsrld %xmm1, %xmm3, %xmm5 422: vpshufd $78, %xmm7, %xmm1 427: vpblendw $3, %xmm1, %xmm6, %xmm1 433: vpsrld %xmm1, %xmm3, %xmm1 437: vpshufd $231, %xmm7, %xmm4 442: vpblendw $3, %xmm4, %xmm6, %xmm4 448: vpsrld %xmm4, %xmm3, %xmm3 452: vmovd %xmm2, %r9d 457: vpextrd $1, %xmm2, %eax 463: vpextrd $2, %xmm2, %r11d 469: vpextrd $3, %xmm2, %r15d 475: vmovd %xmm7, %ecx 479: vpextrd $1, %xmm7, %r12d 485: vpextrd $2, %xmm7, %r13d 491: vpextrd $3, %xmm7, %r8d 497: movslq %r9d, %rdx 500: movq %rdx, 608(%rsp) 508: cltq 510: movq %rax, 320(%rsp) 518: movslq %r11d, %rsi 521: movq %rsi, 288(%rsp) 529: movslq %r15d, %rdi 532: movq %rdi, 256(%rsp) 540: movslq %ecx, %rcx 543: movq %rcx, 448(%rsp) 551: movslq %r12d, %rbx 554: movq %rbx, 352(%rsp) 562: movslq %r13d, %r12 565: movslq %r8d, %r13 568: vmovd 9088(%r10,%rcx,4), %xmm2 578: vpinsrd $1, 9088(%r10,%rbx,4), %xmm2, %xmm2 589: vpinsrd $2, 9088(%r10,%r12,4), %xmm2, %xmm2 600: vpinsrd $3, 9088(%r10,%r13,4), %xmm2, %xmm2 611: vmovd 9088(%r10,%rdx,4), %xmm4 621: vpinsrd $1, 9088(%r10,%rax,4), %xmm4, %xmm4 632: vpinsrd $2, 9088(%r10,%rsi,4), %xmm4, %xmm4 643: vpinsrd $3, 9088(%r10,%rdi,4), %xmm4, %xmm4 654: vinserti128 $1, %xmm2, %ymm4, %ymm2 660: movabsq $140164720566280, %rbx 670: vpbroadcastd (%rbx), %xmm6 675: vmovdqa %xmm6, 240(%rsp) 684: vpmaxsd %xmm6, %xmm5, %xmm4 689: vmovd %xmm4, %r15d 694: vpextrd $1, %xmm4, %ebx 700: vpmaxsd %xmm6, %xmm1, %xmm1 705: vmovd %xmm1, %edi 709: vpextrd $1, %xmm1, %r11d 715: vpmaxsd %xmm6, %xmm3, %xmm1 720: vmovd %xmm1, %ecx 724: vpextrd $1, %xmm1, %r9d 730: vpmaxsd %xmm6, %xmm10, %xmm1 735: vmovd %xmm1, %esi 739: vpextrd $1, %xmm1, %r8d 745: vpmaxsd %xmm6, %xmm12, %xmm1 750: vpmaxsd %xmm6, %xmm0, %xmm0 755: vmovd %xmm1, %eax 759: vpextrd $1, %xmm1, %edx 765: vpinsrd $1, %r15d, %xmm0, %xmm1 771: vpinsrd $2, %edi, %xmm1, %xmm1 777: vpinsrd $3, %ecx, %xmm1, %xmm1 783: vpmaxsd %xmm6, %xmm9, %xmm3 788: vpmaxsd %xmm6, %xmm11, %xmm4 793: vmovd %xmm4, %ecx 797: vpextrd $1, %xmm4, %edi 803: vpinsrd $1, %esi, %xmm3, %xmm4 809: vpinsrd $2, %eax, %xmm4, %xmm4 815: vpinsrd $3, %ecx, %xmm4, %xmm4 821: vpshufd $229, %xmm0, %xmm0 826: vpinsrd $1, %ebx, %xmm0, %xmm0 832: vpinsrd $2, %r11d, %xmm0, %xmm0 838: vpinsrd $3, %r9d, %xmm0, %xmm0 844: vpshufd $229, %xmm3, %xmm3 849: vpinsrd $1, %r8d, %xmm3, %xmm3 855: vpinsrd $2, %edx, %xmm3, %xmm3 861: vpinsrd $3, %edi, %xmm3, %xmm3 867: movabsq $140164720566272, %rax 877: vinserti128 $1, %xmm1, %ymm4, %ymm1 883: movq 24(%rsp), %rsi 888: vcvttps2dq 32(%rsi), %ymm6 893: vmovdqa %ymm6, 384(%rsp) 902: vcvttps2dq %ymm13, %ymm5 907: vinserti128 $1, %xmm0, %ymm3, %ymm0 913: vpcmpgtd %ymm6, %ymm1, %ymm1 917: vpor %ymm6, %ymm5, %ymm3 921: vpsrad $31, %ymm3, %ymm3 926: vpor %ymm8, %ymm3, %ymm3 931: vpcmpeqd %ymm4, %ymm4, %ymm4 935: vpxor %ymm4, %ymm1, %ymm1 939: vpor %ymm1, %ymm3, %ymm1 943: vmovss (%rax), %xmm3 947: vmovaps %xmm3, 176(%rsp) 956: movq 9080(%r10), %rbx 963: vpcmpgtd %ymm5, %ymm0, %ymm0 967: vpxor %ymm4, %ymm0, %ymm0 971: vpor %ymm0, %ymm1, %ymm4 975: vpslld $3, %ymm6, %ymm0 980: vpmulld %ymm5, %ymm2, %ymm1 985: vpaddd %ymm0, %ymm1, %ymm0 989: movq 448(%rsp), %rax 997: vmovd 9216(%r10,%rax,4), %xmm1 1007: movq 352(%rsp), %rax 1015: vpinsrd $1, 9216(%r10,%rax,4), %xmm1, %xmm1 1026: vpinsrd $2, 9216(%r10,%r12,4), %xmm1, %xmm1 1037: vpinsrd $3, 9216(%r10,%r13,4), %xmm1, %xmm1 1048: movq 608(%rsp), %rax 1056: vmovd 9216(%r10,%rax,4), %xmm2 1066: movq 320(%rsp), %rax 1074: vpinsrd $1, 9216(%r10,%rax,4), %xmm2, %xmm2 1085: movq 288(%rsp), %rax 1093: vpinsrd $2, 9216(%r10,%rax,4), %xmm2, %xmm2 1104: movq 256(%rsp), %rax 1112: vpinsrd $3, 9216(%r10,%rax,4), %xmm2, %xmm2 1123: vinserti128 $1, %xmm1, %ymm2, %ymm1 1129: vpaddd %ymm1, %ymm0, %ymm0 1133: vpandn %ymm0, %ymm4, %ymm1 1137: vmovq %xmm1, %r9 1142: movslq %r9d, %rax 1145: vmovq (%rbx,%rax), %xmm0 1150: vmovshdup %xmm0, %xmm0 1154: sarq $32, %r9 1158: vpextrq $1, %xmm1, %rcx 1164: vextracti128 $1, %ymm1, %xmm1 1170: vmovq %xmm1, %rax 1175: movslq %eax, %rdx 1178: vmovq (%rbx,%rdx), %xmm2 1183: vmovshdup %xmm2, %xmm2 1187: sarq $32, %rax 1191: vpextrq $1, %xmm1, %rdx 1197: vmovq (%rbx,%rax), %xmm1 1202: vmovshdup %xmm1, %xmm1 1206: movslq %edx, %rax 1209: vinsertps $16, %xmm1, %xmm2, %xmm1 1215: vmovq (%rbx,%rax), %xmm2 1220: vmovshdup %xmm2, %xmm2 1224: sarq $32, %rdx 1228: vinsertps $32, %xmm2, %xmm1, %xmm1 1234: vmovq (%rbx,%rdx), %xmm2 1239: vmovshdup %xmm2, %xmm2 1243: vinsertps $48, %xmm2, %xmm1, %xmm1 1249: vmovq (%rbx,%r9), %xmm2 1255: vmovshdup %xmm2, %xmm2 1259: movslq %ecx, %rax 1262: vinsertps $16, %xmm2, %xmm0, %xmm0 1268: vmovq (%rbx,%rax), %xmm2 1273: vmovshdup %xmm2, %xmm2 1277: sarq $32, %rcx 1281: vinsertps $32, %xmm2, %xmm0, %xmm0 1287: vmovq (%rbx,%rcx), %xmm2 1292: vmovshdup %xmm2, %xmm2 1296: vinsertps $48, %xmm2, %xmm0, %xmm0 1302: movq %rsi, %rcx 1305: vmovaps 256(%rcx), %ymm8 1313: vinsertf128 $1, %xmm1, %ymm0, %ymm0 1319: vpxor %ymm12, %ymm12, %ymm12 1324: vpandn %ymm0, %ymm4, %ymm7 1328: vbroadcastss %xmm3, %ymm5 1333: vmovaps %ymm5, 288(%rsp) 1342: vcmpneqps %ymm5, %ymm7, %ymm0 1347: vcmpltps %ymm8, %ymm7, %ymm1 1353: vmovaps %ymm1, 352(%rsp) 1362: vblendvps %ymm1, %ymm0, %ymm12, %ymm0 1368: vpcmpeqd %ymm12, %ymm0, %ymm11 1373: vpcmpeqd %ymm2, %ymm2, %ymm2 1377: vpxor %ymm2, %ymm11, %ymm4 1381: vblendvps %ymm4, %ymm5, %ymm0, %ymm10 1387: movabsq $140164720566284, %rax 1397: vbroadcastss (%rax), %ymm0 1402: vcmpltps %ymm0, %ymm8, %ymm0 1407: vpxor %ymm2, %ymm4, %ymm2 1411: vblendvps %ymm2, %ymm0, %ymm10, %ymm2 1417: vpcmpeqd %ymm12, %ymm2, %ymm0 1422: vpandn %ymm11, %ymm0, %ymm0 1427: movabsq $140164720566368, %rax 1437: vmovaps (%rax), %ymm9 1441: vmovaps %ymm9, 608(%rsp) 1450: vxorps %ymm9, %ymm8, %ymm5 1455: vblendvps %ymm0, %ymm5, %ymm2, %ymm3 1461: vmovaps %ymm3, 96(%rsp) 1467: vmovaps %ymm14, %ymm1 1471: vdivps 672(%rcx), %ymm1, %ymm6 1479: vmulps %ymm15, %ymm6, %ymm13 1484: vmovaps %ymm13, 448(%rsp) 1493: vmulps 480(%rsp), %ymm6, %ymm2 1502: vmovaps %ymm2, 256(%rsp) 1511: vmulps %ymm13, %ymm13, %ymm14 1516: vmulps %ymm2, %ymm2, %ymm15 1520: vaddps %ymm15, %ymm14, %ymm2 1525: vmulps 416(%rsp), %ymm6, %ymm15 1534: vmulps %ymm15, %ymm15, %ymm14 1539: vaddps %ymm14, %ymm2, %ymm14 1544: movl 1856(%rcx), %eax 1550: movq %rcx, %r15 1553: vpandn %ymm11, %ymm0, %ymm11 1558: vcvtsi2ssq %rax, %xmm0, %xmm5 1563: vblendvps %ymm11, %ymm14, %ymm3, %ymm14 1569: vsqrtps %ymm14, %ymm3 1574: vaddss %xmm5, %xmm5, %xmm5 1578: vdivps %ymm3, %ymm1, %ymm3 1582: vaddss 176(%rsp), %xmm5, %xmm5 1591: vblendvps %ymm11, %ymm3, %ymm14, %ymm14 1597: vbroadcastss %xmm5, %ymm3 1602: vcmpleps %ymm3, %ymm12, %ymm5 1607: vmulps %ymm14, %ymm15, %ymm3 1612: vblendvps %ymm11, %ymm3, %ymm12, %ymm1 1618: vmovaps %ymm1, 320(%rsp) 1627: vpcmpeqd %ymm12, %ymm5, %ymm5 1632: vblendvps %ymm11, %ymm5, %ymm12, %ymm5 1638: vpcmpeqd %ymm12, %ymm5, %ymm5 1643: vpcmpeqd %ymm3, %ymm3, %ymm3 1647: vpxor %ymm3, %ymm5, %ymm5 1651: vblendvps %ymm5, %ymm11, %ymm12, %ymm5 1657: vblendvps %ymm11, %ymm1, %ymm12, %ymm15 1663: vxorps %ymm9, %ymm1, %ymm3 1668: vblendvps %ymm5, %ymm3, %ymm15, %ymm9 1674: vmovaps %ymm9, 416(%rsp) 1683: vbroadcastss (%r14), %ymm3 1688: vmovaps 544(%rsp), %ymm1 1697: vmulps %ymm3, %ymm1, %ymm3 1701: vbroadcastss 16(%r14), %ymm5 1707: vmovaps 512(%rsp), %ymm2 1716: vmulps %ymm5, %ymm2, %ymm5 1720: vaddps %ymm5, %ymm3, %ymm3 1724: vbroadcastss 32(%r14), %ymm5 1730: vmovaps 576(%rsp), %ymm12 1739: vmulps %ymm5, %ymm12, %ymm5 1743: vaddps %ymm5, %ymm3, %ymm3 1747: vbroadcastss 36(%r14), %ymm5 1753: vmulps %ymm5, %ymm12, %ymm5 1757: vbroadcastss 4(%r14), %ymm15 1763: vmulps %ymm15, %ymm1, %ymm15 1768: vbroadcastss 20(%r14), %ymm12 1774: vmulps %ymm12, %ymm2, %ymm12 1779: vaddps %ymm12, %ymm15, %ymm12 1784: vaddps %ymm5, %ymm12, %ymm5 1788: vmulps %ymm3, %ymm6, %ymm15 1792: vmulps %ymm5, %ymm6, %ymm1 1796: vmovaps %ymm1, 128(%rsp) 1805: vmovaps 384(%rsp), %ymm1 1814: vblendvps %ymm4, %ymm10, %ymm1, %ymm3 1820: vxorps %ymm10, %ymm10, %ymm10 1825: vblendvps %ymm4, %ymm7, %ymm10, %ymm2 1831: vblendvps %ymm4, %ymm2, %ymm7, %ymm5 1837: vblendvps %ymm0, %ymm8, %ymm2, %ymm2 1843: vblendvps %ymm0, 96(%rsp), %ymm3, %ymm6 1851: vmovaps %ymm6, 480(%rsp) 1860: vblendvps %ymm4, %ymm3, %ymm10, %ymm3 1866: vblendvps %ymm4, %ymm5, %ymm10, %ymm1 1872: vblendvps %ymm0, %ymm2, %ymm5, %ymm5 1878: vmovaps %ymm5, 544(%rsp) 1887: vblendvps %ymm0, %ymm6, %ymm3, %ymm3 1893: vmovaps %ymm3, 512(%rsp) 1902: vblendvps %ymm0, %ymm5, %ymm1, %ymm0 1908: vmovaps %ymm0, 576(%rsp) 1917: vmulps 256(%rsp), %ymm14, %ymm0 1926: vmulps %ymm14, %ymm13, %ymm1 1931: vblendvps %ymm11, %ymm1, %ymm14, %ymm1 1937: vmovaps %ymm9, %ymm8 1942: vmaxps %ymm8, %ymm10, %ymm3 1947: vcmpunordps %ymm10, %ymm8, %ymm5 1953: vblendvps %ymm5, %ymm10, %ymm3, %ymm3 1959: vxorps %ymm14, %ymm14, %ymm14 1964: vblendvps %ymm11, %ymm3, %ymm1, %ymm6 1970: movabsq $140164720566288, %rax 1980: vbroadcastss (%rax), %ymm1 1985: vandps %ymm1, %ymm6, %ymm1 1989: vpsrld $23, %ymm1, %ymm1 1994: movabsq $140164720566292, %rax 2004: movabsq $140164720566296, %rcx 2014: vbroadcastss (%rcx), %ymm3 2019: vandps %ymm3, %ymm6, %ymm3 2023: movabsq $140164720566276, %rcx 2033: vbroadcastss (%rcx), %ymm5 2038: vmovaps %ymm5, 384(%rsp) 2047: vorps %ymm5, %ymm3, %ymm3 2051: vmovaps %ymm5, %ymm12 2055: vmovaps 192(%rsp), %ymm7 2064: vaddps %ymm7, %ymm3, %ymm5 2068: vdivps %ymm5, %ymm7, %ymm5 2072: vmovaps %ymm7, %ymm13 2076: vpbroadcastd (%rax), %ymm7 2081: vpaddd %ymm7, %ymm1, %ymm1 2085: vaddps 288(%rsp), %ymm3, %ymm3 2094: vmulps %ymm3, %ymm5, %ymm3 2098: movabsq $140164720566300, %rax 2108: vmulps %ymm3, %ymm3, %ymm5 2112: vmulps %ymm5, %ymm5, %ymm7 2116: vbroadcastss (%rax), %ymm8 2121: vmulps %ymm8, %ymm7, %ymm8 2126: movabsq $140164720566304, %rax 2136: vbroadcastss (%rax), %ymm9 2141: vaddps %ymm9, %ymm8, %ymm8 2146: movabsq $140164720566308, %rax 2156: vbroadcastss (%rax), %ymm9 2161: vmulps %ymm9, %ymm7, %ymm9 2166: movabsq $140164720566312, %rax 2176: vbroadcastss (%rax), %ymm10 2181: vaddps %ymm10, %ymm9, %ymm9 2186: vmulps %ymm8, %ymm7, %ymm7 2191: movabsq $140164720566316, %rax 2201: vbroadcastss (%rax), %ymm8 2206: vaddps %ymm8, %ymm7, %ymm7 2211: vmulps %ymm9, %ymm5, %ymm5 2216: vaddps %ymm7, %ymm5, %ymm5 2220: vmulps %ymm5, %ymm3, %ymm3 2224: vcvtdq2ps %ymm1, %ymm1 2228: vaddps %ymm3, %ymm1, %ymm1 2232: movq 640(%rsp), %rcx 2240: vbroadcastss 64(%rcx), %ymm3 2246: vmulps %ymm1, %ymm3, %ymm1 2250: movabsq $140164720566320, %rax 2260: vbroadcastss (%rax), %ymm3 2265: vminps %ymm1, %ymm3, %ymm1 2269: movabsq $140164720566324, %rax 2279: vbroadcastss (%rax), %ymm3 2284: vmaxps %ymm1, %ymm3, %ymm3 2288: vroundps $1, %ymm3, %ymm5 2294: vblendvps %ymm11, %ymm0, %ymm2, %ymm1 2300: vsubps %ymm5, %ymm3, %ymm0 2304: movabsq $140164720566328, %rax 2314: vmulps %ymm0, %ymm0, %ymm2 2318: vbroadcastss (%rax), %ymm3 2323: vmulps %ymm3, %ymm2, %ymm3 2327: movabsq $140164720566332, %rax 2337: vbroadcastss (%rax), %ymm7 2342: vaddps %ymm7, %ymm3, %ymm3 2346: movabsq $140164720566336, %rax 2356: vbroadcastss (%rax), %ymm7 2361: vmulps %ymm7, %ymm2, %ymm7 2365: movabsq $140164720566340, %rax 2375: vbroadcastss (%rax), %ymm8 2380: vaddps %ymm8, %ymm7, %ymm7 2385: vmulps %ymm3, %ymm2, %ymm3 2389: movabsq $140164720566344, %rax 2399: vbroadcastss (%rax), %ymm8 2404: vaddps %ymm8, %ymm3, %ymm3 2409: vmulps %ymm7, %ymm2, %ymm2 2413: vmulps %ymm3, %ymm0, %ymm0 2417: vaddps %ymm13, %ymm2, %ymm2 2422: vaddps %ymm0, %ymm2, %ymm0 2426: vcvttps2dq %ymm5, %ymm2 2430: vpslld $23, %ymm2, %ymm2 2435: vpaddd %ymm12, %ymm2, %ymm2 2440: vmulps %ymm0, %ymm2, %ymm0 2444: vmovaps 352(%rsp), %ymm2 2453: vblendvps %ymm11, %ymm0, %ymm2, %ymm0 2459: movq %rcx, %rax 2462: vbroadcastss 32(%rax), %ymm2 2468: vmulps %ymm2, %ymm6, %ymm2 2472: vbroadcastss 16(%rax), %ymm3 2478: vaddps %ymm3, %ymm2, %ymm2 2482: vbroadcastss 36(%rax), %ymm3 2488: vmulps %ymm3, %ymm6, %ymm3 2492: vbroadcastss 20(%rax), %ymm5 2498: vaddps %ymm5, %ymm3, %ymm3 2502: vbroadcastss 40(%rax), %ymm5 2508: vmulps %ymm5, %ymm6, %ymm5 2512: vbroadcastss 24(%rax), %ymm7 2518: vaddps %ymm7, %ymm5, %ymm5 2522: vblendvps %ymm11, %ymm2, %ymm6, %ymm2 2528: vblendvps %ymm11, %ymm3, %ymm1, %ymm1 2534: vmovaps 320(%rsp), %ymm3 2543: vblendvps %ymm11, %ymm5, %ymm3, %ymm3 2549: vbroadcastss 48(%rax), %ymm5 2555: vmulps %ymm5, %ymm0, %ymm5 2559: vaddps %ymm5, %ymm2, %ymm5 2563: vblendvps %ymm11, %ymm5, %ymm2, %ymm2 2569: vbroadcastss 52(%rax), %ymm5 2575: vmulps %ymm5, %ymm0, %ymm5 2579: vaddps %ymm5, %ymm1, %ymm5 2583: vblendvps %ymm11, %ymm5, %ymm1, %ymm1 2589: vbroadcastss 56(%rax), %ymm5 2595: vmulps %ymm5, %ymm0, %ymm5 2599: vaddps %ymm5, %ymm3, %ymm5 2603: vblendvps %ymm11, %ymm5, %ymm3, %ymm3 2609: vmaxps %ymm14, %ymm2, %ymm5 2614: vmovaps %ymm13, %ymm6 2618: vminps %ymm6, %ymm5, %ymm5 2622: vblendvps %ymm11, %ymm5, %ymm2, %ymm2 2628: vmovaps %ymm2, 320(%rsp) 2637: vmaxps %ymm14, %ymm1, %ymm2 2642: vminps %ymm6, %ymm2, %ymm2 2646: vblendvps %ymm11, %ymm2, %ymm1, %ymm1 2652: vmovaps %ymm1, 352(%rsp) 2661: vmaxps %ymm14, %ymm3, %ymm1 2666: vminps %ymm6, %ymm1, %ymm1 2670: vblendvps %ymm11, %ymm1, %ymm3, %ymm1 2676: vmovaps %ymm1, 288(%rsp) 2685: vbroadcastss (%rax), %ymm1 2690: vblendvps %ymm11, %ymm1, %ymm14, %ymm1 2696: vmaxps %ymm14, %ymm1, %ymm2 2701: vminps %ymm6, %ymm2, %ymm2 2705: vblendvps %ymm11, %ymm2, %ymm1, %ymm1 2711: vmovaps %ymm1, 256(%rsp) 2720: vblendvps %ymm11, %ymm15, %ymm0, %ymm3 2726: vmovaps %ymm3, 640(%rsp) 2735: movslq 8844(%r10), %rax 2742: vmovq 8832(%r10), %xmm0 2751: vmovd %eax, %xmm1 2755: vpsrld %xmm1, %xmm0, %xmm0 2759: vpmaxsd 240(%rsp), %xmm0, %xmm1 2769: vpbroadcastd %xmm1, %xmm0 2774: vpcmpeqd %xmm8, %xmm8, %xmm8 2779: vpaddd %xmm8, %xmm0, %xmm6 2784: vmovdqa %xmm6, 192(%rsp) 2793: vcvtdq2ps %xmm0, %xmm5 2797: vmovaps %xmm5, 240(%rsp) 2806: vroundps $1, %xmm3, %xmm0 2812: vsubps %xmm0, %xmm3, %xmm0 2816: vmulps %xmm0, %xmm5, %xmm0 2820: movabsq $140164720566348, %rcx 2830: vbroadcastss (%rcx), %xmm3 2835: vmovaps %xmm3, 48(%rsp) 2841: vmulps %xmm3, %xmm0, %xmm0 2845: vmovaps %xmm3, %xmm4 2849: vcvtps2dq %xmm0, %xmm0 2853: movabsq $140164720566352, %rcx 2863: vpbroadcastd (%rcx), %xmm3 2868: vmovdqa %xmm3, 32(%rsp) 2874: vpaddd %xmm3, %xmm0, %xmm0 2878: vmovdqa %xmm3, %xmm2 2882: vpsrad $8, %xmm0, %xmm3 2887: vpsrad $31, %xmm0, %xmm5 2892: vpblendvb %xmm5, %xmm6, %xmm3, %xmm3 2898: vpcmpeqd %xmm6, %xmm3, %xmm5 2902: vpslld $2, %xmm3, %xmm3 2907: movabsq $140164720566360, %rcx 2917: vpbroadcastd (%rcx), %xmm6 2922: vmovdqa %xmm6, 176(%rsp) 2931: vpaddd %xmm6, %xmm3, %xmm6 2935: vpandn %xmm6, %xmm5, %xmm9 2939: vblendvps %ymm11, 128(%rsp), %ymm14, %ymm5 2950: vmovaps %ymm5, 64(%rsp) 2956: vpshufd $85, %xmm1, %xmm1 2961: vpaddd %xmm8, %xmm1, %xmm6 2966: vmovdqa %xmm6, 96(%rsp) 2972: vcvtdq2ps %xmm1, %xmm7 2976: vmovaps %xmm7, 128(%rsp) 2985: vroundps $1, %xmm5, %xmm1 2991: vsubps %xmm1, %xmm5, %xmm1 2995: vmulps %xmm1, %xmm7, %xmm1 2999: vmulps %xmm4, %xmm1, %xmm1 3003: vcvtps2dq %xmm1, %xmm1 3007: vpaddd %xmm2, %xmm1, %xmm4 3011: vpsrad $8, %xmm4, %xmm1 3016: vpsrad $31, %xmm4, %xmm2 3021: vpblendvb %xmm2, %xmm6, %xmm1, %xmm1 3027: vpbroadcastd 8864(%r10,%rax,4), %xmm15 3037: vpcmpeqd %xmm6, %xmm1, %xmm2 3041: vpmulld %xmm15, %xmm1, %xmm1 3046: vpaddd %xmm15, %xmm1, %xmm6 3051: vpandn %xmm6, %xmm2, %xmm2 3055: vpaddd %xmm3, %xmm1, %xmm6 3059: vpextrq $1, %xmm6, %rdi 3065: vmovq %xmm6, %rbx 3070: vpaddd %xmm3, %xmm2, %xmm3 3074: vpextrq $1, %xmm3, %r8 3080: vmovq %xmm3, %r11 3085: vpaddd %xmm9, %xmm1, %xmm1 3090: vpextrq $1, %xmm1, %rsi 3096: vmovq %xmm1, %rdx 3101: vpaddd %xmm9, %xmm2, %xmm1 3106: vpextrq $1, %xmm1, %r9 3112: vmovq %xmm1, %r14 3117: movslq 8992(%r10,%rax,4), %rax 3125: addq 8856(%r10), %rax 3132: movabsq $140164720566356, %rcx 3142: vpbroadcastd (%rcx), %xmm9 3147: vpand %xmm9, %xmm0, %xmm0 3152: movabsq $140164720566400, %rcx 3162: vmovdqa (%rcx), %xmm12 3166: vpshufb %xmm12, %xmm0, %xmm3 3171: movslq %ebx, %r10 3174: sarq $32, %rbx 3178: movslq %edi, %rcx 3181: sarq $32, %rdi 3185: vmovd (%r10,%rax), %xmm0 3191: vpinsrd $1, (%rbx,%rax), %xmm0, %xmm0 3198: vpinsrd $2, (%rcx,%rax), %xmm0, %xmm0 3205: vpinsrd $3, (%rdi,%rax), %xmm0, %xmm2 3212: movslq %edx, %rcx 3215: sarq $32, %rdx 3219: movslq %esi, %rdi 3222: sarq $32, %rsi 3226: vmovd (%rcx,%rax), %xmm0 3231: vpinsrd $1, (%rdx,%rax), %xmm0, %xmm0 3238: vpinsrd $2, (%rdi,%rax), %xmm0, %xmm0 3245: vpinsrd $3, (%rsi,%rax), %xmm0, %xmm1 3252: vpmovzxbw %xmm2, %xmm6 3257: vpmovzxbw %xmm1, %xmm14 3262: vpsubw %xmm6, %xmm14, %xmm14 3266: vpmovzxbw %xmm3, %xmm0 3271: vpmullw %xmm0, %xmm14, %xmm7 3275: vpsrlw $8, %xmm7, %xmm7 3280: vpaddw %xmm6, %xmm7, %xmm6 3284: vxorps %xmm5, %xmm5, %xmm5 3288: vpunpckhbw %xmm5, %xmm3, %xmm7 3292: vpunpckhbw %xmm5, %xmm2, %xmm2 3296: vpunpckhbw %xmm5, %xmm1, %xmm1 3300: vxorps %xmm10, %xmm10, %xmm10 3305: vpsubw %xmm2, %xmm1, %xmm1 3309: vpmullw %xmm7, %xmm1, %xmm1 3313: vpsrlw $8, %xmm1, %xmm1 3318: vpaddw %xmm2, %xmm1, %xmm1 3322: movabsq $140164720566416, %rcx 3332: vmovdqa (%rcx), %xmm8 3336: vpand %xmm8, %xmm6, %xmm2 3341: vpand %xmm8, %xmm1, %xmm1 3346: vpackuswb %xmm1, %xmm2, %xmm14 3350: movslq %r11d, %rcx 3353: sarq $32, %r11 3357: movslq %r8d, %rdx 3360: sarq $32, %r8 3364: vmovd (%rcx,%rax), %xmm2 3369: vpinsrd $1, (%r11,%rax), %xmm2, %xmm2 3376: vpinsrd $2, (%rdx,%rax), %xmm2, %xmm2 3383: vpinsrd $3, (%r8,%rax), %xmm2, %xmm2 3390: movslq %r14d, %rcx 3393: sarq $32, %r14 3397: movslq %r9d, %rdx 3400: sarq $32, %r9 3404: vmovd (%rcx,%rax), %xmm6 3409: vpinsrd $1, (%r14,%rax), %xmm6, %xmm6 3416: vpinsrd $2, (%rdx,%rax), %xmm6, %xmm6 3423: vpinsrd $3, (%r9,%rax), %xmm6, %xmm6 3430: vpmovzxbw %xmm2, %xmm1 3435: vpmovzxbw %xmm6, %xmm13 3440: vpsubw %xmm1, %xmm13, %xmm5 3444: vpmullw %xmm0, %xmm5, %xmm0 3448: vpsrlw $8, %xmm0, %xmm0 3453: vpaddw %xmm1, %xmm0, %xmm0 3457: vpunpckhbw %xmm10, %xmm2, %xmm1 3462: vpunpckhbw %xmm10, %xmm6, %xmm2 3467: vpsubw %xmm1, %xmm2, %xmm2 3471: vpmullw %xmm7, %xmm2, %xmm2 3475: vpsrlw $8, %xmm2, %xmm2 3480: vpaddw %xmm1, %xmm2, %xmm1 3484: vpand %xmm8, %xmm0, %xmm0 3489: vpand %xmm8, %xmm1, %xmm1 3494: vpackuswb %xmm1, %xmm0, %xmm0 3498: vpand %xmm9, %xmm4, %xmm1 3503: vpshufb %xmm12, %xmm1, %xmm1 3508: vpmovzxbw %xmm14, %xmm2 3513: vpmovzxbw %xmm0, %xmm5 3518: vpsubw %xmm2, %xmm5, %xmm5 3522: vpmovzxbw %xmm1, %xmm6 3527: vpmullw %xmm6, %xmm5, %xmm5 3531: vpsrlw $8, %xmm5, %xmm5 3536: vpaddw %xmm2, %xmm5, %xmm2 3540: vpunpckhbw %xmm10, %xmm1, %xmm1 3545: vpunpckhbw %xmm10, %xmm14, %xmm5 3550: vpunpckhbw %xmm10, %xmm0, %xmm0 3555: vpsubw %xmm5, %xmm0, %xmm0 3559: vpmullw %xmm1, %xmm0, %xmm0 3563: vpsrlw $8, %xmm0, %xmm0 3568: vpaddw %xmm5, %xmm0, %xmm0 3572: vpand %xmm8, %xmm2, %xmm1 3577: vpand %xmm8, %xmm0, %xmm0 3582: vpackuswb %xmm0, %xmm1, %xmm13 3586: vmovaps 640(%rsp), %ymm0 3595: vextractf128 $1, %ymm0, %xmm0 3601: vroundps $1, %xmm0, %xmm2 3607: vsubps %xmm2, %xmm0, %xmm0 3611: vmulps 240(%rsp), %xmm0, %xmm0 3620: vmovaps 48(%rsp), %xmm3 3626: vmulps %xmm3, %xmm0, %xmm0 3630: vcvtps2dq %xmm0, %xmm0 3634: vmovdqa 32(%rsp), %xmm4 3640: vpaddd %xmm4, %xmm0, %xmm2 3644: vpsrad $8, %xmm2, %xmm0 3649: vpsrad $31, %xmm2, %xmm5 3654: vmovdqa 192(%rsp), %xmm1 3663: vpblendvb %xmm5, %xmm1, %xmm0, %xmm0 3669: vpcmpeqd %xmm1, %xmm0, %xmm5 3673: vpslld $2, %xmm0, %xmm0 3678: vpaddd 176(%rsp), %xmm0, %xmm6 3687: vpandn %xmm6, %xmm5, %xmm5 3691: vmovaps 64(%rsp), %ymm14 3697: vextractf128 $1, %ymm14, %xmm6 3703: vroundps $1, %xmm6, %xmm7 3709: vsubps %xmm7, %xmm6, %xmm6 3713: vmulps 128(%rsp), %xmm6, %xmm6 3722: vmulps %xmm3, %xmm6, %xmm6 3726: vcvtps2dq %xmm6, %xmm6 3730: vpaddd %xmm4, %xmm6, %xmm6 3734: vpsrad $8, %xmm6, %xmm7 3739: vpsrad $31, %xmm6, %xmm1 3744: vmovdqa 96(%rsp), %xmm3 3750: vpblendvb %xmm1, %xmm3, %xmm7, %xmm1 3756: vpcmpeqd %xmm3, %xmm1, %xmm7 3760: vpmulld %xmm15, %xmm1, %xmm1 3765: vpaddd %xmm15, %xmm1, %xmm3 3770: vpandn %xmm3, %xmm7, %xmm3 3774: vpaddd %xmm0, %xmm1, %xmm7 3778: vpextrq $1, %xmm7, %rsi 3784: vmovq %xmm7, %rbx 3789: vpaddd %xmm0, %xmm3, %xmm0 3793: vpextrq $1, %xmm0, %r8 3799: vmovq %xmm0, %r9 3804: vpaddd %xmm5, %xmm1, %xmm0 3808: vpextrq $1, %xmm0, %rdx 3814: vmovq %xmm0, %rdi 3819: vpaddd %xmm5, %xmm3, %xmm0 3823: vpextrq $1, %xmm0, %r10 3829: vmovq %xmm0, %r11 3834: vpand %xmm9, %xmm2, %xmm0 3839: vpand %xmm9, %xmm6, %xmm1 3844: vpshufb %xmm12, %xmm0, %xmm6 3849: vpshufb %xmm12, %xmm1, %xmm4 3854: movslq %ebx, %r14 3857: sarq $32, %rbx 3861: movslq %esi, %rcx 3864: sarq $32, %rsi 3868: vmovd (%r14,%rax), %xmm1 3874: vpinsrd $1, (%rbx,%rax), %xmm1, %xmm1 3881: vpinsrd $2, (%rcx,%rax), %xmm1, %xmm1 3888: vpinsrd $3, (%rsi,%rax), %xmm1, %xmm2 3895: movslq %edi, %rcx 3898: sarq $32, %rdi 3902: movslq %edx, %rsi 3905: sarq $32, %rdx 3909: vmovd (%rcx,%rax), %xmm1 3914: vpinsrd $1, (%rdi,%rax), %xmm1, %xmm1 3921: vpinsrd $2, (%rsi,%rax), %xmm1, %xmm1 3928: vpinsrd $3, (%rdx,%rax), %xmm1, %xmm7 3935: vpmovzxbw %xmm2, %xmm1 3940: vpmovzxbw %xmm7, %xmm3 3945: vpsubw %xmm1, %xmm3, %xmm3 3949: vpmovzxbw %xmm6, %xmm5 3954: vpmullw %xmm5, %xmm3, %xmm3 3958: vpsrlw $8, %xmm3, %xmm3 3963: vpaddw %xmm1, %xmm3, %xmm1 3967: vpunpckhbw %xmm10, %xmm6, %xmm3 3972: vpunpckhbw %xmm10, %xmm2, %xmm2 3977: vpunpckhbw %xmm10, %xmm7, %xmm6 3982: vpsubw %xmm2, %xmm6, %xmm6 3986: vpmullw %xmm3, %xmm6, %xmm6 3990: vpsrlw $8, %xmm6, %xmm6 3995: vpaddw %xmm2, %xmm6, %xmm2 3999: vpand %xmm8, %xmm1, %xmm1 4004: vpand %xmm8, %xmm2, %xmm2 4009: vpackuswb %xmm2, %xmm1, %xmm1 4013: movslq %r9d, %rcx 4016: sarq $32, %r9 4020: movslq %r8d, %rdx 4023: sarq $32, %r8 4027: vmovd (%rcx,%rax), %xmm2 4032: vpinsrd $1, (%r9,%rax), %xmm2, %xmm2 4039: vpinsrd $2, (%rdx,%rax), %xmm2, %xmm2 4046: vpinsrd $3, (%r8,%rax), %xmm2, %xmm2 4053: movslq %r11d, %rcx 4056: sarq $32, %r11 4060: movslq %r10d, %rdx 4063: sarq $32, %r10 4067: vmovd (%rcx,%rax), %xmm6 4072: vpinsrd $1, (%r11,%rax), %xmm6, %xmm6 4079: vpinsrd $2, (%rdx,%rax), %xmm6, %xmm6 4086: vpinsrd $3, (%r10,%rax), %xmm6, %xmm6 4093: vpmovzxbw %xmm2, %xmm7 4098: vpmovzxbw %xmm6, %xmm0 4103: vpsubw %xmm7, %xmm0, %xmm0 4107: vpmullw %xmm5, %xmm0, %xmm0 4111: vpsrlw $8, %xmm0, %xmm0 4116: vpaddw %xmm7, %xmm0, %xmm0 4120: vpunpckhbw %xmm10, %xmm2, %xmm2 4125: vpunpckhbw %xmm10, %xmm6, %xmm5 4130: vpsubw %xmm2, %xmm5, %xmm5 4134: vpmullw %xmm3, %xmm5, %xmm3 4138: vpsrlw $8, %xmm3, %xmm3 4143: vpaddw %xmm2, %xmm3, %xmm2 4147: vpand %xmm8, %xmm0, %xmm0 4152: vpand %xmm8, %xmm2, %xmm2 4157: vpackuswb %xmm2, %xmm0, %xmm0 4161: vpmovzxbw %xmm4, %xmm2 4166: vpunpckhbw %xmm10, %xmm4, %xmm3 4171: vpmovzxbw %xmm1, %xmm5 4176: vpunpckhbw %xmm10, %xmm1, %xmm1 4181: vpunpckhbw %xmm10, %xmm0, %xmm6 4186: vpmovzxbw %xmm0, %xmm0 4191: vpsubw %xmm5, %xmm0, %xmm0 4195: vpmullw %xmm2, %xmm0, %xmm0 4199: vpsrlw $8, %xmm0, %xmm0 4204: vpaddw %xmm5, %xmm0, %xmm0 4208: vpsubw %xmm1, %xmm6, %xmm2 4212: vpmullw %xmm3, %xmm2, %xmm2 4216: vpsrlw $8, %xmm2, %xmm2 4221: vpaddw %xmm1, %xmm2, %xmm1 4225: vpand %xmm8, %xmm0, %xmm0 4230: vpand %xmm8, %xmm1, %xmm1 4235: vpackuswb %xmm1, %xmm0, %xmm0 4239: vpand %xmm9, %xmm13, %xmm1 4244: vcvtdq2ps %xmm1, %xmm1 4248: movabsq $140164720566364, %rax 4258: vbroadcastss (%rax), %xmm2 4263: vmulps %xmm2, %xmm1, %xmm8 4267: vpsrld $8, %xmm13, %xmm3 4273: vpand %xmm9, %xmm3, %xmm3 4278: vcvtdq2ps %xmm3, %xmm3 4282: vmulps %xmm2, %xmm3, %xmm10 4286: vpsrld $16, %xmm13, %xmm5 4292: vpand %xmm9, %xmm5, %xmm5 4297: vcvtdq2ps %xmm5, %xmm5 4301: vmulps %xmm2, %xmm5, %xmm5 4305: vpsrld $24, %xmm13, %xmm6 4311: vcvtdq2ps %xmm6, %xmm6 4315: vmulps %xmm2, %xmm6, %xmm6 4319: vpsrld $8, %xmm0, %xmm7 4324: vpand %xmm9, %xmm7, %xmm7 4329: vpsrld $16, %xmm0, %xmm1 4334: vpand %xmm9, %xmm1, %xmm1 4339: vpand %xmm9, %xmm0, %xmm3 4344: vcvtdq2ps %xmm3, %xmm3 4348: vmulps %xmm2, %xmm3, %xmm3 4352: vcvtdq2ps %xmm7, %xmm7 4356: vmulps %xmm2, %xmm7, %xmm7 4360: vcvtdq2ps %xmm1, %xmm1 4364: vmulps %xmm2, %xmm1, %xmm1 4368: vpsrld $24, %xmm0, %xmm0 4373: vcvtdq2ps %xmm0, %xmm0 4377: vmulps %xmm2, %xmm0, %xmm0 4381: vinsertf128 $1, %xmm3, %ymm8, %ymm2 4387: vinsertf128 $1, %xmm7, %ymm10, %ymm3 4393: vinsertf128 $1, %xmm1, %ymm5, %ymm1 4399: vinsertf128 $1, %xmm0, %ymm6, %ymm0 4405: vmovaps 640(%rsp), %ymm5 4414: vblendvps %ymm11, %ymm2, %ymm5, %ymm2 4420: vblendvps %ymm11, %ymm3, %ymm14, %ymm3 4426: vmovaps 416(%rsp), %ymm5 4435: vblendvps %ymm11, %ymm1, %ymm5, %ymm1 4441: vmovaps 320(%rsp), %ymm5 4450: vmulps %ymm2, %ymm5, %ymm2 4454: vblendvps %ymm11, %ymm2, %ymm5, %ymm2 4460: vmovaps 352(%rsp), %ymm5 4469: vmulps %ymm3, %ymm5, %ymm3 4473: vblendvps %ymm11, %ymm3, %ymm5, %ymm3 4479: vmovaps 288(%rsp), %ymm5 4488: vmulps %ymm1, %ymm5, %ymm1 4492: vblendvps %ymm11, %ymm1, %ymm5, %ymm1 4498: vxorps %ymm8, %ymm8, %ymm8 4503: vblendvps %ymm11, %ymm0, %ymm8, %ymm0 4509: vmovaps 256(%rsp), %ymm5 4518: vmulps %ymm0, %ymm5, %ymm0 4522: vblendvps %ymm11, %ymm0, %ymm5, %ymm0 4528: vcmpleps %ymm8, %ymm0, %ymm5 4534: vmovaps 448(%rsp), %ymm6 4543: vblendvps %ymm11, %ymm5, %ymm6, %ymm5 4549: vandps 384(%rsp), %ymm5, %ymm6 4558: vblendvps %ymm11, %ymm6, %ymm5, %ymm5 4564: vmovaps 608(%rsp), %ymm6 4573: vxorps %ymm6, %ymm5, %ymm5 4577: vcmpnltps %ymm8, %ymm5, %ymm5 4583: vpcmpeqd %ymm6, %ymm6, %ymm6 4587: vpxor %ymm6, %ymm11, %ymm6 4591: vorps %ymm6, %ymm5, %ymm5 4595: movq %r15, %rax 4598: vmovaps 288(%rax), %ymm6 4606: vandps %ymm6, %ymm5, %ymm5 4610: vmovaps 512(%rsp), %ymm6 4619: vblendvps %ymm11, 480(%rsp), %ymm6, %ymm6 4630: vmovaps 576(%rsp), %ymm7 4639: vblendvps %ymm11, 544(%rsp), %ymm7, %ymm7 4650: vblendvps %ymm11, %ymm2, %ymm8, %ymm2 4656: vblendvps %ymm11, %ymm3, %ymm8, %ymm3 4662: vblendvps %ymm11, %ymm1, %ymm8, %ymm1 4668: vblendvps %ymm11, %ymm0, %ymm8, %ymm0 4674: vmovaps %ymm2, 832(%rax) 4682: vmovaps %ymm3, 864(%rax) 4690: vmovaps %ymm1, 896(%rax) 4698: vmovaps %ymm0, 928(%rax) 4706: vmovaps %ymm6, 960(%rax) 4714: vmovaps %ymm7, 992(%rax) 4722: vmovaps %ymm8, 1024(%rax) 4730: vmovaps %ymm8, 1056(%rax) 4738: vmovaps %ymm5, 288(%rax) 4746: leaq -40(%rbp), %rsp 4750: popq %rbx 4751: popq %r12 4753: popq %r13 4755: popq %r14 4757: popq %r15 4759: popq %rbp 4760: vzeroupper 4763: retq frag shader 0x7f7aa4613000 BLEND shader 0x7f7aa4611000 BLEND shader 0x7f7aa460f000 fetch shader 0x7f7aa460d000 ========================================================= Process id 28383 Caught SIGSEGV at 0x5ad13fc address not mapped to object Program Stack: WARNING: The stack trace will not use advanced capabilities because this is a release build. 0x31aae326a0 : ??? [(???) ???:-1] 0x7f7aa4613c71 : ??? [(???) ???:-1] 0x7f7aa47b9bdb : ??? [(???) ???:-1] 0x7f7aa4906a88 : ??? [(???) ???:-1] 0x7f7aa4914b74 : ??? [(???) ???:-1] 0x7f7aa47910f5 : ??? [(???) ???:-1] 0x7f7aa4790604 : ??? [(???) ???:-1] 0x7f7aa478f954 : ??? [(???) ???:-1] 0x7f7aa478fa34 : ??? [(???) ???:-1] 0x7f7aa477422a : ??? [(???) ???:-1] 0x7f7aa935a705 : ??? [(???) ???:-1] 0x7f7aa91c7768 : ??? [(???) ???:-1] 0x7f7aa916e0b5 : ??? [(???) ???:-1] 0x7f7aa916e2f1 : ??? [(???) ???:-1] 0x7f7aa916e3ca : ??? [(???) ???:-1] 0x7f7aa8c4dd0b : shared_dispatch_stub_338 [(libglapi.so.0) ???:-1] 0x7f7aa9eaacb8 : vtkOpenGLPolyDataMapper::RenderPieceDraw(vtkRenderer*, vtkActor*) [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x7f7aa9eaa6e1 : vtkOpenGLPolyDataMapper::RenderPiece(vtkRenderer*, vtkActor*) [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x7f7aadf1717a : vtkPolyDataMapper::Render(vtkRenderer*, vtkActor*) [(libvtkRenderingCore-7.1.so.1) ???:-1] 0x7f7aa9e4c0f8 : vtkOpenGLActor::Render(vtkRenderer*, vtkMapper*) [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x7f7aade9afaa : vtkActor::RenderTranslucentPolygonalGeometry(vtkViewport*) [(libvtkRenderingCore-7.1.so.1) ???:-1] 0x7f7aadf1bdf5 : vtkProp::RenderFilteredTranslucentPolygonalGeometry(vtkViewport*, vtkInformation*) [(libvtkRenderingCore-7.1.so.1) ???:-1] 0x7f7aa9e390cf : vtkDefaultPass::RenderFilteredTranslucentPolygonalGeometry(vtkRenderState const*) [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x7f7aa9e3d768 : vtkDualDepthPeelingPass::RenderTranslucentPass() [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x7f7aa9e3deae : vtkDualDepthPeelingPass::InitializeDepth() [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x7f7aa9e3e07e : vtkDualDepthPeelingPass::Prepare() [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x7f7aa9e3ea94 : vtkDualDepthPeelingPass::Render(vtkRenderState const*) [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x7f7aa9ec9651 : vtkOpenGLRenderer::DeviceRenderTranslucentPolygonalGeometry() [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x7f7aa9ec9a30 : vtkOpenGLRenderer::UpdateGeometry() [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x7f7aa9ec9b28 : vtkOpenGLRenderer::DeviceRender() [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x7f7aadf254ae : vtkRenderer::Render() [(libvtkRenderingCore-7.1.so.1) ???:-1] 0x7f7aadf2181c : vtkRendererCollection::Render() [(libvtkRenderingCore-7.1.so.1) ???:-1] 0x7f7aadf29ff5 : vtkRenderWindow::DoStereoRender() [(libvtkRenderingCore-7.1.so.1) ???:-1] 0x7f7aadf2b36d : vtkRenderWindow::DoFDRender() [(libvtkRenderingCore-7.1.so.1) ???:-1] 0x7f7aadf2bcc5 : vtkRenderWindow::DoAARender() [(libvtkRenderingCore-7.1.so.1) ???:-1] 0x7f7aadf2a36b : vtkRenderWindow::Render() [(libvtkRenderingCore-7.1.so.1) ???:-1] 0x7f7aa9ec87a1 : vtkOpenGLRenderWindow::Render() [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x7f7aa9f38f90 : vtkXOpenGLRenderWindow::Render() [(libvtkRenderingOpenGL2-7.1.so.1) ???:-1] 0x43340d : TestTextureRGBADepthPeeling(int, char**) [(vtkRenderingCoreCxxTests) ???:-1] 0x40fb71 : main [(vtkRenderingCoreCxxTests) ???:-1] 0x31aae1ed5d : __libc_start_main [(libc.so.6) ???:-1] 0x411df1 : ??? [(???) ???:-1] ========================================================= 1/1 Test #vtkRenderingCoreCxx-TestTextureRGBADepthPeeling ...***Exception: Other 1.66 sec 0% tests passed, 1 tests failed out of 1 Label Time Summary: vtkRenderingCore = 1.66 sec Total Test time (real) = 1.85 sec The following tests FAILED: 1525 - vtkRenderingCoreCxx-TestTextureRGBADepthPeeling (OTHER_FAULT) Errors while running CTest