diff --git a/Cargo.lock b/Cargo.lock
index b22a0bf35cb6adcf4acc9d17fd4b4fdf94f1c1e0..c8d532e96470dfcfcbc04364cd322bbcc31cffa4 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -720,6 +720,7 @@ dependencies = [
  "egui",
  "egui_winit_vulkano",
  "obj",
+ "rand",
  "rayon",
  "rodio",
  "serde",
@@ -1618,6 +1619,12 @@ dependencies = [
  "miniz_oxide",
 ]
 
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
 [[package]]
 name = "proc-macro-crate"
 version = "1.2.1"
@@ -1647,6 +1654,36 @@ dependencies = [
  "proc-macro2",
 ]
 
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
 [[package]]
 name = "raw-window-handle"
 version = "0.4.3"
diff --git a/Cargo.toml b/Cargo.toml
index 23fd499ac1990a6728036ed557ca6f6ef0be3643..f8cab52c2c6b9003730ba9c70a9fffd877e18f2f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -40,6 +40,8 @@ utf-8 = "*"
 
 rayon = "*"
 
+rand = "0.8.5"
+
 # using latest gits
 [patch.crates-io]
 vulkano = { path = "../vulkano/vulkano" }
diff --git a/src/ffx-cacao/inc/ffx_cacao.h b/src/ffx-cacao/inc/ffx_cacao.h
deleted file mode 100644
index f270b46bc20e5b645b121b2f18908ac85742ed3f..0000000000000000000000000000000000000000
--- a/src/ffx-cacao/inc/ffx_cacao.h
+++ /dev/null
@@ -1,251 +0,0 @@
-// Modifications Copyright � 2021. Advanced Micro Devices, Inc. All Rights Reserved.
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2016, Intel Corporation
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
-// documentation files (the "Software"), to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to the following conditions:
-// The above copyright notice and this permission notice shall be included in all copies or substantial portions of
-// the Software.
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// File changes (yyyy-mm-dd)
-// 2016-09-07: filip.strugar@intel.com: first commit
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-/*! \file */
-
-#pragma once
-
-#include <stdint.h>
-
-typedef uint8_t FFX_CACAO_Bool;
-static const FFX_CACAO_Bool FFX_CACAO_TRUE  = 1;
-static const FFX_CACAO_Bool FFX_CACAO_FALSE = 0;
-
-/**
-	The quality levels that FidelityFX CACAO can generate SSAO at. This affects the number of samples taken for generating SSAO.
-*/
-typedef enum FFX_CACAO_Quality {
-	FFX_CACAO_QUALITY_LOWEST  = 0,
-	FFX_CACAO_QUALITY_LOW     = 1,
-	FFX_CACAO_QUALITY_MEDIUM  = 2,
-	FFX_CACAO_QUALITY_HIGH    = 3,
-	FFX_CACAO_QUALITY_HIGHEST = 4,
-} FFX_CACAO_Quality;
-
-/**
-	A structure representing a 4x4 matrix of floats. The matrix is stored in row major order in memory.
-*/
-typedef struct FFX_CACAO_Matrix4x4 {
-	float elements[4][4];
-} FFX_CACAO_Matrix4x4;
-
-/**
-	A structure for the settings used by FidelityFX CACAO. These settings may be updated with each draw call.
-*/
-typedef struct FFX_CACAO_Settings {
-	float           radius;                            ///< [0.0,  ~ ] World (view) space size of the occlusion sphere.
-	float           shadowMultiplier;                  ///< [0.0, 5.0] Effect strength linear multiplier.
-	float           shadowPower;                       ///< [0.5, 5.0] Effect strength pow modifier.
-	float           shadowClamp;                       ///< [0.0, 1.0] Effect max limit (applied after multiplier but before blur).
-	float           horizonAngleThreshold;             ///< [0.0, 0.2] Limits self-shadowing (makes the sampling area less of a hemisphere, more of a spherical cone, to avoid self-shadowing and various artifacts due to low tessellation and depth buffer imprecision, etc.).
-	float           fadeOutFrom;                       ///< [0.0,  ~ ] Distance to start fading out the effect.
-	float           fadeOutTo;                         ///< [0.0,  ~ ] Distance at which the effect is faded out.
-	FFX_CACAO_Quality qualityLevel;                      ///<            Effect quality, affects number of taps etc.
-	float           adaptiveQualityLimit;              ///< [0.0, 1.0] (only for quality level FFX_CACAO_QUALITY_HIGHEST).
-	uint32_t        blurPassCount;                     ///< [  0,   8] Number of edge-sensitive smart blur passes to apply.
-	float           sharpness;                         ///< [0.0, 1.0] (How much to bleed over edges; 1: not at all, 0.5: half-half; 0.0: completely ignore edges).
-	float           temporalSupersamplingAngleOffset;  ///< [0.0,  PI] Used to rotate sampling kernel; If using temporal AA / supersampling, suggested to rotate by ( (frame%3)/3.0*PI ) or similar. Kernel is already symmetrical, which is why we use PI and not 2*PI.
-	float           temporalSupersamplingRadiusOffset; ///< [0.0, 2.0] Used to scale sampling kernel; If using temporal AA / supersampling, suggested to scale by ( 1.0f + (((frame%3)-1.0)/3.0)*0.1 ) or similar.
-	float           detailShadowStrength;              ///< [0.0, 5.0] Used for high-res detail AO using neighboring depth pixels: adds a lot of detail but also reduces temporal stability (adds aliasing).
-	FFX_CACAO_Bool    generateNormals;                   ///< This option should be set to FFX_CACAO_TRUE if FidelityFX-CACAO should reconstruct a normal buffer from the depth buffer. It is required to be FFX_CACAO_TRUE if no normal buffer is provided.
-	float           bilateralSigmaSquared;             ///< [0.0,  ~ ] Sigma squared value for use in bilateral upsampler giving Gaussian blur term. Should be greater than 0.0.
-	float           bilateralSimilarityDistanceSigma;  ///< [0.0,  ~ ] Sigma squared value for use in bilateral upsampler giving similarity weighting for neighbouring pixels. Should be greater than 0.0.
-} FFX_CACAO_Settings;
-
-static const FFX_CACAO_Settings FFX_CACAO_DEFAULT_SETTINGS = {
-	/* radius                            */ 1.2f,
-	/* shadowMultiplier                  */ 1.0f,
-	/* shadowPower                       */ 1.50f,
-	/* shadowClamp                       */ 0.98f,
-	/* horizonAngleThreshold             */ 0.06f,
-	/* fadeOutFrom                       */ 50.0f,
-	/* fadeOutTo                         */ 300.0f,
-	/* qualityLevel                      */ FFX_CACAO_QUALITY_HIGHEST,
-	/* adaptiveQualityLimit              */ 0.45f,
-	/* blurPassCount                     */ 2,
-	/* sharpness                         */ 0.98f,
-	/* temporalSupersamplingAngleOffset  */ 0.0f,
-	/* temporalSupersamplingRadiusOffset */ 0.0f,
-	/* detailShadowStrength              */ 0.5f,
-	/* generateNormals                   */ FFX_CACAO_FALSE,
-	/* bilateralSigmaSquared             */ 5.0f,
-	/* bilateralSimilarityDistanceSigma  */ 0.01f,
-};
-
-/**
-	A C++ structure for the constant buffer used by FidelityFX CACAO.
-*/
-typedef struct FFX_CACAO_Constants {
-	float                   DepthUnpackConsts[2];
-	float                   CameraTanHalfFOV[2];
-
-	float                   NDCToViewMul[2];
-	float                   NDCToViewAdd[2];
-
-	float                   DepthBufferUVToViewMul[2];
-	float                   DepthBufferUVToViewAdd[2];
-
-	float                   EffectRadius;
-	float                   EffectShadowStrength;
-	float                   EffectShadowPow;
-	float                   EffectShadowClamp;
-
-	float                   EffectFadeOutMul;
-	float                   EffectFadeOutAdd;
-	float                   EffectHorizonAngleThreshold;
-	float                   EffectSamplingRadiusNearLimitRec;
-
-	float                   DepthPrecisionOffsetMod;
-	float                   NegRecEffectRadius;
-	float                   LoadCounterAvgDiv;
-	float                   AdaptiveSampleCountLimit;
-
-	float                   InvSharpness;
-	int                     PassIndex;
-	float                   BilateralSigmaSquared;
-	float                   BilateralSimilarityDistanceSigma;
-
-	float                   PatternRotScaleMatrices[5][4];
-
-	float                   NormalsUnpackMul;
-	float                   NormalsUnpackAdd;
-	float                   DetailAOStrength;
-	float                   Dummy0;
-
-	float                   SSAOBufferDimensions[2];
-	float                   SSAOBufferInverseDimensions[2];
-
-	float                   DepthBufferDimensions[2];
-	float                   DepthBufferInverseDimensions[2];
-
-	int                     DepthBufferOffset[2];
-	float                   PerPassFullResUVOffset[2];
-
-	float                   InputOutputBufferDimensions[2];
-	float                   InputOutputBufferInverseDimensions[2];
-
-	float                   ImportanceMapDimensions[2];
-	float                   ImportanceMapInverseDimensions[2];
-
-	float                   DeinterleavedDepthBufferDimensions[2];
-	float                   DeinterleavedDepthBufferInverseDimensions[2];
-
-	float                   DeinterleavedDepthBufferOffset[2];
-	float                   DeinterleavedDepthBufferNormalisedOffset[2];
-
-	FFX_CACAO_Matrix4x4       NormalsWorldToViewspaceMatrix;
-} FFX_CACAO_Constants;
-
-/**
-	A structure containing sizes of each of the buffers used by FidelityFX CACAO.
- */
-typedef struct FFX_CACAO_BufferSizeInfo {
-	uint32_t inputOutputBufferWidth;
-	uint32_t inputOutputBufferHeight;
-
-	uint32_t ssaoBufferWidth;
-	uint32_t ssaoBufferHeight;
-
-	uint32_t depthBufferXOffset;
-	uint32_t depthBufferYOffset;
-
-	uint32_t depthBufferWidth;
-	uint32_t depthBufferHeight;
-
-	uint32_t deinterleavedDepthBufferXOffset;
-	uint32_t deinterleavedDepthBufferYOffset;
-
-	uint32_t deinterleavedDepthBufferWidth;
-	uint32_t deinterleavedDepthBufferHeight;
-
-	uint32_t importanceMapWidth;
-	uint32_t importanceMapHeight;
-
-	uint32_t downsampledSsaoBufferWidth;
-	uint32_t downsampledSsaoBufferHeight;
-} FFX_CACAO_BufferSizeInfo;
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-	/**
-		Update buffer size info for resolution width x height.
-
-		\code{.cpp}
-		FFX_CACAO_BufferSizeInfo bufferSizeInfo = {};
-		FFX_CACAO_UpdateBufferSizeInfo(width, height, useDownsampledSsao, &bufferSizeInfo);
-		\endcode
-
-		\param width Screen width.
-		\param height Screen height.
-		\param useDownsampledSsao Whether FFX CACAO should use downsampling.
-	*/
-	void FFX_CACAO_UpdateBufferSizeInfo(uint32_t width, uint32_t height, FFX_CACAO_Bool useDownsampledSsao, FFX_CACAO_BufferSizeInfo* bsi);
-
-	/**
-		Update the contents of the FFX CACAO constant buffer (an FFX_CACAO_Constants struct). Note, this function does not update
-		per pass constants.
-
-		\code{.cpp}
-		FFX_CACAO_Matrix4x4 proj = ...;                // projection matrix for the frame
-		FFX_CACAO_Matrix4x4 normalsToView = ...;       // normals world space to view space matrix for the frame
-		FFX_CACAO_Settings settings = ...;             // settings
-		FFX_CACAO_BufferSizeInfo bufferSizeInfo = ...; // buffer size info
-
-		FFX_CACAO_Constants constants = {};
-		FFX_CACAO_UpdateConstants(&constants, &settings, &bufferSizeInfo, &proj, &normalsToView);
-		\endcode
-
-		\param consts FFX_CACAO_Constants constant buffer.
-		\param settings FFX_CACAO_Settings settings.
-		\param bufferSizeInfo FFX_CACAO_BufferSizeInfo buffer size info.
-		\param proj Projection matrix for the frame.
-		\param normalsToView Normals world space to view space matrix for the frame.
-	*/
-	void FFX_CACAO_UpdateConstants(FFX_CACAO_Constants* consts, const FFX_CACAO_Settings* settings, const FFX_CACAO_BufferSizeInfo* bufferSizeInfo, const FFX_CACAO_Matrix4x4* proj, const FFX_CACAO_Matrix4x4* normalsToView);
-
-	/**
-		Update the contents of the FFX CACAO constant buffer (an FFX_CACAO_Constants struct) with per pass constants.
-		FFX CACAO runs 4 passes which use different constants. It is recommended to have four separate FFX_CACAO_Constants structs
-		each filled with constants for each of the 4 passes.
-
-		\code{.cpp}
-		FFX_CACAO_Settings settings = ...;             // settings
-		FFX_CACAO_BufferSizeInfo bufferSizeInfo = ...; // buffer size info
-
-		FFX_CACAO_Constants perPassConstants[4] = {};
-
-		for (int i = 0; i < 4; ++i) {
-			FFX_CACAO_UpdatePerPassConstants(&perPassConstants[i], &settings, &bufferSizeInfo, i);
-		}
-		\endcode
-
-		\param consts FFX_CACAO_Constants constants buffer.
-		\param settings FFX_CACAO_Settings settings.
-		\param bufferSizeInfo FFX_CACAO_BufferSizeInfo buffer size info.
-		\param pass pass number.
-	*/
-	void FFX_CACAO_UpdatePerPassConstants(FFX_CACAO_Constants* consts, const FFX_CACAO_Settings* settings, const FFX_CACAO_BufferSizeInfo* bufferSizeInfo, int pass);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/ffx-cacao/inc/ffx_cacao_impl.h b/src/ffx-cacao/inc/ffx_cacao_impl.h
deleted file mode 100644
index f5a723d2c7551a2007932a6d1ab77ca68d6fd51a..0000000000000000000000000000000000000000
--- a/src/ffx-cacao/inc/ffx_cacao_impl.h
+++ /dev/null
@@ -1,312 +0,0 @@
-// Modifications Copyright � 2021. Advanced Micro Devices, Inc. All Rights Reserved.
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2016, Intel Corporation
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
-// documentation files (the "Software"), to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to the following conditions:
-// The above copyright notice and this permission notice shall be included in all copies or substantial portions of
-// the Software.
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// File changes (yyyy-mm-dd)
-// 2016-09-07: filip.strugar@intel.com: first commit
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-/*! \file */
-
-#pragma once
-
-#include "ffx_cacao.h"
-
-// #define FFX_CACAO_ENABLE_PROFILING
-// #define FFX_CACAO_ENABLE_D3D12
-// #define FFX_CACAO_ENABLE_VULKAN
-
-#ifdef FFX_CACAO_ENABLE_D3D12
-#include <d3d12.h>
-#endif
-#ifdef FFX_CACAO_ENABLE_VULKAN
-#include <vulkan/vulkan.h>
-#endif
-
-/**
-	The return codes for the API functions.
-*/
-typedef enum FFX_CACAO_Status {
-	FFX_CACAO_STATUS_OK               =  0,
-	FFX_CACAO_STATUS_INVALID_ARGUMENT = -1,
-	FFX_CACAO_STATUS_INVALID_POINTER  = -2,
-	FFX_CACAO_STATUS_OUT_OF_MEMORY    = -3,
-	FFX_CACAO_STATUS_FAILED           = -4,
-} FFX_CACAO_Status;
-
-#ifdef FFX_CACAO_ENABLE_D3D12
-/**
-	A struct containing all of the data used by FidelityFX-CACAO.
-	A context corresponds to an ID3D12Device.
-*/
-typedef struct FFX_CACAO_D3D12Context FFX_CACAO_D3D12Context;
-
-/**
-	The parameters for creating a context.
-*/
-typedef struct FFX_CACAO_D3D12ScreenSizeInfo {
-	uint32_t                          width;                ///< width of the input/output buffers
-	uint32_t                          height;               ///< height of the input/output buffers
-	ID3D12Resource                   *depthBufferResource;  ///< pointer to depth buffer ID3D12Resource
-	D3D12_SHADER_RESOURCE_VIEW_DESC   depthBufferSrvDesc;   ///< depth buffer D3D12_SHADER_RESOURCE_VIEW_DESC
-	ID3D12Resource                   *normalBufferResource; ///< optional pointer to normal buffer ID3D12Resource (leave as NULL if none is provided)
-	D3D12_SHADER_RESOURCE_VIEW_DESC   normalBufferSrvDesc;  ///< normal buffer D3D12_SHADER_RESOURCE_VIEW_DESC
-	ID3D12Resource                   *outputResource;       ///< pointer to output buffer ID3D12Resource
-	D3D12_UNORDERED_ACCESS_VIEW_DESC  outputUavDesc;        ///< output buffer D3D12_UNORDERED_ACCESS_VIEW_DESC
-	FFX_CACAO_Bool                      useDownsampledSsao;   ///< Whether SSAO should be generated at native resolution or half resolution. It is recommended to enable this setting for improved performance.
-} FFX_CACAO_D3D12ScreenSizeInfo;
-#endif
-
-#ifdef FFX_CACAO_ENABLE_VULKAN
-/**
-	A struct containing all of the data used by FidelityFX-CACAO.
-	A context corresponds to a VkDevice.
-*/
-typedef struct FFX_CACAO_VkContext FFX_CACAO_VkContext;
-
-/**
-	Miscellaneous flags for used for Vulkan context creation by FidelityFX-CACAO
- */
-typedef enum FFX_CACAO_VkCreateFlagsBits {
-	FFX_CACAO_VK_CREATE_USE_16_BIT        = 0x00000001, ///< Flag controlling whether 16-bit optimisations are enabled in shaders.
-	FFX_CACAO_VK_CREATE_USE_DEBUG_MARKERS = 0x00000002, ///< Flag controlling whether debug markers should be used.
-	FFX_CACAO_VK_CREATE_NAME_OBJECTS      = 0x00000004, ///< Flag controlling whether Vulkan objects should be named.
-} FFX_CACAO_VkCreateFlagsBits;
-typedef uint32_t FFX_CACAO_VkCreateFlags;
-
-/**
-	The parameters for creating a context.
-*/
-typedef struct FFX_CACAO_VkCreateInfo {
-	VkPhysicalDevice                 physicalDevice; ///< The VkPhysicalDevice corresponding to the VkDevice in use
-	VkDevice                         device;         ///< The VkDevice to use FFX CACAO with
-	FFX_CACAO_VkCreateFlags            flags;          ///< Miscellaneous flags for context creation
-} FFX_CACAO_VkCreateInfo;
-
-/**
-	The parameters necessary when changing the screen size of FidelityFX CACAO.
-*/
-typedef struct FFX_CACAO_VkScreenSizeInfo {
-	uint32_t                          width;                ///< width of the input/output buffers
-	uint32_t                          height;               ///< height of the input/output buffers
-	VkImageView                       depthView;            ///< An image view for the depth buffer, should be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL when used with FFX CACAO
-	VkImageView                       normalsView;          ///< An optional image view for the normal buffer (may be VK_NULL_HANDLE). Should be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL when used with FFX CACAO
-	VkImage                           output;               ///< An image for writing output from FFX CACAO, must have the same dimensions as the input
-	VkImageView                       outputView;           ///< An image view corresponding to the output image.
-	FFX_CACAO_Bool                      useDownsampledSsao;   ///< Whether SSAO should be generated at native resolution or half resolution. It is recommended to enable this setting for improved performance.
-} FFX_CACAO_VkScreenSizeInfo;
-#endif
-
-#ifdef FFX_CACAO_ENABLE_PROFILING
-/**
-	A timestamp. The label gives the name of the stage of the effect, and the ticks is the number of GPU ticks spent on that stage.
-*/
-typedef struct FFX_CACAO_Timestamp {
-	const char *label; ///< name of timestamp stage
-	uint64_t    ticks; ///< number of GPU ticks taken for stage
-} FFX_CACAO_Timestamp;
-
-/**
-	An array of timestamps for detailed profiling information. The array timestamps contains numTimestamps entries.
-	Entry 0 of the timestamps array is guaranteed to be the total time taken by the effect.
-*/
-typedef struct FFX_CACAO_DetailedTiming {
-	uint32_t          numTimestamps;  ///< number of timetstamps in the array timestamps
-	FFX_CACAO_Timestamp timestamps[32]; ///< array of timestamps for each FFX CACAO stage
-} FFX_CACAO_DetailedTiming;
-#endif
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#ifdef FFX_CACAO_ENABLE_D3D12
-	/**
-		Gets the size in bytes required by a context. This is to be used to allocate space for the context.
-		For example:
-
-		\code{.cpp}
-		size_t FFX_CACAO_D3D12ContextSize = ffxCacaoD3D12GetContextSize();
-		FFX_CACAO_D3D12Context *context = (FFX_CACAO_D3D12Context*)malloc(FFX_CACAO_D3D12GetContextSize);
-
-		// ...
-
-		FFX_CACAO_D3D12DestroyContext(context);
-		free(context);
-		\endcode
-
-		\return The size in bytes of an FFX_CACAO_D3D12Context.
-	*/
-	size_t FFX_CACAO_D3D12GetContextSize();
-
-	/**
-		Initialises an FFX_CACAO_D3D12Context.
-
-		\param context A pointer to the context to initialise.
-		\param device A pointer to the D3D12 device.
-		\return The corresponding error code.
-	*/
-	FFX_CACAO_Status FFX_CACAO_D3D12InitContext(FFX_CACAO_D3D12Context* context, ID3D12Device* device);
-
-	/**
-		Destroys an FFX_CACAO_D3D12Context.
-
-		\param context A pointer to the context to be destroyed.
-		\return The corresponding error code.
-
-		\note This function does not destroy screen size dependent resources, and must be called after FFX_CACAO_D3D12DestroyScreenSizeDependentResources.
-	*/
-	FFX_CACAO_Status FFX_CACAO_D3D12DestroyContext(FFX_CACAO_D3D12Context* context);
-
-	/**
-		Initialises screen size dependent resources for the FFX_CACAO_D3D12Context.
-
-		\param context A pointer to the FFX_CACAO_D3D12Context.
-		\param info A pointer to an FFX_CACAO_D3D12ScreenSizeInfo struct containing screen size info.
-		\return The corresponding error code.
-	*/
-	FFX_CACAO_Status FFX_CACAO_D3D12InitScreenSizeDependentResources(FFX_CACAO_D3D12Context* context, const FFX_CACAO_D3D12ScreenSizeInfo* info);
-
-	/**
-		Destroys screen size dependent resources for the FFX_CACAO_D3D12Context.
-
-		\param context A pointer to the FFX_CACAO_D3D12Context.
-		\return The corresponding error code.
-	*/
-	FFX_CACAO_Status FFX_CACAO_D3D12DestroyScreenSizeDependentResources(FFX_CACAO_D3D12Context* context);
-
-	/**
-		Update the settings of the FFX_CACAO_D3D12Context to those stored in the FFX_CACAO_Settings struct.
-
-		\param context A pointer to the FFX_CACAO_D3D12Context to update.
-		\param settings A pointer to the FFX_CACAO_Settings struct containing the new settings.
-		\return The corresponding error code.
-	*/
-	FFX_CACAO_Status FFX_CACAO_D3D12UpdateSettings(FFX_CACAO_D3D12Context* context, const FFX_CACAO_Settings* settings);
-
-	/**
-		Append commands for drawing FFX CACAO to the provided ID3D12GraphicsCommandList.
-
-		\param context A pointer to the FFX_CACAO_D3D12Context.
-		\param commandList A pointer to the ID3D12GraphicsCommandList to append commands to.
-		\param proj A pointer to the projection matrix.
-		\param normalsToView An optional pointer to a matrix for transforming normals to in the normal buffer to viewspace.
-		\return The corresponding error code.
-	*/
-	FFX_CACAO_Status FFX_CACAO_D3D12Draw(FFX_CACAO_D3D12Context* context, ID3D12GraphicsCommandList* commandList, const FFX_CACAO_Matrix4x4* proj, const FFX_CACAO_Matrix4x4* normalsToView);
-
-#if FFX_CACAO_ENABLE_PROFILING
-	/**
-		Get detailed performance timings from the previous frame.
-
-		\param context A pointer to the FFX_CACAO_D3D12Context.
-		\param timings A pointer to an FFX_CACAO_DetailedTiming struct to fill in with detailed timings.
-		\result The corresponding error code.
-	*/
-	FFX_CACAO_Status FFX_CACAO_D3D12GetDetailedTimings(FFX_CACAO_D3D12Context* context, FFX_CACAO_DetailedTiming* timings);
-#endif
-#endif
-
-#ifdef FFX_CACAO_ENABLE_VULKAN
-	/**
-		Gets the size in bytes required by a Vulkan context. This is to be used to allocate space for the context.
-		For example:
-
-		\code{.cpp}
-		size_t FFX_CACAO_VkContextSize = ffxCacaoVkGetContextSize();
-		FFX_CACAO_VkContext *context = (FFX_CACAO_VkContext*)malloc(FFX_CACAO_VkGetContextSize);
-
-		// ...
-
-		FFX_CACAO_VkDestroyContext(context);
-		free(context);
-		\endcode
-
-		\return The size in bytes of an FFX_CACAO_VkContext.
-	*/
-	size_t FFX_CACAO_VkGetContextSize();
-
-	/**
-		Initialises an FFX_CACAO_VkContext.
-
-		\param context A pointer to the context to initialise.
-		\param info A pointer to an FFX_CACAO_VkCreateInfo struct with parameters such as the vulkan device.
-		\return The corresponding error code.
-	*/
-	FFX_CACAO_Status FFX_CACAO_VkInitContext(FFX_CACAO_VkContext* context, const FFX_CACAO_VkCreateInfo *info);
-
-	/**
-		Destroys an FFX_CACAO_VkContext.
-
-		\param context A pointer to the context to be destroyed.
-		\return The corresponding error code.
-
-		\note This function does not destroy screen size dependent resources, and must be called after FFX_CACAO_VkDestroyScreenSizeDependentResources.
-	*/
-	FFX_CACAO_Status FFX_CACAO_VkDestroyContext(FFX_CACAO_VkContext* context);
-
-	/**
-		Initialises screen size dependent resources for the FFX_CACAO_VkContext.
-
-		\param context A pointer to the FFX_CACAO_VkContext.
-		\param info A pointer to an FFX_CACAO_VkScreenSizeInfo struct containing screen size info.
-		\return The corresponding error code.
-	*/
-	FFX_CACAO_Status FFX_CACAO_VkInitScreenSizeDependentResources(FFX_CACAO_VkContext* context, const FFX_CACAO_VkScreenSizeInfo* info);
-
-	/**
-		Destroys screen size dependent resources for the FFX_CACAO_VkContext.
-
-		\param context A pointer to the FFX_CACAO_VkContext.
-		\return The corresponding error code.
-	*/
-	FFX_CACAO_Status FFX_CACAO_VkDestroyScreenSizeDependentResources(FFX_CACAO_VkContext* context);
-
-	/**
-		Update the settings of the FFX_CACAO_VkContext to those stored in the FFX_CACAO_Settings struct.
-
-		\param context A pointer to the FFX_CACAO_VkContext to update.
-		\param settings A pointer to the FFX_CACAO_Settings struct containing the new settings.
-		\return The corresponding error code.
-	*/
-	FFX_CACAO_Status FFX_CACAO_VkUpdateSettings(FFX_CACAO_VkContext* context, const FFX_CACAO_Settings* settings);
-
-	/**
-		Append commands for drawing FFX CACAO to the provided VkCommandBuffer.
-
-		\param context A pointer to the FFX_CACAO_VkContext.
-		\param commandList The VkCommandBuffer to append commands to.
-		\param proj A pointer to the projection matrix.
-		\param normalsToView An optional pointer to a matrix for transforming normals to in the normal buffer to viewspace.
-		\return The corresponding error code.
-	*/
-	FFX_CACAO_Status FFX_CACAO_VkDraw(FFX_CACAO_VkContext* context, VkCommandBuffer commandList, const FFX_CACAO_Matrix4x4* proj, const FFX_CACAO_Matrix4x4* normalsToView);
-
-#ifdef FFX_CACAO_ENABLE_PROFILING
-	/**
-		Get detailed performance timings from the previous frame.
-
-		\param context A pointer to the FFX_CACAO_VkContext.
-		\param timings A pointer to an FFX_CACAO_DetailedTiming struct to fill in with detailed timings.
-		\result The corresponding error code.
-	*/
-	FFX_CACAO_Status FFX_CACAO_VkGetDetailedTimings(FFX_CACAO_VkContext* context, FFX_CACAO_DetailedTiming* timings);
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/ffx-cacao/readme.md b/src/ffx-cacao/readme.md
deleted file mode 100644
index 66a9151ca47a8cb6f63b418b6e77790aa87c562a..0000000000000000000000000000000000000000
--- a/src/ffx-cacao/readme.md
+++ /dev/null
@@ -1,196 +0,0 @@
-# FidelityFX CACAO
-
-The **FidelityFX CACAO** library implements screen space ambient occlusion for use in real time applications. A full sample can be found on the [FidelityFX CACAO Github page](https://github.com/GPUOpen-Effects/FidelityFX-CACAO).
-
-# Project Integration
-
-FidelityFX CACAO comes with two main header files, `ffx-cacao/inc/ffx_cacao.h` and `ffx-cacao/inc/ffx_cacao_impl.h`. The file `ffx-cacao/inc/ffx_cacao.h` contains reusable C++ functions and struct definitions for integration of FidelityFX CACAO into custom engines. The functions declared in this header file are defined in `ffx-cacao/src/ffx_cacao.cpp`. The header file `ffx-cacao/inc/ffx_cacao_impl.h` is for use in quick integration of FidelityFX CACAO into DX12 and Vulkan engines. The functions declared in this file are defined in `ffx-cacao/src/ffx_cacao_impl.cpp`, which serves as a reference implementation of FidelityFX CACAO.
-
-# Reusable Functions and Structs
-
-The reusable functions and structs provided in `ffx-cacao/src/ffx_cacao.h` are documented via doxygen comments in the header file itself. The functions and structs are used to initialise the constant buffers used by FidelityFX CACAO from a user friendly settings struct `FFX_CACAO_Settings`.
-
-# Reference Implementation
-
-The reference implementation of FidelityFX CACAO supports three compile time options. These are:
-
-```C++
-FFX_CACAO_ENABLE_D3D12
-FFX_CACAO_ENABLE_VK
-FFX_CACAO_ENABLE_PROFILING
-```
-
-For use with D3D12 or Vulkan, the symbols `FFX_CACAO_ENABLE_D3D12` or `FFX_CACAO_ENABLE_VK` must be defined. If you wish to get detailed timings from FFX CACAO the symbol `FFX_CACAO_ENABLE_PROFILING` must be defined. These symbols can either be defined in the header `ffx-cacao/inc/ffx_cacao_impl.h` itself by uncommenting the respective definitions, or they can defined in compiler flags. The provided sample of FFX CACAO defines these symbols using compiler flags.
-
-# Context Initialisation and Shutdown
-
-First the FFX CACAO header must be included. This can be found at `ffx-cacao/inc/ffx_cacao_impl.h`. Then a context must be created. This is usually done only once per device. To create a context you must first query for the size of a context, allocate space for a context, then inintialise the context.
-
-
-For D3D12 the initialisation and shutdown processes are as follows:
-
-```C++
-// initialisation
-size_t ffxCacaoContextSize = ffxCacaoD3D12GetContextSize();
-FfxCacaoD3D12Context *context = (FfxCacaoD3D12Context*)malloc(ffxCacaoContextSize);
-assert(context);
-FfxCacaoStatus status = ffxCacaoD3D12InitContext(context, d3d12Device);
-assert(status == FFX_CACAO_STATUS_OK);
-...
-// finalisation
-status = ffxCacaoD3D12DestroyContext(context);
-assert(status == FFX_CACAO_STATUS_OK);
-free(context);
-```
-
-The only argument required for initialisation of a D3D12 context is an `ID3D12Device*` for the D3D12 device.
-
-For Vulkan the initialisation and shutdown processes are as follows:
-
-```C++
-// initialisation
-size_t ffxCacaoContextSize = ffxCacaoVkGetContextSize();
-FfxCacaoVkContext *context = (FfxCacaoVkContext*)malloc(ffxCacaoContextSize);
-assert(context);
-FfxCacaoVkCreateInfo info = {};
-info.physicalDevice = vkPhysicalDevice;
-info.device = vkDevice;
-info.flags = FFX_CACAO_VK_CREATE_USE_16_BIT | FFX_CACAO_VK_CREATE_USE_DEBUG_MARKERS | FFX_CACAO_VK_CREATE_NAME_OBJECTS;
-FfxCacaoStatus status = ffxCacaoVkInitContext(context, &info);
-assert(status == FFX_CACAO_STATUS_OK);
-...
-// finalisation
-status = ffxCacaoVkDestroyContext(context);
-assert(status == FFX_CACAO_STATUS_OK);
-free(context);
-```
-
-To initialise the FFX CACAO context in Vulkan, the parameters of the `FfxCacaoVkCreateInfo` struct must be filled in. These are the Vulkan physical device and Vulkan device, and a field of flags. The flags is a bitwise combination of the following options. The option `FFX_CACAO_VK_CREATE_USE_16_BIT` enables 16 bit optimisations, and requires a Vulkan device created using 16 bit extensions. This option is strongly recommended for compatible devices. The options `FFX_CACAO_VK_CREATE_USE_DEBUG_MARKERS` and `FFX_CACAO_VK_CREATE_NAME_OBJECTS` will add debug markers and name objects (e.g. textures, shaders) to aid inspection of FFX CACAO with a frame debugger.
-
-# Screen Size Dependent Resource Initialisation
-
-Once the context is initialised, it will need to have screen size dependent resources initialised each time the screen size is changed. To do this, an `FfxCacaoD3D12ScreenSizeInfo` struct must be filled out. The FFX CACAO effect is computed using a depth buffer and optional normal buffer. FFX CACAO writes its output to a user provided output buffer. The depth buffer, normal buffer and output buffer provided to FFX CACAO must all be the same size.
-
-
-For FFX CACAO D3D12, the process is as follows:
-
-```C++
-// initialisation
-FfxCacaoD3D12ScreenSizeInfo screenSizeInfo = {};
-screenSizeInfo.width = /* width of the input/output buffers */;
-screenSizeInfo.height = /* height of the input/output buffers */;
-screenSizeInfo.depthBufferResource = /* ID3D12Resource* for the depth input buffer */;
-screenSizeInfo.depthBufferSrvDesc = /* D3D12_SHADER_RESOURCE_VIEW_DESC for the depth input buffer */;
-screenSizeInfo.normalBufferResource = /* ID3D12Resource* for the normal input buffer - or NULL if none shall be provided */;
-screenSizeInfo.normalBufferSrvDesc = /* D3D12_SHADER_RESOURCE_VIEW_DESC for the normal input buffer */;
-screenSizeInfo.outputResource = /* ID3D12Resource* for the output buffer */;
-screenSizeInfo.depthBufferSrvDesc = /* D3D12_SHADER_RESOURCE_VIEW_DESC for the depth output */;
-status = ffxCacaoD3D12InitScreenSizeDependentResources(context, &screenSizeInfo);
-assert(status == FFX_CACAO_STATUS_OK);
-...
-// finalisation
-status = ffxCacaoD3D12DestroyScreenSizeDependentResources(context);
-assert(status == FFX_CACAO_STATUS_OK);
-```
-
-For FFX CACAO Vulkan, the process is as follows:
-
-```C++
-// Initialisation
-FfxCacaoVkScreenSizeInfo screenSizeInfo = {};
-screenSizeInfo.width = /* width of the input/output buffers */;
-screenSizeInfo.height = /* height of the input/output buffers */;
-screenSizeInfo.depthView = /* a VkImageView for the depth buffer, should be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL */;
-screenSizeInfo.normalsView = /* an optional VkImageView for the normal buffer (VK_NULL_HANDLE if not provided), should be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL */;
-screenSizeInfo.output = /* a VkImage for writing the output of FFX CACAO */;
-screenSizeInfo.outputView = /* a VkImageView corresponding to the VkImage for writing the output of FFX CACAO */;
-status = ffxCacaoVkInitScreenSizeDependentResources(context, &screenSizeInfo);
-assert(status == FFX_CACAO_STATUS_OK);
-...
-// finalisation
-status = ffxCacaoVkDestroyScreenSizeDependentResources(context);
-assert(status == FFX_CACAO_STATUS_OK);
-```
-
-# Initialising/Updating FFX CACAO Settings
-
-The settings for the FFX CACAO effect may be changed via the `FfxCacaoSettings` struct and the `ffxCacaoD3D12UpdateSettings` or `ffxCacaoVkUpdateSettings` functions as follows.
-
-```C++
-FfxCacaoSettings settings = {};
-settings.radius = /* world view radius of the occlusion sphere */;
-settings.shadowMultiplier = /* effect strength linear multiplier */;
-settings.shadowPower = /* effect strength power multiplier */;
-settings.shadowClamp = /* effect max limit */;
-settings.horizonAngleThreshold = /* minimum horizon angle for contributions to occlusion to limit self shadowing */
-settings.fadeOutFrom = /* effect fade out from world space distance */;
-settings.fadeOutTo = /* effect fade out to world space distance */;
-settings.qualityLevel = /* the quality of the effect, ranging from lowest to highest (adaptive). This affects the number of samples taken to generate SSAO. */;
-settings.adaptiveQualityLimit = /* quality limit for adaptive quality */;
-settings.blurPassCount = /* a number of edge sensitive blurs from 1 to 8 to perform after SSAO generation */;
-settings.sharpness = /* how much to bleed over edges - 0 = ignore edges, 1 = don't bleed over edges */;
-settings.temporalSupersamplingAngleOffset = /* sampling angle offset for temporal super sampling */;
-settings.temporalSupersamplingRaidusOffset = /* sampling effect radius offset for temporal super sampling */;
-settings.detailShadowStrength = /* used to generate details in high res AO */;
-settings.generateNormals = /* should the effect generate normals from the depth buffer or use a provided normal buffer */;
-settings.bilateralSigmaSquared = /* a parameter for use in bilateral upsampling. Higher values create more blur to help reduce noise */;
-settings.bilateralSimilarityDistanceSigma = /* a parameter for use in bilateral upsampling. Lower values create reduce bluring across edge boundaries */;
-```
-
-These settings can be set to sensible defaults from the constant `FFX_CACAO_DEFAULT_SETTINGS` and updated using the function `ffxCacaoD3D12UpdateSettings` or `ffxCacaoVkUpdateSettings` as follows.
-
-```C++
-FfxCacaoSettings settings = FFX_CACAO_DEFAULT_SETTINGS;
-status = ffxCacaoD3D12UpdateSettings(context, &settings);
-assert(status == FFX_CACAO_STATUS_OK);
-```
-
-Note that the `FFX_CACAO_DEFAULT_SETTINGS` provides a sensible quick start for high quality settings. The parameters `radius`, `fadeOutFrom` and `fadeOutTo` should
-be changed to match the world space of the target scene, and the parameter `blurPassCount` is recommended to be increased for lower quality settings. A more complete
-set of sensible defaults may be found in the FFX CACAO sample in the file `sample/src/Common/FFX_CACAO_Common.h`, where multiple parameters have been varied to move
-from high to low quality presets.
-
-# Drawing
-
-In D3D12, FFX CACAO can be called to add commands to a `ID3D12GraphicsCommandList` using the `ffxCacaoD3D12Draw` function as follows:
-
-```C++
-FfxCacaoMatrix4x4 proj = /* row major projection matrix */;
-FfxCacaoMatrix4x4 normalsToView = /* row major matrix to convert normals to viewspace */
-status = ffxCacaoD3D12Draw(context, commandList, &proj, &normalsToView);
-assert(status == FFX_CACAO_STATUS_OK);
-```
-
-In Vulkan, FFX CACAO can add commands to a `VkCommandBuffer` using the `ffxCacaoVkDraw` function as follows:
-
-```C++
-FfxCacaoMatrix4x4 proj = /* row major projection matrix */;
-FfxCacaoMatrix4x4 normalsToView = /* row major matrix to convert normals to viewspace */
-status = ffxCacaoVkDraw(context, commandBuffer, &proj, &normalsToView);
-assert(status == FFX_CACAO_STATUS_OK);
-```
-
-The matrix `proj` is the projection matrix used from viewspace to normalised device coordinates. The matrix `normalsToView` is a matrix to convert the normals provided in the normal buffer to viewspace.
-
-# Profiling
-
-Finally, if the preprocessor symbol `FFX_CACAO_ENABLE_PROFILING` is defined, then detailed timings can be read from FFX CACAO using the functions `ffxCacaoD3D12GetDetailedTimings` and `ffxCacaoVkGetDetailedTimings` for D3D12 and Vulkan respectively. These functions should be called as follows:
-
-```C++
-FfxCacaoDetailedTiming timings = {};
-uint64_t gpuTicksPerMicrosecond;
-FfxCacaoStatus status = ffxCacaoD3D12GetDetailedTimings(context, &timings, &gpuTicksPerMicrosecond);
-assert(status == FFX_CACAO_STATUS_OK);
-```
-
-The timings returned are in GPU ticks. These can be converted into seconds using the value returned in the `gpuTicksPerMicrosecond` parameter above.
-
-Or in Vulkan:
-
-```C++
-FfxCacaoDetailedTiming timings = {};
-FfxCacaoStatus status = ffxCacaoD3D12GetDetailedTimings(context, &timings);
-assert(status == FFX_CACAO_STATUS_OK);
-```
-
-The timings returned are measured in GPU ticks, and will need to be converted using th GPU ticks per microsecond parameter available from `vkGetPhysicalDeviceLimits`.
diff --git a/src/ffx-cacao/src/build_shaders_dxil.bat b/src/ffx-cacao/src/build_shaders_dxil.bat
deleted file mode 100644
index 48cbb938567530cb3b505bed49c2d9bef61e6e87..0000000000000000000000000000000000000000
--- a/src/ffx-cacao/src/build_shaders_dxil.bat
+++ /dev/null
@@ -1,55 +0,0 @@
-%echo off
-
-pushd %~dp0
-
-set cauldron_dxc=..\..\sample\libs\cauldron\libs\DXC\bin\dxc.exe -T cs_6_2
-
-if not exist "PrecompiledShadersDXIL" mkdir "PrecompiledShadersDXIL"
-
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOClearLoadCounter.h -Vn CSClearLoadCounterDXIL -E FFX_CACAO_ClearLoadCounter ffx_cacao.hlsl
-
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOPrepareDownsampledDepths.h                  -Vn CSPrepareDownsampledDepthsDXIL                  -E FFX_CACAO_PrepareDownsampledDepths                  ffx_cacao.hlsl
-
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOPrepareNativeDepths.h                       -Vn CSPrepareNativeDepthsDXIL                       -E FFX_CACAO_PrepareNativeDepths                       ffx_cacao.hlsl
-
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOPrepareDownsampledDepthsAndMips.h           -Vn CSPrepareDownsampledDepthsAndMipsDXIL            -E FFX_CACAO_PrepareDownsampledDepthsAndMips           ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOPrepareNativeDepthsAndMips.h                -Vn CSPrepareNativeDepthsAndMipsDXIL                 -E FFX_CACAO_PrepareNativeDepthsAndMips                ffx_cacao.hlsl
-
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOPrepareDownsampledNormals.h                 -Vn CSPrepareDownsampledNormalsDXIL                  -E FFX_CACAO_PrepareDownsampledNormals                 ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOPrepareNativeNormals.h                      -Vn CSPrepareNativeNormalsDXIL                       -E FFX_CACAO_PrepareNativeNormals                      ffx_cacao.hlsl
-
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOPrepareDownsampledNormalsFromInputNormals.h -Vn CSPrepareDownsampledNormalsFromInputNormalsDXIL  -E FFX_CACAO_PrepareDownsampledNormalsFromInputNormals ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOPrepareNativeNormalsFromInputNormals.h      -Vn CSPrepareNativeNormalsFromInputNormalsDXIL       -E FFX_CACAO_PrepareNativeNormalsFromInputNormals      ffx_cacao.hlsl
-
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOPrepareDownsampledDepthsHalf.h              -Vn CSPrepareDownsampledDepthsHalfDXIL               -E FFX_CACAO_PrepareDownsampledDepthsHalf              ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOPrepareNativeDepthsHalf.h                   -Vn CSPrepareNativeDepthsHalfDXIL                    -E FFX_CACAO_PrepareNativeDepthsHalf                   ffx_cacao.hlsl
-
-
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOGenerateQ0.h     -Vn CSGenerateQ0DXIL      -E FFX_CACAO_GenerateQ0     ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOGenerateQ1.h     -Vn CSGenerateQ1DXIL      -E FFX_CACAO_GenerateQ1     ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOGenerateQ2.h     -Vn CSGenerateQ2DXIL      -E FFX_CACAO_GenerateQ2     ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOGenerateQ3.h     -Vn CSGenerateQ3DXIL      -E FFX_CACAO_GenerateQ3     ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOGenerateQ3Base.h -Vn CSGenerateQ3BaseDXIL  -E FFX_CACAO_GenerateQ3Base ffx_cacao.hlsl
-
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOGenerateImportanceMap.h     -Vn CSGenerateImportanceMapDXIL      -E FFX_CACAO_GenerateImportanceMap     ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOPostprocessImportanceMapA.h -Vn CSPostprocessImportanceMapADXIL  -E FFX_CACAO_PostprocessImportanceMapA ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOPostprocessImportanceMapB.h -Vn CSPostprocessImportanceMapBDXIL  -E FFX_CACAO_PostprocessImportanceMapB ffx_cacao.hlsl
-
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOEdgeSensitiveBlur1.h -Vn CSEdgeSensitiveBlur1DXIL  -E FFX_CACAO_EdgeSensitiveBlur1 ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOEdgeSensitiveBlur2.h -Vn CSEdgeSensitiveBlur2DXIL  -E FFX_CACAO_EdgeSensitiveBlur2 ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOEdgeSensitiveBlur3.h -Vn CSEdgeSensitiveBlur3DXIL  -E FFX_CACAO_EdgeSensitiveBlur3 ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOEdgeSensitiveBlur4.h -Vn CSEdgeSensitiveBlur4DXIL  -E FFX_CACAO_EdgeSensitiveBlur4 ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOEdgeSensitiveBlur5.h -Vn CSEdgeSensitiveBlur5DXIL  -E FFX_CACAO_EdgeSensitiveBlur5 ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOEdgeSensitiveBlur6.h -Vn CSEdgeSensitiveBlur6DXIL  -E FFX_CACAO_EdgeSensitiveBlur6 ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOEdgeSensitiveBlur7.h -Vn CSEdgeSensitiveBlur7DXIL  -E FFX_CACAO_EdgeSensitiveBlur7 ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOEdgeSensitiveBlur8.h -Vn CSEdgeSensitiveBlur8DXIL  -E FFX_CACAO_EdgeSensitiveBlur8 ffx_cacao.hlsl
-
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOApply.h             -Vn CSApplyDXIL              -E FFX_CACAO_Apply             ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAONonSmartApply.h     -Vn CSNonSmartApplyDXIL      -E FFX_CACAO_NonSmartApply     ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAONonSmartHalfApply.h -Vn CSNonSmartHalfApplyDXIL  -E FFX_CACAO_NonSmartHalfApply ffx_cacao.hlsl
-
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOUpscaleBilateral5x5NonSmart.h -Vn CSUpscaleBilateral5x5NonSmartDXIL -E FFX_CACAO_UpscaleBilateral5x5NonSmart ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOUpscaleBilateral5x5Smart.h    -Vn CSUpscaleBilateral5x5SmartDXIL    -E FFX_CACAO_UpscaleBilateral5x5Smart    ffx_cacao.hlsl
-%cauldron_dxc% -Fh PrecompiledShadersDXIL/CACAOUpscaleBilateral5x5Half.h     -Vn CSUpscaleBilateral5x5HalfDXIL     -E FFX_CACAO_UpscaleBilateral5x5Half     ffx_cacao.hlsl
-
-popd
diff --git a/src/ffx-cacao/src/build_shaders_spirv.bat b/src/ffx-cacao/src/build_shaders_spirv.bat
deleted file mode 100644
index 7b52b49c92737ffe1ce39e0a4ec4c2e143ea26b3..0000000000000000000000000000000000000000
--- a/src/ffx-cacao/src/build_shaders_spirv.bat
+++ /dev/null
@@ -1,103 +0,0 @@
-%echo off
-
-pushd %~dp0
-
-set cauldron_dxc_16=glslc -Wno-conversion -spirv -T cs_6_2 -enable-16bit-types -fspv-target-env=vulkan1.1 -fvk-s-shift 0 0 -fvk-b-shift 10 0 -fvk-t-shift 20 0 -fvk-u-shift 30 0
-set cauldron_dxc_32=glslc -Wno-conversion -spirv -T cs_6_2 -fspv-target-env=vulkan1.1 -fvk-s-shift 0 0 -fvk-b-shift 10 0 -fvk-t-shift 20 0 -fvk-u-shift 30 0
-
-if not exist "PrecompiledShadersSPIRV" mkdir "PrecompiledShadersSPIRV"
-
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOClearLoadCounter_16.h -Vn CSClearLoadCounterSPIRV16 -E FFX_CACAO_ClearLoadCounter ffx_cacao.hlsl
-
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOPrepareDownsampledDepths_16.h                  -Vn CSPrepareDownsampledDepthsSPIRV16                  -E FFX_CACAO_PrepareDownsampledDepths                  ffx_cacao.hlsl
-
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOPrepareNativeDepths_16.h                       -Vn CSPrepareNativeDepthsSPIRV16                       -E FFX_CACAO_PrepareNativeDepths                       ffx_cacao.hlsl
-
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOPrepareDownsampledDepthsAndMips_16.h           -Vn CSPrepareDownsampledDepthsAndMipsSPIRV16            -E FFX_CACAO_PrepareDownsampledDepthsAndMips           ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOPrepareNativeDepthsAndMips_16.h                -Vn CSPrepareNativeDepthsAndMipsSPIRV16                 -E FFX_CACAO_PrepareNativeDepthsAndMips                ffx_cacao.hlsl
-
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOPrepareDownsampledNormals_16.h                 -Vn CSPrepareDownsampledNormalsSPIRV16                  -E FFX_CACAO_PrepareDownsampledNormals                 ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOPrepareNativeNormals_16.h                      -Vn CSPrepareNativeNormalsSPIRV16                       -E FFX_CACAO_PrepareNativeNormals                      ffx_cacao.hlsl
-
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOPrepareDownsampledNormalsFromInputNormals_16.h -Vn CSPrepareDownsampledNormalsFromInputNormalsSPIRV16  -E FFX_CACAO_PrepareDownsampledNormalsFromInputNormals ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOPrepareNativeNormalsFromInputNormals_16.h      -Vn CSPrepareNativeNormalsFromInputNormalsSPIRV16       -E FFX_CACAO_PrepareNativeNormalsFromInputNormals      ffx_cacao.hlsl
-
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOPrepareDownsampledDepthsHalf_16.h              -Vn CSPrepareDownsampledDepthsHalfSPIRV16               -E FFX_CACAO_PrepareDownsampledDepthsHalf              ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOPrepareNativeDepthsHalf_16.h                   -Vn CSPrepareNativeDepthsHalfSPIRV16                    -E FFX_CACAO_PrepareNativeDepthsHalf                   ffx_cacao.hlsl
-
-
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOGenerateQ0_16.h     -Vn CSGenerateQ0SPIRV16      -E FFX_CACAO_GenerateQ0     ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOGenerateQ1_16.h     -Vn CSGenerateQ1SPIRV16      -E FFX_CACAO_GenerateQ1     ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOGenerateQ2_16.h     -Vn CSGenerateQ2SPIRV16      -E FFX_CACAO_GenerateQ2     ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOGenerateQ3_16.h     -Vn CSGenerateQ3SPIRV16      -E FFX_CACAO_GenerateQ3     ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOGenerateQ3Base_16.h -Vn CSGenerateQ3BaseSPIRV16  -E FFX_CACAO_GenerateQ3Base ffx_cacao.hlsl
-
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOGenerateImportanceMap_16.h     -Vn CSGenerateImportanceMapSPIRV16      -E FFX_CACAO_GenerateImportanceMap     ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOPostprocessImportanceMapA_16.h -Vn CSPostprocessImportanceMapASPIRV16  -E FFX_CACAO_PostprocessImportanceMapA ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOPostprocessImportanceMapB_16.h -Vn CSPostprocessImportanceMapBSPIRV16  -E FFX_CACAO_PostprocessImportanceMapB ffx_cacao.hlsl
-
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur1_16.h -Vn CSEdgeSensitiveBlur1SPIRV16  -E FFX_CACAO_EdgeSensitiveBlur1 ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur2_16.h -Vn CSEdgeSensitiveBlur2SPIRV16  -E FFX_CACAO_EdgeSensitiveBlur2 ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur3_16.h -Vn CSEdgeSensitiveBlur3SPIRV16  -E FFX_CACAO_EdgeSensitiveBlur3 ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur4_16.h -Vn CSEdgeSensitiveBlur4SPIRV16  -E FFX_CACAO_EdgeSensitiveBlur4 ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur5_16.h -Vn CSEdgeSensitiveBlur5SPIRV16  -E FFX_CACAO_EdgeSensitiveBlur5 ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur6_16.h -Vn CSEdgeSensitiveBlur6SPIRV16  -E FFX_CACAO_EdgeSensitiveBlur6 ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur7_16.h -Vn CSEdgeSensitiveBlur7SPIRV16  -E FFX_CACAO_EdgeSensitiveBlur7 ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur8_16.h -Vn CSEdgeSensitiveBlur8SPIRV16  -E FFX_CACAO_EdgeSensitiveBlur8 ffx_cacao.hlsl
-
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOApply_16.h             -Vn CSApplySPIRV16              -E FFX_CACAO_Apply             ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAONonSmartApply_16.h     -Vn CSNonSmartApplySPIRV16      -E FFX_CACAO_NonSmartApply     ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAONonSmartHalfApply_16.h -Vn CSNonSmartHalfApplySPIRV16  -E FFX_CACAO_NonSmartHalfApply ffx_cacao.hlsl
-
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOUpscaleBilateral5x5Smart_16.h    -Vn CSUpscaleBilateral5x5SmartSPIRV16    -E FFX_CACAO_UpscaleBilateral5x5Smart    ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOUpscaleBilateral5x5NonSmart_16.h -Vn CSUpscaleBilateral5x5NonSmartSPIRV16 -E FFX_CACAO_UpscaleBilateral5x5NonSmart ffx_cacao.hlsl
-%cauldron_dxc_16% -Fh PrecompiledShadersSPIRV/CACAOUpscaleBilateral5x5Half_16.h     -Vn CSUpscaleBilateral5x5HalfSPIRV16     -E FFX_CACAO_UpscaleBilateral5x5Half     ffx_cacao.hlsl
-
-
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOClearLoadCounter_32.h -Vn CSClearLoadCounterSPIRV32 -E FFX_CACAO_ClearLoadCounter ffx_cacao.hlsl
-
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOPrepareDownsampledDepths_32.h                  -Vn CSPrepareDownsampledDepthsSPIRV32                  -E FFX_CACAO_PrepareDownsampledDepths                  ffx_cacao.hlsl
-
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOPrepareNativeDepths_32.h                       -Vn CSPrepareNativeDepthsSPIRV32                       -E FFX_CACAO_PrepareNativeDepths                       ffx_cacao.hlsl
-
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOPrepareDownsampledDepthsAndMips_32.h           -Vn CSPrepareDownsampledDepthsAndMipsSPIRV32            -E FFX_CACAO_PrepareDownsampledDepthsAndMips           ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOPrepareNativeDepthsAndMips_32.h                -Vn CSPrepareNativeDepthsAndMipsSPIRV32                 -E FFX_CACAO_PrepareNativeDepthsAndMips                ffx_cacao.hlsl
-
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOPrepareDownsampledNormals_32.h                 -Vn CSPrepareDownsampledNormalsSPIRV32                  -E FFX_CACAO_PrepareDownsampledNormals                 ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOPrepareNativeNormals_32.h                      -Vn CSPrepareNativeNormalsSPIRV32                       -E FFX_CACAO_PrepareNativeNormals                      ffx_cacao.hlsl
-
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOPrepareDownsampledNormalsFromInputNormals_32.h -Vn CSPrepareDownsampledNormalsFromInputNormalsSPIRV32  -E FFX_CACAO_PrepareDownsampledNormalsFromInputNormals ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOPrepareNativeNormalsFromInputNormals_32.h      -Vn CSPrepareNativeNormalsFromInputNormalsSPIRV32       -E FFX_CACAO_PrepareNativeNormalsFromInputNormals      ffx_cacao.hlsl
-
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOPrepareDownsampledDepthsHalf_32.h              -Vn CSPrepareDownsampledDepthsHalfSPIRV32               -E FFX_CACAO_PrepareDownsampledDepthsHalf              ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOPrepareNativeDepthsHalf_32.h                   -Vn CSPrepareNativeDepthsHalfSPIRV32                    -E FFX_CACAO_PrepareNativeDepthsHalf                   ffx_cacao.hlsl
-
-
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOGenerateQ0_32.h     -Vn CSGenerateQ0SPIRV32      -E FFX_CACAO_GenerateQ0     ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOGenerateQ1_32.h     -Vn CSGenerateQ1SPIRV32      -E FFX_CACAO_GenerateQ1     ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOGenerateQ2_32.h     -Vn CSGenerateQ2SPIRV32      -E FFX_CACAO_GenerateQ2     ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOGenerateQ3_32.h     -Vn CSGenerateQ3SPIRV32      -E FFX_CACAO_GenerateQ3     ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOGenerateQ3Base_32.h -Vn CSGenerateQ3BaseSPIRV32  -E FFX_CACAO_GenerateQ3Base ffx_cacao.hlsl
-
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOGenerateImportanceMap_32.h     -Vn CSGenerateImportanceMapSPIRV32      -E FFX_CACAO_GenerateImportanceMap     ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOPostprocessImportanceMapA_32.h -Vn CSPostprocessImportanceMapASPIRV32  -E FFX_CACAO_PostprocessImportanceMapA ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOPostprocessImportanceMapB_32.h -Vn CSPostprocessImportanceMapBSPIRV32  -E FFX_CACAO_PostprocessImportanceMapB ffx_cacao.hlsl
-
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur1_32.h -Vn CSEdgeSensitiveBlur1SPIRV32  -E FFX_CACAO_EdgeSensitiveBlur1 ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur2_32.h -Vn CSEdgeSensitiveBlur2SPIRV32  -E FFX_CACAO_EdgeSensitiveBlur2 ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur3_32.h -Vn CSEdgeSensitiveBlur3SPIRV32  -E FFX_CACAO_EdgeSensitiveBlur3 ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur4_32.h -Vn CSEdgeSensitiveBlur4SPIRV32  -E FFX_CACAO_EdgeSensitiveBlur4 ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur5_32.h -Vn CSEdgeSensitiveBlur5SPIRV32  -E FFX_CACAO_EdgeSensitiveBlur5 ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur6_32.h -Vn CSEdgeSensitiveBlur6SPIRV32  -E FFX_CACAO_EdgeSensitiveBlur6 ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur7_32.h -Vn CSEdgeSensitiveBlur7SPIRV32  -E FFX_CACAO_EdgeSensitiveBlur7 ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur8_32.h -Vn CSEdgeSensitiveBlur8SPIRV32  -E FFX_CACAO_EdgeSensitiveBlur8 ffx_cacao.hlsl
-
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOApply_32.h             -Vn CSApplySPIRV32              -E FFX_CACAO_Apply             ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAONonSmartApply_32.h     -Vn CSNonSmartApplySPIRV32      -E FFX_CACAO_NonSmartApply     ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAONonSmartHalfApply_32.h -Vn CSNonSmartHalfApplySPIRV32  -E FFX_CACAO_NonSmartHalfApply ffx_cacao.hlsl
-
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOUpscaleBilateral5x5Smart_32.h    -Vn CSUpscaleBilateral5x5SmartSPIRV32    -E FFX_CACAO_UpscaleBilateral5x5Smart    ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOUpscaleBilateral5x5NonSmart_32.h -Vn CSUpscaleBilateral5x5NonSmartSPIRV32 -E FFX_CACAO_UpscaleBilateral5x5NonSmart ffx_cacao.hlsl
-%cauldron_dxc_32% -Fh PrecompiledShadersSPIRV/CACAOUpscaleBilateral5x5Half_32.h     -Vn CSUpscaleBilateral5x5HalfSPIRV32     -E FFX_CACAO_UpscaleBilateral5x5Half     ffx_cacao.hlsl
-
-popd
diff --git a/src/ffx-cacao/src/ffx_cacao.cpp b/src/ffx-cacao/src/ffx_cacao.cpp
deleted file mode 100644
index 0c20374a698c2e00b1a5941f913735c45eb63561..0000000000000000000000000000000000000000
--- a/src/ffx-cacao/src/ffx_cacao.cpp
+++ /dev/null
@@ -1,263 +0,0 @@
-// Modifications Copyright © 2021. Advanced Micro Devices, Inc. All Rights Reserved.
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2016, Intel Corporation
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
-// documentation files (the "Software"), to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to the following conditions:
-// The above copyright notice and this permission notice shall be included in all copies or substantial portions of
-// the Software.
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// File changes (yyyy-mm-dd)
-// 2016-09-07: filip.strugar@intel.com: first commit
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-#include "ffx_cacao.h"
-
-#include <assert.h>
-#include <math.h>   // cos, sin
-#include <string.h> // memcpy
-#include <stdio.h>  // snprintf
-
-// Define symbol to enable DirectX debug markers created using Cauldron
-#define FFX_CACAO_ENABLE_CAULDRON_DEBUG
-
-#define FFX_CACAO_ASSERT(exp) assert(exp)
-#define FFX_CACAO_ARRAY_SIZE(xs) (sizeof(xs)/sizeof(xs[0]))
-#define FFX_CACAO_COS(x) cosf(x)
-#define FFX_CACAO_SIN(x) sinf(x)
-#define FFX_CACAO_MIN(x, y) (((x) < (y)) ? (x) : (y))
-#define FFX_CACAO_MAX(x, y) (((x) > (y)) ? (x) : (y))
-#define FFX_CACAO_CLAMP(value, lower, upper) FFX_CACAO_MIN(FFX_CACAO_MAX(value, lower), upper)
-#define FFX_CACAO_OFFSET_OF(T, member) (size_t)(&(((T*)0)->member))
-
-#define MATRIX_ROW_MAJOR_ORDER 1
-static const FFX_CACAO_Matrix4x4 FFX_CACAO_IDENTITY_MATRIX = {
-	{ { 1.0f, 0.0f, 0.0f, 0.0f },
-	  { 0.0f, 1.0f, 0.0f, 0.0f },
-	  { 0.0f, 0.0f, 1.0f, 0.0f },
-	  { 0.0f, 0.0f, 0.0f, 1.0f } }
-};
-
-void FFX_CACAO_UpdateBufferSizeInfo(uint32_t width, uint32_t height, FFX_CACAO_Bool useDownsampledSsao, FFX_CACAO_BufferSizeInfo* bsi)
-{
-	uint32_t halfWidth = (width + 1) / 2;
-	uint32_t halfHeight = (height + 1) / 2;
-	uint32_t quarterWidth = (halfWidth + 1) / 2;
-	uint32_t quarterHeight = (halfHeight + 1) / 2;
-	uint32_t eighthWidth = (quarterWidth + 1) / 2;
-	uint32_t eighthHeight = (quarterHeight + 1) / 2;
-
-	uint32_t depthBufferWidth = width;
-	uint32_t depthBufferHeight = height;
-	uint32_t depthBufferHalfWidth = halfWidth;
-	uint32_t depthBufferHalfHeight = halfHeight;
-	uint32_t depthBufferQuarterWidth = quarterWidth;
-	uint32_t depthBufferQuarterHeight = quarterHeight;
-
-	uint32_t depthBufferXOffset = 0;
-	uint32_t depthBufferYOffset = 0;
-	uint32_t depthBufferHalfXOffset = 0;
-	uint32_t depthBufferHalfYOffset = 0;
-	uint32_t depthBufferQuarterXOffset = 0;
-	uint32_t depthBufferQuarterYOffset = 0;
-
-	bsi->inputOutputBufferWidth = width;
-	bsi->inputOutputBufferHeight = height;
-	bsi->depthBufferXOffset = depthBufferXOffset;
-	bsi->depthBufferYOffset = depthBufferYOffset;
-	bsi->depthBufferWidth = depthBufferWidth;
-	bsi->depthBufferHeight = depthBufferHeight;
-
-	if (useDownsampledSsao)
-	{
-		bsi->ssaoBufferWidth = quarterWidth;
-		bsi->ssaoBufferHeight = quarterHeight;
-		bsi->deinterleavedDepthBufferXOffset = depthBufferQuarterXOffset;
-		bsi->deinterleavedDepthBufferYOffset = depthBufferQuarterYOffset;
-		bsi->deinterleavedDepthBufferWidth = depthBufferQuarterWidth;
-		bsi->deinterleavedDepthBufferHeight = depthBufferQuarterHeight;
-		bsi->importanceMapWidth = eighthWidth;
-		bsi->importanceMapHeight = eighthHeight;
-		bsi->downsampledSsaoBufferWidth = halfWidth;
-		bsi->downsampledSsaoBufferHeight = halfHeight;
-	}
-	else
-	{
-		bsi->ssaoBufferWidth = halfWidth;
-		bsi->ssaoBufferHeight = halfHeight;
-		bsi->deinterleavedDepthBufferXOffset = depthBufferHalfXOffset;
-		bsi->deinterleavedDepthBufferYOffset = depthBufferHalfYOffset;
-		bsi->deinterleavedDepthBufferWidth = depthBufferHalfWidth;
-		bsi->deinterleavedDepthBufferHeight = depthBufferHalfHeight;
-		bsi->importanceMapWidth = quarterWidth;
-		bsi->importanceMapHeight = quarterHeight;
-		bsi->downsampledSsaoBufferWidth = 1;
-		bsi->downsampledSsaoBufferHeight = 1;
-	}
-}
-
-void FFX_CACAO_UpdateConstants(FFX_CACAO_Constants* consts, const FFX_CACAO_Settings* settings, const FFX_CACAO_BufferSizeInfo* bufferSizeInfo, const FFX_CACAO_Matrix4x4* proj, const FFX_CACAO_Matrix4x4* normalsToView)
-{
-	consts->BilateralSigmaSquared = settings->bilateralSigmaSquared;
-	consts->BilateralSimilarityDistanceSigma = settings->bilateralSimilarityDistanceSigma;
-
-	if (settings->generateNormals)
-	{
-		consts->NormalsWorldToViewspaceMatrix = FFX_CACAO_IDENTITY_MATRIX;
-	}
-	else
-	{
-		consts->NormalsWorldToViewspaceMatrix = *normalsToView;
-	}
-
-	// used to get average load per pixel; 9.0 is there to compensate for only doing every 9th InterlockedAdd in PSPostprocessImportanceMapB for performance reasons
-	consts->LoadCounterAvgDiv = 9.0f / (float)(bufferSizeInfo->importanceMapWidth * bufferSizeInfo->importanceMapHeight * 255.0);
-
-	float depthLinearizeMul = (MATRIX_ROW_MAJOR_ORDER) ? (-proj->elements[3][2]) : (-proj->elements[2][3]);           // float depthLinearizeMul = ( clipFar * clipNear ) / ( clipFar - clipNear );
-	float depthLinearizeAdd = (MATRIX_ROW_MAJOR_ORDER) ? (proj->elements[2][2]) : (proj->elements[2][2]);           // float depthLinearizeAdd = clipFar / ( clipFar - clipNear );
-	// correct the handedness issue. need to make sure this below is correct, but I think it is.
-	if (depthLinearizeMul * depthLinearizeAdd < 0)
-		depthLinearizeAdd = -depthLinearizeAdd;
-	consts->DepthUnpackConsts[0] = depthLinearizeMul;
-	consts->DepthUnpackConsts[1] = depthLinearizeAdd;
-
-	float tanHalfFOVY = 1.0f / proj->elements[1][1];    // = tanf( drawContext.Camera.GetYFOV( ) * 0.5f );
-	float tanHalfFOVX = 1.0F / proj->elements[0][0];    // = tanHalfFOVY * drawContext.Camera.GetAspect( );
-	consts->CameraTanHalfFOV[0] = tanHalfFOVX;
-	consts->CameraTanHalfFOV[1] = tanHalfFOVY;
-
-	consts->NDCToViewMul[0] = consts->CameraTanHalfFOV[0] * 2.0f;
-	consts->NDCToViewMul[1] = consts->CameraTanHalfFOV[1] * -2.0f;
-	consts->NDCToViewAdd[0] = consts->CameraTanHalfFOV[0] * -1.0f;
-	consts->NDCToViewAdd[1] = consts->CameraTanHalfFOV[1] * 1.0f;
-
-	float ratio = ((float)bufferSizeInfo->inputOutputBufferWidth) / ((float)bufferSizeInfo->depthBufferWidth);
-	float border = (1.0f - ratio) / 2.0f;
-	for (int i = 0; i < 2; ++i)
-	{
-		consts->DepthBufferUVToViewMul[i] = consts->NDCToViewMul[i] / ratio;
-		consts->DepthBufferUVToViewAdd[i] = consts->NDCToViewAdd[i] - consts->NDCToViewMul[i] * border / ratio;
-	}
-
-	consts->EffectRadius = FFX_CACAO_CLAMP(settings->radius, 0.0f, 100000.0f);
-	consts->EffectShadowStrength = FFX_CACAO_CLAMP(settings->shadowMultiplier * 4.3f, 0.0f, 10.0f);
-	consts->EffectShadowPow = FFX_CACAO_CLAMP(settings->shadowPower, 0.0f, 10.0f);
-	consts->EffectShadowClamp = FFX_CACAO_CLAMP(settings->shadowClamp, 0.0f, 1.0f);
-	consts->EffectFadeOutMul = -1.0f / (settings->fadeOutTo - settings->fadeOutFrom);
-	consts->EffectFadeOutAdd = settings->fadeOutFrom / (settings->fadeOutTo - settings->fadeOutFrom) + 1.0f;
-	consts->EffectHorizonAngleThreshold = FFX_CACAO_CLAMP(settings->horizonAngleThreshold, 0.0f, 1.0f);
-
-	// 1.2 seems to be around the best trade off - 1.0 means on-screen radius will stop/slow growing when the camera is at 1.0 distance, so, depending on FOV, basically filling up most of the screen
-	// This setting is viewspace-dependent and not screen size dependent intentionally, so that when you change FOV the effect stays (relatively) similar.
-	float effectSamplingRadiusNearLimit = (settings->radius * 1.2f);
-
-	// if the depth precision is switched to 32bit float, this can be set to something closer to 1 (0.9999 is fine)
-	consts->DepthPrecisionOffsetMod = 0.9992f;
-
-	// Special settings for lowest quality level - just nerf the effect a tiny bit
-	if (settings->qualityLevel <= FFX_CACAO_QUALITY_LOW)
-	{
-		//consts.EffectShadowStrength     *= 0.9f;
-		effectSamplingRadiusNearLimit *= 1.50f;
-
-		if (settings->qualityLevel == FFX_CACAO_QUALITY_LOWEST)
-			consts->EffectRadius *= 0.8f;
-	}
-
-	effectSamplingRadiusNearLimit /= tanHalfFOVY; // to keep the effect same regardless of FOV
-
-	consts->EffectSamplingRadiusNearLimitRec = 1.0f / effectSamplingRadiusNearLimit;
-
-	consts->AdaptiveSampleCountLimit = settings->adaptiveQualityLimit;
-
-	consts->NegRecEffectRadius = -1.0f / consts->EffectRadius;
-
-	consts->InvSharpness = FFX_CACAO_CLAMP(1.0f - settings->sharpness, 0.0f, 1.0f);
-
-	consts->DetailAOStrength = settings->detailShadowStrength;
-
-	// set buffer size constants.
-	consts->SSAOBufferDimensions[0] = (float)bufferSizeInfo->ssaoBufferWidth;
-	consts->SSAOBufferDimensions[1] = (float)bufferSizeInfo->ssaoBufferHeight;
-	consts->SSAOBufferInverseDimensions[0] = 1.0f / ((float)bufferSizeInfo->ssaoBufferWidth);
-	consts->SSAOBufferInverseDimensions[1] = 1.0f / ((float)bufferSizeInfo->ssaoBufferHeight);
-
-	consts->DepthBufferDimensions[0] = (float)bufferSizeInfo->depthBufferWidth;
-	consts->DepthBufferDimensions[1] = (float)bufferSizeInfo->depthBufferHeight;
-	consts->DepthBufferInverseDimensions[0] = 1.0f / ((float)bufferSizeInfo->depthBufferWidth);
-	consts->DepthBufferInverseDimensions[1] = 1.0f / ((float)bufferSizeInfo->depthBufferHeight);
-
-	consts->DepthBufferOffset[0] = bufferSizeInfo->depthBufferXOffset;
-	consts->DepthBufferOffset[1] = bufferSizeInfo->depthBufferYOffset;
-
-	consts->InputOutputBufferDimensions[0] = (float)bufferSizeInfo->inputOutputBufferWidth;
-	consts->InputOutputBufferDimensions[1] = (float)bufferSizeInfo->inputOutputBufferHeight;
-	consts->InputOutputBufferInverseDimensions[0] = 1.0f / ((float)bufferSizeInfo->inputOutputBufferWidth);
-	consts->InputOutputBufferInverseDimensions[1] = 1.0f / ((float)bufferSizeInfo->inputOutputBufferHeight);
-
-	consts->ImportanceMapDimensions[0] = (float)bufferSizeInfo->importanceMapWidth;
-	consts->ImportanceMapDimensions[1] = (float)bufferSizeInfo->importanceMapHeight;
-	consts->ImportanceMapInverseDimensions[0] = 1.0f / ((float)bufferSizeInfo->importanceMapWidth);
-	consts->ImportanceMapInverseDimensions[1] = 1.0f / ((float)bufferSizeInfo->importanceMapHeight);
-
-	consts->DeinterleavedDepthBufferDimensions[0] = (float)bufferSizeInfo->deinterleavedDepthBufferWidth;
-	consts->DeinterleavedDepthBufferDimensions[1] = (float)bufferSizeInfo->deinterleavedDepthBufferHeight;
-	consts->DeinterleavedDepthBufferInverseDimensions[0] = 1.0f / ((float)bufferSizeInfo->deinterleavedDepthBufferWidth);
-	consts->DeinterleavedDepthBufferInverseDimensions[1] = 1.0f / ((float)bufferSizeInfo->deinterleavedDepthBufferHeight);
-
-	consts->DeinterleavedDepthBufferOffset[0] = (float)bufferSizeInfo->deinterleavedDepthBufferXOffset;
-	consts->DeinterleavedDepthBufferOffset[1] = (float)bufferSizeInfo->deinterleavedDepthBufferYOffset;
-	consts->DeinterleavedDepthBufferNormalisedOffset[0] = ((float)bufferSizeInfo->deinterleavedDepthBufferXOffset) / ((float)bufferSizeInfo->deinterleavedDepthBufferWidth);
-	consts->DeinterleavedDepthBufferNormalisedOffset[1] = ((float)bufferSizeInfo->deinterleavedDepthBufferYOffset) / ((float)bufferSizeInfo->deinterleavedDepthBufferHeight);
-
-	if (!settings->generateNormals)
-	{
-		consts->NormalsUnpackMul = 2.0f;  // inputs->NormalsUnpackMul;
-		consts->NormalsUnpackAdd = -1.0f; // inputs->NormalsUnpackAdd;
-	}
-	else
-	{
-		consts->NormalsUnpackMul = 2.0f;
-		consts->NormalsUnpackAdd = -1.0f;
-	}
-}
-
-void FFX_CACAO_UpdatePerPassConstants(FFX_CACAO_Constants* consts, const FFX_CACAO_Settings* settings, const FFX_CACAO_BufferSizeInfo* bufferSizeInfo, int pass)
-{
-	consts->PerPassFullResUVOffset[0] = ((float)(pass % 2)) / (float)bufferSizeInfo->ssaoBufferWidth;
-	consts->PerPassFullResUVOffset[1] = ((float)(pass / 2)) / (float)bufferSizeInfo->ssaoBufferHeight;
-
-	consts->PassIndex = pass;
-
-	float additionalAngleOffset = settings->temporalSupersamplingAngleOffset;  // if using temporal supersampling approach (like "Progressive Rendering Using Multi-frame Sampling" from GPU Pro 7, etc.)
-	float additionalRadiusScale = settings->temporalSupersamplingRadiusOffset; // if using temporal supersampling approach (like "Progressive Rendering Using Multi-frame Sampling" from GPU Pro 7, etc.)
-	const int subPassCount = 5;
-	for (int subPass = 0; subPass < subPassCount; subPass++)
-	{
-		int a = pass;
-		int b = subPass;
-
-		int spmap[5]{ 0, 1, 4, 3, 2 };
-		b = spmap[subPass];
-
-		float ca, sa;
-		float angle0 = ((float)a + (float)b / (float)subPassCount) * (3.1415926535897932384626433832795f) * 0.5f;
-
-		ca = FFX_CACAO_COS(angle0);
-		sa = FFX_CACAO_SIN(angle0);
-
-		float scale = 1.0f + (a - 1.5f + (b - (subPassCount - 1.0f) * 0.5f) / (float)subPassCount) * 0.07f;
-
-		consts->PatternRotScaleMatrices[subPass][0] = scale * ca;
-		consts->PatternRotScaleMatrices[subPass][1] = scale * -sa;
-		consts->PatternRotScaleMatrices[subPass][2] = -scale * sa;
-		consts->PatternRotScaleMatrices[subPass][3] = -scale * ca;
-	}
-}
diff --git a/src/ffx-cacao/src/ffx_cacao.hlsl b/src/ffx-cacao/src/ffx_cacao.hlsl
deleted file mode 100644
index 58dd95f14baaf026f99ac68b4e8bef2f7f2681d3..0000000000000000000000000000000000000000
--- a/src/ffx-cacao/src/ffx_cacao.hlsl
+++ /dev/null
@@ -1,1806 +0,0 @@
-// Modifications Copyright  2021. Advanced Micro Devices, Inc. All Rights Reserved.
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2016, Intel Corporation
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
-// documentation files (the "Software"), to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to the following conditions:
-// The above copyright notice and this permission notice shall be included in all copies or substantial portions of
-// the Software.
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// File changes (yyyy-mm-dd)
-// 2016-09-07: filip.strugar@intel.com: first commit
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-
-#include "ffx_cacao_defines.h"
-#include "ffx_cacao_bindings.hlsl"
-
-static const float4 g_FFX_CACAO_samplePatternMain[] =
-{
-	 0.78488064,  0.56661671,  1.500000, -0.126083,     0.26022232, -0.29575172,  1.500000, -1.064030,     0.10459357,  0.08372527,  1.110000, -2.730563,    -0.68286800,  0.04963045,  1.090000, -0.498827,
-	-0.13570161, -0.64190155,  1.250000, -0.532765,    -0.26193795, -0.08205118,  0.670000, -1.783245,    -0.61177456,  0.66664219,  0.710000, -0.044234,     0.43675563,  0.25119025,  0.610000, -1.167283,
-	 0.07884444,  0.86618668,  0.640000, -0.459002,    -0.12790935, -0.29869005,  0.600000, -1.729424,    -0.04031125,  0.02413622,  0.600000, -4.792042,     0.16201244, -0.52851415,  0.790000, -1.067055,
-	-0.70991218,  0.47301072,  0.640000, -0.335236,     0.03277707, -0.22349690,  0.600000, -1.982384,     0.68921727,  0.36800742,  0.630000, -0.266718,     0.29251814,  0.37775412,  0.610000, -1.422520,
-	-0.12224089,  0.96582592,  0.600000, -0.426142,     0.11071457, -0.16131058,  0.600000, -2.165947,     0.46562141, -0.59747696,  0.600000, -0.189760,    -0.51548797,  0.11804193,  0.600000, -1.246800,
-	 0.89141309, -0.42090443,  0.600000,  0.028192,    -0.32402530, -0.01591529,  0.600000, -1.543018,     0.60771245,  0.41635221,  0.600000, -0.605411,     0.02379565, -0.08239821,  0.600000, -3.809046,
-	 0.48951152, -0.23657045,  0.600000, -1.189011,    -0.17611565, -0.81696892,  0.600000, -0.513724,    -0.33930185, -0.20732205,  0.600000, -1.698047,    -0.91974425,  0.05403209,  0.600000,  0.062246,
-	-0.15064627, -0.14949332,  0.600000, -1.896062,     0.53180975, -0.35210401,  0.600000, -0.758838,     0.41487166,  0.81442589,  0.600000, -0.505648,    -0.24106961, -0.32721516,  0.600000, -1.665244
-};
-
-#define FFX_CACAO_MAX_TAPS (32)
-#define FFX_CACAO_ADAPTIVE_TAP_BASE_COUNT (5)
-#define FFX_CACAO_ADAPTIVE_TAP_FLEXIBLE_COUNT (FFX_CACAO_MAX_TAPS - FFX_CACAO_ADAPTIVE_TAP_BASE_COUNT)
-
-// these values can be changed (up to FFX_CACAO_MAX_TAPS) with no changes required elsewhere; values for 4th and 5th preset are ignored but array needed to avoid compilation errors
-// the actual number of texture samples is two times this value (each "tap" has two symmetrical depth texture samples)
-static const uint g_FFX_CACAO_numTaps[5] = { 3, 5, 12, 0, 0 };
-
-
-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// Optional parts that can be enabled for a required quality preset level and above (0 == Low, 1 == Medium, 2 == High, 3 == Highest/Adaptive, 4 == reference/unused )
-// Each has its own cost. To disable just set to 5 or above.
-//
-// (experimental) tilts the disk (although only half of the samples!) towards surface normal; this helps with effect uniformity between objects but reduces effect distance and has other side-effects
-#define FFX_CACAO_TILT_SAMPLES_ENABLE_AT_QUALITY_PRESET                      (99)        // to disable simply set to 99 or similar
-#define FFX_CACAO_TILT_SAMPLES_AMOUNT                                        (0.4)
-//
-#define FFX_CACAO_HALOING_REDUCTION_ENABLE_AT_QUALITY_PRESET                 (1)         // to disable simply set to 99 or similar
-#define FFX_CACAO_HALOING_REDUCTION_AMOUNT                                   (0.6)       // values from 0.0 - 1.0, 1.0 means max weighting (will cause artifacts, 0.8 is more reasonable)
-//
-#define FFX_CACAO_NORMAL_BASED_EDGES_ENABLE_AT_QUALITY_PRESET                (2) //2        // to disable simply set to 99 or similar
-#define FFX_CACAO_NORMAL_BASED_EDGES_DOT_THRESHOLD                           (0.5)       // use 0-0.1 for super-sharp normal-based edges
-//
-#define FFX_CACAO_DETAIL_AO_ENABLE_AT_QUALITY_PRESET                         (1) //1         // whether to use DetailAOStrength; to disable simply set to 99 or similar
-//
-#define FFX_CACAO_DEPTH_MIPS_ENABLE_AT_QUALITY_PRESET                        (2)         // !!warning!! the MIP generation on the C++ side will be enabled on quality preset 2 regardless of this value, so if changing here, change the C++ side too
-#define FFX_CACAO_DEPTH_MIPS_GLOBAL_OFFSET                                   (-4.3)      // best noise/quality/performance tradeoff, found empirically
-//
-// !!warning!! the edge handling is hard-coded to 'disabled' on quality level 0, and enabled above, on the C++ side; while toggling it here will work for
-// testing purposes, it will not yield performance gains (or correct results)
-#define FFX_CACAO_DEPTH_BASED_EDGES_ENABLE_AT_QUALITY_PRESET                 (1)
-//
-#define FFX_CACAO_REDUCE_RADIUS_NEAR_SCREEN_BORDER_ENABLE_AT_QUALITY_PRESET  (99)        // 99 means disabled; only helpful if artifacts at the edges caused by lack of out of screen depth data are not acceptable with the depth sampler in either clamp or mirror modes
-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-// packing/unpacking for edges; 2 bits per edge mean 4 gradient values (0, 0.33, 0.66, 1) for smoother transitions!
-float FFX_CACAO_PackEdges(float4 edgesLRTB)
-{
-	edgesLRTB = round(saturate(edgesLRTB) * 3.05);
-	return dot(edgesLRTB, float4(64.0 / 255.0, 16.0 / 255.0, 4.0 / 255.0, 1.0 / 255.0));
-}
-
-float4 FFX_CACAO_UnpackEdges(float _packedVal)
-{
-	uint packedVal = (uint)(_packedVal * 255.5);
-	float4 edgesLRTB;
-	edgesLRTB.x = float((packedVal >> 6) & 0x03) / 3.0;          // there's really no need for mask (as it's an 8 bit input) but I'll leave it in so it doesn't cause any trouble in the future
-	edgesLRTB.y = float((packedVal >> 4) & 0x03) / 3.0;
-	edgesLRTB.z = float((packedVal >> 2) & 0x03) / 3.0;
-	edgesLRTB.w = float((packedVal >> 0) & 0x03) / 3.0;
-
-	return saturate(edgesLRTB + g_FFX_CACAO_Consts.InvSharpness);
-}
-
-float FFX_CACAO_ScreenSpaceToViewSpaceDepth(float screenDepth)
-{
-	float depthLinearizeMul = g_FFX_CACAO_Consts.DepthUnpackConsts.x;
-	float depthLinearizeAdd = g_FFX_CACAO_Consts.DepthUnpackConsts.y;
-
-	return depthLinearizeMul / (depthLinearizeAdd - screenDepth);
-}
-
-float4 FFX_CACAO_ScreenSpaceToViewSpaceDepth(float4 screenDepth)
-{
-	float depthLinearizeMul = g_FFX_CACAO_Consts.DepthUnpackConsts.x;
-	float depthLinearizeAdd = g_FFX_CACAO_Consts.DepthUnpackConsts.y;
-
-	return depthLinearizeMul / (depthLinearizeAdd - screenDepth);
-}
-
-float4 FFX_CACAO_CalculateEdges(const float centerZ, const float leftZ, const float rightZ, const float topZ, const float bottomZ)
-{
-	// slope-sensitive depth-based edge detection
-	float4 edgesLRTB = float4(leftZ, rightZ, topZ, bottomZ) - centerZ;
-	float4 edgesLRTBSlopeAdjusted = edgesLRTB + edgesLRTB.yxwz;
-	edgesLRTB = min(abs(edgesLRTB), abs(edgesLRTBSlopeAdjusted));
-	return saturate((1.3 - edgesLRTB / (centerZ * 0.040)));
-}
-
-float3 FFX_CACAO_NDCToViewSpace(float2 pos, float viewspaceDepth)
-{
-	float3 ret;
-
-	ret.xy = (g_FFX_CACAO_Consts.NDCToViewMul * pos.xy + g_FFX_CACAO_Consts.NDCToViewAdd) * viewspaceDepth;
-
-	ret.z = viewspaceDepth;
-
-	return ret;
-}
-
-float3 FFX_CACAO_DepthBufferUVToViewSpace(float2 pos, float viewspaceDepth)
-{
-	float3 ret;
-	ret.xy = (g_FFX_CACAO_Consts.DepthBufferUVToViewMul * pos.xy + g_FFX_CACAO_Consts.DepthBufferUVToViewAdd) * viewspaceDepth;
-	ret.z = viewspaceDepth;
-	return ret;
-}
-
-float3 FFX_CACAO_CalculateNormal(const float4 edgesLRTB, float3 pixCenterPos, float3 pixLPos, float3 pixRPos, float3 pixTPos, float3 pixBPos)
-{
-	// Get this pixel's viewspace normal
-	float4 acceptedNormals = float4(edgesLRTB.x*edgesLRTB.z, edgesLRTB.z*edgesLRTB.y, edgesLRTB.y*edgesLRTB.w, edgesLRTB.w*edgesLRTB.x);
-
-	pixLPos = normalize(pixLPos - pixCenterPos);
-	pixRPos = normalize(pixRPos - pixCenterPos);
-	pixTPos = normalize(pixTPos - pixCenterPos);
-	pixBPos = normalize(pixBPos - pixCenterPos);
-
-	float3 pixelNormal = float3(0, 0, -0.0005);
-	pixelNormal += (acceptedNormals.x) * cross(pixLPos, pixTPos);
-	pixelNormal += (acceptedNormals.y) * cross(pixTPos, pixRPos);
-	pixelNormal += (acceptedNormals.z) * cross(pixRPos, pixBPos);
-	pixelNormal += (acceptedNormals.w) * cross(pixBPos, pixLPos);
-	pixelNormal = normalize(pixelNormal);
-
-	return pixelNormal;
-}
-
-// =============================================================================
-// Clear Load Counter
-
-[numthreads(1, 1, 1)]
-void FFX_CACAO_ClearLoadCounter()
-{
-	FFX_CACAO_ClearLoadCounter_SetLoadCounter(0);
-}
-
-// =============================================================================
-// Edge Sensitive Blur
-
-uint FFX_CACAO_PackFloat16(min16float2 v)
-{
-	uint2 p = f32tof16(float2(v));
-	return p.x | (p.y << 16);
-}
-
-min16float2 FFX_CACAO_UnpackFloat16(uint a)
-{
-	float2 tmp = f16tof32(uint2(a & 0xFFFF, a >> 16));
-	return min16float2(tmp);
-}
-
-// all in one, SIMD in yo SIMD dawg, shader
-#define FFX_CACAO_TILE_WIDTH  4
-#define FFX_CACAO_TILE_HEIGHT 3
-#define FFX_CACAO_HALF_TILE_WIDTH (FFX_CACAO_TILE_WIDTH / 2)
-#define FFX_CACAO_QUARTER_TILE_WIDTH (FFX_CACAO_TILE_WIDTH / 4)
-
-#define FFX_CACAO_ARRAY_WIDTH  (FFX_CACAO_HALF_TILE_WIDTH  * FFX_CACAO_BLUR_WIDTH  + 2)
-#define FFX_CACAO_ARRAY_HEIGHT (FFX_CACAO_TILE_HEIGHT * FFX_CACAO_BLUR_HEIGHT + 2)
-
-#define FFX_CACAO_ITERS 4
-
-groupshared uint s_FFX_CACAO_BlurF16Front_4[FFX_CACAO_ARRAY_WIDTH][FFX_CACAO_ARRAY_HEIGHT];
-groupshared uint s_FFX_CACAO_BlurF16Back_4[FFX_CACAO_ARRAY_WIDTH][FFX_CACAO_ARRAY_HEIGHT];
-
-struct FFX_CACAO_Edges_4
-{
-	min16float4 left;
-	min16float4 right;
-	min16float4 top;
-	min16float4 bottom;
-};
-
-FFX_CACAO_Edges_4 FFX_CACAO_UnpackEdgesFloat16_4(min16float4 _packedVal)
-{
-	uint4 packedVal = (uint4)(_packedVal * 255.5);
-	FFX_CACAO_Edges_4 result;
-	result.left   = min16float4(saturate(min16float4((packedVal >> 6) & 0x03) / 3.0 + g_FFX_CACAO_Consts.InvSharpness));
-	result.right  = min16float4(saturate(min16float4((packedVal >> 4) & 0x03) / 3.0 + g_FFX_CACAO_Consts.InvSharpness));
-	result.top    = min16float4(saturate(min16float4((packedVal >> 2) & 0x03) / 3.0 + g_FFX_CACAO_Consts.InvSharpness));
-	result.bottom = min16float4(saturate(min16float4((packedVal >> 0) & 0x03) / 3.0 + g_FFX_CACAO_Consts.InvSharpness));
-
-	return result;
-}
-
-min16float4 FFX_CACAO_CalcBlurredSampleF16_4(min16float4 packedEdges, min16float4 centre, min16float4 left, min16float4 right, min16float4 top, min16float4 bottom)
-{
-	min16float4 sum = centre * min16float(0.5f);
-	min16float4 weight = min16float4(0.5f, 0.5f, 0.5f, 0.5f);
-	FFX_CACAO_Edges_4 edges = FFX_CACAO_UnpackEdgesFloat16_4(packedEdges);
-
-	sum += left * edges.left;
-	weight += edges.left;
-	sum += right * edges.right;
-	weight += edges.right;
-	sum += top * edges.top;
-	weight += edges.top;
-	sum += bottom * edges.bottom;
-	weight += edges.bottom;
-
-	return sum / weight;
-}
-
-void FFX_CACAO_LDSEdgeSensitiveBlur(const uint blurPasses, const uint2 tid, const uint2 gid)
-{
-	int2 imageCoord = gid * (int2(FFX_CACAO_TILE_WIDTH * FFX_CACAO_BLUR_WIDTH, FFX_CACAO_TILE_HEIGHT * FFX_CACAO_BLUR_HEIGHT) - (2*blurPasses)) + int2(FFX_CACAO_TILE_WIDTH, FFX_CACAO_TILE_HEIGHT) * tid - blurPasses;
-	int2 bufferCoord = int2(FFX_CACAO_HALF_TILE_WIDTH, FFX_CACAO_TILE_HEIGHT) * tid + 1;
-
-	min16float4 packedEdges[FFX_CACAO_QUARTER_TILE_WIDTH][FFX_CACAO_TILE_HEIGHT];
-	{
-		float2 input[FFX_CACAO_TILE_WIDTH][FFX_CACAO_TILE_HEIGHT];
-		int y;
-		[unroll]
-		for (y = 0; y < FFX_CACAO_TILE_HEIGHT; ++y)
-		{
-			[unroll]
-			for (int x = 0; x < FFX_CACAO_TILE_WIDTH; ++x)
-			{
-				float2 sampleUV = (float2(imageCoord + int2(x, y)) + 0.5f) * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-				input[x][y] = FFX_CACAO_EdgeSensitiveBlur_SampleInput(sampleUV);
-			}
-		}
-		[unroll]
-		for (y = 0; y < FFX_CACAO_TILE_HEIGHT; ++y)
-		{
-			[unroll]
-			for (int x = 0; x < FFX_CACAO_QUARTER_TILE_WIDTH; ++x)
-			{
-				min16float2 ssaoVals = min16float2(input[4 * x + 0][y].x, input[4 * x + 1][y].x);
-				s_FFX_CACAO_BlurF16Front_4[bufferCoord.x + 2*x + 0][bufferCoord.y + y] = FFX_CACAO_PackFloat16(ssaoVals);
-				ssaoVals = min16float2(input[4 * x + 2][y].x, input[4 * x + 3][y].x);
-				s_FFX_CACAO_BlurF16Front_4[bufferCoord.x + 2*x + 1][bufferCoord.y + y] = FFX_CACAO_PackFloat16(ssaoVals);
-				packedEdges[x][y] = min16float4(input[4 * x + 0][y].y, input[4 * x + 1][y].y, input[4 * x + 2][y].y, input[4 * x + 3][y].y);
-			}
-		}
-	}
-
-	GroupMemoryBarrierWithGroupSync();
-
-	[unroll]
-	for (uint i = 0; i < (blurPasses + 1) / 2; ++i)
-	{
-		[unroll]
-		for (int y = 0; y < FFX_CACAO_TILE_HEIGHT; ++y)
-		{
-			[unroll]
-			for (int x = 0; x < FFX_CACAO_QUARTER_TILE_WIDTH; ++x)
-			{
-				int2 c = bufferCoord + int2(2*x, y);
-				min16float4 centre = min16float4(FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Front_4[c.x + 0][c.y + 0]), FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Front_4[c.x + 1][c.y + 0]));
-				min16float4 top    = min16float4(FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Front_4[c.x + 0][c.y - 1]), FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Front_4[c.x + 1][c.y - 1]));
-				min16float4 bottom = min16float4(FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Front_4[c.x + 0][c.y + 1]), FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Front_4[c.x + 1][c.y + 1]));
-
-				min16float2 tmp = FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Front_4[c.x - 1][c.y + 0]);
-				min16float4 left = min16float4(tmp.y, centre.xyz);
-				tmp = FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Front_4[c.x + 2][c.y + 0]);
-				min16float4 right = min16float4(centre.yzw, tmp.x);
-
-				min16float4 tmp_4 = FFX_CACAO_CalcBlurredSampleF16_4(packedEdges[x][y], centre, left, right, top, bottom);
-				s_FFX_CACAO_BlurF16Back_4[c.x + 0][c.y] = FFX_CACAO_PackFloat16(tmp_4.xy);
-				s_FFX_CACAO_BlurF16Back_4[c.x + 1][c.y] = FFX_CACAO_PackFloat16(tmp_4.zw);
-			}
-		}
-		GroupMemoryBarrierWithGroupSync();
-
-		if (2 * i + 1 < blurPasses)
-		{
-			[unroll]
-			for (int y = 0; y < FFX_CACAO_TILE_HEIGHT; ++y)
-			{
-				[unroll]
-				for (int x = 0; x < FFX_CACAO_QUARTER_TILE_WIDTH; ++x)
-				{
-					int2 c = bufferCoord + int2(2 * x, y);
-					min16float4 centre = min16float4(FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Back_4[c.x + 0][c.y + 0]), FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Back_4[c.x + 1][c.y + 0]));
-					min16float4 top    = min16float4(FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Back_4[c.x + 0][c.y - 1]), FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Back_4[c.x + 1][c.y - 1]));
-					min16float4 bottom = min16float4(FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Back_4[c.x + 0][c.y + 1]), FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Back_4[c.x + 1][c.y + 1]));
-
-					min16float2 tmp = FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Back_4[c.x - 1][c.y + 0]);
-					min16float4 left = min16float4(tmp.y, centre.xyz);
-					tmp = FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Back_4[c.x + 2][c.y + 0]);
-					min16float4 right = min16float4(centre.yzw, tmp.x);
-
-					min16float4 tmp_4 = FFX_CACAO_CalcBlurredSampleF16_4(packedEdges[x][y], centre, left, right, top, bottom);
-					s_FFX_CACAO_BlurF16Front_4[c.x + 0][c.y] = FFX_CACAO_PackFloat16(tmp_4.xy);
-					s_FFX_CACAO_BlurF16Front_4[c.x + 1][c.y] = FFX_CACAO_PackFloat16(tmp_4.zw);
-				}
-			}
-			GroupMemoryBarrierWithGroupSync();
-		}
-	}
-
-	[unroll]
-	for (uint y = 0; y < FFX_CACAO_TILE_HEIGHT; ++y)
-	{
-		uint outputY = FFX_CACAO_TILE_HEIGHT * tid.y + y;
-		if (blurPasses <= outputY && outputY < FFX_CACAO_TILE_HEIGHT * FFX_CACAO_BLUR_HEIGHT - blurPasses)
-		{
-			[unroll]
-			for (int x = 0; x < FFX_CACAO_QUARTER_TILE_WIDTH; ++x)
-			{
-				uint outputX = FFX_CACAO_TILE_WIDTH * tid.x + 4 * x;
-
-				min16float4 ssaoVal;
-				if (blurPasses % 2 == 0)
-				{
-					ssaoVal = min16float4(FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Front_4[bufferCoord.x + x][bufferCoord.y + y]), FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Front_4[bufferCoord.x + x + 1][bufferCoord.y + y]));
-				}
-				else
-				{
-					ssaoVal = min16float4(FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Back_4[bufferCoord.x + x][bufferCoord.y + y]), FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BlurF16Back_4[bufferCoord.x + x + 1][bufferCoord.y + y]));
-				}
-
-				if (blurPasses <= outputX && outputX < FFX_CACAO_TILE_WIDTH * FFX_CACAO_BLUR_WIDTH - blurPasses)
-				{
-					FFX_CACAO_EdgeSensitiveBlur_StoreOutput(imageCoord + int2(4 * x, y), float2(ssaoVal.x, packedEdges[x][y].x));
-				}
-				outputX += 1;
-				if (blurPasses <= outputX && outputX < FFX_CACAO_TILE_WIDTH * FFX_CACAO_BLUR_WIDTH - blurPasses)
-				{
-					FFX_CACAO_EdgeSensitiveBlur_StoreOutput(imageCoord + int2(4 * x + 1, y), float2(ssaoVal.y, packedEdges[x][y].y));
-				}
-				outputX += 1;
-				if (blurPasses <= outputX && outputX < FFX_CACAO_TILE_WIDTH * FFX_CACAO_BLUR_WIDTH - blurPasses)
-				{
-					FFX_CACAO_EdgeSensitiveBlur_StoreOutput(imageCoord + int2(4 * x + 2, y), float2(ssaoVal.z, packedEdges[x][y].z));
-				}
-				outputX += 1;
-				if (blurPasses <= outputX && outputX < FFX_CACAO_TILE_WIDTH * FFX_CACAO_BLUR_WIDTH - blurPasses)
-				{
-					FFX_CACAO_EdgeSensitiveBlur_StoreOutput(imageCoord + int2(4 * x + 3, y), float2(ssaoVal.w, packedEdges[x][y].w));
-				}
-			}
-		}
-	}
-}
-
-[numthreads(FFX_CACAO_BLUR_WIDTH, FFX_CACAO_BLUR_HEIGHT, 1)]
-void FFX_CACAO_EdgeSensitiveBlur1(uint2 tid : SV_GroupThreadID, uint2 gid : SV_GroupID)
-{
-	FFX_CACAO_LDSEdgeSensitiveBlur(1, tid, gid);
-}
-
-[numthreads(FFX_CACAO_BLUR_WIDTH, FFX_CACAO_BLUR_HEIGHT, 1)]
-void FFX_CACAO_EdgeSensitiveBlur2(uint2 tid : SV_GroupThreadID, uint2 gid : SV_GroupID)
-{
-	FFX_CACAO_LDSEdgeSensitiveBlur(2, tid, gid);
-}
-
-[numthreads(FFX_CACAO_BLUR_WIDTH, FFX_CACAO_BLUR_HEIGHT, 1)]
-void FFX_CACAO_EdgeSensitiveBlur3(uint2 tid : SV_GroupThreadID, uint2 gid : SV_GroupID)
-{
-	FFX_CACAO_LDSEdgeSensitiveBlur(3, tid, gid);
-}
-
-[numthreads(FFX_CACAO_BLUR_WIDTH, FFX_CACAO_BLUR_HEIGHT, 1)]
-void FFX_CACAO_EdgeSensitiveBlur4(uint2 tid : SV_GroupThreadID, uint2 gid : SV_GroupID)
-{
-	FFX_CACAO_LDSEdgeSensitiveBlur(4, tid, gid);
-}
-
-[numthreads(FFX_CACAO_BLUR_WIDTH, FFX_CACAO_BLUR_HEIGHT, 1)]
-void FFX_CACAO_EdgeSensitiveBlur5(uint2 tid : SV_GroupThreadID, uint2 gid : SV_GroupID)
-{
-	FFX_CACAO_LDSEdgeSensitiveBlur(5, tid, gid);
-}
-
-[numthreads(FFX_CACAO_BLUR_WIDTH, FFX_CACAO_BLUR_HEIGHT, 1)]
-void FFX_CACAO_EdgeSensitiveBlur6(uint2 tid : SV_GroupThreadID, uint2 gid : SV_GroupID)
-{
-	FFX_CACAO_LDSEdgeSensitiveBlur(6, tid, gid);
-}
-
-[numthreads(FFX_CACAO_BLUR_WIDTH, FFX_CACAO_BLUR_HEIGHT, 1)]
-void FFX_CACAO_EdgeSensitiveBlur7(uint2 tid : SV_GroupThreadID, uint2 gid : SV_GroupID)
-{
-	FFX_CACAO_LDSEdgeSensitiveBlur(7, tid, gid);
-}
-
-
-[numthreads(FFX_CACAO_BLUR_WIDTH, FFX_CACAO_BLUR_HEIGHT, 1)]
-void FFX_CACAO_EdgeSensitiveBlur8(uint2 tid : SV_GroupThreadID, uint2 gid : SV_GroupID)
-{
-	FFX_CACAO_LDSEdgeSensitiveBlur(8, tid, gid);
-}
-
-
-#undef FFX_CACAO_TILE_WIDTH
-#undef FFX_CACAO_TILE_HEIGHT
-#undef FFX_CACAO_HALF_TILE_WIDTH
-#undef FFX_CACAO_QUARTER_TILE_WIDTH
-#undef FFX_CACAO_ARRAY_WIDTH
-#undef FFX_CACAO_ARRAY_HEIGHT
-#undef FFX_CACAO_ITERS
-
-// =======================================================================================================
-// SSAO Generation
-
-// calculate effect radius and fit our screen sampling pattern inside it
-void FFX_CACAO_CalculateRadiusParameters(const float pixCenterLength, const float2 pixelDirRBViewspaceSizeAtCenterZ, out float pixLookupRadiusMod, out float effectRadius, out float falloffCalcMulSq)
-{
-	effectRadius = g_FFX_CACAO_Consts.EffectRadius;
-
-	// leaving this out for performance reasons: use something similar if radius needs to scale based on distance
-	//effectRadius *= pow( pixCenterLength, g_FFX_CACAO_Consts.RadiusDistanceScalingFunctionPow);
-
-	// when too close, on-screen sampling disk will grow beyond screen size; limit this to avoid closeup temporal artifacts
-	const float tooCloseLimitMod = saturate(pixCenterLength * g_FFX_CACAO_Consts.EffectSamplingRadiusNearLimitRec) * 0.8 + 0.2;
-
-	effectRadius *= tooCloseLimitMod;
-
-	// 0.85 is to reduce the radius to allow for more samples on a slope to still stay within influence
-	pixLookupRadiusMod = (0.85 * effectRadius) / pixelDirRBViewspaceSizeAtCenterZ.x;
-
-	// used to calculate falloff (both for AO samples and per-sample weights)
-	falloffCalcMulSq = -1.0f / (effectRadius*effectRadius);
-}
-
-// all vectors in viewspace
-float FFX_CACAO_CalculatePixelObscurance(float3 pixelNormal, float3 hitDelta, float falloffCalcMulSq)
-{
-	float lengthSq = dot(hitDelta, hitDelta);
-	float NdotD = dot(pixelNormal, hitDelta) / sqrt(lengthSq);
-
-	float falloffMult = max(0.0, lengthSq * falloffCalcMulSq + 1.0);
-
-	return max(0, NdotD - g_FFX_CACAO_Consts.EffectHorizonAngleThreshold) * falloffMult;
-}
-
-void FFX_CACAO_SSAOTapInner(const int qualityLevel, inout float obscuranceSum, inout float weightSum, const float2 samplingUV, const float mipLevel, const float3 pixCenterPos, const float3 negViewspaceDir, float3 pixelNormal, const float falloffCalcMulSq, const float weightMod, const int dbgTapIndex)
-{
-	// get depth at sample
-	float viewspaceSampleZ = FFX_CACAO_SSAOGeneration_SampleViewspaceDepthMip(samplingUV, mipLevel);
-
-	// convert to viewspace
-	float3 hitPos = FFX_CACAO_DepthBufferUVToViewSpace(samplingUV.xy, viewspaceSampleZ).xyz;
-	float3 hitDelta = hitPos - pixCenterPos;
-
-	float obscurance = FFX_CACAO_CalculatePixelObscurance(pixelNormal, hitDelta, falloffCalcMulSq);
-	float weight = 1.0;
-
-	if (qualityLevel >= FFX_CACAO_HALOING_REDUCTION_ENABLE_AT_QUALITY_PRESET)
-	{
-		//float reduct = max( 0, dot( hitDelta, negViewspaceDir ) );
-		float reduct = max(0, -hitDelta.z); // cheaper, less correct version
-		reduct = saturate(reduct * g_FFX_CACAO_Consts.NegRecEffectRadius + 2.0); // saturate( 2.0 - reduct / g_FFX_CACAO_Consts.EffectRadius );
-		weight = FFX_CACAO_HALOING_REDUCTION_AMOUNT * reduct + (1.0 - FFX_CACAO_HALOING_REDUCTION_AMOUNT);
-	}
-	weight *= weightMod;
-	obscuranceSum += obscurance * weight;
-	weightSum += weight;
-}
-
-void FFX_CACAO_SSAOTap(const int qualityLevel, inout float obscuranceSum, inout float weightSum, const int tapIndex, const float2x2 rotScale, const float3 pixCenterPos, const float3 negViewspaceDir, float3 pixelNormal, const float2 normalizedScreenPos, const float2 depthBufferUV, const float mipOffset, const float falloffCalcMulSq, float weightMod, float2 normXY, float normXYLength)
-{
-	float2  sampleOffset;
-	float   samplePow2Len;
-
-	// patterns
-	{
-		float4 newSample = g_FFX_CACAO_samplePatternMain[tapIndex];
-		sampleOffset = mul(rotScale, newSample.xy);
-		samplePow2Len = newSample.w;                      // precalculated, same as: samplePow2Len = log2( length( newSample.xy ) );
-		weightMod *= newSample.z;
-	}
-
-	// snap to pixel center (more correct obscurance math, avoids artifacts)
-	sampleOffset = round(sampleOffset);
-
-	// calculate MIP based on the sample distance from the centre, similar to as described
-	// in http://graphics.cs.williams.edu/papers/SAOHPG12/.
-	float mipLevel = (qualityLevel < FFX_CACAO_DEPTH_MIPS_ENABLE_AT_QUALITY_PRESET) ? (0) : (samplePow2Len + mipOffset);
-
-	float2 samplingUV = sampleOffset * g_FFX_CACAO_Consts.DeinterleavedDepthBufferInverseDimensions + depthBufferUV;
-
-	FFX_CACAO_SSAOTapInner(qualityLevel, obscuranceSum, weightSum, samplingUV, mipLevel, pixCenterPos, negViewspaceDir, pixelNormal, falloffCalcMulSq, weightMod, tapIndex * 2);
-
-	// for the second tap, just use the mirrored offset
-	float2 sampleOffsetMirroredUV = -sampleOffset;
-
-	// tilt the second set of samples so that the disk is effectively rotated by the normal
-	// effective at removing one set of artifacts, but too expensive for lower quality settings
-	if (qualityLevel >= FFX_CACAO_TILT_SAMPLES_ENABLE_AT_QUALITY_PRESET)
-	{
-		float dotNorm = dot(sampleOffsetMirroredUV, normXY);
-		sampleOffsetMirroredUV -= dotNorm * normXYLength * normXY;
-		sampleOffsetMirroredUV = round(sampleOffsetMirroredUV);
-	}
-
-	// snap to pixel center (more correct obscurance math, avoids artifacts)
-	float2 samplingMirroredUV = sampleOffsetMirroredUV * g_FFX_CACAO_Consts.DeinterleavedDepthBufferInverseDimensions + depthBufferUV;
-
-	FFX_CACAO_SSAOTapInner(qualityLevel, obscuranceSum, weightSum, samplingMirroredUV, mipLevel, pixCenterPos, negViewspaceDir, pixelNormal, falloffCalcMulSq, weightMod, tapIndex * 2 + 1);
-}
-
-struct FFX_CACAO_SSAOHits
-{
-	float3 hits[2];
-	float weightMod;
-};
-
-struct FFX_CACAO_SSAOSampleData
-{
-	float2 uvOffset;
-	float mipLevel;
-	float weightMod;
-};
-
-FFX_CACAO_SSAOSampleData FFX_CACAO_SSAOGetSampleData(const int qualityLevel, const float2x2 rotScale, const float4 newSample, const float mipOffset)
-{
-	float2  sampleOffset = mul(rotScale, newSample.xy);
-	sampleOffset = round(sampleOffset) * g_FFX_CACAO_Consts.DeinterleavedDepthBufferInverseDimensions;
-
-	float samplePow2Len = newSample.w;
-	float mipLevel = (qualityLevel < FFX_CACAO_DEPTH_MIPS_ENABLE_AT_QUALITY_PRESET) ? (0) : (samplePow2Len + mipOffset);
-
-	FFX_CACAO_SSAOSampleData result;
-
-	result.uvOffset = sampleOffset;
-	result.mipLevel = mipLevel;
-	result.weightMod = newSample.z;
-
-	return result;
-}
-
-FFX_CACAO_SSAOHits FFX_CACAO_SSAOGetHits2(FFX_CACAO_SSAOSampleData data, const float2 depthBufferUV)
-{
-	FFX_CACAO_SSAOHits result;
-	result.weightMod = data.weightMod;
-	float2 sampleUV = depthBufferUV + data.uvOffset;
-	result.hits[0] = float3(sampleUV, FFX_CACAO_SSAOGeneration_SampleViewspaceDepthMip(sampleUV, data.mipLevel));
-	sampleUV = depthBufferUV - data.uvOffset;
-	result.hits[1] = float3(sampleUV, FFX_CACAO_SSAOGeneration_SampleViewspaceDepthMip(sampleUV, data.mipLevel));
-	return result;
-}
-
-void FFX_CACAO_SSAOAddHits(const int qualityLevel, const float3 pixCenterPos, const float3 pixelNormal, const float falloffCalcMulSq, inout float weightSum, inout float obscuranceSum, FFX_CACAO_SSAOHits hits)
-{
-	float weight = hits.weightMod;
-	[unroll]
-	for (int hitIndex = 0; hitIndex < 2; ++hitIndex)
-	{
-		float3 hit = hits.hits[hitIndex];
-		float3 hitPos = FFX_CACAO_DepthBufferUVToViewSpace(hit.xy, hit.z);
-		float3 hitDelta = hitPos - pixCenterPos;
-
-		float obscurance = FFX_CACAO_CalculatePixelObscurance(pixelNormal, hitDelta, falloffCalcMulSq);
-
-		if (qualityLevel >= FFX_CACAO_HALOING_REDUCTION_ENABLE_AT_QUALITY_PRESET)
-		{
-			//float reduct = max( 0, dot( hitDelta, negViewspaceDir ) );
-			float reduct = max(0, -hitDelta.z); // cheaper, less correct version
-			reduct = saturate(reduct * g_FFX_CACAO_Consts.NegRecEffectRadius + 2.0); // saturate( 2.0 - reduct / g_FFX_CACAO_Consts.EffectRadius );
-			weight = FFX_CACAO_HALOING_REDUCTION_AMOUNT * reduct + (1.0 - FFX_CACAO_HALOING_REDUCTION_AMOUNT);
-		}
-		obscuranceSum += obscurance * weight;
-		weightSum += weight;
-	}
-}
-
-void FFX_CACAO_GenerateSSAOShadowsInternal(out float outShadowTerm, out float4 outEdges, out float outWeight, const float2 SVPos/*, const float2 normalizedScreenPos*/, uniform int qualityLevel, bool adaptiveBase)
-{
-	float2 SVPosRounded = trunc(SVPos);
-	uint2 SVPosui = uint2(SVPosRounded); //same as uint2( SVPos )
-
-	const int numberOfTaps = (adaptiveBase) ? (FFX_CACAO_ADAPTIVE_TAP_BASE_COUNT) : (g_FFX_CACAO_numTaps[qualityLevel]);
-	float pixZ, pixLZ, pixTZ, pixRZ, pixBZ;
-
-	float2 depthBufferUV = (SVPos + 0.5f) * g_FFX_CACAO_Consts.DeinterleavedDepthBufferInverseDimensions + g_FFX_CACAO_Consts.DeinterleavedDepthBufferNormalisedOffset;
-	float4 valuesUL = FFX_CACAO_SSAOGeneration_GatherViewspaceDepthOffset(depthBufferUV, int2(-1, -1));
-	float4 valuesBR = FFX_CACAO_SSAOGeneration_GatherViewspaceDepthOffset(depthBufferUV, int2(0, 0));
-
-	// get this pixel's viewspace depth
-	pixZ = valuesUL.y;
-
-	// get left right top bottom neighbouring pixels for edge detection (gets compiled out on qualityLevel == 0)
-	pixLZ = valuesUL.x;
-	pixTZ = valuesUL.z;
-	pixRZ = valuesBR.z;
-	pixBZ = valuesBR.x;
-
-	// float2 normalizedScreenPos = SVPosRounded * g_FFX_CACAO_Consts.Viewport2xPixelSize + g_FFX_CACAO_Consts.Viewport2xPixelSize_x_025;
-	float2 normalizedScreenPos = (SVPosRounded + 0.5f) * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-	float3 pixCenterPos = FFX_CACAO_NDCToViewSpace(normalizedScreenPos, pixZ); // g
-
-	// Load this pixel's viewspace normal
-	// uint2 fullResCoord = 2 * (SVPosui * 2 + g_FFX_CACAO_Consts.PerPassFullResCoordOffset.xy);
-	float3 pixelNormal = FFX_CACAO_SSAOGeneration_GetNormalPass(SVPosui, g_FFX_CACAO_Consts.PassIndex);
-
-	// optimized approximation of:  float2 pixelDirRBViewspaceSizeAtCenterZ = FFX_CACAO_NDCToViewSpace( normalizedScreenPos.xy + g_FFX_CACAO_Consts._ViewportPixelSize.xy, pixCenterPos.z ).xy - pixCenterPos.xy;
-	// const float2 pixelDirRBViewspaceSizeAtCenterZ = pixCenterPos.z * g_FFX_CACAO_Consts.NDCToViewMul * g_FFX_CACAO_Consts.Viewport2xPixelSize;
-	const float2 pixelDirRBViewspaceSizeAtCenterZ = pixCenterPos.z * g_FFX_CACAO_Consts.NDCToViewMul * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-
-	float pixLookupRadiusMod;
-	float falloffCalcMulSq;
-
-	// calculate effect radius and fit our screen sampling pattern inside it
-	float effectViewspaceRadius;
-	FFX_CACAO_CalculateRadiusParameters(length(pixCenterPos), pixelDirRBViewspaceSizeAtCenterZ, pixLookupRadiusMod, effectViewspaceRadius, falloffCalcMulSq);
-
-	// calculate samples rotation/scaling
-	float2x2 rotScale;
-	{
-		// reduce effect radius near the screen edges slightly; ideally, one would render a larger depth buffer (5% on each side) instead
-		if (!adaptiveBase && (qualityLevel >= FFX_CACAO_REDUCE_RADIUS_NEAR_SCREEN_BORDER_ENABLE_AT_QUALITY_PRESET))
-		{
-			float nearScreenBorder = min(min(depthBufferUV.x, 1.0 - depthBufferUV.x), min(depthBufferUV.y, 1.0 - depthBufferUV.y));
-			nearScreenBorder = saturate(10.0 * nearScreenBorder + 0.6);
-			pixLookupRadiusMod *= nearScreenBorder;
-		}
-
-		// load & update pseudo-random rotation matrix
-		uint pseudoRandomIndex = uint(SVPosRounded.y * 2 + SVPosRounded.x) % 5;
-		float4 rs = g_FFX_CACAO_Consts.PatternRotScaleMatrices[pseudoRandomIndex];
-		rotScale = float2x2(rs.x * pixLookupRadiusMod, rs.y * pixLookupRadiusMod, rs.z * pixLookupRadiusMod, rs.w * pixLookupRadiusMod);
-	}
-
-	// the main obscurance & sample weight storage
-	float obscuranceSum = 0.0;
-	float weightSum = 0.0;
-
-	// edge mask for between this and left/right/top/bottom neighbour pixels - not used in quality level 0 so initialize to "no edge" (1 is no edge, 0 is edge)
-	float4 edgesLRTB = float4(1.0, 1.0, 1.0, 1.0);
-
-	// Move center pixel slightly towards camera to avoid imprecision artifacts due to using of 16bit depth buffer; a lot smaller offsets needed when using 32bit floats
-	pixCenterPos *= g_FFX_CACAO_Consts.DepthPrecisionOffsetMod;
-
-	if (!adaptiveBase && (qualityLevel >= FFX_CACAO_DEPTH_BASED_EDGES_ENABLE_AT_QUALITY_PRESET))
-	{
-		edgesLRTB = FFX_CACAO_CalculateEdges(pixZ, pixLZ, pixRZ, pixTZ, pixBZ);
-	}
-
-	// adds a more high definition sharp effect, which gets blurred out (reuses left/right/top/bottom samples that we used for edge detection)
-	if (!adaptiveBase && (qualityLevel >= FFX_CACAO_DETAIL_AO_ENABLE_AT_QUALITY_PRESET))
-	{
-		// disable in case of quality level 4 (reference)
-		if (qualityLevel != 4)
-		{
-			//approximate neighbouring pixels positions (actually just deltas or "positions - pixCenterPos" )
-			float3 viewspaceDirZNormalized = float3(pixCenterPos.xy / pixCenterPos.zz, 1.0);
-
-			// very close approximation of: float3 pixLPos  = FFX_CACAO_NDCToViewSpace( normalizedScreenPos + float2( -g_FFX_CACAO_Consts.HalfViewportPixelSize.x, 0.0 ), pixLZ ).xyz - pixCenterPos.xyz;
-			float3 pixLDelta = float3(-pixelDirRBViewspaceSizeAtCenterZ.x, 0.0, 0.0) + viewspaceDirZNormalized * (pixLZ - pixCenterPos.z);
-			// very close approximation of: float3 pixRPos  = FFX_CACAO_NDCToViewSpace( normalizedScreenPos + float2( +g_FFX_CACAO_Consts.HalfViewportPixelSize.x, 0.0 ), pixRZ ).xyz - pixCenterPos.xyz;
-			float3 pixRDelta = float3(+pixelDirRBViewspaceSizeAtCenterZ.x, 0.0, 0.0) + viewspaceDirZNormalized * (pixRZ - pixCenterPos.z);
-			// very close approximation of: float3 pixTPos  = FFX_CACAO_NDCToViewSpace( normalizedScreenPos + float2( 0.0, -g_FFX_CACAO_Consts.HalfViewportPixelSize.y ), pixTZ ).xyz - pixCenterPos.xyz;
-			float3 pixTDelta = float3(0.0, -pixelDirRBViewspaceSizeAtCenterZ.y, 0.0) + viewspaceDirZNormalized * (pixTZ - pixCenterPos.z);
-			// very close approximation of: float3 pixBPos  = FFX_CACAO_NDCToViewSpace( normalizedScreenPos + float2( 0.0, +g_FFX_CACAO_Consts.HalfViewportPixelSize.y ), pixBZ ).xyz - pixCenterPos.xyz;
-			float3 pixBDelta = float3(0.0, +pixelDirRBViewspaceSizeAtCenterZ.y, 0.0) + viewspaceDirZNormalized * (pixBZ - pixCenterPos.z);
-
-			const float rangeReductionConst = 4.0f;                         // this is to avoid various artifacts
-			const float modifiedFalloffCalcMulSq = rangeReductionConst * falloffCalcMulSq;
-
-			float4 additionalObscurance;
-			additionalObscurance.x = FFX_CACAO_CalculatePixelObscurance(pixelNormal, pixLDelta, modifiedFalloffCalcMulSq);
-			additionalObscurance.y = FFX_CACAO_CalculatePixelObscurance(pixelNormal, pixRDelta, modifiedFalloffCalcMulSq);
-			additionalObscurance.z = FFX_CACAO_CalculatePixelObscurance(pixelNormal, pixTDelta, modifiedFalloffCalcMulSq);
-			additionalObscurance.w = FFX_CACAO_CalculatePixelObscurance(pixelNormal, pixBDelta, modifiedFalloffCalcMulSq);
-
-			obscuranceSum += g_FFX_CACAO_Consts.DetailAOStrength * dot(additionalObscurance, edgesLRTB);
-		}
-	}
-
-	// Sharp normals also create edges - but this adds to the cost as well
-	if (!adaptiveBase && (qualityLevel >= FFX_CACAO_NORMAL_BASED_EDGES_ENABLE_AT_QUALITY_PRESET))
-	{
-		float3 neighbourNormalL = FFX_CACAO_SSAOGeneration_GetNormalPass(SVPosui + int2(-1, +0), g_FFX_CACAO_Consts.PassIndex);
-		float3 neighbourNormalR = FFX_CACAO_SSAOGeneration_GetNormalPass(SVPosui + int2(+1, +0), g_FFX_CACAO_Consts.PassIndex);
-		float3 neighbourNormalT = FFX_CACAO_SSAOGeneration_GetNormalPass(SVPosui + int2(+0, -1), g_FFX_CACAO_Consts.PassIndex);
-		float3 neighbourNormalB = FFX_CACAO_SSAOGeneration_GetNormalPass(SVPosui + int2(+0, +1), g_FFX_CACAO_Consts.PassIndex);
-
-		const float dotThreshold = FFX_CACAO_NORMAL_BASED_EDGES_DOT_THRESHOLD;
-
-		float4 normalEdgesLRTB;
-		normalEdgesLRTB.x = saturate((dot(pixelNormal, neighbourNormalL) + dotThreshold));
-		normalEdgesLRTB.y = saturate((dot(pixelNormal, neighbourNormalR) + dotThreshold));
-		normalEdgesLRTB.z = saturate((dot(pixelNormal, neighbourNormalT) + dotThreshold));
-		normalEdgesLRTB.w = saturate((dot(pixelNormal, neighbourNormalB) + dotThreshold));
-
-		//#define FFX_CACAO_SMOOTHEN_NORMALS // fixes some aliasing artifacts but kills a lot of high detail and adds to the cost - not worth it probably but feel free to play with it
-#ifdef FFX_CACAO_SMOOTHEN_NORMALS
-		//neighbourNormalL  = LoadNormal( fullResCoord, int2( -1,  0 ) );
-		//neighbourNormalR  = LoadNormal( fullResCoord, int2(  1,  0 ) );
-		//neighbourNormalT  = LoadNormal( fullResCoord, int2(  0, -1 ) );
-		//neighbourNormalB  = LoadNormal( fullResCoord, int2(  0,  1 ) );
-		pixelNormal += neighbourNormalL * edgesLRTB.x + neighbourNormalR * edgesLRTB.y + neighbourNormalT * edgesLRTB.z + neighbourNormalB * edgesLRTB.w;
-		pixelNormal = normalize(pixelNormal);
-#endif
-
-		edgesLRTB *= normalEdgesLRTB;
-	}
-
-
-
-	const float globalMipOffset = FFX_CACAO_DEPTH_MIPS_GLOBAL_OFFSET;
-	float mipOffset = (qualityLevel < FFX_CACAO_DEPTH_MIPS_ENABLE_AT_QUALITY_PRESET) ? (0) : (log2(pixLookupRadiusMod) + globalMipOffset);
-
-	// Used to tilt the second set of samples so that the disk is effectively rotated by the normal
-	// effective at removing one set of artifacts, but too expensive for lower quality settings
-	float2 normXY = float2(pixelNormal.x, pixelNormal.y);
-	float normXYLength = length(normXY);
-	normXY /= float2(normXYLength, -normXYLength);
-	normXYLength *= FFX_CACAO_TILT_SAMPLES_AMOUNT;
-
-	const float3 negViewspaceDir = -normalize(pixCenterPos);
-
-	// standard, non-adaptive approach
-	if ((qualityLevel != 3) || adaptiveBase)
-	{
-		[unroll]
-		for (int i = 0; i < numberOfTaps; i++)
-		{
-			FFX_CACAO_SSAOTap(qualityLevel, obscuranceSum, weightSum, i, rotScale, pixCenterPos, negViewspaceDir, pixelNormal, normalizedScreenPos, depthBufferUV, mipOffset, falloffCalcMulSq, 1.0, normXY, normXYLength);
-		}
-	}
-	else // if( qualityLevel == 3 ) adaptive approach
-	{
-		// add new ones if needed
-		float2 fullResUV = normalizedScreenPos + g_FFX_CACAO_Consts.PerPassFullResUVOffset.xy;
-		float importance = FFX_CACAO_SSAOGeneration_SampleImportance(fullResUV);
-
-		// this is to normalize FFX_CACAO_DETAIL_AO_AMOUNT across all pixel regardless of importance
-		obscuranceSum *= (FFX_CACAO_ADAPTIVE_TAP_BASE_COUNT / (float)FFX_CACAO_MAX_TAPS) + (importance * FFX_CACAO_ADAPTIVE_TAP_FLEXIBLE_COUNT / (float)FFX_CACAO_MAX_TAPS);
-
-		// load existing base values
-		float2 baseValues = FFX_CACAO_SSAOGeneration_LoadBasePassSSAOPass(SVPosui, g_FFX_CACAO_Consts.PassIndex);
-		weightSum += baseValues.y * (float)(FFX_CACAO_ADAPTIVE_TAP_BASE_COUNT * 4.0);
-		obscuranceSum += (baseValues.x) * weightSum;
-
-		// increase importance around edges
-		float edgeCount = dot(1.0 - edgesLRTB, float4(1.0, 1.0, 1.0, 1.0));
-
-		float avgTotalImportance = (float)FFX_CACAO_SSAOGeneration_GetLoadCounter() * g_FFX_CACAO_Consts.LoadCounterAvgDiv;
-
-		float importanceLimiter = saturate(g_FFX_CACAO_Consts.AdaptiveSampleCountLimit / avgTotalImportance);
-		importance *= importanceLimiter;
-
-		float additionalSampleCountFlt = FFX_CACAO_ADAPTIVE_TAP_FLEXIBLE_COUNT * importance;
-
-		additionalSampleCountFlt += 1.5;
-		uint additionalSamples = uint(additionalSampleCountFlt);
-		uint additionalSamplesTo = min(FFX_CACAO_MAX_TAPS, additionalSamples + FFX_CACAO_ADAPTIVE_TAP_BASE_COUNT);
-
-		// sample loop
-		{
-			float4 newSample = g_FFX_CACAO_samplePatternMain[FFX_CACAO_ADAPTIVE_TAP_BASE_COUNT];
-			FFX_CACAO_SSAOSampleData data = FFX_CACAO_SSAOGetSampleData(qualityLevel, rotScale, newSample, mipOffset);
-			FFX_CACAO_SSAOHits hits = FFX_CACAO_SSAOGetHits2(data, depthBufferUV);
-			newSample = g_FFX_CACAO_samplePatternMain[FFX_CACAO_ADAPTIVE_TAP_BASE_COUNT + 1];
-
-			for (uint i = FFX_CACAO_ADAPTIVE_TAP_BASE_COUNT; i < additionalSamplesTo - 1; i++)
-			{
-				data = FFX_CACAO_SSAOGetSampleData(qualityLevel, rotScale, newSample, mipOffset);
-				newSample = g_FFX_CACAO_samplePatternMain[i + 2];
-				FFX_CACAO_SSAOHits nextHits = FFX_CACAO_SSAOGetHits2(data, depthBufferUV);
-
-				FFX_CACAO_SSAOAddHits(qualityLevel, pixCenterPos, pixelNormal, falloffCalcMulSq, weightSum, obscuranceSum, hits);
-				hits = nextHits;
-			}
-
-			// last loop iteration
-			{
-				FFX_CACAO_SSAOAddHits(qualityLevel, pixCenterPos, pixelNormal, falloffCalcMulSq, weightSum, obscuranceSum, hits);
-			}
-		}
-	}
-
-	// early out for adaptive base - just output weight (used for the next pass)
-	if (adaptiveBase)
-	{
-		float obscurance = obscuranceSum / weightSum;
-
-		outShadowTerm = obscurance;
-		outEdges = 0;
-		outWeight = weightSum;
-		return;
-	}
-
-	// calculate weighted average
-	float obscurance = obscuranceSum / weightSum;
-
-	// calculate fadeout (1 close, gradient, 0 far)
-	float fadeOut = saturate(pixCenterPos.z * g_FFX_CACAO_Consts.EffectFadeOutMul + g_FFX_CACAO_Consts.EffectFadeOutAdd);
-
-	// Reduce the SSAO shadowing if we're on the edge to remove artifacts on edges (we don't care for the lower quality one)
-	if (!adaptiveBase && (qualityLevel >= FFX_CACAO_DEPTH_BASED_EDGES_ENABLE_AT_QUALITY_PRESET))
-	{
-		// float edgeCount = dot( 1.0-edgesLRTB, float4( 1.0, 1.0, 1.0, 1.0 ) );
-
-		// when there's more than 2 opposite edges, start fading out the occlusion to reduce aliasing artifacts
-		float edgeFadeoutFactor = saturate((1.0 - edgesLRTB.x - edgesLRTB.y) * 0.35) + saturate((1.0 - edgesLRTB.z - edgesLRTB.w) * 0.35);
-
-		// (experimental) if you want to reduce the effect next to any edge
-		// edgeFadeoutFactor += 0.1 * saturate( dot( 1 - edgesLRTB, float4( 1, 1, 1, 1 ) ) );
-
-		fadeOut *= saturate(1.0 - edgeFadeoutFactor);
-	}
-
-	// same as a bove, but a lot more conservative version
-	// fadeOut *= saturate( dot( edgesLRTB, float4( 0.9, 0.9, 0.9, 0.9 ) ) - 2.6 );
-
-	// strength
-	obscurance = g_FFX_CACAO_Consts.EffectShadowStrength * obscurance;
-
-	// clamp
-	obscurance = min(obscurance, g_FFX_CACAO_Consts.EffectShadowClamp);
-
-	// fadeout
-	obscurance *= fadeOut;
-
-	// conceptually switch to occlusion with the meaning being visibility (grows with visibility, occlusion == 1 implies full visibility),
-	// to be in line with what is more commonly used.
-	float occlusion = 1.0 - obscurance;
-
-	// modify the gradient
-	// note: this cannot be moved to a later pass because of loss of precision after storing in the render target
-	occlusion = pow(saturate(occlusion), g_FFX_CACAO_Consts.EffectShadowPow);
-
-	// outputs!
-	outShadowTerm = occlusion;    // Our final 'occlusion' term (0 means fully occluded, 1 means fully lit)
-	outEdges = edgesLRTB;    // These are used to prevent blurring across edges, 1 means no edge, 0 means edge, 0.5 means half way there, etc.
-	outWeight = weightSum;
-}
-
-[numthreads(FFX_CACAO_GENERATE_SPARSE_WIDTH, FFX_CACAO_GENERATE_SPARSE_HEIGHT, 1)]
-void FFX_CACAO_GenerateQ0(uint3 tid : SV_DispatchThreadID)
-{
-	uint xOffset = (tid.y * 3 + tid.z) % 5;
-	uint2 coord = uint2(5 * tid.x + xOffset, tid.y);
-	float2 inPos = (float2)coord;
-	float   outShadowTerm;
-	float   outWeight;
-	float4  outEdges;
-	FFX_CACAO_GenerateSSAOShadowsInternal(outShadowTerm, outEdges, outWeight, inPos.xy, 0, false);
-	float2 out0;
-	out0.x = outShadowTerm;
-	out0.y = FFX_CACAO_PackEdges(float4(1, 1, 1, 1)); // no edges in low quality
-	FFX_CACAO_SSAOGeneration_StoreOutput(coord, out0);
-}
-
-[numthreads(FFX_CACAO_GENERATE_SPARSE_WIDTH, FFX_CACAO_GENERATE_SPARSE_HEIGHT, 1)]
-void FFX_CACAO_GenerateQ1(uint3 tid : SV_DispatchThreadID)
-{
-	uint xOffset = (tid.y * 3 + tid.z) % 5;
-	uint2 coord = uint2(5 * tid.x + xOffset, tid.y);
-	float2 inPos = (float2)coord;
-	float   outShadowTerm;
-	float   outWeight;
-	float4  outEdges;
-	FFX_CACAO_GenerateSSAOShadowsInternal(outShadowTerm, outEdges, outWeight, inPos.xy, 1, false);
-	float2 out0;
-	out0.x = outShadowTerm;
-	out0.y = FFX_CACAO_PackEdges(outEdges);
-	FFX_CACAO_SSAOGeneration_StoreOutput(coord, out0);
-}
-
-[numthreads(FFX_CACAO_GENERATE_WIDTH, FFX_CACAO_GENERATE_HEIGHT, 1)]
-void FFX_CACAO_GenerateQ2(uint2 coord : SV_DispatchThreadID)
-{
-	float2 inPos = (float2)coord;
-	float   outShadowTerm;
-	float   outWeight;
-	float4  outEdges;
-	FFX_CACAO_GenerateSSAOShadowsInternal(outShadowTerm, outEdges, outWeight, inPos.xy, 2, false);
-	float2 out0;
-	out0.x = outShadowTerm;
-	out0.y = FFX_CACAO_PackEdges(outEdges);
-	FFX_CACAO_SSAOGeneration_StoreOutput(coord, out0);
-}
-
-[numthreads(FFX_CACAO_GENERATE_WIDTH, FFX_CACAO_GENERATE_HEIGHT, 1)]
-void FFX_CACAO_GenerateQ3Base(uint2 coord : SV_DispatchThreadID)
-{
-	float2 inPos = (float2)coord;
-	float   outShadowTerm;
-	float   outWeight;
-	float4  outEdges;
-	FFX_CACAO_GenerateSSAOShadowsInternal(outShadowTerm, outEdges, outWeight, inPos.xy, 3, true);
-	float2 out0;
-	out0.x = outShadowTerm;
-	out0.y = outWeight / ((float)FFX_CACAO_ADAPTIVE_TAP_BASE_COUNT * 4.0); //0.0; //frac(outWeight / 6.0);// / (float)(FFX_CACAO_MAX_TAPS * 4.0);
-	FFX_CACAO_SSAOGeneration_StoreOutput(coord, out0);
-}
-
-[numthreads(FFX_CACAO_GENERATE_WIDTH, FFX_CACAO_GENERATE_HEIGHT, 1)]
-void FFX_CACAO_GenerateQ3(uint2 coord : SV_DispatchThreadID)
-{
-
-	float2 inPos = (float2)coord;
-	float   outShadowTerm;
-	float   outWeight;
-	float4  outEdges;
-	FFX_CACAO_GenerateSSAOShadowsInternal(outShadowTerm, outEdges, outWeight, inPos.xy, 3, false);
-	float2 out0;
-	out0.x = outShadowTerm;
-	out0.y = FFX_CACAO_PackEdges(outEdges);
-	FFX_CACAO_SSAOGeneration_StoreOutput(coord, out0);
-}
-
-// =======================================================
-// Apply
-
-[numthreads(FFX_CACAO_APPLY_WIDTH, FFX_CACAO_APPLY_HEIGHT, 1)]
-void FFX_CACAO_Apply(uint2 coord : SV_DispatchThreadID)
-{
-	float ao;
-	float2 inPos = coord;
-	uint2 pixPos = coord;
-	uint2 pixPosHalf = pixPos / uint2(2, 2);
-
-	// calculate index in the four deinterleaved source array texture
-	int mx = (pixPos.x % 2);
-	int my = (pixPos.y % 2);
-	int ic = mx + my * 2;       // center index
-	int ih = (1 - mx) + my * 2;   // neighbouring, horizontal
-	int iv = mx + (1 - my) * 2;   // neighbouring, vertical
-	int id = (1 - mx) + (1 - my) * 2; // diagonal
-
-	float2 centerVal = FFX_CACAO_Apply_LoadSSAOPass(pixPosHalf, ic);
-
-	ao = centerVal.x;
-
-#if 1   // change to 0 if you want to disable last pass high-res blur (for debugging purposes, etc.)
-	float4 edgesLRTB = FFX_CACAO_UnpackEdges(centerVal.y);
-
-	// return 1.0 - float4( edgesLRTB.x, edgesLRTB.y * 0.5 + edgesLRTB.w * 0.5, edgesLRTB.z, 0.0 ); // debug show edges
-
-	// convert index shifts to sampling offsets
-	float fmx = (float)mx;
-	float fmy = (float)my;
-
-	// in case of an edge, push sampling offsets away from the edge (towards pixel center)
-	float fmxe = (edgesLRTB.y - edgesLRTB.x);
-	float fmye = (edgesLRTB.w - edgesLRTB.z);
-
-	// calculate final sampling offsets and sample using bilinear filter
-	float2  uvH = (inPos.xy + float2(fmx + fmxe - 0.5, 0.5 - fmy)) * 0.5 * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-	float   aoH = FFX_CACAO_Apply_SampleSSAOUVPass(uvH, ih);
-	float2  uvV = (inPos.xy + float2(0.5 - fmx, fmy - 0.5 + fmye)) * 0.5 * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-	float   aoV = FFX_CACAO_Apply_SampleSSAOUVPass(uvV, iv);
-	float2  uvD = (inPos.xy + float2(fmx - 0.5 + fmxe, fmy - 0.5 + fmye)) * 0.5 * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-	float   aoD = FFX_CACAO_Apply_SampleSSAOUVPass(uvD, id);
-
-	// reduce weight for samples near edge - if the edge is on both sides, weight goes to 0
-	float4 blendWeights;
-	blendWeights.x = 1.0;
-	blendWeights.y = (edgesLRTB.x + edgesLRTB.y) * 0.5;
-	blendWeights.z = (edgesLRTB.z + edgesLRTB.w) * 0.5;
-	blendWeights.w = (blendWeights.y + blendWeights.z) * 0.5;
-
-	// calculate weighted average
-	float blendWeightsSum = dot(blendWeights, float4(1.0, 1.0, 1.0, 1.0));
-	ao = dot(float4(ao, aoH, aoV, aoD), blendWeights) / blendWeightsSum;
-#endif
-
-	FFX_CACAO_Apply_StoreOutput(coord, ao.x);
-}
-
-
-// edge-ignorant blur & apply (for the lowest quality level 0)
-[numthreads(FFX_CACAO_APPLY_WIDTH, FFX_CACAO_APPLY_HEIGHT, 1)]
-void FFX_CACAO_NonSmartApply(uint2 tid : SV_DispatchThreadID)
-{
-	float2 inUV = float2(tid) * g_FFX_CACAO_Consts.OutputBufferInverseDimensions;
-	float a = FFX_CACAO_Apply_SampleSSAOUVPass(inUV.xy, 0);
-	float b = FFX_CACAO_Apply_SampleSSAOUVPass(inUV.xy, 1);
-	float c = FFX_CACAO_Apply_SampleSSAOUVPass(inUV.xy, 2);
-	float d = FFX_CACAO_Apply_SampleSSAOUVPass(inUV.xy, 3);
-	float avg = (a + b + c + d) * 0.25f;
-
-	FFX_CACAO_Apply_StoreOutput(tid, avg);
-}
-
-// edge-ignorant blur & apply, skipping half pixels in checkerboard pattern (for the Lowest quality level 0 and Settings::SkipHalfPixelsOnLowQualityLevel == true )
-[numthreads(FFX_CACAO_APPLY_WIDTH, FFX_CACAO_APPLY_HEIGHT, 1)]
-void FFX_CACAO_NonSmartHalfApply(uint2 tid : SV_DispatchThreadID)
-{
-	float2 inUV = float2(tid) * g_FFX_CACAO_Consts.OutputBufferInverseDimensions;
-	float a = FFX_CACAO_Apply_SampleSSAOUVPass(inUV.xy, 0);
-	float d = FFX_CACAO_Apply_SampleSSAOUVPass(inUV.xy, 3);
-	float avg = (a + d) * 0.5f;
-
-	FFX_CACAO_Apply_StoreOutput(tid, avg);
-}
-
-// =============================================================================
-// Prepare
-
-groupshared float s_FFX_CACAO_PrepareDepthsAndMipsBuffer[4][8][8];
-
-float FFX_CACAO_MipSmartAverage(float4 depths)
-{
-	float closest = min(min(depths.x, depths.y), min(depths.z, depths.w));
-	float falloffCalcMulSq = -1.0f / g_FFX_CACAO_Consts.EffectRadius * g_FFX_CACAO_Consts.EffectRadius;
-	float4 dists = depths - closest.xxxx;
-	float4 weights = saturate(dists * dists * falloffCalcMulSq + 1.0);
-	return dot(weights, depths) / dot(weights, float4(1.0, 1.0, 1.0, 1.0));
-}
-
-void FFX_CACAO_PrepareDepthsAndMips(float4 samples, uint2 outputCoord, uint2 gtid)
-{
-	samples = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples);
-
-	s_FFX_CACAO_PrepareDepthsAndMipsBuffer[0][gtid.x][gtid.y] = samples.w;
-	s_FFX_CACAO_PrepareDepthsAndMipsBuffer[1][gtid.x][gtid.y] = samples.z;
-	s_FFX_CACAO_PrepareDepthsAndMipsBuffer[2][gtid.x][gtid.y] = samples.x;
-	s_FFX_CACAO_PrepareDepthsAndMipsBuffer[3][gtid.x][gtid.y] = samples.y;
-
-	FFX_CACAO_Prepare_StoreDepthMip0(outputCoord, 0, samples.w);
-	FFX_CACAO_Prepare_StoreDepthMip0(outputCoord, 1, samples.z);
-	FFX_CACAO_Prepare_StoreDepthMip0(outputCoord, 2, samples.x);
-	FFX_CACAO_Prepare_StoreDepthMip0(outputCoord, 3, samples.y);
-
-	uint depthArrayIndex = 2 * (gtid.y % 2) + (gtid.x % 2);
-	uint2 depthArrayOffset = int2(gtid.x % 2, gtid.y % 2);
-	int2 bufferCoord = int2(gtid) - int2(depthArrayOffset);
-
-	outputCoord /= 2;
-	GroupMemoryBarrierWithGroupSync();
-
-	// if (stillAlive) <-- all threads alive here
-	{
-		float sample_00 = s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x + 0][bufferCoord.y + 0];
-		float sample_01 = s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x + 0][bufferCoord.y + 1];
-		float sample_10 = s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x + 1][bufferCoord.y + 0];
-		float sample_11 = s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x + 1][bufferCoord.y + 1];
-
-		float avg = FFX_CACAO_MipSmartAverage(float4(sample_00, sample_01, sample_10, sample_11));
-		FFX_CACAO_Prepare_StoreDepthMip1(outputCoord, depthArrayIndex, avg);
-		s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x][bufferCoord.y] = avg;
-	}
-
-	bool stillAlive = gtid.x % 4 == depthArrayOffset.x && gtid.y % 4 == depthArrayOffset.y;
-
-	outputCoord /= 2;
-	GroupMemoryBarrierWithGroupSync();
-
-	if (stillAlive)
-	{
-		float sample_00 = s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x + 0][bufferCoord.y + 0];
-		float sample_01 = s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x + 0][bufferCoord.y + 2];
-		float sample_10 = s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x + 2][bufferCoord.y + 0];
-		float sample_11 = s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x + 2][bufferCoord.y + 2];
-
-		float avg = FFX_CACAO_MipSmartAverage(float4(sample_00, sample_01, sample_10, sample_11));
-		FFX_CACAO_Prepare_StoreDepthMip2(outputCoord, depthArrayIndex, avg);
-		s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x][bufferCoord.y] = avg;
-	}
-
-	stillAlive = gtid.x % 8 == depthArrayOffset.x && gtid.y % 8 == depthArrayOffset.y;
-
-	outputCoord /= 2;
-	GroupMemoryBarrierWithGroupSync();
-
-	if (stillAlive)
-	{
-		float sample_00 = s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x + 0][bufferCoord.y + 0];
-		float sample_01 = s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x + 0][bufferCoord.y + 4];
-		float sample_10 = s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x + 4][bufferCoord.y + 0];
-		float sample_11 = s_FFX_CACAO_PrepareDepthsAndMipsBuffer[depthArrayIndex][bufferCoord.x + 4][bufferCoord.y + 4];
-
-		float avg = FFX_CACAO_MipSmartAverage(float4(sample_00, sample_01, sample_10, sample_11));
-		FFX_CACAO_Prepare_StoreDepthMip3(outputCoord, depthArrayIndex, avg);
-	}
-}
-
-[numthreads(FFX_CACAO_PREPARE_DEPTHS_AND_MIPS_WIDTH, FFX_CACAO_PREPARE_DEPTHS_AND_MIPS_HEIGHT, 1)]
-void FFX_CACAO_PrepareDownsampledDepthsAndMips(uint2 tid : SV_DispatchThreadID, uint2 gtid : SV_GroupThreadID)
-{
-	int2 depthBufferCoord = 4 * tid.xy;
-	int2 outputCoord = tid;
-
-	float2 uv = (float2(depthBufferCoord)+0.5f) * g_FFX_CACAO_Consts.DepthBufferInverseDimensions;
-	float4 samples;
-
-	samples.x = FFX_CACAO_Prepare_SampleDepthOffset(uv, int2(0, 2));
-	samples.y = FFX_CACAO_Prepare_SampleDepthOffset(uv, int2(2, 2));
-	samples.z = FFX_CACAO_Prepare_SampleDepthOffset(uv, int2(2, 0));
-	samples.w = FFX_CACAO_Prepare_SampleDepthOffset(uv, int2(0, 0));
-
-	FFX_CACAO_PrepareDepthsAndMips(samples, outputCoord, gtid);
-}
-
-[numthreads(FFX_CACAO_PREPARE_DEPTHS_AND_MIPS_WIDTH, FFX_CACAO_PREPARE_DEPTHS_AND_MIPS_HEIGHT, 1)]
-void FFX_CACAO_PrepareNativeDepthsAndMips(uint2 tid : SV_DispatchThreadID, uint2 gtid : SV_GroupThreadID)
-{
-	int2 depthBufferCoord = 2 * tid.xy;
-	int2 outputCoord = tid;
-
-	float2 uv = (float2(depthBufferCoord)+0.5f) * g_FFX_CACAO_Consts.DepthBufferInverseDimensions;
-	float4 samples = FFX_CACAO_Prepare_GatherDepth(uv);
-
-	FFX_CACAO_PrepareDepthsAndMips(samples, outputCoord, gtid);
-}
-
-void FFX_CACAO_PrepareDepths(float4 samples, uint2 tid)
-{
-	samples = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples);
-	FFX_CACAO_Prepare_StoreDepth(tid, 0, samples.w);
-	FFX_CACAO_Prepare_StoreDepth(tid, 1, samples.z);
-	FFX_CACAO_Prepare_StoreDepth(tid, 2, samples.x);
-	FFX_CACAO_Prepare_StoreDepth(tid, 3, samples.y);
-}
-
-[numthreads(FFX_CACAO_PREPARE_DEPTHS_WIDTH, FFX_CACAO_PREPARE_DEPTHS_HEIGHT, 1)]
-void FFX_CACAO_PrepareDownsampledDepths(uint2 tid : SV_DispatchThreadID)
-{
-	int2 depthBufferCoord = 4 * tid.xy;
-
-	float2 uv = (float2(depthBufferCoord)+0.5f) * g_FFX_CACAO_Consts.DepthBufferInverseDimensions;
-	float4 samples;
-
-	samples.x = FFX_CACAO_Prepare_SampleDepthOffset(uv, int2(0, 2));
-	samples.y = FFX_CACAO_Prepare_SampleDepthOffset(uv, int2(2, 2));
-	samples.z = FFX_CACAO_Prepare_SampleDepthOffset(uv, int2(2, 0));
-	samples.w = FFX_CACAO_Prepare_SampleDepthOffset(uv, int2(0, 0));
-
-	FFX_CACAO_PrepareDepths(samples, tid);
-}
-
-[numthreads(FFX_CACAO_PREPARE_DEPTHS_WIDTH, FFX_CACAO_PREPARE_DEPTHS_HEIGHT, 1)]
-void FFX_CACAO_PrepareNativeDepths(uint2 tid : SV_DispatchThreadID)
-{
-	int2 depthBufferCoord = 2 * tid.xy;
-
-	float2 uv = (float2(depthBufferCoord)+0.5f) * g_FFX_CACAO_Consts.DepthBufferInverseDimensions;
-	float4 samples = FFX_CACAO_Prepare_GatherDepth(uv);
-
-	FFX_CACAO_PrepareDepths(samples, tid);
-}
-
-[numthreads(FFX_CACAO_PREPARE_DEPTHS_HALF_WIDTH, FFX_CACAO_PREPARE_DEPTHS_HALF_HEIGHT, 1)]
-void FFX_CACAO_PrepareDownsampledDepthsHalf(uint2 tid : SV_DispatchThreadID)
-{
-	float sample_00 = FFX_CACAO_Prepare_LoadDepth(int2(4 * tid.x + 0, 4 * tid.y + 0));
-	float sample_11 = FFX_CACAO_Prepare_LoadDepth(int2(4 * tid.x + 2, 4 * tid.y + 2));
-	sample_00 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(sample_00);
-	sample_11 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(sample_11);
-	FFX_CACAO_Prepare_StoreDepth(tid, 0, sample_00);
-	FFX_CACAO_Prepare_StoreDepth(tid, 3, sample_11);
-}
-
-[numthreads(FFX_CACAO_PREPARE_DEPTHS_HALF_WIDTH, FFX_CACAO_PREPARE_DEPTHS_HALF_HEIGHT, 1)]
-void FFX_CACAO_PrepareNativeDepthsHalf(uint2 tid : SV_DispatchThreadID)
-{
-	float sample_00 = FFX_CACAO_Prepare_LoadDepth(int2(2 * tid.x + 0, 2 * tid.y + 0));
-	float sample_11 = FFX_CACAO_Prepare_LoadDepth(int2(2 * tid.x + 1, 2 * tid.y + 1));
-	sample_00 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(sample_00);
-	sample_11 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(sample_11);
-	FFX_CACAO_Prepare_StoreDepth(tid, 0, sample_00);
-	FFX_CACAO_Prepare_StoreDepth(tid, 3, sample_11);
-}
-
-struct FFX_CACAO_PrepareNormalsInputDepths
-{
-	float depth_10;
-	float depth_20;
-
-	float depth_01;
-	float depth_11;
-	float depth_21;
-	float depth_31;
-
-	float depth_02;
-	float depth_12;
-	float depth_22;
-	float depth_32;
-
-	float depth_13;
-	float depth_23;
-};
-
-void FFX_CACAO_PrepareNormals(FFX_CACAO_PrepareNormalsInputDepths depths, float2 uv, float2 pixelSize, int2 normalCoord)
-{
-	float3 p_10 = FFX_CACAO_NDCToViewSpace(uv + float2(+0.0f, -1.0f) * pixelSize, depths.depth_10);
-	float3 p_20 = FFX_CACAO_NDCToViewSpace(uv + float2(+1.0f, -1.0f) * pixelSize, depths.depth_20);
-
-	float3 p_01 = FFX_CACAO_NDCToViewSpace(uv + float2(-1.0f, +0.0f) * pixelSize, depths.depth_01);
-	float3 p_11 = FFX_CACAO_NDCToViewSpace(uv + float2(+0.0f, +0.0f) * pixelSize, depths.depth_11);
-	float3 p_21 = FFX_CACAO_NDCToViewSpace(uv + float2(+1.0f, +0.0f) * pixelSize, depths.depth_21);
-	float3 p_31 = FFX_CACAO_NDCToViewSpace(uv + float2(+2.0f, +0.0f) * pixelSize, depths.depth_31);
-
-	float3 p_02 = FFX_CACAO_NDCToViewSpace(uv + float2(-1.0f, +1.0f) * pixelSize, depths.depth_02);
-	float3 p_12 = FFX_CACAO_NDCToViewSpace(uv + float2(+0.0f, +1.0f) * pixelSize, depths.depth_12);
-	float3 p_22 = FFX_CACAO_NDCToViewSpace(uv + float2(+1.0f, +1.0f) * pixelSize, depths.depth_22);
-	float3 p_32 = FFX_CACAO_NDCToViewSpace(uv + float2(+2.0f, +1.0f) * pixelSize, depths.depth_32);
-
-	float3 p_13 = FFX_CACAO_NDCToViewSpace(uv + float2(+0.0f, +2.0f) * pixelSize, depths.depth_13);
-	float3 p_23 = FFX_CACAO_NDCToViewSpace(uv + float2(+1.0f, +2.0f) * pixelSize, depths.depth_23);
-
-	float4 edges_11 = FFX_CACAO_CalculateEdges(p_11.z, p_01.z, p_21.z, p_10.z, p_12.z);
-	float4 edges_21 = FFX_CACAO_CalculateEdges(p_21.z, p_11.z, p_31.z, p_20.z, p_22.z);
-	float4 edges_12 = FFX_CACAO_CalculateEdges(p_12.z, p_02.z, p_22.z, p_11.z, p_13.z);
-	float4 edges_22 = FFX_CACAO_CalculateEdges(p_22.z, p_12.z, p_32.z, p_21.z, p_23.z);
-
-	float3 norm_11 = FFX_CACAO_CalculateNormal(edges_11, p_11, p_01, p_21, p_10, p_12);
-	float3 norm_21 = FFX_CACAO_CalculateNormal(edges_21, p_21, p_11, p_31, p_20, p_22);
-	float3 norm_12 = FFX_CACAO_CalculateNormal(edges_12, p_12, p_02, p_22, p_11, p_13);
-	float3 norm_22 = FFX_CACAO_CalculateNormal(edges_22, p_22, p_12, p_32, p_21, p_23);
-
-	FFX_CACAO_Prepare_StoreNormal(normalCoord, 0, norm_11);
-	FFX_CACAO_Prepare_StoreNormal(normalCoord, 1, norm_21);
-	FFX_CACAO_Prepare_StoreNormal(normalCoord, 2, norm_12);
-	FFX_CACAO_Prepare_StoreNormal(normalCoord, 3, norm_22);
-}
-
-[numthreads(FFX_CACAO_PREPARE_NORMALS_WIDTH, FFX_CACAO_PREPARE_NORMALS_HEIGHT, 1)]
-void FFX_CACAO_PrepareDownsampledNormals(int2 tid : SV_DispatchThreadID)
-{
-	int2 depthCoord = 4 * tid + g_FFX_CACAO_Consts.DepthBufferOffset;
-
-	FFX_CACAO_PrepareNormalsInputDepths depths;
-
-	depths.depth_10 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_Prepare_LoadDepthOffset(depthCoord, int2(+0, -2)));
-	depths.depth_20 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_Prepare_LoadDepthOffset(depthCoord, int2(+2, -2)));
-
-	depths.depth_01 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_Prepare_LoadDepthOffset(depthCoord, int2(-2, +0)));
-	depths.depth_11 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_Prepare_LoadDepthOffset(depthCoord, int2(+0, +0)));
-	depths.depth_21 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_Prepare_LoadDepthOffset(depthCoord, int2(+2, +0)));
-	depths.depth_31 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_Prepare_LoadDepthOffset(depthCoord, int2(+4, +0)));
-
-	depths.depth_02 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_Prepare_LoadDepthOffset(depthCoord, int2(-2, +2)));
-	depths.depth_12 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_Prepare_LoadDepthOffset(depthCoord, int2(+0, +2)));
-	depths.depth_22 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_Prepare_LoadDepthOffset(depthCoord, int2(+2, +2)));
-	depths.depth_32 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_Prepare_LoadDepthOffset(depthCoord, int2(+4, +2)));
-
-	depths.depth_13 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_Prepare_LoadDepthOffset(depthCoord, int2(+0, +4)));
-	depths.depth_23 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_Prepare_LoadDepthOffset(depthCoord, int2(+2, +4)));
-
-	float2 pixelSize = 2.0f * g_FFX_CACAO_Consts.OutputBufferInverseDimensions; // 2.0f * g_FFX_CACAO_Consts.DepthBufferInverseDimensions;
-	float2 uv = (float2(4 * tid) + 0.5f) * g_FFX_CACAO_Consts.OutputBufferInverseDimensions; // * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-
-	FFX_CACAO_PrepareNormals(depths, uv, pixelSize, tid);
-}
-
-[numthreads(FFX_CACAO_PREPARE_NORMALS_WIDTH, FFX_CACAO_PREPARE_NORMALS_HEIGHT, 1)]
-void FFX_CACAO_PrepareNativeNormals(int2 tid : SV_DispatchThreadID)
-{
-	int2 depthCoord = 2 * tid + g_FFX_CACAO_Consts.DepthBufferOffset;
-	float2 depthBufferUV = (float2(depthCoord)-0.5f) * g_FFX_CACAO_Consts.DepthBufferInverseDimensions;
-	float4 samples_00 = FFX_CACAO_Prepare_GatherDepthOffset(depthBufferUV, int2(0, 0));
-	float4 samples_10 = FFX_CACAO_Prepare_GatherDepthOffset(depthBufferUV, int2(2, 0));
-	float4 samples_01 = FFX_CACAO_Prepare_GatherDepthOffset(depthBufferUV, int2(0, 2));
-	float4 samples_11 = FFX_CACAO_Prepare_GatherDepthOffset(depthBufferUV, int2(2, 2));
-
-	FFX_CACAO_PrepareNormalsInputDepths depths;
-
-	depths.depth_10 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples_00.z);
-	depths.depth_20 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples_10.w);
-
-	depths.depth_01 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples_00.x);
-	depths.depth_11 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples_00.y);
-	depths.depth_21 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples_10.x);
-	depths.depth_31 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples_10.y);
-
-	depths.depth_02 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples_01.w);
-	depths.depth_12 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples_01.z);
-	depths.depth_22 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples_11.w);
-	depths.depth_32 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples_11.z);
-
-	depths.depth_13 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples_01.y);
-	depths.depth_23 = FFX_CACAO_ScreenSpaceToViewSpaceDepth(samples_11.x);
-
-	// use unused samples to make sure compiler doesn't overlap memory and put a sync
-	// between loads
-	float epsilon = (samples_00.w + samples_10.z + samples_01.x + samples_11.y) * 1e-20f;
-
-	float2 pixelSize = g_FFX_CACAO_Consts.OutputBufferInverseDimensions;
-	float2 uv = (float2(2 * tid) + 0.5f + epsilon) * g_FFX_CACAO_Consts.OutputBufferInverseDimensions;
-
-	FFX_CACAO_PrepareNormals(depths, uv, pixelSize, tid);
-}
-
-[numthreads(PREPARE_NORMALS_FROM_INPUT_NORMALS_WIDTH, PREPARE_NORMALS_FROM_INPUT_NORMALS_HEIGHT, 1)]
-void FFX_CACAO_PrepareDownsampledNormalsFromInputNormals(int2 tid : SV_DispatchThreadID)
-{
-	int2 baseCoord = 4 * tid;
-	FFX_CACAO_Prepare_StoreNormal(tid, 0, FFX_CACAO_Prepare_LoadNormal(baseCoord + int2(0, 0)));
-	FFX_CACAO_Prepare_StoreNormal(tid, 1, FFX_CACAO_Prepare_LoadNormal(baseCoord + int2(2, 0)));
-	FFX_CACAO_Prepare_StoreNormal(tid, 2, FFX_CACAO_Prepare_LoadNormal(baseCoord + int2(0, 2)));
-	FFX_CACAO_Prepare_StoreNormal(tid, 3, FFX_CACAO_Prepare_LoadNormal(baseCoord + int2(2, 2)));
-}
-
-[numthreads(PREPARE_NORMALS_FROM_INPUT_NORMALS_WIDTH, PREPARE_NORMALS_FROM_INPUT_NORMALS_HEIGHT, 1)]
-void FFX_CACAO_PrepareNativeNormalsFromInputNormals(int2 tid : SV_DispatchThreadID)
-{
-	int2 baseCoord = 2 * tid;
-	FFX_CACAO_Prepare_StoreNormal(tid, 0, FFX_CACAO_Prepare_LoadNormal(baseCoord + int2(0, 0)));
-	FFX_CACAO_Prepare_StoreNormal(tid, 1, FFX_CACAO_Prepare_LoadNormal(baseCoord + int2(1, 0)));
-	FFX_CACAO_Prepare_StoreNormal(tid, 2, FFX_CACAO_Prepare_LoadNormal(baseCoord + int2(0, 1)));
-	FFX_CACAO_Prepare_StoreNormal(tid, 3, FFX_CACAO_Prepare_LoadNormal(baseCoord + int2(1, 1)));
-}
-
-// =============================================================================
-// Importance Map
-
-[numthreads(IMPORTANCE_MAP_WIDTH, IMPORTANCE_MAP_HEIGHT, 1)]
-void FFX_CACAO_GenerateImportanceMap(uint2 tid : SV_DispatchThreadID)
-{
-	uint2 basePos = tid * 2;
-
-	float2 baseUV = (float2(basePos)+float2(0.5f, 0.5f)) * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-
-	float avg = 0.0;
-	float minV = 1.0;
-	float maxV = 0.0;
-	[unroll]
-	for (int i = 0; i < 4; i++)
-	{
-		float4 vals = FFX_CACAO_Importance_GatherSSAO(baseUV, i);
-
-		// apply the same modifications that would have been applied in the main shader
-		vals = g_FFX_CACAO_Consts.EffectShadowStrength * vals;
-
-		vals = 1 - vals;
-
-		vals = pow(saturate(vals), g_FFX_CACAO_Consts.EffectShadowPow);
-
-		avg += dot(float4(vals.x, vals.y, vals.z, vals.w), float4(1.0 / 16.0, 1.0 / 16.0, 1.0 / 16.0, 1.0 / 16.0));
-
-		maxV = max(maxV, max(max(vals.x, vals.y), max(vals.z, vals.w)));
-		minV = min(minV, min(min(vals.x, vals.y), min(vals.z, vals.w)));
-	}
-
-	float minMaxDiff = maxV - minV;
-
-	FFX_CACAO_Importance_StoreImportance(tid, pow(saturate(minMaxDiff * 2.0), 0.8));
-}
-
-static const float c_FFX_CACAO_SmoothenImportance = 1.0f;
-
-[numthreads(IMPORTANCE_MAP_A_WIDTH, IMPORTANCE_MAP_A_HEIGHT, 1)]
-void FFX_CACAO_PostprocessImportanceMapA(uint2 tid : SV_DispatchThreadID)
-{
-	float2 uv = (float2(tid)+0.5f) * g_FFX_CACAO_Consts.ImportanceMapInverseDimensions;
-
-	float centre = FFX_CACAO_Importance_SampleImportanceA(uv);
-	//return centre;
-
-	float2 halfPixel = 0.5f * g_FFX_CACAO_Consts.ImportanceMapInverseDimensions;
-
-	float4 vals;
-	vals.x = FFX_CACAO_Importance_SampleImportanceA(uv + float2(-halfPixel.x * 3, -halfPixel.y));
-	vals.y = FFX_CACAO_Importance_SampleImportanceA(uv + float2(+halfPixel.x, -halfPixel.y * 3));
-	vals.z = FFX_CACAO_Importance_SampleImportanceA(uv + float2(+halfPixel.x * 3, +halfPixel.y));
-	vals.w = FFX_CACAO_Importance_SampleImportanceA(uv + float2(-halfPixel.x, +halfPixel.y * 3));
-
-	float avgVal = dot(vals, float4(0.25, 0.25, 0.25, 0.25));
-	vals.xy = max(vals.xy, vals.zw);
-	float maxVal = max(centre, max(vals.x, vals.y));
-
-	FFX_CACAO_Importance_StoreImportanceA(tid, lerp(maxVal, avgVal, c_FFX_CACAO_SmoothenImportance));
-}
-
-[numthreads(IMPORTANCE_MAP_B_WIDTH, IMPORTANCE_MAP_B_HEIGHT, 1)]
-void FFX_CACAO_PostprocessImportanceMapB(uint2 tid : SV_DispatchThreadID)
-{
-	float2 uv = (float2(tid)+0.5f) * g_FFX_CACAO_Consts.ImportanceMapInverseDimensions;
-
-	float centre = FFX_CACAO_Importance_SampleImportanceB(uv);
-	//return centre;
-
-	float2 halfPixel = 0.5f * g_FFX_CACAO_Consts.ImportanceMapInverseDimensions;
-
-	float4 vals;
-	vals.x = FFX_CACAO_Importance_SampleImportanceB(uv + float2(-halfPixel.x, -halfPixel.y * 3));
-	vals.y = FFX_CACAO_Importance_SampleImportanceB(uv + float2(+halfPixel.x * 3, -halfPixel.y));
-	vals.z = FFX_CACAO_Importance_SampleImportanceB(uv + float2(+halfPixel.x, +halfPixel.y * 3));
-	vals.w = FFX_CACAO_Importance_SampleImportanceB(uv + float2(-halfPixel.x * 3, +halfPixel.y));
-
-	float avgVal = dot(vals, float4(0.25, 0.25, 0.25, 0.25));
-	vals.xy = max(vals.xy, vals.zw);
-	float maxVal = max(centre, max(vals.x, vals.y));
-
-	float retVal = lerp(maxVal, avgVal, c_FFX_CACAO_SmoothenImportance);
-	FFX_CACAO_Importance_StoreImportanceB(tid, retVal);
-
-	// sum the average; to avoid overflowing we assume max AO resolution is not bigger than 16384x16384; so quarter res (used here) will be 4096x4096, which leaves us with 8 bits per pixel
-	uint sum = (uint)(saturate(retVal) * 255.0 + 0.5);
-
-	// save every 9th to avoid InterlockedAdd congestion - since we're blurring, this is good enough; compensated by multiplying LoadCounterAvgDiv by 9
-	if (((tid.x % 3) + (tid.y % 3)) == 0)
-	{
-		FFX_CACAO_Importance_LoadCounterInterlockedAdd(sum);
-	}
-}
-
-// =============================================================================
-// Bilateral Upscale
-
-uint FFX_CACAO_DoublePackFloat16(float v)
-{
-	uint2 p = f32tof16(float2(v, v));
-	return p.x | (p.y << 16);
-}
-
-#define FFX_CACAO_BILATERAL_UPSCALE_BUFFER_WIDTH  (FFX_CACAO_BILATERAL_UPSCALE_WIDTH  + 4)
-#define FFX_CACAO_BILATERAL_UPSCALE_BUFFER_HEIGHT (FFX_CACAO_BILATERAL_UPSCALE_HEIGHT + 4 + 4)
-
-struct FFX_CACAO_BilateralBufferVal
-{
-	uint packedDepths;
-	uint packedSsaoVals;
-};
-
-groupshared FFX_CACAO_BilateralBufferVal s_FFX_CACAO_BilateralUpscaleBuffer[FFX_CACAO_BILATERAL_UPSCALE_BUFFER_WIDTH][FFX_CACAO_BILATERAL_UPSCALE_BUFFER_HEIGHT];
-
-void FFX_CACAO_BilateralUpscaleNxN(int2 tid, uint2 gtid, uint2 gid, const int width, const int height, const bool useEdges)
-{
-	// fill in group shared buffer
-	{
-		uint threadNum = (gtid.y * FFX_CACAO_BILATERAL_UPSCALE_WIDTH + gtid.x) * 3;
-		uint2 bufferCoord = uint2(threadNum % FFX_CACAO_BILATERAL_UPSCALE_BUFFER_WIDTH, threadNum / FFX_CACAO_BILATERAL_UPSCALE_BUFFER_WIDTH);
-		uint2 imageCoord = (gid * uint2(FFX_CACAO_BILATERAL_UPSCALE_WIDTH, FFX_CACAO_BILATERAL_UPSCALE_HEIGHT)) + bufferCoord - 2;
-
-		if (useEdges)
-		{
-			float2 inputs[3];
-			for (int j = 0; j < 3; ++j)
-			{
-				int2 p = int2(imageCoord.x + j, imageCoord.y);
-				int2 pos = p / 2;
-				int index = (p.x % 2) + 2 * (p.y % 2);
-				inputs[j] = FFX_CACAO_BilateralUpscale_LoadSSAO(pos, index);
-			}
-
-			for (int i = 0; i < 3; ++i)
-			{
-				int mx = (imageCoord.x % 2);
-				int my = (imageCoord.y % 2);
-
-				int ic = mx + my * 2;       // center index
-				int ih = (1 - mx) + my * 2;   // neighbouring, horizontal
-				int iv = mx + (1 - my) * 2;   // neighbouring, vertical
-				int id = (1 - mx) + (1 - my) * 2; // diagonal
-
-				float2 centerVal = inputs[i];
-
-				float ao = centerVal.x;
-
-				float4 edgesLRTB = FFX_CACAO_UnpackEdges(centerVal.y);
-
-				// convert index shifts to sampling offsets
-				float fmx = (float)mx;
-				float fmy = (float)my;
-
-				// in case of an edge, push sampling offsets away from the edge (towards pixel center)
-				float fmxe = (edgesLRTB.y - edgesLRTB.x);
-				float fmye = (edgesLRTB.w - edgesLRTB.z);
-
-				// calculate final sampling offsets and sample using bilinear filter
-				float2 p = imageCoord;
-				float2  uvH = (p + float2(fmx + fmxe - 0.5, 0.5 - fmy)) * 0.5 * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-				float   aoH = FFX_CACAO_BilateralUpscale_SampleSSAOLinear(uvH, ih);
-				float2  uvV = (p + float2(0.5 - fmx, fmy - 0.5 + fmye)) * 0.5 * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-				float   aoV = FFX_CACAO_BilateralUpscale_SampleSSAOLinear(uvV, iv);
-				float2  uvD = (p + float2(fmx - 0.5 + fmxe, fmy - 0.5 + fmye)) * 0.5 * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-				float   aoD = FFX_CACAO_BilateralUpscale_SampleSSAOLinear(uvD, id);
-
-				// reduce weight for samples near edge - if the edge is on both sides, weight goes to 0
-				float4 blendWeights;
-				blendWeights.x = 1.0;
-				blendWeights.y = (edgesLRTB.x + edgesLRTB.y) * 0.5;
-				blendWeights.z = (edgesLRTB.z + edgesLRTB.w) * 0.5;
-				blendWeights.w = (blendWeights.y + blendWeights.z) * 0.5;
-
-				// calculate weighted average
-				float blendWeightsSum = dot(blendWeights, float4(1.0, 1.0, 1.0, 1.0));
-				ao = dot(float4(ao, aoH, aoV, aoD), blendWeights) / blendWeightsSum;
-
-				++imageCoord.x;
-
-				FFX_CACAO_BilateralBufferVal bufferVal;
-
-				uint2 depthArrayBufferCoord = (imageCoord / 2) + g_FFX_CACAO_Consts.DeinterleavedDepthBufferOffset;
-				uint depthArrayBufferIndex = ic;
-				float depth = FFX_CACAO_BilateralUpscale_LoadDownscaledDepth(depthArrayBufferCoord, depthArrayBufferIndex);
-
-				bufferVal.packedDepths = FFX_CACAO_DoublePackFloat16(depth);
-				bufferVal.packedSsaoVals = FFX_CACAO_DoublePackFloat16(ao);
-
-				s_FFX_CACAO_BilateralUpscaleBuffer[bufferCoord.x + i][bufferCoord.y] = bufferVal;
-			}
-		}
-		else
-		{
-			for (int i = 0; i < 3; ++i)
-			{
-				float2 sampleLoc0 = (float2(imageCoord / 2) + 0.5f) * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-				float2 sampleLoc1 = sampleLoc0;
-				float2 sampleLoc2 = sampleLoc0;
-				float2 sampleLoc3 = sampleLoc0;
-				switch ((imageCoord.y % 2) * 2 + (imageCoord.x % 2)) {
-				case 0:
-					sampleLoc1.x -= 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions.x;
-					sampleLoc2.y -= 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions.y;
-					sampleLoc3 -= 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-					break;
-				case 1:
-					sampleLoc0.x += 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions.x;
-					sampleLoc2 += float2(0.5f, -0.5f) * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-					sampleLoc3.y -= 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions.y;
-					break;
-				case 2:
-					sampleLoc0.y += 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions.y;
-					sampleLoc1 += float2(-0.5f, 0.5f) * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-					sampleLoc3.x -= 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions.x;
-					break;
-				case 3:
-					sampleLoc0 += 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-					sampleLoc1.y += 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions.y;
-					sampleLoc2.x += 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions.x;
-					break;
-				}
-
-				float ssaoVal0 = FFX_CACAO_BilateralUpscale_SampleSSAOPoint(sampleLoc0, 0);
-				float ssaoVal1 = FFX_CACAO_BilateralUpscale_SampleSSAOPoint(sampleLoc1, 1);
-				float ssaoVal2 = FFX_CACAO_BilateralUpscale_SampleSSAOPoint(sampleLoc2, 2);
-				float ssaoVal3 = FFX_CACAO_BilateralUpscale_SampleSSAOPoint(sampleLoc3, 3);
-
-				uint3 ssaoArrayBufferCoord = uint3(imageCoord / 2, 2 * (imageCoord.y % 2) + imageCoord.x % 2);
-				uint2 depthArrayBufferCoord = ssaoArrayBufferCoord.xy + g_FFX_CACAO_Consts.DeinterleavedDepthBufferOffset;
-				uint depthArrayBufferIndex = ssaoArrayBufferCoord.z;
-				++imageCoord.x;
-
-				FFX_CACAO_BilateralBufferVal bufferVal;
-
-				float depth = FFX_CACAO_BilateralUpscale_LoadDownscaledDepth(depthArrayBufferCoord, depthArrayBufferIndex);
-				float ssaoVal = (ssaoVal0 + ssaoVal1 + ssaoVal2 + ssaoVal3) * 0.25f;
-
-				bufferVal.packedDepths = FFX_CACAO_DoublePackFloat16(depth);
-				bufferVal.packedSsaoVals = FFX_CACAO_DoublePackFloat16(ssaoVal);
-
-				s_FFX_CACAO_BilateralUpscaleBuffer[bufferCoord.x + i][bufferCoord.y] = bufferVal;
-			}
-		}
-	}
-
-	GroupMemoryBarrierWithGroupSync();
-
-	float depths[4];
-	// load depths
-	{
-		int2 fullBufferCoord = 2 * tid;
-		int2 fullDepthBufferCoord = fullBufferCoord + g_FFX_CACAO_Consts.DepthBufferOffset;
-
-		depths[0] = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_BilateralUpscale_LoadDepth(fullDepthBufferCoord, int2(0, 0)));
-		depths[1] = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_BilateralUpscale_LoadDepth(fullDepthBufferCoord, int2(1, 0)));
-		depths[2] = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_BilateralUpscale_LoadDepth(fullDepthBufferCoord, int2(0, 1)));
-		depths[3] = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_BilateralUpscale_LoadDepth(fullDepthBufferCoord, int2(1, 1)));
-	}
-	min16float4 packedDepths = min16float4(depths[0], depths[1], depths[2], depths[3]);
-
-	int2 baseBufferCoord = gtid + int2(width, height);
-
-	min16float epsilonWeight = 1e-3f;
-	min16float2 nearestSsaoVals = FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BilateralUpscaleBuffer[baseBufferCoord.x][baseBufferCoord.y].packedSsaoVals);
-	min16float4 packedTotals = epsilonWeight * min16float4(1.0f, 1.0f, 1.0f, 1.0f);
-	packedTotals.xy *= nearestSsaoVals;
-	packedTotals.zw *= nearestSsaoVals;
-	min16float4 packedTotalWeights = epsilonWeight * min16float4(1.0f, 1.0f, 1.0f, 1.0f);
-
-	float distanceSigma = g_FFX_CACAO_Consts.BilateralSimilarityDistanceSigma;
-	min16float2 packedDistSigma = min16float2(1.0f / distanceSigma, 1.0f / distanceSigma);
-	float sigma = g_FFX_CACAO_Consts.BilateralSigmaSquared;
-	min16float2 packedSigma = min16float2(1.0f / sigma, 1.0f / sigma);
-
-	for (int x = -width; x <= width; ++x)
-	{
-		for (int y = -height; y <= height; ++y)
-		{
-			int2 bufferCoord = baseBufferCoord + int2(x, y);
-
-			FFX_CACAO_BilateralBufferVal bufferVal = s_FFX_CACAO_BilateralUpscaleBuffer[bufferCoord.x][bufferCoord.y];
-
-			min16float2 u = min16float2(x, x) - min16float2(0.0f, 0.5f);
-			min16float2 v1 = min16float2(y, y) - min16float2(0.0f, 0.0f);
-			min16float2 v2 = min16float2(y, y) - min16float2(0.5f, 0.5f);
-			u = u * u;
-			v1 = v1 * v1;
-			v2 = v2 * v2;
-
-			min16float2 dist1 = u + v1;
-			min16float2 dist2 = u + v2;
-
-			min16float2 wx1 = exp(-dist1 * packedSigma);
-			min16float2 wx2 = exp(-dist2 * packedSigma);
-
-			min16float2 bufferPackedDepths = FFX_CACAO_UnpackFloat16(bufferVal.packedDepths);
-
-#if 0
-			min16float2 diff1 = abs(packedDepths.xy - bufferPackedDepths);
-			min16float2 diff2 = abs(packedDepths.zw - bufferPackedDepths);
-#else
-			min16float2 diff1 = packedDepths.xy - bufferPackedDepths;
-			min16float2 diff2 = packedDepths.zw - bufferPackedDepths;
-			diff1 *= diff1;
-			diff2 *= diff2;
-#endif
-
-			min16float2 wy1 = exp(-diff1 * packedDistSigma);
-			min16float2 wy2 = exp(-diff2 * packedDistSigma);
-
-			min16float2 weight1 = wx1 * wy1;
-			min16float2 weight2 = wx2 * wy2;
-
-			min16float2 packedSsaoVals = FFX_CACAO_UnpackFloat16(bufferVal.packedSsaoVals);
-			packedTotals.xy += packedSsaoVals * weight1;
-			packedTotals.zw += packedSsaoVals * weight2;
-			packedTotalWeights.xy += weight1;
-			packedTotalWeights.zw += weight2;
-		}
-	}
-
-	uint2 outputCoord = 2 * tid;
-	min16float4 outputValues = packedTotals / packedTotalWeights;
-	FFX_CACAO_BilateralUpscale_StoreOutput(outputCoord, int2(0, 0), outputValues.x); // totals[0] / totalWeights[0];
-	FFX_CACAO_BilateralUpscale_StoreOutput(outputCoord, int2(1, 0), outputValues.y); // totals[1] / totalWeights[1];
-	FFX_CACAO_BilateralUpscale_StoreOutput(outputCoord, int2(0, 1), outputValues.z); // totals[2] / totalWeights[2];
-	FFX_CACAO_BilateralUpscale_StoreOutput(outputCoord, int2(1, 1), outputValues.w); // totals[3] / totalWeights[3];
-}
-
-[numthreads(FFX_CACAO_BILATERAL_UPSCALE_WIDTH, FFX_CACAO_BILATERAL_UPSCALE_HEIGHT, 1)]
-void FFX_CACAO_UpscaleBilateral5x5Smart(int2 tid : SV_DispatchThreadID, uint2 gtid : SV_GroupThreadID, uint2 gid : SV_GroupID)
-{
-	FFX_CACAO_BilateralUpscaleNxN(tid, gtid, gid, 2, 2, true);
-}
-
-[numthreads(FFX_CACAO_BILATERAL_UPSCALE_WIDTH, FFX_CACAO_BILATERAL_UPSCALE_HEIGHT, 1)]
-void FFX_CACAO_UpscaleBilateral5x5NonSmart(int2 tid : SV_DispatchThreadID, uint2 gtid : SV_GroupThreadID, uint2 gid : SV_GroupID)
-{
-	FFX_CACAO_BilateralUpscaleNxN(tid, gtid, gid, 2, 2, false);
-}
-
-[numthreads(FFX_CACAO_BILATERAL_UPSCALE_WIDTH, FFX_CACAO_BILATERAL_UPSCALE_HEIGHT, 1)]
-void FFX_CACAO_UpscaleBilateral7x7(int2 tid : SV_DispatchThreadID, uint2 gtid : SV_GroupThreadID, uint2 gid : SV_GroupID)
-{
-	FFX_CACAO_BilateralUpscaleNxN(tid, gtid, gid, 3, 3, true);
-}
-
-[numthreads(FFX_CACAO_BILATERAL_UPSCALE_WIDTH, FFX_CACAO_BILATERAL_UPSCALE_HEIGHT, 1)]
-void FFX_CACAO_UpscaleBilateral5x5Half(int2 tid : SV_DispatchThreadID, uint2 gtid : SV_GroupThreadID, uint2 gid : SV_GroupID)
-{
-	const int width = 2, height = 2;
-
-	// fill in group shared buffer
-	{
-		uint threadNum = (gtid.y * FFX_CACAO_BILATERAL_UPSCALE_WIDTH + gtid.x) * 3;
-		uint2 bufferCoord = uint2(threadNum % FFX_CACAO_BILATERAL_UPSCALE_BUFFER_WIDTH, threadNum / FFX_CACAO_BILATERAL_UPSCALE_BUFFER_WIDTH);
-		uint2 imageCoord = (gid * uint2(FFX_CACAO_BILATERAL_UPSCALE_WIDTH, FFX_CACAO_BILATERAL_UPSCALE_HEIGHT)) + bufferCoord - 2;
-
-		for (int i = 0; i < 3; ++i)
-		{
-			float2 sampleLoc0 = (float2(imageCoord / 2) + 0.5f) * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-			float2 sampleLoc1 = sampleLoc0;
-			switch ((imageCoord.y % 2) * 2 + (imageCoord.x % 2)) {
-			case 0:
-				sampleLoc1 -= 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-				break;
-			case 1:
-				sampleLoc0.x += 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions.x;
-				sampleLoc1.y -= 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions.y;
-				break;
-			case 2:
-				sampleLoc0.y += 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions.y;
-				sampleLoc1.x -= 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions.x;
-				break;
-			case 3:
-				sampleLoc0 += 0.5f * g_FFX_CACAO_Consts.SSAOBufferInverseDimensions;
-				break;
-			}
-
-			float ssaoVal0 = FFX_CACAO_BilateralUpscale_SampleSSAOPoint(sampleLoc0, 0);
-			float ssaoVal1 = FFX_CACAO_BilateralUpscale_SampleSSAOPoint(sampleLoc1, 3);
-
-			uint2 depthArrayBufferCoord = (imageCoord / 2) + g_FFX_CACAO_Consts.DeinterleavedDepthBufferOffset;
-			uint depthArrayBufferIndex = (imageCoord.y % 2) * 3;
-			++imageCoord.x;
-
-			FFX_CACAO_BilateralBufferVal bufferVal;
-
-			float depth = FFX_CACAO_BilateralUpscale_LoadDownscaledDepth(depthArrayBufferCoord, depthArrayBufferIndex);
-			float ssaoVal = (ssaoVal0 + ssaoVal1) * 0.5f;
-
-			bufferVal.packedDepths = FFX_CACAO_DoublePackFloat16(depth);
-			bufferVal.packedSsaoVals = FFX_CACAO_DoublePackFloat16(ssaoVal);
-
-			s_FFX_CACAO_BilateralUpscaleBuffer[bufferCoord.x + i][bufferCoord.y] = bufferVal;
-		}
-	}
-
-	GroupMemoryBarrierWithGroupSync();
-
-	float depths[4];
-	// load depths
-	{
-		int2 fullBufferCoord = 2 * tid;
-		int2 fullDepthBufferCoord = fullBufferCoord + g_FFX_CACAO_Consts.DepthBufferOffset;
-
-		depths[0] = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_BilateralUpscale_LoadDepth(fullDepthBufferCoord, int2(0, 0)));
-		depths[1] = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_BilateralUpscale_LoadDepth(fullDepthBufferCoord, int2(1, 0)));
-		depths[2] = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_BilateralUpscale_LoadDepth(fullDepthBufferCoord, int2(0, 1)));
-		depths[3] = FFX_CACAO_ScreenSpaceToViewSpaceDepth(FFX_CACAO_BilateralUpscale_LoadDepth(fullDepthBufferCoord, int2(1, 1)));
-	}
-	min16float4 packedDepths = min16float4(depths[0], depths[1], depths[2], depths[3]);
-
-	int2 baseBufferCoord = gtid + int2(width, height);
-
-	min16float epsilonWeight = 1e-3f;
-	min16float2 nearestSsaoVals = FFX_CACAO_UnpackFloat16(s_FFX_CACAO_BilateralUpscaleBuffer[baseBufferCoord.x][baseBufferCoord.y].packedSsaoVals);
-	min16float4 packedTotals = epsilonWeight * min16float4(1.0f, 1.0f, 1.0f, 1.0f);
-	packedTotals.xy *= nearestSsaoVals;
-	packedTotals.zw *= nearestSsaoVals;
-	min16float4 packedTotalWeights = epsilonWeight * min16float4(1.0f, 1.0f, 1.0f, 1.0f);
-
-	float distanceSigma = g_FFX_CACAO_Consts.BilateralSimilarityDistanceSigma;
-	min16float2 packedDistSigma = min16float2(1.0f / distanceSigma, 1.0f / distanceSigma);
-	float sigma = g_FFX_CACAO_Consts.BilateralSigmaSquared;
-	min16float2 packedSigma = min16float2(1.0f / sigma, 1.0f / sigma);
-
-	for (int x = -width; x <= width; ++x)
-	{
-		for (int y = -height; y <= height; ++y)
-		{
-			int2 bufferCoord = baseBufferCoord + int2(x, y);
-
-			FFX_CACAO_BilateralBufferVal bufferVal = s_FFX_CACAO_BilateralUpscaleBuffer[bufferCoord.x][bufferCoord.y];
-
-			min16float2 u = min16float2(x, x) - min16float2(0.0f, 0.5f);
-			min16float2 v1 = min16float2(y, y) - min16float2(0.0f, 0.0f);
-			min16float2 v2 = min16float2(y, y) - min16float2(0.5f, 0.5f);
-			u = u * u;
-			v1 = v1 * v1;
-			v2 = v2 * v2;
-
-			min16float2 dist1 = u + v1;
-			min16float2 dist2 = u + v2;
-
-			min16float2 wx1 = exp(-dist1 * packedSigma);
-			min16float2 wx2 = exp(-dist2 * packedSigma);
-
-			min16float2 bufferPackedDepths = FFX_CACAO_UnpackFloat16(bufferVal.packedDepths);
-
-#if 0
-			min16float2 diff1 = abs(packedDepths.xy - bufferPackedDepths);
-			min16float2 diff2 = abs(packedDepths.zw - bufferPackedDepths);
-#else
-			min16float2 diff1 = packedDepths.xy - bufferPackedDepths;
-			min16float2 diff2 = packedDepths.zw - bufferPackedDepths;
-			diff1 *= diff1;
-			diff2 *= diff2;
-#endif
-
-			min16float2 wy1 = exp(-diff1 * packedDistSigma);
-			min16float2 wy2 = exp(-diff2 * packedDistSigma);
-
-			min16float2 weight1 = wx1 * wy1;
-			min16float2 weight2 = wx2 * wy2;
-
-			min16float2 packedSsaoVals = FFX_CACAO_UnpackFloat16(bufferVal.packedSsaoVals);
-			packedTotals.xy += packedSsaoVals * weight1;
-			packedTotals.zw += packedSsaoVals * weight2;
-			packedTotalWeights.xy += weight1;
-			packedTotalWeights.zw += weight2;
-		}
-	}
-
-	uint2 outputCoord = 2 * tid;
-	min16float4 outputValues = packedTotals / packedTotalWeights;
-	FFX_CACAO_BilateralUpscale_StoreOutput(outputCoord, int2(0, 0), outputValues.x); // totals[0] / totalWeights[0];
-	FFX_CACAO_BilateralUpscale_StoreOutput(outputCoord, int2(1, 0), outputValues.y); // totals[1] / totalWeights[1];
-	FFX_CACAO_BilateralUpscale_StoreOutput(outputCoord, int2(0, 1), outputValues.z); // totals[2] / totalWeights[2];
-	FFX_CACAO_BilateralUpscale_StoreOutput(outputCoord, int2(1, 1), outputValues.w); // totals[3] / totalWeights[3];
-}
-
-
-#undef FFX_CACAO_BILATERAL_UPSCALE_BUFFER_WIDTH
-#undef FFX_CACAO_BILATERAL_UPSCALE_BUFFER_HEIGHT
diff --git a/src/ffx-cacao/src/ffx_cacao_bindings.hlsl b/src/ffx-cacao/src/ffx_cacao_bindings.hlsl
deleted file mode 100644
index 2af3b4c0fec94caec06d3a36f54b2036e3530b81..0000000000000000000000000000000000000000
--- a/src/ffx-cacao/src/ffx_cacao_bindings.hlsl
+++ /dev/null
@@ -1,367 +0,0 @@
-// Modifications Copyright © 2021. Advanced Micro Devices, Inc. All Rights Reserved.
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2016, Intel Corporation
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
-// documentation files (the "Software"), to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to the following conditions:
-// The above copyright notice and this permission notice shall be included in all copies or substantial portions of
-// the Software.
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// File changes (yyyy-mm-dd)
-// 2016-09-07: filip.strugar@intel.com: first commit
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef FFX_CACAO_BINDINGS_HLSL
-#define FFX_CACAO_BINDINGS_HLSL
-
-// =============================================================================
-// Constants
-
-struct FFX_CACAO_Constants
-{
-	float2                  DepthUnpackConsts;
-	float2                  CameraTanHalfFOV;
-
-	float2                  NDCToViewMul;
-	float2                  NDCToViewAdd;
-
-	float2                  DepthBufferUVToViewMul;
-	float2                  DepthBufferUVToViewAdd;
-
-	float                   EffectRadius;                           // world (viewspace) maximum size of the shadow
-	float                   EffectShadowStrength;                   // global strength of the effect (0 - 5)
-	float                   EffectShadowPow;
-	float                   EffectShadowClamp;
-
-	float                   EffectFadeOutMul;                       // effect fade out from distance (ex. 25)
-	float                   EffectFadeOutAdd;                       // effect fade out to distance   (ex. 100)
-	float                   EffectHorizonAngleThreshold;            // limit errors on slopes and caused by insufficient geometry tessellation (0.05 to 0.5)
-	float                   EffectSamplingRadiusNearLimitRec;          // if viewspace pixel closer than this, don't enlarge shadow sampling radius anymore (makes no sense to grow beyond some distance, not enough samples to cover everything, so just limit the shadow growth; could be SSAOSettingsFadeOutFrom * 0.1 or less)
-
-	float                   DepthPrecisionOffsetMod;
-	float                   NegRecEffectRadius;                     // -1.0 / EffectRadius
-	float                   LoadCounterAvgDiv;                      // 1.0 / ( halfDepthMip[SSAO_DEPTH_MIP_LEVELS-1].sizeX * halfDepthMip[SSAO_DEPTH_MIP_LEVELS-1].sizeY )
-	float                   AdaptiveSampleCountLimit;
-
-	float                   InvSharpness;
-	int                     PassIndex;
-	float                   BilateralSigmaSquared;
-	float                   BilateralSimilarityDistanceSigma;
-
-	float4                  PatternRotScaleMatrices[5];
-
-	float                   NormalsUnpackMul;
-	float                   NormalsUnpackAdd;
-	float                   DetailAOStrength;
-	float                   Dummy0;
-
-	float2                  SSAOBufferDimensions;
-	float2                  SSAOBufferInverseDimensions;
-
-	float2                  DepthBufferDimensions;
-	float2                  DepthBufferInverseDimensions;
-
-	int2                    DepthBufferOffset;
-	float2                  PerPassFullResUVOffset;
-
-	float2                  OutputBufferDimensions;
-	float2                  OutputBufferInverseDimensions;
-
-	float2                  ImportanceMapDimensions;
-	float2                  ImportanceMapInverseDimensions;
-
-	float2                  DeinterleavedDepthBufferDimensions;
-	float2                  DeinterleavedDepthBufferInverseDimensions;
-
-	float2                  DeinterleavedDepthBufferOffset;
-	float2                  DeinterleavedDepthBufferNormalisedOffset;
-
-	float4x4                NormalsWorldToViewspaceMatrix;
-};
-
-cbuffer SSAOConstantsBuffer : register(b0)
-{
-	FFX_CACAO_Constants        g_FFX_CACAO_Consts;
-}
-
-// =============================================================================
-// Samplers
-
-SamplerState              g_PointClampSampler        : register(s0);
-SamplerState              g_PointMirrorSampler       : register(s1);
-SamplerState              g_LinearClampSampler       : register(s2);
-SamplerState              g_ViewspaceDepthTapSampler : register(s3);
-SamplerState              g_RealPointClampSampler    : register(s4);
-
-// =============================================================================
-// Clear Load Counter
-
-RWTexture1D<uint> g_ClearLoadCounter_LoadCounter : register(u0);
-
-void FFX_CACAO_ClearLoadCounter_SetLoadCounter(uint val)
-{
-	g_ClearLoadCounter_LoadCounter[0] = val;
-}
-
-// =============================================================================
-// Edge Sensitive Blur
-
-Texture2DArray<float2>    g_EdgeSensitiveBlur_Input  : register(t0);
-RWTexture2DArray<float2>  g_EdgeSensitiveBlur_Output : register(u0);
-
-float2 FFX_CACAO_EdgeSensitiveBlur_SampleInputOffset(float2 uv, int2 offset)
-{
-	return g_EdgeSensitiveBlur_Input.SampleLevel(g_PointMirrorSampler, float3(uv, 0.0f), 0.0f, offset);
-}
-
-float2 FFX_CACAO_EdgeSensitiveBlur_SampleInput(float2 uv)
-{
-	return g_EdgeSensitiveBlur_Input.SampleLevel(g_PointMirrorSampler, float3(uv, 0.0f), 0.0f);
-}
-
-void FFX_CACAO_EdgeSensitiveBlur_StoreOutput(int2 coord, float2 value)
-{
-	g_EdgeSensitiveBlur_Output[int3(coord, 0)] = value;
-}
-
-// =============================================================================
-// SSAO Generation
-
-Texture2DArray<float>    g_ViewspaceDepthSource      : register(t0);
-Texture2DArray<float4>   g_DeinterleavedNormals      : register(t1);
-Texture1D<uint>          g_LoadCounter               : register(t2);
-Texture2D<float>         g_ImportanceMap             : register(t3);
-Texture2DArray<float2>   g_FinalSSAO                 : register(t4);
-
-RWTexture2DArray<float2> g_SSAOOutput                : register(u0);
-
-float FFX_CACAO_SSAOGeneration_SampleViewspaceDepthMip(float2 uv, float mip)
-{
-	return g_ViewspaceDepthSource.SampleLevel(g_ViewspaceDepthTapSampler, float3(uv, 0.0f), mip);
-}
-
-float4 FFX_CACAO_SSAOGeneration_GatherViewspaceDepthOffset(float2 uv, int2 offset)
-{
-	return g_ViewspaceDepthSource.GatherRed(g_PointMirrorSampler, float3(uv, 0.0f), offset);
-}
-
-uint FFX_CACAO_SSAOGeneration_GetLoadCounter()
-{
-	return g_LoadCounter[0];
-}
-
-float FFX_CACAO_SSAOGeneration_SampleImportance(float2 uv)
-{
-	return g_ImportanceMap.SampleLevel(g_LinearClampSampler, uv, 0.0f);
-}
-
-float2 FFX_CACAO_SSAOGeneration_LoadBasePassSSAOPass(int2 coord, int pass)
-{
-	return g_FinalSSAO.Load(int4(coord, pass, 0)).xy;
-}
-
-float3 FFX_CACAO_SSAOGeneration_GetNormalPass(int2 coord, int pass)
-{
-	return g_DeinterleavedNormals[int3(coord, pass)].xyz;
-}
-
-void FFX_CACAO_SSAOGeneration_StoreOutput(int2 coord, float2 val)
-{
-	g_SSAOOutput[int3(coord, 0)] = val;
-}
-
-// ============================================================================
-// Apply
-
-Texture2DArray<float2> g_ApplyFinalSSAO : register(t0);
-RWTexture2D<float>     g_ApplyOutput    : register(u0);
-
-float FFX_CACAO_Apply_SampleSSAOUVPass(float2 uv, int pass)
-{
-	return g_ApplyFinalSSAO.SampleLevel(g_LinearClampSampler, float3(uv, pass), 0.0f).x;
-}
-
-float2 FFX_CACAO_Apply_LoadSSAOPass(int2 coord, int pass)
-{
-	return g_ApplyFinalSSAO.Load(int4(coord, pass, 0));
-}
-
-void FFX_CACAO_Apply_StoreOutput(int2 coord, float val)
-{
-	g_ApplyOutput[coord] = val;
-}
-
-// =============================================================================
-// Prepare
-
-Texture2D<float>         g_DepthIn                        : register(t0);
-Texture2D<float4>        g_PrepareNormalsFromNormalsInput : register(t0);
-
-RWTexture2DArray<float>  g_PrepareDepthsAndMips_OutMip0 : register(u0);
-RWTexture2DArray<float>  g_PrepareDepthsAndMips_OutMip1 : register(u1);
-RWTexture2DArray<float>  g_PrepareDepthsAndMips_OutMip2 : register(u2);
-RWTexture2DArray<float>  g_PrepareDepthsAndMips_OutMip3 : register(u3);
-
-RWTexture2DArray<float>  g_PrepareDepthsOut : register(u0);
-
-RWTexture2DArray<float4> g_PrepareNormals_NormalOut : register(u0);
-
-float FFX_CACAO_Prepare_SampleDepthOffset(float2 uv, int2 offset)
-{
-	return g_DepthIn.SampleLevel(g_PointClampSampler, uv, 0.0f, offset);
-}
-
-float4 FFX_CACAO_Prepare_GatherDepth(float2 uv)
-{
-	return g_DepthIn.GatherRed(g_PointClampSampler, uv);
-}
-
-float FFX_CACAO_Prepare_LoadDepth(int2 coord)
-{
-	return g_DepthIn.Load(int3(coord, 0));
-}
-
-float FFX_CACAO_Prepare_LoadDepthOffset(int2 coord, int2 offset)
-{
-	return g_DepthIn.Load(int3(coord, 0), offset);
-}
-
-float4 FFX_CACAO_Prepare_GatherDepthOffset(float2 uv, int2 offset)
-{
-	return g_DepthIn.GatherRed(g_PointClampSampler, uv, offset);
-}
-
-float3 FFX_CACAO_Prepare_LoadNormal(int2 coord)
-{
-	float3 normal = g_PrepareNormalsFromNormalsInput.Load(int3(coord, 0)).xyz;
-	normal = normal * g_FFX_CACAO_Consts.NormalsUnpackMul.xxx + g_FFX_CACAO_Consts.NormalsUnpackAdd.xxx;
-	normal = mul(normal, (float3x3)g_FFX_CACAO_Consts.NormalsWorldToViewspaceMatrix).xyz;
-	// normal = normalize(normal);
-	return normal;
-}
-
-void FFX_CACAO_Prepare_StoreDepthMip0(int2 coord, int index, float val)
-{
-	g_PrepareDepthsAndMips_OutMip0[int3(coord, index)] = val;
-}
-
-void FFX_CACAO_Prepare_StoreDepthMip1(int2 coord, int index, float val)
-{
-	g_PrepareDepthsAndMips_OutMip1[int3(coord, index)] = val;
-}
-
-void FFX_CACAO_Prepare_StoreDepthMip2(int2 coord, int index, float val)
-{
-	g_PrepareDepthsAndMips_OutMip2[int3(coord, index)] = val;
-}
-
-void FFX_CACAO_Prepare_StoreDepthMip3(int2 coord, int index, float val)
-{
-	g_PrepareDepthsAndMips_OutMip3[int3(coord, index)] = val;
-}
-
-void FFX_CACAO_Prepare_StoreDepth(int2 coord, int index, float val)
-{
-	g_PrepareDepthsOut[int3(coord, index)] = val;
-}
-
-void FFX_CACAO_Prepare_StoreNormal(int2 coord, int index, float3 normal)
-{
-	g_PrepareNormals_NormalOut[int3(coord, index)] = float4(normal, 1.0f);
-}
-
-// =============================================================================
-// Importance Map
-
-Texture2DArray<float2> g_ImportanceFinalSSAO : register(t0);
-RWTexture2D<float>     g_ImportanceOut       : register(u0);
-
-Texture2D<float>   g_ImportanceAIn  : register(t0);
-RWTexture2D<float> g_ImportanceAOut : register(u0);
-
-Texture2D<float>   g_ImportanceBIn          : register(t0);
-RWTexture2D<float> g_ImportanceBOut         : register(u0);
-RWTexture1D<uint>  g_ImportanceBLoadCounter : register(u1);
-
-float4 FFX_CACAO_Importance_GatherSSAO(float2 uv, int index)
-{
-	return g_ImportanceFinalSSAO.GatherRed(g_PointClampSampler, float3(uv, index));
-}
-
-void FFX_CACAO_Importance_StoreImportance(int2 coord, float val)
-{
-	g_ImportanceOut[coord] = val;
-}
-
-float FFX_CACAO_Importance_SampleImportanceA(float2 uv)
-{
-	return g_ImportanceAIn.SampleLevel(g_LinearClampSampler, uv, 0.0f);
-}
-
-void FFX_CACAO_Importance_StoreImportanceA(int2 coord, float val)
-{
-	g_ImportanceAOut[coord] = val;
-}
-
-float FFX_CACAO_Importance_SampleImportanceB(float2 uv)
-{
-	return g_ImportanceBIn.SampleLevel(g_LinearClampSampler, uv, 0.0f);
-}
-
-void FFX_CACAO_Importance_StoreImportanceB(int2 coord, float val)
-{
-	g_ImportanceBOut[coord] = val;
-}
-
-void FFX_CACAO_Importance_LoadCounterInterlockedAdd(uint val)
-{
-	InterlockedAdd(g_ImportanceBLoadCounter[0], val);
-}
-
-// =============================================================================
-// Bilateral Upscale
-
-RWTexture2D<float>     g_BilateralUpscaleOutput            : register(u0);
-
-Texture2DArray<float2> g_BilateralUpscaleInput             : register(t0);
-Texture2D<float>       g_BilateralUpscaleDepth             : register(t1);
-Texture2DArray<float>  g_BilateralUpscaleDownscaledDepth   : register(t2);
-
-void FFX_CACAO_BilateralUpscale_StoreOutput(int2 coord, int2 offset, float val)
-{
-	g_BilateralUpscaleOutput[coord + offset] = val;
-}
-
-float FFX_CACAO_BilateralUpscale_SampleSSAOLinear(float2 uv, int index)
-{
-	return g_BilateralUpscaleInput.SampleLevel(g_LinearClampSampler, float3(uv, index), 0).x;
-}
-
-float FFX_CACAO_BilateralUpscale_SampleSSAOPoint(float2 uv, int index)
-{
-	return g_BilateralUpscaleInput.SampleLevel(g_PointClampSampler, float3(uv, index), 0).x;
-}
-
-float2 FFX_CACAO_BilateralUpscale_LoadSSAO(int2 coord, int index)
-{
-	return g_BilateralUpscaleInput.Load(int4(coord, index, 0));
-}
-
-float FFX_CACAO_BilateralUpscale_LoadDepth(int2 coord, int2 offset)
-{
-	return g_BilateralUpscaleDepth.Load(int3(coord, 0), offset);
-}
-
-float FFX_CACAO_BilateralUpscale_LoadDownscaledDepth(int2 coord, int index)
-{
-	return g_BilateralUpscaleDownscaledDepth.Load(int4(coord, index, 0));
-}
-
-#endif
diff --git a/src/ffx-cacao/src/ffx_cacao_defines.h b/src/ffx-cacao/src/ffx_cacao_defines.h
deleted file mode 100644
index ff825e081cc9d1dfa0858df727ebeca1e423b189..0000000000000000000000000000000000000000
--- a/src/ffx-cacao/src/ffx_cacao_defines.h
+++ /dev/null
@@ -1,83 +0,0 @@
-// Modifications Copyright � 2021. Advanced Micro Devices, Inc. All Rights Reserved.
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2016, Intel Corporation
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
-// documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to the following conditions:
-// The above copyright notice and this permission notice shall be included in all copies or substantial portions of 
-// the Software.
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 
-// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
-// SOFTWARE.
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// File changes (yyyy-mm-dd)
-// 2016-09-07: filip.strugar@intel.com: first commit
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-// Defines for constants common to both CACAO.cpp and CACAO.hlsl
-
-#ifndef FFX_CACAO_DEFINES_H
-#define FFX_CACAO_DEFINES_H
-
-// ============================================================================
-// Prepare
-
-#define FFX_CACAO_PREPARE_DEPTHS_AND_MIPS_WIDTH  8
-#define FFX_CACAO_PREPARE_DEPTHS_AND_MIPS_HEIGHT 8
-
-#define FFX_CACAO_PREPARE_DEPTHS_WIDTH  8
-#define FFX_CACAO_PREPARE_DEPTHS_HEIGHT 8
-
-#define FFX_CACAO_PREPARE_DEPTHS_HALF_WIDTH  8
-#define FFX_CACAO_PREPARE_DEPTHS_HALF_HEIGHT 8
-
-#define FFX_CACAO_PREPARE_NORMALS_WIDTH  8
-#define FFX_CACAO_PREPARE_NORMALS_HEIGHT 8
-
-#define PREPARE_NORMALS_FROM_INPUT_NORMALS_WIDTH  8
-#define PREPARE_NORMALS_FROM_INPUT_NORMALS_HEIGHT 8
-
-// ============================================================================
-// SSAO Generation
-
-#define FFX_CACAO_GENERATE_SPARSE_WIDTH  4
-#define FFX_CACAO_GENERATE_SPARSE_HEIGHT 16
-
-#define FFX_CACAO_GENERATE_WIDTH  8
-#define FFX_CACAO_GENERATE_HEIGHT 8
-
-// ============================================================================
-// Importance Map
-
-#define IMPORTANCE_MAP_WIDTH  8
-#define IMPORTANCE_MAP_HEIGHT 8
-
-#define IMPORTANCE_MAP_A_WIDTH  8
-#define IMPORTANCE_MAP_A_HEIGHT 8
-
-#define IMPORTANCE_MAP_B_WIDTH  8
-#define IMPORTANCE_MAP_B_HEIGHT 8
-
-// ============================================================================
-// Edge Sensitive Blur
-
-#define FFX_CACAO_BLUR_WIDTH  16
-#define FFX_CACAO_BLUR_HEIGHT 16
-
-// ============================================================================
-// Apply
-
-#define FFX_CACAO_APPLY_WIDTH  8
-#define FFX_CACAO_APPLY_HEIGHT 8
-
-// ============================================================================
-// Bilateral Upscale
-
-#define FFX_CACAO_BILATERAL_UPSCALE_WIDTH  8
-#define FFX_CACAO_BILATERAL_UPSCALE_HEIGHT 8
-
-#endif
diff --git a/src/ffx-cacao/src/ffx_cacao_impl.cpp b/src/ffx-cacao/src/ffx_cacao_impl.cpp
deleted file mode 100644
index fa10a43a250cd6c6de6b43a71e352a58bdb056f6..0000000000000000000000000000000000000000
--- a/src/ffx-cacao/src/ffx_cacao_impl.cpp
+++ /dev/null
@@ -1,2277 +0,0 @@
-// Modifications Copyright � 2021. Advanced Micro Devices, Inc. All Rights Reserved.
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2016, Intel Corporation
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
-// documentation files (the "Software"), to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to the following conditions:
-// The above copyright notice and this permission notice shall be included in all copies or substantial portions of
-// the Software.
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// File changes (yyyy-mm-dd)
-// 2016-09-07: filip.strugar@intel.com: first commit
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-#include "ffx_cacao_impl.h"
-#include "ffx_cacao_defines.h"
-
-#include <assert.h>
-#include <math.h>   // cos, sin
-#include <string.h> // memcpy
-#include <stdio.h>  // snprintf
-
-// Define symbol to enable DirectX debug markers created using Cauldron
-#define FFX_CACAO_ENABLE_VULKAN
-
-#define FFX_CACAO_ASSERT(exp) assert(exp)
-#define FFX_CACAO_ARRAY_SIZE(xs) (sizeof(xs)/sizeof(xs[0]))
-#define FFX_CACAO_COS(x) cosf(x)
-#define FFX_CACAO_SIN(x) sinf(x)
-#define FFX_CACAO_MIN(x, y) (((x) < (y)) ? (x) : (y))
-#define FFX_CACAO_MAX(x, y) (((x) > (y)) ? (x) : (y))
-#define FFX_CACAO_CLAMP(value, lower, upper) FFX_CACAO_MIN(FFX_CACAO_MAX(value, lower), upper)
-#define FFX_CACAO_OFFSET_OF(T, member) (size_t)(&(((T*)0)->member))
-
-#ifdef FFX_CACAO_ENABLE_VULKAN
-// 16 bit versions
-#include "PrecompiledShadersSPIRV/CACAOClearLoadCounter_16.h"
-
-#include "PrecompiledShadersSPIRV/CACAOPrepareDownsampledDepthsHalf_16.h"
-#include "PrecompiledShadersSPIRV/CACAOPrepareNativeDepthsHalf_16.h"
-
-#include "PrecompiledShadersSPIRV/CACAOPrepareDownsampledDepthsAndMips_16.h"
-#include "PrecompiledShadersSPIRV/CACAOPrepareNativeDepthsAndMips_16.h"
-
-#include "PrecompiledShadersSPIRV/CACAOPrepareDownsampledNormals_16.h"
-#include "PrecompiledShadersSPIRV/CACAOPrepareNativeNormals_16.h"
-
-#include "PrecompiledShadersSPIRV/CACAOPrepareDownsampledNormalsFromInputNormals_16.h"
-#include "PrecompiledShadersSPIRV/CACAOPrepareNativeNormalsFromInputNormals_16.h"
-
-#include "PrecompiledShadersSPIRV/CACAOPrepareDownsampledDepths_16.h"
-#include "PrecompiledShadersSPIRV/CACAOPrepareNativeDepths_16.h"
-
-#include "PrecompiledShadersSPIRV/CACAOGenerateQ0_16.h"
-#include "PrecompiledShadersSPIRV/CACAOGenerateQ1_16.h"
-#include "PrecompiledShadersSPIRV/CACAOGenerateQ2_16.h"
-#include "PrecompiledShadersSPIRV/CACAOGenerateQ3_16.h"
-#include "PrecompiledShadersSPIRV/CACAOGenerateQ3Base_16.h"
-
-#include "PrecompiledShadersSPIRV/CACAOGenerateImportanceMap_16.h"
-#include "PrecompiledShadersSPIRV/CACAOPostprocessImportanceMapA_16.h"
-#include "PrecompiledShadersSPIRV/CACAOPostprocessImportanceMapB_16.h"
-
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur1_16.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur2_16.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur3_16.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur4_16.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur5_16.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur6_16.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur7_16.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur8_16.h"
-
-#include "PrecompiledShadersSPIRV/CACAOApply_16.h"
-#include "PrecompiledShadersSPIRV/CACAONonSmartApply_16.h"
-#include "PrecompiledShadersSPIRV/CACAONonSmartHalfApply_16.h"
-
-#include "PrecompiledShadersSPIRV/CACAOUpscaleBilateral5x5Smart_16.h"
-#include "PrecompiledShadersSPIRV/CACAOUpscaleBilateral5x5NonSmart_16.h"
-#include "PrecompiledShadersSPIRV/CACAOUpscaleBilateral5x5Half_16.h"
-
-// 32 bit versions
-#include "PrecompiledShadersSPIRV/CACAOClearLoadCounter_32.h"
-
-#include "PrecompiledShadersSPIRV/CACAOPrepareDownsampledDepthsHalf_32.h"
-#include "PrecompiledShadersSPIRV/CACAOPrepareNativeDepthsHalf_32.h"
-
-#include "PrecompiledShadersSPIRV/CACAOPrepareDownsampledDepthsAndMips_32.h"
-#include "PrecompiledShadersSPIRV/CACAOPrepareNativeDepthsAndMips_32.h"
-
-#include "PrecompiledShadersSPIRV/CACAOPrepareDownsampledNormals_32.h"
-#include "PrecompiledShadersSPIRV/CACAOPrepareNativeNormals_32.h"
-
-#include "PrecompiledShadersSPIRV/CACAOPrepareDownsampledNormalsFromInputNormals_32.h"
-#include "PrecompiledShadersSPIRV/CACAOPrepareNativeNormalsFromInputNormals_32.h"
-
-#include "PrecompiledShadersSPIRV/CACAOPrepareDownsampledDepths_32.h"
-#include "PrecompiledShadersSPIRV/CACAOPrepareNativeDepths_32.h"
-
-#include "PrecompiledShadersSPIRV/CACAOGenerateQ0_32.h"
-#include "PrecompiledShadersSPIRV/CACAOGenerateQ1_32.h"
-#include "PrecompiledShadersSPIRV/CACAOGenerateQ2_32.h"
-#include "PrecompiledShadersSPIRV/CACAOGenerateQ3_32.h"
-#include "PrecompiledShadersSPIRV/CACAOGenerateQ3Base_32.h"
-
-#include "PrecompiledShadersSPIRV/CACAOGenerateImportanceMap_32.h"
-#include "PrecompiledShadersSPIRV/CACAOPostprocessImportanceMapA_32.h"
-#include "PrecompiledShadersSPIRV/CACAOPostprocessImportanceMapB_32.h"
-
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur1_32.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur2_32.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur3_32.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur4_32.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur5_32.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur6_32.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur7_32.h"
-#include "PrecompiledShadersSPIRV/CACAOEdgeSensitiveBlur8_32.h"
-
-#include "PrecompiledShadersSPIRV/CACAOApply_32.h"
-#include "PrecompiledShadersSPIRV/CACAONonSmartApply_32.h"
-#include "PrecompiledShadersSPIRV/CACAONonSmartHalfApply_32.h"
-
-#include "PrecompiledShadersSPIRV/CACAOUpscaleBilateral5x5Smart_32.h"
-#include "PrecompiledShadersSPIRV/CACAOUpscaleBilateral5x5NonSmart_32.h"
-#include "PrecompiledShadersSPIRV/CACAOUpscaleBilateral5x5Half_32.h"
-#endif
-
-#define MAX_BLUR_PASSES 8
-
-#define USER_MARKER(name) CAULDRON_DX12::UserMarker __marker(commandList, name)
-#else
-#define USER_MARKER(name)
-#endif
-
-inline static uint32_t dispatchSize(uint32_t tileSize, uint32_t totalSize)
-{
-	return (totalSize + tileSize - 1) / tileSize;
-}
-
-#ifdef FFX_CACAO_ENABLE_PROFILING
-// TIMESTAMP(name)
-#define TIMESTAMPS \
-	TIMESTAMP(BEGIN) \
-	TIMESTAMP(PREPARE) \
-	TIMESTAMP(BASE_SSAO_PASS) \
-	TIMESTAMP(IMPORTANCE_MAP) \
-	TIMESTAMP(GENERATE_SSAO) \
-	TIMESTAMP(EDGE_SENSITIVE_BLUR) \
-	TIMESTAMP(BILATERAL_UPSAMPLE) \
-	TIMESTAMP(APPLY)
-
-typedef enum TimestampID {
-#define TIMESTAMP(name) TIMESTAMP_##name,
-	TIMESTAMPS
-#undef TIMESTAMP
-	NUM_TIMESTAMPS
-} TimestampID;
-
-static const char *TIMESTAMP_NAMES[NUM_TIMESTAMPS] = {
-#define TIMESTAMP(name) "FFX_CACAO_" #name,
-	TIMESTAMPS
-#undef TIMESTAMP
-};
-
-#define NUM_TIMESTAMP_BUFFERS 5
-#endif
-
-// TIMESTAMP_FORMAT(name, vulkan_format, d3d12_format)
-#define TEXTURE_FORMATS \
-	TEXTURE_FORMAT(R16_SFLOAT,          VK_FORMAT_R16_SFLOAT,          DXGI_FORMAT_R16_FLOAT) \
-	TEXTURE_FORMAT(R16G16B16A16_SFLOAT, VK_FORMAT_R16G16B16A16_SFLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT) \
-	TEXTURE_FORMAT(R8G8B8A8_SNORM,      VK_FORMAT_R8G8B8A8_SNORM,      DXGI_FORMAT_R8G8B8A8_SNORM) \
-	TEXTURE_FORMAT(R8G8_UNORM,          VK_FORMAT_R8G8_UNORM,          DXGI_FORMAT_R8G8_UNORM) \
-	TEXTURE_FORMAT(R8_UNORM,            VK_FORMAT_R8_UNORM,            DXGI_FORMAT_R8_UNORM)
-
-typedef enum TextureFormatID {
-#define TEXTURE_FORMAT(name, _vulkan_format, _d3d12_format) TEXTURE_FORMAT_##name,
-	TEXTURE_FORMATS
-#undef TEXTURE_FORMAT
-} TextureFormatID;
-
-#ifdef FFX_CACAO_ENABLE_VULKAN
-static const VkFormat TEXTURE_FORMAT_LOOKUP_VK[] = {
-#define TEXTURE_FORMAT(_name, vulkan_format, _d3d12_format) vulkan_format,
-	TEXTURE_FORMATS
-#undef TEXTURE_FORMAT
-};
-#endif
-
-// TEXTURE(name, width, height, texture_format, array_size, num_mips)
-#define TEXTURES \
-	TEXTURE(DEINTERLEAVED_DEPTHS,    deinterleavedDepthBufferWidth, deinterleavedDepthBufferHeight, TEXTURE_FORMAT_R16_SFLOAT,          4, 4) \
-	TEXTURE(DEINTERLEAVED_NORMALS,   ssaoBufferWidth,               ssaoBufferHeight,               TEXTURE_FORMAT_R8G8B8A8_SNORM,      4, 1) \
-	TEXTURE(SSAO_BUFFER_PING,        ssaoBufferWidth,               ssaoBufferHeight,               TEXTURE_FORMAT_R8G8_UNORM,          4, 1) \
-	TEXTURE(SSAO_BUFFER_PONG,        ssaoBufferWidth,               ssaoBufferHeight,               TEXTURE_FORMAT_R8G8_UNORM,          4, 1) \
-	TEXTURE(IMPORTANCE_MAP,          importanceMapWidth,            importanceMapHeight,            TEXTURE_FORMAT_R8_UNORM,            1, 1) \
-	TEXTURE(IMPORTANCE_MAP_PONG,     importanceMapWidth,            importanceMapHeight,            TEXTURE_FORMAT_R8_UNORM,            1, 1) \
-	TEXTURE(DOWNSAMPLED_SSAO_BUFFER, downsampledSsaoBufferWidth,    downsampledSsaoBufferHeight,    TEXTURE_FORMAT_R8_UNORM,            1, 1)
-
-typedef enum TextureID {
-#define TEXTURE(name, _width, _height, _format, _array_size, _num_mips) TEXTURE_##name,
-	TEXTURES
-#undef TEXTURE
-	NUM_TEXTURES
-} TextureID;
-
-typedef struct TextureMetaData {
-	size_t widthOffset;
-	size_t heightOffset;
-	TextureFormatID format;
-	uint32_t arraySize;
-	uint32_t numMips;
-	const char *name;
-} TextureMetaData;
-
-static const TextureMetaData TEXTURE_META_DATA[NUM_TEXTURES] = {
-#define TEXTURE(name, width, height, format, array_size, num_mips) { FFX_CACAO_OFFSET_OF(FFX_CACAO_BufferSizeInfo, width), FFX_CACAO_OFFSET_OF(FFX_CACAO_BufferSizeInfo, height), format, array_size, num_mips, "FFX_CACAO_" #name },
-	TEXTURES
-#undef TEXTURE
-};
-
-// DESCRIPTOR_SET_LAYOUT(name, num_inputs, num_outputs)
-#define DESCRIPTOR_SET_LAYOUTS \
-	DESCRIPTOR_SET_LAYOUT(CLEAR_LOAD_COUNTER,                 0, 1) \
-	DESCRIPTOR_SET_LAYOUT(PREPARE_DEPTHS,                     1, 1) \
-	DESCRIPTOR_SET_LAYOUT(PREPARE_DEPTHS_MIPS,                1, 4) \
-	DESCRIPTOR_SET_LAYOUT(PREPARE_POINTS,                     1, 1) \
-	DESCRIPTOR_SET_LAYOUT(PREPARE_POINTS_MIPS,                1, 4) \
-	DESCRIPTOR_SET_LAYOUT(PREPARE_NORMALS,                    1, 1) \
-	DESCRIPTOR_SET_LAYOUT(PREPARE_NORMALS_FROM_INPUT_NORMALS, 1, 1) \
-	DESCRIPTOR_SET_LAYOUT(GENERATE,                           2, 1) \
-	DESCRIPTOR_SET_LAYOUT(GENERATE_ADAPTIVE,                  5, 1) \
-	DESCRIPTOR_SET_LAYOUT(GENERATE_IMPORTANCE_MAP,            1, 1) \
-	DESCRIPTOR_SET_LAYOUT(POSTPROCESS_IMPORTANCE_MAP_A,       1, 1) \
-	DESCRIPTOR_SET_LAYOUT(POSTPROCESS_IMPORTANCE_MAP_B,       1, 2) \
-	DESCRIPTOR_SET_LAYOUT(EDGE_SENSITIVE_BLUR,                1, 1) \
-	DESCRIPTOR_SET_LAYOUT(APPLY,                              1, 1) \
-	DESCRIPTOR_SET_LAYOUT(BILATERAL_UPSAMPLE,                 4, 1)
-
-typedef enum DescriptorSetLayoutID {
-#define DESCRIPTOR_SET_LAYOUT(name, _num_inputs, _num_outputs) DSL_##name,
-	DESCRIPTOR_SET_LAYOUTS
-#undef DESCRIPTOR_SET_LAYOUT
-	NUM_DESCRIPTOR_SET_LAYOUTS
-} DescriptorSetLayoutID;
-
-typedef struct DescriptorSetLayoutMetaData {
-	uint32_t    numInputs;
-	uint32_t    numOutputs;
-	const char *name;
-} DescriptorSetLayoutMetaData;
-
-static const DescriptorSetLayoutMetaData DESCRIPTOR_SET_LAYOUT_META_DATA[NUM_DESCRIPTOR_SET_LAYOUTS] = {
-#define DESCRIPTOR_SET_LAYOUT(name, num_inputs, num_outputs) { num_inputs, num_outputs, "FFX_CACAO_DSL_" #name },
-	DESCRIPTOR_SET_LAYOUTS
-#undef DESCRIPTOR_SET_LAYOUT
-};
-
-// DESCRIPTOR_SET(name, layout_name, pass)
-#define DESCRIPTOR_SETS \
-	DESCRIPTOR_SET(CLEAR_LOAD_COUNTER,                 CLEAR_LOAD_COUNTER,                 0) \
-	DESCRIPTOR_SET(PREPARE_DEPTHS,                     PREPARE_DEPTHS,                     0) \
-	DESCRIPTOR_SET(PREPARE_DEPTHS_MIPS,                PREPARE_DEPTHS_MIPS,                0) \
-	DESCRIPTOR_SET(PREPARE_POINTS,                     PREPARE_POINTS,                     0) \
-	DESCRIPTOR_SET(PREPARE_POINTS_MIPS,                PREPARE_POINTS_MIPS,                0) \
-	DESCRIPTOR_SET(PREPARE_NORMALS,                    PREPARE_NORMALS,                    0) \
-	DESCRIPTOR_SET(PREPARE_NORMALS_FROM_INPUT_NORMALS, PREPARE_NORMALS_FROM_INPUT_NORMALS, 0) \
-	DESCRIPTOR_SET(GENERATE_ADAPTIVE_BASE_0,           GENERATE,                           0) \
-	DESCRIPTOR_SET(GENERATE_ADAPTIVE_BASE_1,           GENERATE,                           1) \
-	DESCRIPTOR_SET(GENERATE_ADAPTIVE_BASE_2,           GENERATE,                           2) \
-	DESCRIPTOR_SET(GENERATE_ADAPTIVE_BASE_3,           GENERATE,                           3) \
-	DESCRIPTOR_SET(GENERATE_0,                         GENERATE,                           0) \
-	DESCRIPTOR_SET(GENERATE_1,                         GENERATE,                           1) \
-	DESCRIPTOR_SET(GENERATE_2,                         GENERATE,                           2) \
-	DESCRIPTOR_SET(GENERATE_3,                         GENERATE,                           3) \
-	DESCRIPTOR_SET(GENERATE_ADAPTIVE_0,                GENERATE_ADAPTIVE,                  0) \
-	DESCRIPTOR_SET(GENERATE_ADAPTIVE_1,                GENERATE_ADAPTIVE,                  1) \
-	DESCRIPTOR_SET(GENERATE_ADAPTIVE_2,                GENERATE_ADAPTIVE,                  2) \
-	DESCRIPTOR_SET(GENERATE_ADAPTIVE_3,                GENERATE_ADAPTIVE,                  3) \
-	DESCRIPTOR_SET(GENERATE_IMPORTANCE_MAP,            GENERATE_IMPORTANCE_MAP,            0) \
-	DESCRIPTOR_SET(POSTPROCESS_IMPORTANCE_MAP_A,       POSTPROCESS_IMPORTANCE_MAP_A,       0) \
-	DESCRIPTOR_SET(POSTPROCESS_IMPORTANCE_MAP_B,       POSTPROCESS_IMPORTANCE_MAP_B,       0) \
-	DESCRIPTOR_SET(EDGE_SENSITIVE_BLUR_0,              EDGE_SENSITIVE_BLUR,                0) \
-	DESCRIPTOR_SET(EDGE_SENSITIVE_BLUR_1,              EDGE_SENSITIVE_BLUR,                1) \
-	DESCRIPTOR_SET(EDGE_SENSITIVE_BLUR_2,              EDGE_SENSITIVE_BLUR,                2) \
-	DESCRIPTOR_SET(EDGE_SENSITIVE_BLUR_3,              EDGE_SENSITIVE_BLUR,                3) \
-	DESCRIPTOR_SET(APPLY_PING,                         APPLY,                              0) \
-	DESCRIPTOR_SET(APPLY_PONG,                         APPLY,                              0) \
-	DESCRIPTOR_SET(BILATERAL_UPSAMPLE_PING,            BILATERAL_UPSAMPLE,                 0) \
-	DESCRIPTOR_SET(BILATERAL_UPSAMPLE_PONG,            BILATERAL_UPSAMPLE,                 0)
-
-typedef enum DescriptorSetID {
-#define DESCRIPTOR_SET(name, _layout_name, _pass) DS_##name,
-	DESCRIPTOR_SETS
-#undef DESCRIPTOR_SET
-	NUM_DESCRIPTOR_SETS
-} DescriptorSetID;
-
-typedef struct DescriptorSetMetaData {
-	DescriptorSetLayoutID descriptorSetLayoutID;
-	uint32_t pass;
-	const char *name;
-} DescriptorSetMetaData;
-
-static const DescriptorSetMetaData DESCRIPTOR_SET_META_DATA[NUM_DESCRIPTOR_SETS] = {
-#define DESCRIPTOR_SET(name, layout_name, pass) { DSL_##layout_name, pass, "FFX_CACAO_DS_" #name },
-	DESCRIPTOR_SETS
-#undef DESCRIPTOR_SET
-};
-
-// VIEW_TYPE(name, vulkan_view_type, d3d12_view_type_srv)
-#define VIEW_TYPES \
-	VIEW_TYPE(2D,       VK_IMAGE_VIEW_TYPE_2D,       D3D12_SRV_DIMENSION_TEXTURE2D,      D3D12_UAV_DIMENSION_TEXTURE2D) \
-	VIEW_TYPE(2D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY, D3D12_SRV_DIMENSION_TEXTURE2DARRAY, D3D12_UAV_DIMENSION_TEXTURE2DARRAY)
-
-typedef enum ViewTypeID {
-#define VIEW_TYPE(name, _vulkan_view_type, _d3d12_view_type_srv, _d3d12_view_type_uav) VIEW_TYPE_##name,
-	VIEW_TYPES
-#undef VIEW_TYPE
-} ViewTypeID;
-
-#ifdef FFX_CACAO_ENABLE_VULKAN
-static const VkImageViewType VIEW_TYPE_LOOKUP_VK[] = {
-#define VIEW_TYPE(_name, vulkan_view_type, _d3d12_view_type_srv, _d3d12_view_type_uav) vulkan_view_type,
-	VIEW_TYPES
-#undef VIEW_TYPE
-};
-#endif
-
-// SHADER_RESOURCE_VIEW(name, texture, view_dimension, most_detailed_mip, mip_levels, first_array_slice, array_size)
-#define SHADER_RESOURCE_VIEWS \
-	SHADER_RESOURCE_VIEW(DEINTERLEAVED_DEPTHS,    DEINTERLEAVED_DEPTHS,  VIEW_TYPE_2D_ARRAY, 0, 4, 0, 4) \
-	SHADER_RESOURCE_VIEW(DEINTERLEAVED_DEPTHS_0,  DEINTERLEAVED_DEPTHS,  VIEW_TYPE_2D_ARRAY, 0, 4, 0, 1) \
-	SHADER_RESOURCE_VIEW(DEINTERLEAVED_DEPTHS_1,  DEINTERLEAVED_DEPTHS,  VIEW_TYPE_2D_ARRAY, 0, 4, 1, 1) \
-	SHADER_RESOURCE_VIEW(DEINTERLEAVED_DEPTHS_2,  DEINTERLEAVED_DEPTHS,  VIEW_TYPE_2D_ARRAY, 0, 4, 2, 1) \
-	SHADER_RESOURCE_VIEW(DEINTERLEAVED_DEPTHS_3,  DEINTERLEAVED_DEPTHS,  VIEW_TYPE_2D_ARRAY, 0, 4, 3, 1) \
-	SHADER_RESOURCE_VIEW(DEINTERLEAVED_NORMALS,   DEINTERLEAVED_NORMALS, VIEW_TYPE_2D_ARRAY, 0, 1, 0, 4) \
-	SHADER_RESOURCE_VIEW(IMPORTANCE_MAP,          IMPORTANCE_MAP,        VIEW_TYPE_2D,       0, 1, 0, 1) \
-	SHADER_RESOURCE_VIEW(IMPORTANCE_MAP_PONG,     IMPORTANCE_MAP_PONG,   VIEW_TYPE_2D,       0, 1, 0, 1) \
-	SHADER_RESOURCE_VIEW(SSAO_BUFFER_PING,        SSAO_BUFFER_PING,      VIEW_TYPE_2D_ARRAY, 0, 1, 0, 4) \
-	SHADER_RESOURCE_VIEW(SSAO_BUFFER_PING_0,      SSAO_BUFFER_PING,      VIEW_TYPE_2D_ARRAY, 0, 1, 0, 1) \
-	SHADER_RESOURCE_VIEW(SSAO_BUFFER_PING_1,      SSAO_BUFFER_PING,      VIEW_TYPE_2D_ARRAY, 0, 1, 1, 1) \
-	SHADER_RESOURCE_VIEW(SSAO_BUFFER_PING_2,      SSAO_BUFFER_PING,      VIEW_TYPE_2D_ARRAY, 0, 1, 2, 1) \
-	SHADER_RESOURCE_VIEW(SSAO_BUFFER_PING_3,      SSAO_BUFFER_PING,      VIEW_TYPE_2D_ARRAY, 0, 1, 3, 1) \
-	SHADER_RESOURCE_VIEW(SSAO_BUFFER_PONG,        SSAO_BUFFER_PONG,      VIEW_TYPE_2D_ARRAY, 0, 1, 0, 4) \
-	SHADER_RESOURCE_VIEW(SSAO_BUFFER_PONG_0,      SSAO_BUFFER_PONG,      VIEW_TYPE_2D_ARRAY, 0, 1, 0, 1) \
-	SHADER_RESOURCE_VIEW(SSAO_BUFFER_PONG_1,      SSAO_BUFFER_PONG,      VIEW_TYPE_2D_ARRAY, 0, 1, 1, 1) \
-	SHADER_RESOURCE_VIEW(SSAO_BUFFER_PONG_2,      SSAO_BUFFER_PONG,      VIEW_TYPE_2D_ARRAY, 0, 1, 2, 1) \
-	SHADER_RESOURCE_VIEW(SSAO_BUFFER_PONG_3,      SSAO_BUFFER_PONG,      VIEW_TYPE_2D_ARRAY, 0, 1, 3, 1)
-
-typedef enum ShaderResourceViewID {
-#define SHADER_RESOURCE_VIEW(name, _texture, _view_dimension, _most_detailed_mip, _mip_levels, _first_array_slice, _array_size) SRV_##name,
-	SHADER_RESOURCE_VIEWS
-#undef SHADER_RESOURCE_VIEW
-	NUM_SHADER_RESOURCE_VIEWS
-} ShaderResourceViewID;
-
-typedef struct ShaderResourceViewMetaData {
-	TextureID       texture;
-	ViewTypeID      viewType;
-	uint32_t        mostDetailedMip;
-	uint32_t        mipLevels;
-	uint32_t        firstArraySlice;
-	uint32_t        arraySize;
-} ShaderResourceViewMetaData;
-
-static const ShaderResourceViewMetaData SRV_META_DATA[NUM_SHADER_RESOURCE_VIEWS] = {
-#define SHADER_RESOURCE_VIEW(_name, texture, view_dimension, most_detailed_mip, mip_levels, first_array_slice, array_size) { TEXTURE_##texture, view_dimension, most_detailed_mip, mip_levels, first_array_slice, array_size },
-	SHADER_RESOURCE_VIEWS
-#undef SHADER_RESOURCE_VIEW
-};
-
-// UNORDERED_ACCESS_VIEW(name, texture, view_dimension, mip_slice, first_array_slice, array_size)
-#define UNORDERED_ACCESS_VIEWS \
-	UNORDERED_ACCESS_VIEW(DEINTERLEAVED_DEPTHS_MIP_0, DEINTERLEAVED_DEPTHS,  VIEW_TYPE_2D_ARRAY, 0, 0, 4) \
-	UNORDERED_ACCESS_VIEW(DEINTERLEAVED_DEPTHS_MIP_1, DEINTERLEAVED_DEPTHS,  VIEW_TYPE_2D_ARRAY, 1, 0, 4) \
-	UNORDERED_ACCESS_VIEW(DEINTERLEAVED_DEPTHS_MIP_2, DEINTERLEAVED_DEPTHS,  VIEW_TYPE_2D_ARRAY, 2, 0, 4) \
-	UNORDERED_ACCESS_VIEW(DEINTERLEAVED_DEPTHS_MIP_3, DEINTERLEAVED_DEPTHS,  VIEW_TYPE_2D_ARRAY, 3, 0, 4) \
-	UNORDERED_ACCESS_VIEW(DEINTERLEAVED_NORMALS,      DEINTERLEAVED_NORMALS, VIEW_TYPE_2D_ARRAY, 0, 0, 4) \
-	UNORDERED_ACCESS_VIEW(IMPORTANCE_MAP,             IMPORTANCE_MAP,        VIEW_TYPE_2D,       0, 0, 1) \
-	UNORDERED_ACCESS_VIEW(IMPORTANCE_MAP_PONG,        IMPORTANCE_MAP_PONG,   VIEW_TYPE_2D,       0, 0, 1) \
-	UNORDERED_ACCESS_VIEW(SSAO_BUFFER_PING,           SSAO_BUFFER_PING,      VIEW_TYPE_2D_ARRAY, 0, 0, 4) \
-	UNORDERED_ACCESS_VIEW(SSAO_BUFFER_PING_0,         SSAO_BUFFER_PING,      VIEW_TYPE_2D_ARRAY, 0, 0, 1) \
-	UNORDERED_ACCESS_VIEW(SSAO_BUFFER_PING_1,         SSAO_BUFFER_PING,      VIEW_TYPE_2D_ARRAY, 0, 1, 1) \
-	UNORDERED_ACCESS_VIEW(SSAO_BUFFER_PING_2,         SSAO_BUFFER_PING,      VIEW_TYPE_2D_ARRAY, 0, 2, 1) \
-	UNORDERED_ACCESS_VIEW(SSAO_BUFFER_PING_3,         SSAO_BUFFER_PING,      VIEW_TYPE_2D_ARRAY, 0, 3, 1) \
-	UNORDERED_ACCESS_VIEW(SSAO_BUFFER_PONG,           SSAO_BUFFER_PONG,      VIEW_TYPE_2D_ARRAY, 0, 0, 4) \
-	UNORDERED_ACCESS_VIEW(SSAO_BUFFER_PONG_0,         SSAO_BUFFER_PONG,      VIEW_TYPE_2D_ARRAY, 0, 0, 1) \
-	UNORDERED_ACCESS_VIEW(SSAO_BUFFER_PONG_1,         SSAO_BUFFER_PONG,      VIEW_TYPE_2D_ARRAY, 0, 1, 1) \
-	UNORDERED_ACCESS_VIEW(SSAO_BUFFER_PONG_2,         SSAO_BUFFER_PONG,      VIEW_TYPE_2D_ARRAY, 0, 2, 1) \
-	UNORDERED_ACCESS_VIEW(SSAO_BUFFER_PONG_3,         SSAO_BUFFER_PONG,      VIEW_TYPE_2D_ARRAY, 0, 3, 1)
-
-typedef enum UnorderedAccessViewID {
-#define UNORDERED_ACCESS_VIEW(name, _texture, _view_dimension, _mip_slice, _first_array_slice, _array_size) UAV_##name,
-	UNORDERED_ACCESS_VIEWS
-#undef UNORDERED_ACCESS_VIEW
-	NUM_UNORDERED_ACCESS_VIEWS
-} UnorderedAccessViewID;
-
-typedef struct UnorderedAccessViewMetaData {
-	TextureID   textureID;
-	ViewTypeID  viewType;
-	uint32_t    mostDetailedMip;
-	uint32_t    firstArraySlice;
-	uint32_t    arraySize;
-} UnorderedAccessViewMetaData;
-
-static const UnorderedAccessViewMetaData UAV_META_DATA[NUM_UNORDERED_ACCESS_VIEWS] = {
-#define UNORDERED_ACCESS_VIEW(_name, texture, view_dimension, mip_slice, first_array_slice, array_size) { TEXTURE_##texture, view_dimension, mip_slice, first_array_slice, array_size },
-	UNORDERED_ACCESS_VIEWS
-#undef UNORDERED_ACCESS_VIEW
-};
-
-// INPUT_DESCRIPTOR(descriptor_set_name, srv_name, binding_num)
-#define INPUT_DESCRIPTOR_BINDINGS \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_BASE_0,     DEINTERLEAVED_DEPTHS_0, 0) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_BASE_0,     DEINTERLEAVED_NORMALS,  1) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_BASE_1,     DEINTERLEAVED_DEPTHS_1, 0) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_BASE_1,     DEINTERLEAVED_NORMALS,  1) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_BASE_2,     DEINTERLEAVED_DEPTHS_2, 0) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_BASE_2,     DEINTERLEAVED_NORMALS,  1) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_BASE_3,     DEINTERLEAVED_DEPTHS_3, 0) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_BASE_3,     DEINTERLEAVED_NORMALS,  1) \
-	\
-	INPUT_DESCRIPTOR_BINDING(GENERATE_0,  DEINTERLEAVED_DEPTHS_0, 0) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_0,  DEINTERLEAVED_NORMALS,  1) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_1,  DEINTERLEAVED_DEPTHS_1, 0) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_1,  DEINTERLEAVED_NORMALS,  1) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_2,  DEINTERLEAVED_DEPTHS_2, 0) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_2,  DEINTERLEAVED_NORMALS,  1) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_3,  DEINTERLEAVED_DEPTHS_3, 0) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_3,  DEINTERLEAVED_NORMALS,  1) \
-	\
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_0,  DEINTERLEAVED_DEPTHS_0, 0) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_0,  DEINTERLEAVED_NORMALS,  1) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_0,  IMPORTANCE_MAP,         3) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_0,  SSAO_BUFFER_PONG_0,     4) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_1,  DEINTERLEAVED_DEPTHS_1, 0) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_1,  DEINTERLEAVED_NORMALS,  1) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_1,  IMPORTANCE_MAP,         3) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_1,  SSAO_BUFFER_PONG_1,     4) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_2,  DEINTERLEAVED_DEPTHS_2, 0) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_2,  DEINTERLEAVED_NORMALS,  1) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_2,  IMPORTANCE_MAP,         3) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_2,  SSAO_BUFFER_PONG_2,     4) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_3,  DEINTERLEAVED_DEPTHS_3, 0) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_3,  DEINTERLEAVED_NORMALS,  1) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_3,  IMPORTANCE_MAP,         3) \
-	INPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_3,  SSAO_BUFFER_PONG_3,     4) \
-	\
-	INPUT_DESCRIPTOR_BINDING(GENERATE_IMPORTANCE_MAP,      SSAO_BUFFER_PONG,       0) \
-	INPUT_DESCRIPTOR_BINDING(POSTPROCESS_IMPORTANCE_MAP_A, IMPORTANCE_MAP,         0) \
-	INPUT_DESCRIPTOR_BINDING(POSTPROCESS_IMPORTANCE_MAP_B, IMPORTANCE_MAP_PONG,    0) \
-	\
-	INPUT_DESCRIPTOR_BINDING(EDGE_SENSITIVE_BLUR_0, SSAO_BUFFER_PING_0, 0) \
-	INPUT_DESCRIPTOR_BINDING(EDGE_SENSITIVE_BLUR_1, SSAO_BUFFER_PING_1, 0) \
-	INPUT_DESCRIPTOR_BINDING(EDGE_SENSITIVE_BLUR_2, SSAO_BUFFER_PING_2, 0) \
-	INPUT_DESCRIPTOR_BINDING(EDGE_SENSITIVE_BLUR_3, SSAO_BUFFER_PING_3, 0) \
-	\
-	INPUT_DESCRIPTOR_BINDING(BILATERAL_UPSAMPLE_PING, SSAO_BUFFER_PING,     0) \
-	INPUT_DESCRIPTOR_BINDING(BILATERAL_UPSAMPLE_PING, DEINTERLEAVED_DEPTHS, 2) \
-	INPUT_DESCRIPTOR_BINDING(BILATERAL_UPSAMPLE_PONG, SSAO_BUFFER_PONG,     0) \
-	INPUT_DESCRIPTOR_BINDING(BILATERAL_UPSAMPLE_PONG, DEINTERLEAVED_DEPTHS, 2) \
-	\
-	INPUT_DESCRIPTOR_BINDING(APPLY_PING, SSAO_BUFFER_PING, 0) \
-	INPUT_DESCRIPTOR_BINDING(APPLY_PONG, SSAO_BUFFER_PONG, 0)
-
-// need this to define NUM_INPUT_DESCRIPTOR_BINDINGS
-typedef enum InputDescriptorBindingID {
-#define INPUT_DESCRIPTOR_BINDING(descriptor_set_name, srv_name, _binding_num) INPUT_DESCRIPTOR_BINDING_##descriptor_set_name##_##srv_name,
-	INPUT_DESCRIPTOR_BINDINGS
-#undef INPUT_DESCRIPTOR_BINDING
-	NUM_INPUT_DESCRIPTOR_BINDINGS
-} InputDescriptorBindingID;
-
-typedef struct InputDescriptorBindingMetaData {
-	DescriptorSetID      descriptorID;
-	ShaderResourceViewID srvID;
-	uint32_t             bindingNumber;
-} InputDescriptorBindingMetaData;
-
-static const InputDescriptorBindingMetaData INPUT_DESCRIPTOR_BINDING_META_DATA[NUM_INPUT_DESCRIPTOR_BINDINGS] = {
-#define INPUT_DESCRIPTOR_BINDING(descriptor_set_name, srv_name, binding_num) { DS_##descriptor_set_name, SRV_##srv_name, binding_num },
-	INPUT_DESCRIPTOR_BINDINGS
-#undef INPUT_DESCRIPTOR_BINDING
-};
-
-// OUTPUT_DESCRIPTOR(descriptor_set_name, uav_name, binding_num)
-#define OUTPUT_DESCRIPTOR_BINDINGS \
-	OUTPUT_DESCRIPTOR_BINDING(PREPARE_DEPTHS,                     DEINTERLEAVED_DEPTHS_MIP_0, 0) \
-	OUTPUT_DESCRIPTOR_BINDING(PREPARE_DEPTHS_MIPS,                DEINTERLEAVED_DEPTHS_MIP_0, 0) \
-	OUTPUT_DESCRIPTOR_BINDING(PREPARE_DEPTHS_MIPS,                DEINTERLEAVED_DEPTHS_MIP_1, 1) \
-	OUTPUT_DESCRIPTOR_BINDING(PREPARE_DEPTHS_MIPS,                DEINTERLEAVED_DEPTHS_MIP_2, 2) \
-	OUTPUT_DESCRIPTOR_BINDING(PREPARE_DEPTHS_MIPS,                DEINTERLEAVED_DEPTHS_MIP_3, 3) \
-	OUTPUT_DESCRIPTOR_BINDING(PREPARE_NORMALS,                    DEINTERLEAVED_NORMALS,      0) \
-	OUTPUT_DESCRIPTOR_BINDING(PREPARE_NORMALS_FROM_INPUT_NORMALS, DEINTERLEAVED_NORMALS,      0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_BASE_0,           SSAO_BUFFER_PONG_0,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_BASE_1,           SSAO_BUFFER_PONG_1,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_BASE_2,           SSAO_BUFFER_PONG_2,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_BASE_3,           SSAO_BUFFER_PONG_3,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_0,                         SSAO_BUFFER_PING_0,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_1,                         SSAO_BUFFER_PING_1,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_2,                         SSAO_BUFFER_PING_2,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_3,                         SSAO_BUFFER_PING_3,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_0,                SSAO_BUFFER_PING_0,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_1,                SSAO_BUFFER_PING_1,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_2,                SSAO_BUFFER_PING_2,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_ADAPTIVE_3,                SSAO_BUFFER_PING_3,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(GENERATE_IMPORTANCE_MAP,            IMPORTANCE_MAP,             0) \
-	OUTPUT_DESCRIPTOR_BINDING(POSTPROCESS_IMPORTANCE_MAP_A,       IMPORTANCE_MAP_PONG,        0) \
-	OUTPUT_DESCRIPTOR_BINDING(POSTPROCESS_IMPORTANCE_MAP_B,       IMPORTANCE_MAP,             0) \
-	OUTPUT_DESCRIPTOR_BINDING(EDGE_SENSITIVE_BLUR_0,              SSAO_BUFFER_PONG_0,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(EDGE_SENSITIVE_BLUR_1,              SSAO_BUFFER_PONG_1,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(EDGE_SENSITIVE_BLUR_2,              SSAO_BUFFER_PONG_2,         0) \
-	OUTPUT_DESCRIPTOR_BINDING(EDGE_SENSITIVE_BLUR_3,              SSAO_BUFFER_PONG_3,         0)
-
-typedef enum OutputDescriptorBindingID {
-#define OUTPUT_DESCRIPTOR_BINDING(descriptor_set_name, uav_name, _binding_num) OUTPUT_DESCRIPTOR_BINDING_##descriptor_set_name##_##uav_name,
-	OUTPUT_DESCRIPTOR_BINDINGS
-#undef OUTPUT_DESCRIPTOR_BINDING
-	NUM_OUTPUT_DESCRIPTOR_BINDINGS
-} OutputDescriptorBindingID;
-
-typedef struct OutputDescriptorBindingMetaData {
-	DescriptorSetID      descriptorID;
-	UnorderedAccessViewID uavID;
-	uint32_t              bindingNumber;
-} OutputDescriptorBindingMetaData;
-
-static const OutputDescriptorBindingMetaData OUTPUT_DESCRIPTOR_BINDING_META_DATA[NUM_OUTPUT_DESCRIPTOR_BINDINGS] = {
-#define OUTPUT_DESCRIPTOR_BINDING(descriptor_set_name, uav_name, binding_num) { DS_##descriptor_set_name, UAV_##uav_name, binding_num },
-	OUTPUT_DESCRIPTOR_BINDINGS
-#undef OUTPUT_DESCRIPTOR_BINDING
-};
-
-// define all the data for compute shaders
-// COMPUTE_SHADER(enum_name, pascal_case_name, descriptor_set)
-#define COMPUTE_SHADERS \
-	COMPUTE_SHADER(CLEAR_LOAD_COUNTER,                             ClearLoadCounter,                          CLEAR_LOAD_COUNTER) \
-	\
-	COMPUTE_SHADER(PREPARE_DOWNSAMPLED_DEPTHS,                     PrepareDownsampledDepths,                  PREPARE_DEPTHS) \
-	COMPUTE_SHADER(PREPARE_NATIVE_DEPTHS,                          PrepareNativeDepths,                       PREPARE_DEPTHS) \
-	COMPUTE_SHADER(PREPARE_DOWNSAMPLED_DEPTHS_AND_MIPS,            PrepareDownsampledDepthsAndMips,           PREPARE_DEPTHS_MIPS) \
-	COMPUTE_SHADER(PREPARE_NATIVE_DEPTHS_AND_MIPS,                 PrepareNativeDepthsAndMips,                PREPARE_DEPTHS_MIPS) \
-	COMPUTE_SHADER(PREPARE_DOWNSAMPLED_NORMALS,                    PrepareDownsampledNormals,                 PREPARE_NORMALS) \
-	COMPUTE_SHADER(PREPARE_NATIVE_NORMALS,                         PrepareNativeNormals,                      PREPARE_NORMALS) \
-	COMPUTE_SHADER(PREPARE_DOWNSAMPLED_NORMALS_FROM_INPUT_NORMALS, PrepareDownsampledNormalsFromInputNormals, PREPARE_NORMALS_FROM_INPUT_NORMALS) \
-	COMPUTE_SHADER(PREPARE_NATIVE_NORMALS_FROM_INPUT_NORMALS,      PrepareNativeNormalsFromInputNormals,      PREPARE_NORMALS_FROM_INPUT_NORMALS) \
-	COMPUTE_SHADER(PREPARE_DOWNSAMPLED_DEPTHS_HALF,                PrepareDownsampledDepthsHalf,              PREPARE_DEPTHS) \
-	COMPUTE_SHADER(PREPARE_NATIVE_DEPTHS_HALF,                     PrepareNativeDepthsHalf,                   PREPARE_DEPTHS) \
-	\
-	COMPUTE_SHADER(GENERATE_Q0,                                    GenerateQ0,                                GENERATE) \
-	COMPUTE_SHADER(GENERATE_Q1,                                    GenerateQ1,                                GENERATE) \
-	COMPUTE_SHADER(GENERATE_Q2,                                    GenerateQ2,                                GENERATE) \
-	COMPUTE_SHADER(GENERATE_Q3,                                    GenerateQ3,                                GENERATE_ADAPTIVE) \
-	COMPUTE_SHADER(GENERATE_Q3_BASE,                               GenerateQ3Base,                            GENERATE) \
-	\
-	COMPUTE_SHADER(GENERATE_IMPORTANCE_MAP,                        GenerateImportanceMap,                     GENERATE_IMPORTANCE_MAP) \
-	COMPUTE_SHADER(POSTPROCESS_IMPORTANCE_MAP_A,                   PostprocessImportanceMapA,                 POSTPROCESS_IMPORTANCE_MAP_A) \
-	COMPUTE_SHADER(POSTPROCESS_IMPORTANCE_MAP_B,                   PostprocessImportanceMapB,                 POSTPROCESS_IMPORTANCE_MAP_B) \
-	\
-	COMPUTE_SHADER(EDGE_SENSITIVE_BLUR_1,                          EdgeSensitiveBlur1,                        EDGE_SENSITIVE_BLUR) \
-	COMPUTE_SHADER(EDGE_SENSITIVE_BLUR_2,                          EdgeSensitiveBlur2,                        EDGE_SENSITIVE_BLUR) \
-	COMPUTE_SHADER(EDGE_SENSITIVE_BLUR_3,                          EdgeSensitiveBlur3,                        EDGE_SENSITIVE_BLUR) \
-	COMPUTE_SHADER(EDGE_SENSITIVE_BLUR_4,                          EdgeSensitiveBlur4,                        EDGE_SENSITIVE_BLUR) \
-	COMPUTE_SHADER(EDGE_SENSITIVE_BLUR_5,                          EdgeSensitiveBlur5,                        EDGE_SENSITIVE_BLUR) \
-	COMPUTE_SHADER(EDGE_SENSITIVE_BLUR_6,                          EdgeSensitiveBlur6,                        EDGE_SENSITIVE_BLUR) \
-	COMPUTE_SHADER(EDGE_SENSITIVE_BLUR_7,                          EdgeSensitiveBlur7,                        EDGE_SENSITIVE_BLUR) \
-	COMPUTE_SHADER(EDGE_SENSITIVE_BLUR_8,                          EdgeSensitiveBlur8,                        EDGE_SENSITIVE_BLUR) \
-	\
-	COMPUTE_SHADER(APPLY,                                          Apply,                                     APPLY) \
-	COMPUTE_SHADER(NON_SMART_APPLY,                                NonSmartApply,                             APPLY) \
-	COMPUTE_SHADER(NON_SMART_HALF_APPLY,                           NonSmartHalfApply,                         APPLY) \
-	\
-	COMPUTE_SHADER(UPSCALE_BILATERAL_5X5_SMART,                    UpscaleBilateral5x5Smart,                  BILATERAL_UPSAMPLE) \
-	COMPUTE_SHADER(UPSCALE_BILATERAL_5X5_NON_SMART,                UpscaleBilateral5x5NonSmart,               BILATERAL_UPSAMPLE) \
-	COMPUTE_SHADER(UPSCALE_BILATERAL_5X5_HALF,                     UpscaleBilateral5x5Half,                   BILATERAL_UPSAMPLE)
-
-typedef enum ComputeShaderID {
-#define COMPUTE_SHADER(name, _pascal_name, _descriptor_set) CS_##name,
-	COMPUTE_SHADERS
-#undef COMPUTE_SHADER
-	NUM_COMPUTE_SHADERS
-} ComputeShaderID;
-
-typedef struct ComputeShaderMetaData {
-	const char            *name;
-	DescriptorSetLayoutID  descriptorSetLayoutID;
-	const char            *objectName;
-	const char            *rootSignatureName;
-} ComputeShaderMetaData;
-
-typedef struct ComputeShaderSPIRV {
-	const uint32_t *spirv;
-	size_t          len;
-} ComputeShaderSPIRV;
-
-typedef struct ComputeShaderDXIL {
-	const void *dxil;
-	size_t      len;
-} ComputeShaderDXIL;
-
-#ifdef FFX_CACAO_ENABLE_VULKAN
-static const ComputeShaderSPIRV COMPUTE_SHADER_SPIRV_32[] = {
-#define COMPUTE_SHADER(name, pascal_name, descriptor_set_layout) { (uint32_t*)CS##pascal_name##SPIRV32, FFX_CACAO_ARRAY_SIZE(CS##pascal_name##SPIRV32) },
-	COMPUTE_SHADERS
-#undef COMPUTE_SHADER
-};
-
-static const ComputeShaderSPIRV COMPUTE_SHADER_SPIRV_16[] = {
-#define COMPUTE_SHADER(name, pascal_name, descriptor_set_layout) { (uint32_t*)CS##pascal_name##SPIRV16, FFX_CACAO_ARRAY_SIZE(CS##pascal_name##SPIRV16) },
-	COMPUTE_SHADERS
-#undef COMPUTE_SHADER
-};
-#endif
-
-static const ComputeShaderMetaData COMPUTE_SHADER_META_DATA[] = {
-#define COMPUTE_SHADER(name, pascal_name, descriptor_set_layout) { "FFX_CACAO_"#pascal_name, DSL_##descriptor_set_layout, "FFX_CACAO_CS_"#name, "FFX_CACAO_RS_"#name },
-	COMPUTE_SHADERS
-#undef COMPUTE_SHADER
-};
-
-#ifdef FFX_CACAO_ENABLE_VULKAN
-// =================================================================================================
-// CACAO vulkan implementation
-// =================================================================================================
-
-
-
-#define MAX_DESCRIPTOR_BINDINGS 32
-
-
-
-#define NUM_BACK_BUFFERS 3
-#define NUM_SAMPLERS 5
-typedef struct FFX_CACAO_VkContext {
-	FFX_CACAO_Settings   settings;
-	FFX_CACAO_Bool       useDownsampledSsao;
-	FFX_CACAO_BufferSizeInfo     bufferSizeInfo;
-
-#ifdef FFX_CACAO_ENABLE_PROFILING
-	VkQueryPool timestampQueryPool;
-	uint32_t collectBuffer;
-	struct {
-		TimestampID timestamps[NUM_TIMESTAMPS];
-		uint64_t    timings[NUM_TIMESTAMPS];
-		uint32_t    numTimestamps;
-	} timestampQueries[NUM_BACK_BUFFERS];
-#endif
-
-	VkPhysicalDevice                 physicalDevice;
-	VkDevice                         device;
-	PFN_vkCmdDebugMarkerBeginEXT     vkCmdDebugMarkerBegin;
-	PFN_vkCmdDebugMarkerEndEXT       vkCmdDebugMarkerEnd;
-	PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectName;
-
-
-	VkDescriptorSetLayout descriptorSetLayouts[NUM_DESCRIPTOR_SET_LAYOUTS];
-	VkPipelineLayout      pipelineLayouts[NUM_DESCRIPTOR_SET_LAYOUTS];
-
-	VkShaderModule        computeShaders[NUM_COMPUTE_SHADERS];
-	VkPipeline            computePipelines[NUM_COMPUTE_SHADERS];
-
-	VkDescriptorSet       descriptorSets[NUM_BACK_BUFFERS][NUM_DESCRIPTOR_SETS];
-	VkDescriptorPool      descriptorPool;
-
-	VkSampler      samplers[NUM_SAMPLERS];
-
-	VkImage        textures[NUM_TEXTURES];
-	VkDeviceMemory textureMemory[NUM_TEXTURES];
-	VkImageView    shaderResourceViews[NUM_SHADER_RESOURCE_VIEWS];
-	VkImageView    unorderedAccessViews[NUM_UNORDERED_ACCESS_VIEWS];
-
-	VkImage        loadCounter;
-	VkDeviceMemory loadCounterMemory;
-	VkImageView    loadCounterView;
-
-	VkImage        output;
-
-	uint32_t       currentConstantBuffer;
-	VkBuffer       constantBuffer[NUM_BACK_BUFFERS][4];
-	VkDeviceMemory constantBufferMemory[NUM_BACK_BUFFERS][4];
-} FFX_CACAO_VkContext;
-
-static inline FFX_CACAO_VkContext* getAlignedVkContextPointer(FFX_CACAO_VkContext* ptr)
-{
-	uintptr_t tmp = (uintptr_t)ptr;
-	tmp = (tmp + alignof(FFX_CACAO_VkContext) - 1) & (~(alignof(FFX_CACAO_VkContext) - 1));
-	return (FFX_CACAO_VkContext*)tmp;
-}
-#endif
-
-// =================================================================================
-// Interface
-// =================================================================================
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#ifdef FFX_CACAO_ENABLE_VULKAN
-inline static void setObjectName(VkDevice device, FFX_CACAO_VkContext* context, VkObjectType type, uint64_t handle, const char* name)
-{
-	if (!context->vkSetDebugUtilsObjectName)
-	{
-		return;
-	}
-
-	VkDebugUtilsObjectNameInfoEXT info = {};
-	info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
-	info.pNext = NULL;
-	info.objectType = type;
-	info.objectHandle = handle;
-	info.pObjectName = name;
-
-	VkResult result = context->vkSetDebugUtilsObjectName(device, &info);
-	FFX_CACAO_ASSERT(result == VK_SUCCESS);
-}
-
-inline static uint32_t getBestMemoryHeapIndex(VkPhysicalDevice physicalDevice,  VkMemoryRequirements memoryRequirements, VkMemoryPropertyFlags desiredProperties)
-{
-	VkPhysicalDeviceMemoryProperties memoryProperties;
-	vkGetPhysicalDeviceMemoryProperties(physicalDevice, &memoryProperties);
-
-	uint32_t chosenMemoryTypeIndex = VK_MAX_MEMORY_TYPES;
-	for (uint32_t i = 0; i < memoryProperties.memoryTypeCount; ++i)
-	{
-		uint32_t typeBit = 1 << i;
-		// can we allocate to memory of this type
-		if (memoryRequirements.memoryTypeBits & typeBit)
-		{
-			VkMemoryType currentMemoryType = memoryProperties.memoryTypes[i];
-			// do we want to allocate to memory of this type
-			if ((currentMemoryType.propertyFlags & desiredProperties) == desiredProperties)
-			{
-				chosenMemoryTypeIndex = i;
-				break;
-			}
-		}
-	}
-	return chosenMemoryTypeIndex;
-}
-
-size_t FFX_CACAO_VkGetContextSize()
-{
-	return sizeof(FFX_CACAO_VkContext) + alignof(FFX_CACAO_VkContext) - 1;
-}
-
-FFX_CACAO_Status FFX_CACAO_VkInitContext(FFX_CACAO_VkContext* context, const FFX_CACAO_VkCreateInfo* info)
-{
-	if (context == NULL)
-	{
-		return FFX_CACAO_STATUS_INVALID_POINTER;
-	}
-	if (info == NULL)
-	{
-		return FFX_CACAO_STATUS_INVALID_POINTER;
-	}
-	context = getAlignedVkContextPointer(context);
-	memset(context, 0, sizeof(*context));
-
-	VkDevice device = info->device;
-	VkPhysicalDevice physicalDevice = info->physicalDevice;
-	VkResult result;
-	FFX_CACAO_Bool use16Bit = info->flags & FFX_CACAO_VK_CREATE_USE_16_BIT ? FFX_CACAO_TRUE : FFX_CACAO_FALSE;
-	FFX_CACAO_Status errorStatus = FFX_CACAO_STATUS_FAILED;
-
-	context->device = device;
-	context->physicalDevice = physicalDevice;
-
-	if (info->flags & FFX_CACAO_VK_CREATE_USE_DEBUG_MARKERS)
-	{
-		context->vkCmdDebugMarkerBegin = (PFN_vkCmdDebugMarkerBeginEXT)vkGetDeviceProcAddr(device, "vkCmdDebugMarkerBeginEXT");
-		context->vkCmdDebugMarkerEnd = (PFN_vkCmdDebugMarkerEndEXT)vkGetDeviceProcAddr(device, "vkCmdDebugMarkerEndEXT");
-	}
-	if (info->flags & FFX_CACAO_VK_CREATE_USE_DEBUG_MARKERS)
-	{
-		context->vkSetDebugUtilsObjectName = (PFN_vkSetDebugUtilsObjectNameEXT)vkGetDeviceProcAddr(device, "vkSetDebugUtilsObjectNameEXT");
-	}
-
-	uint32_t numSamplersInited = 0;
-	uint32_t numDescriptorSetLayoutsInited = 0;
-	uint32_t numPipelineLayoutsInited = 0;
-	uint32_t numShaderModulesInited = 0;
-	uint32_t numPipelinesInited = 0;
-	uint32_t numConstantBackBuffersInited = 0;
-
-	VkSampler samplers[NUM_SAMPLERS];
-	{
-		VkSamplerCreateInfo samplerCreateInfo = {};
-		samplerCreateInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
-		samplerCreateInfo.pNext = NULL;
-		samplerCreateInfo.flags = 0;
-		samplerCreateInfo.magFilter = VK_FILTER_LINEAR;
-		samplerCreateInfo.minFilter = VK_FILTER_LINEAR;
-		samplerCreateInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
-		samplerCreateInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
-		samplerCreateInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
-		samplerCreateInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_REPEAT;
-		samplerCreateInfo.mipLodBias = 0.0f;
-		samplerCreateInfo.anisotropyEnable = VK_FALSE;
-		samplerCreateInfo.compareEnable = VK_FALSE;
-		samplerCreateInfo.minLod = -1000.0f;
-		samplerCreateInfo.maxLod = 1000.0f;
-		samplerCreateInfo.unnormalizedCoordinates = VK_FALSE;
-
-		result = vkCreateSampler(device, &samplerCreateInfo, NULL, &samplers[numSamplersInited]);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_samplers;
-		}
-		setObjectName(device, context, VK_OBJECT_TYPE_SAMPLER, (uint64_t)samplers[numSamplersInited], "FFX_CACAO_POINT_CLAMP_SAMPLER");
-		++numSamplersInited;
-
-		samplerCreateInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT;
-		samplerCreateInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT;
-		samplerCreateInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT;
-
-		result = vkCreateSampler(device, &samplerCreateInfo, NULL, &samplers[numSamplersInited]);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_samplers;
-		}
-		setObjectName(device, context, VK_OBJECT_TYPE_SAMPLER, (uint64_t)samplers[numSamplersInited], "FFX_CACAO_POINT_MIRROR_SAMPLER");
-		++numSamplersInited;
-
-		samplerCreateInfo.magFilter = VK_FILTER_LINEAR;
-		samplerCreateInfo.minFilter = VK_FILTER_LINEAR;
-		samplerCreateInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR;
-		samplerCreateInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
-		samplerCreateInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
-		samplerCreateInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
-
-		result = vkCreateSampler(device, &samplerCreateInfo, NULL, &samplers[numSamplersInited]);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_samplers;
-		}
-		setObjectName(device, context, VK_OBJECT_TYPE_SAMPLER, (uint64_t)samplers[numSamplersInited], "FFX_CACAO_LINEAR_CLAMP_SAMPLER");
-		++numSamplersInited;
-
-		samplerCreateInfo.magFilter = VK_FILTER_NEAREST;
-		samplerCreateInfo.minFilter = VK_FILTER_NEAREST;
-		samplerCreateInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
-
-		result = vkCreateSampler(device, &samplerCreateInfo, NULL, &samplers[numSamplersInited]);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_samplers;
-		}
-		setObjectName(device, context, VK_OBJECT_TYPE_SAMPLER, (uint64_t)samplers[numSamplersInited], "FFX_CACAO_VIEWSPACE_DEPTH_TAP_SAMPLER");
-		++numSamplersInited;
-
-		samplerCreateInfo.magFilter = VK_FILTER_NEAREST;
-		samplerCreateInfo.minFilter = VK_FILTER_NEAREST;
-		samplerCreateInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
-		samplerCreateInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT;
-		samplerCreateInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT;
-		samplerCreateInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT;
-
-		result = vkCreateSampler(device, &samplerCreateInfo, NULL, &samplers[numSamplersInited]);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_samplers;
-		}
-		setObjectName(device, context, VK_OBJECT_TYPE_SAMPLER, (uint64_t)samplers[numSamplersInited], "FFX_CACAO_REAL_POINT_CLAMP_SAMPLER");
-		++numSamplersInited;
-
-		for (uint32_t i = 0; i < FFX_CACAO_ARRAY_SIZE(samplers); ++i)
-		{
-			context->samplers[i] = samplers[i];
-		}
-	}
-
-	// create descriptor set layouts
-	for ( ; numDescriptorSetLayoutsInited < NUM_DESCRIPTOR_SET_LAYOUTS; ++numDescriptorSetLayoutsInited)
-	{
-		VkDescriptorSetLayout descriptorSetLayout;
-		DescriptorSetLayoutMetaData dslMetaData = DESCRIPTOR_SET_LAYOUT_META_DATA[numDescriptorSetLayoutsInited];
-
-		VkDescriptorSetLayoutBinding bindings[MAX_DESCRIPTOR_BINDINGS] = {};
-		uint32_t numBindings = 0;
-		for (uint32_t samplerBinding = 0; samplerBinding < FFX_CACAO_ARRAY_SIZE(samplers); ++samplerBinding)
-		{
-			VkDescriptorSetLayoutBinding binding = {};
-			binding.binding = samplerBinding;
-			binding.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER;
-			binding.descriptorCount = 1;
-			binding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
-			binding.pImmutableSamplers = &samplers[samplerBinding];
-			bindings[numBindings++] = binding;
-		}
-
-		// constant buffer binding
-		{
-			VkDescriptorSetLayoutBinding binding = {};
-			binding.binding = 10;
-			binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-			binding.descriptorCount = 1;
-			binding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
-			binding.pImmutableSamplers = NULL;
-			bindings[numBindings++] = binding;
-		}
-
-		for (uint32_t inputBinding = 0; inputBinding < dslMetaData.numInputs; ++inputBinding)
-		{
-			VkDescriptorSetLayoutBinding binding = {};
-			binding.binding = 20 + inputBinding;
-			binding.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
-			binding.descriptorCount = 1;
-			binding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
-			binding.pImmutableSamplers = NULL;
-			bindings[numBindings++] = binding;
-		}
-
-		for (uint32_t outputBinding = 0; outputBinding < dslMetaData.numOutputs; ++outputBinding)
-		{
-			VkDescriptorSetLayoutBinding binding = {};
-			binding.binding = 30 + outputBinding; // g_PrepareDepthsOut register(u0)
-			binding.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
-			binding.descriptorCount = 1;
-			binding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
-			binding.pImmutableSamplers = NULL;
-			bindings[numBindings++] = binding;
-		}
-
-		VkDescriptorSetLayoutCreateInfo info = {};
-		info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
-		info.pNext = NULL;
-		info.flags = 0;
-		info.bindingCount = numBindings;
-		info.pBindings = bindings;
-
-		result = vkCreateDescriptorSetLayout(device, &info, NULL, &descriptorSetLayout);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_descriptor_set_layouts;
-		}
-		setObjectName(device, context, VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, (uint64_t)descriptorSetLayout, dslMetaData.name);
-
-		context->descriptorSetLayouts[numDescriptorSetLayoutsInited] = descriptorSetLayout;
-	}
-
-	// create pipeline layouts
-	for ( ; numPipelineLayoutsInited < NUM_DESCRIPTOR_SET_LAYOUTS; ++numPipelineLayoutsInited)
-	{
-		VkPipelineLayout pipelineLayout;
-
-		DescriptorSetLayoutMetaData dslMetaData = DESCRIPTOR_SET_LAYOUT_META_DATA[numPipelineLayoutsInited];
-
-		VkPipelineLayoutCreateInfo info = {};
-		info.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
-		info.pNext = NULL;
-		info.flags = 0;
-		info.setLayoutCount = 1;
-		info.pSetLayouts = &context->descriptorSetLayouts[numPipelineLayoutsInited];
-		info.pushConstantRangeCount = 0;
-		info.pPushConstantRanges = NULL;
-
-		result = vkCreatePipelineLayout(device, &info, NULL, &pipelineLayout);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_pipeline_layouts;
-		}
-		setObjectName(device, context, VK_OBJECT_TYPE_PIPELINE_LAYOUT, (uint64_t)pipelineLayout, dslMetaData.name);
-
-		context->pipelineLayouts[numPipelineLayoutsInited] = pipelineLayout;
-	}
-
-	for ( ; numShaderModulesInited < NUM_COMPUTE_SHADERS; ++numShaderModulesInited)
-	{
-		VkShaderModule shaderModule;
-		ComputeShaderMetaData csMetaData = COMPUTE_SHADER_META_DATA[numShaderModulesInited];
-
-		VkShaderModuleCreateInfo info = {};
-		info.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
-		info.pNext = 0;
-		info.flags = 0;
-		ComputeShaderSPIRV spirv = use16Bit ? COMPUTE_SHADER_SPIRV_16[numShaderModulesInited] : COMPUTE_SHADER_SPIRV_32[numShaderModulesInited];
-		info.codeSize = spirv.len;
-		info.pCode = spirv.spirv;
-
-		result = vkCreateShaderModule(device, &info, NULL, &shaderModule);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_shader_modules;
-		}
-		setObjectName(device, context, VK_OBJECT_TYPE_SHADER_MODULE, (uint64_t)shaderModule, csMetaData.objectName);
-
-		context->computeShaders[numShaderModulesInited] = shaderModule;
-	}
-
-	for ( ; numPipelinesInited < NUM_COMPUTE_SHADERS; ++numPipelinesInited)
-	{
-		VkPipeline pipeline;
-		ComputeShaderMetaData csMetaData = COMPUTE_SHADER_META_DATA[numPipelinesInited];
-
-		VkPipelineShaderStageCreateInfo stageInfo = {};
-		stageInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
-		stageInfo.pNext = NULL;
-		stageInfo.flags = 0;
-		stageInfo.stage = VK_SHADER_STAGE_COMPUTE_BIT;
-		stageInfo.module = context->computeShaders[numPipelinesInited];
-		stageInfo.pName = csMetaData.name;
-		stageInfo.pSpecializationInfo = NULL;
-
-		VkComputePipelineCreateInfo info = {};
-		info.sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
-		info.pNext = NULL;
-		info.flags = 0;
-		info.stage = stageInfo;
-		info.layout = context->pipelineLayouts[csMetaData.descriptorSetLayoutID];
-		info.basePipelineHandle = VK_NULL_HANDLE;
-		info.basePipelineIndex = 0;
-
-		result = vkCreateComputePipelines(device, VK_NULL_HANDLE, 1, &info, NULL, &pipeline);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_pipelines;
-		}
-		setObjectName(device, context, VK_OBJECT_TYPE_PIPELINE, (uint64_t)pipeline, csMetaData.objectName);
-
-		context->computePipelines[numPipelinesInited] = pipeline;
-	}
-
-	// create descriptor pool
-	{
-		VkDescriptorPool descriptorPool;
-
-		VkDescriptorPoolSize poolSizes[4] = {};
-		poolSizes[0].type = VK_DESCRIPTOR_TYPE_SAMPLER;
-		poolSizes[0].descriptorCount = NUM_BACK_BUFFERS * NUM_DESCRIPTOR_SETS * 5;
-		poolSizes[1].type = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
-		poolSizes[1].descriptorCount = NUM_BACK_BUFFERS * NUM_DESCRIPTOR_SETS * 7;
-		poolSizes[2].type = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
-		poolSizes[2].descriptorCount = NUM_BACK_BUFFERS * NUM_DESCRIPTOR_SETS * 4;
-		poolSizes[3].type = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-		poolSizes[3].descriptorCount = NUM_BACK_BUFFERS * NUM_DESCRIPTOR_SETS * 1;
-
-		VkDescriptorPoolCreateInfo info = {};
-		info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
-		info.pNext = NULL;
-		info.flags = 0;
-		info.maxSets = NUM_BACK_BUFFERS * NUM_DESCRIPTOR_SETS;
-		info.poolSizeCount = FFX_CACAO_ARRAY_SIZE(poolSizes);
-		info.pPoolSizes = poolSizes;
-
-		result = vkCreateDescriptorPool(device, &info, NULL, &descriptorPool);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_descriptor_pool;
-		}
-		setObjectName(device, context, VK_OBJECT_TYPE_DESCRIPTOR_POOL, (uint64_t)descriptorPool, "FFX_CACAO_DESCRIPTOR_POOL");
-
-		context->descriptorPool = descriptorPool;
-	}
-
-	// allocate descriptor sets
-	{
-		VkDescriptorSetLayout descriptorSetLayouts[NUM_DESCRIPTOR_SETS];
-		for (uint32_t i = 0; i < NUM_DESCRIPTOR_SETS; ++i) {
-			descriptorSetLayouts[i] = context->descriptorSetLayouts[DESCRIPTOR_SET_META_DATA[i].descriptorSetLayoutID];
-		}
-
-		for (uint32_t i = 0; i < NUM_BACK_BUFFERS; ++i) {
-			VkDescriptorSetAllocateInfo info = {};
-			info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
-			info.pNext = NULL;
-			info.descriptorPool = context->descriptorPool;
-			info.descriptorSetCount = FFX_CACAO_ARRAY_SIZE(descriptorSetLayouts); // FFX_CACAO_ARRAY_SIZE(context->descriptorSetLayouts);
-			info.pSetLayouts = descriptorSetLayouts; // context->descriptorSetLayouts;
-
-			result = vkAllocateDescriptorSets(device, &info, context->descriptorSets[i]);
-			if (result != VK_SUCCESS)
-			{
-				goto error_allocate_descriptor_sets;
-			}
-		}
-
-		char name[1024];
-		for (uint32_t j = 0; j < NUM_BACK_BUFFERS; ++j) {
-			for (uint32_t i = 0; i < NUM_DESCRIPTOR_SETS; ++i) {
-				DescriptorSetMetaData dsMetaData = DESCRIPTOR_SET_META_DATA[i];
-				snprintf(name, FFX_CACAO_ARRAY_SIZE(name), "%s_%u", dsMetaData.name, j);
-				setObjectName(device, context, VK_OBJECT_TYPE_DESCRIPTOR_SET, (uint64_t)context->descriptorSets[j][i], name);
-			}
-		}
-	}
-
-	// assign memory to constant buffers
-	for ( ; numConstantBackBuffersInited < NUM_BACK_BUFFERS; ++numConstantBackBuffersInited)
-	{
-		for (uint32_t j = 0; j < 4; ++j)
-		{
-			VkBuffer buffer = context->constantBuffer[numConstantBackBuffersInited][j];
-
-			VkBufferCreateInfo info = {};
-			info.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
-			info.pNext = NULL;
-			info.flags = 0;
-			info.size = sizeof(FFX_CACAO_Constants);
-			info.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
-			info.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
-			info.queueFamilyIndexCount = 0;
-			info.pQueueFamilyIndices = NULL;
-
-			result = vkCreateBuffer(device, &info, NULL, &buffer);
-			if (result != VK_SUCCESS)
-			{
-				goto error_init_constant_buffers;
-			}
-			char name[1024];
-			snprintf(name, FFX_CACAO_ARRAY_SIZE(name), "FFX_CACAO_CONSTANT_BUFFER_PASS_%u_BACK_BUFFER_%u", j, numConstantBackBuffersInited);
-			setObjectName(device, context, VK_OBJECT_TYPE_BUFFER, (uint64_t)buffer, name);
-
-			VkMemoryRequirements memoryRequirements;
-			vkGetBufferMemoryRequirements(device, buffer, &memoryRequirements);
-
-			uint32_t chosenMemoryTypeIndex = getBestMemoryHeapIndex(physicalDevice, memoryRequirements, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT);
-			if (chosenMemoryTypeIndex == VK_MAX_MEMORY_TYPES)
-			{
-				vkDestroyBuffer(device, buffer, NULL);
-				goto error_init_constant_buffers;
-			}
-
-			VkMemoryAllocateInfo allocationInfo = {};
-			allocationInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
-			allocationInfo.pNext = NULL;
-			allocationInfo.allocationSize = memoryRequirements.size;
-			allocationInfo.memoryTypeIndex = chosenMemoryTypeIndex;
-
-			VkDeviceMemory memory;
-			result = vkAllocateMemory(device, &allocationInfo, NULL, &memory);
-			if (result != VK_SUCCESS)
-			{
-				vkDestroyBuffer(device, buffer, NULL);
-				goto error_init_constant_buffers;
-			}
-
-			result = vkBindBufferMemory(device, buffer, memory, 0);
-			if (result != VK_SUCCESS)
-			{
-				vkDestroyBuffer(device, buffer, NULL);
-				goto error_init_constant_buffers;
-			}
-
-			context->constantBufferMemory[numConstantBackBuffersInited][j] = memory;
-			context->constantBuffer[numConstantBackBuffersInited][j] = buffer;
-		}
-	}
-
-	// create load counter VkImage
-	{
-		VkImage image = VK_NULL_HANDLE;
-
-		VkImageCreateInfo info = {};
-		info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
-		info.pNext = NULL;
-		info.flags = 0;
-		info.imageType = VK_IMAGE_TYPE_1D;
-		info.format = VK_FORMAT_R32_UINT;
-		info.extent.width = 1;
-		info.extent.height = 1;
-		info.extent.depth = 1;
-		info.mipLevels = 1;
-		info.arrayLayers = 1;
-		info.samples = VK_SAMPLE_COUNT_1_BIT;
-		info.tiling = VK_IMAGE_TILING_OPTIMAL;
-		info.usage = VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
-		info.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
-		info.queueFamilyIndexCount = 0;
-		info.pQueueFamilyIndices = NULL;
-		info.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
-
-		result = vkCreateImage(device, &info, NULL, &image);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_load_counter_image;
-		}
-
-		setObjectName(device, context, VK_OBJECT_TYPE_IMAGE, (uint64_t)image, "FFX_CACAO_LOAD_COUNTER");
-
-		VkMemoryRequirements memoryRequirements;
-		vkGetImageMemoryRequirements(device, image, &memoryRequirements);
-
-		uint32_t chosenMemoryTypeIndex = getBestMemoryHeapIndex(physicalDevice, memoryRequirements, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
-		if (chosenMemoryTypeIndex == VK_MAX_MEMORY_TYPES)
-		{
-			vkDestroyImage(device, image, NULL);
-			goto error_init_load_counter_image;
-		}
-
-		VkMemoryAllocateInfo allocationInfo = {};
-		allocationInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
-		allocationInfo.pNext = NULL;
-		allocationInfo.allocationSize = memoryRequirements.size;
-		allocationInfo.memoryTypeIndex = chosenMemoryTypeIndex;
-
-		VkDeviceMemory memory;
-		result = vkAllocateMemory(device, &allocationInfo, NULL, &memory);
-		if (result != VK_SUCCESS)
-		{
-			vkDestroyImage(device, image, NULL);
-			goto error_init_load_counter_image;
-		}
-
-		result = vkBindImageMemory(device, image, memory, 0);
-		if (result != VK_SUCCESS)
-		{
-			vkDestroyImage(device, image, NULL);
-			goto error_init_load_counter_image;
-		}
-
-		context->loadCounter = image;
-		context->loadCounterMemory = memory;
-	}
-
-	// create load counter view
-	{
-		VkImageView imageView;
-
-		VkImageViewCreateInfo info = {};
-		info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
-		info.pNext = NULL;
-		info.flags = 0;
-		info.image = context->loadCounter;
-		info.viewType = VK_IMAGE_VIEW_TYPE_1D;
-		info.format = VK_FORMAT_R32_UINT;
-		info.components.r = VK_COMPONENT_SWIZZLE_IDENTITY;
-		info.components.g = VK_COMPONENT_SWIZZLE_IDENTITY;
-		info.components.b = VK_COMPONENT_SWIZZLE_IDENTITY;
-		info.components.a = VK_COMPONENT_SWIZZLE_IDENTITY;
-		info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-		info.subresourceRange.baseMipLevel = 0;
-		info.subresourceRange.levelCount = 1;
-		info.subresourceRange.baseArrayLayer = 0;
-		info.subresourceRange.layerCount = 1;
-
-		result = vkCreateImageView(device, &info, NULL, &imageView);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_load_counter_view;
-		}
-
-		context->loadCounterView = imageView;
-	}
-
-#ifdef FFX_CACAO_ENABLE_PROFILING
-	// create timestamp query pool
-	{
-		VkQueryPool queryPool = VK_NULL_HANDLE;
-
-		VkQueryPoolCreateInfo info = {};
-		info.sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
-		info.pNext = NULL;
-		info.flags = 0;
-		info.queryType = VK_QUERY_TYPE_TIMESTAMP;
-		info.queryCount = NUM_TIMESTAMPS * NUM_BACK_BUFFERS;
-
-		result = vkCreateQueryPool(device, &info, NULL, &queryPool);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_query_pool;
-		}
-
-		context->timestampQueryPool = queryPool;
-	}
-#endif
-
-	return FFX_CACAO_STATUS_OK;
-
-#ifdef FFX_CACAO_ENABLE_PROFILING
-	vkDestroyQueryPool(device, context->timestampQueryPool, NULL);
-error_init_query_pool:
-#endif
-
-	vkDestroyImageView(device, context->loadCounterView, NULL);
-error_init_load_counter_view:
-	vkDestroyImage(device, context->loadCounter, NULL);
-	vkFreeMemory(device, context->loadCounterMemory, NULL);
-error_init_load_counter_image:
-
-error_init_constant_buffers:
-	for (uint32_t i = 0; i < numConstantBackBuffersInited; ++i)
-	{
-		for (uint32_t j = 0; j < 4; ++j)
-		{
-			vkDestroyBuffer(device, context->constantBuffer[i][j], NULL);
-			vkFreeMemory(device, context->constantBufferMemory[i][j], NULL);
-		}
-	}
-	
-error_allocate_descriptor_sets:
-	vkDestroyDescriptorPool(device, context->descriptorPool, NULL);
-error_init_descriptor_pool:
-
-error_init_pipelines:
-	for (uint32_t i = 0; i < numPipelinesInited; ++i)
-	{
-		vkDestroyPipeline(device, context->computePipelines[i], NULL);
-	}
-
-error_init_shader_modules:
-	for (uint32_t i = 0; i < numShaderModulesInited; ++i)
-	{
-		vkDestroyShaderModule(device, context->computeShaders[i], NULL);
-	}
-
-error_init_pipeline_layouts:
-	for (uint32_t i = 0; i < numPipelineLayoutsInited; ++i)
-	{
-		vkDestroyPipelineLayout(device, context->pipelineLayouts[i], NULL);
-	}
-
-error_init_descriptor_set_layouts:
-	for (uint32_t i = 0; i < numDescriptorSetLayoutsInited; ++i)
-	{
-		vkDestroyDescriptorSetLayout(device, context->descriptorSetLayouts[i], NULL);
-	}
-
-
-error_init_samplers:
-	for (uint32_t i = 0; i < numSamplersInited; ++i)
-	{
-		vkDestroySampler(device, context->samplers[i], NULL);
-	}
-
-	return errorStatus;
-}
-
-FFX_CACAO_Status FFX_CACAO_VkDestroyContext(FFX_CACAO_VkContext* context)
-{
-	if (context == NULL)
-	{
-		return FFX_CACAO_STATUS_INVALID_POINTER;
-	}
-	context = getAlignedVkContextPointer(context);
-
-	VkDevice device = context->device;
-
-#ifdef FFX_CACAO_ENABLE_PROFILING
-	vkDestroyQueryPool(device, context->timestampQueryPool, NULL);
-#endif
-
-	vkDestroyImageView(device, context->loadCounterView, NULL);
-	vkDestroyImage(device, context->loadCounter, NULL);
-	vkFreeMemory(device, context->loadCounterMemory, NULL);
-
-	for (uint32_t i = 0; i < NUM_BACK_BUFFERS; ++i)
-	{
-		for (uint32_t j = 0; j < 4; ++j)
-		{
-			vkDestroyBuffer(device, context->constantBuffer[i][j], NULL);
-			vkFreeMemory(device, context->constantBufferMemory[i][j], NULL);
-		}
-	}
-
-	vkDestroyDescriptorPool(device, context->descriptorPool, NULL);
-
-	for (uint32_t i = 0; i < NUM_COMPUTE_SHADERS; ++i)
-	{
-		vkDestroyPipeline(device, context->computePipelines[i], NULL);
-	}
-
-	for (uint32_t i = 0; i < NUM_COMPUTE_SHADERS; ++i)
-	{
-		vkDestroyShaderModule(device, context->computeShaders[i], NULL);
-	}
-
-	for (uint32_t i = 0; i < NUM_DESCRIPTOR_SET_LAYOUTS; ++i)
-	{
-		vkDestroyPipelineLayout(device, context->pipelineLayouts[i], NULL);
-	}
-
-	for(uint32_t i = 0; i < NUM_DESCRIPTOR_SET_LAYOUTS; ++i)
-	{
-		vkDestroyDescriptorSetLayout(device, context->descriptorSetLayouts[i], NULL);
-	}
-
-
-	for (uint32_t i = 0; i < FFX_CACAO_ARRAY_SIZE(context->samplers); ++i)
-	{
-		vkDestroySampler(device, context->samplers[i], NULL);
-	}
-
-	return FFX_CACAO_STATUS_OK;
-}
-
-FFX_CACAO_Status FFX_CACAO_VkInitScreenSizeDependentResources(FFX_CACAO_VkContext* context, const FFX_CACAO_VkScreenSizeInfo* info)
-{
-	if (context == NULL)
-	{
-		return FFX_CACAO_STATUS_INVALID_POINTER;
-	}
-	if (info == NULL)
-	{
-		return FFX_CACAO_STATUS_INVALID_POINTER;
-	}
-	context = getAlignedVkContextPointer(context);
-
-	FFX_CACAO_Bool useDownsampledSsao = info->useDownsampledSsao;
-	context->useDownsampledSsao = useDownsampledSsao;
-	context->output = info->output;
-
-	VkDevice device = context->device;
-	VkPhysicalDevice physicalDevice = context->physicalDevice;
-	VkPhysicalDeviceMemoryProperties memoryProperties;
-	vkGetPhysicalDeviceMemoryProperties(physicalDevice, &memoryProperties);
-	VkResult result;
-
-	FFX_CACAO_BufferSizeInfo *bsi = &context->bufferSizeInfo;
-	FFX_CACAO_UpdateBufferSizeInfo(info->width, info->height, useDownsampledSsao, bsi);
-
-	FFX_CACAO_Status errorStatus = FFX_CACAO_STATUS_FAILED;
-	uint32_t numTextureImagesInited = 0;
-	uint32_t numTextureMemoriesInited = 0;
-	uint32_t numSrvsInited = 0;
-	uint32_t numUavsInited = 0;
-
-	// create images for textures
-	for ( ; numTextureImagesInited < NUM_TEXTURES; ++numTextureImagesInited)
-	{
-		TextureMetaData metaData = TEXTURE_META_DATA[numTextureImagesInited];
-		VkImage image = VK_NULL_HANDLE;
-
-		VkImageCreateInfo info = {};
-		info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
-		info.pNext = NULL;
-		info.flags = 0;
-		info.imageType = VK_IMAGE_TYPE_2D;
-		info.format = TEXTURE_FORMAT_LOOKUP_VK[metaData.format];
-		info.extent.width = *(uint32_t*)((uint8_t*)bsi + metaData.widthOffset);
-		info.extent.height = *(uint32_t*)((uint8_t*)bsi + metaData.heightOffset);
-		info.extent.depth = 1;
-		info.mipLevels = metaData.numMips;
-		info.arrayLayers = metaData.arraySize;
-		info.samples = VK_SAMPLE_COUNT_1_BIT;
-		info.tiling = VK_IMAGE_TILING_OPTIMAL;
-		info.usage = VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
-		info.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
-		info.queueFamilyIndexCount = 0;
-		info.pQueueFamilyIndices = NULL;
-		info.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
-
-		result = vkCreateImage(device, &info, NULL, &image);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_texture_images;
-		}
-
-		setObjectName(device, context, VK_OBJECT_TYPE_IMAGE, (uint64_t)image, metaData.name);
-
-		context->textures[numTextureImagesInited] = image;
-	}
-
-	// allocate memory for textures
-	for ( ; numTextureMemoriesInited < NUM_TEXTURES; ++numTextureMemoriesInited)
-	{
-		VkImage image = context->textures[numTextureMemoriesInited];
-
-		VkMemoryRequirements memoryRequirements;
-		vkGetImageMemoryRequirements(device, image, &memoryRequirements);
-
-		uint32_t chosenMemoryTypeIndex = getBestMemoryHeapIndex(physicalDevice, memoryRequirements, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
-		if (chosenMemoryTypeIndex == VK_MAX_MEMORY_TYPES)
-		{
-			goto error_init_texture_memories;
-		}
-
-		VkMemoryAllocateInfo allocationInfo = {};
-		allocationInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
-		allocationInfo.pNext = NULL;
-		allocationInfo.allocationSize = memoryRequirements.size;
-		allocationInfo.memoryTypeIndex = chosenMemoryTypeIndex;
-
-		VkDeviceMemory memory;
-		result = vkAllocateMemory(device, &allocationInfo, NULL, &memory);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_texture_memories;
-		}
-
-		result = vkBindImageMemory(device, image, memory, 0);
-		if (result != VK_SUCCESS)
-		{
-			vkFreeMemory(device, memory, NULL);
-			goto  error_init_texture_memories;
-		}
-
-		context->textureMemory[numTextureMemoriesInited] = memory;
-	}
-
-	// create srv image views
-	for ( ; numSrvsInited < NUM_SHADER_RESOURCE_VIEWS; ++numSrvsInited)
-	{
-		VkImageView imageView;
-		ShaderResourceViewMetaData srvMetaData = SRV_META_DATA[numSrvsInited];
-
-		VkImageViewCreateInfo info = {};
-		info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
-		info.pNext = NULL;
-		info.flags = 0;
-		info.image = context->textures[srvMetaData.texture];
-		info.viewType = VIEW_TYPE_LOOKUP_VK[srvMetaData.viewType];
-		info.format = TEXTURE_FORMAT_LOOKUP_VK[TEXTURE_META_DATA[srvMetaData.texture].format];
-		info.components.r = VK_COMPONENT_SWIZZLE_IDENTITY;
-		info.components.g = VK_COMPONENT_SWIZZLE_IDENTITY;
-		info.components.b = VK_COMPONENT_SWIZZLE_IDENTITY;
-		info.components.a = VK_COMPONENT_SWIZZLE_IDENTITY;
-		info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-		info.subresourceRange.baseMipLevel = srvMetaData.mostDetailedMip;
-		info.subresourceRange.levelCount = srvMetaData.mipLevels;
-		info.subresourceRange.baseArrayLayer = srvMetaData.firstArraySlice;
-		info.subresourceRange.layerCount = srvMetaData.arraySize;
-
-		result = vkCreateImageView(device, &info, NULL, &imageView);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_srvs;
-		}
-
-		context->shaderResourceViews[numSrvsInited] = imageView;
-	}
-
-	// create uav image views
-	for ( ; numUavsInited < NUM_UNORDERED_ACCESS_VIEWS; ++numUavsInited)
-	{
-		VkImageView imageView;
-		UnorderedAccessViewMetaData uavMetaData = UAV_META_DATA[numUavsInited];
-
-		VkImageViewCreateInfo info = {};
-		info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
-		info.pNext = NULL;
-		info.flags = 0;
-		info.image = context->textures[uavMetaData.textureID];
-		info.viewType = VIEW_TYPE_LOOKUP_VK[uavMetaData.viewType];
-		info.format = TEXTURE_FORMAT_LOOKUP_VK[TEXTURE_META_DATA[uavMetaData.textureID].format];
-		info.components.r = VK_COMPONENT_SWIZZLE_IDENTITY;
-		info.components.g = VK_COMPONENT_SWIZZLE_IDENTITY;
-		info.components.b = VK_COMPONENT_SWIZZLE_IDENTITY;
-		info.components.a = VK_COMPONENT_SWIZZLE_IDENTITY;
-		info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-		info.subresourceRange.baseMipLevel = uavMetaData.mostDetailedMip;
-		info.subresourceRange.levelCount = 1;
-		info.subresourceRange.baseArrayLayer = uavMetaData.firstArraySlice;
-		info.subresourceRange.layerCount = uavMetaData.arraySize;
-
-		result = vkCreateImageView(device, &info, NULL, &imageView);
-		if (result != VK_SUCCESS)
-		{
-			goto error_init_uavs;
-		}
-
-		context->unorderedAccessViews[numUavsInited] = imageView;
-	}
-
-	// update descriptor sets from table
-	for (uint32_t i = 0; i < NUM_BACK_BUFFERS; ++i) {
-		VkDescriptorImageInfo  imageInfos[NUM_INPUT_DESCRIPTOR_BINDINGS + NUM_OUTPUT_DESCRIPTOR_BINDINGS] = {};
-		VkDescriptorImageInfo *curImageInfo = imageInfos;
-		VkWriteDescriptorSet   writes[NUM_INPUT_DESCRIPTOR_BINDINGS + NUM_OUTPUT_DESCRIPTOR_BINDINGS] = {};
-		VkWriteDescriptorSet  *curWrite = writes;
-		
-		// write input descriptor bindings
-		for (uint32_t j = 0; j < NUM_INPUT_DESCRIPTOR_BINDINGS; ++j)
-		{
-			InputDescriptorBindingMetaData bindingMetaData = INPUT_DESCRIPTOR_BINDING_META_DATA[j];
-
-			curImageInfo->sampler = VK_NULL_HANDLE;
-			curImageInfo->imageView = context->shaderResourceViews[bindingMetaData.srvID];
-			curImageInfo->imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
-
-			curWrite->sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
-			curWrite->pNext = NULL;
-			curWrite->dstSet = context->descriptorSets[i][bindingMetaData.descriptorID];
-			curWrite->dstBinding = 20 + bindingMetaData.bindingNumber;
-			curWrite->descriptorCount = 1;
-			curWrite->descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
-			curWrite->pImageInfo = curImageInfo;
-
-			++curWrite; ++curImageInfo;
-		}
-
-		// write output descriptor bindings
-		for (uint32_t j = 0; j < NUM_OUTPUT_DESCRIPTOR_BINDINGS; ++j)
-		{
-			OutputDescriptorBindingMetaData bindingMetaData = OUTPUT_DESCRIPTOR_BINDING_META_DATA[j];
-
-			curImageInfo->sampler = VK_NULL_HANDLE;
-			curImageInfo->imageView = context->unorderedAccessViews[bindingMetaData.uavID];
-			curImageInfo->imageLayout = VK_IMAGE_LAYOUT_GENERAL;
-
-			curWrite->sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
-			curWrite->pNext = VK_NULL_HANDLE;
-			curWrite->dstSet = context->descriptorSets[i][bindingMetaData.descriptorID];
-			curWrite->dstBinding = 30 + bindingMetaData.bindingNumber;
-			curWrite->descriptorCount = 1;
-			curWrite->descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
-			curWrite->pImageInfo = curImageInfo;
-
-			++curWrite; ++curImageInfo;
-		}
-
-		vkUpdateDescriptorSets(device, FFX_CACAO_ARRAY_SIZE(writes), writes, 0, NULL);
-	}
-
-	// update descriptor sets with inputs
-	for (uint32_t i = 0; i < NUM_BACK_BUFFERS; ++i) {
-#define MAX_NUM_MISC_INPUT_DESCRIPTORS 32
-
-		VkDescriptorImageInfo imageInfos[MAX_NUM_MISC_INPUT_DESCRIPTORS] = {};
-		VkWriteDescriptorSet writes[MAX_NUM_MISC_INPUT_DESCRIPTORS] = {};
-
-		for (uint32_t i = 0; i < FFX_CACAO_ARRAY_SIZE(writes); ++i)
-		{
-			VkDescriptorImageInfo *imageInfo = imageInfos + i;
-			VkWriteDescriptorSet *write = writes + i;
-
-			imageInfo->sampler = VK_NULL_HANDLE;
-
-			write->sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
-			write->pNext = NULL;
-			write->descriptorCount = 1;
-			write->pImageInfo = imageInfo;
-		}
-
-		uint32_t cur = 0;
-
-		// register(t0) -> 20
-		// register(u0) -> 30
-		imageInfos[cur].imageView = info->depthView;
-		imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
-		writes[cur].dstSet = context->descriptorSets[i][DS_PREPARE_DEPTHS];
-		writes[cur].dstBinding = 20;
-		writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
-		++cur;
-
-		imageInfos[cur].imageView = info->depthView;
-		imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
-		writes[cur].dstSet = context->descriptorSets[i][DS_PREPARE_DEPTHS_MIPS];
-		writes[cur].dstBinding = 20;
-		writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
-		++cur;
-
-		imageInfos[cur].imageView = info->depthView;
-		imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
-		writes[cur].dstSet = context->descriptorSets[i][DS_PREPARE_NORMALS];
-		writes[cur].dstBinding = 20;
-		writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
-		++cur;
-
-		imageInfos[cur].imageView = info->depthView;
-		imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
-		writes[cur].dstSet = context->descriptorSets[i][DS_BILATERAL_UPSAMPLE_PING];
-		writes[cur].dstBinding = 21;
-		writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
-		++cur;
-
-		imageInfos[cur].imageView = info->depthView;
-		imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
-		writes[cur].dstSet = context->descriptorSets[i][DS_BILATERAL_UPSAMPLE_PONG];
-		writes[cur].dstBinding = 21;
-		writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
-		++cur;
-
-		imageInfos[cur].imageView = info->outputView;
-		imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_GENERAL;
-		writes[cur].dstSet = context->descriptorSets[i][DS_BILATERAL_UPSAMPLE_PING];
-		writes[cur].dstBinding = 30;
-		writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
-		++cur;
-
-		imageInfos[cur].imageView = info->outputView;
-		imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_GENERAL;
-		writes[cur].dstSet = context->descriptorSets[i][DS_BILATERAL_UPSAMPLE_PONG];
-		writes[cur].dstBinding = 30;
-		writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
-		++cur;
-
-		imageInfos[cur].imageView = info->outputView;
-		imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_GENERAL;
-		writes[cur].dstSet = context->descriptorSets[i][DS_APPLY_PING];
-		writes[cur].dstBinding = 30;
-		writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
-		++cur;
-
-		imageInfos[cur].imageView = info->outputView;
-		imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_GENERAL;
-		writes[cur].dstSet = context->descriptorSets[i][DS_APPLY_PONG];
-		writes[cur].dstBinding = 30;
-		writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
-		++cur;
-
-		imageInfos[cur].imageView = context->loadCounterView;
-		imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_GENERAL;
-		writes[cur].dstSet = context->descriptorSets[i][DS_POSTPROCESS_IMPORTANCE_MAP_B];
-		writes[cur].dstBinding = 31;
-		writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
-		++cur;
-
-		imageInfos[cur].imageView = context->loadCounterView;
-		imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_GENERAL;
-		writes[cur].dstSet = context->descriptorSets[i][DS_CLEAR_LOAD_COUNTER];
-		writes[cur].dstBinding = 30;
-		writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
-		++cur;
-
-		for (uint32_t pass = 0; pass < 4; ++pass)
-		{
-			imageInfos[cur].imageView = context->loadCounterView;
-			imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_GENERAL;
-			writes[cur].dstSet = context->descriptorSets[i][(DescriptorSetID)(DS_GENERATE_ADAPTIVE_0 + pass)];
-			writes[cur].dstBinding = 22;
-			writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
-			++cur;
-		}
-
-		if (info->normalsView) {
-			imageInfos[cur].imageView = info->normalsView;
-			imageInfos[cur].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
-			writes[cur].dstSet = context->descriptorSets[i][DS_PREPARE_NORMALS_FROM_INPUT_NORMALS];
-			writes[cur].dstBinding = 20;
-			writes[cur].descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
-			++cur;
-		}
-
-		FFX_CACAO_ASSERT(cur <= MAX_NUM_MISC_INPUT_DESCRIPTORS);
-		vkUpdateDescriptorSets(device, cur, writes, 0, NULL);
-	}
-
-	// update descriptor sets with constant buffers
-	for (uint32_t i = 0; i < NUM_BACK_BUFFERS; ++i) {
-		VkDescriptorBufferInfo  bufferInfos[NUM_DESCRIPTOR_SETS] = {};
-		VkDescriptorBufferInfo *curBufferInfo = bufferInfos;
-		VkWriteDescriptorSet    writes[NUM_DESCRIPTOR_SETS] = {};
-		VkWriteDescriptorSet   *curWrite = writes;
-
-		for (uint32_t j = 0; j < NUM_DESCRIPTOR_SETS; ++j)
-		{
-			DescriptorSetMetaData dsMetaData = DESCRIPTOR_SET_META_DATA[j];
-
-			curBufferInfo->buffer = context->constantBuffer[i][dsMetaData.pass];
-			curBufferInfo->offset = 0;
-			curBufferInfo->range = VK_WHOLE_SIZE;
-
-			curWrite->sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
-			curWrite->pNext = NULL;
-			curWrite->dstSet = context->descriptorSets[i][j];
-			curWrite->dstBinding = 10;
-			curWrite->dstArrayElement = 0;
-			curWrite->descriptorCount = 1;
-			curWrite->descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-			curWrite->pBufferInfo = curBufferInfo;
-
-			++curWrite;
-			++curBufferInfo;
-		}
-
-		vkUpdateDescriptorSets(device, FFX_CACAO_ARRAY_SIZE(writes), writes, 0, NULL);
-	}
-
-	return FFX_CACAO_STATUS_OK;
-
-error_init_uavs:
-	for (uint32_t i = 0; i < numUavsInited; ++i)
-	{
-		vkDestroyImageView(device, context->unorderedAccessViews[i], NULL);
-	}
-
-error_init_srvs:
-	for (uint32_t i = 0; i < numSrvsInited; ++i)
-	{
-		vkDestroyImageView(device, context->shaderResourceViews[i], NULL);
-	}
-
-error_init_texture_memories:
-	for (uint32_t i = 0; i < numTextureMemoriesInited; ++i)
-	{
-		vkFreeMemory(device, context->textureMemory[i], NULL);
-	}
-
-error_init_texture_images:
-	for (uint32_t i = 0; i < numTextureImagesInited; ++i)
-	{
-		vkDestroyImage(device, context->textures[i], NULL);
-	}
-
-	return errorStatus;
-}
-
-FFX_CACAO_Status FFX_CACAO_VkDestroyScreenSizeDependentResources(FFX_CACAO_VkContext* context)
-{
-	if (context == NULL)
-	{
-		return FFX_CACAO_STATUS_INVALID_POINTER;
-	}
-	context = getAlignedVkContextPointer(context);
-
-	VkDevice device = context->device;
-
-	for (uint32_t i = 0; i < NUM_UNORDERED_ACCESS_VIEWS; ++i)
-	{
-		vkDestroyImageView(device, context->unorderedAccessViews[i], NULL);
-	}
-
-	for (uint32_t i = 0; i < NUM_SHADER_RESOURCE_VIEWS; ++i)
-	{
-		vkDestroyImageView(device, context->shaderResourceViews[i], NULL);
-	}
-
-	for (uint32_t i = 0; i < NUM_TEXTURES; ++i)
-	{
-		vkFreeMemory(device, context->textureMemory[i], NULL);
-	}
-
-	for (uint32_t i = 0; i < NUM_TEXTURES; ++i)
-	{
-		vkDestroyImage(device, context->textures[i], NULL);
-	}
-
-	return FFX_CACAO_STATUS_OK;
-}
-
-FFX_CACAO_Status FFX_CACAO_VkUpdateSettings(FFX_CACAO_VkContext* context, const FFX_CACAO_Settings* settings)
-{
-	if (context == NULL || settings == NULL)
-	{
-		return FFX_CACAO_STATUS_INVALID_POINTER;
-	}
-	context = getAlignedVkContextPointer(context);
-
-	memcpy(&context->settings, settings, sizeof(*settings));
-
-	return FFX_CACAO_STATUS_OK;
-}
-
-static inline void computeDispatch(FFX_CACAO_VkContext* context, VkCommandBuffer cb, DescriptorSetID ds, ComputeShaderID cs, uint32_t width, uint32_t height, uint32_t depth)
-{
-	DescriptorSetLayoutID dsl = DESCRIPTOR_SET_META_DATA[ds].descriptorSetLayoutID;
-	vkCmdBindDescriptorSets(cb, VK_PIPELINE_BIND_POINT_COMPUTE, context->pipelineLayouts[dsl], 0, 1, &context->descriptorSets[context->currentConstantBuffer][ds], 0, NULL);
-	vkCmdBindPipeline(cb, VK_PIPELINE_BIND_POINT_COMPUTE, context->computePipelines[cs]);
-	vkCmdDispatch(cb, width, height, depth);
-}
-
-typedef struct BarrierList
-{
-	uint32_t len;
-	VkImageMemoryBarrier barriers[32];
-} BarrierList;
-
-static inline void pushBarrier(BarrierList* barrierList, VkImage image, VkImageLayout oldLayout, VkImageLayout newLayout, VkAccessFlags srcAccessFlags, VkAccessFlags dstAccessFlags)
-{
-	FFX_CACAO_ASSERT(barrierList->len < FFX_CACAO_ARRAY_SIZE(barrierList->barriers));
-	VkImageMemoryBarrier barrier = {};
-	barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
-	barrier.pNext = NULL;
-	barrier.srcAccessMask = srcAccessFlags;
-	barrier.dstAccessMask = dstAccessFlags;
-	barrier.oldLayout = oldLayout;
-	barrier.newLayout = newLayout;
-	barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-	barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-	barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-	barrier.subresourceRange.baseMipLevel = 0;
-	barrier.subresourceRange.levelCount = VK_REMAINING_MIP_LEVELS;
-	barrier.subresourceRange.baseArrayLayer = 0;
-	barrier.subresourceRange.layerCount = VK_REMAINING_ARRAY_LAYERS;
-	barrier.image = image;
-	barrierList->barriers[barrierList->len++] = barrier;
-}
-
-static inline void beginDebugMarker(FFX_CACAO_VkContext* context, VkCommandBuffer cb, const char* name)
-{
-	if (context->vkCmdDebugMarkerBegin)
-	{
-		VkDebugMarkerMarkerInfoEXT info = {};
-		info.sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT;
-		info.pNext = NULL;
-		info.pMarkerName = name;
-		info.color[0] = 1.0f;
-		info.color[1] = 0.0f;
-		info.color[2] = 0.0f;
-		info.color[3] = 1.0f;
-
-		context->vkCmdDebugMarkerBegin(cb, &info);
-	}
-}
-
-static inline void endDebugMarker(FFX_CACAO_VkContext* context, VkCommandBuffer cb)
-{
-	if (context->vkCmdDebugMarkerEnd)
-	{
-		context->vkCmdDebugMarkerEnd(cb);
-	}
-}
-
-FFX_CACAO_Status FFX_CACAO_VkDraw(FFX_CACAO_VkContext* context, VkCommandBuffer cb, const FFX_CACAO_Matrix4x4* proj, const FFX_CACAO_Matrix4x4* normalsToView)
-{
-	if (context == NULL || cb == VK_NULL_HANDLE || proj == NULL)
-	{
-		return FFX_CACAO_STATUS_INVALID_POINTER;
-	}
-	context = getAlignedVkContextPointer(context);
-
-	FFX_CACAO_Settings *settings = &context->settings;
-	FFX_CACAO_BufferSizeInfo *bsi = &context->bufferSizeInfo;
-	VkDevice device = context->device;
-	VkDescriptorSet *ds = context->descriptorSets[context->currentConstantBuffer];
-	VkImage *tex = context->textures;
-	VkResult result;
-	BarrierList barrierList;
-
-	uint32_t curBuffer = context->currentConstantBuffer;
-	curBuffer = (curBuffer + 1) % NUM_BACK_BUFFERS;
-	context->currentConstantBuffer = curBuffer;
-#ifdef FFX_CACAO_ENABLE_PROFILING
-	{
-		uint32_t collectBuffer = context->collectBuffer = (curBuffer + 1) % NUM_BACK_BUFFERS;
-		if (uint32_t numQueries = context->timestampQueries[collectBuffer].numTimestamps)
-		{
-			uint32_t offset = collectBuffer * NUM_TIMESTAMPS;
-			vkGetQueryPoolResults(device, context->timestampQueryPool, offset, numQueries, numQueries * sizeof(uint64_t), context->timestampQueries[collectBuffer].timings, sizeof(uint64_t), VK_QUERY_RESULT_64_BIT);
-		}
-	}
-#endif
-
-	beginDebugMarker(context, cb, "FidelityFX CACAO");
-
-	// update constant buffer
-
-	for (uint32_t i = 0; i < 4; ++i)
-	{
-		VkDeviceMemory memory = context->constantBufferMemory[curBuffer][i];
-		void *data = NULL;
-		result = vkMapMemory(device, memory, 0, VK_WHOLE_SIZE, 0, &data);
-		FFX_CACAO_ASSERT(result == VK_SUCCESS);
-		FFX_CACAO_UpdateConstants((FFX_CACAO_Constants*)data, settings, bsi, proj, normalsToView);
-		FFX_CACAO_UpdatePerPassConstants((FFX_CACAO_Constants*)data, settings, bsi, i);
-		vkUnmapMemory(device, memory);
-	}
-
-#ifdef FFX_CACAO_ENABLE_PROFILING
-	uint32_t queryPoolOffset = curBuffer * NUM_TIMESTAMPS;
-	uint32_t numTimestamps = 0;
-	vkCmdResetQueryPool(cb, context->timestampQueryPool, queryPoolOffset, NUM_TIMESTAMPS);
-#define GET_TIMESTAMP(name) \
-		context->timestampQueries[curBuffer].timestamps[numTimestamps] = TIMESTAMP_##name; \
-		vkCmdWriteTimestamp(cb, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, context->timestampQueryPool, queryPoolOffset + numTimestamps++);
-#else
-#define GET_TIMESTAMP(name)
-#endif
-	
-	GET_TIMESTAMP(BEGIN)
-
-	barrierList.len = 0;
-	pushBarrier(&barrierList, tex[TEXTURE_DEINTERLEAVED_DEPTHS], VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, 0, VK_ACCESS_SHADER_WRITE_BIT);
-	pushBarrier(&barrierList, tex[TEXTURE_DEINTERLEAVED_NORMALS], VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, 0, VK_ACCESS_SHADER_WRITE_BIT);
-	pushBarrier(&barrierList, tex[TEXTURE_SSAO_BUFFER_PING], VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, 0, VK_ACCESS_SHADER_WRITE_BIT);
-	pushBarrier(&barrierList, tex[TEXTURE_SSAO_BUFFER_PONG], VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, 0, VK_ACCESS_SHADER_WRITE_BIT);
-	pushBarrier(&barrierList, tex[TEXTURE_IMPORTANCE_MAP], VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, 0, VK_ACCESS_SHADER_WRITE_BIT);
-	pushBarrier(&barrierList, tex[TEXTURE_IMPORTANCE_MAP_PONG], VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, 0, VK_ACCESS_SHADER_WRITE_BIT);
-	pushBarrier(&barrierList, context->loadCounter, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, 0, VK_ACCESS_SHADER_WRITE_BIT);
-	vkCmdPipelineBarrier(cb, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, NULL, 0, NULL, barrierList.len, barrierList.barriers);
-
-	// prepare depths, normals and mips
-	{
-		beginDebugMarker(context, cb, "Prepare downsampled depths, normals and mips");
-
-		// clear load counter
-		computeDispatch(context, cb, DS_CLEAR_LOAD_COUNTER, CS_CLEAR_LOAD_COUNTER, 1, 1, 1);
-
-		switch (context->settings.qualityLevel)
-		{
-		case FFX_CACAO_QUALITY_LOWEST: {
-			uint32_t dispatchWidth = dispatchSize(FFX_CACAO_PREPARE_DEPTHS_HALF_WIDTH, bsi->deinterleavedDepthBufferWidth);
-			uint32_t dispatchHeight = dispatchSize(FFX_CACAO_PREPARE_DEPTHS_HALF_HEIGHT, bsi->deinterleavedDepthBufferHeight);
-			ComputeShaderID csPrepareDepthsHalf = context->useDownsampledSsao ? CS_PREPARE_DOWNSAMPLED_DEPTHS_HALF : CS_PREPARE_NATIVE_DEPTHS_HALF;
-			computeDispatch(context, cb, DS_PREPARE_DEPTHS, csPrepareDepthsHalf, dispatchWidth, dispatchHeight, 1);
-			break;
-		}
-		case FFX_CACAO_QUALITY_LOW: {
-			uint32_t dispatchWidth = dispatchSize(FFX_CACAO_PREPARE_DEPTHS_WIDTH, bsi->deinterleavedDepthBufferWidth);
-			uint32_t dispatchHeight = dispatchSize(FFX_CACAO_PREPARE_DEPTHS_HEIGHT, bsi->deinterleavedDepthBufferHeight);
-			ComputeShaderID csPrepareDepths = context->useDownsampledSsao ? CS_PREPARE_DOWNSAMPLED_DEPTHS : CS_PREPARE_NATIVE_DEPTHS;
-			computeDispatch(context, cb, DS_PREPARE_DEPTHS, csPrepareDepths, dispatchWidth, dispatchHeight, 1);
-			break;
-		}
-		default: {
-			uint32_t dispatchWidth = dispatchSize(FFX_CACAO_PREPARE_DEPTHS_AND_MIPS_WIDTH, bsi->deinterleavedDepthBufferWidth);
-			uint32_t dispatchHeight = dispatchSize(FFX_CACAO_PREPARE_DEPTHS_AND_MIPS_HEIGHT, bsi->deinterleavedDepthBufferHeight);
-			ComputeShaderID csPrepareDepthsAndMips = context->useDownsampledSsao ? CS_PREPARE_DOWNSAMPLED_DEPTHS_AND_MIPS : CS_PREPARE_NATIVE_DEPTHS_AND_MIPS;
-			computeDispatch(context, cb, DS_PREPARE_DEPTHS_MIPS, csPrepareDepthsAndMips, dispatchWidth, dispatchHeight, 1);
-			break;
-		}
-		}
-
-		if (context->settings.generateNormals)
-		{
-			uint32_t dispatchWidth = dispatchSize(FFX_CACAO_PREPARE_NORMALS_WIDTH, bsi->ssaoBufferWidth);
-			uint32_t dispatchHeight = dispatchSize(FFX_CACAO_PREPARE_NORMALS_HEIGHT, bsi->ssaoBufferHeight);
-			ComputeShaderID csPrepareNormals = context->useDownsampledSsao ? CS_PREPARE_DOWNSAMPLED_NORMALS : CS_PREPARE_NATIVE_NORMALS;
-			computeDispatch(context, cb, DS_PREPARE_NORMALS, csPrepareNormals, dispatchWidth, dispatchHeight, 1);
-		}
-		else
-		{
-			uint32_t dispatchWidth = dispatchSize(PREPARE_NORMALS_FROM_INPUT_NORMALS_WIDTH, bsi->ssaoBufferWidth);
-			uint32_t dispatchHeight = dispatchSize(PREPARE_NORMALS_FROM_INPUT_NORMALS_HEIGHT, bsi->ssaoBufferHeight);
-			ComputeShaderID csPrepareNormalsFromInputNormals = context->useDownsampledSsao ? CS_PREPARE_DOWNSAMPLED_NORMALS_FROM_INPUT_NORMALS : CS_PREPARE_NATIVE_NORMALS_FROM_INPUT_NORMALS;
-			computeDispatch(context, cb, DS_PREPARE_NORMALS_FROM_INPUT_NORMALS, csPrepareNormalsFromInputNormals, dispatchWidth, dispatchHeight, 1);
-		}
-
-		endDebugMarker(context, cb);
-		GET_TIMESTAMP(PREPARE)
-	}
-
-	barrierList.len = 0;
-	pushBarrier(&barrierList, tex[TEXTURE_DEINTERLEAVED_DEPTHS], VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT);
-	pushBarrier(&barrierList, tex[TEXTURE_DEINTERLEAVED_NORMALS], VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT);
-	pushBarrier(&barrierList, context->loadCounter, VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_GENERAL, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_SHADER_WRITE_BIT | VK_ACCESS_SHADER_READ_BIT);
-	vkCmdPipelineBarrier(cb, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, NULL, 0, NULL, barrierList.len, barrierList.barriers);
-
-	// base pass for highest quality setting
-	if (context->settings.qualityLevel == FFX_CACAO_QUALITY_HIGHEST)
-	{
-		beginDebugMarker(context, cb, "Generate High Quality Base Pass");
-
-		// SSAO
-		{
-			beginDebugMarker(context, cb, "Base SSAO");
-
-			uint32_t dispatchWidth = dispatchSize(FFX_CACAO_GENERATE_WIDTH, bsi->ssaoBufferWidth);
-			uint32_t dispatchHeight = dispatchSize(FFX_CACAO_GENERATE_HEIGHT, bsi->ssaoBufferHeight);
-
-			for (int pass = 0; pass < 4; ++pass)
-			{
-				computeDispatch(context, cb, (DescriptorSetID)(DS_GENERATE_ADAPTIVE_BASE_0 + pass), CS_GENERATE_Q3_BASE, dispatchWidth, dispatchHeight, 1);
-			}
-
-			endDebugMarker(context, cb);
-		}
-
-		GET_TIMESTAMP(BASE_SSAO_PASS)
-
-		barrierList.len = 0;
-		pushBarrier(&barrierList, tex[TEXTURE_SSAO_BUFFER_PONG], VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT);
-		vkCmdPipelineBarrier(cb, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, NULL, 0, NULL, barrierList.len, barrierList.barriers);
-
-		// generate importance map
-		{
-			beginDebugMarker(context, cb, "Importance Map");
-
-			uint32_t dispatchWidth = dispatchSize(IMPORTANCE_MAP_WIDTH, bsi->importanceMapWidth);
-			uint32_t dispatchHeight = dispatchSize(IMPORTANCE_MAP_HEIGHT, bsi->importanceMapHeight);
-
-			computeDispatch(context, cb, DS_GENERATE_IMPORTANCE_MAP, CS_GENERATE_IMPORTANCE_MAP, dispatchWidth, dispatchHeight, 1);
-
-			barrierList.len = 0;
-			pushBarrier(&barrierList, tex[TEXTURE_IMPORTANCE_MAP], VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT);
-			vkCmdPipelineBarrier(cb, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, NULL, 0, NULL, barrierList.len, barrierList.barriers);
-
-			computeDispatch(context, cb, DS_POSTPROCESS_IMPORTANCE_MAP_A, CS_POSTPROCESS_IMPORTANCE_MAP_A, dispatchWidth, dispatchHeight, 1);
-
-			barrierList.len = 0;
-			pushBarrier(&barrierList, tex[TEXTURE_IMPORTANCE_MAP], VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, VK_ACCESS_SHADER_READ_BIT, VK_ACCESS_SHADER_WRITE_BIT);
-			pushBarrier(&barrierList, tex[TEXTURE_IMPORTANCE_MAP_PONG], VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT);
-			vkCmdPipelineBarrier(cb, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, NULL, 0, NULL, barrierList.len, barrierList.barriers);
-
-			computeDispatch(context, cb, DS_POSTPROCESS_IMPORTANCE_MAP_B, CS_POSTPROCESS_IMPORTANCE_MAP_B, dispatchWidth, dispatchHeight, 1);
-
-			endDebugMarker(context, cb);
-		}
-
-		endDebugMarker(context, cb);
-		GET_TIMESTAMP(IMPORTANCE_MAP)
-
-		barrierList.len = 0;
-		pushBarrier(&barrierList, tex[TEXTURE_IMPORTANCE_MAP], VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT);
-		pushBarrier(&barrierList, context->loadCounter, VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_GENERAL, VK_ACCESS_SHADER_WRITE_BIT | VK_ACCESS_SHADER_READ_BIT, VK_ACCESS_SHADER_READ_BIT);
-		vkCmdPipelineBarrier(cb, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, NULL, 0, NULL, barrierList.len, barrierList.barriers);
-	}
-
-	// main ssao generation
-	{
-		beginDebugMarker(context, cb, "Generate SSAO");
-
-		ComputeShaderID generateCS = (ComputeShaderID)(CS_GENERATE_Q0 + FFX_CACAO_MAX(0, context->settings.qualityLevel - 1));
-
-		uint32_t dispatchWidth, dispatchHeight, dispatchDepth;
-
-		switch (context->settings.qualityLevel)
-		{
-		case FFX_CACAO_QUALITY_LOWEST:
-		case FFX_CACAO_QUALITY_LOW:
-		case FFX_CACAO_QUALITY_MEDIUM:
-			dispatchWidth = dispatchSize(FFX_CACAO_GENERATE_SPARSE_WIDTH, bsi->ssaoBufferWidth);
-			dispatchWidth = (dispatchWidth + 4) / 5;
-			dispatchHeight = dispatchSize(FFX_CACAO_GENERATE_SPARSE_HEIGHT, bsi->ssaoBufferHeight);
-			dispatchDepth = 5;
-			break;
-		case FFX_CACAO_QUALITY_HIGH:
-		case FFX_CACAO_QUALITY_HIGHEST:
-			dispatchWidth = dispatchSize(FFX_CACAO_GENERATE_WIDTH, bsi->ssaoBufferWidth);
-			dispatchHeight = dispatchSize(FFX_CACAO_GENERATE_HEIGHT, bsi->ssaoBufferHeight);
-			dispatchDepth = 1;
-			break;
-		}
-
-		for (int pass = 0; pass < 4; ++pass)
-		{
-			if (context->settings.qualityLevel == FFX_CACAO_QUALITY_LOWEST && (pass == 1 || pass == 2))
-			{
-				continue;
-			}
-
-			DescriptorSetID descriptorSetID = context->settings.qualityLevel == FFX_CACAO_QUALITY_HIGHEST ? DS_GENERATE_ADAPTIVE_0 : DS_GENERATE_0;
-			descriptorSetID = (DescriptorSetID)(descriptorSetID + pass);
-
-			computeDispatch(context, cb, descriptorSetID, generateCS, dispatchWidth, dispatchHeight, dispatchDepth);
-		}
-
-		endDebugMarker(context, cb);
-		GET_TIMESTAMP(GENERATE_SSAO)
-	}
-
-	uint32_t blurPassCount = context->settings.blurPassCount;
-	blurPassCount = FFX_CACAO_CLAMP(blurPassCount, 0, MAX_BLUR_PASSES);
-
-	// de-interleaved blur
-	if (blurPassCount)
-	{
-		barrierList.len = 0;
-		pushBarrier(&barrierList, tex[TEXTURE_SSAO_BUFFER_PING], VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT);
-		pushBarrier(&barrierList, tex[TEXTURE_SSAO_BUFFER_PONG], VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, 0, VK_ACCESS_SHADER_WRITE_BIT);
-		vkCmdPipelineBarrier(cb, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, NULL, 0, NULL, barrierList.len, barrierList.barriers);
-
-		beginDebugMarker(context, cb, "Deinterleaved Blur");
-
-		uint32_t w = 4 * FFX_CACAO_BLUR_WIDTH - 2 * blurPassCount;
-		uint32_t h = 3 * FFX_CACAO_BLUR_HEIGHT - 2 * blurPassCount;
-		uint32_t dispatchWidth = dispatchSize(w, bsi->ssaoBufferWidth);
-		uint32_t dispatchHeight = dispatchSize(h, bsi->ssaoBufferHeight);
-
-		for (int pass = 0; pass < 4; ++pass)
-		{
-			if (context->settings.qualityLevel == FFX_CACAO_QUALITY_LOWEST && (pass == 1 || pass == 2))
-			{
-				continue;
-			}
-
-			ComputeShaderID blurShaderID = (ComputeShaderID)(CS_EDGE_SENSITIVE_BLUR_1 + blurPassCount - 1);
-			DescriptorSetID descriptorSetID = (DescriptorSetID)(DS_EDGE_SENSITIVE_BLUR_0 + pass);
-			computeDispatch(context, cb, descriptorSetID, blurShaderID, dispatchWidth, dispatchHeight, 1);
-		}
-
-		endDebugMarker(context, cb);
-		GET_TIMESTAMP(EDGE_SENSITIVE_BLUR)
-
-		barrierList.len = 0;
-		pushBarrier(&barrierList, tex[TEXTURE_SSAO_BUFFER_PONG], VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT);
-		pushBarrier(&barrierList, context->output, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, 0, VK_ACCESS_SHADER_WRITE_BIT);
-		vkCmdPipelineBarrier(cb, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, NULL, 0, NULL, barrierList.len, barrierList.barriers);
-	}
-	else
-	{
-		barrierList.len = 0;
-		pushBarrier(&barrierList, tex[TEXTURE_SSAO_BUFFER_PING], VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT);
-		pushBarrier(&barrierList, context->output, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, 0, VK_ACCESS_SHADER_WRITE_BIT);
-		vkCmdPipelineBarrier(cb, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, NULL, 0, NULL, barrierList.len, barrierList.barriers);
-	}
-
-
-	if (context->useDownsampledSsao)
-	{
-		beginDebugMarker(context, cb, "Bilateral Upsample");
-
-		uint32_t dispatchWidth = dispatchSize(2 * FFX_CACAO_BILATERAL_UPSCALE_WIDTH, bsi->inputOutputBufferWidth);
-		uint32_t dispatchHeight = dispatchSize(2 * FFX_CACAO_BILATERAL_UPSCALE_HEIGHT, bsi->inputOutputBufferHeight);
-
-		DescriptorSetID descriptorSetID = blurPassCount ? DS_BILATERAL_UPSAMPLE_PONG : DS_BILATERAL_UPSAMPLE_PING;
-		ComputeShaderID upscaler;
-		switch (context->settings.qualityLevel)
-		{
-		case FFX_CACAO_QUALITY_LOWEST:
-			upscaler = CS_UPSCALE_BILATERAL_5X5_HALF;
-			break;
-		case FFX_CACAO_QUALITY_LOW:
-		case FFX_CACAO_QUALITY_MEDIUM:
-			upscaler = CS_UPSCALE_BILATERAL_5X5_NON_SMART;
-			break;
-		case FFX_CACAO_QUALITY_HIGH:
-		case FFX_CACAO_QUALITY_HIGHEST:
-			upscaler = CS_UPSCALE_BILATERAL_5X5_SMART;
-			break;
-		}
-
-		computeDispatch(context, cb, descriptorSetID, upscaler, dispatchWidth, dispatchHeight, 1);
-
-		endDebugMarker(context, cb);
-		GET_TIMESTAMP(BILATERAL_UPSAMPLE)
-	}
-	else
-	{
-		beginDebugMarker(context, cb, "Reinterleave");
-
-		uint32_t dispatchWidth = dispatchSize(FFX_CACAO_APPLY_WIDTH, bsi->inputOutputBufferWidth);
-		uint32_t dispatchHeight = dispatchSize(FFX_CACAO_APPLY_HEIGHT, bsi->inputOutputBufferHeight);
-
-		DescriptorSetID descriptorSetID = blurPassCount ? DS_APPLY_PONG : DS_APPLY_PING;
-
-		switch (context->settings.qualityLevel)
-		{
-		case FFX_CACAO_QUALITY_LOWEST:
-			computeDispatch(context, cb, descriptorSetID, CS_NON_SMART_HALF_APPLY, dispatchWidth, dispatchHeight, 1);
-			break;
-		case FFX_CACAO_QUALITY_LOW:
-			computeDispatch(context, cb, descriptorSetID, CS_NON_SMART_APPLY, dispatchWidth, dispatchHeight, 1);
-			break;
-		default:
-			computeDispatch(context, cb, descriptorSetID, CS_APPLY, dispatchWidth, dispatchHeight, 1);
-			break;
-		}
-
-		endDebugMarker(context, cb);
-		GET_TIMESTAMP(APPLY)
-	}
-	
-	endDebugMarker(context, cb);
-
-	barrierList.len = 0;
-	pushBarrier(&barrierList, context->output, VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT);
-	vkCmdPipelineBarrier(cb, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, NULL, 0, NULL, barrierList.len, barrierList.barriers);
-
-#ifdef FFX_CACAO_ENABLE_PROFILING
-	context->timestampQueries[curBuffer].numTimestamps = numTimestamps;
-#endif
-
-	return FFX_CACAO_STATUS_OK;
-}
-
-#ifdef FFX_CACAO_ENABLE_PROFILING
-FFX_CACAO_Status FFX_CACAO_VkGetDetailedTimings(FFX_CACAO_VkContext* context, FFX_CACAO_DetailedTiming* timings)
-{
-	if (context == NULL || timings == NULL)
-	{
-		return FFX_CACAO_STATUS_INVALID_POINTER;
-	}
-	context = getAlignedVkContextPointer(context);
-
-	uint32_t bufferIndex = context->collectBuffer;
-	uint32_t numTimestamps = context->timestampQueries[bufferIndex].numTimestamps;
-	uint64_t prevTime = context->timestampQueries[bufferIndex].timings[0];
-	for (uint32_t i = 1; i < numTimestamps; ++i)
-	{
-		TimestampID timestampID = context->timestampQueries[bufferIndex].timestamps[i];
-		timings->timestamps[i].label = TIMESTAMP_NAMES[timestampID];
-		uint64_t time = context->timestampQueries[bufferIndex].timings[i];
-		timings->timestamps[i].ticks = time - prevTime;
-		prevTime = time;
-	}
-	timings->timestamps[0].label = "FFX_CACAO_TOTAL";
-	timings->timestamps[0].ticks = prevTime - context->timestampQueries[bufferIndex].timings[0];
-	timings->numTimestamps = numTimestamps;
-	
-	return FFX_CACAO_STATUS_OK;
-}
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/frag.glsl b/src/frag.glsl
index b5433c9b64eb77b1f125865b7f3ab9fcb925bdbe..65dd9c29a501b4a5d63e7d24ea038021940ccab7 100644
--- a/src/frag.glsl
+++ b/src/frag.glsl
@@ -7,9 +7,12 @@
 
 #ifdef implicit
 
+layout (constant_id = 0) const bool DISABLE_TRACE = false;
+
 layout(location=0)in VertexInput
 {
     vec4 position;
+    vec3 globaloffset;
 }vertexInput;
 
 #else
@@ -53,9 +56,10 @@ const uint MAX_STEPS=50;
 #define FARPLANE length(vec3(10))
 #define gl_GlobalInvocationID uvec3(1)
 #endif
+#define interval_frags
 #include "intervals.glsl"
 
-layout(set=0,binding=20)restrict readonly buffer fragmentMasks{
+layout(set=0,binding=20, std430)restrict readonly buffer fragmentMasks{
     uint8_t masks[][masklen];
 }fragmentpassmasks;
 
@@ -71,6 +75,9 @@ vec3 getNormal(vec3 p,float dens){
 vec2 spheretracing(vec3 ori,vec3 dir,out vec3 p){
     vec2 td=vec2(NEARPLANE,1.);
     p=ori;
+    td.y=sceneoverride(p,false).x;
+    td.x+=(td.y)*.9;
+    p=ori+dir*td.x;
     for(int i=0;i<MAX_STEPS&&td.y>EPSILON&&td.x<FARPLANE;i++){
         td.y=sceneoverride(p,false).x;
         td.x+=(td.y)*.9;
@@ -106,12 +113,14 @@ void main(){
     vec3 raypos=vertexInput.position.xyz;
     vec3 p;
     vec3 raydir=normalize(raypos-(inverse(pc.world)*vec4(camera_uniforms.campos,1)).xyz);
-    //raypos-=vec3(5);
+    raypos+=vertexInput.globaloffset;
+    
+    //f_color=vec4(raydir,1.);
     
-    /*f_color=vec4(raydir,1.);
-    return;*/
-    /*f_color=vertexInput.position;
-    return;*/
+    if (DISABLE_TRACE) {
+        f_color=vertexInput.position;
+        return;
+    }
 
     #ifdef debug
     f_color=vec4(sceneoverride(raypos,false),1);
@@ -123,9 +132,9 @@ void main(){
     f_color=vec4(td,0,1);
     return;
     #endif*/
-    vec3 n=getNormal(p,td.y);
     if(td.y<EPSILON)
     {
+        vec3 n=getNormal(p,td.y);
         //f_color=vec4(1.);
         f_color=vec4(shading(n),1.);
         
diff --git a/src/fuzz.comp.glsl b/src/fuzz.comp.glsl
new file mode 100644
index 0000000000000000000000000000000000000000..b8411346fd274391fb21de3ffd5db9e7b83ecff0
--- /dev/null
+++ b/src/fuzz.comp.glsl
@@ -0,0 +1,45 @@
+#version 460
+
+uint DescriptionIndex;
+
+//#include "include.glsl"
+#include "intervals.glsl"
+struct Results {
+    float[2] f;
+    vec2[2] v2;
+    vec4[2] v3;
+    vec4[2] v4;
+    uint8_t[masklen] mask;
+};
+
+layout(set=0,binding=30, std430)buffer ResultsArray{
+    Results r[];
+}results;
+
+layout(local_size_x=32,local_size_y=1,local_size_z=1)in;
+
+void main ()
+{
+    DescriptionIndex = gl_LocalInvocationID.x;
+    default_mask();
+    float[6]bounds=scene_description.desc[DescriptionIndex+1].bounds;
+    vec3 bottomleft = vec3(bounds[3],bounds[4],bounds[5]);
+    vec3 topright   = vec3(bounds[0],bounds[1],bounds[2]);
+    desc = scene_description.desc[(DescriptionIndex)+1];
+    clear_stacks();
+    results.r[gl_GlobalInvocationID.x].f = scene(vec3[2](bottomleft, topright), true);
+    vec3[2] v3 = pull_vec3(false);
+    results.r[gl_GlobalInvocationID.x].v3[0] = vec4(v3[0],1.);
+    results.r[gl_GlobalInvocationID.x].v3[1] = vec4(v3[1],1.);
+    results.r[gl_GlobalInvocationID.x].v2 = pull_vec2(false);
+    results.r[gl_GlobalInvocationID.x].v4 = pull_vec4(false);
+    //results.r[gl_GlobalInvocationID.x].f[1] = float(gl_GlobalInvocationID.x);
+    /*results.r[gl_GlobalInvocationID.x].f = pull_float(true);//scene(vec3[2](bottomleft, topright), false);
+    vec3[2] v3 = pull_vec3(true);
+    results.r[gl_GlobalInvocationID.x].v3[0] = vec4(v3[0],1.);
+    results.r[gl_GlobalInvocationID.x].v3[1] = vec4(v3[1],1.);
+    results.r[gl_GlobalInvocationID.x].v2 = pull_vec2(true);
+    results.r[gl_GlobalInvocationID.x].v4 = pull_vec4(true);
+    results.r[gl_GlobalInvocationID.x].f[1] = float(gl_GlobalInvocationID.x);*/
+    results.r[gl_GlobalInvocationID.x].mask = mask;
+}
\ No newline at end of file
diff --git a/src/gui.rs b/src/gui.rs
index 7a8464d8188c31d2bac4f8c9574168b58fad71ad..457b1b164681f451def2b16f2af2aad9ad58fdd5 100644
--- a/src/gui.rs
+++ b/src/gui.rs
@@ -10,6 +10,15 @@ fn sized_text(ui: &mut egui::Ui, text: impl Into<String>, size: f32) {
     ui.label(egui::RichText::new(text).size(size));
 }
 
+#[derive(Copy, Clone, Debug, Default, PartialEq, Eq)]
+pub struct PreviousDebug {
+    pub bounding_boxes: bool,
+    pub disable_meshcull: bool,
+    pub disable_meshscale1: bool,
+    pub disable_meshscale2: bool,
+    pub disable_taskcull: bool,
+}
+
 #[derive(Debug)]
 pub struct GState {
     pub cursor_sensitivity: f32,
@@ -20,6 +29,8 @@ pub struct GState {
     pub csg: Vec<CSG>,
 
     pub fps: [f64; 128],
+
+    pub debug: PreviousDebug,
 }
 
 impl Default for GState {
@@ -33,6 +44,8 @@ impl Default for GState {
             csg: vec![],
 
             fps: [0.0; 128],
+
+            debug: Default::default(),
         }
     }
 }
@@ -87,6 +100,12 @@ pub fn gui_up(gui: &mut Gui, state: &mut GState) {
                         let line = Line::new(fps);
                         ui.heading("FPS");
                         Plot::new("fps").view_aspect(2.0).show(ui, |plot_ui| plot_ui.line(line));
+                        ui.heading("Debug");
+                        ui.toggle_value(&mut state.debug.bounding_boxes, "Render bounding boxes instead");
+                        ui.toggle_value(&mut state.debug.disable_meshcull, "Disable mesh shader culling");
+                        ui.toggle_value(&mut state.debug.disable_meshscale1, "Disable mesh shader scaling part 1");
+                        ui.toggle_value(&mut state.debug.disable_meshscale2, "Disable mesh shader scaling part 2");
+                        ui.toggle_value(&mut state.debug.disable_taskcull, "Disable task shader culling");
                     });
                 });
             });
diff --git a/src/implicit.mesh.glsl b/src/implicit.mesh.glsl
index 0719e88ac18608f641ab618295019f969e2cf200..b7623a7b9c72c99d67467353320555727412ffab 100644
--- a/src/implicit.mesh.glsl
+++ b/src/implicit.mesh.glsl
@@ -8,12 +8,17 @@ uint DescriptionIndex;
 #include "include.glsl"
 #include "intervals.glsl"
 
+layout (constant_id = 0) const bool DISABLE_TRACE = false;
+layout (constant_id = 1) const bool DISABLE_SCALING_1 = false;
+layout (constant_id = 2) const bool DISABLE_SCALING_2 = false;
+
 layout(local_size_x=32,local_size_y=1,local_size_z=1)in;
 layout(triangles,max_vertices=256,max_primitives=192)out;
 
 layout(location=0)out VertexOutput
 {
     vec4 position;
+    vec3 globaloffset;
 }vertexOutput[];
 
 struct MeshMasks
@@ -23,11 +28,11 @@ struct MeshMasks
     vec3 bottomleft;            //12
     vec3 topright;              //12
     uint globalindex;           //4
-    //uint objectindex;           //4
-};                              //total = 992 bytes
+    vec3 globaloffset;          //12
+};                              //total = 1000 bytes
 taskPayloadSharedEXT MeshMasks meshmasks;
 
-layout(set=0,binding=20)restrict writeonly buffer fragmentMasks{
+layout(set=0,binding=20, std430)restrict writeonly buffer fragmentMasks{
     uint8_t masks[][masklen];
 }fragmentpassmasks;
 
@@ -40,6 +45,7 @@ void main()
     mask = meshmasks.masks[gl_WorkGroupID.x];
     vec3 bottomleft = meshmasks.bottomleft;
     vec3 topright = meshmasks.topright;
+    vec3 center = (topright + bottomleft) / 2.;
     
     vec4[8]positions={
         vec4(bottomleft,1.),
@@ -61,29 +67,31 @@ void main()
     int GlobalInvocationIndex = int((meshmasks.globalindex*32+localindex)*32+gl_LocalInvocationID.x);
     
     //adjust scale and position
-    for (int i = 0; i<8; i++)
-    {
-        positions[i] *= vec4(0.25,0.25,0.5,1.);
-        positions[i].x += (topright.x-bottomleft.x)*0.25 * (mod(localindex,4.)-1.5);
-        positions[i].y += (topright.y-bottomleft.y)*0.25 * (mod(floor(localindex/4.),4.)-1.5);
-        positions[i].z += ((topright.z-bottomleft.z)*0.5 * (floor(localindex/16.)-0.5) + (topright.z+bottomleft.z)*0.25);
+    if (!DISABLE_SCALING_1) {
+        for (int i = 0; i<8; i++)
+        {
+            positions[i] *= vec4(0.25,0.25,0.5,1.);
+            positions[i].x += (topright.x-bottomleft.x)*0.25 * (mod(localindex,4.)-1.5) + (topright.x+bottomleft.x)*0.375;
+            positions[i].y += (topright.y-bottomleft.y)*0.25 * (mod(floor(localindex/4.),4.)-1.5) + (topright.y+bottomleft.y)*0.375;
+            positions[i].z += ((topright.z-bottomleft.z)*0.5 * (floor(localindex/16.)-0.5) + (topright.z+bottomleft.z)*0.25);
+        }
     }
 
     vec4 localtopright=positions[0];
     vec4 localbottomleft=positions[7];
 
-    for (int i = 0; i<8; i++)
-    {
-        positions[i] *= vec4(0.25,0.25,0.5,1.);
-        positions[i].x += (localtopright.x-localbottomleft.x)*(0.25) * (mod(gl_LocalInvocationID.x,4.)-1.5) + (localtopright.x+localbottomleft.x)*0.375;
-        positions[i].y += (localtopright.y-localbottomleft.y)*(0.25) * (mod(floor(gl_LocalInvocationID.x/4.),4.)-1.5) + (localtopright.y+localbottomleft.y)*0.375;
-        positions[i].z += (localtopright.z-localbottomleft.z)*(0.5) * (floor(gl_LocalInvocationID.x/16.)-0.5) + (localtopright.z+localbottomleft.z)*0.25;
+    if (!DISABLE_SCALING_2) {
+        for (int i = 0; i<8; i++)
+        {
+            positions[i] *= vec4(0.25,0.25,0.5,1.);
+            positions[i].x += (localtopright.x-localbottomleft.x)*(0.25) * (mod(gl_LocalInvocationID.x,4.)-1.5) + (localtopright.x+localbottomleft.x)*0.375;
+            positions[i].y += (localtopright.y-localbottomleft.y)*(0.25) * (mod(floor(gl_LocalInvocationID.x/4.),4.)-1.5) + (localtopright.y+localbottomleft.y)*0.375;
+            positions[i].z += (localtopright.z-localbottomleft.z)*(0.5) * (floor(gl_LocalInvocationID.x/16.)-0.5) + (localtopright.z+localbottomleft.z)*0.25;
+        }
     }
 
     bvec3 signingvec=greaterThan((inverse(pc.world)*vec4(camera_uniforms.campos,1)).xyz,(positions[0].xyz+positions[7].xyz)/2);
 
-    float[2] check = scene(vec3[2](vec3(positions[0].xyz),vec3(positions[7].xyz)), true);
-
     gl_MeshPrimitivesEXT[pindex+0].gl_PrimitiveID=GlobalInvocationIndex;
     gl_MeshPrimitivesEXT[pindex+1].gl_PrimitiveID=GlobalInvocationIndex;
     gl_MeshPrimitivesEXT[pindex+2].gl_PrimitiveID=GlobalInvocationIndex;
@@ -91,8 +99,15 @@ void main()
     gl_MeshPrimitivesEXT[pindex+4].gl_PrimitiveID=GlobalInvocationIndex;
     gl_MeshPrimitivesEXT[pindex+5].gl_PrimitiveID=GlobalInvocationIndex;
 
-    if ((check[0] < 0) && (check[1] > 0) && (gl_WorkGroupID.x < 32))
-    //if (true)
+    bool triangle_fine;
+    if (!DISABLE_TRACE) {
+        float[2] check = scene(vec3[2](vec3(positions[0].xyz),vec3(positions[7].xyz)), true);
+        triangle_fine = (check[0] <= 0) && (check[1] >= 0);
+    } else {
+        triangle_fine = true;
+    }
+
+    if (triangle_fine)
     {
         fragmentpassmasks.masks[GlobalInvocationIndex]=mask;
         
@@ -112,6 +127,14 @@ void main()
         vertexOutput[vindex+5].position=(positions[5]);
         vertexOutput[vindex+6].position=(positions[6]);
         vertexOutput[vindex+7].position=(positions[7]);
+        vertexOutput[vindex+0].globaloffset=(meshmasks.globaloffset);
+        vertexOutput[vindex+1].globaloffset=(meshmasks.globaloffset);
+        vertexOutput[vindex+2].globaloffset=(meshmasks.globaloffset);
+        vertexOutput[vindex+3].globaloffset=(meshmasks.globaloffset);
+        vertexOutput[vindex+4].globaloffset=(meshmasks.globaloffset);
+        vertexOutput[vindex+5].globaloffset=(meshmasks.globaloffset);
+        vertexOutput[vindex+6].globaloffset=(meshmasks.globaloffset);
+        vertexOutput[vindex+7].globaloffset=(meshmasks.globaloffset);
         /*vertexOutput[vindex+0].position=vec4(bottomleft,1.);
         vertexOutput[vindex+1].position=vec4(bottomleft.x,bottomleft.y,topright.z,1.);
         vertexOutput[vindex+2].position=vec4(bottomleft.x,topright.y,bottomleft.z,1.);
diff --git a/src/implicit.task.glsl b/src/implicit.task.glsl
index 01beb21b497a3453e52c954a811592dc68267717..34a5fcdc035b7bb79a7b88356d1ab2bd8ca40bcf 100644
--- a/src/implicit.task.glsl
+++ b/src/implicit.task.glsl
@@ -8,6 +8,8 @@
 #include "include.glsl"
 #include "intervals.glsl"
 
+layout (constant_id = 0) const bool DISABLE_TRACE = false;
+
 layout(local_size_x=32,local_size_y=1,local_size_z=1)in;
 
 struct MeshMasks
@@ -17,8 +19,8 @@ struct MeshMasks
     vec3 bottomleft;            //12
     vec3 topright;              //12
     uint globalindex;           //4
-    //uint objectindex;           //4
-};                              //total = 992 bytes
+    vec3 globaloffset;          //12
+};                              //total = 1000 bytes
 taskPayloadSharedEXT MeshMasks meshmasks;
 
 shared uint index;
@@ -34,43 +36,62 @@ void main()
         index=0;
     }
 
-    #define CLIPCHECK 65536
+    //#define CLIPCHECK 65536
     
-    float[6]bounds={
+    /*float[6]bounds={
         CLIPCHECK-sceneoverride(vec3(CLIPCHECK,0,0),false),
         CLIPCHECK-sceneoverride(vec3(0,CLIPCHECK,0),false),
         CLIPCHECK-sceneoverride(vec3(0,0,CLIPCHECK),false),
         -CLIPCHECK+sceneoverride(vec3(-CLIPCHECK,0,0),false),
         -CLIPCHECK+sceneoverride(vec3(0,-CLIPCHECK,0),false),
         -CLIPCHECK+sceneoverride(vec3(0,0,-CLIPCHECK),false),
-    };
+    };*/
     /*const float[6]bounds={
         1,1,1,-1,-1,-1,
     };*/
+
+    float[6]bounds=scene_description.desc[gl_WorkGroupID.x+1].bounds;
+ 
+
+    /*bounds[0] += abs(bounds[0] * 0.01);
+    bounds[1] += abs(bounds[1] * 0.01);
+    bounds[2] += abs(bounds[2] * 0.01);
+    bounds[3] -= abs(bounds[3] * 0.01);
+    bounds[4] -= abs(bounds[4] * 0.01);
+    bounds[5] -= abs(bounds[5] * 0.01);*/
     
     vec3 bottomleft = vec3(bounds[3],bounds[4],bounds[5]);
     vec3 topright   = vec3(bounds[0],bounds[1],bounds[2]);
-    vec3 center = (topright + bottomleft) / 2;
+    vec3 globaloffset = vec3(0);//(topright+bottomleft)/2.;
 
-#define adjust(var) var -= center;\
+#define adjust(var) \
     var *= vec3(0.25,0.25,0.25);\
-    var.x += (bounds[0]-bounds[3]) * 0.25 * (mod(gl_LocalInvocationID.x,4.)-1.5)                        ;\
-    var.y += (bounds[1]-bounds[4]) * 0.25 * (mod(floor(gl_LocalInvocationID.x/4.),4.)-1.5)              ;\
-    var.z += (bounds[2]-bounds[5]) * 0.25 * (floor(gl_LocalInvocationID.x/16.)-1.5+gl_WorkGroupID.z*2.) ;\
-    var += center;
+    var.x += ((bounds[0]-bounds[3]) * 0.25 * (mod(gl_LocalInvocationID.x,4.)-1.5)) + ((bounds[0]+bounds[3])*0.375)                        ;\
+    var.y += ((bounds[1]-bounds[4]) * 0.25 * (mod(floor(gl_LocalInvocationID.x/4.),4.)-1.5)) + ((bounds[1]+bounds[4])*0.375)              ;\
+    var.z += ((bounds[2]-bounds[5]) * 0.25 * (floor(gl_LocalInvocationID.x/16.)-1.5+gl_WorkGroupID.z*2.)) + ((bounds[2]+bounds[5])*0.375) ;\
     
-
     adjust(bottomleft);
     adjust(topright);
 
     barrier();
 
-    float[2] check = scene(vec3[2](bottomleft,topright), false);
+    bool triangle_fine;
+    if (!DISABLE_TRACE) {
+        float[2] check = scene(vec3[2](bottomleft+globaloffset,topright+globaloffset), true);
+        triangle_fine = (check[0] <= 0) && (check[1] >= 0);
+    } else {
+        triangle_fine = true;
+    }
+
+    //default_mask();
+    //float[2] check = scene(vec3[2](bottomleft,topright), false);
+    //float[2] check = scene(vec3[2](bottomleft-globaloffset,topright-globaloffset), false);
     //float[2] check = scene(vec3[2](vec3(bounds[3],bounds[4],bounds[5]),vec3(bounds[0],bounds[1],bounds[2])), false);
 
-    if ((check[0] < 0) && (check[1] > 0))
+    //if (((check[0] <= 0) && (check[1] >= 0)) )//|| ((check[1] <= 0) && ()))
     //if ((bottomleft.x >= -1) && (bottomleft.y >= -1) && (bottomleft.z >= -1) && (topright.x <= 1) && (topright.y <= 1) && (topright.z <= 1))
     //if ((gl_LocalInvocationID.x == 0) && (bottomleft.x >= 0))
+    if (triangle_fine)
     {
         uint localindex = atomicAdd(index, 1);
         //if (localindex < 32) {
@@ -84,9 +105,12 @@ void main()
         meshmasks.bottomleft = vec3(bounds[3],bounds[4],(bounds[5]*0.5) + ((bounds[2]-bounds[5])*0.5 * (-0.5+gl_WorkGroupID.z)));
         meshmasks.topright   = vec3(bounds[0],bounds[1],(bounds[2]*0.5) + ((bounds[2]-bounds[5])*0.5 * (-0.5+gl_WorkGroupID.z)));
         meshmasks.globalindex = gl_WorkGroupID.x*2+gl_WorkGroupID.z;
-        //meshmasks.objectindex = DescriptionIndex;
+        meshmasks.globaloffset = globaloffset/0.25;
     }
 
     barrier();
+    if (gl_LocalInvocationID.x==0)
+    {
     EmitMeshTasksEXT(index,1,1);
+    }
 }
\ No newline at end of file
diff --git a/src/instructionset.glsl b/src/instructionset.glsl
index 81432a4ad6e511fd4092f0abb729f94d7cb947ee..db95a09efbfb8318bf25294301f5a8f077830f20 100644
--- a/src/instructionset.glsl
+++ b/src/instructionset.glsl
@@ -216,4 +216,6 @@ const uint OPCubeVec3=__LINE__-1;                           //V3    //V3
 const uint OPSquareVec4=__LINE__-1;                         //V4    //V4
 const uint OPCubeVec4=__LINE__-1;                           //V4    //V4
 const uint OPSDFSphere=__LINE__-1;                          //F V3  //F
+const uint OPSDFBox=__LINE__-1;                             //V3 V3 //F
+const uint OPSDFTorus=__LINE__-1;                           //V2 V3 //F
 const uint OPInvalid=__LINE__-1;                            //      //
\ No newline at end of file
diff --git a/src/interpreter.glsl b/src/interpreter.glsl
index 228d9d19d0e89ee14b07b9cf1380de13a2176422..1cf01fa6ad32bc3135268f918db8cb175c86626d 100644
--- a/src/interpreter.glsl
+++ b/src/interpreter.glsl
@@ -6,7 +6,7 @@
 
 #include "instructionset.glsl"
 
-layout(set=0,binding=2)uniform SceneDescription{
+layout(set=0,binding=2, std430)uniform SceneDescription{
     u32vec4 d[13];//stored packed for space efficiency, 8 per index
 }scene_description;
 
diff --git a/src/interpreter.rs b/src/interpreter.rs
index 1ec71da17a7953ac054f5504cfb37b835e9e3925..5be2494f27066c1a561b9fb1d0da505ca8f00a77 100644
--- a/src/interpreter.rs
+++ b/src/interpreter.rs
@@ -1,26 +1,19 @@
-use crate::instruction_set::InstructionSet;
-
-use cgmath::{
-    Deg, EuclideanSpace, Euler, Matrix2, Matrix3, Matrix4, Point3, Rad, SquareMatrix, Vector2,
-    Vector3, Vector4,
+use crate::{
+    instruction_set::InstructionSet::*, objects::Inputs, Float, Mat2, Mat3, Mat4, Vec2, Vec3, Vec4,
+    CSG,
 };
 
-struct Interpreter<'csg>
-{
-    float_stack: [[f32;2];8],
-    float_stack_head: usize,
-    vec2_stack: [[Vector2;2];8],
-    vec2_stack_head: usize,
-    vec3_stack: [[Vector3;2];8],
-    vec3_stack_head: usize,
-    vec4_stack: [[Vector4;2];8],
-    vec4_stack_head: usize,
-    mat2_stack: [[Matrix2;2];1],
-    mat2_stack_head: usize,
-    mat3_stack: [[Matrix3;2];1],
-    mat3_stack_head: usize,
-    mat4_stack: [[Matrix4;2];1],
-    mat4_stack_head: usize,
+use cgmath::{Array, ElementWise, InnerSpace, MetricSpace, VectorSpace};
+
+#[derive(Clone, Debug)]
+pub struct Interpreter<'csg> {
+    float_stack: Vec<Float>,
+    vec2_stack: Vec<Vec2>,
+    vec3_stack: Vec<Vec3>,
+    vec4_stack: Vec<Vec4>,
+    mat2_stack: Vec<Mat2>,
+    mat3_stack: Vec<Mat3>,
+    mat4_stack: Vec<Mat4>,
 
     float_const_head: usize,
     vec2_const_head: usize,
@@ -29,3064 +22,1688 @@ struct Interpreter<'csg>
     mat2_const_head: usize,
     mat3_const_head: usize,
     mat4_const_head: usize,
-    
+
     csg: &'csg CSG,
 }
-impl<'csg> Interpreter<'csg>
-{
 
-fn push_float(f: [f32;2]) -> () {
-    float_stack[float_stack_head]=f;
-    float_stack_head+=1;
+trait Pull {
+    fn pull(inter: &mut Interpreter) -> Self;
 }
 
-fn pull_float(c: bool) -> [f32;2] {
-    if c {
-        let f = fconst.floats[float_const_head];
-        float_const_head+=1;
-        return float[2](f,f);
-    }
-    else {
-        return float_stack[--float_stack_head];
+macro_rules! impl_pull {
+    ($type:ty, $stack:ident) => {
+        impl Pull for $type {
+            fn pull(inter: &mut Interpreter) -> Self {
+                inter.$stack.pop().unwrap()
+            }
+        }
+    };
+}
+
+impl_pull!(Float, float_stack);
+impl_pull!(Vec2, vec2_stack);
+impl_pull!(Vec3, vec3_stack);
+impl_pull!(Vec4, vec4_stack);
+impl_pull!(Mat2, mat2_stack);
+impl_pull!(Mat3, mat3_stack);
+impl_pull!(Mat4, mat4_stack);
+
+impl From<Inputs> for Float {
+    fn from(value: Inputs) -> Self {
+        match value {
+            Inputs::Float(a) => a,
+            _ => panic!("Incorrect float conversion!"),
+        }
     }
 }
 
-float cpull_float(){
-    return fconst.floats[float_const_head++];
-}
-
-void push_vec2(vec2 f[2]){
-    vec2_stack[vec2_stack_head++]=f;
+impl From<Inputs> for Vec2 {
+    fn from(value: Inputs) -> Self {
+        match value {
+            Inputs::Vec2(a) => a,
+            _ => panic!("Incorrect vec2 conversion!"),
+        }
+    }
 }
 
-vec2[2]pull_vec2(bool c){
-    if (c) {
-        vec2 f = v2const.vec2s[vec2_const_head++];
-        return vec2[2](f,f);
-    }
-    else {
-        return vec2_stack[--vec2_stack_head];
+impl From<Inputs> for Vec3 {
+    fn from(value: Inputs) -> Self {
+        match value {
+            Inputs::Vec3(a) => a,
+            _ => panic!("Incorrect vec3 conversion!"),
+        }
     }
 }
 
-vec2 cpull_vec2(){
-    return v2const.vec2s[vec2_const_head++];
+impl From<Inputs> for Vec4 {
+    fn from(value: Inputs) -> Self {
+        match value {
+            Inputs::Vec4(a) => a,
+            _ => panic!("Incorrect vec4 conversion!"),
+        }
+    }
 }
 
-void push_vec3(vec3 f[2]){
-    vec3_stack[vec3_stack_head++]=f;
+impl From<Inputs> for Mat2 {
+    fn from(value: Inputs) -> Self {
+        match value {
+            Inputs::Mat2(a) => a,
+            _ => panic!("Incorrect mat2 conversion!"),
+        }
+    }
 }
 
-vec3[2]pull_vec3(bool c){
-    if (c) {
-        vec3 f = v3const.vec3s[vec3_const_head++];
-        return vec3[2](f,f);
-    }
-    else {
-        return vec3_stack[--vec3_stack_head];
+impl From<Inputs> for Mat3 {
+    fn from(value: Inputs) -> Self {
+        match value {
+            Inputs::Mat3(a) => a,
+            _ => panic!("Incorrect mat3 conversion!"),
+        }
     }
 }
 
-vec3 cpull_vec3(){
-    return v3const.vec3s[vec3_const_head++];
+impl From<Inputs> for Mat4 {
+    fn from(value: Inputs) -> Self {
+        match value {
+            Inputs::Mat4(a) => a,
+            _ => panic!("Incorrect mat4 conversion!"),
+        }
+    }
 }
 
-void push_vec4(vec4 f[2]){
-    vec4_stack[vec4_stack_head++]=f;
+impl From<Mat4> for Inputs {
+    fn from(value: Mat4) -> Self {
+        Inputs::Mat4(value)
+    }
 }
 
-vec4[2]pull_vec4(bool c){
-    if (c) {
-        vec4 f = v4const.vec4s[vec4_const_head++];
-        return vec4[2](f,f);
-    }
-    else {
-        return vec4_stack[--vec4_stack_head];
+impl From<Mat3> for Inputs {
+    fn from(value: Mat3) -> Self {
+        Inputs::Mat3(value)
     }
 }
 
-vec4 cpull_vec4(){
-    return v4const.vec4s[vec4_const_head++];
+impl From<Mat2> for Inputs {
+    fn from(value: Mat2) -> Self {
+        Inputs::Mat2(value)
+    }
 }
 
-void push_mat2(mat2 f[2]){
-    mat2_stack[mat2_stack_head++]=f;
+impl From<Vec4> for Inputs {
+    fn from(value: Vec4) -> Self {
+        Inputs::Vec4(value)
+    }
 }
 
-mat2[2]pull_mat2(bool c){
-    if (c) {
-        mat2 f = m2const.mat2s[mat2_const_head++];
-        return mat2[2](f,f);
-    }
-    else {
-        return mat2_stack[--mat2_stack_head];
+impl From<Vec3> for Inputs {
+    fn from(value: Vec3) -> Self {
+        Inputs::Vec3(value)
     }
 }
 
-mat2 cpull_mat2(){
-    return m2const.mat2s[mat2_const_head++];
+impl From<Vec2> for Inputs {
+    fn from(value: Vec2) -> Self {
+        Inputs::Vec2(value)
+    }
 }
 
-void push_mat3(mat3 f[2]){
-    mat3_stack[mat3_stack_head++]=f;
+impl From<Float> for Inputs {
+    fn from(value: Float) -> Self {
+        Inputs::Float(value)
+    }
 }
 
-mat3[2]pull_mat3(bool c){
-    if (c) {
-        mat3 f = m3const.mat3s[mat3_const_head++];
-        return mat3[2](f,f);
+impl<'csg> Interpreter<'csg> {
+    fn pull<T: Pull + From<Inputs>>(&mut self, consider: Inputs) -> T {
+        if consider == Inputs::Variable {
+            T::pull(self)
+        } else {
+            consider.into()
+        }
     }
-    else {
-        return mat3_stack[--mat3_stack_head];
+    fn push<T: Into<Inputs>>(&mut self, value: T) {
+        let input: Inputs = value.into();
+        match input {
+            Inputs::Float(f) => self.float_stack.push(f),
+            Inputs::Vec2(f) => self.vec2_stack.push(f),
+            Inputs::Vec3(f) => self.vec3_stack.push(f),
+            Inputs::Vec4(f) => self.vec4_stack.push(f),
+            Inputs::Mat2(f) => self.mat2_stack.push(f),
+            Inputs::Mat3(f) => self.mat3_stack.push(f),
+            Inputs::Mat4(f) => self.mat4_stack.push(f),
+            Inputs::Variable => unreachable!(),
+        }
     }
 }
 
-mat3 cpull_mat3(){
-    return m3const.mat3s[mat3_const_head++];
-}
-
-void push_mat4(mat4 f[2]){
-    mat4_stack[mat4_stack_head++]=f;
-}
-
-mat4[2]pull_mat4(bool c){
-    if (c) {
-        mat4 f = m4const.mat4s[mat4_const_head++];
-        return mat4[2](f,f);
-    }
-    else {
-        return mat4_stack[--mat4_stack_head];
+macro_rules! mul {
+    ($self:ident, $instruction:ident, $type1:ty, Float) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        $self.push(in1 * in2);
+    };
+    ($self:ident, $instruction:ident, $type1:ty, $type2:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        $self.push(in1.mul_element_wise(in2));
+    };
+}
+
+macro_rules! div {
+    ($self:ident, $instruction:ident, $type1:ty, Float) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        $self.push(in1 / in2);
+    };
+    ($self:ident, $instruction:ident, $type1:ty, $type2:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        $self.push(in1.div_element_wise(in2));
+    };
+}
+
+macro_rules! add {
+    ($self:ident, $instruction:ident, Float, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        $self.push(in1 + in2);
+    };
+    ($self:ident, $instruction:ident, $type1:ty, $type2:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        $self.push(in1.add_element_wise(in2));
+    };
+}
+
+macro_rules! sub {
+    ($self:ident, $instruction:ident, Float, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        $self.push(in1 - in2);
+    };
+    ($self:ident, $instruction:ident, $type1:ty, $type2:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        $self.push(in1.sub_element_wise(in2));
+    };
+}
+
+macro_rules! modulo {
+    ($self:ident, $instruction:ident, Float, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        $self.push(in1 % in2);
+    };
+    ($self:ident, $instruction:ident, $type1:ty, $type2:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        $self.push(in1.rem_element_wise(in2));
+    };
+}
+
+macro_rules! pow {
+    ($self:ident, $instruction:ident, Float, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        $self.push(in1.powf(in2));
+    };
+    ($self:ident, $instruction:ident, $type1:ty, Float) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        $self.push(in1.map(|x| x.powf(in2)));
+    };
+    ($self:ident, $instruction:ident, $type1:ty, $type2:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        $self.push(in1.zip(in2, Float::powf));
+    };
+}
+
+macro_rules! distance {
+    ($self:ident, $instruction:ident, $type1:ty, $type2:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        $self.push(in1.distance(in2));
+    };
+}
+
+macro_rules! dot {
+    ($self:ident, $instruction:ident, $type1:ty, $type2:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        $self.push(in1.dot(in2));
+    };
+}
+
+macro_rules! clamp {
+    ($self:ident, $instruction:ident, Float, Float, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        let in3: Float = $self.pull($instruction.constants[2]);
+        $self.push(in1.clamp(in2, in3));
+    };
+    ($self:ident, $instruction:ident, $type1:ty, Float, Float) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        let in3: Float = $self.pull($instruction.constants[2]);
+        $self.push(in1.map(|x| x.clamp(in2, in3)));
+    };
+    ($self:ident, $instruction:ident, $type1:ty, $type2:ty, $type3:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        let in3: $type3 = $self.pull($instruction.constants[2]);
+        $self.push(in1.zip(in2, Float::max).zip(in3, Float::min));
+    };
+}
+
+macro_rules! mix {
+    ($self:ident, $instruction:ident, Float, Float, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        let in3: Float = $self.pull($instruction.constants[2]);
+        $self.push((in1 * ((1 as Float) - in3)) + (in2 * in3));
+    };
+    ($self:ident, $instruction:ident, $type1:ty, $type2:ty, Float) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        let in3: Float = $self.pull($instruction.constants[2]);
+        $self.push(in1.lerp(in2, in3));
+    };
+    ($self:ident, $instruction:ident, $type1:ty, $type2:ty, $type3:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        let in3: $type3 = $self.pull($instruction.constants[2]);
+        $self.push(
+            (in1.mul_element_wise(<$type3>::from_value(1 as Float).sub_element_wise(in3)))
+                + (in2.mul_element_wise(in3)),
+        );
+    };
+}
+
+macro_rules! fma {
+    ($self:ident, $instruction:ident, Float, Float, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        let in3: Float = $self.pull($instruction.constants[2]);
+        $self.push(in1.mul_add(in2, in3));
+    };
+    ($self:ident, $instruction:ident, $type1:ty, $type2:ty, $type3:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type1 = $self.pull($instruction.constants[1]);
+        let in3: $type3 = $self.pull($instruction.constants[2]);
+        $self.push((in1.mul_element_wise(in2)) + in3);
+    };
+}
+
+macro_rules! square {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1 * in1);
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.mul_element_wise(in1));
+    };
+}
+
+macro_rules! cube {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1 * in1 * in1);
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.mul_element_wise(in1).mul_element_wise(in1));
+    };
+}
+
+macro_rules! len {
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.magnitude());
+    };
+}
+
+macro_rules! mattranspose {
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.transpose());
+    };
+}
+
+macro_rules! matdeterminant {
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.determinant());
+    };
+}
+
+macro_rules! matinvert {
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.inverse());
+    };
+}
+
+macro_rules! absolute {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.abs());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::abs));
+    };
+}
+
+//imitate glsl, not rust
+fn sign(f: Float) -> Float {
+    if f == 0. {
+        f
+    } else {
+        f.signum()
     }
 }
 
-mat4 cpull_mat4(){
-    return m4const.mat4s[mat4_const_head++];
-}
-
-void clear_stacks()
-{
-    float_stack_head=0;
-    vec2_stack_head=0;
-    vec3_stack_head=0;
-    vec4_stack_head=0;
-    mat2_stack_head=0;
-    mat3_stack_head=0;
-    mat4_stack_head=0;
-    float_const_head=0;
-    vec2_const_head=0;
-    vec3_const_head=0;
-    vec4_const_head=0;
-    mat2_const_head=0;
-    mat3_const_head=0;
-    mat4_const_head=0;
-}
-
-const int masklen = 29;
-uint8_t mask[masklen];
-
-void default_mask()
-{
-    mask=uint8_t[29](
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255),
-        uint8_t(255)
-    );
-}
-
-//monotonic
-#define multiply {\
-    temp[0]=in1[0]*in2[0];\
-    temp[1]=in1[0]*in2[1];\
-    temp[2]=in1[1]*in2[0];\
-    temp[3]=in1[1]*in2[1];\
-    in1[0]=min(temp[0],min(temp[1],min(temp[2],temp[3])));\
-    in1[1]=max(temp[0],max(temp[1],max(temp[2],temp[3])));\
-}
-//monotonic
-#define divide {\
-    temp[0]=in1[0]/in2[0];\
-    temp[1]=in1[0]/in2[1];\
-    temp[2]=in1[1]/in2[0];\
-    temp[3]=in1[1]/in2[1];\
-    in1[0]=min(temp[0],min(temp[1],min(temp[2],temp[3])));\
-    in1[1]=max(temp[0],max(temp[1],max(temp[2],temp[3])));\
-}
-//monotonic
-#define add {\
-    in1[0]+=in2[0];\
-    in1[1]+=in2[1];\
-}
-//monotonic
-#define subtract {\
-    in1[0]-=in2[1];\
-    in1[1]-=in2[0];\
-}
-//???
-//THIS IS NOT CORRECT! This is very hard to calculate, and as such the upper bound is over-estimated.
-//However, it IS accurate if in2 is constant.
-//EDIT: Actually, on further inspection, this may just be entirely incorrect. Who knows, frankly.
-#define modulo {\
-    temp[0]=in1[0]/in2[0];\
-    temp[1]=in1[0]/in2[1];\
-    temp[2]=in1[1]/in2[0];\
-    temp[3]=in1[1]/in2[1];\
-    mixer1=mix(mixer1,lessThan(min(temp[0],min(temp[1],min(temp[2],temp[3]))),zero),greaterThan(max(temp[0],max(temp[1],max(temp[2],temp[3]))),zero));\
-    temp[0]=mod(in1[0],in2[0]);\
-    temp[1]=mod(in1[0],in2[1]);\
-    temp[2]=mod(in1[1],in2[0]);\
-    temp[3]=mod(in1[1],in2[1]);\
-    in1[0]=mix(min(temp[0],min(temp[1],min(temp[2],temp[3]))),zero,mixer1);\
-    in1[1]=mix(max(temp[0],max(temp[1],max(temp[2],temp[3]))),highest,mixer1);\
-}
-//always monotonic for x>0
-#define power {\
-    temp[0]=pow(in1[0],in2[0]);\
-    temp[1]=pow(in1[0],in2[1]);\
-    temp[2]=pow(in1[1],in2[0]);\
-    temp[3]=pow(in1[1],in2[1]);\
-    in1[0]=min(temp[0],min(temp[1],min(temp[2],temp[3])));\
-    in1[1]=max(temp[0],max(temp[1],max(temp[2],temp[3])));\
-}
-//handled
-#define dist {\
-    float out1[2];\
-    mixer=mix(mixer,greaterThan(in1[1]-in2[0],zero),lessThan(in1[0]-in2[1],zero));\
-    out1[0]=length(mix(min(abs(in1[0]-in2[1]),abs(in1[1]-in2[0])),zero,mixer));\
-    out1[1]=length(max(abs(in1[0]-in2[1]),abs(in1[1]-in2[0])));\
-}
-//variable
-#define dotprod {\
-    float[2] out1;\
-    float a=dot(in1[0],in2[0]);\
-    float b=dot(in1[0],in2[1]);\
-    float c=dot(in1[1],in2[0]);\
-    float d=dot(in1[1],in2[1]);\
-    out1[0]=min(a,min(b,min(c,d)));\
-    out1[1]=max(a,max(b,max(c,d)));\
-}
-//monotonic
-#define clampof {\
-    in1[0]=clamp(in1[0],in2[0],in3[0]);\
-    in1[1]=clamp(in1[1],in2[1],in3[1]);\
-}
-//monotonic
-#define mixof {\
-    in1[0]=mix(in1[0],in2[0],in3[0]);\
-    in1[1]=mix(in1[1],in2[1],in3[1]);\
-}
-//monotonic
-#define fmaof {\
-    multiply;\
-    in2=in3;\
-    add;\
-}
-//variable
-#define square {\
-    mixer=mix(mixer,greaterThan(in1[1],zero),lessThan(in1[0],zero));\
-    out1[0]=mix(min(in1[0]*in1[0],in1[1]*in1[1]),zero,mixer);\
-    out1[1]=max(in1[0]*in1[0],in1[1]*in1[1]);\
-}
-//monotonic
-#define cube {\
-    out1[0]=in1[0]*in1[0]*in1[0];\
-    out1[0]=in1[1]*in1[1]*in1[1];\
-}
-//mess
-#define len {\
-    float out1[2];\
-    mixer=mix(mixer,greaterThan(in1[1],zero),lessThan(in1[0],zero));\
-    out1[0]=length(mix(min(abs(in1[0]),abs(in1[1])),zero,mixer));\
-    out1[1]=length(max(abs(in1[0]),abs(in1[1])));\
-}
-//monotonic
-#define mattranspose {\
-    in1[0]=transpose(in1[0]);\
-    in1[1]=transpose(in1[1]);\
-}
-//unused
-#define matdeterminant {\
-    temp[0]=determinant(in1[0]);\
-    temp[1]=determinant(in1[1]);\
-    in1[0]=min(temp[0],temp[1]);\
-    in1[1]=max(temp[0],temp[1]);\
-}
-//unused
-#define matinvert {\
-    temp[0]=inverse(in1[0]);\
-    temp[1]=inverse(in1[1]);\
-    in1[0]=min(temp[0],temp[1]);\
-    in1[1]=max(temp[0],temp[1]);\
-}
-//handled
-#define absolute {\
-    mixer=mix(mixer,greaterThan(in1[1],zero),lessThan(in1[0],zero));\
-    temp[0]=abs(in1[0]);\
-    temp[1]=abs(in1[1]);\
-    in1[0]=mix(min(temp[0],temp[1]),zero,mixer);\
-    in1[1]=max(temp[0],temp[1]);\
-}
-//monotonic
-#define signof {\
-    in1[0]=sign(in1[0]);\
-    in1[1]=sign(in1[1]);\
-}
-//monotonic
-#define floorof {\
-    in1[0]=floor(in1[0]);\
-    in1[1]=floor(in1[1]);\
-}
-//monotonic
-#define ceilingof {\
-    in1[0]=ceil(in1[0]);\
-    in1[1]=ceil(in1[1]);\
-}
-//handled
-//If the integer component changes across the interval, then we've managed to hit 
-//a discontinuity, and the max and min are constant.
-//Otherwise, it's monotonic.
-#define fractionalof {\
-    mixer = equal(floor(in1[0]),floor(in1[1]));\
-    in1[0]=mix(zero,fract(in1[0]),mixer);\
-    in1[1]=mix(one,fract(in1[1]),mixer);\
-}
-//monotonic
-#define squarerootof {\
-    in1[0]=sqrt(in1[0]);\
-    in1[1]=sqrt(in1[1]);\
-}
-//monotonic
-#define inversesquarerootof {\
-    temp[0]=inversesqrt(in1[0]);\
-    in1[0]=inversesqrt(in1[1]);\
-    in1[1]=temp[0];\
-}
-//monotonic
-#define exponentof {\
-    in1[0]=exp(in1[0]);\
-    in1[1]=exp(in1[1]);\
-}
-//monotonic
-#define exponent2of {\
-    in1[0]=exp2(in1[0]);\
-    in1[1]=exp2(in1[0]);\
-}
-//monotonic
-#define logarithmof {\
-    in1[0]=log(in1[0]);\
-    in1[1]=log(in1[1]);\
-}
-//monotonic
-#define logarithm2of {\
-    in1[0]=log2(in1[0]);\
-    in1[1]=log2(in1[1]);\
-}
-#define PI 3.1415926536
-//handled
-#define sineof {\
-    mixer1=equal(floor((in1[0]/PI)+0.5),floor((in1[1]/PI)+0.5));\
-    upper=mod(floor((in1[1]/PI)+0.5),2);\
-    mixer2=greaterThan(floor((in1[1]/PI)+0.5)-floor((in1[0]/PI)+0.5),one);\
-    temp[0]=sin(in1[0]);\
-    temp[1]=sin(in1[1]);\
-    in1[0]=mix(minusone,min(temp[0],temp[1]),mix(mix(equal(upper,one),vfalse,mixer2),vtrue,mixer1));\
-    in1[1]=mix(one,max(temp[0],temp[1]),mix(mix(equal(upper,zero),vfalse,mixer2),vtrue,mixer1));\
-}
-//handled
-#define cosineof {\
-    mixer1=equal(floor((in1[0]/PI)),floor((in1[1]/PI)));\
-    upper=mod(floor((in1[1]/PI)),2);\
-    mixer2=greaterThan(floor((in1[1]/PI))-floor((in1[0]/PI)),one);\
-    temp[0]=cos(in1[0]);\
-    temp[1]=cos(in1[1]);\
-    in1[0]=mix(minusone,min(temp[0],temp[1]),mix(mix(equal(upper,zero),vfalse,mixer2),vtrue,mixer1));\
-    in1[1]=mix(one,max(temp[0],temp[1]),mix(mix(equal(upper,one),vfalse,mixer2),vtrue,mixer1));\
-}
-//handled
-#define tangentof {\
-    mixer1=equal(floor((in1[0]/PI)),floor((in1[1]/PI)));\
-    in1[0]=mix(inf*-1.,tan(in1[0]),mixer1);\
-    in1[1]=mix(inf,tan(in1[1]),mixer1);\
-}
-//monotonic
-#define arcsineof {\
-    in1[0]=asin(in1[0]);\
-    in1[1]=asin(in1[1]);\
-}
-//negatively monotonic
-#define arccosineof {\
-    temp[0]=acos(in1[1]);\
-    temp[1]=acos(in1[0]);\
-    in1[0]=temp[0];\
-    in1[1]=temp[1];\
-}
-//monotonic
-#define arctangentof {\
-    in1[0]=atan(in1[0]);\
-    in1[1]=atan(in1[1]);\
-}
-//monotonic
-#define hyperbolicsineof {\
-    in1[0]=sinh(in1[0]);\
-    in1[1]=sinh(in1[1]);\
-}
-//handled
-#define hyperboliccosineof {\
-    mixer=mix(mixer,greaterThan(in1[1],zero),lessThan(in1[0],zero));\
-    out1[0]=mix(min(cosh(in1[0]),cosh(in1[1])),one,mixer);\
-    out1[1]=max(cosh(in1[0]),cosh(in1[1]));\
-}
-//monotonic
-#define hyperbolictangentof {\
-    in1[0]=tanh(in1[0]);\
-    in1[1]=tanh(in1[1]);\
-}
-//monotonic
-#define hyperbolicarcsineof {\
-    in1[0]=asinh(in1[0]);\
-    in1[1]=asinh(in1[1]);\
-}
-//monotonic
-#define hyperbolicarccosineof {\
-    in1[0]=acosh(in1[0]);\
-    in1[1]=acosh(in1[1]);\
-}
-//monotonic
-#define hyperbolicarctangentof {\
-    in1[0]=atanh(in1[0]);\
-    in1[1]=atanh(in1[1]);\
-}
-//obvious
-#define minimum {\
-    in1[0]=min(in1[0],in2[0]);\
-    in1[1]=min(in1[1],in2[1]);\
-}
-//obvious
-#define maximum {\
-    in1[0]=max(in1[0],in2[0]);\
-    in1[1]=max(in1[1],in2[1]);\
-}
-//monotonic
-#define roundof {\
-    in1[0]=round(in1[0]);\
-    in1[1]=round(in1[1]);\
-}
-//truncate
-#define truncof {\
-    in1[0]=trunc(in1[0]);\
-    in1[1]=trunc(in1[1]);\
-}
-
-Description desc;
-//0 - prune nothing
-//1 - prune myself
-//2 - prune myself and children
-uint8_t pruneallchecks[(masklen*8)+1];
-
-void pruneall (int pos) {
-    uint8_t[2] deps;
-    for (int i = pos-1; i >= 0; i--)
-    {
-        deps = depinfo.dependencies[desc.dependencies+i];
-        if (deps[1] != 255) {
-            switch (int((pruneallchecks[deps[0]] << 4) | (pruneallchecks[deps[1]] << 2) | (pruneallchecks[i] << 0)))
-            {
-                case ((2 << 4) | (2 << 2) | (2 << 0)):
-                case ((2 << 4) | (1 << 2) | (2 << 0)):
-                case ((2 << 4) | (0 << 2) | (2 << 0)):
-                case ((1 << 4) | (2 << 2) | (2 << 0)):
-                case ((1 << 4) | (1 << 2) | (2 << 0)):
-                case ((1 << 4) | (0 << 2) | (2 << 0)):
-                case ((0 << 4) | (2 << 2) | (2 << 0)):
-                case ((0 << 4) | (1 << 2) | (2 << 0)):
-                case ((0 << 4) | (0 << 2) | (2 << 0)):
-
-                case ((2 << 4) | (2 << 2) | (1 << 0)):
-                case ((2 << 4) | (2 << 2) | (0 << 0)):
-                case ((2 << 4) | (1 << 2) | (1 << 0)):
-                case ((1 << 4) | (2 << 2) | (1 << 0)):
-                pruneallchecks[i]=uint8_t(2);
-                mask[i>>3] &= uint8_t(~(1<<(i&7)));
-                break;
-
-                case ((2 << 4) | (1 << 2) | (0 << 0)):
-                case ((2 << 4) | (0 << 2) | (0 << 0)):
-                case ((1 << 4) | (2 << 2) | (0 << 0)):
-                case ((0 << 4) | (2 << 2) | (0 << 0)):
-                case ((0 << 4) | (0 << 2) | (1 << 0)):
-                case ((1 << 4) | (1 << 2) | (1 << 0)):
-                case ((2 << 4) | (0 << 2) | (1 << 0)):
-                case ((0 << 4) | (2 << 2) | (1 << 0)):
-                case ((0 << 4) | (1 << 2) | (1 << 0)):
-                case ((1 << 4) | (0 << 2) | (1 << 0)):
-                pruneallchecks[i]=uint8_t(1);
-                mask[i>>3] &= uint8_t(~(1<<(i&7)));
-                break;
-
-                case ((1 << 4) | (1 << 2) | (0 << 0)):
-                case ((1 << 4) | (0 << 2) | (0 << 0)):
-                case ((0 << 4) | (1 << 2) | (0 << 0)):
-                case ((0 << 4) | (0 << 2) | (0 << 0)):
-                default:
-                break;
-            }
-        }
-        else if (pruneallchecks[i] > 0)
-        {
-            mask[i>>3] &= uint8_t(~(1<<(i&7)));
-        }
-        else if (pruneallchecks[deps[0]] > 1) {
-            pruneallchecks[i]=uint8_t(2);
-            mask[i>>3] &= uint8_t(~(1<<(i&7)));
+macro_rules! sign {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(sign(in1));
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(sign));
+    };
+}
+
+macro_rules! floor {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.floor());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::floor));
+    };
+}
+
+macro_rules! ceiling {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.ceil());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::ceil));
+    };
+}
+
+macro_rules! fract {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.fract());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::fract));
+    };
+}
+
+macro_rules! squareroot {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.sqrt());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::sqrt));
+    };
+}
+
+macro_rules! inversesquareroot {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push((1 as Float) / in1.sqrt());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(|x| (1 as Float) / x.sqrt()));
+    };
+}
+
+macro_rules! exponent {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.exp());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::exp));
+    };
+}
+
+macro_rules! exponent2 {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.exp2());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::exp2));
+    };
+}
+
+macro_rules! logarithm {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.ln());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::ln));
+    };
+}
+
+macro_rules! logarithm2 {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.log2());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::log2));
+    };
+}
+
+macro_rules! sine {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.sin());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::sin));
+    };
+}
+
+macro_rules! cosine {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.cos());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::cos));
+    };
+}
+
+macro_rules! tangent {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.tan());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::tan));
+    };
+}
+
+macro_rules! arcsine {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.asin());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::asin));
+    };
+}
+
+macro_rules! arccosine {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.acos());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::acos));
+    };
+}
+
+macro_rules! arctangent {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.atan());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::atan));
+    };
+}
+
+macro_rules! hyperbolicsine {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.sinh());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::sinh));
+    };
+}
+
+macro_rules! hyperboliccosine {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.cosh());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::cosh));
+    };
+}
+
+macro_rules! hyperbolictangent {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.tanh());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::tanh));
+    };
+}
+
+macro_rules! hyperbolicarcsine {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.asinh());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::asinh));
+    };
+}
+
+macro_rules! hyperbolicarccosine {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.acosh());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::acosh));
+    };
+}
+
+macro_rules! hyperbolicarctangent {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.atanh());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::atanh));
+    };
+}
+
+macro_rules! min {
+    ($self:ident, $instruction:ident, $type1:ty, Float) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        $self.push(in1.min(in2));
+    };
+    ($self:ident, $instruction:ident, $type1:ty,$type2:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        $self.push(in1.zip(in2, Float::min));
+    };
+}
+
+macro_rules! max {
+    ($self:ident, $instruction:ident, $type1:ty, Float) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: Float = $self.pull($instruction.constants[1]);
+        $self.push(in1.max(in2));
+    };
+    ($self:ident, $instruction:ident, $type1:ty,$type2:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        let in2: $type2 = $self.pull($instruction.constants[1]);
+        $self.push(in1.zip(in2, Float::max));
+    };
+}
+
+macro_rules! round {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.round());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::round));
+    };
+}
+
+macro_rules! trunc {
+    ($self:ident, $instruction:ident, Float) => {
+        let in1: Float = $self.pull($instruction.constants[0]);
+        $self.push(in1.trunc());
+    };
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.map(Float::trunc));
+    };
+}
+
+macro_rules! normalise {
+    ($self:ident, $instruction:ident, $type1:ty) => {
+        let in1: $type1 = $self.pull($instruction.constants[0]);
+        $self.push(in1.normalize());
+    };
+}
+
+impl<'csg> Interpreter<'csg> {
+    pub fn new(csg: &'csg CSG) -> Self {
+        Interpreter {
+            float_stack: vec![],
+            vec2_stack: vec![],
+            vec3_stack: vec![],
+            vec4_stack: vec![],
+            mat2_stack: vec![],
+            mat3_stack: vec![],
+            mat4_stack: vec![],
+            float_const_head: 0,
+            vec2_const_head: 0,
+            vec3_const_head: 0,
+            vec4_const_head: 0,
+            mat2_const_head: 0,
+            mat3_const_head: 0,
+            mat4_const_head: 0,
+            csg,
         }
     }
-}
 
-void prunesome (int pos, bool prunemask[6]) {
-    uint8_t[2] deps;
-    int maskindex = 0;
-    for (int i = 0; i < pos; i++)
+    fn clear_stacks(&mut self) -> () {
+        self.float_stack.clear();
+        self.vec2_stack.clear();
+        self.vec3_stack.clear();
+        self.vec4_stack.clear();
+        self.mat2_stack.clear();
+        self.mat3_stack.clear();
+        self.mat4_stack.clear();
+        self.float_const_head = 0;
+        self.vec2_const_head = 0;
+        self.vec3_const_head = 0;
+        self.vec4_const_head = 0;
+        self.mat2_const_head = 0;
+        self.mat3_const_head = 0;
+        self.mat4_const_head = 0;
+    }
+
+    //const masklen: usize = 29;
+    //mask: [u8; masklen];
+
+    /*void default_mask()
     {
-        deps = depinfo.dependencies[desc.dependencies+i];
-        if (deps[1] != 255) {
-            if (deps[0] == pos) {
-                if (prunemask[maskindex++]) {
-                    pruneallchecks[i]++;
+        mask=uint8_t[29](
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255),
+            uint8_t(255)
+        );
+    }*/
+
+    pub fn scene(&mut self, p: Vec3) -> Float {
+        self.clear_stacks();
+        self.push(p);
+
+        for instruction in &self.csg.parts {
+            match instruction.opcode {
+                OPAddFloatFloat => {
+                    add!(self, instruction, Float, Float);
                 }
-            }
-            if (deps[1] == pos) {
-                if (prunemask[maskindex++]) {
-                    pruneallchecks[i]++;
+
+                OPAddVec2Vec2 => {
+                    add!(self, instruction, Vec2, Vec2);
                 }
-            }
-            //pruneallchecks[i] = min(pruneallchecks[i],2);
-        }
-        else if (deps[0] == pos) {
-            if (prunemask[maskindex++]) {
-                pruneallchecks[i]=uint8_t(2);
-            }
-        }
-    }
-}
 
-void passthroughself (int pos) {
-    pruneallchecks[pos]=uint8_t(1);
-}
-void pruneself (int pos) {
-    pruneallchecks[pos]=uint8_t(2);
-}
-
-#define maskdefine (mask[major_position]&(1<<minor_position))==0
-#define inputmask1(m_in_1) if(maskdefine){\
-    if(ifconst(0)) {m_in_1++;}\
-    break;\
-}
-#define inputmask2(m_in_1,m_in_2) if(maskdefine){\
-    if(ifconst(0)) {m_in_1++;}\
-    if(ifconst(1)) {m_in_2++;}\
-    break;\
-}
-#define inputmask3(m_in_1,m_in_2,m_in_3) if(maskdefine){\
-    if(ifconst(0)) {m_in_1++;}\
-    if(ifconst(1)) {m_in_2++;}\
-    if(ifconst(2)) {m_in_3++;}\
-    break;\
-}
-#define inputmask4(m_in_1,m_in_2,m_in_3,m_in_4) if(maskdefine){\
-    if(ifconst(0)) {m_in_1++;}\
-    if(ifconst(1)) {m_in_2++;}\
-    if(ifconst(2)) {m_in_3++;}\
-    if(ifconst(3)) {m_in_4++;}\
-    break;\
-}
-#define inputmask5(m_in_1,m_in_2,m_in_3,m_in_4,m_in_5) if(maskdefine){\
-    if(ifconst(0)) {m_in_1++;}\
-    if(ifconst(1)) {m_in_2++;}\
-    if(ifconst(2)) {m_in_3++;}\
-    if(ifconst(3)) {m_in_4++;}\
-    if(ifconst(4)) {m_in_5++;}\
-    break;\
-}
-#define inputmask6(m_in_1,m_in_2,m_in_3,m_in_4,m_in_5,m_in_6) if(maskdefine){\
-    if(ifconst(0)) {m_in_1++;}\
-    if(ifconst(1)) {m_in_2++;}\
-    if(ifconst(2)) {m_in_3++;}\
-    if(ifconst(3)) {m_in_4++;}\
-    if(ifconst(4)) {m_in_5++;}\
-    if(ifconst(5)) {m_in_6++;}\
-    break;\
-}
-
-#define minpruning if (all(lessThan(in1[1],in2[0]))) {\
-    prunesome(OPPos,bool[6](false,true,false,false,false,false));\
-    passthroughself(OPPos);\
-} else if (all(lessThan(in2[1],in1[0]))) {\
-    prunesome(OPPos,bool[6](true,false,false,false,false,false));\
-    passthroughself(OPPos);\
-}
-
-#define maxpruning if (all(greaterThan(in1[0],in2[1]))) {\
-    prunesome(OPPos,bool[6](false,true,false,false,false,false));\
-    passthroughself(OPPos);\
-} else if (all(greaterThan(in2[0],in1[1]))) {\
-    prunesome(OPPos,bool[6](true,false,false,false,false,false));\
-    passthroughself(OPPos);\
-}
-
-#ifdef debug
-vec3 scene(vec3 p[2], bool prune)
-#else
-float[2]scene(vec3 p[2], bool prune)
-#endif
-{
-    uint major_position=0;
-    uint minor_position=0;
-    
-    uint minor_integer_cache[8];
-
-    desc = scene_description.desc[gl_GlobalInvocationID.x];
-    
-    clear_stacks();
-    push_vec3(p);
-    
-    bool cont=true;
-    
-    while(cont){
-        if(minor_position==0){
-            get_caches;
-        }
-        /*#ifdef debug
-        if((minor_integer_cache[minor_position]&1023)==OPStop) {
-            return vec3(0.,0.,1.);
-        }
-        if((minor_integer_cache[minor_position]&1023)==OPSDFSphere) {
-            return vec3(1.,0.,0.);
-        }
-        return vec3(0.,1.,0.);
-        #endif*/
-
-                switch(minor_integer_cache[minor_position]&1023)
-                {
-                    #define ifconst(pos) (minor_integer_cache[minor_position] & (1 << (15 - pos))) > 0
-                    #define OPPos int((major_position<<3)|minor_position)
-                    case OPAddFloatFloat:{
-                        inputmask2(float_const_head,float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        add;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPAddVec2Vec2:{
-                        inputmask2(vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        add;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPAddVec2Float:{
-                        inputmask2(vec2_const_head,float_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        add;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPAddVec3Vec3:{
-                        inputmask2(vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        add;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPAddVec3Float:{
-                        inputmask2(vec3_const_head,float_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        add;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPAddVec4Vec4:{
-                        inputmask2(vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        add;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPAddVec4Float:{
-                        inputmask2(vec4_const_head,float_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        add;
-                        push_vec4(in1);
-                    }
-                    break;
-                    
-                    case OPSubFloatFloat:{
-                        inputmask2(float_const_head,float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        subtract;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPSubVec2Vec2:{
-                        inputmask2(vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        subtract;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPSubVec2Float:{
-                        inputmask2(vec2_const_head,float_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        subtract;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPSubVec3Vec3:{
-                        inputmask2(vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        subtract;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPSubVec3Float:{
-                        inputmask2(vec3_const_head,float_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        subtract;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPSubVec4Vec4:{
-                        inputmask2(vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        subtract;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPSubVec4Float:{
-                        inputmask2(vec4_const_head,float_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        subtract;
-                        push_vec4(in1);
-                    }
-                    break;
-                    
-                    case OPMulFloatFloat:{
-                        inputmask2(float_const_head,float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        float[4]temp;
-                        multiply;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPMulVec2Vec2:{
-                        inputmask2(vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        vec2[4]temp;
-                        multiply;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPMulVec2Float:{
-                        inputmask2(vec2_const_head,float_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        vec2[4]temp;
-                        multiply;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPMulVec3Vec3:{
-                        inputmask2(vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        vec3[4]temp;
-                        multiply;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPMulVec3Float:{
-                        inputmask2(vec3_const_head,float_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        vec3[4]temp;
-                        multiply;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPMulVec4Vec4:{
-                        inputmask2(vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        vec4[4]temp;
-                        multiply;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPMulVec4Float:{
-                        inputmask2(vec4_const_head,float_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        vec4[4]temp;
-                        multiply;
-                        push_vec4(in1);
-                    }
-                    break;
-                    
-                    case OPDivFloatFloat:{
-                        inputmask2(float_const_head,float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        float[4]temp;
-                        divide;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPDivVec2Vec2:{
-                        inputmask2(vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        vec2[4]temp;
-                        divide;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPDivVec2Float:{
-                        inputmask2(vec2_const_head,float_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        vec2[4]temp;
-                        divide;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPDivVec3Vec3:{
-                        inputmask2(vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        vec3[4]temp;
-                        divide;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPDivVec3Float:{
-                        inputmask2(vec3_const_head,float_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        vec3[4]temp;
-                        divide;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPDivVec4Vec4:{
-                        inputmask2(vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        vec4[4]temp;
-                        divide;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPDivVec4Float:{
-                        inputmask2(vec4_const_head,float_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        vec4[4]temp;
-                        divide;
-                        push_vec4(in1);
-                    }
-                    break;
-                    
-                    case OPPowFloatFloat:{
-                        inputmask2(float_const_head,float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        float[4]temp;
-                        power;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPPowVec2Vec2:{
-                        inputmask2(vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        vec2[4]temp;
-                        power;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPPowVec3Vec3:{
-                        inputmask2(vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        vec3[4]temp;
-                        power;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPPowVec4Vec4:{
-                        inputmask2(vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        vec4[4]temp;
-                        power;
-                        push_vec4(in1);
-                    }
-                    break;
-                    
-                    case OPModFloatFloat:{
-                        inputmask2(float_const_head,float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        float a=in1[0]/in2[0];
-                        float b=in1[0]/in2[1];
-                        float c=in1[1]/in2[0];
-                        float d=in1[1]/in2[1];
-                        if ((min(a,min(b,min(c,d))) < 0) && (max(a,max(b,max(c,d))) > 0))
-                        {
-                            in1[0]=0;
-                            in1[1]=in2[1];
-                        }
-                        else {
-                            a=mod(in1[0],in2[0]);
-                            b=mod(in1[0],in2[1]);
-                            c=mod(in1[1],in2[0]);
-                            d=mod(in1[1],in2[1]);
-                            in1[0]=min(a,min(b,min(c,d)));
-                            in1[1]=max(a,max(b,max(c,d)));
-                        }
-                        push_float(in1);
-                    }
-                    break;
-                    case OPModVec2Vec2:{
-                        inputmask2(vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        vec2[4]temp;
-                        bvec2 mixer1 = bvec2(false);
-                        vec2 zero = vec2(0);
-                        vec2 highest = in2[1];
-                        modulo;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPModVec2Float:{
-                        inputmask2(vec2_const_head,float_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        vec2[4]temp;
-                        bvec2 mixer1 = bvec2(false);
-                        vec2 zero = vec2(0);
-                        vec2 highest = vec2(in2[1]);
-                        modulo;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPModVec3Vec3:{
-                        inputmask2(vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        vec3[4]temp;
-                        bvec3 mixer1 = bvec3(false);
-                        vec3 zero = vec3(0);
-                        vec3 highest = in2[1];
-                        modulo;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPModVec3Float:{
-                        inputmask2(vec3_const_head,float_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        vec3[4]temp;
-                        bvec3 mixer1 = bvec3(false);
-                        vec3 zero = vec3(0);
-                        vec3 highest = vec3(in2[1]);
-                        modulo;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPModVec4Vec4:{
-                        inputmask2(vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        vec4[4]temp;
-                        bvec4 mixer1 = bvec4(false);
-                        vec4 zero = vec4(0);
-                        vec4 highest = in2[1];
-                        modulo;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPModVec4Float:{
-                        inputmask2(vec4_const_head,float_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        vec4[4]temp;
-                        bvec4 mixer1 = bvec4(false);
-                        vec4 zero = vec4(0);
-                        vec4 highest = vec4(in2[1]);
-                        modulo;
-                        push_vec4(in1);
-                    }
-                    break;
-
-
-                    case OPCrossVec3:{
-                        inputmask2(vec3_const_head,vec3_const_head);
-                        /*#define getminmaxleft minleft = min(minleft, check); maxleft = max(maxleft, check);
-                        #define getminmaxright minright = min(minright, check); maxright = max(maxright, check);
-                        #define resetminmax minleft = 9999999999; minright = minleft; maxleft = -9999999999; maxright = maxleft;
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        vec3 outmax;
-                        vec3 outmin;
-                        float check;
-                        float maxleft;
-                        float minleft;
-                        float maxright;
-                        float minright;
-
-                        resetminmax;
-                        check = (in1[0].y*in2[0].z); getminmaxleft;
-                        check = (in1[0].y*in2[1].z); getminmaxleft;
-                        check = (in1[1].y*in2[0].z); getminmaxleft;
-                        check = (in1[1].y*in2[1].z); getminmaxleft;
-                        check = (in1[0].z*in2[0].y); getminmaxright;
-                        check = (in1[0].z*in2[1].y); getminmaxright;
-                        check = (in1[1].z*in2[0].y); getminmaxright;
-                        check = (in1[1].z*in2[1].y); getminmaxright;
-
-                        outmax.x = maxleft - minright; outmin.x = minleft - maxright;
-
-                        resetminmax;
-                        check = (in1[0].z*in2[0].x); getminmaxleft;
-                        check = (in1[0].z*in2[1].x); getminmaxleft;
-                        check = (in1[1].z*in2[0].x); getminmaxleft;
-                        check = (in1[1].z*in2[1].x); getminmaxleft;
-                        check = (in1[0].x*in2[0].z); getminmaxright;
-                        check = (in1[0].x*in2[1].z); getminmaxright;
-                        check = (in1[1].x*in2[0].z); getminmaxright;
-                        check = (in1[1].x*in2[1].z); getminmaxright;
-
-                        outmax.y = maxleft - minright; outmin.y = minleft - maxright;
-
-                        resetminmax;
-                        check = (in1[0].x*in2[0].y); getminmaxleft;
-                        check = (in1[0].x*in2[1].y); getminmaxleft;
-                        check = (in1[1].x*in2[0].y); getminmaxleft;
-                        check = (in1[1].x*in2[1].y); getminmaxleft;
-                        check = (in1[0].y*in2[0].x); getminmaxright;
-                        check = (in1[0].y*in2[1].x); getminmaxright;
-                        check = (in1[1].y*in2[0].x); getminmaxright;
-                        check = (in1[1].y*in2[1].x); getminmaxright;
-
-                        outmax.z = maxleft - minright; outmin.z = minleft - maxright;
-
-                        push_vec3(vec3[2](outmin,outmax));*/
-
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-
-                        vec3 a=cross(in1[0],in2[0]);
-                        vec3 b=cross(in1[0],in2[1]);
-                        vec3 c=cross(in1[1],in2[0]);
-                        vec3 d=cross(in1[1],in2[1]);
-
-                        push_vec3(vec3[2](
-                            min(a,min(b,min(c,d))),
-                            max(a,max(b,max(c,d)))
-                        ));
-                    }
-                    break;
-
-                    case OPDotVec2:{
-                        inputmask2(vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        float[2]out1;
-                        dotprod;
-                        push_float(out1);
-                    }
-                    break;
-                    case OPDotVec3:{
-                        inputmask2(vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        float[2]out1;
-                        dotprod;
-                        push_float(out1);
-                    }
-                    break;
-                    case OPDotVec4:{
-                        inputmask2(vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        float[2]out1;
-                        dotprod;
-                        push_float(out1);
-                    }
-                    break;
-
-                    case OPLengthVec2:{
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        bvec2 mixer = bvec2(false);
-                        vec2 zero = vec2(0);
-                        float[2]out1;
-                        len;
-                        push_float(out1);
-                    }
-                    break;
-                    case OPLengthVec3:{
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        bvec3 mixer = bvec3(false);
-                        vec3 zero = vec3(0);
-                        float[2]out1;
-                        len;
-                        push_float(out1);
-                    }
-                    break;
-                    case OPLengthVec4:{
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        bvec4 mixer = bvec4(false);
-                        vec4 zero = vec4(0);
-                        float[2]out1;
-                        len;
-                        push_float(out1);
-                    }
-                    break;
-
-                    case OPDistanceVec2:{
-                        inputmask2(vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        bvec2 mixer = bvec2(false);
-                        vec2 zero = vec2(0);
-                        float[2]out1;
-                        dist;
-                        push_float(out1);
-                    }
-                    break;
-                    case OPDistanceVec3:{
-                        inputmask2(vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        bvec3 mixer = bvec3(false);
-                        vec3 zero = vec3(0);
-                        float[2]out1;
-                        len;
-                        push_float(out1);
-                    }
-                    break;
-                    case OPDistanceVec4:{
-                        inputmask2(vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        bvec4 mixer = bvec4(false);
-                        vec4 zero = vec4(0);
-                        float[2]out1;
-                        dist;
-                        push_float(out1);
-                    }
-                    break;
-
-                    case OPAbsFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float a=abs(in1[0]);
-                        float b=abs(in1[1]);
-                        if ((in1[1] > 0) && (in1[0] < 0))
-                        {
-                            in1[0] = 0;
-                        }
-                        else
-                        {
-                        in1[0]=min(a,b);
-                        }
-                        in1[1]=max(a,b);
-                        push_float(in1);
-                    }
-                    break;
-                    case OPSignFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        signof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPFloorFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        floorof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPCeilFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        ceilingof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPFractFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        if (floor(in1[0]) == floor(in1[1])) {
-                            in1[0] = fract(in1[0]);
-                            in1[1] = fract(in1[1]);
-                        }
-                        else {
-                            in1[0] = 0;
-                            in1[1] = 1;
-                        }
-                        push_float(in1);
-                    }
-                    break;
-                    case OPSqrtFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        squarerootof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPInverseSqrtFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        inversesquarerootof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPExpFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        exponentof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPExp2Float: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        exponent2of;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPLogFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        logarithmof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPLog2Float: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        logarithm2of;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPSinFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float a=sin(in1[0]);
-                        float b=sin(in1[1]);
-                        if (floor((in1[0]/PI)+0.5) == floor((in1[1]/PI)+0.5)) {
-                            in1[0] = min(a,b);
-                            in1[1] = max(a,b);
-                        }
-                        else if (floor((in1[1]/PI)+0.5)-floor((in1[0]/PI)+0.5) > 1)
-                        {
-                            in1[0] = -1;
-                            in1[1] = 1;
-                        }
-                        else if (mod(floor((in1[1]/PI)+0.5),2) == 0) {
-                            in1[0] = min(a,b);
-                            in1[1] = 1;
-                        }
-                        else {
-                            in1[0] = -1;
-                            in1[1] = max(a,b);
-                        }
-                        push_float(in1);
-                    }
-                    break;
-                    case OPCosFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float a=cos(in1[0]);
-                        float b=cos(in1[1]);
-                        if (floor((in1[0]/PI)) == floor((in1[1]/PI))) {
-                            in1[0] = min(a,b);
-                            in1[1] = max(a,b);
-                        }
-                        else if (floor((in1[1]/PI))-floor((in1[0]/PI)) > 1)
-                        {
-                            in1[0] = -1;
-                            in1[1] = 1;
-                        }
-                        else if (mod(floor((in1[1]/PI)),2) == 1) {
-                            in1[0] = min(a,b);
-                            in1[1] = 1;
-                        }
-                        else {
-                            in1[0] = -1;
-                            in1[1] = max(a,b);
-                        }
-                        push_float(in1);
-                    }
-                    break;
-                    case OPTanFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        if (floor((in1[0]/PI)) == floor((in1[1]/PI)))
-                        {
-                            in1[0] = NINFINITY;
-                            in1[1] = INFINITY;
-                        }
-                        else {
-                            in1[0] = tan(in1[0]);
-                            in1[1] = tan(in1[1]);
-                        }
-                        push_float(in1);
-                    }
-                    break;
-                    case OPAsinFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        arcsineof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPAcosFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        arccosineof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPAtanFloat: {
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        arctangentof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPAcoshFloat:{
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        hyperbolicarccosineof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPAsinhFloat:{
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        hyperbolicarcsineof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPAtanhFloat:{
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        hyperbolicarctangentof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPCoshFloat:{
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        if ((in1[1] > 0) && (in1[0] < 0))
-                        {
-                            in1[0] = 1;
-                        }
-                        else {
-                            in1[0] = min(cosh(in1[0]),cosh(in1[1]));
-                        }
-                        in1[1] = max(cosh(in1[0]),cosh(in1[1]));
-                        push_float(in1);
-                    }
-                    break;
-                    case OPSinhFloat:{
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        hyperbolicsineof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPTanhFloat:{
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        hyperbolictangentof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPRoundFloat:{
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        roundof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPTruncFloat:{
-                        inputmask1(float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]temp;
-                        truncof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPMinMaterialFloat:
-                    case OPMinFloat: {
-                        inputmask2(float_const_head,float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        if (in1[1] < in2[0])
-                        {
-                            prunesome(OPPos,bool[6](false,true,false,false,false,false));
-                            passthroughself(OPPos);
-                        } else if (in2[1] < in1[0])
-                        {
-                            prunesome(OPPos,bool[6](true,false,false,false,false,false));
-                            passthroughself(OPPos);
-                        }
-                        float[2]temp;
-                        minimum;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPMaxMaterialFloat:
-                    case OPMaxFloat: {
-                        inputmask2(float_const_head,float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        if (in1[0] > in2[1])
-                        {
-                            prunesome(OPPos,bool[6](false,true,false,false,false,false));
-                            passthroughself(OPPos);
-                        } else if (in2[0] > in1[1])
-                        {
-                            prunesome(OPPos,bool[6](true,false,false,false,false,false));
-                            passthroughself(OPPos);
-                        }
-                        float[2]temp;
-                        maximum;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPFMAFloat: {
-                        inputmask3(float_const_head,float_const_head,float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        float[2]in3=pull_float(ifconst(2));
-                        float[4]temp;
-                        fmaof;
-                        push_float(in1);
-                    }
-                    break;
-
-                    case OPAbsVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        bvec2 mixer = bvec2(false);
-                        vec2 zero = vec2(0);
-                        absolute;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPSignVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        signof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPFloorVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        floorof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPCeilVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        ceilingof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPFractVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        bvec2 mixer = bvec2(false);
-                        vec2 zero = vec2(0);
-                        vec2 one = vec2(1);
-                        fractionalof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPSqrtVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        squarerootof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPInverseSqrtVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        inversesquarerootof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPExpVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        exponentof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPExp2Vec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        exponent2of;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPLogVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        logarithmof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPLog2Vec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        logarithm2of;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPSinVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        bvec2 mixer1 = bvec2(false);
-                        bvec2 mixer2 = bvec2(false);
-                        bvec2 vfalse = bvec2(false);
-                        bvec2 vtrue = bvec2(true);
-                        vec2 upper;
-                        vec2 one = vec2(1);
-                        vec2 zero = vec2(0);
-                        vec2 minusone = vec2(-1);
-                        sineof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPCosVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        bvec2 mixer1 = bvec2(false);
-                        bvec2 mixer2 = bvec2(false);
-                        bvec2 vfalse = bvec2(false);
-                        bvec2 vtrue = bvec2(true);
-                        vec2 upper;
-                        vec2 one = vec2(1);
-                        vec2 zero = vec2(0);
-                        vec2 minusone = vec2(-1);
-                        cosineof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPTanVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        bvec2 mixer1 = bvec2(false);
-                        vec2 inf = vec2(INFINITY);
-                        tangentof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPAsinVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        arcsineof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPAcosVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        arccosineof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPAtanVec2: {
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        arctangentof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPAcoshVec2:{
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        hyperbolicarccosineof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPAsinhVec2:{
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        hyperbolicarcsineof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPAtanhVec2:{
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        hyperbolicarctangentof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPCoshVec2:{
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        bvec2 mixer = bvec2(false);
-                        vec2 one = vec2(1);
-                        vec2 zero = vec2(0);
-                        vec2[2] out1;
-                        hyperboliccosineof;
-                        push_vec2(out1);
-                    }
-                    break;
-                    case OPSinhVec2:{
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        hyperbolicsineof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPTanhVec2:{
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        hyperbolictangentof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPRoundVec2:{
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        roundof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPTruncVec2:{
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]temp;
-                        truncof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPMinVec2: {
-                        inputmask2(vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        minpruning;
-                        vec2[2]temp;
-                        minimum;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPMaxVec2: {
-                        inputmask2(vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        maxpruning;
-                        vec2[2]temp;
-                        maximum;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPFMAVec2: {
-                        inputmask3(vec2_const_head,vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        vec2[2]in3=pull_vec2(ifconst(2));
-                        vec2[4]temp;
-                        fmaof;
-                        push_vec2(in1);
-                    }
-                    break;
-
-                    case OPAbsVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        bvec3 mixer = bvec3(false);
-                        vec3 zero = vec3(0);
-                        absolute;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPSignVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        signof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPFloorVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        floorof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPCeilVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        ceilingof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPFractVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        bvec3 mixer = bvec3(false);
-                        vec3 zero = vec3(0);
-                        vec3 one = vec3(1);
-                        fractionalof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPSqrtVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        squarerootof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPInverseSqrtVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        inversesquarerootof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPExpVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        exponentof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPExp2Vec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        exponent2of;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPLogVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        logarithmof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPLog2Vec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        logarithm2of;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPSinVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        bvec3 mixer1 = bvec3(false);
-                        bvec3 mixer2 = bvec3(false);
-                        bvec3 vfalse = bvec3(false);
-                        bvec3 vtrue = bvec3(true);
-                        vec3 upper;
-                        vec3 one = vec3(1);
-                        vec3 zero = vec3(0);
-                        vec3 minusone = vec3(-1);
-                        sineof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPCosVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        bvec3 mixer1 = bvec3(false);
-                        bvec3 mixer2 = bvec3(false);
-                        bvec3 vfalse = bvec3(false);
-                        bvec3 vtrue = bvec3(true);
-                        vec3 upper;
-                        vec3 one = vec3(1);
-                        vec3 zero = vec3(0);
-                        vec3 minusone = vec3(-1);
-                        cosineof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPTanVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        bvec3 mixer1 = bvec3(false);
-                        vec3 inf = vec3(INFINITY);
-                        tangentof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPAsinVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        arcsineof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPAcosVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        arccosineof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPAtanVec3: {
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        arctangentof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPAcoshVec3:{
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        hyperbolicarccosineof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPAsinhVec3:{
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        hyperbolicarcsineof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPAtanhVec3:{
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        hyperbolicarctangentof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPCoshVec3:{
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        bvec3 mixer = bvec3(false);
-                        vec3 one = vec3(1);
-                        vec3 zero = vec3(0);
-                        vec3[2] out1;
-                        hyperboliccosineof;
-                        push_vec3(out1);
-                    }
-                    break;
-                    case OPSinhVec3:{
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        hyperbolicsineof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPTanhVec3:{
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        hyperbolictangentof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPRoundVec3:{
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        roundof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPTruncVec3:{
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]temp;
-                        truncof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPMinVec3: {
-                        inputmask2(vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        minpruning;
-                        vec3[2]temp;
-                        minimum;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPMaxVec3: {
-                        inputmask2(vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        maxpruning;
-                        vec3[2]temp;
-                        maximum;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPFMAVec3: {
-                        inputmask3(vec3_const_head,vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        vec3[2]in3=pull_vec3(ifconst(2));
-                        vec3[4]temp;
-                        fmaof;
-                        push_vec3(in1);
-                    }
-                    break;
-
-                    case OPAbsVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        bvec4 mixer = bvec4(false);
-                        vec4 zero = vec4(0);
-                        absolute;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPSignVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        signof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPFloorVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        floorof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPCeilVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        ceilingof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPFractVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        bvec4 mixer = bvec4(false);
-                        vec4 zero = vec4(0);
-                        vec4 one = vec4(1);
-                        fractionalof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPSqrtVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        squarerootof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPInverseSqrtVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        inversesquarerootof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPExpVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        exponentof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPExp2Vec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        exponent2of;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPLogVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        logarithmof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPLog2Vec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        logarithm2of;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPSinVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        bvec4 mixer1 = bvec4(false);
-                        bvec4 mixer2 = bvec4(false);
-                        bvec4 vfalse = bvec4(false);
-                        bvec4 vtrue = bvec4(true);
-                        vec4 upper;
-                        vec4 one = vec4(1);
-                        vec4 zero = vec4(0);
-                        vec4 minusone = vec4(-1);
-                        sineof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPCosVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        bvec4 mixer1 = bvec4(false);
-                        bvec4 mixer2 = bvec4(false);
-                        bvec4 vfalse = bvec4(false);
-                        bvec4 vtrue = bvec4(true);
-                        vec4 upper;
-                        vec4 one = vec4(1);
-                        vec4 zero = vec4(0);
-                        vec4 minusone = vec4(-1);
-                        cosineof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPTanVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        bvec4 mixer1 = bvec4(false);
-                        vec4 inf = vec4(INFINITY);
-                        tangentof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPAsinVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        arcsineof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPAcosVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        arccosineof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPAtanVec4: {
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        arctangentof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPAcoshVec4:{
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        hyperbolicarccosineof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPAsinhVec4:{
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        hyperbolicarcsineof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPAtanhVec4:{
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        hyperbolicarctangentof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPCoshVec4:{
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        bvec4 mixer = bvec4(false);
-                        vec4 one = vec4(1);
-                        vec4 zero = vec4(0);
-                        vec4[2] out1;
-                        hyperboliccosineof;
-                        push_vec4(out1);
-                    }
-                    break;
-                    case OPSinhVec4:{
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        hyperbolicsineof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPTanhVec4:{
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        hyperbolictangentof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPRoundVec4:{
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        roundof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPTruncVec4:{
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]temp;
-                        truncof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPMinVec4: {
-                        inputmask2(vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        minpruning;
-                        vec4[2]temp;
-                        minimum;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPMaxVec4: {
-                        inputmask2(vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        maxpruning;
-                        vec4[2]temp;
-                        maximum;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPFMAVec4: {
-                        inputmask3(vec4_const_head,vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        vec4[2]in3=pull_vec4(ifconst(2));
-                        vec4[4]temp;
-                        fmaof;
-                        push_vec4(in1);
-                    }
-                    break;
-
-                    case OPClampFloatFloat:{
-                        inputmask3(float_const_head,float_const_head,float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        float[2]in3=pull_float(ifconst(2));
-                        clampof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPMixFloatFloat:{
-                        inputmask3(float_const_head,float_const_head,float_const_head);
-                        float[2]in1=pull_float(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        float[2]in3=pull_float(ifconst(2));
-                        mixof;
-                        push_float(in1);
-                    }
-                    break;
-                    case OPClampVec2Vec2:{
-                        inputmask3(vec2_const_head,vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        vec2[2]in3=pull_vec2(ifconst(2));
-                        clampof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPMixVec2Vec2:{
-                        inputmask3(vec2_const_head,vec2_const_head,vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        vec2[2]in3=pull_vec2(ifconst(2));
-                        mixof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPClampVec2Float:{
-                        inputmask3(vec2_const_head,float_const_head,float_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        float[2]in3=pull_float(ifconst(2));
-                        clampof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPMixVec2Float:{
-                        inputmask3(vec2_const_head,vec2_const_head,float_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        vec2[2]in2=pull_vec2(ifconst(1));
-                        float[2]in3=pull_float(ifconst(2));
-                        mixof;
-                        push_vec2(in1);
-                    }
-                    break;
-                    case OPClampVec3Vec3:{
-                        inputmask3(vec3_const_head,vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        vec3[2]in3=pull_vec3(ifconst(2));
-                        clampof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPMixVec3Vec3:{
-                        inputmask3(vec3_const_head,vec3_const_head,vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        vec3[2]in3=pull_vec3(ifconst(2));
-                        mixof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPClampVec3Float:{
-                        inputmask3(vec3_const_head,float_const_head,float_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        float[2]in3=pull_float(ifconst(2));
-                        clampof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPMixVec3Float:{
-                        inputmask3(vec3_const_head,vec3_const_head,float_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        vec3[2]in2=pull_vec3(ifconst(1));
-                        float[2]in3=pull_float(ifconst(2));
-                        mixof;
-                        push_vec3(in1);
-                    }
-                    break;
-                    case OPClampVec4Vec4:{
-                        inputmask3(vec4_const_head,vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        vec4[2]in3=pull_vec4(ifconst(2));
-                        clampof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPMixVec4Vec4:{
-                        inputmask3(vec4_const_head,vec4_const_head,vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        vec4[2]in3=pull_vec4(ifconst(2));
-                        mixof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPClampVec4Float:{
-                        inputmask3(vec4_const_head,float_const_head,float_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        float[2]in2=pull_float(ifconst(1));
-                        float[2]in3=pull_float(ifconst(2));
-                        clampof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    case OPMixVec4Float:{
-                        inputmask3(vec4_const_head,vec4_const_head,float_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        vec4[2]in2=pull_vec4(ifconst(1));
-                        float[2]in3=pull_float(ifconst(2));
-                        mixof;
-                        push_vec4(in1);
-                    }
-                    break;
-                    
-                    case OPNormalizeVec2:{
-                        inputmask1(vec2_const_head);
-                        vec2[2]in1=pull_vec2(ifconst(0));
-                        bvec2 mixer=mix(bvec2(false),greaterThan(in1[1],vec2(0)),lessThan(in1[0],vec2(0)));
-                        vec2 smallest=mix(min(abs(in1[0]),abs(in1[1])),vec2(0),mixer);
-                        vec2 largest=max(abs(in1[0]),abs(in1[1]));
-                        vec2 outmax=max(vec2(
-                                in1[1].x/length(vec2(in1[1].x,smallest.y)),
-                                in1[1].y/length(vec2(smallest.x,in1[1].y))
-                            ),
-                            vec2(
-                                in1[1].x/length(vec2(in1[1].x,largest.y)),
-                                in1[1].y/length(vec2(largest.x,in1[1].y))
-                            )
-                        );
-                        vec2 outmin=min(vec2(
-                                in1[0].x/length(vec2(in1[0].x,smallest.y)),
-                                in1[0].y/length(vec2(smallest.x,in1[0].y))
-                            ),
-                            vec2(
-                                in1[0].x/length(vec2(in1[0].x,largest.y)),
-                                in1[0].y/length(vec2(largest.x,in1[0].y))
-                            )
-                        );
-                        push_vec2(vec2[2](outmin,outmax));
-                    }
-                    break;
-                    case OPNormalizeVec3:{
-                        inputmask1(vec3_const_head);
-                        vec3[2]in1=pull_vec3(ifconst(0));
-                        bvec3 mixer=mix(bvec3(false),greaterThan(in1[1],vec3(0)),lessThan(in1[0],vec3(0)));
-                        vec3 smallest=mix(min(abs(in1[0]),abs(in1[1])),vec3(0),mixer);
-                        vec3 largest=max(abs(in1[0]),abs(in1[1]));
-                        vec3 outmax=max(vec3(
-                                in1[1].x/length(vec3(in1[1].x,smallest.y,smallest.z)),
-                                in1[1].y/length(vec3(smallest.x,in1[1].y,smallest.z)),
-                                in1[1].z/length(vec3(smallest.x,smallest.y,in1[1].z))
-                            ),
-                            vec3(
-                                in1[1].x/length(vec3(in1[1].x,largest.y,largest.z)),
-                                in1[1].y/length(vec3(largest.x,in1[1].y,largest.z)),
-                                in1[1].z/length(vec3(largest.x,largest.y,in1[1].z))
-                            )
-                        );
-                        vec3 outmin=min(vec3(
-                                in1[0].x/length(vec3(in1[0].x,smallest.y,smallest.z)),
-                                in1[0].y/length(vec3(smallest.x,in1[0].y,smallest.z)),
-                                in1[0].z/length(vec3(smallest.x,smallest.y,in1[0].z))
-                            ),
-                            vec3(
-                                in1[0].x/length(vec3(in1[0].x,largest.y,largest.z)),
-                                in1[0].y/length(vec3(largest.x,in1[0].y,largest.z)),
-                                in1[0].z/length(vec3(largest.x,largest.y,in1[0].z))
-                            )
-                        );
-                        push_vec3(vec3[2](outmin,outmax));
-                    }
-                    break;
-                    case OPNormalizeVec4:{
-                        inputmask1(vec4_const_head);
-                        vec4[2]in1=pull_vec4(ifconst(0));
-                        bvec4 mixer=mix(bvec4(false),greaterThan(in1[1],vec4(0)),lessThan(in1[0],vec4(0)));
-                        vec4 smallest=mix(min(abs(in1[0]),abs(in1[1])),vec4(0),mixer);
-                        vec4 largest=max(abs(in1[0]),abs(in1[1]));
-                        vec4 outmax=max(vec4(
-                                in1[1].x/length(vec4(in1[1].x,smallest.y,smallest.z,smallest.w)),
-                                in1[1].y/length(vec4(smallest.x,in1[1].y,smallest.z,smallest.w)),
-                                in1[1].z/length(vec4(smallest.x,smallest.y,in1[1].z,smallest.w)),
-                                in1[1].w/length(vec4(smallest.x,smallest.y,smallest.z,in1[1].w))
-                            ),
-                            vec4(
-                                in1[1].x/length(vec4(in1[1].x,largest.y,largest.z,largest.w)),
-                                in1[1].y/length(vec4(largest.x,in1[1].y,largest.z,largest.w)),
-                                in1[1].z/length(vec4(largest.x,largest.y,in1[1].z,largest.w)),
-                                in1[1].w/length(vec4(largest.x,largest.y,largest.z,in1[1].w))
-                            )
-                        );
-                        vec4 outmin=min(vec4(
-                                in1[0].x/length(vec4(in1[0].x,smallest.y,smallest.z,smallest.w)),
-                                in1[0].y/length(vec4(smallest.x,in1[0].y,smallest.z,smallest.w)),
-                                in1[0].z/length(vec4(smallest.x,smallest.y,in1[0].z,smallest.w)),
-                                in1[0].w/length(vec4(smallest.x,smallest.y,smallest.z,in1[0].w))
-                            ),
-                            vec4(
-                                in1[0].x/length(vec4(in1[0].x,largest.y,largest.z,largest.w)),
-                                in1[0].y/length(vec4(largest.x,in1[0].y,largest.z,largest.w)),
-                                in1[0].z/length(vec4(largest.x,largest.y,in1[0].z,largest.w)),
-                                in1[0].w/length(vec4(largest.x,largest.y,largest.z,in1[0].w))
-                            )
-                        );
-                        push_vec4(vec4[2](outmin,outmax));
-                    }
-                    break;
-
-                    case OPPromoteFloatFloatVec2:{
-                        inputmask2(float_const_head,float_const_head);
-                        float[2] a = pull_float(ifconst(0));
-                        float[2] b = pull_float(ifconst(1));
-                        push_vec2(vec2[2](vec2(a[0],b[0]),vec2(a[1],b[1])));
-                    }
-                    break;
-                    case OPPromoteFloatFloatFloatVec3:{
-                        inputmask3(float_const_head,float_const_head,float_const_head);
-                        float[2] a = pull_float(ifconst(0));
-                        float[2] b = pull_float(ifconst(1));
-                        float[2] c = pull_float(ifconst(2));
-                        push_vec3(vec3[2](vec3(a[0],b[0],c[0]),vec3(a[1],b[1],c[1])));
-                    }
-                    break;
-                    case OPPromoteVec2FloatVec3:{
-                        inputmask2(vec2_const_head,float_const_head);
-                        vec2[2] a = pull_vec2(ifconst(0));
-                        float[2] b = pull_float(ifconst(1));
-                        push_vec3(vec3[2](vec3(a[0],b[0]),vec3(a[1],b[1])));
-                    }
-                    break;
-                    case OPPromoteFloatFloatFloatFloatVec4:{
-                        inputmask4(float_const_head,float_const_head,float_const_head,float_const_head);
-                        float[2] a = pull_float(ifconst(0));
-                        float[2] b = pull_float(ifconst(1));
-                        float[2] c = pull_float(ifconst(2));
-                        float[2] d = pull_float(ifconst(3));
-                        push_vec4(vec4[2](vec4(a[0],b[0],c[0],d[0]),vec4(a[1],b[1],c[1],d[1])));
-                    }
-                    break;
-                    case OPPromoteVec2FloatFloatVec4:{
-                        inputmask3(vec2_const_head,float_const_head,float_const_head);
-                        vec2[2] a = pull_vec2(ifconst(0));
-                        float[2] b = pull_float(ifconst(1));
-                        float[2] c = pull_float(ifconst(2));
-                        push_vec4(vec4[2](vec4(a[0],b[0],c[0]),vec4(a[1],b[1],c[1])));
-                    }
-                    break;
-                    case OPPromoteVec3FloatVec4:{
-                        inputmask2(vec3_const_head,float_const_head);
-                        vec3[2] a = pull_vec3(ifconst(0));
-                        float[2] b = pull_float(ifconst(1));
-                        push_vec4(vec4[2](vec4(a[0],b[0]),vec4(a[1],b[1])));
-                    }
-                    break;
-                    case OPPromoteVec2Vec2Vec4:{
-                        inputmask2(vec2_const_head,vec2_const_head);
-                        vec2[2] a = pull_vec2(ifconst(0));
-                        vec2[2] b = pull_vec2(ifconst(1));
-                        push_vec4(vec4[2](vec4(a[0],b[0]),vec4(a[1],b[1])));
-                    }
-                    break;
-
-                    /*
-                    case OPDemoteMat2Float:{
-                    mat2[2] mat2temp=pull_mat2(ifconst(0));
-                    push_float(float[2](mat2temp[0][1].y,mat2temp[1][1].y));
-                    push_float(float[2](mat2temp[0][1].x,mat2temp[1][1].x));
-                    push_float(float[2](mat2temp[0][0].y,mat2temp[1][0].y));
-                    push_float(float[2](mat2temp[0][0].x,mat2temp[1][0].x));
-                    }
-                    break;
-                    case OPDemoteMat2Vec2:{
-                    mat2[2] mat2temp=pull_mat2(ifconst(0));
-                    push_vec2(vec2[2](mat2temp[0][1],mat2temp[1][1]));
-                    push_vec2(vec2[2](mat2temp[0][0],mat2temp[1][0]));
-                    }
-                    break;
-                    case OPDemoteMat3Vec3:{
-                    mat3[2] mat3temp=pull_mat3(ifconst(0));
-                    push_vec3(vec3[2](mat3temp[0][2],mat3temp[1][2]));
-                    push_vec3(vec3[2](mat3temp[0][1],mat3temp[1][1]));
-                    push_vec3(vec3[2](mat3temp[0][0],mat3temp[1][0]));
-                    }
-                    break;
-                    case OPDemoteMat4Vec4:{
-                    mat4[2] mat4temp=pull_mat4(ifconst(0));
-                    push_vec4(vec4[2](mat4temp[0][3],mat4temp[1][3]));
-                    push_vec4(vec4[2](mat4temp[0][2],mat4temp[1][2]));
-                    push_vec4(vec4[2](mat4temp[0][1],mat4temp[1][1]));
-                    push_vec4(vec4[2](mat4temp[0][0],mat4temp[1][0]));
-                    }
-                    break;
-                    case OPDemoteMat2Vec4:{
-                    mat2[2] mat2temp=pull_mat2(ifconst(0));
-                    push_vec4(vec4[2](vec4(mat2temp[0][0],mat2temp[0][1]),vec4(mat2temp[1][0],mat2temp[1][1])));
-                    }
-                    break;
-                    case OPDemoteVec2FloatFloat:{
-                    vec2[2] vec2temp=pull_vec2(ifconst(0));
-                    push_float(float[2](vec2temp[0].y,vec2temp[1].y));
-                    push_float(float[2](vec2temp[0].x,vec2temp[1].x));
-                    }
-                    break;
-                    case OPDemoteVec3FloatFloatFloat:{
-                    vec3[2] vec3temp=pull_vec3(ifconst(0));
-                    push_float(float[2](vec3temp[0].z,vec3temp[1].z));
-                    push_float(float[2](vec3temp[0].y,vec3temp[1].y));
-                    push_float(float[2](vec3temp[0].x,vec3temp[1].x));
-                    }
-                    break;
-                    case OPDemoteVec4FloatFloatFloatFloat:{
-                    vec4[2] vec4temp=pull_vec4(ifconst(0));
-                    push_float(float[2](vec4temp[0].w,vec4temp[1].w));
-                    push_float(float[2](vec4temp[0].z,vec4temp[1].z));
-                    push_float(float[2](vec4temp[0].y,vec4temp[1].y));
-                    push_float(float[2](vec4temp[0].x,vec4temp[1].x));
-                    }
-                    break;
-                    */
-
-                    case OPSquareFloat:{
-                        inputmask1(float_const_head);
-                        float[2] in1 = pull_float(ifconst(0));
-                        float[2] out1;
-                        if (in1[1] > 0 && in1[0] < 0)
-                        {
-                            out1[0] = 0;
-                        }
-                        else {
-                            out1[0] = min(in1[0]*in1[0],in1[1]*in1[1]);
-                        }
-                        out1[1]=max(in1[0]*in1[0],in1[1]*in1[1]);
-                        push_float(out1);
-                    }
-                    break;
-                    case OPCubeFloat:{
-                        inputmask1(float_const_head);
-                        float[2] in1 = pull_float(ifconst(0));
-                        float[2] out1;
-                        bool mixer = false;
-                        float zero = 0;
-                        cube;
-                        push_float(out1);
-                    }
-                    break;
-                    case OPSquareVec2:{
-                        inputmask1(vec2_const_head);
-                        vec2[2] in1 = pull_vec2(ifconst(0));
-                        vec2[2] out1;
-                        bvec2 mixer = bvec2(false);
-                        vec2 zero = vec2(0);
-                        square;
-                        push_vec2(out1);
-                    }
-                    break;
-                    case OPCubeVec2:{
-                        inputmask1(vec2_const_head);
-                        vec2[2] in1 = pull_vec2(ifconst(0));
-                        vec2[2] out1;
-                        bvec2 mixer = bvec2(false);
-                        vec2 zero = vec2(0);
-                        cube;
-                        push_vec2(out1);
-                    }
-                    break;
-                    case OPSquareVec3:{
-                        inputmask1(vec3_const_head);
-                        vec3[2] in1 = pull_vec3(ifconst(0));
-                        vec3[2] out1;
-                        bvec3 mixer = bvec3(false);
-                        vec3 zero = vec3(0);
-                        square;
-                        push_vec3(out1);
-                    }
-                    break;
-                    case OPCubeVec3:{
-                        inputmask1(vec3_const_head);
-                        vec3[2] in1 = pull_vec3(ifconst(0));
-                        vec3[2] out1;
-                        bvec3 mixer = bvec3(false);
-                        vec3 zero = vec3(0);
-                        cube;
-                        push_vec3(out1);
-                    }
-                    break;
-                    case OPSquareVec4:{
-                        inputmask1(vec4_const_head);
-                        vec4[2] in1 = pull_vec4(ifconst(0));
-                        vec4[2] out1;
-                        bvec4 mixer = bvec4(false);
-                        vec4 zero = vec4(0);
-                        square;
-                        push_vec4(out1);
-                    }
-                    break;
-                    case OPCubeVec4:{
-                        inputmask1(vec4_const_head);
-                        vec4[2] in1 = pull_vec4(ifconst(0));
-                        vec4[2] out1;
-                        bvec4 mixer = bvec4(false);
-                        vec4 zero = vec4(0);
-                        cube;
-                        push_vec4(out1);
-                    }
-                    break;
-
-                    case OPSmoothMinMaterialFloat:
-                    case OPSmoothMinFloat:{
-                        if(maskdefine){
-                            if(ifconst(0)) {float_const_head++;}
-                            if(ifconst(1)) {float_const_head++;}
-                            float_const_head++;
-                            break;
-                        }
-                        float k=cpull_float();
-                        float[2] a=pull_float(ifconst(0));
-                        float[2] b=pull_float(ifconst(1));
-                        float hmin=max(k-abs(a[0]-b[0]),0.);
-                        float hmax=max(k-abs(a[1]-b[1]),0.);
-                        float smin=min(a[0],b[0])-hmin*hmin*.25/k;
-                        float smax=min(a[1],b[1])-hmax*hmax*.25/k;
-                        push_float(float[2](smin,smax));
-                    }
-                    break;
-                    case OPSmoothMaxMaterialFloat:
-                    case OPSmoothMaxFloat:{
-                        if(maskdefine){
-                            if(ifconst(0)) {float_const_head++;}
-                            if(ifconst(1)) {float_const_head++;}
-                            float_const_head++;
-                            break;
-                        }
-                        float k=cpull_float();
-                        float[2] a=pull_float(ifconst(0));
-                        float[2] b=pull_float(ifconst(1));
-                        float hmin=max(k-abs(a[0]-b[0]),0.);
-                        float hmax=max(k-abs(a[1]-b[1]),0.);
-                        float smin=max(a[0],b[0])+hmin*hmin*.25/k;
-                        float smax=max(a[1],b[1])+hmax*hmax*.25/k;
-                        push_float(float[2](smin,smax));
-                    }
-                    break;
-
-                    /*
-                    case OPSwap2Float:{
-                        float[2]floattemp=float_stack[float_stack_head-1];
-                        float_stack[float_stack_head-1]=float_stack[float_stack_head-2];
-                        float_stack[float_stack_head-2]=floattemp;
-                    }
-                    break;
-                    case OPSwap3Float:{
-                        float[2]floattemp=float_stack[float_stack_head-1];
-                        float_stack[float_stack_head-1]=float_stack[float_stack_head-3];
-                        float_stack[float_stack_head-3]=floattemp;
-                    }
-                    break;
-                    case OPSwap4Float:{
-                        float[2]floattemp=float_stack[float_stack_head-1];
-                        float_stack[float_stack_head-1]=float_stack[float_stack_head-4];
-                        float_stack[float_stack_head-4]=floattemp;
-                    }
-                    */
-                    break;
-                    case OPDupFloat:{
-                        push_float(float_stack[float_stack_head-1]);
-                    }
-                    break;
-                    case OPDup2Float:{
-                        push_float(float_stack[float_stack_head-2]);
-                    }
-                    break;
-                    case OPDup3Float:{
-                        push_float(float_stack[float_stack_head-3]);
-                    }
-                    break;
-                    case OPDup4Float:{
-                        push_float(float_stack[float_stack_head-4]);
-                    }
-                    break;
-                    /*
-                    case OPDropFloat:{
-                        float_stack_head--;
-                    }
-                    break;
-                    case OPDrop2Float:{
-                        float_stack[float_stack_head-2]=float_stack[float_stack_head-1];
-                        float_stack_head--;
-                    }
-                    break;
-                    case OPDrop3Float:{
-                        float_stack[float_stack_head-3]=float_stack[float_stack_head-2];
-                        float_stack[float_stack_head-2]=float_stack[float_stack_head-1];
-                        float_stack_head--;
-                    }
-                    break;
-                    case OPDrop4Float:{
-                        float_stack[float_stack_head-4]=float_stack[float_stack_head-3];
-                        float_stack[float_stack_head-3]=float_stack[float_stack_head-2];
-                        float_stack[float_stack_head-2]=float_stack[float_stack_head-1];
-                        float_stack_head--;
-                    }
-                    break;
-                    */
-                    /*
-                    case OPSwap2Vec2:{
-                        vec2[2]vec2temp=vec2_stack[vec2_stack_head-1];
-                        vec2_stack[vec2_stack_head-1]=vec2_stack[vec2_stack_head-2];
-                        vec2_stack[vec2_stack_head-2]=vec2temp;
-                    }
-                    break;
-                    case OPSwap3Vec2:{
-                        vec2[2]vec2temp=vec2_stack[vec2_stack_head-1];
-                        vec2_stack[vec2_stack_head-1]=vec2_stack[vec2_stack_head-3];
-                        vec2_stack[vec2_stack_head-3]=vec2temp;
-                    }
-                    break;
-                    case OPSwap4Vec2:{
-                        vec2[2]vec2temp=vec2_stack[vec2_stack_head-1];
-                        vec2_stack[vec2_stack_head-1]=vec2_stack[vec2_stack_head-4];
-                        vec2_stack[vec2_stack_head-4]=vec2temp;
-                    }
-                    break;
-                    */
-                    case OPDupVec2:{
-                        push_vec2(vec2_stack[vec2_stack_head-1]);
-                    }
-                    break;
-                    case OPDup2Vec2:{
-                        push_vec2(vec2_stack[vec2_stack_head-2]);
-                    }
-                    break;
-                    case OPDup3Vec2:{
-                        push_vec2(vec2_stack[vec2_stack_head-3]);
-                    }
-                    break;
-                    case OPDup4Vec2:{
-                        push_vec2(vec2_stack[vec2_stack_head-4]);
-                    }
-                    break;
-                    /*
-                    case OPDropVec2:{
-                        vec2_stack_head--;
-                    }
-                    break;
-                    case OPDrop2Vec2:{
-                        vec2_stack[vec2_stack_head-2]=vec2_stack[vec2_stack_head-1];
-                        vec2_stack_head--;
-                    }
-                    break;
-                    case OPDrop3Vec2:{
-                        vec2_stack[vec2_stack_head-3]=vec2_stack[vec2_stack_head-2];
-                        vec2_stack[vec2_stack_head-2]=vec2_stack[vec2_stack_head-1];
-                        vec2_stack_head--;
-                    }
-                    break;
-                    case OPDrop4Vec2:{
-                        vec2_stack[vec2_stack_head-4]=vec2_stack[vec2_stack_head-3];
-                        vec2_stack[vec2_stack_head-3]=vec2_stack[vec2_stack_head-2];
-                        vec2_stack[vec2_stack_head-2]=vec2_stack[vec2_stack_head-1];
-                        vec2_stack_head--;
-                    }
-                    break;
-                    */
-                    /*
-                    case OPSwap2Vec3:{
-                        vec3[2]vec3temp=vec3_stack[vec3_stack_head-1];
-                        vec3_stack[vec3_stack_head-1]=vec3_stack[vec3_stack_head-2];
-                        vec3_stack[vec3_stack_head-2]=vec3temp;
-                    }
-                    break;
-                    case OPSwap3Vec3:{
-                        vec3[2]vec3temp=vec3_stack[vec3_stack_head-1];
-                        vec3_stack[vec3_stack_head-1]=vec3_stack[vec3_stack_head-3];
-                        vec3_stack[vec3_stack_head-3]=vec3temp;
-                    }
-                    break;
-                    case OPSwap4Vec3:{
-                        vec3[2]vec3temp=vec3_stack[vec3_stack_head-1];
-                        vec3_stack[vec3_stack_head-1]=vec3_stack[vec3_stack_head-4];
-                        vec3_stack[vec3_stack_head-4]=vec3temp;
-                    }
-                    break;
-                    */
-                    case OPDupVec3:{
-                        push_vec3(vec3_stack[vec3_stack_head-1]);
-                    }
-                    break;
-                    case OPDup2Vec3:{
-                        push_vec3(vec3_stack[vec3_stack_head-2]);
-                    }
-                    break;
-                    case OPDup3Vec3:{
-                        push_vec3(vec3_stack[vec3_stack_head-3]);
-                    }
-                    break;
-                    case OPDup4Vec3:{
-                        push_vec3(vec3_stack[vec3_stack_head-4]);
-                    }
-                    break;
-                    /*
-                    case OPDropVec3:{
-                        vec3_stack_head--;
-                    }
-                    break;
-                    case OPDrop2Vec3:{
-                        vec3_stack[vec3_stack_head-2]=vec3_stack[vec3_stack_head-1];
-                        vec3_stack_head--;
-                    }
-                    break;
-                    case OPDrop3Vec3:{
-                        vec3_stack[vec3_stack_head-3]=vec3_stack[vec3_stack_head-2];
-                        vec3_stack[vec3_stack_head-2]=vec3_stack[vec3_stack_head-1];
-                        vec3_stack_head--;
-                    }
-                    break;
-                    case OPDrop4Vec3:{
-                        vec3_stack[vec3_stack_head-4]=vec3_stack[vec3_stack_head-3];
-                        vec3_stack[vec3_stack_head-3]=vec3_stack[vec3_stack_head-2];
-                        vec3_stack[vec3_stack_head-2]=vec3_stack[vec3_stack_head-1];
-                        vec3_stack_head--;
-                    }
-                    break;
-                    */
-                    /*
-                    case OPSwap2Vec4:{
-                        vec4[2]vec4temp=vec4_stack[vec4_stack_head-1];
-                        vec4_stack[vec4_stack_head-1]=vec4_stack[vec4_stack_head-2];
-                        vec4_stack[vec4_stack_head-2]=vec4temp;
-                    }
-                    break;
-                    case OPSwap3Vec4:{
-                        vec4[2]vec4temp=vec4_stack[vec4_stack_head-1];
-                        vec4_stack[vec4_stack_head-1]=vec4_stack[vec4_stack_head-3];
-                        vec4_stack[vec4_stack_head-3]=vec4temp;
-                    }
-                    break;
-                    case OPSwap4Vec4:{
-                        vec4[2]vec4temp=vec4_stack[vec4_stack_head-1];
-                        vec4_stack[vec4_stack_head-1]=vec4_stack[vec4_stack_head-4];
-                        vec4_stack[vec4_stack_head-4]=vec4temp;
-                    }
-                    break;
-                    */
-                    case OPDupVec4:{
-                        push_vec4(vec4_stack[vec4_stack_head-1]);
-                    }
-                    break;
-                    case OPDup2Vec4:{
-                        push_vec4(vec4_stack[vec4_stack_head-2]);
-                    }
-                    break;
-                    case OPDup3Vec4:{
-                        push_vec4(vec4_stack[vec4_stack_head-3]);
-                    }
-                    break;
-                    case OPDup4Vec4:{
-                        push_vec4(vec4_stack[vec4_stack_head-4]);
-                    }
-                    break;
-                    /*
-                    case OPDropVec4:{
-                        vec4_stack_head--;
-                    }
-                    break;
-                    case OPDrop2Vec4:{
-                        vec4_stack[vec4_stack_head-2]=vec4_stack[vec4_stack_head-1];
-                        vec4_stack_head--;
-                    }
-                    break;
-                    case OPDrop3Vec4:{
-                        vec4_stack[vec4_stack_head-3]=vec4_stack[vec4_stack_head-2];
-                        vec4_stack[vec4_stack_head-2]=vec4_stack[vec4_stack_head-1];
-                        vec4_stack_head--;
-                    }
-                    break;
-                    case OPDrop4Vec4:{
-                        vec4_stack[vec4_stack_head-4]=vec4_stack[vec4_stack_head-3];
-                        vec4_stack[vec4_stack_head-3]=vec4_stack[vec4_stack_head-2];
-                        vec4_stack[vec4_stack_head-2]=vec4_stack[vec4_stack_head-1];
-                        vec4_stack_head--;
-                    }
-                    break;
-                    */
-                    
-
-                    case OPSDFSphere:
-                    {
-                        inputmask2(float_const_head,vec3_const_head);
-                        float[2] in2=pull_float(ifconst(0));
-                        /*#ifdef debug
-                        return vec3(in2[0],in2[1],0.);
-                        #endif*/
-                        vec3[2] in1=pull_vec3(ifconst(1));
-                        /*#ifdef debug
-                        return in1[0];
-                        #endif*/
-                        float[2] out1;
-
-                        bvec3 mixer=mix(bvec3(false),greaterThan(in1[1],vec3(0)),lessThan(in1[0],vec3(0)));
-                        out1[0]=length(mix(min(abs(in1[0]),abs(in1[1])),vec3(0),mixer))-in2[1];
-                        out1[1]=length(max(abs(in1[0]),abs(in1[1])))-in2[0];
-
-                        #ifdef debug
-                        //return vec3(out1[0],out1[1],0.);
-                        #endif
-                        
-                        push_float(out1);
-                    }
-                    break;
-                    
-                    case OPNop:
-                    break;
-                    case OPStop:
-                    pruneall(uint8_t((major_position<<3)|minor_position));
-                    #ifdef debug
-                    return vec3(pull_float(ifconst(0))[0]);
-                    #else
-                    return pull_float(ifconst(0));
-                    #endif
-                    case OPInvalid:
-                    default:
-                    #ifdef debug
-                    return vec3(float(minor_integer_cache[minor_position]));
-                    #else
-                    return float[2](0,0);
-                    #endif
-                }
-        
-        minor_position++;
-        if(minor_position==8)
-        {
-            minor_position=0;
-            major_position++;
-            if(major_position==masklen)
-            {
-                pruneall(uint8_t((masklen*8)));
-                #ifdef debug
-                return vec3(pull_float(false)[0]);
-                #else
-                return pull_float(false);
-                #endif
+                OPAddVec2Float => {
+                    add!(self, instruction, Vec2, Float);
+                }
+
+                OPAddVec3Vec3 => {
+                    add!(self, instruction, Vec3, Vec3);
+                }
+
+                OPAddVec3Float => {
+                    add!(self, instruction, Vec3, Float);
+                }
+
+                OPAddVec4Vec4 => {
+                    add!(self, instruction, Vec4, Vec4);
+                }
+
+                OPAddVec4Float => {
+                    add!(self, instruction, Vec4, Float);
+                }
+
+                OPSubFloatFloat => {
+                    sub!(self, instruction, Float, Float);
+                }
+
+                OPSubVec2Vec2 => {
+                    sub!(self, instruction, Vec2, Vec2);
+                }
+
+                OPSubVec2Float => {
+                    sub!(self, instruction, Vec2, Float);
+                }
+
+                OPSubVec3Vec3 => {
+                    sub!(self, instruction, Vec3, Vec3);
+                }
+
+                OPSubVec3Float => {
+                    sub!(self, instruction, Vec3, Float);
+                }
+
+                OPSubVec4Vec4 => {
+                    sub!(self, instruction, Vec4, Vec4);
+                }
+
+                OPSubVec4Float => {
+                    sub!(self, instruction, Vec4, Float);
+                }
+
+                OPMulFloatFloat => {
+                    mul!(self, instruction, Float, Float);
+                }
+
+                OPMulVec2Vec2 => {
+                    mul!(self, instruction, Vec2, Vec2);
+                }
+
+                OPMulVec2Float => {
+                    mul!(self, instruction, Vec2, Float);
+                }
+
+                OPMulVec3Vec3 => {
+                    mul!(self, instruction, Vec3, Vec3);
+                }
+
+                OPMulVec3Float => {
+                    mul!(self, instruction, Vec3, Float);
+                }
+
+                OPMulVec4Vec4 => {
+                    mul!(self, instruction, Vec4, Vec4);
+                }
+
+                OPMulVec4Float => {
+                    mul!(self, instruction, Vec4, Float);
+                }
+
+                OPDivFloatFloat => {
+                    div!(self, instruction, Float, Float);
+                }
+
+                OPDivVec2Vec2 => {
+                    div!(self, instruction, Vec2, Vec2);
+                }
+
+                OPDivVec2Float => {
+                    div!(self, instruction, Vec2, Float);
+                }
+
+                OPDivVec3Vec3 => {
+                    div!(self, instruction, Vec3, Vec3);
+                }
+
+                OPDivVec3Float => {
+                    div!(self, instruction, Vec3, Float);
+                }
+
+                OPDivVec4Vec4 => {
+                    div!(self, instruction, Vec4, Vec4);
+                }
+
+                OPDivVec4Float => {
+                    div!(self, instruction, Vec4, Float);
+                }
+
+                OPPowFloatFloat => {
+                    pow!(self, instruction, Float, Float);
+                }
+
+                OPPowVec2Vec2 => {
+                    pow!(self, instruction, Vec2, Vec2);
+                }
+
+                OPPowVec3Vec3 => {
+                    pow!(self, instruction, Vec3, Vec3);
+                }
+
+                OPPowVec4Vec4 => {
+                    pow!(self, instruction, Vec4, Vec4);
+                }
+
+                OPModFloatFloat => {
+                    modulo!(self, instruction, Float, Float);
+                }
+
+                OPModVec2Vec2 => {
+                    modulo!(self, instruction, Vec2, Vec2);
+                }
+
+                OPModVec2Float => {
+                    modulo!(self, instruction, Vec2, Float);
+                }
+
+                OPModVec3Vec3 => {
+                    modulo!(self, instruction, Vec3, Vec3);
+                }
+
+                OPModVec3Float => {
+                    modulo!(self, instruction, Vec3, Float);
+                }
+
+                OPModVec4Vec4 => {
+                    modulo!(self, instruction, Vec4, Vec4);
+                }
+
+                OPModVec4Float => {
+                    modulo!(self, instruction, Vec4, Float);
+                }
+
+                OPCrossVec3 => {
+                    let in1: Vec3 = self.pull(instruction.constants[0]);
+                    let in2: Vec3 = self.pull(instruction.constants[1]);
+                    self.push(in1.cross(in2));
+                }
+
+                OPDotVec2 => {
+                    dot!(self, instruction, Vec2, Vec2);
+                }
+
+                OPDotVec3 => {
+                    dot!(self, instruction, Vec3, Vec3);
+                }
+
+                OPDotVec4 => {
+                    dot!(self, instruction, Vec4, Vec4);
+                }
+
+                OPLengthVec2 => {
+                    len!(self, instruction, Vec2);
+                }
+
+                OPLengthVec3 => {
+                    len!(self, instruction, Vec3);
+                }
+
+                OPLengthVec4 => {
+                    len!(self, instruction, Vec4);
+                }
+
+                OPDistanceVec2 => {
+                    distance!(self, instruction, Vec2, Vec2);
+                }
+
+                OPDistanceVec3 => {
+                    distance!(self, instruction, Vec3, Vec3);
+                }
+
+                OPDistanceVec4 => {
+                    distance!(self, instruction, Vec4, Vec4);
+                }
+
+                OPAbsFloat => {
+                    absolute!(self, instruction, Float);
+                }
+
+                OPSignFloat => {
+                    sign!(self, instruction, Float);
+                }
+
+                OPFloorFloat => {
+                    floor!(self, instruction, Float);
+                }
+
+                OPCeilFloat => {
+                    ceiling!(self, instruction, Float);
+                }
+
+                OPFractFloat => {
+                    fract!(self, instruction, Float);
+                }
+
+                OPSqrtFloat => {
+                    squareroot!(self, instruction, Float);
+                }
+
+                OPInverseSqrtFloat => {
+                    inversesquareroot!(self, instruction, Float);
+                }
+
+                OPExpFloat => {
+                    exponent!(self, instruction, Float);
+                }
+
+                OPExp2Float => {
+                    exponent2!(self, instruction, Float);
+                }
+
+                OPLogFloat => {
+                    logarithm!(self, instruction, Float);
+                }
+
+                OPLog2Float => {
+                    logarithm2!(self, instruction, Float);
+                }
+
+                OPSinFloat => {
+                    sine!(self, instruction, Float);
+                }
+
+                OPCosFloat => {
+                    cosine!(self, instruction, Float);
+                }
+
+                OPTanFloat => {
+                    tangent!(self, instruction, Float);
+                }
+
+                OPAsinFloat => {
+                    arcsine!(self, instruction, Float);
+                }
+
+                OPAcosFloat => {
+                    arccosine!(self, instruction, Float);
+                }
+
+                OPAtanFloat => {
+                    arctangent!(self, instruction, Float);
+                }
+
+                OPAcoshFloat => {
+                    hyperbolicarccosine!(self, instruction, Float);
+                }
+
+                OPAsinhFloat => {
+                    hyperbolicarcsine!(self, instruction, Float);
+                }
+
+                OPAtanhFloat => {
+                    hyperbolicarctangent!(self, instruction, Float);
+                }
+
+                OPCoshFloat => {
+                    hyperboliccosine!(self, instruction, Float);
+                }
+
+                OPSinhFloat => {
+                    hyperbolicsine!(self, instruction, Float);
+                }
+
+                OPTanhFloat => {
+                    hyperbolictangent!(self, instruction, Float);
+                }
+
+                OPRoundFloat => {
+                    round!(self, instruction, Float);
+                }
+
+                OPTruncFloat => {
+                    trunc!(self, instruction, Float);
+                }
+
+                OPMinMaterialFloat | OPMinFloat => {
+                    min!(self, instruction, Float, Float);
+                }
+
+                OPMaxMaterialFloat | OPMaxFloat => {
+                    max!(self, instruction, Float, Float);
+                }
+
+                OPFMAFloat => {
+                    fma!(self, instruction, Float, Float, Float);
+                }
+
+                OPAbsVec2 => {
+                    absolute!(self, instruction, Vec2);
+                }
+
+                OPSignVec2 => {
+                    sign!(self, instruction, Vec2);
+                }
+
+                OPFloorVec2 => {
+                    floor!(self, instruction, Vec2);
+                }
+
+                OPCeilVec2 => {
+                    ceiling!(self, instruction, Vec2);
+                }
+
+                OPFractVec2 => {
+                    fract!(self, instruction, Vec2);
+                }
+
+                OPSqrtVec2 => {
+                    squareroot!(self, instruction, Vec2);
+                }
+
+                OPInverseSqrtVec2 => {
+                    inversesquareroot!(self, instruction, Vec2);
+                }
+
+                OPExpVec2 => {
+                    exponent!(self, instruction, Vec2);
+                }
+
+                OPExp2Vec2 => {
+                    exponent2!(self, instruction, Vec2);
+                }
+
+                OPLogVec2 => {
+                    logarithm!(self, instruction, Vec2);
+                }
+
+                OPLog2Vec2 => {
+                    logarithm2!(self, instruction, Vec2);
+                }
+
+                OPSinVec2 => {
+                    sine!(self, instruction, Vec2);
+                }
+
+                OPCosVec2 => {
+                    cosine!(self, instruction, Vec2);
+                }
+
+                OPTanVec2 => {
+                    tangent!(self, instruction, Vec2);
+                }
+
+                OPAsinVec2 => {
+                    arcsine!(self, instruction, Vec2);
+                }
+
+                OPAcosVec2 => {
+                    arccosine!(self, instruction, Vec2);
+                }
+
+                OPAtanVec2 => {
+                    arctangent!(self, instruction, Vec2);
+                }
+
+                OPAcoshVec2 => {
+                    hyperbolicarccosine!(self, instruction, Vec2);
+                }
+
+                OPAsinhVec2 => {
+                    hyperbolicarcsine!(self, instruction, Vec2);
+                }
+
+                OPAtanhVec2 => {
+                    hyperbolicarctangent!(self, instruction, Vec2);
+                }
+
+                OPCoshVec2 => {
+                    hyperboliccosine!(self, instruction, Vec2);
+                }
+
+                OPSinhVec2 => {
+                    hyperbolicsine!(self, instruction, Vec2);
+                }
+
+                OPTanhVec2 => {
+                    hyperbolictangent!(self, instruction, Vec2);
+                }
+
+                OPRoundVec2 => {
+                    round!(self, instruction, Vec2);
+                }
+
+                OPTruncVec2 => {
+                    trunc!(self, instruction, Vec2);
+                }
+
+                OPMinVec2 => {
+                    min!(self, instruction, Vec2, Vec2);
+                }
+
+                OPMaxVec2 => {
+                    max!(self, instruction, Vec2, Vec2);
+                }
+
+                OPFMAVec2 => {
+                    fma!(self, instruction, Vec2, Vec2, Vec2);
+                }
+
+                OPAbsVec3 => {
+                    absolute!(self, instruction, Vec3);
+                }
+
+                OPSignVec3 => {
+                    sign!(self, instruction, Vec3);
+                }
+
+                OPFloorVec3 => {
+                    floor!(self, instruction, Vec3);
+                }
+
+                OPCeilVec3 => {
+                    ceiling!(self, instruction, Vec3);
+                }
+
+                OPFractVec3 => {
+                    fract!(self, instruction, Vec3);
+                }
+
+                OPSqrtVec3 => {
+                    squareroot!(self, instruction, Vec3);
+                }
+
+                OPInverseSqrtVec3 => {
+                    inversesquareroot!(self, instruction, Vec3);
+                }
+
+                OPExpVec3 => {
+                    exponent!(self, instruction, Vec3);
+                }
+
+                OPExp2Vec3 => {
+                    exponent2!(self, instruction, Vec3);
+                }
+
+                OPLogVec3 => {
+                    logarithm!(self, instruction, Vec3);
+                }
+
+                OPLog2Vec3 => {
+                    logarithm2!(self, instruction, Vec3);
+                }
+
+                OPSinVec3 => {
+                    sine!(self, instruction, Vec3);
+                }
+
+                OPCosVec3 => {
+                    cosine!(self, instruction, Vec3);
+                }
+
+                OPTanVec3 => {
+                    tangent!(self, instruction, Vec3);
+                }
+
+                OPAsinVec3 => {
+                    arcsine!(self, instruction, Vec3);
+                }
+
+                OPAcosVec3 => {
+                    arccosine!(self, instruction, Vec3);
+                }
+
+                OPAtanVec3 => {
+                    arctangent!(self, instruction, Vec3);
+                }
+
+                OPAcoshVec3 => {
+                    hyperbolicarccosine!(self, instruction, Vec3);
+                }
+
+                OPAsinhVec3 => {
+                    hyperbolicarcsine!(self, instruction, Vec3);
+                }
+
+                OPAtanhVec3 => {
+                    hyperbolicarctangent!(self, instruction, Vec3);
+                }
+
+                OPCoshVec3 => {
+                    hyperboliccosine!(self, instruction, Vec3);
+                }
+
+                OPSinhVec3 => {
+                    hyperbolicsine!(self, instruction, Vec3);
+                }
+
+                OPTanhVec3 => {
+                    hyperbolictangent!(self, instruction, Vec3);
+                }
+
+                OPRoundVec3 => {
+                    round!(self, instruction, Vec3);
+                }
+
+                OPTruncVec3 => {
+                    trunc!(self, instruction, Vec3);
+                }
+
+                OPMinVec3 => {
+                    min!(self, instruction, Vec3, Vec3);
+                }
+
+                OPMaxVec3 => {
+                    max!(self, instruction, Vec3, Vec3);
+                }
+
+                OPFMAVec3 => {
+                    fma!(self, instruction, Vec3, Vec3, Vec3);
+                }
+
+                OPAbsVec4 => {
+                    absolute!(self, instruction, Vec4);
+                }
+
+                OPSignVec4 => {
+                    sign!(self, instruction, Vec4);
+                }
+
+                OPFloorVec4 => {
+                    floor!(self, instruction, Vec4);
+                }
+
+                OPCeilVec4 => {
+                    ceiling!(self, instruction, Vec4);
+                }
+
+                OPFractVec4 => {
+                    fract!(self, instruction, Vec4);
+                }
+
+                OPSqrtVec4 => {
+                    squareroot!(self, instruction, Vec4);
+                }
+
+                OPInverseSqrtVec4 => {
+                    inversesquareroot!(self, instruction, Vec4);
+                }
+
+                OPExpVec4 => {
+                    exponent!(self, instruction, Vec4);
+                }
+
+                OPExp2Vec4 => {
+                    exponent2!(self, instruction, Vec4);
+                }
+
+                OPLogVec4 => {
+                    logarithm!(self, instruction, Vec4);
+                }
+
+                OPLog2Vec4 => {
+                    logarithm2!(self, instruction, Vec4);
+                }
+
+                OPSinVec4 => {
+                    sine!(self, instruction, Vec4);
+                }
+
+                OPCosVec4 => {
+                    cosine!(self, instruction, Vec4);
+                }
+
+                OPTanVec4 => {
+                    tangent!(self, instruction, Vec4);
+                }
+
+                OPAsinVec4 => {
+                    arcsine!(self, instruction, Vec4);
+                }
+
+                OPAcosVec4 => {
+                    arccosine!(self, instruction, Vec4);
+                }
+
+                OPAtanVec4 => {
+                    arctangent!(self, instruction, Vec4);
+                }
+
+                OPAcoshVec4 => {
+                    hyperbolicarccosine!(self, instruction, Vec4);
+                }
+
+                OPAsinhVec4 => {
+                    hyperbolicarcsine!(self, instruction, Vec4);
+                }
+
+                OPAtanhVec4 => {
+                    hyperbolicarctangent!(self, instruction, Vec4);
+                }
+
+                OPCoshVec4 => {
+                    hyperboliccosine!(self, instruction, Vec4);
+                }
+
+                OPSinhVec4 => {
+                    hyperbolicsine!(self, instruction, Vec4);
+                }
+
+                OPTanhVec4 => {
+                    hyperbolictangent!(self, instruction, Vec4);
+                }
+
+                OPRoundVec4 => {
+                    round!(self, instruction, Vec4);
+                }
+
+                OPTruncVec4 => {
+                    trunc!(self, instruction, Vec4);
+                }
+
+                OPMinVec4 => {
+                    min!(self, instruction, Vec4, Vec4);
+                }
+
+                OPMaxVec4 => {
+                    max!(self, instruction, Vec4, Vec4);
+                }
+
+                OPFMAVec4 => {
+                    fma!(self, instruction, Vec4, Vec4, Vec4);
+                }
+
+                OPClampFloatFloat => {
+                    clamp!(self, instruction, Float, Float, Float);
+                }
+
+                OPMixFloatFloat => {
+                    mix!(self, instruction, Float, Float, Float);
+                }
+
+                OPClampVec2Vec2 => {
+                    clamp!(self, instruction, Vec2, Vec2, Vec2);
+                }
+
+                OPMixVec2Vec2 => {
+                    mix!(self, instruction, Vec2, Vec2, Vec2);
+                }
+
+                OPClampVec2Float => {
+                    clamp!(self, instruction, Vec2, Float, Float);
+                }
+
+                OPMixVec2Float => {
+                    mix!(self, instruction, Vec2, Vec2, Float);
+                }
+
+                OPClampVec3Vec3 => {
+                    clamp!(self, instruction, Vec3, Vec3, Vec3);
+                }
+
+                OPMixVec3Vec3 => {
+                    mix!(self, instruction, Vec3, Vec3, Vec3);
+                }
+
+                OPClampVec3Float => {
+                    clamp!(self, instruction, Vec3, Float, Float);
+                }
+
+                OPMixVec3Float => {
+                    mix!(self, instruction, Vec3, Vec3, Float);
+                }
+
+                OPClampVec4Vec4 => {
+                    clamp!(self, instruction, Vec4, Vec4, Vec4);
+                }
+
+                OPMixVec4Vec4 => {
+                    mix!(self, instruction, Vec4, Vec4, Vec4);
+                }
+
+                OPClampVec4Float => {
+                    clamp!(self, instruction, Vec4, Float, Float);
+                }
+
+                OPMixVec4Float => {
+                    mix!(self, instruction, Vec4, Vec4, Float);
+                }
+
+                OPNormalizeVec2 => {
+                    normalise!(self, instruction, Vec2);
+                }
+
+                OPNormalizeVec3 => {
+                    normalise!(self, instruction, Vec3);
+                }
+
+                OPNormalizeVec4 => {
+                    normalise!(self, instruction, Vec4);
+                }
+
+                OPPromoteFloatFloatVec2 => {
+                    let in1: Float = self.pull(instruction.constants[0]);
+                    let in2: Float = self.pull(instruction.constants[1]);
+                    self.push(Vec2::new(in1, in2));
+                }
+
+                OPPromoteFloatFloatFloatVec3 => {
+                    let in1: Float = self.pull(instruction.constants[0]);
+                    let in2: Float = self.pull(instruction.constants[1]);
+                    let in3: Float = self.pull(instruction.constants[2]);
+                    self.push(Vec3::new(in1, in2, in3));
+                }
+
+                OPPromoteVec2FloatVec3 => {
+                    let in1: Vec2 = self.pull(instruction.constants[0]);
+                    let in2: Float = self.pull(instruction.constants[1]);
+                    self.push(Vec3::new(in1.x, in1.y, in2));
+                }
+
+                OPPromoteFloatFloatFloatFloatVec4 => {
+                    let in1: Float = self.pull(instruction.constants[0]);
+                    let in2: Float = self.pull(instruction.constants[1]);
+                    let in3: Float = self.pull(instruction.constants[2]);
+                    let in4: Float = self.pull(instruction.constants[3]);
+                    self.push(Vec4::new(in1, in2, in3, in4));
+                }
+
+                OPPromoteVec2FloatFloatVec4 => {
+                    let in1: Vec2 = self.pull(instruction.constants[0]);
+                    let in2: Float = self.pull(instruction.constants[1]);
+                    let in3: Float = self.pull(instruction.constants[2]);
+                    self.push(Vec4::new(in1.x, in1.y, in2, in3));
+                }
+
+                OPPromoteVec3FloatVec4 => {
+                    let in1: Vec3 = self.pull(instruction.constants[0]);
+                    let in2: Float = self.pull(instruction.constants[1]);
+                    self.push(Vec4::new(in1.x, in1.y, in1.z, in2));
+                }
+
+                OPPromoteVec2Vec2Vec4 => {
+                    let in1: Vec2 = self.pull(instruction.constants[0]);
+                    let in2: Vec2 = self.pull(instruction.constants[1]);
+                    self.push(Vec4::new(in1.x, in1.y, in2.x, in2.y));
+                }
+
+                OPSquareFloat => {
+                    square!(self, instruction, Float);
+                }
+
+                OPCubeFloat => {
+                    cube!(self, instruction, Float);
+                }
+
+                OPSquareVec2 => {
+                    square!(self, instruction, Vec2);
+                }
+
+                OPCubeVec2 => {
+                    cube!(self, instruction, Vec2);
+                }
+
+                OPSquareVec3 => {
+                    square!(self, instruction, Vec3);
+                }
+
+                OPCubeVec3 => {
+                    cube!(self, instruction, Vec3);
+                }
+
+                OPSquareVec4 => {
+                    square!(self, instruction, Vec4);
+                }
+
+                OPCubeVec4 => {
+                    cube!(self, instruction, Vec4);
+                }
+
+                OPSmoothMinMaterialFloat | OPSmoothMinFloat => {
+                    let k: Float = self.pull(instruction.constants[0]);
+                    let a: Float = self.pull(instruction.constants[1]);
+                    let b: Float = self.pull(instruction.constants[2]);
+                    let h: Float = (k - (a - b).abs()).max(0.) / k;
+                    self.push(a.min(b) - h * h * k * (1. / 4.));
+                }
+
+                OPSmoothMaxMaterialFloat | OPSmoothMaxFloat => {
+                    let k: Float = self.pull(instruction.constants[0]);
+                    let a: Float = self.pull(instruction.constants[1]);
+                    let b: Float = self.pull(instruction.constants[2]);
+                    let h: Float = (k - (a - b).abs()).max(0.) / k;
+                    self.push(a.max(b) + h * h * k * (1. / 4.));
+                }
+
+                OPDupFloat => {
+                    self.float_stack
+                        .push(self.float_stack[self.float_stack.len() - 1]);
+                }
+
+                OPDup2Float => {
+                    self.float_stack
+                        .push(self.float_stack[self.float_stack.len() - 2]);
+                }
+
+                OPDup3Float => {
+                    self.float_stack
+                        .push(self.float_stack[self.float_stack.len() - 3]);
+                }
+
+                OPDup4Float => {
+                    self.float_stack
+                        .push(self.float_stack[self.float_stack.len() - 4]);
+                }
+
+                OPDupVec2 => {
+                    self.vec2_stack
+                        .push(self.vec2_stack[self.vec2_stack.len() - 1]);
+                }
+
+                OPDup2Vec2 => {
+                    self.vec2_stack
+                        .push(self.vec2_stack[self.vec2_stack.len() - 2]);
+                }
+
+                OPDup3Vec2 => {
+                    self.vec2_stack
+                        .push(self.vec2_stack[self.vec2_stack.len() - 3]);
+                }
+
+                OPDup4Vec2 => {
+                    self.vec2_stack
+                        .push(self.vec2_stack[self.vec2_stack.len() - 4]);
+                }
+
+                OPDupVec3 => {
+                    self.vec3_stack
+                        .push(self.vec3_stack[self.vec3_stack.len() - 1]);
+                }
+
+                OPDup2Vec3 => {
+                    self.vec3_stack
+                        .push(self.vec3_stack[self.vec3_stack.len() - 2]);
+                }
+
+                OPDup3Vec3 => {
+                    self.vec3_stack
+                        .push(self.vec3_stack[self.vec3_stack.len() - 3]);
+                }
+
+                OPDup4Vec3 => {
+                    self.vec3_stack
+                        .push(self.vec3_stack[self.vec3_stack.len() - 4]);
+                }
+
+                OPDupVec4 => {
+                    self.vec4_stack
+                        .push(self.vec4_stack[self.vec4_stack.len() - 1]);
+                }
+
+                OPDup2Vec4 => {
+                    self.vec4_stack
+                        .push(self.vec4_stack[self.vec4_stack.len() - 2]);
+                }
+
+                OPDup3Vec4 => {
+                    self.vec4_stack
+                        .push(self.vec4_stack[self.vec4_stack.len() - 3]);
+                }
+
+                OPDup4Vec4 => {
+                    self.vec4_stack
+                        .push(self.vec4_stack[self.vec4_stack.len() - 4]);
+                }
+
+                OPSDFSphere => {
+                    let r: Float = self.pull(instruction.constants[0]);
+                    let p: Vec3 = self.pull(instruction.constants[1]);
+                    self.push(p.magnitude() - r);
+                }
+
+                OPSDFBox => {
+                    let r: Vec3 = self.pull(instruction.constants[0]);
+                    let p: Vec3 = self.pull(instruction.constants[1]);
+                    let q = p.map(Float::abs) - r;
+                    self.push(
+                        (q.map(|x| x.max(0 as Float))).magnitude() + q.x.max(q.y.max(q.z)).min(0.),
+                    );
+                }
+
+                OPSDFTorus => {
+                    let t: Vec2 = self.pull(instruction.constants[0]);
+                    let p: Vec3 = self.pull(instruction.constants[1]);
+                    let q = Vec2::new(((p.x * p.x) + (p.z * p.z)).sqrt() - t.x, p.y);
+                    self.push(q.magnitude() - t.y);
+                }
+
+                OPNop => {}
+
+                OPStop => {
+                    return self.pull(instruction.constants[0]);
+                }
+                _ => {
+                    unreachable!("invalid instruction");
+                }
             }
         }
+        return self.pull(Inputs::Variable);
     }
 }
-
-#ifdef debug
-vec3 sceneoverride(vec3 p, bool m)
-{
-    return scene(vec3[2](p,p), false);
-}
-#else
-float sceneoverride(vec3 p, bool m)
-{
-    return scene(vec3[2](p,p), false)[0];
-}
-#endif
-
-}
\ No newline at end of file
diff --git a/src/intervals.glsl b/src/intervals.glsl
index 726ed697f0f030a0f6547bbaa17d7c04df813036..8b7ef5a452ad3759e473c52f886416c74f09f08b 100644
--- a/src/intervals.glsl
+++ b/src/intervals.glsl
@@ -12,48 +12,45 @@ struct Description{
     uint scene;
     uint floats;
     uint vec2s;
-    uint vec3s;
     uint vec4s;
     uint mat2s;
     uint mat3s;
     uint mat4s;
     uint mats;
     uint dependencies;
+    float[6] bounds;
 };
 Description desc;
 
-layout(set=0,binding=2)restrict readonly buffer SceneDescription{
+layout(set=0,binding=2, std430)restrict readonly buffer SceneDescription{
     Description desc[];
 }scene_description;
 
-layout(set=0,binding=3)restrict readonly buffer SceneBuf{
+layout(set=0,binding=3, std430)restrict readonly buffer SceneBuf{
     u32vec4 opcodes[];
 }scenes;
-layout(set=0,binding=4)restrict readonly buffer FloatConst{
+layout(set=0,binding=4, std430)restrict readonly buffer FloatConst{
     float floats[];
 }fconst;
-layout(set=0,binding=5)restrict readonly buffer Vec2Const{
+layout(set=0,binding=5, std430)restrict readonly buffer Vec2Const{
     vec2 vec2s[];
 }v2const;
-layout(set=0,binding=6)restrict readonly buffer Vec3Const{
-    vec3 vec3s[];
-}v3const;
-layout(set=0,binding=7)restrict readonly buffer Vec4Const{
+layout(set=0,binding=7, std430)restrict readonly buffer Vec4Const{
     vec4 vec4s[];
 }v4const;
-layout(set=0,binding=8)restrict readonly buffer Mat2Const{
+layout(set=0,binding=8, std430)restrict readonly buffer Mat2Const{
     mat2 mat2s[];
 }m2const;
-layout(set=0,binding=9)restrict readonly buffer Mat3Const{
+layout(set=0,binding=9, std430)restrict readonly buffer Mat3Const{
     mat3 mat3s[];
 }m3const;
-layout(set=0,binding=10)restrict readonly buffer Mat4Const{
+layout(set=0,binding=10, std430)restrict readonly buffer Mat4Const{
     mat4 mat4s[];
 }m4const;
-layout(set=0,binding=11)restrict readonly buffer MatConst{
+layout(set=0,binding=11, std430)restrict readonly buffer MatConst{
     mat4 mats[];
 }matconst;
-layout(set=0,binding=12)restrict readonly buffer DepInfo{
+layout(set=0,binding=12, std430)restrict readonly buffer DepInfo{
     uint8_t dependencies[][2];
 }depinfo;
 
@@ -85,13 +82,16 @@ uint mat4_stack_head=0;
 
 uint float_const_head=0;
 uint vec2_const_head=0;
-uint vec3_const_head=0;
 uint vec4_const_head=0;
 uint mat2_const_head=0;
 uint mat3_const_head=0;
 uint mat4_const_head=0;
 uint mat_const_head=0;
 
+#define vec3_const_head vec4_const_head
+#define v3const v4const
+#define vec3s vec4s
+
 void push_float(float f[2]){
     float_stack[float_stack_head++]=f;
 }
@@ -134,7 +134,7 @@ void push_vec3(vec3 f[2]){
 
 vec3[2]pull_vec3(bool c){
     if (c) {
-        vec3 f = v3const.vec3s[desc.vec3s+vec3_const_head++];
+        vec3 f = v3const.vec3s[desc.vec3s+vec3_const_head++].xyz;
         return vec3[2](f,f);
     }
     else {
@@ -143,7 +143,7 @@ vec3[2]pull_vec3(bool c){
 }
 
 vec3 cpull_vec3(){
-    return v3const.vec3s[desc.vec3s+vec3_const_head++];
+    return v3const.vec3s[desc.vec3s+vec3_const_head++].xyz;
 }
 
 void push_vec4(vec4 f[2]){
@@ -698,18 +698,18 @@ void pruneself (int pos) {
 }
 
 #define minpruning if (prune) { if (all(lessThan(in1[1],in2[0]))) {\
-    prunesome(OPPos,bool[6](false,true,false,false,false,false));\
+    prunesome(OPPos,bool[6](true,false,false,false,false,false));\
     passthroughself(OPPos);\
 } else if (all(lessThan(in2[1],in1[0]))) {\
-    prunesome(OPPos,bool[6](true,false,false,false,false,false));\
+    prunesome(OPPos,bool[6](false,true,false,false,false,false));\
     passthroughself(OPPos);\
 }}
 
 #define maxpruning if (prune) { if (all(greaterThan(in1[0],in2[1]))) {\
-    prunesome(OPPos,bool[6](false,true,false,false,false,false));\
+    prunesome(OPPos,bool[6](true,false,false,false,false,false));\
     passthroughself(OPPos);\
 } else if (all(greaterThan(in2[0],in1[1]))) {\
-    prunesome(OPPos,bool[6](true,false,false,false,false,false));\
+    prunesome(OPPos,bool[6](false,true,false,false,false,false));\
     passthroughself(OPPos);\
 }}
 
@@ -719,6 +719,13 @@ vec3 scene(vec3 p[2], bool prune)
 float[2]scene(vec3 p[2], bool prune)
 #endif
 {
+    if (prune)
+    {
+        for (int i = 0; i<=(masklen*8); i++)
+        pruneallchecks[i] = uint8_t(0);
+    }
+    //p[0]=p[0].yxz;
+    //p[1]=p[1].yxz;
     uint major_position=0;
     uint minor_position=0;
     
@@ -735,6 +742,12 @@ float[2]scene(vec3 p[2], bool prune)
         if(minor_position==0){
             get_caches;
         }
+        /*#ifdef implicit
+        if (mask[major_position] != 255) discard;
+        if (mask[major_position+1] != 255) discard;
+        if (mask[major_position+2] != 255) discard;
+        if (mask[major_position+3] != 255) discard;
+        #endif*/
         #ifdef debug
         /*if((minor_integer_cache[minor_position]&1023)==OPStop) {
             return vec3(0.,0.,1.);
@@ -1565,11 +1578,12 @@ float[2]scene(vec3 p[2], bool prune)
                         if (prune) {
                         if (in1[1] < in2[0])
                         {
-                            prunesome(OPPos,bool[6](false,true,false,false,false,false));
+                            //return float[2](-1,-1);
+                            prunesome(OPPos,bool[6](true,false,false,false,false,false));
                             passthroughself(OPPos);
                         } else if (in2[1] < in1[0])
                         {
-                            prunesome(OPPos,bool[6](true,false,false,false,false,false));
+                            prunesome(OPPos,bool[6](false,true,false,false,false,false));
                             passthroughself(OPPos);
                         }}
                         float[2]temp;
@@ -1585,11 +1599,11 @@ float[2]scene(vec3 p[2], bool prune)
                         if (prune) {
                         if (in1[0] > in2[1])
                         {
-                            prunesome(OPPos,bool[6](false,true,false,false,false,false));
+                            prunesome(OPPos,bool[6](true,false,false,false,false,false));
                             passthroughself(OPPos);
                         } else if (in2[0] > in1[1])
                         {
-                            prunesome(OPPos,bool[6](true,false,false,false,false,false));
+                            prunesome(OPPos,bool[6](false,true,false,false,false,false));
                             passthroughself(OPPos);
                         }}
                         float[2]temp;
@@ -2803,37 +2817,27 @@ float[2]scene(vec3 p[2], bool prune)
 
                     case OPSmoothMinMaterialFloat:
                     case OPSmoothMinFloat:{
-                        if(maskdefine){
-                            if(ifconst(0)) {float_const_head++;}
-                            if(ifconst(1)) {float_const_head++;}
-                            float_const_head++;
-                            break;
-                        }
-                        float k=cpull_float();
-                        float[2] a=pull_float(ifconst(0));
-                        float[2] b=pull_float(ifconst(1));
-                        float hmin=max(k-abs(a[0]-b[0]),0.);
-                        float hmax=max(k-abs(a[1]-b[1]),0.);
-                        float smin=min(a[0],b[0])-hmin*hmin*.25/k;
-                        float smax=min(a[1],b[1])-hmax*hmax*.25/k;
+                        inputmask3(float_const_head,float_const_head,float_const_head);
+                        float[2] k=pull_float(ifconst(0));
+                        float[2] a=pull_float(ifconst(1));
+                        float[2] b=pull_float(ifconst(2));
+                        float hmin=max(k[0]-abs(a[0]-b[0]),0.);
+                        float hmax=max(k[0]-abs(a[1]-b[1]),0.);
+                        float smin=min(a[0],b[0])-hmin*hmin*.25/k[0];
+                        float smax=min(a[1],b[1])-hmax*hmax*.25/k[0];
                         push_float(float[2](smin,smax));
                     }
                     break;
                     case OPSmoothMaxMaterialFloat:
                     case OPSmoothMaxFloat:{
-                        if(maskdefine){
-                            if(ifconst(0)) {float_const_head++;}
-                            if(ifconst(1)) {float_const_head++;}
-                            float_const_head++;
-                            break;
-                        }
-                        float k=cpull_float();
-                        float[2] a=pull_float(ifconst(0));
-                        float[2] b=pull_float(ifconst(1));
-                        float hmin=max(k-abs(a[0]-b[0]),0.);
-                        float hmax=max(k-abs(a[1]-b[1]),0.);
-                        float smin=max(a[0],b[0])+hmin*hmin*.25/k;
-                        float smax=max(a[1],b[1])+hmax*hmax*.25/k;
+                        inputmask3(float_const_head,float_const_head,float_const_head);
+                        float[2] k=pull_float(ifconst(0));
+                        float[2] a=pull_float(ifconst(1));
+                        float[2] b=pull_float(ifconst(2));
+                        float hmin=max(k[0]-abs(a[0]-b[0]),0.);
+                        float hmax=max(k[0]-abs(a[1]-b[1]),0.);
+                        float smin=max(a[0],b[0])+hmin*hmin*.25/k[0];
+                        float smax=max(a[1],b[1])+hmax*hmax*.25/k[0];
                         push_float(float[2](smin,smax));
                     }
                     break;
@@ -3084,13 +3088,13 @@ float[2]scene(vec3 p[2], bool prune)
                     {
                         inputmask2(float_const_head,vec3_const_head);
                         float[2] in2=pull_float(ifconst(0));
-                        #ifdef debug
+                        /*#ifdef debug
                         if (in2[0] == in2[1] && in2[0] == 0.2)
                         {return vec3(in2[0],in2[1],0.);
                         }else{
                             return vec3(in2[0],in2[1],1.);
                         }
-                        #endif
+                        #endif*/
                         vec3[2] in1=pull_vec3(ifconst(1));
                         /*#ifdef debug
                         return in1[0];
@@ -3108,12 +3112,58 @@ float[2]scene(vec3 p[2], bool prune)
                         push_float(out1);
                     }
                     break;
+
+                    case OPSDFTorus:
+                    {
+                        inputmask2(vec2_const_head,vec3_const_head);
+                        vec2[2] in2=pull_vec2(ifconst(0)); //t
+                        vec3[2] in1=pull_vec3(ifconst(1)); //p
+                        vec2[2] out1;
+                        float[2] out2;
+
+                        bvec2 mixer=mix(bvec2(false),greaterThan(in1[1].xz,vec2(0)),lessThan(in1[0].xz,vec2(0)));
+                        out1[0].x=length(mix(min(abs(in1[0].xz),abs(in1[1].xz)),vec2(0),mixer))-in2[1].x;
+                        out1[1].x=length(max(abs(in1[0].xz),abs(in1[1].xz)))-in2[0].x;
+                        out1[0].y = p[0].y;
+                        out1[1].y = p[1].y;
+
+                        mixer=mix(bvec2(false),greaterThan(out1[1],vec2(0)),lessThan(out1[0],vec2(0)));
+                        out2[0]=length(mix(min(abs(out1[0]),abs(out1[1])),vec2(0),mixer))-in2[1].y;
+                        out2[1]=length(max(abs(out1[0]),abs(out1[1])))-in2[0].y;
+                        
+                        push_float(out2);
+                    }
+                    break;
+
+                    //this doesn't work internally but it's probably fiiiine
+                    case OPSDFBox:
+                    {
+                        inputmask2(vec3_const_head,vec3_const_head);
+                        vec3[2] in2=pull_vec3(ifconst(0)); //r
+                        vec3[2] in1=pull_vec3(ifconst(1)); //p
+
+                        #ifdef debug
+                        return in1[0];
+                        #endif
+
+                        vec3[2]temp;
+                        bvec3 mixer = bvec3(false);
+                        vec3 zero = vec3(0);
+                        absolute;
+                        subtract;
+                        float out1 = length(max(in1[0],0.0))+min(max(in1[0].x,max(in1[0].y,in1[0].z)),0.0);
+                        float out2 = length(max(in1[1],0.0))+min(max(in1[1].x,max(in1[1].y,in1[1].z)),0.0);
+                        push_float(float[2](min(out1,out2),max(out1,out2)));
+                    }
+                    break;
                     
                     case OPNop:
                     break;
                     case OPStop:
-                    if (prune)
-                    pruneall(uint8_t((major_position<<3)|minor_position));
+                    if (prune) {
+                        //return float[2](-1,-1);
+                        pruneall(uint8_t((major_position<<3)|minor_position));
+                    }
                     #ifdef debug
                     return vec3(pull_float(ifconst(0))[0]);
                     #else
@@ -3124,7 +3174,7 @@ float[2]scene(vec3 p[2], bool prune)
                     #ifdef debug
                     return vec3(float(minor_integer_cache[minor_position]));
                     #else
-                    return float[2](0,0);
+                    return float[2](-1,-1);
                     #endif
                 }
         
@@ -3135,8 +3185,9 @@ float[2]scene(vec3 p[2], bool prune)
             major_position++;
             if(major_position==masklen)
             {
-                if (prune)
-                pruneall(uint8_t((masklen*8)));
+                if (prune) {
+                    pruneall(uint8_t(masklen<<3));
+                }
                 #ifdef debug
                 return vec3(pull_float(false)[0]);
                 #else
diff --git a/src/main.rs b/src/main.rs
index f09a56f63d1d1c9098a3017b597481692b393907..3882533e5a2595cdbc6b567280683fa12540fe38 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,7 +1,8 @@
 #![feature(variant_count)]
+use bytemuck::{Zeroable, Pod};
 use cgmath::{
     Deg, EuclideanSpace, Euler, Matrix2, Matrix3, Matrix4, Point3, Rad, SquareMatrix, Vector2,
-    Vector3, Vector4,
+    Vector3, Vector4, Zero,
 };
 use instruction_set::InputTypes;
 use vulkano::command_buffer::{CopyBufferInfo, PrimaryCommandBufferAbstract};
@@ -66,6 +67,7 @@ use winit::{
 mod gui;
 use crate::gui::*;
 mod objects;
+use crate::interpreter::Interpreter;
 use crate::objects::*;
 mod mcsg_deserialise;
 
@@ -75,6 +77,8 @@ mod instruction_set {
 
 use crate::instruction_set::InstructionSet;
 
+mod interpreter;
+
 pub type MemoryAllocator = StandardMemoryAllocator;
 
 fn main() {
@@ -300,6 +304,21 @@ fn main() {
         }
     }
 
+    mod cs {
+        vulkano_shaders::shader!{
+            ty: "compute",
+            path: "src/fuzz.comp.glsl",
+            types_meta: {
+                use bytemuck::{Pod, Zeroable};
+
+                #[derive(Clone, Copy, Zeroable, Pod, Debug)]
+            },
+            vulkan_version: "1.2",
+            spirv_version: "1.5",
+        }
+    }
+    
+
     let loaders: Vec<
         fn(
             ::std::sync::Arc<::vulkano::device::Device>,
@@ -343,6 +362,13 @@ fn main() {
                 ::std::sync::Arc<::vulkano::shader::ShaderModule>,
                 ::vulkano::shader::ShaderCreationError,
             >),
+        ((cs::load)
+            as fn(
+                ::std::sync::Arc<::vulkano::device::Device>,
+            ) -> Result<
+                ::std::sync::Arc<::vulkano::shader::ShaderModule>,
+                ::vulkano::shader::ShaderCreationError,
+            >),
     ];
 
     let pariter = loaders
@@ -357,8 +383,21 @@ fn main() {
     let implicit_ts = pariter[3].clone();
     let implicit_fs = pariter[4].clone();
 
+    let compute_shader = pariter[5].clone();
+
     drop(pariter);
 
+    use vulkano::pipeline::ComputePipeline;
+
+    let compute_pipeline = ComputePipeline::new(
+    device.clone(),
+    compute_shader.entry_point("main").unwrap(),
+    &(),
+    None,
+    |_| {},
+    )   
+    .expect("failed to create compute pipeline");
+
     let memory_allocator = Arc::new(MemoryAllocator::new_default(device.clone()));
 
     let render_pass = vulkano::ordered_passes_renderpass!(
@@ -402,6 +441,8 @@ fn main() {
         depth_range: 0.0..1.0,
     };
 
+    let mut gstate = GState::default();
+
     //let [RES_X, RES_Y] = images[0].dimensions().width_height();
     let ([mut mesh_pipeline, mut implicit_pipeline], mut framebuffers) =
         window_size_dependent_setup(
@@ -414,7 +455,12 @@ fn main() {
             &images,
             render_pass.clone(),
             &mut viewport,
-            implicit_fs::SpecializationConstants {},
+            
+            implicit_fs::SpecializationConstants {DISABLE_TRACE:gstate.debug.bounding_boxes as u32},
+            implicit_ms::SpecializationConstants {DISABLE_TRACE:gstate.debug.disable_meshcull as u32,
+                DISABLE_SCALING_1:gstate.debug.disable_meshscale1 as u32,
+                DISABLE_SCALING_2:gstate.debug.disable_meshscale2 as u32},
+            implicit_ts::SpecializationConstants {DISABLE_TRACE:gstate.debug.disable_taskcull as u32},
         );
 
     let command_buffer_allocator =
@@ -442,8 +488,6 @@ fn main() {
         Subpass::from(render_pass.clone(), 1).unwrap(),
     );
 
-    let mut gstate = GState::default();
-
     let mut campos = Point3 {
         x: 0f32,
         y: 0f32,
@@ -491,7 +535,9 @@ fn main() {
         .lights
         .push(Light::new([-4., 6., -8.], [8., 4., 1.], 0.05));
 
-    let subbuffers = object_size_dependent_setup(memory_allocator.clone(), &gstate, &command_buffer_allocator, transfer_queue.clone());
+    let subbuffers = object_size_dependent_setup(memory_allocator.clone(), &gstate.csg, &command_buffer_allocator, transfer_queue.clone(), None, false);
+
+    let mut prevdub = PreviousDebug::default();
 
     let mut render_start = Instant::now();
 
@@ -571,6 +617,10 @@ fn main() {
 
                 previous_frame_end.as_mut().unwrap().cleanup_finished();
 
+                if prevdub != gstate.debug {
+                    recreate_swapchain = true;
+                }
+
                 if recreate_swapchain {
                     let (new_swapchain, new_images) =
                         match swapchain.recreate(SwapchainCreateInfo {
@@ -583,7 +633,7 @@ fn main() {
                         };
 
                     swapchain = new_swapchain;
-                    let [RES_X, RES_Y] = images[0].dimensions().width_height();
+                    //let [RES_X, RES_Y] = images[0].dimensions().width_height();
                     ([mesh_pipeline, implicit_pipeline], framebuffers) =
                         window_size_dependent_setup(
                             &memory_allocator,
@@ -595,9 +645,14 @@ fn main() {
                             &new_images,
                             render_pass.clone(),
                             &mut viewport,
-                            implicit_fs::SpecializationConstants {},
+                            implicit_fs::SpecializationConstants {DISABLE_TRACE:gstate.debug.bounding_boxes as u32},
+                            implicit_ms::SpecializationConstants {DISABLE_TRACE:gstate.debug.disable_meshcull as u32,
+                                DISABLE_SCALING_1:gstate.debug.disable_meshscale1 as u32,
+                                DISABLE_SCALING_2:gstate.debug.disable_meshscale2 as u32},
+                            implicit_ts::SpecializationConstants {DISABLE_TRACE:gstate.debug.disable_taskcull as u32},
                         );
                     recreate_swapchain = false;
+                    prevdub = gstate.debug;
                 }
 
                 let (mut push_constants, cam_set) = {
@@ -695,7 +750,7 @@ fn main() {
                     *sub.write().unwrap() = uniform_data;
                     sub
                 };
-
+                
                 let mesh_layout = mesh_pipeline.layout().set_layouts().get(0).unwrap();
                 let mesh_set = PersistentDescriptorSet::new(
                     &descriptor_set_allocator,
@@ -718,7 +773,7 @@ fn main() {
                         WriteDescriptorSet::buffer(3, subbuffers.scene.clone()),
                         WriteDescriptorSet::buffer(4, subbuffers.floats.clone()),
                         WriteDescriptorSet::buffer(5, subbuffers.vec2s.clone()),
-                        WriteDescriptorSet::buffer(6, subbuffers.vec3s.clone()),
+                        //WriteDescriptorSet::buffer(6, subbuffers.vec3s.clone()),
                         WriteDescriptorSet::buffer(7, subbuffers.vec4s.clone()),
                         //WriteDescriptorSet::buffer(8, subbuffers.mat2s.clone()),
                         //WriteDescriptorSet::buffer(9, subbuffers.mat3s.clone()),
@@ -730,6 +785,100 @@ fn main() {
                 )
                 .unwrap();
 
+                const COMPUTE_FUZZING: bool = false;
+                
+                if COMPUTE_FUZZING {
+
+                    let mut fake_csg = vec![];
+                    for i in 0..(32)
+                    {
+                        fake_csg.push(
+                            CSG{ name: format!("fuzz_{}",i), parts: vec![
+                                CSGPart::opcode(InstructionSet::OPMulVec3Float, vec![Inputs::Variable, Inputs::Float(0.9)]),
+                                CSGPart::opcode(InstructionSet::OPDupVec3, vec![Inputs::Variable]),
+                                CSGPart::opcode(InstructionSet::OPAddVec3Vec3, vec![Inputs::Variable, Inputs::Vec3([-0.7, (i as f64), -0.7].into())]),
+                                CSGPart::opcode(InstructionSet::OPSDFSphere,vec![Inputs::Float(0.5), Inputs::Variable]),
+                                //CSGPart::opcode(InstructionSet::OPNop,vec![]),
+                                //CSGPart::opcode(InstructionSet::OPDupVec3, vec![Inputs::Variable]),
+                                //CSGPart::opcode(InstructionSet::OPAddVec3Vec3, vec![Inputs::Variable, Inputs::Vec3([-0.2, -0.2, -0.2].into())]),
+                                //CSGPart::opcode(InstructionSet::OPAddVec3Vec3, vec![Inputs::Variable, Inputs::Vec3([-0.0, -0.0, -0.0].into())]),
+                                CSGPart::opcode(InstructionSet::OPSDFSphere,vec![Inputs::Float(1.2), Inputs::Variable]),
+                                //CSGPart::opcode(InstructionSet::OPSDFBox, vec![Inputs::Variable, Inputs::Vec3([0.7, 0.7, 0.7].into())]),
+                                CSGPart::opcode(InstructionSet::OPMinFloat, vec![Inputs::Variable,Inputs::Variable]),
+                                CSGPart::opcode(InstructionSet::OPDivFloatFloat, vec![Inputs::Variable, Inputs::Float(0.9)]),
+                                CSGPart::opcode(InstructionSet::OPStop, vec![Inputs::Variable]),
+                            ], pos: Point3::origin(), rot: Euler { x: Deg(0.), y: Deg(0.), z: Deg(0.) }, scale: Vector3 { x: 1., y: 1., z: 1. } }
+                        )
+                    }
+                
+                    let compute_subbuffers = object_size_dependent_setup(memory_allocator.clone(), &fake_csg, &command_buffer_allocator, transfer_queue.clone(), Some(
+                        [1.,1.,1.,1.,5.,1.]
+                    ),true);
+
+                    let compute_result_buffer:Subbuffer<[cs::ty::Results]> = uniform_buffer.allocate_slice((fake_csg.len()+1) as u64).unwrap();
+
+
+                    let compute_layout = compute_pipeline.layout().set_layouts().get(0).unwrap();
+                    let compute_set = PersistentDescriptorSet::new(
+                        &descriptor_set_allocator,
+                        compute_layout.clone(),
+                        [
+                            //WriteDescriptorSet::buffer(0, uniform_buffer_subbuffer.clone()),
+                            //WriteDescriptorSet::buffer(1, cam_set.clone()),
+                            WriteDescriptorSet::buffer(2, compute_subbuffers.desc.clone()),
+                            WriteDescriptorSet::buffer(3, compute_subbuffers.scene.clone()),
+                            WriteDescriptorSet::buffer(4, compute_subbuffers.floats.clone()),
+                            WriteDescriptorSet::buffer(5, compute_subbuffers.vec2s.clone()),
+                            //WriteDescriptorSet::buffer(6, compute_subbuffers.vec3s.clone()),
+                            WriteDescriptorSet::buffer(7, compute_subbuffers.vec4s.clone()),
+                            //WriteDescriptorSet::buffer(8, compute_subbuffers.mat2s.clone()),
+                            //WriteDescriptorSet::buffer(9, compute_subbuffers.mat3s.clone()),
+                            //WriteDescriptorSet::buffer(10, compute_subbuffers.mat4s.clone()),
+                            //WriteDescriptorSet::buffer(11, compute_subbuffers.mats.clone()),
+                            WriteDescriptorSet::buffer(12, compute_subbuffers.deps.clone()),
+                            //WriteDescriptorSet::buffer(20, compute_subbuffers.masks.clone()),
+                            WriteDescriptorSet::buffer(30, compute_result_buffer.clone()),],
+                    )
+                    .unwrap();
+
+                    let mut builder = AutoCommandBufferBuilder::primary(
+                        &command_buffer_allocator,
+                        queue.queue_family_index(),
+                        CommandBufferUsage::OneTimeSubmit,
+                    )
+                    .unwrap();
+
+                    builder
+                        .bind_pipeline_compute(compute_pipeline.clone())
+                        .bind_descriptor_sets(
+                            PipelineBindPoint::Compute,
+                            compute_pipeline.layout().clone(),
+                            0, // 0 is the index of our set
+                            compute_set,
+                        )
+                        .dispatch([1, 1, 1])
+                        .unwrap();
+                    
+                    let command_buffer = builder.build().unwrap();
+
+                    let future = sync::now(device.clone())
+                        .then_execute(queue.clone(), command_buffer)
+                        .unwrap()
+                        .then_signal_fence_and_flush()
+                        .unwrap();
+
+                    future.wait(None).unwrap();
+
+                    let content = compute_result_buffer.read().unwrap();
+                    for (val,csg) in content.iter().zip(fake_csg.iter()) {
+                        println!("{:?}",val);
+                        let expected = Interpreter::new(csg).scene(Vector3::new(1.,1.,1.)) as f32;
+                        if expected != val.f[0] {
+                            println!("ERROR: expected {}, got {}", expected, val.f[0]);
+                        }
+                    }
+                }
+
                 let (image_index, suboptimal, acquire_future) =
                     match acquire_next_image(swapchain.clone(), None) {
                         Ok(r) => r,
@@ -864,7 +1013,7 @@ fn main() {
 }
 
 /// This method is called once during initialization, then again whenever the window is resized
-fn window_size_dependent_setup<Mms>(
+fn window_size_dependent_setup<Fs,Ms,Ts>(
     allocator: &StandardMemoryAllocator,
     mesh_vs: &ShaderModule,
     mesh_fs: &ShaderModule,
@@ -874,10 +1023,14 @@ fn window_size_dependent_setup<Mms>(
     images: &[Arc<SwapchainImage>],
     render_pass: Arc<RenderPass>,
     viewport: &mut Viewport,
-    specs: Mms,
+    implicit_fs_specs: Fs,
+    implicit_ms_specs: Ms,
+    implicit_ts_specs: Ts,
 ) -> ([Arc<GraphicsPipeline>; 2], Vec<Arc<Framebuffer>>)
 where
-    Mms: SpecializationConstants + Clone,
+    Fs: SpecializationConstants + Clone,
+    Ms: SpecializationConstants + Clone,
+    Ts: SpecializationConstants + Clone,
 {
     let dimensions = images[0].dimensions().width_height();
     viewport.dimensions = [dimensions[0] as f32, dimensions[1] as f32];
@@ -887,7 +1040,7 @@ where
             allocator,
             dimensions,
             SampleCount::Sample4,
-            Format::D16_UNORM,
+            Format::D16_UNORM, // D24_UNORM_S8_UINT
         )
         .unwrap(),
     )
@@ -944,7 +1097,7 @@ where
                 depth_range: 0.0..1.0,
             },
         ]))
-        .fragment_shader(mesh_fs.entry_point("main").unwrap(), specs.clone())
+        .fragment_shader(mesh_fs.entry_point("main").unwrap(), ())
         .depth_stencil_state(DepthStencilState::simple_depth_test())
         .rasterization_state(RasterizationState {
             front_face: Fixed(Clockwise),
@@ -974,9 +1127,9 @@ where
                 depth_range: 0.0..1.0,
             },
         ]))
-        .fragment_shader(implicit_fs.entry_point("main").unwrap(), specs)
-        .task_shader(implicit_ts.entry_point("main").unwrap(), ())
-        .mesh_shader(implicit_ms.entry_point("main").unwrap(), ())
+        .fragment_shader(implicit_fs.entry_point("main").unwrap(), implicit_fs_specs.clone())
+        .task_shader(implicit_ts.entry_point("main").unwrap(), implicit_ts_specs.clone())
+        .mesh_shader(implicit_ms.entry_point("main").unwrap(), implicit_ms_specs.clone())
         .depth_stencil_state(DepthStencilState::simple_depth_test())
         .rasterization_state(RasterizationState {
             //front_face: Fixed(Clockwise),
@@ -999,11 +1152,19 @@ where
     ([mesh_pipeline, implicit_pipeline], framebuffers)
 }
 
+
+#[repr(C)]
+#[derive(Clone,Copy,Pod,Zeroable, Default, Debug)]
+struct Description {
+    pointers: [u32; 9],
+    bounds: [f32;6],
+}
+
 struct Subbuffers {
     masks: Subbuffer<[[u8; 29]]>,
     floats: Subbuffer<[f32]>,
     vec2s: Subbuffer<[[f32; 2]]>,
-    vec3s: Subbuffer<[[f32; 3]]>,
+    //vec3s: Subbuffer<[[f32; 4]]>,
     vec4s: Subbuffer<[[f32; 4]]>,
     mat2s: Subbuffer<[[[f32; 2]; 2]]>,
     mat3s: Subbuffer<[[[f32; 3]; 3]]>,
@@ -1011,7 +1172,7 @@ struct Subbuffers {
     mats: Subbuffer<[[[f32; 4]; 4]]>,
     scene: Subbuffer<[[u32; 4]]>,
     deps: Subbuffer<[[u8; 2]]>,
-    desc: Subbuffer<[[u32; 10]]>,
+    desc: Subbuffer<[Description]>,
 }
 
 impl PartialEq<InputTypes> for Inputs {
@@ -1076,15 +1237,29 @@ where
     buffer
 }
 
+fn f64tof32<const A:usize>(input: [[f64;A];A]) -> [[f32;A];A]
+{
+    let mut out = [[0_f32;A];A];
+    for x in 0..input.len()
+    {
+    for y in 0..input.len()
+    {
+        out[x][y] = input[x][y] as f32;
+    }
+}
+    out
+}
+
 fn object_size_dependent_setup(
     allocator: Arc<StandardMemoryAllocator>,
-    state: &GState,
+    state: &Vec<CSG>,
     command_allocator: &StandardCommandBufferAllocator,
     queue: Arc<Queue>,
+    set_bound: Option<[f32;6]>,
+    actual: bool,
 ) -> Subbuffers {
     let mut floats: Vec<f32> = vec![Default::default()];
     let mut vec2s: Vec<[f32; 2]> = vec![Default::default()];
-    let mut vec3s: Vec<[f32; 3]> = vec![Default::default()];
     let mut vec4s: Vec<[f32; 4]> = vec![Default::default()];
     let mut mat2s: Vec<[[f32; 2]; 2]> = vec![Default::default()];
     let mut mat3s: Vec<[[f32; 3]; 3]> = vec![Default::default()];
@@ -1092,16 +1267,15 @@ fn object_size_dependent_setup(
     let mut mats: Vec<[[f32; 4]; 4]> = vec![Default::default()];
     let mut scene: Vec<[u32; 4]> = vec![Default::default()];
     let mut deps: Vec<[u8; 2]> = vec![Default::default()];
-    let mut desc: Vec<[u32; 10]> = vec![Default::default()];
+    let mut desc: Vec<Description> = vec![Default::default()];
 
-    'nextcsg: for csg in &state.csg {
+    'nextcsg: for csg in state {
         let mut data: Vec<[u32; 4]> = vec![];
 
         let to_push = [
             scene.len() as u32,
             floats.len() as u32,
             vec2s.len() as u32,
-            vec3s.len() as u32,
             vec4s.len() as u32,
             mat2s.len() as u32,
             mat3s.len() as u32,
@@ -1110,19 +1284,24 @@ fn object_size_dependent_setup(
             deps.len() as u32,
         ];
 
-        let parts = vec![
+        let example = vec![
+            CSGPart::opcode(InstructionSet::OPMulVec3Float, vec![Inputs::Variable, Inputs::Float(0.9)]),
+            CSGPart::opcode(InstructionSet::OPDupVec3, vec![Inputs::Variable]),
+            CSGPart::opcode(InstructionSet::OPAddVec3Vec3, vec![Inputs::Variable, Inputs::Vec3([-0.7, -1.2, -0.7].into())]),
+            CSGPart::opcode(InstructionSet::OPSDFSphere,vec![Inputs::Float(0.5), Inputs::Variable]),
+            //CSGPart::opcode(InstructionSet::OPNop,vec![]),
             //CSGPart::opcode(InstructionSet::OPDupVec3, vec![Inputs::Variable]),
-            //CSGPart::opcode(InstructionSet::OPSubVec3Vec3, vec![Inputs::Variable, Inputs::Vec3([0., 0.2, 0.].into())]),
-            CSGPart::opcode(
-                InstructionSet::OPSDFSphere,
-                vec![Inputs::Float(1.0), Inputs::Variable],
-            ),
-            //CSGPart::opcode(InstructionSet::OPAddVec3Vec3, 0b010000),
-            //CSGPart::opcode(InstructionSet::OPSDFSphere, 0b100000),
-            //CSGPart::opcode(InstructionSet::OPSmoothMinFloat, 0b000000),
+            //CSGPart::opcode(InstructionSet::OPAddVec3Vec3, vec![Inputs::Variable, Inputs::Vec3([-0.2, -0.2, -0.2].into())]),
+            //CSGPart::opcode(InstructionSet::OPAddVec3Vec3, vec![Inputs::Variable, Inputs::Vec3([-0.0, -0.0, -0.0].into())]),
+            //CSGPart::opcode(InstructionSet::OPSDFSphere,vec![Inputs::Float(1.2), Inputs::Variable]),
+            CSGPart::opcode(InstructionSet::OPSDFTorus, vec![Inputs::Vec2([0.7, 0.4].into()), Inputs::Variable]),
+            CSGPart::opcode(InstructionSet::OPMinFloat, vec![Inputs::Variable,Inputs::Variable]),
+            CSGPart::opcode(InstructionSet::OPDivFloatFloat, vec![Inputs::Variable, Inputs::Float(0.9)]),
             CSGPart::opcode(InstructionSet::OPStop, vec![Inputs::Variable]),
         ];
 
+        let parts = if actual {&csg.parts} else {&example};
+
         let mut dependencies: Vec<[u8; 2]> = vec![];
         for _ in 0..parts.len() {
             dependencies.push([u8::MAX, u8::MAX]);
@@ -1244,13 +1423,13 @@ fn object_size_dependent_setup(
                     }
                 } else {
                     match actual {
-                        &Inputs::Float(f) => floats.push(f),
-                        &Inputs::Vec2(f) => vec2s.push(f.into()),
-                        &Inputs::Vec3(f) => vec3s.push(f.into()),
-                        &Inputs::Vec4(f) => vec4s.push(f.into()),
-                        &Inputs::Mat2(f) => mat2s.push(f.into()),
-                        &Inputs::Mat3(f) => mat3s.push(f.into()),
-                        &Inputs::Mat4(f) => mat4s.push(f.into()),
+                        &Inputs::Float(f) => floats.push(f as f32),
+                        &Inputs::Vec2(f) => vec2s.push(f.map(|x| x as f32).into()),
+                        &Inputs::Vec3(f) => vec4s.push(f.map(|x| x as f32).extend(1.).into()),
+                        &Inputs::Vec4(f) => vec4s.push(f.map(|x| x as f32).into()),
+                        &Inputs::Mat2(f) => mat2s.push(f64tof32(f.into())),
+                        &Inputs::Mat3(f) => mat3s.push(f64tof32(f.into())),
+                        &Inputs::Mat4(f) => mat4s.push(f64tof32(f.into())),
                         &Inputs::Variable => unreachable!(),
                     }
                 }
@@ -1273,7 +1452,7 @@ fn object_size_dependent_setup(
         let mut minor = 0;
         let mut major = 0;
 
-        for part in parts {
+        for part in parts.iter() {
             if major == data.len() {
                 data.push([0; 4]);
             }
@@ -1292,7 +1471,23 @@ fn object_size_dependent_setup(
             }
         }
 
-        desc.push(to_push);
+        let temp_csg = &CSG { name: "test".to_string(), parts: parts.to_vec(), pos: Point3::origin(), rot: Euler::new(Deg(0.), Deg(0.), Deg(0.)), scale: Vector3 { x: 1., y: 1., z: 1. } };
+
+        let mut interpreter = interpreter::Interpreter::new( temp_csg);
+        const CLIPCHECK:Float =65536.;
+
+        let bounds = set_bound.unwrap_or([
+            ((CLIPCHECK-interpreter.scene(Vector3::new(CLIPCHECK,0.,0.)))*1.00001) as f32,
+            ((CLIPCHECK-interpreter.scene(Vector3::new(0.,CLIPCHECK,0.)))*1.00001)  as f32,
+            ((CLIPCHECK-interpreter.scene(Vector3::new(0.,0.,CLIPCHECK)))*1.00001)  as f32,
+            ((-CLIPCHECK+interpreter.scene(Vector3::new(-CLIPCHECK,0.,0.)))*1.00001)  as f32,
+            ((-CLIPCHECK+interpreter.scene(Vector3::new(0.,-CLIPCHECK,0.)))*1.00001)  as f32,
+            ((-CLIPCHECK+interpreter.scene(Vector3::new(0.,0.,-CLIPCHECK)))*1.00001)  as f32,
+        ]);
+
+        //println!("bounds: {:?}",bounds);
+
+        desc.push(Description {pointers:to_push,bounds});
 
         scene.append(&mut data);
 
@@ -1303,8 +1498,7 @@ fn object_size_dependent_setup(
 
     println!("floats: {:?}", floats);
     println!("vec2s: {:?}", vec2s);
-    println!("vec3s: {:?}", vec3s);
-    println!("vec4s: {:?}", vec4s);
+    println!("vec3/4s: {:?}", vec4s);
     println!("mat2s: {:?}", mat2s);
     println!("mat3s: {:?}", mat3s);
     println!("mat4s: {:?}", mat4s);
@@ -1338,7 +1532,7 @@ fn object_size_dependent_setup(
     let csg_desc = gpu_buffer(desc, &allocator, &staging, command_allocator, queue.clone());
     let csg_floats = gpu_buffer(floats, &allocator, &staging, command_allocator, queue.clone());
     let csg_vec2s = gpu_buffer(vec2s, &allocator, &staging, command_allocator, queue.clone());
-    let csg_vec3s = gpu_buffer(vec3s, &allocator, &staging, command_allocator, queue.clone());
+    //let csg_vec3s = gpu_buffer(vec3s, &allocator, &staging, command_allocator, queue.clone());
     let csg_vec4s = gpu_buffer(vec4s, &allocator, &staging, command_allocator, queue.clone());
     let csg_mat2s = gpu_buffer(mat2s, &allocator, &staging, command_allocator, queue.clone());
     let csg_mat3s = gpu_buffer(mat3s, &allocator, &staging, command_allocator, queue.clone());
@@ -1350,7 +1544,7 @@ fn object_size_dependent_setup(
         masks: fragment_masks_buffer,
         floats: csg_floats,
         vec2s: csg_vec2s,
-        vec3s: csg_vec3s,
+        //vec3s: csg_vec3s,
         vec4s: csg_vec4s,
         mat2s: csg_mat2s,
         mat3s: csg_mat3s,
diff --git a/src/objects.rs b/src/objects.rs
index f50a700d1aa18157d598c00eb91e172784aeed30..8e756cc46e1ee454f6e92a5c6cfef2c75678a008 100644
--- a/src/objects.rs
+++ b/src/objects.rs
@@ -7,8 +7,8 @@ use std::{
 
 use bytemuck::{Pod, Zeroable};
 use cgmath::{
-    Deg, EuclideanSpace, Euler, Matrix2, Matrix3, Matrix4, Point3, SquareMatrix, Vector2, Vector3,
-    Vector4,
+    num_traits::float, Deg, EuclideanSpace, Euler, Matrix2, Matrix3, Matrix4, Point3, SquareMatrix,
+    Vector2, Vector3, Vector4,
 };
 use obj::{LoadConfig, ObjData, ObjError};
 use serde::{Deserialize, Serialize};
@@ -55,17 +55,25 @@ pub struct CSG {
     pub scale: Vector3<f32>,
 }
 
-#[derive(Clone, Debug, Default, PartialEq)]
+pub type Float = f64;
+pub type Vec2 = Vector2<Float>;
+pub type Vec3 = Vector3<Float>;
+pub type Vec4 = Vector4<Float>;
+pub type Mat2 = Matrix2<Float>;
+pub type Mat3 = Matrix3<Float>;
+pub type Mat4 = Matrix4<Float>;
+
+#[derive(Clone, Copy, Debug, Default, PartialEq)]
 pub enum Inputs {
     #[default]
     Variable,
-    Float(f32),
-    Vec2(Vector2<f32>),
-    Vec3(Vector3<f32>),
-    Vec4(Vector4<f32>),
-    Mat2(Matrix2<f32>),
-    Mat3(Matrix3<f32>),
-    Mat4(Matrix4<f32>),
+    Float(Float),
+    Vec2(Vec2),
+    Vec3(Vec3),
+    Vec4(Vec4),
+    Mat2(Mat2),
+    Mat3(Mat3),
+    Mat4(Mat4),
 }
 
 #[repr(C)]
@@ -74,7 +82,7 @@ pub struct CSGPart {
     pub code: u16,
     pub opcode: InstructionSet,
     pub constants: Vec<Inputs>,
-    pub material: Option<Matrix4<f32>>,
+    pub material: Option<Mat4>,
 }
 
 impl CSGPart {
@@ -101,7 +109,7 @@ impl CSGPart {
     pub fn opcode_with_material(
         opcode: InstructionSet,
         inputs: Vec<Inputs>,
-        material: Matrix4<f32>,
+        material: Mat4,
     ) -> CSGPart {
         let mut c = CSGPart::opcode(opcode, inputs);
         c.material = Some(material);
diff --git a/src/stupid.spv b/src/stupid.spv
deleted file mode 100644
index aaa7cec112b4f2394724431d7d3f8b9d399b4108..0000000000000000000000000000000000000000
Binary files a/src/stupid.spv and /dev/null differ
diff --git a/src/stupid.spvasm b/src/stupid.spvasm
deleted file mode 100644
index f7d4dc64211685717c927f2bc3995404a5798850..0000000000000000000000000000000000000000
--- a/src/stupid.spvasm
+++ /dev/null
@@ -1,56846 +0,0 @@
-; SPIR-V
-; Version: 1.6
-; Generator: Google Shaderc over Glslang; 11
-; Bound: 270614
-; Schema: 0
-               OpCapability Shader
-               OpCapability Int8
-          %1 = OpExtInstImport "GLSL.std.450"
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %4 "main" %128 %176 %225 %264 %296 %329 %354 %383 %412 %450 %477 %10462 %10475 %10509 %gl_FragDepth
-               OpExecutionMode %4 OriginUpperLeft
-               OpExecutionMode %4 DepthReplacing
-               OpMemberDecorate %_struct_126 0 ColMajor
-               OpMemberDecorate %_struct_126 0 Offset 0
-               OpMemberDecorate %_struct_126 0 MatrixStride 16
-               OpDecorate %_struct_126 Block
-               OpDecorate %_arr_v4float_uint_32 ArrayStride 16
-               OpDecorate %_arr_v4float_uint_32_0 ArrayStride 16
-               OpMemberDecorate %_struct_174 0 Offset 0
-               OpMemberDecorate %_struct_174 1 Offset 512
-               OpMemberDecorate %_struct_174 2 Offset 1024
-               OpDecorate %_struct_174 Block
-               OpDecorate %176 DescriptorSet 0
-               OpDecorate %176 Binding 0
-               OpDecorate %_runtimearr_float ArrayStride 4
-               OpMemberDecorate %_struct_223 0 Restrict
-               OpMemberDecorate %_struct_223 0 NonWritable
-               OpMemberDecorate %_struct_223 0 Offset 0
-               OpDecorate %_struct_223 Block
-               OpDecorate %225 DescriptorSet 0
-               OpDecorate %225 Binding 4
-               OpDecorate %_runtimearr_v2float ArrayStride 8
-               OpMemberDecorate %_struct_262 0 Restrict
-               OpMemberDecorate %_struct_262 0 NonWritable
-               OpMemberDecorate %_struct_262 0 Offset 0
-               OpDecorate %_struct_262 Block
-               OpDecorate %264 DescriptorSet 0
-               OpDecorate %264 Binding 5
-               OpDecorate %_runtimearr_v3float ArrayStride 16
-               OpMemberDecorate %_struct_294 0 Restrict
-               OpMemberDecorate %_struct_294 0 NonWritable
-               OpMemberDecorate %_struct_294 0 Offset 0
-               OpDecorate %_struct_294 Block
-               OpDecorate %296 DescriptorSet 0
-               OpDecorate %296 Binding 6
-               OpDecorate %_runtimearr_v4float ArrayStride 16
-               OpMemberDecorate %_struct_327 0 Restrict
-               OpMemberDecorate %_struct_327 0 NonWritable
-               OpMemberDecorate %_struct_327 0 Offset 0
-               OpDecorate %_struct_327 Block
-               OpDecorate %329 DescriptorSet 0
-               OpDecorate %329 Binding 7
-               OpDecorate %_runtimearr_mat2v2float ArrayStride 16
-               OpMemberDecorate %_struct_352 0 ColMajor
-               OpMemberDecorate %_struct_352 0 Restrict
-               OpMemberDecorate %_struct_352 0 NonWritable
-               OpMemberDecorate %_struct_352 0 Offset 0
-               OpMemberDecorate %_struct_352 0 MatrixStride 8
-               OpDecorate %_struct_352 Block
-               OpDecorate %354 DescriptorSet 0
-               OpDecorate %354 Binding 8
-               OpDecorate %_runtimearr_mat3v3float ArrayStride 48
-               OpMemberDecorate %_struct_381 0 ColMajor
-               OpMemberDecorate %_struct_381 0 Restrict
-               OpMemberDecorate %_struct_381 0 NonWritable
-               OpMemberDecorate %_struct_381 0 Offset 0
-               OpMemberDecorate %_struct_381 0 MatrixStride 16
-               OpDecorate %_struct_381 Block
-               OpDecorate %383 DescriptorSet 0
-               OpDecorate %383 Binding 9
-               OpDecorate %_runtimearr_mat4v4float ArrayStride 64
-               OpMemberDecorate %_struct_410 0 ColMajor
-               OpMemberDecorate %_struct_410 0 Restrict
-               OpMemberDecorate %_struct_410 0 NonWritable
-               OpMemberDecorate %_struct_410 0 Offset 0
-               OpMemberDecorate %_struct_410 0 MatrixStride 16
-               OpDecorate %_struct_410 Block
-               OpDecorate %412 DescriptorSet 0
-               OpDecorate %412 Binding 10
-               OpMemberDecorate %_struct_446 0 Offset 0
-               OpMemberDecorate %_struct_446 1 Offset 4
-               OpMemberDecorate %_struct_446 2 Offset 8
-               OpMemberDecorate %_struct_446 3 Offset 12
-               OpMemberDecorate %_struct_446 4 Offset 16
-               OpMemberDecorate %_struct_446 5 Offset 20
-               OpMemberDecorate %_struct_446 6 Offset 24
-               OpMemberDecorate %_struct_446 7 Offset 28
-               OpDecorate %_runtimearr__struct_446 ArrayStride 32
-               OpMemberDecorate %_struct_448 0 Restrict
-               OpMemberDecorate %_struct_448 0 NonWritable
-               OpMemberDecorate %_struct_448 0 Offset 0
-               OpDecorate %_struct_448 Block
-               OpDecorate %450 DescriptorSet 0
-               OpDecorate %450 Binding 2
-               OpDecorate %_runtimearr_v4uint ArrayStride 16
-               OpMemberDecorate %_struct_475 0 Restrict
-               OpMemberDecorate %_struct_475 0 NonWritable
-               OpMemberDecorate %_struct_475 0 Offset 0
-               OpDecorate %_struct_475 Block
-               OpDecorate %477 DescriptorSet 0
-               OpDecorate %477 Binding 3
-               OpDecorate %_struct_10460 Block
-               OpDecorate %10462 Location 0
-               OpMemberDecorate %_struct_10473 0 ColMajor
-               OpMemberDecorate %_struct_10473 0 Offset 0
-               OpMemberDecorate %_struct_10473 0 MatrixStride 16
-               OpMemberDecorate %_struct_10473 1 ColMajor
-               OpMemberDecorate %_struct_10473 1 Offset 64
-               OpMemberDecorate %_struct_10473 1 MatrixStride 16
-               OpMemberDecorate %_struct_10473 2 Offset 128
-               OpDecorate %_struct_10473 Block
-               OpDecorate %10475 DescriptorSet 0
-               OpDecorate %10475 Binding 1
-               OpDecorate %10509 Location 0
-               OpDecorate %gl_FragDepth BuiltIn FragDepth
-       %void = OpTypeVoid
-          %3 = OpTypeFunction %void
-      %float = OpTypeFloat 32
-    %v3float = OpTypeVector %float 3
-       %uint = OpTypeInt 32 0
-     %uint_2 = OpConstant %uint 2
-%_arr_float_uint_2 = OpTypeArray %float %uint_2
-%_ptr_Function__arr_float_uint_2 = OpTypePointer Function %_arr_float_uint_2
-       %bool = OpTypeBool
-    %v2float = OpTypeVector %float 2
-%_arr_v2float_uint_2 = OpTypeArray %v2float %uint_2
-%_ptr_Function__arr_v2float_uint_2 = OpTypePointer Function %_arr_v2float_uint_2
-%_arr_v3float_uint_2 = OpTypeArray %v3float %uint_2
-%_ptr_Function__arr_v3float_uint_2 = OpTypePointer Function %_arr_v3float_uint_2
-    %v4float = OpTypeVector %float 4
-%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2
-%_ptr_Function__arr_v4float_uint_2 = OpTypePointer Function %_arr_v4float_uint_2
-%mat2v2float = OpTypeMatrix %v2float 2
-%_arr_mat2v2float_uint_2 = OpTypeArray %mat2v2float %uint_2
-%mat3v3float = OpTypeMatrix %v3float 3
-%_arr_mat3v3float_uint_2 = OpTypeArray %mat3v3float %uint_2
-%mat4v4float = OpTypeMatrix %v4float 4
-%_arr_mat4v4float_uint_2 = OpTypeArray %mat4v4float %uint_2
-     %uint_0 = OpConstant %uint 0
-    %float_0 = OpConstant %float 0
-        %123 = OpConstantComposite %v3float %float_0 %float_0 %float_0
-%_struct_126 = OpTypeStruct %mat4v4float
-%_ptr_PushConstant__struct_126 = OpTypePointer PushConstant %_struct_126
-        %128 = OpVariable %_ptr_PushConstant__struct_126 PushConstant
-        %int = OpTypeInt 32 1
-      %int_0 = OpConstant %int 0
-%_ptr_PushConstant_v4float = OpTypePointer PushConstant %v4float
-      %int_1 = OpConstant %int 1
-      %int_2 = OpConstant %int 2
-    %float_1 = OpConstant %float 1
-      %int_3 = OpConstant %int 3
-    %uint_32 = OpConstant %uint 32
-%_arr_v4float_uint_32 = OpTypeArray %v4float %uint_32
-%_arr_v4float_uint_32_0 = OpTypeArray %v4float %uint_32
-%_struct_174 = OpTypeStruct %_arr_v4float_uint_32 %_arr_v4float_uint_32_0 %uint
-%_ptr_Uniform__struct_174 = OpTypePointer Uniform %_struct_174
-        %176 = OpVariable %_ptr_Uniform__struct_174 Uniform
-%_ptr_Uniform_uint = OpTypePointer Uniform %uint
-%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
-  %float_0_5 = OpConstant %float 0.5
-     %uint_8 = OpConstant %uint 8
-%_arr__arr_float_uint_2_uint_8 = OpTypeArray %_arr_float_uint_2 %uint_8
-%_runtimearr_float = OpTypeRuntimeArray %float
-%_struct_223 = OpTypeStruct %_runtimearr_float
-%_ptr_StorageBuffer__struct_223 = OpTypePointer StorageBuffer %_struct_223
-        %225 = OpVariable %_ptr_StorageBuffer__struct_223 StorageBuffer
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%_arr__arr_v2float_uint_2_uint_8 = OpTypeArray %_arr_v2float_uint_2 %uint_8
-%_runtimearr_v2float = OpTypeRuntimeArray %v2float
-%_struct_262 = OpTypeStruct %_runtimearr_v2float
-%_ptr_StorageBuffer__struct_262 = OpTypePointer StorageBuffer %_struct_262
-        %264 = OpVariable %_ptr_StorageBuffer__struct_262 StorageBuffer
-%_ptr_StorageBuffer_v2float = OpTypePointer StorageBuffer %v2float
-%_arr__arr_v3float_uint_2_uint_8 = OpTypeArray %_arr_v3float_uint_2 %uint_8
-%_runtimearr_v3float = OpTypeRuntimeArray %v3float
-%_struct_294 = OpTypeStruct %_runtimearr_v3float
-%_ptr_StorageBuffer__struct_294 = OpTypePointer StorageBuffer %_struct_294
-        %296 = OpVariable %_ptr_StorageBuffer__struct_294 StorageBuffer
-%_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float
-%_arr__arr_v4float_uint_2_uint_8 = OpTypeArray %_arr_v4float_uint_2 %uint_8
-%_runtimearr_v4float = OpTypeRuntimeArray %v4float
-%_struct_327 = OpTypeStruct %_runtimearr_v4float
-%_ptr_StorageBuffer__struct_327 = OpTypePointer StorageBuffer %_struct_327
-        %329 = OpVariable %_ptr_StorageBuffer__struct_327 StorageBuffer
-%_ptr_StorageBuffer_v4float = OpTypePointer StorageBuffer %v4float
-%_runtimearr_mat2v2float = OpTypeRuntimeArray %mat2v2float
-%_struct_352 = OpTypeStruct %_runtimearr_mat2v2float
-%_ptr_StorageBuffer__struct_352 = OpTypePointer StorageBuffer %_struct_352
-        %354 = OpVariable %_ptr_StorageBuffer__struct_352 StorageBuffer
-%_ptr_StorageBuffer_mat2v2float = OpTypePointer StorageBuffer %mat2v2float
-     %uint_4 = OpConstant %uint 4
-%_arr__arr_mat2v2float_uint_2_uint_4 = OpTypeArray %_arr_mat2v2float_uint_2 %uint_4
-%_runtimearr_mat3v3float = OpTypeRuntimeArray %mat3v3float
-%_struct_381 = OpTypeStruct %_runtimearr_mat3v3float
-%_ptr_StorageBuffer__struct_381 = OpTypePointer StorageBuffer %_struct_381
-        %383 = OpVariable %_ptr_StorageBuffer__struct_381 StorageBuffer
-%_ptr_StorageBuffer_mat3v3float = OpTypePointer StorageBuffer %mat3v3float
-%_arr__arr_mat3v3float_uint_2_uint_4 = OpTypeArray %_arr_mat3v3float_uint_2 %uint_4
-%_runtimearr_mat4v4float = OpTypeRuntimeArray %mat4v4float
-%_struct_410 = OpTypeStruct %_runtimearr_mat4v4float
-%_ptr_StorageBuffer__struct_410 = OpTypePointer StorageBuffer %_struct_410
-        %412 = OpVariable %_ptr_StorageBuffer__struct_410 StorageBuffer
-%_ptr_StorageBuffer_mat4v4float = OpTypePointer StorageBuffer %mat4v4float
-%_arr__arr_mat4v4float_uint_2_uint_4 = OpTypeArray %_arr_mat4v4float_uint_2 %uint_4
-      %uchar = OpTypeInt 8 0
-    %uint_29 = OpConstant %uint 29
-%_arr_uchar_uint_29 = OpTypeArray %uchar %uint_29
-  %uchar_255 = OpConstant %uchar 255
-        %439 = OpConstantComposite %_arr_uchar_uint_29 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255 %uchar_255
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_struct_443 = OpTypeStruct %uint %uint %uint %uint %uint %uint %uint %uint
-%_struct_446 = OpTypeStruct %uint %uint %uint %uint %uint %uint %uint %uint
-%_runtimearr__struct_446 = OpTypeRuntimeArray %_struct_446
-%_struct_448 = OpTypeStruct %_runtimearr__struct_446
-%_ptr_StorageBuffer__struct_448 = OpTypePointer StorageBuffer %_struct_448
-        %450 = OpVariable %_ptr_StorageBuffer__struct_448 StorageBuffer
-%_ptr_StorageBuffer__struct_446 = OpTypePointer StorageBuffer %_struct_446
-     %v4uint = OpTypeVector %uint 4
-%_runtimearr_v4uint = OpTypeRuntimeArray %v4uint
-%_struct_475 = OpTypeStruct %_runtimearr_v4uint
-%_ptr_StorageBuffer__struct_475 = OpTypePointer StorageBuffer %_struct_475
-        %477 = OpVariable %_ptr_StorageBuffer__struct_475 StorageBuffer
-%_ptr_StorageBuffer_v4uint = OpTypePointer StorageBuffer %v4uint
-%_arr_uint_uint_8 = OpTypeArray %uint %uint_8
-%_ptr_Function__arr_uint_uint_8 = OpTypePointer Function %_arr_uint_uint_8
- %uint_65535 = OpConstant %uint 65535
-     %int_16 = OpConstant %int 16
-     %uint_1 = OpConstant %uint 1
-      %int_4 = OpConstant %int 4
-      %int_5 = OpConstant %int 5
-      %int_6 = OpConstant %int 6
-     %uint_3 = OpConstant %uint 3
-      %int_7 = OpConstant %int 7
-  %uint_1023 = OpConstant %uint 1023
- %uint_32768 = OpConstant %uint 32768
- %uint_16384 = OpConstant %uint 16384
-     %v2bool = OpTypeVector %bool 2
-      %false = OpConstantFalse %bool
-       %3272 = OpConstantComposite %v2bool %false %false
-       %3274 = OpConstantComposite %v2float %float_0 %float_0
-     %v3bool = OpTypeVector %bool 3
-       %3323 = OpConstantComposite %v3bool %false %false %false
-     %v4bool = OpTypeVector %bool 4
-       %3373 = OpConstantComposite %v4bool %false %false %false %false
-       %3375 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-  %uint_8192 = OpConstant %uint 8192
-  %uint_4096 = OpConstant %uint 4096
-%_ptr_Function__arr_mat2v2float_uint_2 = OpTypePointer Function %_arr_mat2v2float_uint_2
-%_ptr_Function__arr_mat3v3float_uint_2 = OpTypePointer Function %_arr_mat3v3float_uint_2
-%_ptr_Function__arr_mat4v4float_uint_2 = OpTypePointer Function %_arr_mat4v4float_uint_2
- %float_0_25 = OpConstant %float 0.25
-    %uint_13 = OpConstant %uint 13
-%float_9_99999975en05 = OpConstant %float 9.99999975e-05
-      %10409 = OpConstantComposite %v2float %float_0 %float_1
-    %uint_50 = OpConstant %uint 50
-%float_17_320509 = OpConstant %float 17.320509
-%float_0_899999976 = OpConstant %float 0.899999976
-%_struct_10460 = OpTypeStruct %v4float
-%_ptr_Input__struct_10460 = OpTypePointer Input %_struct_10460
-      %10462 = OpVariable %_ptr_Input__struct_10460 Input
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%_ptr_PushConstant_mat4v4float = OpTypePointer PushConstant %mat4v4float
-%_struct_10473 = OpTypeStruct %mat4v4float %mat4v4float %v3float
-%_ptr_Uniform__struct_10473 = OpTypePointer Uniform %_struct_10473
-      %10475 = OpVariable %_ptr_Uniform__struct_10473 Uniform
-%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-      %10509 = OpVariable %_ptr_Output_v4float Output
-      %10510 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float
-%_ptr_Output_float = OpTypePointer Output %float
-%gl_FragDepth = OpVariable %_ptr_Output_float Output
-%_ptr_Function__arr__arr_float_uint_2_uint_8 = OpTypePointer Function %_arr__arr_float_uint_2_uint_8
-%_ptr_Function__arr__arr_v2float_uint_2_uint_8 = OpTypePointer Function %_arr__arr_v2float_uint_2_uint_8
-%_ptr_Function__arr__arr_v3float_uint_2_uint_8 = OpTypePointer Function %_arr__arr_v3float_uint_2_uint_8
-%_ptr_Function__arr__arr_v4float_uint_2_uint_8 = OpTypePointer Function %_arr__arr_v4float_uint_2_uint_8
-%_ptr_Function__arr__arr_mat2v2float_uint_2_uint_4 = OpTypePointer Function %_arr__arr_mat2v2float_uint_2_uint_4
-%_ptr_Function__arr__arr_mat3v3float_uint_2_uint_4 = OpTypePointer Function %_arr__arr_mat3v3float_uint_2_uint_4
-%_ptr_Function__arr__arr_mat4v4float_uint_2_uint_4 = OpTypePointer Function %_arr__arr_mat4v4float_uint_2_uint_4
-%_ptr_Function__arr_uchar_uint_29 = OpTypePointer Function %_arr_uchar_uint_29
-%_ptr_Function_uchar = OpTypePointer Function %uchar
-     %126085 = OpUndef %v4float
-     %126098 = OpUndef %v3float
-     %126113 = OpUndef %v2float
-     %126126 = OpUndef %float
-          %4 = OpFunction %void None %3
-          %5 = OpLabel
-        %437 = OpVariable %_ptr_Function__arr_uchar_uint_29 Function
-        %425 = OpVariable %_ptr_Function__arr__arr_mat4v4float_uint_2_uint_4 Function
-        %396 = OpVariable %_ptr_Function__arr__arr_mat3v3float_uint_2_uint_4 Function
-        %368 = OpVariable %_ptr_Function__arr__arr_mat2v2float_uint_2_uint_4 Function
-        %315 = OpVariable %_ptr_Function__arr__arr_v4float_uint_2_uint_8 Function
-        %283 = OpVariable %_ptr_Function__arr__arr_v3float_uint_2_uint_8 Function
-        %250 = OpVariable %_ptr_Function__arr__arr_v2float_uint_2_uint_8 Function
-        %212 = OpVariable %_ptr_Function__arr__arr_float_uint_2_uint_8 Function
-      %82704 = OpVariable %_ptr_Function__arr_uint_uint_8 Function
-      %64764 = OpVariable %_ptr_Function__arr_uint_uint_8 Function
-      %46824 = OpVariable %_ptr_Function__arr_uint_uint_8 Function
-      %28884 = OpVariable %_ptr_Function__arr_uint_uint_8 Function
-      %10897 = OpVariable %_ptr_Function__arr_uint_uint_8 Function
-               OpStore %437 %439
-      %10464 = OpAccessChain %_ptr_Input_v4float %10462 %int_0
-      %10465 = OpLoad %v4float %10464
-      %10466 = OpVectorShuffle %v3float %10465 %10465 0 1 2
-      %10470 = OpAccessChain %_ptr_PushConstant_mat4v4float %128 %int_0
-      %10471 = OpLoad %mat4v4float %10470
-      %10472 = OpExtInst %mat4v4float %1 MatrixInverse %10471
-      %10477 = OpAccessChain %_ptr_Uniform_v3float %10475 %int_2
-      %10478 = OpLoad %v3float %10477
-      %10479 = OpCompositeExtract %float %10478 0
-      %10480 = OpCompositeExtract %float %10478 1
-      %10481 = OpCompositeExtract %float %10478 2
-      %10482 = OpCompositeConstruct %v4float %10479 %10480 %10481 %float_1
-      %10483 = OpMatrixTimesVector %v4float %10472 %10482
-      %10484 = OpVectorShuffle %v3float %10483 %10483 0 1 2
-      %10485 = OpFSub %v3float %10466 %10484
-      %10486 = OpExtInst %v3float %1 Normalize %10485
-               OpBranch %10842
-      %10842 = OpLabel
-     %126025 = OpPhi %v3float %10466 %5 %10875 %10876
-     %126020 = OpPhi %v2float %10409 %5 %270608 %10876
-     %126019 = OpPhi %int %int_0 %5 %10878 %10876
-               OpLoopMerge %10879 %10876 None
-               OpBranch %10843
-      %10843 = OpLabel
-      %10845 = OpBitcast %uint %126019
-      %10846 = OpULessThan %bool %10845 %uint_50
-               OpSelectionMerge %10851 None
-               OpBranchConditional %10846 %10847 %10851
-      %10847 = OpLabel
-      %10849 = OpCompositeExtract %float %126020 1
-      %10850 = OpFOrdGreaterThan %bool %10849 %float_9_99999975en05
-               OpBranch %10851
-      %10851 = OpLabel
-      %10852 = OpPhi %bool %10846 %10843 %10850 %10847
-               OpSelectionMerge %10857 None
-               OpBranchConditional %10852 %10853 %10857
-      %10853 = OpLabel
-      %10855 = OpCompositeExtract %float %126020 0
-      %10856 = OpFOrdLessThan %bool %10855 %float_17_320509
-               OpBranch %10857
-      %10857 = OpLabel
-      %10858 = OpPhi %bool %10852 %10851 %10856 %10853
-               OpBranchConditional %10858 %10859 %10879
-      %10859 = OpLabel
-      %10886 = OpCompositeConstruct %_arr_v3float_uint_2 %126025 %126025
-      %11990 = OpAccessChain %_ptr_StorageBuffer__struct_446 %450 %int_0 %int_1
-      %11991 = OpLoad %_struct_446 %11990
-      %11992 = OpCopyLogical %_struct_443 %11991
-     %122766 = OpCompositeExtract %uint %11992 0
-      %20503 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %uint_0
-               OpStore %20503 %10886
-               OpBranch %11996
-      %11996 = OpLabel
-     %184417 = OpPhi %uint %uint_0 %10859 %264519 %20491
-     %184415 = OpPhi %uint %uint_0 %10859 %264202 %20491
-     %184410 = OpPhi %uint %uint_0 %10859 %263885 %20491
-     %184408 = OpPhi %uint %uint_0 %10859 %263568 %20491
-     %184403 = OpPhi %uint %uint_0 %10859 %263251 %20491
-     %184401 = OpPhi %uint %uint_0 %10859 %262934 %20491
-     %184363 = OpPhi %uint %uint_0 %10859 %261993 %20491
-     %184337 = OpPhi %uint %uint_0 %10859 %261051 %20491
-     %184313 = OpPhi %uint %uint_0 %10859 %260809 %20491
-     %184311 = OpPhi %uint %uint_0 %10859 %260576 %20491
-     %184305 = OpPhi %uint %uint_0 %10859 %260278 %20491
-     %184302 = OpPhi %uint %uint_1 %10859 %260041 %20491
-     %184294 = OpPhi %uint %uint_0 %10859 %186524 %20491
-     %184292 = OpPhi %uint %uint_0 %10859 %186328 %20491
-     %184288 = OpPhi %uint %uint_0 %10859 %260037 %20491
-     %184287 = OpPhi %uint %uint_0 %10859 %270609 %20491
-               OpLoopMerge %20492 %20491 None
-               OpBranch %11999
-      %11999 = OpLabel
-      %12001 = OpIEqual %bool %184287 %uint_0
-               OpSelectionMerge %12041 None
-               OpBranchConditional %12001 %12002 %12041
-      %12002 = OpLabel
-      %12006 = OpIAdd %uint %184288 %122766
-      %12007 = OpAccessChain %_ptr_StorageBuffer_v4uint %477 %int_0 %12006
-      %12008 = OpLoad %v4uint %12007
-      %12010 = OpCompositeExtract %uint %12008 0
-      %12011 = OpBitwiseAnd %uint %12010 %uint_65535
-      %12012 = OpAccessChain %_ptr_Function_uint %10897 %int_0
-               OpStore %12012 %12011
-      %12015 = OpShiftRightLogical %uint %12010 %int_16
-      %12016 = OpAccessChain %_ptr_Function_uint %10897 %int_1
-               OpStore %12016 %12015
-      %12018 = OpCompositeExtract %uint %12008 1
-      %12019 = OpBitwiseAnd %uint %12018 %uint_65535
-      %12020 = OpAccessChain %_ptr_Function_uint %10897 %int_2
-               OpStore %12020 %12019
-      %12023 = OpShiftRightLogical %uint %12018 %int_16
-      %12024 = OpAccessChain %_ptr_Function_uint %10897 %int_3
-               OpStore %12024 %12023
-      %12026 = OpCompositeExtract %uint %12008 2
-      %12027 = OpBitwiseAnd %uint %12026 %uint_65535
-      %12028 = OpAccessChain %_ptr_Function_uint %10897 %int_4
-               OpStore %12028 %12027
-      %12031 = OpShiftRightLogical %uint %12026 %int_16
-      %12032 = OpAccessChain %_ptr_Function_uint %10897 %int_5
-               OpStore %12032 %12031
-      %12034 = OpCompositeExtract %uint %12008 3
-      %12035 = OpBitwiseAnd %uint %12034 %uint_65535
-      %12036 = OpAccessChain %_ptr_Function_uint %10897 %int_6
-               OpStore %12036 %12035
-      %12039 = OpShiftRightLogical %uint %12034 %int_16
-      %12040 = OpAccessChain %_ptr_Function_uint %10897 %int_7
-               OpStore %12040 %12039
-               OpBranch %12041
-      %12041 = OpLabel
-      %12043 = OpAccessChain %_ptr_Function_uchar %437 %184288
-      %12044 = OpLoad %uchar %12043
-      %12045 = OpUConvert %uint %12044
-      %12046 = OpBitcast %int %12045
-      %12048 = OpShiftLeftLogical %int %int_1 %184287
-      %12049 = OpBitwiseAnd %int %12046 %12048
-      %12050 = OpSGreaterThan %bool %12049 %int_0
-               OpSelectionMerge %20472 None
-               OpBranchConditional %12050 %12051 %20472
-      %12051 = OpLabel
-      %12053 = OpAccessChain %_ptr_Function_uint %10897 %184287
-      %12054 = OpLoad %uint %12053
-      %12055 = OpBitwiseAnd %uint %12054 %uint_1023
-               OpSelectionMerge %20471 None
-               OpSwitch %12055 %12056 2 %12057 3 %12084 4 %12111 5 %12140 6 %12167 7 %12196 8 %12223 9 %12252 10 %12279 11 %12306 12 %12335 13 %12362 14 %12391 15 %12418 16 %12447 17 %12510 18 %12573 19 %12636 20 %12699 21 %12762 22 %12825 23 %12888 24 %12951 25 %13014 26 %13081 27 %13144 28 %13211 29 %13274 37 %13341 38 %13404 39 %13467 40 %13530 30 %13593 31 %13656 32 %13719 33 %13786 34 %13849 35 %13916 36 %13979 41 %14046 42 %14095 43 %14146 44 %14197 45 %14248 46 %14288 47 %14328 48 %14368 49 %14432 50 %14478 54 %14542 55 %14571 56 %14600 57 %14629 58 %14658 59 %14687 60 %14716 61 %14745 62 %14774 63 %14803 64 %14832 65 %14861 66 %14890 67 %14919 68 %14948 69 %14977 70 %15006 195 %15035 199 %15064 203 %15093 207 %15122 211 %15151 215 %15180 223 %15209 227 %15238 75 %15267 71 %15267 76 %15294 72 %15294 219 %15321 90 %15403 91 %15432 92 %15461 93 %15490 94 %15519 95 %15548 96 %15577 97 %15606 98 %15635 99 %15664 100 %15693 101 %15722 102 %15751 103 %15780 104 %15809 105 %15838 106 %15867 196 %15896 200 %15925 204 %15954 208 %15983 212 %16012 216 %16041 224 %16070 228 %16099 107 %16128 108 %16155 220 %16182 120 %16264 121 %16293 122 %16322 123 %16351 124 %16380 125 %16409 126 %16438 127 %16467 128 %16496 129 %16525 130 %16554 131 %16583 132 %16612 133 %16641 134 %16670 135 %16699 136 %16728 197 %16757 201 %16786 205 %16815 209 %16844 213 %16873 217 %16902 225 %16931 229 %16960 137 %16989 138 %17016 221 %17043 150 %17125 151 %17154 152 %17183 153 %17212 154 %17241 155 %17270 156 %17299 157 %17328 158 %17357 159 %17386 160 %17415 161 %17444 162 %17473 163 %17502 164 %17531 165 %17560 166 %17589 198 %17618 202 %17647 206 %17676 210 %17705 214 %17734 218 %17763 226 %17792 230 %17821 167 %17850 168 %17877 222 %17904 231 %17986 238 %18023 232 %18060 239 %18097 233 %18134 240 %18175 234 %18214 241 %18251 235 %18288 242 %18329 236 %18368 243 %18405 237 %18442 244 %18483 51 %18522 52 %18634 53 %18806 180 %19054 181 %19079 183 %19114 182 %19143 184 %19188 186 %19227 185 %19258 190 %19291 191 %19322 192 %19341 193 %19366 194 %19397 187 %19424 188 %19443 189 %19468 245 %19499 246 %19545 247 %19572 248 %19618 249 %19645 250 %19691 251 %19718 252 %19764 77 %19791 73 %19791 78 %19851 74 %19851 79 %19911 80 %19927 81 %19943 82 %19959 83 %19965 84 %19971 85 %19977 86 %19983 87 %19986 88 %19996 89 %20013 109 %20037 110 %20053 111 %20069 112 %20085 113 %20091 114 %20097 115 %20103 116 %20109 117 %20112 118 %20122 119 %20139 139 %20163 140 %20179 141 %20195 142 %20211 143 %20217 144 %20223 145 %20229 146 %20235 147 %20238 148 %20248 149 %20265 169 %20289 170 %20305 171 %20321 172 %20337 173 %20343 174 %20349 175 %20355 176 %20361 177 %20364 178 %20374 179 %20391 253 %20415 0 %20463 1 %20464 254 %12056
-      %20464 = OpLabel
-      %20467 = OpLoad %uint %12053
-      %20468 = OpBitwiseAnd %uint %20467 %uint_32768
-      %20469 = OpUGreaterThan %bool %20468 %uint_0
-               OpSelectionMerge %28796 None
-               OpSwitch %uint_0 %28780
-      %28780 = OpLabel
-               OpSelectionMerge %28795 None
-               OpBranchConditional %20469 %28782 %28790
-      %28790 = OpLabel
-      %28792 = OpISub %uint %184292 %int_1
-      %28793 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28792
-      %28794 = OpLoad %_arr_float_uint_2 %28793
-     %120116 = OpCompositeExtract %float %28794 0
-               OpBranch %28796
-      %28782 = OpLabel
-      %28785 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %28786 = OpLoad %float %28785
-               OpBranch %28796
-      %28795 = OpLabel
-               OpUnreachable
-      %28796 = OpLabel
-     %184296 = OpPhi %float %28786 %28782 %120116 %28790
-               OpBranch %20492
-      %20463 = OpLabel
-               OpBranch %20471
-      %20415 = OpLabel
-      %20418 = OpLoad %uint %12053
-      %20419 = OpBitwiseAnd %uint %20418 %uint_32768
-      %20420 = OpUGreaterThan %bool %20419 %uint_0
-               OpSelectionMerge %28745 None
-               OpSwitch %uint_0 %28729
-      %28729 = OpLabel
-               OpSelectionMerge %28744 None
-               OpBranchConditional %20420 %28731 %28739
-      %28739 = OpLabel
-      %28741 = OpISub %uint %184292 %int_1
-      %28742 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28741
-      %28743 = OpLoad %_arr_float_uint_2 %28742
-     %120134 = OpCompositeExtract %float %28743 0
-     %120135 = OpCompositeExtract %float %28743 1
-               OpBranch %28745
-      %28731 = OpLabel
-      %28733 = OpIAdd %uint %184294 %int_1
-      %28734 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %28735 = OpLoad %float %28734
-               OpBranch %28745
-      %28744 = OpLabel
-               OpUnreachable
-      %28745 = OpLabel
-     %186782 = OpPhi %uint %28733 %28731 %184294 %28739
-     %184309 = OpPhi %uint %184292 %28731 %28741 %28739
-     %184298 = OpPhi %float %28735 %28731 %120134 %28739
-     %184297 = OpPhi %float %28735 %28731 %120135 %28739
-      %20424 = OpLoad %uint %12053
-      %20425 = OpBitwiseAnd %uint %20424 %uint_16384
-      %20426 = OpUGreaterThan %bool %20425 %uint_0
-               OpSelectionMerge %28768 None
-               OpSwitch %uint_0 %28752
-      %28752 = OpLabel
-               OpSelectionMerge %28767 None
-               OpBranchConditional %20426 %28754 %28762
-      %28762 = OpLabel
-      %28764 = OpISub %uint %184302 %int_1
-      %28765 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %28764
-      %28766 = OpLoad %_arr_v3float_uint_2 %28765
-     %120125 = OpCompositeExtract %v3float %28766 0
-     %120126 = OpCompositeExtract %v3float %28766 1
-               OpBranch %28768
-      %28754 = OpLabel
-      %28756 = OpIAdd %uint %184305 %int_1
-      %28757 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %28758 = OpLoad %v3float %28757
-               OpBranch %28768
-      %28767 = OpLabel
-               OpUnreachable
-      %28768 = OpLabel
-     %260574 = OpPhi %uint %28756 %28754 %184305 %28762
-     %260276 = OpPhi %uint %184302 %28754 %28764 %28762
-     %184307 = OpPhi %v3float %28758 %28754 %120125 %28762
-     %184306 = OpPhi %v3float %28758 %28754 %120126 %28762
-      %20430 = OpFOrdGreaterThan %v3bool %184306 %123
-      %20433 = OpFOrdLessThan %v3bool %184307 %123
-      %20434 = OpSelect %v3bool %20433 %20430 %3323
-      %20437 = OpExtInst %v3float %1 FAbs %184307
-      %20440 = OpExtInst %v3float %1 FAbs %184306
-      %20441 = OpExtInst %v3float %1 FMin %20437 %20440
-      %20443 = OpSelect %v3float %20434 %123 %20441
-      %20444 = OpExtInst %float %1 Length %20443
-      %20447 = OpFSub %float %20444 %184297
-      %20455 = OpExtInst %v3float %1 FMax %20437 %20440
-      %20456 = OpExtInst %float %1 Length %20455
-      %20459 = OpFSub %float %20456 %184298
-     %124951 = OpCompositeConstruct %_arr_float_uint_2 %20447 %20459
-      %28772 = OpIAdd %uint %184309 %int_1
-      %28774 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184309
-               OpStore %28774 %124951
-               OpBranch %20471
-      %20391 = OpLabel
-      %20393 = OpISub %uint %184311 %uint_4
-      %20395 = OpISub %uint %184311 %uint_3
-      %20396 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20395
-      %20397 = OpLoad %_arr_v4float_uint_2 %20396
-      %20398 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20393
-               OpStore %20398 %20397
-      %20402 = OpISub %uint %184311 %uint_2
-      %20403 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20402
-      %20404 = OpLoad %_arr_v4float_uint_2 %20403
-               OpStore %20396 %20404
-      %20409 = OpISub %uint %184311 %uint_1
-      %20410 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20409
-      %20411 = OpLoad %_arr_v4float_uint_2 %20410
-               OpStore %20403 %20411
-      %20414 = OpISub %uint %184311 %int_1
-               OpBranch %20471
-      %20374 = OpLabel
-      %20376 = OpISub %uint %184311 %uint_3
-      %20378 = OpISub %uint %184311 %uint_2
-      %20379 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20378
-      %20380 = OpLoad %_arr_v4float_uint_2 %20379
-      %20381 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20376
-               OpStore %20381 %20380
-      %20385 = OpISub %uint %184311 %uint_1
-      %20386 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20385
-      %20387 = OpLoad %_arr_v4float_uint_2 %20386
-               OpStore %20379 %20387
-      %20390 = OpISub %uint %184311 %int_1
-               OpBranch %20471
-      %20364 = OpLabel
-      %20366 = OpISub %uint %184311 %uint_2
-      %20368 = OpISub %uint %184311 %uint_1
-      %20369 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20368
-      %20370 = OpLoad %_arr_v4float_uint_2 %20369
-      %20371 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20366
-               OpStore %20371 %20370
-      %20373 = OpISub %uint %184311 %int_1
-               OpBranch %20471
-      %20361 = OpLabel
-      %20363 = OpISub %uint %184311 %int_1
-               OpBranch %20471
-      %20355 = OpLabel
-      %20357 = OpISub %uint %184311 %uint_4
-      %20358 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20357
-      %20359 = OpLoad %_arr_v4float_uint_2 %20358
-      %28721 = OpIAdd %uint %184311 %int_1
-      %28723 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184311
-               OpStore %28723 %20359
-               OpBranch %20471
-      %20349 = OpLabel
-      %20351 = OpISub %uint %184311 %uint_3
-      %20352 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20351
-      %20353 = OpLoad %_arr_v4float_uint_2 %20352
-      %28716 = OpIAdd %uint %184311 %int_1
-      %28718 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184311
-               OpStore %28718 %20353
-               OpBranch %20471
-      %20343 = OpLabel
-      %20345 = OpISub %uint %184311 %uint_2
-      %20346 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20345
-      %20347 = OpLoad %_arr_v4float_uint_2 %20346
-      %28711 = OpIAdd %uint %184311 %int_1
-      %28713 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184311
-               OpStore %28713 %20347
-               OpBranch %20471
-      %20337 = OpLabel
-      %20339 = OpISub %uint %184311 %uint_1
-      %20340 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20339
-      %20341 = OpLoad %_arr_v4float_uint_2 %20340
-      %28706 = OpIAdd %uint %184311 %int_1
-      %28708 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184311
-               OpStore %28708 %20341
-               OpBranch %20471
-      %20321 = OpLabel
-      %20323 = OpISub %uint %184311 %uint_1
-      %20324 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20323
-      %20325 = OpLoad %_arr_v4float_uint_2 %20324
-      %20329 = OpISub %uint %184311 %uint_4
-      %20330 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20329
-      %20331 = OpLoad %_arr_v4float_uint_2 %20330
-               OpStore %20324 %20331
-               OpStore %20330 %20325
-               OpBranch %20471
-      %20305 = OpLabel
-      %20307 = OpISub %uint %184311 %uint_1
-      %20308 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20307
-      %20309 = OpLoad %_arr_v4float_uint_2 %20308
-      %20313 = OpISub %uint %184311 %uint_3
-      %20314 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20313
-      %20315 = OpLoad %_arr_v4float_uint_2 %20314
-               OpStore %20308 %20315
-               OpStore %20314 %20309
-               OpBranch %20471
-      %20289 = OpLabel
-      %20291 = OpISub %uint %184311 %uint_1
-      %20292 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20291
-      %20293 = OpLoad %_arr_v4float_uint_2 %20292
-      %20297 = OpISub %uint %184311 %uint_2
-      %20298 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20297
-      %20299 = OpLoad %_arr_v4float_uint_2 %20298
-               OpStore %20292 %20299
-               OpStore %20298 %20293
-               OpBranch %20471
-      %20265 = OpLabel
-      %20267 = OpISub %uint %184302 %uint_4
-      %20269 = OpISub %uint %184302 %uint_3
-      %20270 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20269
-      %20271 = OpLoad %_arr_v3float_uint_2 %20270
-      %20272 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20267
-               OpStore %20272 %20271
-      %20276 = OpISub %uint %184302 %uint_2
-      %20277 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20276
-      %20278 = OpLoad %_arr_v3float_uint_2 %20277
-               OpStore %20270 %20278
-      %20283 = OpISub %uint %184302 %uint_1
-      %20284 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20283
-      %20285 = OpLoad %_arr_v3float_uint_2 %20284
-               OpStore %20277 %20285
-      %20288 = OpISub %uint %184302 %int_1
-               OpBranch %20471
-      %20248 = OpLabel
-      %20250 = OpISub %uint %184302 %uint_3
-      %20252 = OpISub %uint %184302 %uint_2
-      %20253 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20252
-      %20254 = OpLoad %_arr_v3float_uint_2 %20253
-      %20255 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20250
-               OpStore %20255 %20254
-      %20259 = OpISub %uint %184302 %uint_1
-      %20260 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20259
-      %20261 = OpLoad %_arr_v3float_uint_2 %20260
-               OpStore %20253 %20261
-      %20264 = OpISub %uint %184302 %int_1
-               OpBranch %20471
-      %20238 = OpLabel
-      %20240 = OpISub %uint %184302 %uint_2
-      %20242 = OpISub %uint %184302 %uint_1
-      %20243 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20242
-      %20244 = OpLoad %_arr_v3float_uint_2 %20243
-      %20245 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20240
-               OpStore %20245 %20244
-      %20247 = OpISub %uint %184302 %int_1
-               OpBranch %20471
-      %20235 = OpLabel
-      %20237 = OpISub %uint %184302 %int_1
-               OpBranch %20471
-      %20229 = OpLabel
-      %20231 = OpISub %uint %184302 %uint_4
-      %20232 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20231
-      %20233 = OpLoad %_arr_v3float_uint_2 %20232
-      %28701 = OpIAdd %uint %184302 %int_1
-      %28703 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184302
-               OpStore %28703 %20233
-               OpBranch %20471
-      %20223 = OpLabel
-      %20225 = OpISub %uint %184302 %uint_3
-      %20226 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20225
-      %20227 = OpLoad %_arr_v3float_uint_2 %20226
-      %28696 = OpIAdd %uint %184302 %int_1
-      %28698 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184302
-               OpStore %28698 %20227
-               OpBranch %20471
-      %20217 = OpLabel
-      %20219 = OpISub %uint %184302 %uint_2
-      %20220 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20219
-      %20221 = OpLoad %_arr_v3float_uint_2 %20220
-      %28691 = OpIAdd %uint %184302 %int_1
-      %28693 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184302
-               OpStore %28693 %20221
-               OpBranch %20471
-      %20211 = OpLabel
-      %20213 = OpISub %uint %184302 %uint_1
-      %20214 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20213
-      %20215 = OpLoad %_arr_v3float_uint_2 %20214
-      %28686 = OpIAdd %uint %184302 %int_1
-      %28688 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184302
-               OpStore %28688 %20215
-               OpBranch %20471
-      %20195 = OpLabel
-      %20197 = OpISub %uint %184302 %uint_1
-      %20198 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20197
-      %20199 = OpLoad %_arr_v3float_uint_2 %20198
-      %20203 = OpISub %uint %184302 %uint_4
-      %20204 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20203
-      %20205 = OpLoad %_arr_v3float_uint_2 %20204
-               OpStore %20198 %20205
-               OpStore %20204 %20199
-               OpBranch %20471
-      %20179 = OpLabel
-      %20181 = OpISub %uint %184302 %uint_1
-      %20182 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20181
-      %20183 = OpLoad %_arr_v3float_uint_2 %20182
-      %20187 = OpISub %uint %184302 %uint_3
-      %20188 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20187
-      %20189 = OpLoad %_arr_v3float_uint_2 %20188
-               OpStore %20182 %20189
-               OpStore %20188 %20183
-               OpBranch %20471
-      %20163 = OpLabel
-      %20165 = OpISub %uint %184302 %uint_1
-      %20166 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20165
-      %20167 = OpLoad %_arr_v3float_uint_2 %20166
-      %20171 = OpISub %uint %184302 %uint_2
-      %20172 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20171
-      %20173 = OpLoad %_arr_v3float_uint_2 %20172
-               OpStore %20166 %20173
-               OpStore %20172 %20167
-               OpBranch %20471
-      %20139 = OpLabel
-      %20141 = OpISub %uint %184313 %uint_4
-      %20143 = OpISub %uint %184313 %uint_3
-      %20144 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20143
-      %20145 = OpLoad %_arr_v2float_uint_2 %20144
-      %20146 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20141
-               OpStore %20146 %20145
-      %20150 = OpISub %uint %184313 %uint_2
-      %20151 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20150
-      %20152 = OpLoad %_arr_v2float_uint_2 %20151
-               OpStore %20144 %20152
-      %20157 = OpISub %uint %184313 %uint_1
-      %20158 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20157
-      %20159 = OpLoad %_arr_v2float_uint_2 %20158
-               OpStore %20151 %20159
-      %20162 = OpISub %uint %184313 %int_1
-               OpBranch %20471
-      %20122 = OpLabel
-      %20124 = OpISub %uint %184313 %uint_3
-      %20126 = OpISub %uint %184313 %uint_2
-      %20127 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20126
-      %20128 = OpLoad %_arr_v2float_uint_2 %20127
-      %20129 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20124
-               OpStore %20129 %20128
-      %20133 = OpISub %uint %184313 %uint_1
-      %20134 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20133
-      %20135 = OpLoad %_arr_v2float_uint_2 %20134
-               OpStore %20127 %20135
-      %20138 = OpISub %uint %184313 %int_1
-               OpBranch %20471
-      %20112 = OpLabel
-      %20114 = OpISub %uint %184313 %uint_2
-      %20116 = OpISub %uint %184313 %uint_1
-      %20117 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20116
-      %20118 = OpLoad %_arr_v2float_uint_2 %20117
-      %20119 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20114
-               OpStore %20119 %20118
-      %20121 = OpISub %uint %184313 %int_1
-               OpBranch %20471
-      %20109 = OpLabel
-      %20111 = OpISub %uint %184313 %int_1
-               OpBranch %20471
-      %20103 = OpLabel
-      %20105 = OpISub %uint %184313 %uint_4
-      %20106 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20105
-      %20107 = OpLoad %_arr_v2float_uint_2 %20106
-      %28681 = OpIAdd %uint %184313 %int_1
-      %28683 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184313
-               OpStore %28683 %20107
-               OpBranch %20471
-      %20097 = OpLabel
-      %20099 = OpISub %uint %184313 %uint_3
-      %20100 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20099
-      %20101 = OpLoad %_arr_v2float_uint_2 %20100
-      %28676 = OpIAdd %uint %184313 %int_1
-      %28678 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184313
-               OpStore %28678 %20101
-               OpBranch %20471
-      %20091 = OpLabel
-      %20093 = OpISub %uint %184313 %uint_2
-      %20094 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20093
-      %20095 = OpLoad %_arr_v2float_uint_2 %20094
-      %28671 = OpIAdd %uint %184313 %int_1
-      %28673 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184313
-               OpStore %28673 %20095
-               OpBranch %20471
-      %20085 = OpLabel
-      %20087 = OpISub %uint %184313 %uint_1
-      %20088 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20087
-      %20089 = OpLoad %_arr_v2float_uint_2 %20088
-      %28666 = OpIAdd %uint %184313 %int_1
-      %28668 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184313
-               OpStore %28668 %20089
-               OpBranch %20471
-      %20069 = OpLabel
-      %20071 = OpISub %uint %184313 %uint_1
-      %20072 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20071
-      %20073 = OpLoad %_arr_v2float_uint_2 %20072
-      %20077 = OpISub %uint %184313 %uint_4
-      %20078 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20077
-      %20079 = OpLoad %_arr_v2float_uint_2 %20078
-               OpStore %20072 %20079
-               OpStore %20078 %20073
-               OpBranch %20471
-      %20053 = OpLabel
-      %20055 = OpISub %uint %184313 %uint_1
-      %20056 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20055
-      %20057 = OpLoad %_arr_v2float_uint_2 %20056
-      %20061 = OpISub %uint %184313 %uint_3
-      %20062 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20061
-      %20063 = OpLoad %_arr_v2float_uint_2 %20062
-               OpStore %20056 %20063
-               OpStore %20062 %20057
-               OpBranch %20471
-      %20037 = OpLabel
-      %20039 = OpISub %uint %184313 %uint_1
-      %20040 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20039
-      %20041 = OpLoad %_arr_v2float_uint_2 %20040
-      %20045 = OpISub %uint %184313 %uint_2
-      %20046 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20045
-      %20047 = OpLoad %_arr_v2float_uint_2 %20046
-               OpStore %20040 %20047
-               OpStore %20046 %20041
-               OpBranch %20471
-      %20013 = OpLabel
-      %20015 = OpISub %uint %184292 %uint_4
-      %20017 = OpISub %uint %184292 %uint_3
-      %20018 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20017
-      %20019 = OpLoad %_arr_float_uint_2 %20018
-      %20020 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20015
-               OpStore %20020 %20019
-      %20024 = OpISub %uint %184292 %uint_2
-      %20025 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20024
-      %20026 = OpLoad %_arr_float_uint_2 %20025
-               OpStore %20018 %20026
-      %20031 = OpISub %uint %184292 %uint_1
-      %20032 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20031
-      %20033 = OpLoad %_arr_float_uint_2 %20032
-               OpStore %20025 %20033
-      %20036 = OpISub %uint %184292 %int_1
-               OpBranch %20471
-      %19996 = OpLabel
-      %19998 = OpISub %uint %184292 %uint_3
-      %20000 = OpISub %uint %184292 %uint_2
-      %20001 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20000
-      %20002 = OpLoad %_arr_float_uint_2 %20001
-      %20003 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19998
-               OpStore %20003 %20002
-      %20007 = OpISub %uint %184292 %uint_1
-      %20008 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20007
-      %20009 = OpLoad %_arr_float_uint_2 %20008
-               OpStore %20001 %20009
-      %20012 = OpISub %uint %184292 %int_1
-               OpBranch %20471
-      %19986 = OpLabel
-      %19988 = OpISub %uint %184292 %uint_2
-      %19990 = OpISub %uint %184292 %uint_1
-      %19991 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19990
-      %19992 = OpLoad %_arr_float_uint_2 %19991
-      %19993 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19988
-               OpStore %19993 %19992
-      %19995 = OpISub %uint %184292 %int_1
-               OpBranch %20471
-      %19983 = OpLabel
-      %19985 = OpISub %uint %184292 %int_1
-               OpBranch %20471
-      %19977 = OpLabel
-      %19979 = OpISub %uint %184292 %uint_4
-      %19980 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19979
-      %19981 = OpLoad %_arr_float_uint_2 %19980
-      %28661 = OpIAdd %uint %184292 %int_1
-      %28663 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %28663 %19981
-               OpBranch %20471
-      %19971 = OpLabel
-      %19973 = OpISub %uint %184292 %uint_3
-      %19974 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19973
-      %19975 = OpLoad %_arr_float_uint_2 %19974
-      %28656 = OpIAdd %uint %184292 %int_1
-      %28658 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %28658 %19975
-               OpBranch %20471
-      %19965 = OpLabel
-      %19967 = OpISub %uint %184292 %uint_2
-      %19968 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19967
-      %19969 = OpLoad %_arr_float_uint_2 %19968
-      %28651 = OpIAdd %uint %184292 %int_1
-      %28653 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %28653 %19969
-               OpBranch %20471
-      %19959 = OpLabel
-      %19961 = OpISub %uint %184292 %uint_1
-      %19962 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19961
-      %19963 = OpLoad %_arr_float_uint_2 %19962
-      %28646 = OpIAdd %uint %184292 %int_1
-      %28648 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %28648 %19963
-               OpBranch %20471
-      %19943 = OpLabel
-      %19945 = OpISub %uint %184292 %uint_1
-      %19946 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19945
-      %19947 = OpLoad %_arr_float_uint_2 %19946
-      %19951 = OpISub %uint %184292 %uint_4
-      %19952 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19951
-      %19953 = OpLoad %_arr_float_uint_2 %19952
-               OpStore %19946 %19953
-               OpStore %19952 %19947
-               OpBranch %20471
-      %19927 = OpLabel
-      %19929 = OpISub %uint %184292 %uint_1
-      %19930 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19929
-      %19931 = OpLoad %_arr_float_uint_2 %19930
-      %19935 = OpISub %uint %184292 %uint_3
-      %19936 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19935
-      %19937 = OpLoad %_arr_float_uint_2 %19936
-               OpStore %19930 %19937
-               OpStore %19936 %19931
-               OpBranch %20471
-      %19911 = OpLabel
-      %19913 = OpISub %uint %184292 %uint_1
-      %19914 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19913
-      %19915 = OpLoad %_arr_float_uint_2 %19914
-      %19919 = OpISub %uint %184292 %uint_2
-      %19920 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %19919
-      %19921 = OpLoad %_arr_float_uint_2 %19920
-               OpStore %19914 %19921
-               OpStore %19920 %19915
-               OpBranch %20471
-      %19851 = OpLabel
-      %28590 = OpIAdd %uint %184294 %int_1
-      %28591 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %28592 = OpLoad %float %28591
-      %19855 = OpLoad %uint %12053
-      %19856 = OpBitwiseAnd %uint %19855 %uint_32768
-      %19857 = OpUGreaterThan %bool %19856 %uint_0
-               OpSelectionMerge %28614 None
-               OpSwitch %uint_0 %28598
-      %28598 = OpLabel
-               OpSelectionMerge %28613 None
-               OpBranchConditional %19857 %28600 %28608
-      %28608 = OpLabel
-      %28610 = OpISub %uint %184292 %int_1
-      %28611 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28610
-      %28612 = OpLoad %_arr_float_uint_2 %28611
-     %120152 = OpCompositeExtract %float %28612 0
-     %120153 = OpCompositeExtract %float %28612 1
-               OpBranch %28614
-      %28600 = OpLabel
-      %28602 = OpIAdd %uint %184294 %int_2
-      %28603 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %28590
-      %28604 = OpLoad %float %28603
-               OpBranch %28614
-      %28613 = OpLabel
-               OpUnreachable
-      %28614 = OpLabel
-     %184321 = OpPhi %uint %28602 %28600 %28590 %28608
-     %184320 = OpPhi %uint %184292 %28600 %28610 %28608
-     %184318 = OpPhi %float %28604 %28600 %120152 %28608
-     %184317 = OpPhi %float %28604 %28600 %120153 %28608
-      %19861 = OpLoad %uint %12053
-      %19862 = OpBitwiseAnd %uint %19861 %uint_16384
-      %19863 = OpUGreaterThan %bool %19862 %uint_0
-               OpSelectionMerge %28637 None
-               OpSwitch %uint_0 %28621
-      %28621 = OpLabel
-               OpSelectionMerge %28636 None
-               OpBranchConditional %19863 %28623 %28631
-      %28631 = OpLabel
-      %28633 = OpISub %uint %184320 %int_1
-      %28634 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28633
-      %28635 = OpLoad %_arr_float_uint_2 %28634
-     %120143 = OpCompositeExtract %float %28635 0
-     %120144 = OpCompositeExtract %float %28635 1
-               OpBranch %28637
-      %28623 = OpLabel
-      %28625 = OpIAdd %uint %184321 %int_1
-      %28626 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184321
-      %28627 = OpLoad %float %28626
-               OpBranch %28637
-      %28636 = OpLabel
-               OpUnreachable
-      %28637 = OpLabel
-     %186780 = OpPhi %uint %28625 %28623 %184321 %28631
-     %184324 = OpPhi %uint %184320 %28623 %28633 %28631
-     %184323 = OpPhi %float %28627 %28623 %120143 %28631
-     %184322 = OpPhi %float %28627 %28623 %120144 %28631
-      %19870 = OpFSub %float %184318 %184323
-      %19871 = OpExtInst %float %1 FAbs %19870
-      %19872 = OpFSub %float %28592 %19871
-      %19873 = OpExtInst %float %1 FMax %19872 %float_0
-      %19879 = OpFSub %float %184317 %184322
-      %19880 = OpExtInst %float %1 FAbs %19879
-      %19881 = OpFSub %float %28592 %19880
-      %19882 = OpExtInst %float %1 FMax %19881 %float_0
-      %19887 = OpExtInst %float %1 FMax %184318 %184323
-      %19890 = OpFMul %float %19873 %19873
-      %19891 = OpFMul %float %19890 %float_0_25
-      %19893 = OpFDiv %float %19891 %28592
-      %19894 = OpFAdd %float %19887 %19893
-      %19899 = OpExtInst %float %1 FMax %184317 %184322
-      %19902 = OpFMul %float %19882 %19882
-      %19903 = OpFMul %float %19902 %float_0_25
-      %19905 = OpFDiv %float %19903 %28592
-      %19906 = OpFAdd %float %19899 %19905
-      %19909 = OpCompositeConstruct %_arr_float_uint_2 %19894 %19906
-      %28641 = OpIAdd %uint %184324 %int_1
-      %28643 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184324
-               OpStore %28643 %19909
-               OpBranch %20471
-      %19791 = OpLabel
-      %28533 = OpIAdd %uint %184294 %int_1
-      %28534 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %28535 = OpLoad %float %28534
-      %19795 = OpLoad %uint %12053
-      %19796 = OpBitwiseAnd %uint %19795 %uint_32768
-      %19797 = OpUGreaterThan %bool %19796 %uint_0
-               OpSelectionMerge %28557 None
-               OpSwitch %uint_0 %28541
-      %28541 = OpLabel
-               OpSelectionMerge %28556 None
-               OpBranchConditional %19797 %28543 %28551
-      %28551 = OpLabel
-      %28553 = OpISub %uint %184292 %int_1
-      %28554 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28553
-      %28555 = OpLoad %_arr_float_uint_2 %28554
-     %120170 = OpCompositeExtract %float %28555 0
-     %120171 = OpCompositeExtract %float %28555 1
-               OpBranch %28557
-      %28543 = OpLabel
-      %28545 = OpIAdd %uint %184294 %int_2
-      %28546 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %28533
-      %28547 = OpLoad %float %28546
-               OpBranch %28557
-      %28556 = OpLabel
-               OpUnreachable
-      %28557 = OpLabel
-     %184332 = OpPhi %uint %28545 %28543 %28533 %28551
-     %184331 = OpPhi %uint %184292 %28543 %28553 %28551
-     %184329 = OpPhi %float %28547 %28543 %120170 %28551
-     %184328 = OpPhi %float %28547 %28543 %120171 %28551
-      %19801 = OpLoad %uint %12053
-      %19802 = OpBitwiseAnd %uint %19801 %uint_16384
-      %19803 = OpUGreaterThan %bool %19802 %uint_0
-               OpSelectionMerge %28580 None
-               OpSwitch %uint_0 %28564
-      %28564 = OpLabel
-               OpSelectionMerge %28579 None
-               OpBranchConditional %19803 %28566 %28574
-      %28574 = OpLabel
-      %28576 = OpISub %uint %184331 %int_1
-      %28577 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28576
-      %28578 = OpLoad %_arr_float_uint_2 %28577
-     %120161 = OpCompositeExtract %float %28578 0
-     %120162 = OpCompositeExtract %float %28578 1
-               OpBranch %28580
-      %28566 = OpLabel
-      %28568 = OpIAdd %uint %184332 %int_1
-      %28569 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184332
-      %28570 = OpLoad %float %28569
-               OpBranch %28580
-      %28579 = OpLabel
-               OpUnreachable
-      %28580 = OpLabel
-     %186779 = OpPhi %uint %28568 %28566 %184332 %28574
-     %184335 = OpPhi %uint %184331 %28566 %28576 %28574
-     %184334 = OpPhi %float %28570 %28566 %120161 %28574
-     %184333 = OpPhi %float %28570 %28566 %120162 %28574
-      %19810 = OpFSub %float %184329 %184334
-      %19811 = OpExtInst %float %1 FAbs %19810
-      %19812 = OpFSub %float %28535 %19811
-      %19813 = OpExtInst %float %1 FMax %19812 %float_0
-      %19819 = OpFSub %float %184328 %184333
-      %19820 = OpExtInst %float %1 FAbs %19819
-      %19821 = OpFSub %float %28535 %19820
-      %19822 = OpExtInst %float %1 FMax %19821 %float_0
-      %19827 = OpExtInst %float %1 FMin %184329 %184334
-      %19830 = OpFMul %float %19813 %19813
-      %19831 = OpFMul %float %19830 %float_0_25
-      %19833 = OpFDiv %float %19831 %28535
-      %19834 = OpFSub %float %19827 %19833
-      %19839 = OpExtInst %float %1 FMin %184328 %184333
-      %19842 = OpFMul %float %19822 %19822
-      %19843 = OpFMul %float %19842 %float_0_25
-      %19845 = OpFDiv %float %19843 %28535
-      %19846 = OpFSub %float %19839 %19845
-      %19849 = OpCompositeConstruct %_arr_float_uint_2 %19834 %19846
-      %28584 = OpIAdd %uint %184335 %int_1
-      %28586 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184335
-               OpStore %28586 %19849
-               OpBranch %20471
-      %19764 = OpLabel
-      %19767 = OpLoad %uint %12053
-      %19768 = OpBitwiseAnd %uint %19767 %uint_32768
-      %19769 = OpUGreaterThan %bool %19768 %uint_0
-               OpSelectionMerge %28523 None
-               OpSwitch %uint_0 %28507
-      %28507 = OpLabel
-               OpSelectionMerge %28522 None
-               OpBranchConditional %19769 %28509 %28517
-      %28517 = OpLabel
-      %28519 = OpISub %uint %184311 %int_1
-      %28520 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %28519
-      %28521 = OpLoad %_arr_v4float_uint_2 %28520
-     %120180 = OpCompositeExtract %v4float %28521 1
-               OpBranch %28523
-      %28509 = OpLabel
-      %28511 = OpIAdd %uint %184337 %int_1
-      %28512 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %28513 = OpLoad %v4float %28512
-               OpBranch %28523
-      %28522 = OpLabel
-               OpUnreachable
-      %28523 = OpLabel
-     %261341 = OpPhi %uint %28511 %28509 %184337 %28517
-     %184346 = OpPhi %uint %184311 %28509 %28519 %28517
-     %184338 = OpPhi %v4float %28513 %28509 %120180 %28517
-      %19784 = OpFMul %v4float %184338 %184338
-      %19787 = OpFMul %v4float %19784 %184338
-     %124922 = OpCompositeConstruct %_arr_v4float_uint_2 %19787 %126085
-      %28527 = OpIAdd %uint %184346 %int_1
-      %28529 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184346
-               OpStore %28529 %124922
-               OpBranch %20471
-      %19718 = OpLabel
-      %19721 = OpLoad %uint %12053
-      %19722 = OpBitwiseAnd %uint %19721 %uint_32768
-      %19723 = OpUGreaterThan %bool %19722 %uint_0
-               OpSelectionMerge %28495 None
-               OpSwitch %uint_0 %28479
-      %28479 = OpLabel
-               OpSelectionMerge %28494 None
-               OpBranchConditional %19723 %28481 %28489
-      %28489 = OpLabel
-      %28491 = OpISub %uint %184311 %int_1
-      %28492 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %28491
-      %28493 = OpLoad %_arr_v4float_uint_2 %28492
-     %120188 = OpCompositeExtract %v4float %28493 0
-     %120189 = OpCompositeExtract %v4float %28493 1
-               OpBranch %28495
-      %28481 = OpLabel
-      %28483 = OpIAdd %uint %184337 %int_1
-      %28484 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %28485 = OpLoad %v4float %28484
-               OpBranch %28495
-      %28494 = OpLabel
-               OpUnreachable
-      %28495 = OpLabel
-     %261340 = OpPhi %uint %28483 %28481 %184337 %28489
-     %184349 = OpPhi %uint %184311 %28481 %28491 %28489
-     %184348 = OpPhi %v4float %28485 %28481 %120188 %28489
-     %184347 = OpPhi %v4float %28485 %28481 %120189 %28489
-      %19729 = OpFOrdGreaterThan %v4bool %184347 %3375
-      %19733 = OpFOrdLessThan %v4bool %184348 %3375
-      %19734 = OpSelect %v4bool %19733 %19729 %3373
-      %19739 = OpFMul %v4float %184348 %184348
-      %19744 = OpFMul %v4float %184347 %184347
-      %19745 = OpExtInst %v4float %1 FMin %19739 %19744
-      %19748 = OpSelect %v4float %19734 %3375 %19745
-      %19760 = OpExtInst %v4float %1 FMax %19739 %19744
-     %124913 = OpCompositeConstruct %_arr_v4float_uint_2 %19748 %19760
-      %28499 = OpIAdd %uint %184349 %int_1
-      %28501 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184349
-               OpStore %28501 %124913
-               OpBranch %20471
-      %19691 = OpLabel
-      %19694 = OpLoad %uint %12053
-      %19695 = OpBitwiseAnd %uint %19694 %uint_32768
-      %19696 = OpUGreaterThan %bool %19695 %uint_0
-               OpSelectionMerge %28467 None
-               OpSwitch %uint_0 %28451
-      %28451 = OpLabel
-               OpSelectionMerge %28466 None
-               OpBranchConditional %19696 %28453 %28461
-      %28461 = OpLabel
-      %28463 = OpISub %uint %184302 %int_1
-      %28464 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %28463
-      %28465 = OpLoad %_arr_v3float_uint_2 %28464
-     %120198 = OpCompositeExtract %v3float %28465 1
-               OpBranch %28467
-      %28453 = OpLabel
-      %28455 = OpIAdd %uint %184305 %int_1
-      %28456 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %28457 = OpLoad %v3float %28456
-               OpBranch %28467
-      %28466 = OpLabel
-               OpUnreachable
-      %28467 = OpLabel
-     %260565 = OpPhi %uint %28455 %28453 %184305 %28461
-     %184358 = OpPhi %uint %184302 %28453 %28463 %28461
-     %184350 = OpPhi %v3float %28457 %28453 %120198 %28461
-      %19711 = OpFMul %v3float %184350 %184350
-      %19714 = OpFMul %v3float %19711 %184350
-     %124904 = OpCompositeConstruct %_arr_v3float_uint_2 %19714 %126098
-      %28471 = OpIAdd %uint %184358 %int_1
-      %28473 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184358
-               OpStore %28473 %124904
-               OpBranch %20471
-      %19645 = OpLabel
-      %19648 = OpLoad %uint %12053
-      %19649 = OpBitwiseAnd %uint %19648 %uint_32768
-      %19650 = OpUGreaterThan %bool %19649 %uint_0
-               OpSelectionMerge %28439 None
-               OpSwitch %uint_0 %28423
-      %28423 = OpLabel
-               OpSelectionMerge %28438 None
-               OpBranchConditional %19650 %28425 %28433
-      %28433 = OpLabel
-      %28435 = OpISub %uint %184302 %int_1
-      %28436 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %28435
-      %28437 = OpLoad %_arr_v3float_uint_2 %28436
-     %120206 = OpCompositeExtract %v3float %28437 0
-     %120207 = OpCompositeExtract %v3float %28437 1
-               OpBranch %28439
-      %28425 = OpLabel
-      %28427 = OpIAdd %uint %184305 %int_1
-      %28428 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %28429 = OpLoad %v3float %28428
-               OpBranch %28439
-      %28438 = OpLabel
-               OpUnreachable
-      %28439 = OpLabel
-     %260564 = OpPhi %uint %28427 %28425 %184305 %28433
-     %184361 = OpPhi %uint %184302 %28425 %28435 %28433
-     %184360 = OpPhi %v3float %28429 %28425 %120206 %28433
-     %184359 = OpPhi %v3float %28429 %28425 %120207 %28433
-      %19656 = OpFOrdGreaterThan %v3bool %184359 %123
-      %19660 = OpFOrdLessThan %v3bool %184360 %123
-      %19661 = OpSelect %v3bool %19660 %19656 %3323
-      %19666 = OpFMul %v3float %184360 %184360
-      %19671 = OpFMul %v3float %184359 %184359
-      %19672 = OpExtInst %v3float %1 FMin %19666 %19671
-      %19675 = OpSelect %v3float %19661 %123 %19672
-      %19687 = OpExtInst %v3float %1 FMax %19666 %19671
-     %124895 = OpCompositeConstruct %_arr_v3float_uint_2 %19675 %19687
-      %28443 = OpIAdd %uint %184361 %int_1
-      %28445 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184361
-               OpStore %28445 %124895
-               OpBranch %20471
-      %19618 = OpLabel
-      %19621 = OpLoad %uint %12053
-      %19622 = OpBitwiseAnd %uint %19621 %uint_32768
-      %19623 = OpUGreaterThan %bool %19622 %uint_0
-               OpSelectionMerge %28411 None
-               OpSwitch %uint_0 %28395
-      %28395 = OpLabel
-               OpSelectionMerge %28410 None
-               OpBranchConditional %19623 %28397 %28405
-      %28405 = OpLabel
-      %28407 = OpISub %uint %184313 %int_1
-      %28408 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %28407
-      %28409 = OpLoad %_arr_v2float_uint_2 %28408
-     %120216 = OpCompositeExtract %v2float %28409 1
-               OpBranch %28411
-      %28397 = OpLabel
-      %28399 = OpIAdd %uint %184363 %int_1
-      %28400 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %28401 = OpLoad %v2float %28400
-               OpBranch %28411
-      %28410 = OpLabel
-               OpUnreachable
-      %28411 = OpLabel
-     %262278 = OpPhi %uint %28399 %28397 %184363 %28405
-     %184372 = OpPhi %uint %184313 %28397 %28407 %28405
-     %184364 = OpPhi %v2float %28401 %28397 %120216 %28405
-      %19638 = OpFMul %v2float %184364 %184364
-      %19641 = OpFMul %v2float %19638 %184364
-     %124886 = OpCompositeConstruct %_arr_v2float_uint_2 %19641 %126113
-      %28415 = OpIAdd %uint %184372 %int_1
-      %28417 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184372
-               OpStore %28417 %124886
-               OpBranch %20471
-      %19572 = OpLabel
-      %19575 = OpLoad %uint %12053
-      %19576 = OpBitwiseAnd %uint %19575 %uint_32768
-      %19577 = OpUGreaterThan %bool %19576 %uint_0
-               OpSelectionMerge %28383 None
-               OpSwitch %uint_0 %28367
-      %28367 = OpLabel
-               OpSelectionMerge %28382 None
-               OpBranchConditional %19577 %28369 %28377
-      %28377 = OpLabel
-      %28379 = OpISub %uint %184313 %int_1
-      %28380 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %28379
-      %28381 = OpLoad %_arr_v2float_uint_2 %28380
-     %120224 = OpCompositeExtract %v2float %28381 0
-     %120225 = OpCompositeExtract %v2float %28381 1
-               OpBranch %28383
-      %28369 = OpLabel
-      %28371 = OpIAdd %uint %184363 %int_1
-      %28372 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %28373 = OpLoad %v2float %28372
-               OpBranch %28383
-      %28382 = OpLabel
-               OpUnreachable
-      %28383 = OpLabel
-     %262277 = OpPhi %uint %28371 %28369 %184363 %28377
-     %184375 = OpPhi %uint %184313 %28369 %28379 %28377
-     %184374 = OpPhi %v2float %28373 %28369 %120224 %28377
-     %184373 = OpPhi %v2float %28373 %28369 %120225 %28377
-      %19583 = OpFOrdGreaterThan %v2bool %184373 %3274
-      %19587 = OpFOrdLessThan %v2bool %184374 %3274
-      %19588 = OpSelect %v2bool %19587 %19583 %3272
-      %19593 = OpFMul %v2float %184374 %184374
-      %19598 = OpFMul %v2float %184373 %184373
-      %19599 = OpExtInst %v2float %1 FMin %19593 %19598
-      %19602 = OpSelect %v2float %19588 %3274 %19599
-      %19614 = OpExtInst %v2float %1 FMax %19593 %19598
-     %124877 = OpCompositeConstruct %_arr_v2float_uint_2 %19602 %19614
-      %28387 = OpIAdd %uint %184375 %int_1
-      %28389 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184375
-               OpStore %28389 %124877
-               OpBranch %20471
-      %19545 = OpLabel
-      %19548 = OpLoad %uint %12053
-      %19549 = OpBitwiseAnd %uint %19548 %uint_32768
-      %19550 = OpUGreaterThan %bool %19549 %uint_0
-               OpSelectionMerge %28355 None
-               OpSwitch %uint_0 %28339
-      %28339 = OpLabel
-               OpSelectionMerge %28354 None
-               OpBranchConditional %19550 %28341 %28349
-      %28349 = OpLabel
-      %28351 = OpISub %uint %184292 %int_1
-      %28352 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28351
-      %28353 = OpLoad %_arr_float_uint_2 %28352
-     %120234 = OpCompositeExtract %float %28353 1
-               OpBranch %28355
-      %28341 = OpLabel
-      %28343 = OpIAdd %uint %184294 %int_1
-      %28344 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %28345 = OpLoad %float %28344
-               OpBranch %28355
-      %28354 = OpLabel
-               OpUnreachable
-      %28355 = OpLabel
-     %186772 = OpPhi %uint %28343 %28341 %184294 %28349
-     %184384 = OpPhi %uint %184292 %28341 %28351 %28349
-     %184376 = OpPhi %float %28345 %28341 %120234 %28349
-      %19565 = OpFMul %float %184376 %184376
-      %19568 = OpFMul %float %19565 %184376
-     %124868 = OpCompositeConstruct %_arr_float_uint_2 %19568 %126126
-      %28359 = OpIAdd %uint %184384 %int_1
-      %28361 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184384
-               OpStore %28361 %124868
-               OpBranch %20471
-      %19499 = OpLabel
-      %19502 = OpLoad %uint %12053
-      %19503 = OpBitwiseAnd %uint %19502 %uint_32768
-      %19504 = OpUGreaterThan %bool %19503 %uint_0
-               OpSelectionMerge %28327 None
-               OpSwitch %uint_0 %28311
-      %28311 = OpLabel
-               OpSelectionMerge %28326 None
-               OpBranchConditional %19504 %28313 %28321
-      %28321 = OpLabel
-      %28323 = OpISub %uint %184292 %int_1
-      %28324 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28323
-      %28325 = OpLoad %_arr_float_uint_2 %28324
-     %120242 = OpCompositeExtract %float %28325 0
-     %120243 = OpCompositeExtract %float %28325 1
-               OpBranch %28327
-      %28313 = OpLabel
-      %28315 = OpIAdd %uint %184294 %int_1
-      %28316 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %28317 = OpLoad %float %28316
-               OpBranch %28327
-      %28326 = OpLabel
-               OpUnreachable
-      %28327 = OpLabel
-     %186771 = OpPhi %uint %28315 %28313 %184294 %28321
-     %184390 = OpPhi %uint %184292 %28313 %28323 %28321
-     %184386 = OpPhi %float %28317 %28313 %120242 %28321
-     %184385 = OpPhi %float %28317 %28313 %120243 %28321
-      %19508 = OpFOrdGreaterThan %bool %184385 %float_0
-               OpSelectionMerge %19513 None
-               OpBranchConditional %19508 %19509 %19513
-      %19509 = OpLabel
-      %19512 = OpFOrdLessThan %bool %184386 %float_0
-               OpBranch %19513
-      %19513 = OpLabel
-      %19514 = OpPhi %bool %19508 %28327 %19512 %19509
-               OpSelectionMerge %19530 None
-               OpBranchConditional %19514 %19515 %19517
-      %19517 = OpLabel
-      %19522 = OpFMul %float %184386 %184386
-      %19527 = OpFMul %float %184385 %184385
-      %19528 = OpExtInst %float %1 FMin %19522 %19527
-               OpBranch %19530
-      %19515 = OpLabel
-               OpBranch %19530
-      %19530 = OpLabel
-     %184387 = OpPhi %float %float_0 %19515 %19528 %19517
-      %19535 = OpFMul %float %184386 %184386
-      %19540 = OpFMul %float %184385 %184385
-      %19541 = OpExtInst %float %1 FMax %19535 %19540
-     %124859 = OpCompositeConstruct %_arr_float_uint_2 %184387 %19541
-      %28331 = OpIAdd %uint %184390 %int_1
-      %28333 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184390
-               OpStore %28333 %124859
-               OpBranch %20471
-      %19468 = OpLabel
-      %19471 = OpLoad %uint %12053
-      %19472 = OpBitwiseAnd %uint %19471 %uint_32768
-      %19473 = OpUGreaterThan %bool %19472 %uint_0
-               OpSelectionMerge %28284 None
-               OpSwitch %uint_0 %28268
-      %28268 = OpLabel
-               OpSelectionMerge %28283 None
-               OpBranchConditional %19473 %28270 %28278
-      %28278 = OpLabel
-      %28280 = OpISub %uint %184311 %int_1
-      %28281 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %28280
-      %28282 = OpLoad %_arr_v4float_uint_2 %28281
-     %120251 = OpCompositeExtract %v4float %28282 0
-     %120252 = OpCompositeExtract %v4float %28282 1
-               OpBranch %28284
-      %28270 = OpLabel
-      %28272 = OpIAdd %uint %184337 %int_1
-      %28273 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %28274 = OpLoad %v4float %28273
-               OpBranch %28284
-      %28283 = OpLabel
-               OpUnreachable
-      %28284 = OpLabel
-     %261331 = OpPhi %uint %28272 %28270 %184337 %28278
-     %260791 = OpPhi %uint %184311 %28270 %28280 %28278
-     %184392 = OpPhi %v4float %28274 %28270 %120251 %28278
-     %184391 = OpPhi %v4float %28274 %28270 %120252 %28278
-      %19476 = OpCompositeExtract %float %184392 3
-      %19478 = OpCompositeExtract %float %184391 3
-      %19479 = OpCompositeConstruct %_arr_float_uint_2 %19476 %19478
-      %28288 = OpIAdd %uint %184292 %int_1
-      %28290 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %28290 %19479
-      %19482 = OpCompositeExtract %float %184392 2
-      %19484 = OpCompositeExtract %float %184391 2
-      %19485 = OpCompositeConstruct %_arr_float_uint_2 %19482 %19484
-      %28293 = OpIAdd %uint %184292 %int_2
-      %28295 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28288
-               OpStore %28295 %19485
-      %19488 = OpCompositeExtract %float %184392 1
-      %19490 = OpCompositeExtract %float %184391 1
-      %19491 = OpCompositeConstruct %_arr_float_uint_2 %19488 %19490
-      %28298 = OpIAdd %uint %184292 %int_3
-      %28300 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28293
-               OpStore %28300 %19491
-      %19494 = OpCompositeExtract %float %184392 0
-      %19496 = OpCompositeExtract %float %184391 0
-      %19497 = OpCompositeConstruct %_arr_float_uint_2 %19494 %19496
-      %28303 = OpIAdd %uint %184292 %int_4
-      %28305 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28298
-               OpStore %28305 %19497
-               OpBranch %20471
-      %19443 = OpLabel
-      %19446 = OpLoad %uint %12053
-      %19447 = OpBitwiseAnd %uint %19446 %uint_32768
-      %19448 = OpUGreaterThan %bool %19447 %uint_0
-               OpSelectionMerge %28246 None
-               OpSwitch %uint_0 %28230
-      %28230 = OpLabel
-               OpSelectionMerge %28245 None
-               OpBranchConditional %19448 %28232 %28240
-      %28240 = OpLabel
-      %28242 = OpISub %uint %184302 %int_1
-      %28243 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %28242
-      %28244 = OpLoad %_arr_v3float_uint_2 %28243
-     %120260 = OpCompositeExtract %v3float %28244 0
-     %120261 = OpCompositeExtract %v3float %28244 1
-               OpBranch %28246
-      %28232 = OpLabel
-      %28234 = OpIAdd %uint %184305 %int_1
-      %28235 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %28236 = OpLoad %v3float %28235
-               OpBranch %28246
-      %28245 = OpLabel
-               OpUnreachable
-      %28246 = OpLabel
-     %260556 = OpPhi %uint %28234 %28232 %184305 %28240
-     %260260 = OpPhi %uint %184302 %28232 %28242 %28240
-     %184395 = OpPhi %v3float %28236 %28232 %120260 %28240
-     %184394 = OpPhi %v3float %28236 %28232 %120261 %28240
-      %19451 = OpCompositeExtract %float %184395 2
-      %19453 = OpCompositeExtract %float %184394 2
-      %19454 = OpCompositeConstruct %_arr_float_uint_2 %19451 %19453
-      %28250 = OpIAdd %uint %184292 %int_1
-      %28252 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %28252 %19454
-      %19457 = OpCompositeExtract %float %184395 1
-      %19459 = OpCompositeExtract %float %184394 1
-      %19460 = OpCompositeConstruct %_arr_float_uint_2 %19457 %19459
-      %28255 = OpIAdd %uint %184292 %int_2
-      %28257 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28250
-               OpStore %28257 %19460
-      %19463 = OpCompositeExtract %float %184395 0
-      %19465 = OpCompositeExtract %float %184394 0
-      %19466 = OpCompositeConstruct %_arr_float_uint_2 %19463 %19465
-      %28260 = OpIAdd %uint %184292 %int_3
-      %28262 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28255
-               OpStore %28262 %19466
-               OpBranch %20471
-      %19424 = OpLabel
-      %19427 = OpLoad %uint %12053
-      %19428 = OpBitwiseAnd %uint %19427 %uint_32768
-      %19429 = OpUGreaterThan %bool %19428 %uint_0
-               OpSelectionMerge %28213 None
-               OpSwitch %uint_0 %28197
-      %28197 = OpLabel
-               OpSelectionMerge %28212 None
-               OpBranchConditional %19429 %28199 %28207
-      %28207 = OpLabel
-      %28209 = OpISub %uint %184313 %int_1
-      %28210 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %28209
-      %28211 = OpLoad %_arr_v2float_uint_2 %28210
-     %120269 = OpCompositeExtract %v2float %28211 0
-     %120270 = OpCompositeExtract %v2float %28211 1
-               OpBranch %28213
-      %28199 = OpLabel
-      %28201 = OpIAdd %uint %184363 %int_1
-      %28202 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %28203 = OpLoad %v2float %28202
-               OpBranch %28213
-      %28212 = OpLabel
-               OpUnreachable
-      %28213 = OpLabel
-     %262270 = OpPhi %uint %28201 %28199 %184363 %28207
-     %261031 = OpPhi %uint %184313 %28199 %28209 %28207
-     %184398 = OpPhi %v2float %28203 %28199 %120269 %28207
-     %184397 = OpPhi %v2float %28203 %28199 %120270 %28207
-      %19432 = OpCompositeExtract %float %184398 1
-      %19434 = OpCompositeExtract %float %184397 1
-      %19435 = OpCompositeConstruct %_arr_float_uint_2 %19432 %19434
-      %28217 = OpIAdd %uint %184292 %int_1
-      %28219 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %28219 %19435
-      %19438 = OpCompositeExtract %float %184398 0
-      %19440 = OpCompositeExtract %float %184397 0
-      %19441 = OpCompositeConstruct %_arr_float_uint_2 %19438 %19440
-      %28222 = OpIAdd %uint %184292 %int_2
-      %28224 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28217
-               OpStore %28224 %19441
-               OpBranch %20471
-      %19397 = OpLabel
-      %19400 = OpLoad %uint %12053
-      %19401 = OpBitwiseAnd %uint %19400 %uint_32768
-      %19402 = OpUGreaterThan %bool %19401 %uint_0
-               OpSelectionMerge %28185 None
-               OpSwitch %uint_0 %28169
-      %28169 = OpLabel
-               OpSelectionMerge %28184 None
-               OpBranchConditional %19402 %28171 %28179
-      %28179 = OpLabel
-      %28181 = OpISub %uint %184401 %int_1
-      %28182 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %28181
-      %28183 = OpLoad %_arr_mat2v2float_uint_2 %28182
-     %120278 = OpCompositeExtract %mat2v2float %28183 0
-     %120279 = OpCompositeExtract %mat2v2float %28183 1
-               OpBranch %28185
-      %28171 = OpLabel
-      %28173 = OpIAdd %uint %184403 %int_1
-      %28174 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %184403
-      %28175 = OpLoad %mat2v2float %28174
-               OpBranch %28185
-      %28184 = OpLabel
-               OpUnreachable
-      %28185 = OpLabel
-     %263545 = OpPhi %uint %28173 %28171 %184403 %28179
-     %263228 = OpPhi %uint %184401 %28171 %28181 %28179
-     %184405 = OpPhi %mat2v2float %28175 %28171 %120278 %28179
-     %184404 = OpPhi %mat2v2float %28175 %28171 %120279 %28179
-      %19405 = OpCompositeExtract %v2float %184405 0
-      %19407 = OpCompositeExtract %v2float %184405 1
-      %19408 = OpCompositeExtract %float %19405 0
-      %19409 = OpCompositeExtract %float %19405 1
-      %19410 = OpCompositeExtract %float %19407 0
-      %19411 = OpCompositeExtract %float %19407 1
-      %19412 = OpCompositeConstruct %v4float %19408 %19409 %19410 %19411
-      %19414 = OpCompositeExtract %v2float %184404 0
-      %19416 = OpCompositeExtract %v2float %184404 1
-      %19417 = OpCompositeExtract %float %19414 0
-      %19418 = OpCompositeExtract %float %19414 1
-      %19419 = OpCompositeExtract %float %19416 0
-      %19420 = OpCompositeExtract %float %19416 1
-      %19421 = OpCompositeConstruct %v4float %19417 %19418 %19419 %19420
-      %19422 = OpCompositeConstruct %_arr_v4float_uint_2 %19412 %19421
-      %28189 = OpIAdd %uint %184311 %int_1
-      %28191 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184311
-               OpStore %28191 %19422
-               OpBranch %20471
-      %19366 = OpLabel
-      %19369 = OpLoad %uint %12053
-      %19370 = OpBitwiseAnd %uint %19369 %uint_32768
-      %19371 = OpUGreaterThan %bool %19370 %uint_0
-               OpSelectionMerge %28142 None
-               OpSwitch %uint_0 %28126
-      %28126 = OpLabel
-               OpSelectionMerge %28141 None
-               OpBranchConditional %19371 %28128 %28136
-      %28136 = OpLabel
-      %28138 = OpISub %uint %184408 %int_1
-      %28139 = OpAccessChain %_ptr_Function__arr_mat4v4float_uint_2 %425 %28138
-      %28140 = OpLoad %_arr_mat4v4float_uint_2 %28139
-     %120287 = OpCompositeExtract %mat4v4float %28140 0
-     %120288 = OpCompositeExtract %mat4v4float %28140 1
-               OpBranch %28142
-      %28128 = OpLabel
-      %28130 = OpIAdd %uint %184410 %int_1
-      %28131 = OpAccessChain %_ptr_StorageBuffer_mat4v4float %412 %int_0 %184410
-      %28132 = OpLoad %mat4v4float %28131
-               OpBranch %28142
-      %28141 = OpLabel
-               OpUnreachable
-      %28142 = OpLabel
-     %264178 = OpPhi %uint %28130 %28128 %184410 %28136
-     %263861 = OpPhi %uint %184408 %28128 %28138 %28136
-     %184412 = OpPhi %mat4v4float %28132 %28128 %120287 %28136
-     %184411 = OpPhi %mat4v4float %28132 %28128 %120288 %28136
-      %19374 = OpCompositeExtract %v4float %184412 3
-      %19376 = OpCompositeExtract %v4float %184411 3
-      %19377 = OpCompositeConstruct %_arr_v4float_uint_2 %19374 %19376
-      %28146 = OpIAdd %uint %184311 %int_1
-      %28148 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184311
-               OpStore %28148 %19377
-      %19380 = OpCompositeExtract %v4float %184412 2
-      %19382 = OpCompositeExtract %v4float %184411 2
-      %19383 = OpCompositeConstruct %_arr_v4float_uint_2 %19380 %19382
-      %28151 = OpIAdd %uint %184311 %int_2
-      %28153 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %28146
-               OpStore %28153 %19383
-      %19386 = OpCompositeExtract %v4float %184412 1
-      %19388 = OpCompositeExtract %v4float %184411 1
-      %19389 = OpCompositeConstruct %_arr_v4float_uint_2 %19386 %19388
-      %28156 = OpIAdd %uint %184311 %int_3
-      %28158 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %28151
-               OpStore %28158 %19389
-      %19392 = OpCompositeExtract %v4float %184412 0
-      %19394 = OpCompositeExtract %v4float %184411 0
-      %19395 = OpCompositeConstruct %_arr_v4float_uint_2 %19392 %19394
-      %28161 = OpIAdd %uint %184311 %int_4
-      %28163 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %28156
-               OpStore %28163 %19395
-               OpBranch %20471
-      %19341 = OpLabel
-      %19344 = OpLoad %uint %12053
-      %19345 = OpBitwiseAnd %uint %19344 %uint_32768
-      %19346 = OpUGreaterThan %bool %19345 %uint_0
-               OpSelectionMerge %28104 None
-               OpSwitch %uint_0 %28088
-      %28088 = OpLabel
-               OpSelectionMerge %28103 None
-               OpBranchConditional %19346 %28090 %28098
-      %28098 = OpLabel
-      %28100 = OpISub %uint %184415 %int_1
-      %28101 = OpAccessChain %_ptr_Function__arr_mat3v3float_uint_2 %396 %28100
-      %28102 = OpLoad %_arr_mat3v3float_uint_2 %28101
-     %120296 = OpCompositeExtract %mat3v3float %28102 0
-     %120297 = OpCompositeExtract %mat3v3float %28102 1
-               OpBranch %28104
-      %28090 = OpLabel
-      %28092 = OpIAdd %uint %184417 %int_1
-      %28093 = OpAccessChain %_ptr_StorageBuffer_mat3v3float %383 %int_0 %184417
-      %28094 = OpLoad %mat3v3float %28093
-               OpBranch %28104
-      %28103 = OpLabel
-               OpUnreachable
-      %28104 = OpLabel
-     %264811 = OpPhi %uint %28092 %28090 %184417 %28098
-     %264494 = OpPhi %uint %184415 %28090 %28100 %28098
-     %184419 = OpPhi %mat3v3float %28094 %28090 %120296 %28098
-     %184418 = OpPhi %mat3v3float %28094 %28090 %120297 %28098
-      %19349 = OpCompositeExtract %v3float %184419 2
-      %19351 = OpCompositeExtract %v3float %184418 2
-      %19352 = OpCompositeConstruct %_arr_v3float_uint_2 %19349 %19351
-      %28108 = OpIAdd %uint %184302 %int_1
-      %28110 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184302
-               OpStore %28110 %19352
-      %19355 = OpCompositeExtract %v3float %184419 1
-      %19357 = OpCompositeExtract %v3float %184418 1
-      %19358 = OpCompositeConstruct %_arr_v3float_uint_2 %19355 %19357
-      %28113 = OpIAdd %uint %184302 %int_2
-      %28115 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %28108
-               OpStore %28115 %19358
-      %19361 = OpCompositeExtract %v3float %184419 0
-      %19363 = OpCompositeExtract %v3float %184418 0
-      %19364 = OpCompositeConstruct %_arr_v3float_uint_2 %19361 %19363
-      %28118 = OpIAdd %uint %184302 %int_3
-      %28120 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %28113
-               OpStore %28120 %19364
-               OpBranch %20471
-      %19322 = OpLabel
-      %19325 = OpLoad %uint %12053
-      %19326 = OpBitwiseAnd %uint %19325 %uint_32768
-      %19327 = OpUGreaterThan %bool %19326 %uint_0
-               OpSelectionMerge %28071 None
-               OpSwitch %uint_0 %28055
-      %28055 = OpLabel
-               OpSelectionMerge %28070 None
-               OpBranchConditional %19327 %28057 %28065
-      %28065 = OpLabel
-      %28067 = OpISub %uint %184401 %int_1
-      %28068 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %28067
-      %28069 = OpLoad %_arr_mat2v2float_uint_2 %28068
-     %120305 = OpCompositeExtract %mat2v2float %28069 0
-     %120306 = OpCompositeExtract %mat2v2float %28069 1
-               OpBranch %28071
-      %28057 = OpLabel
-      %28059 = OpIAdd %uint %184403 %int_1
-      %28060 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %184403
-      %28061 = OpLoad %mat2v2float %28060
-               OpBranch %28071
-      %28070 = OpLabel
-               OpUnreachable
-      %28071 = OpLabel
-     %263542 = OpPhi %uint %28059 %28057 %184403 %28065
-     %263225 = OpPhi %uint %184401 %28057 %28067 %28065
-     %184422 = OpPhi %mat2v2float %28061 %28057 %120305 %28065
-     %184421 = OpPhi %mat2v2float %28061 %28057 %120306 %28065
-      %19330 = OpCompositeExtract %v2float %184422 1
-      %19332 = OpCompositeExtract %v2float %184421 1
-      %19333 = OpCompositeConstruct %_arr_v2float_uint_2 %19330 %19332
-      %28075 = OpIAdd %uint %184313 %int_1
-      %28077 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184313
-               OpStore %28077 %19333
-      %19336 = OpCompositeExtract %v2float %184422 0
-      %19338 = OpCompositeExtract %v2float %184421 0
-      %19339 = OpCompositeConstruct %_arr_v2float_uint_2 %19336 %19338
-      %28080 = OpIAdd %uint %184313 %int_2
-      %28082 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %28075
-               OpStore %28082 %19339
-               OpBranch %20471
-      %19291 = OpLabel
-      %19294 = OpLoad %uint %12053
-      %19295 = OpBitwiseAnd %uint %19294 %uint_32768
-      %19296 = OpUGreaterThan %bool %19295 %uint_0
-               OpSelectionMerge %28028 None
-               OpSwitch %uint_0 %28012
-      %28012 = OpLabel
-               OpSelectionMerge %28027 None
-               OpBranchConditional %19296 %28014 %28022
-      %28022 = OpLabel
-      %28024 = OpISub %uint %184401 %int_1
-      %28025 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %28024
-      %28026 = OpLoad %_arr_mat2v2float_uint_2 %28025
-     %120314 = OpCompositeExtract %mat2v2float %28026 0
-     %120315 = OpCompositeExtract %mat2v2float %28026 1
-               OpBranch %28028
-      %28014 = OpLabel
-      %28016 = OpIAdd %uint %184403 %int_1
-      %28017 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %184403
-      %28018 = OpLoad %mat2v2float %28017
-               OpBranch %28028
-      %28027 = OpLabel
-               OpUnreachable
-      %28028 = OpLabel
-     %263541 = OpPhi %uint %28016 %28014 %184403 %28022
-     %263224 = OpPhi %uint %184401 %28014 %28024 %28022
-     %184425 = OpPhi %mat2v2float %28018 %28014 %120314 %28022
-     %184424 = OpPhi %mat2v2float %28018 %28014 %120315 %28022
-      %19299 = OpCompositeExtract %float %184425 1 1
-      %19301 = OpCompositeExtract %float %184424 1 1
-      %19302 = OpCompositeConstruct %_arr_float_uint_2 %19299 %19301
-      %28032 = OpIAdd %uint %184292 %int_1
-      %28034 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %28034 %19302
-      %19305 = OpCompositeExtract %float %184425 1 0
-      %19307 = OpCompositeExtract %float %184424 1 0
-      %19308 = OpCompositeConstruct %_arr_float_uint_2 %19305 %19307
-      %28037 = OpIAdd %uint %184292 %int_2
-      %28039 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28032
-               OpStore %28039 %19308
-      %19311 = OpCompositeExtract %float %184425 0 1
-      %19313 = OpCompositeExtract %float %184424 0 1
-      %19314 = OpCompositeConstruct %_arr_float_uint_2 %19311 %19313
-      %28042 = OpIAdd %uint %184292 %int_3
-      %28044 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28037
-               OpStore %28044 %19314
-      %19317 = OpCompositeExtract %float %184425 0 0
-      %19319 = OpCompositeExtract %float %184424 0 0
-      %19320 = OpCompositeConstruct %_arr_float_uint_2 %19317 %19319
-      %28047 = OpIAdd %uint %184292 %int_4
-      %28049 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28042
-               OpStore %28049 %19320
-               OpBranch %20471
-      %19258 = OpLabel
-      %19261 = OpLoad %uint %12053
-      %19262 = OpBitwiseAnd %uint %19261 %uint_32768
-      %19263 = OpUGreaterThan %bool %19262 %uint_0
-               OpSelectionMerge %27977 None
-               OpSwitch %uint_0 %27961
-      %27961 = OpLabel
-               OpSelectionMerge %27976 None
-               OpBranchConditional %19263 %27963 %27971
-      %27971 = OpLabel
-      %27973 = OpISub %uint %184313 %int_1
-      %27974 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %27973
-      %27975 = OpLoad %_arr_v2float_uint_2 %27974
-     %120332 = OpCompositeExtract %v2float %27975 0
-     %120333 = OpCompositeExtract %v2float %27975 1
-               OpBranch %27977
-      %27963 = OpLabel
-      %27965 = OpIAdd %uint %184363 %int_1
-      %27966 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %27967 = OpLoad %v2float %27966
-               OpBranch %27977
-      %27976 = OpLabel
-               OpUnreachable
-      %27977 = OpLabel
-     %184431 = OpPhi %uint %27965 %27963 %184363 %27971
-     %184430 = OpPhi %uint %184313 %27963 %27973 %27971
-     %184428 = OpPhi %v2float %27967 %27963 %120332 %27971
-     %184427 = OpPhi %v2float %27967 %27963 %120333 %27971
-      %19267 = OpLoad %uint %12053
-      %19268 = OpBitwiseAnd %uint %19267 %uint_16384
-      %19269 = OpUGreaterThan %bool %19268 %uint_0
-               OpSelectionMerge %28000 None
-               OpSwitch %uint_0 %27984
-      %27984 = OpLabel
-               OpSelectionMerge %27999 None
-               OpBranchConditional %19269 %27986 %27994
-      %27994 = OpLabel
-      %27996 = OpISub %uint %184430 %int_1
-      %27997 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %27996
-      %27998 = OpLoad %_arr_v2float_uint_2 %27997
-     %120323 = OpCompositeExtract %v2float %27998 0
-     %120324 = OpCompositeExtract %v2float %27998 1
-               OpBranch %28000
-      %27986 = OpLabel
-      %27988 = OpIAdd %uint %184431 %int_1
-      %27989 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184431
-      %27990 = OpLoad %v2float %27989
-               OpBranch %28000
-      %27999 = OpLabel
-               OpUnreachable
-      %28000 = OpLabel
-     %262264 = OpPhi %uint %27988 %27986 %184431 %27994
-     %261026 = OpPhi %uint %184430 %27986 %27996 %27994
-     %184433 = OpPhi %v2float %27990 %27986 %120323 %27994
-     %184432 = OpPhi %v2float %27990 %27986 %120324 %27994
-      %19275 = OpCompositeExtract %float %184428 0
-      %19276 = OpCompositeExtract %float %184428 1
-      %19277 = OpCompositeExtract %float %184433 0
-      %19278 = OpCompositeExtract %float %184433 1
-      %19279 = OpCompositeConstruct %v4float %19275 %19276 %19277 %19278
-      %19284 = OpCompositeExtract %float %184427 0
-      %19285 = OpCompositeExtract %float %184427 1
-      %19286 = OpCompositeExtract %float %184432 0
-      %19287 = OpCompositeExtract %float %184432 1
-      %19288 = OpCompositeConstruct %v4float %19284 %19285 %19286 %19287
-      %19289 = OpCompositeConstruct %_arr_v4float_uint_2 %19279 %19288
-      %28004 = OpIAdd %uint %184311 %int_1
-      %28006 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184311
-               OpStore %28006 %19289
-               OpBranch %20471
-      %19227 = OpLabel
-      %19230 = OpLoad %uint %12053
-      %19231 = OpBitwiseAnd %uint %19230 %uint_32768
-      %19232 = OpUGreaterThan %bool %19231 %uint_0
-               OpSelectionMerge %27926 None
-               OpSwitch %uint_0 %27910
-      %27910 = OpLabel
-               OpSelectionMerge %27925 None
-               OpBranchConditional %19232 %27912 %27920
-      %27920 = OpLabel
-      %27922 = OpISub %uint %184302 %int_1
-      %27923 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %27922
-      %27924 = OpLoad %_arr_v3float_uint_2 %27923
-     %120350 = OpCompositeExtract %v3float %27924 0
-     %120351 = OpCompositeExtract %v3float %27924 1
-               OpBranch %27926
-      %27912 = OpLabel
-      %27914 = OpIAdd %uint %184305 %int_1
-      %27915 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %27916 = OpLoad %v3float %27915
-               OpBranch %27926
-      %27925 = OpLabel
-               OpUnreachable
-      %27926 = OpLabel
-     %260547 = OpPhi %uint %27914 %27912 %184305 %27920
-     %260252 = OpPhi %uint %184302 %27912 %27922 %27920
-     %184437 = OpPhi %v3float %27916 %27912 %120350 %27920
-     %184436 = OpPhi %v3float %27916 %27912 %120351 %27920
-      %19236 = OpLoad %uint %12053
-      %19237 = OpBitwiseAnd %uint %19236 %uint_16384
-      %19238 = OpUGreaterThan %bool %19237 %uint_0
-               OpSelectionMerge %27949 None
-               OpSwitch %uint_0 %27933
-      %27933 = OpLabel
-               OpSelectionMerge %27948 None
-               OpBranchConditional %19238 %27935 %27943
-      %27943 = OpLabel
-      %27945 = OpISub %uint %184292 %int_1
-      %27946 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27945
-      %27947 = OpLoad %_arr_float_uint_2 %27946
-     %120341 = OpCompositeExtract %float %27947 0
-     %120342 = OpCompositeExtract %float %27947 1
-               OpBranch %27949
-      %27935 = OpLabel
-      %27937 = OpIAdd %uint %184294 %int_1
-      %27938 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %27939 = OpLoad %float %27938
-               OpBranch %27949
-      %27948 = OpLabel
-               OpUnreachable
-      %27949 = OpLabel
-     %186758 = OpPhi %uint %27937 %27935 %184294 %27943
-     %186511 = OpPhi %uint %184292 %27935 %27945 %27943
-     %184442 = OpPhi %float %27939 %27935 %120341 %27943
-     %184441 = OpPhi %float %27939 %27935 %120342 %27943
-      %19244 = OpCompositeExtract %float %184437 0
-      %19245 = OpCompositeExtract %float %184437 1
-      %19246 = OpCompositeExtract %float %184437 2
-      %19247 = OpCompositeConstruct %v4float %19244 %19245 %19246 %184442
-      %19252 = OpCompositeExtract %float %184436 0
-      %19253 = OpCompositeExtract %float %184436 1
-      %19254 = OpCompositeExtract %float %184436 2
-      %19255 = OpCompositeConstruct %v4float %19252 %19253 %19254 %184441
-      %19256 = OpCompositeConstruct %_arr_v4float_uint_2 %19247 %19255
-      %27953 = OpIAdd %uint %184311 %int_1
-      %27955 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184311
-               OpStore %27955 %19256
-               OpBranch %20471
-      %19188 = OpLabel
-      %19191 = OpLoad %uint %12053
-      %19192 = OpBitwiseAnd %uint %19191 %uint_32768
-      %19193 = OpUGreaterThan %bool %19192 %uint_0
-               OpSelectionMerge %27852 None
-               OpSwitch %uint_0 %27836
-      %27836 = OpLabel
-               OpSelectionMerge %27851 None
-               OpBranchConditional %19193 %27838 %27846
-      %27846 = OpLabel
-      %27848 = OpISub %uint %184313 %int_1
-      %27849 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %27848
-      %27850 = OpLoad %_arr_v2float_uint_2 %27849
-     %120377 = OpCompositeExtract %v2float %27850 0
-     %120378 = OpCompositeExtract %v2float %27850 1
-               OpBranch %27852
-      %27838 = OpLabel
-      %27840 = OpIAdd %uint %184363 %int_1
-      %27841 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %27842 = OpLoad %v2float %27841
-               OpBranch %27852
-      %27851 = OpLabel
-               OpUnreachable
-      %27852 = OpLabel
-     %262261 = OpPhi %uint %27840 %27838 %184363 %27846
-     %261023 = OpPhi %uint %184313 %27838 %27848 %27846
-     %184446 = OpPhi %v2float %27842 %27838 %120377 %27846
-     %184445 = OpPhi %v2float %27842 %27838 %120378 %27846
-      %19197 = OpLoad %uint %12053
-      %19198 = OpBitwiseAnd %uint %19197 %uint_16384
-      %19199 = OpUGreaterThan %bool %19198 %uint_0
-               OpSelectionMerge %27875 None
-               OpSwitch %uint_0 %27859
-      %27859 = OpLabel
-               OpSelectionMerge %27874 None
-               OpBranchConditional %19199 %27861 %27869
-      %27869 = OpLabel
-      %27871 = OpISub %uint %184292 %int_1
-      %27872 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27871
-      %27873 = OpLoad %_arr_float_uint_2 %27872
-     %120368 = OpCompositeExtract %float %27873 0
-     %120369 = OpCompositeExtract %float %27873 1
-               OpBranch %27875
-      %27861 = OpLabel
-      %27863 = OpIAdd %uint %184294 %int_1
-      %27864 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %27865 = OpLoad %float %27864
-               OpBranch %27875
-      %27874 = OpLabel
-               OpUnreachable
-      %27875 = OpLabel
-     %184454 = OpPhi %uint %27863 %27861 %184294 %27869
-     %184453 = OpPhi %uint %184292 %27861 %27871 %27869
-     %184451 = OpPhi %float %27865 %27861 %120368 %27869
-     %184450 = OpPhi %float %27865 %27861 %120369 %27869
-      %19203 = OpLoad %uint %12053
-      %19204 = OpBitwiseAnd %uint %19203 %uint_8192
-      %19205 = OpUGreaterThan %bool %19204 %uint_0
-               OpSelectionMerge %27898 None
-               OpSwitch %uint_0 %27882
-      %27882 = OpLabel
-               OpSelectionMerge %27897 None
-               OpBranchConditional %19205 %27884 %27892
-      %27892 = OpLabel
-      %27894 = OpISub %uint %184453 %int_1
-      %27895 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27894
-      %27896 = OpLoad %_arr_float_uint_2 %27895
-     %120359 = OpCompositeExtract %float %27896 0
-     %120360 = OpCompositeExtract %float %27896 1
-               OpBranch %27898
-      %27884 = OpLabel
-      %27886 = OpIAdd %uint %184454 %int_1
-      %27887 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184454
-      %27888 = OpLoad %float %27887
-               OpBranch %27898
-      %27897 = OpLabel
-               OpUnreachable
-      %27898 = OpLabel
-     %186757 = OpPhi %uint %27886 %27884 %184454 %27892
-     %186510 = OpPhi %uint %184453 %27884 %27894 %27892
-     %184456 = OpPhi %float %27888 %27884 %120359 %27892
-     %184455 = OpPhi %float %27888 %27884 %120360 %27892
-      %19213 = OpCompositeExtract %float %184446 0
-      %19214 = OpCompositeExtract %float %184446 1
-      %19215 = OpCompositeConstruct %v4float %19213 %19214 %184451 %184456
-      %19222 = OpCompositeExtract %float %184445 0
-      %19223 = OpCompositeExtract %float %184445 1
-      %19224 = OpCompositeConstruct %v4float %19222 %19223 %184450 %184455
-      %19225 = OpCompositeConstruct %_arr_v4float_uint_2 %19215 %19224
-      %27902 = OpIAdd %uint %184311 %int_1
-      %27904 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184311
-               OpStore %27904 %19225
-               OpBranch %20471
-      %19143 = OpLabel
-      %19146 = OpLoad %uint %12053
-      %19147 = OpBitwiseAnd %uint %19146 %uint_32768
-      %19148 = OpUGreaterThan %bool %19147 %uint_0
-               OpSelectionMerge %27755 None
-               OpSwitch %uint_0 %27739
-      %27739 = OpLabel
-               OpSelectionMerge %27754 None
-               OpBranchConditional %19148 %27741 %27749
-      %27749 = OpLabel
-      %27751 = OpISub %uint %184292 %int_1
-      %27752 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27751
-      %27753 = OpLoad %_arr_float_uint_2 %27752
-     %120413 = OpCompositeExtract %float %27753 0
-     %120414 = OpCompositeExtract %float %27753 1
-               OpBranch %27755
-      %27741 = OpLabel
-      %27743 = OpIAdd %uint %184294 %int_1
-      %27744 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %27745 = OpLoad %float %27744
-               OpBranch %27755
-      %27754 = OpLabel
-               OpUnreachable
-      %27755 = OpLabel
-     %184464 = OpPhi %uint %27743 %27741 %184294 %27749
-     %184463 = OpPhi %uint %184292 %27741 %27751 %27749
-     %184461 = OpPhi %float %27745 %27741 %120413 %27749
-     %184460 = OpPhi %float %27745 %27741 %120414 %27749
-      %19152 = OpLoad %uint %12053
-      %19153 = OpBitwiseAnd %uint %19152 %uint_16384
-      %19154 = OpUGreaterThan %bool %19153 %uint_0
-               OpSelectionMerge %27778 None
-               OpSwitch %uint_0 %27762
-      %27762 = OpLabel
-               OpSelectionMerge %27777 None
-               OpBranchConditional %19154 %27764 %27772
-      %27772 = OpLabel
-      %27774 = OpISub %uint %184463 %int_1
-      %27775 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27774
-      %27776 = OpLoad %_arr_float_uint_2 %27775
-     %120404 = OpCompositeExtract %float %27776 0
-     %120405 = OpCompositeExtract %float %27776 1
-               OpBranch %27778
-      %27764 = OpLabel
-      %27766 = OpIAdd %uint %184464 %int_1
-      %27767 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184464
-      %27768 = OpLoad %float %27767
-               OpBranch %27778
-      %27777 = OpLabel
-               OpUnreachable
-      %27778 = OpLabel
-     %184469 = OpPhi %uint %27766 %27764 %184464 %27772
-     %184468 = OpPhi %uint %184463 %27764 %27774 %27772
-     %184466 = OpPhi %float %27768 %27764 %120404 %27772
-     %184465 = OpPhi %float %27768 %27764 %120405 %27772
-      %19158 = OpLoad %uint %12053
-      %19159 = OpBitwiseAnd %uint %19158 %uint_8192
-      %19160 = OpUGreaterThan %bool %19159 %uint_0
-               OpSelectionMerge %27801 None
-               OpSwitch %uint_0 %27785
-      %27785 = OpLabel
-               OpSelectionMerge %27800 None
-               OpBranchConditional %19160 %27787 %27795
-      %27795 = OpLabel
-      %27797 = OpISub %uint %184468 %int_1
-      %27798 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27797
-      %27799 = OpLoad %_arr_float_uint_2 %27798
-     %120395 = OpCompositeExtract %float %27799 0
-     %120396 = OpCompositeExtract %float %27799 1
-               OpBranch %27801
-      %27787 = OpLabel
-      %27789 = OpIAdd %uint %184469 %int_1
-      %27790 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184469
-      %27791 = OpLoad %float %27790
-               OpBranch %27801
-      %27800 = OpLabel
-               OpUnreachable
-      %27801 = OpLabel
-     %184474 = OpPhi %uint %27789 %27787 %184469 %27795
-     %184473 = OpPhi %uint %184468 %27787 %27797 %27795
-     %184471 = OpPhi %float %27791 %27787 %120395 %27795
-     %184470 = OpPhi %float %27791 %27787 %120396 %27795
-      %19164 = OpLoad %uint %12053
-      %19165 = OpBitwiseAnd %uint %19164 %uint_4096
-      %19166 = OpUGreaterThan %bool %19165 %uint_0
-               OpSelectionMerge %27824 None
-               OpSwitch %uint_0 %27808
-      %27808 = OpLabel
-               OpSelectionMerge %27823 None
-               OpBranchConditional %19166 %27810 %27818
-      %27818 = OpLabel
-      %27820 = OpISub %uint %184473 %int_1
-      %27821 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27820
-      %27822 = OpLoad %_arr_float_uint_2 %27821
-     %120386 = OpCompositeExtract %float %27822 0
-     %120387 = OpCompositeExtract %float %27822 1
-               OpBranch %27824
-      %27810 = OpLabel
-      %27812 = OpIAdd %uint %184474 %int_1
-      %27813 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184474
-      %27814 = OpLoad %float %27813
-               OpBranch %27824
-      %27823 = OpLabel
-               OpUnreachable
-      %27824 = OpLabel
-     %186756 = OpPhi %uint %27812 %27810 %184474 %27818
-     %186509 = OpPhi %uint %184473 %27810 %27820 %27818
-     %184476 = OpPhi %float %27814 %27810 %120386 %27818
-     %184475 = OpPhi %float %27814 %27810 %120387 %27818
-      %19176 = OpCompositeConstruct %v4float %184461 %184466 %184471 %184476
-      %19185 = OpCompositeConstruct %v4float %184460 %184465 %184470 %184475
-      %19186 = OpCompositeConstruct %_arr_v4float_uint_2 %19176 %19185
-      %27828 = OpIAdd %uint %184311 %int_1
-      %27830 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184311
-               OpStore %27830 %19186
-               OpBranch %20471
-      %19114 = OpLabel
-      %19117 = OpLoad %uint %12053
-      %19118 = OpBitwiseAnd %uint %19117 %uint_32768
-      %19119 = OpUGreaterThan %bool %19118 %uint_0
-               OpSelectionMerge %27704 None
-               OpSwitch %uint_0 %27688
-      %27688 = OpLabel
-               OpSelectionMerge %27703 None
-               OpBranchConditional %19119 %27690 %27698
-      %27698 = OpLabel
-      %27700 = OpISub %uint %184313 %int_1
-      %27701 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %27700
-      %27702 = OpLoad %_arr_v2float_uint_2 %27701
-     %120431 = OpCompositeExtract %v2float %27702 0
-     %120432 = OpCompositeExtract %v2float %27702 1
-               OpBranch %27704
-      %27690 = OpLabel
-      %27692 = OpIAdd %uint %184363 %int_1
-      %27693 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %27694 = OpLoad %v2float %27693
-               OpBranch %27704
-      %27703 = OpLabel
-               OpUnreachable
-      %27704 = OpLabel
-     %262254 = OpPhi %uint %27692 %27690 %184363 %27698
-     %261016 = OpPhi %uint %184313 %27690 %27700 %27698
-     %184482 = OpPhi %v2float %27694 %27690 %120431 %27698
-     %184481 = OpPhi %v2float %27694 %27690 %120432 %27698
-      %19123 = OpLoad %uint %12053
-      %19124 = OpBitwiseAnd %uint %19123 %uint_16384
-      %19125 = OpUGreaterThan %bool %19124 %uint_0
-               OpSelectionMerge %27727 None
-               OpSwitch %uint_0 %27711
-      %27711 = OpLabel
-               OpSelectionMerge %27726 None
-               OpBranchConditional %19125 %27713 %27721
-      %27721 = OpLabel
-      %27723 = OpISub %uint %184292 %int_1
-      %27724 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27723
-      %27725 = OpLoad %_arr_float_uint_2 %27724
-     %120422 = OpCompositeExtract %float %27725 0
-     %120423 = OpCompositeExtract %float %27725 1
-               OpBranch %27727
-      %27713 = OpLabel
-      %27715 = OpIAdd %uint %184294 %int_1
-      %27716 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %27717 = OpLoad %float %27716
-               OpBranch %27727
-      %27726 = OpLabel
-               OpUnreachable
-      %27727 = OpLabel
-     %186755 = OpPhi %uint %27715 %27713 %184294 %27721
-     %186508 = OpPhi %uint %184292 %27713 %27723 %27721
-     %184487 = OpPhi %float %27717 %27713 %120422 %27721
-     %184486 = OpPhi %float %27717 %27713 %120423 %27721
-      %19131 = OpCompositeExtract %float %184482 0
-      %19132 = OpCompositeExtract %float %184482 1
-      %19133 = OpCompositeConstruct %v3float %19131 %19132 %184487
-      %19138 = OpCompositeExtract %float %184481 0
-      %19139 = OpCompositeExtract %float %184481 1
-      %19140 = OpCompositeConstruct %v3float %19138 %19139 %184486
-      %19141 = OpCompositeConstruct %_arr_v3float_uint_2 %19133 %19140
-      %27731 = OpIAdd %uint %184302 %int_1
-      %27733 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184302
-               OpStore %27733 %19141
-               OpBranch %20471
-      %19079 = OpLabel
-      %19082 = OpLoad %uint %12053
-      %19083 = OpBitwiseAnd %uint %19082 %uint_32768
-      %19084 = OpUGreaterThan %bool %19083 %uint_0
-               OpSelectionMerge %27630 None
-               OpSwitch %uint_0 %27614
-      %27614 = OpLabel
-               OpSelectionMerge %27629 None
-               OpBranchConditional %19084 %27616 %27624
-      %27624 = OpLabel
-      %27626 = OpISub %uint %184292 %int_1
-      %27627 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27626
-      %27628 = OpLoad %_arr_float_uint_2 %27627
-     %120458 = OpCompositeExtract %float %27628 0
-     %120459 = OpCompositeExtract %float %27628 1
-               OpBranch %27630
-      %27616 = OpLabel
-      %27618 = OpIAdd %uint %184294 %int_1
-      %27619 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %27620 = OpLoad %float %27619
-               OpBranch %27630
-      %27629 = OpLabel
-               OpUnreachable
-      %27630 = OpLabel
-     %184494 = OpPhi %uint %27618 %27616 %184294 %27624
-     %184493 = OpPhi %uint %184292 %27616 %27626 %27624
-     %184491 = OpPhi %float %27620 %27616 %120458 %27624
-     %184490 = OpPhi %float %27620 %27616 %120459 %27624
-      %19088 = OpLoad %uint %12053
-      %19089 = OpBitwiseAnd %uint %19088 %uint_16384
-      %19090 = OpUGreaterThan %bool %19089 %uint_0
-               OpSelectionMerge %27653 None
-               OpSwitch %uint_0 %27637
-      %27637 = OpLabel
-               OpSelectionMerge %27652 None
-               OpBranchConditional %19090 %27639 %27647
-      %27647 = OpLabel
-      %27649 = OpISub %uint %184493 %int_1
-      %27650 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27649
-      %27651 = OpLoad %_arr_float_uint_2 %27650
-     %120449 = OpCompositeExtract %float %27651 0
-     %120450 = OpCompositeExtract %float %27651 1
-               OpBranch %27653
-      %27639 = OpLabel
-      %27641 = OpIAdd %uint %184494 %int_1
-      %27642 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184494
-      %27643 = OpLoad %float %27642
-               OpBranch %27653
-      %27652 = OpLabel
-               OpUnreachable
-      %27653 = OpLabel
-     %184499 = OpPhi %uint %27641 %27639 %184494 %27647
-     %184498 = OpPhi %uint %184493 %27639 %27649 %27647
-     %184496 = OpPhi %float %27643 %27639 %120449 %27647
-     %184495 = OpPhi %float %27643 %27639 %120450 %27647
-      %19094 = OpLoad %uint %12053
-      %19095 = OpBitwiseAnd %uint %19094 %uint_8192
-      %19096 = OpUGreaterThan %bool %19095 %uint_0
-               OpSelectionMerge %27676 None
-               OpSwitch %uint_0 %27660
-      %27660 = OpLabel
-               OpSelectionMerge %27675 None
-               OpBranchConditional %19096 %27662 %27670
-      %27670 = OpLabel
-      %27672 = OpISub %uint %184498 %int_1
-      %27673 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27672
-      %27674 = OpLoad %_arr_float_uint_2 %27673
-     %120440 = OpCompositeExtract %float %27674 0
-     %120441 = OpCompositeExtract %float %27674 1
-               OpBranch %27676
-      %27662 = OpLabel
-      %27664 = OpIAdd %uint %184499 %int_1
-      %27665 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184499
-      %27666 = OpLoad %float %27665
-               OpBranch %27676
-      %27675 = OpLabel
-               OpUnreachable
-      %27676 = OpLabel
-     %186754 = OpPhi %uint %27664 %27662 %184499 %27670
-     %186507 = OpPhi %uint %184498 %27662 %27672 %27670
-     %184501 = OpPhi %float %27666 %27662 %120440 %27670
-     %184500 = OpPhi %float %27666 %27662 %120441 %27670
-      %19104 = OpCompositeConstruct %v3float %184491 %184496 %184501
-      %19111 = OpCompositeConstruct %v3float %184490 %184495 %184500
-      %19112 = OpCompositeConstruct %_arr_v3float_uint_2 %19104 %19111
-      %27680 = OpIAdd %uint %184302 %int_1
-      %27682 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184302
-               OpStore %27682 %19112
-               OpBranch %20471
-      %19054 = OpLabel
-      %19057 = OpLoad %uint %12053
-      %19058 = OpBitwiseAnd %uint %19057 %uint_32768
-      %19059 = OpUGreaterThan %bool %19058 %uint_0
-               OpSelectionMerge %27579 None
-               OpSwitch %uint_0 %27563
-      %27563 = OpLabel
-               OpSelectionMerge %27578 None
-               OpBranchConditional %19059 %27565 %27573
-      %27573 = OpLabel
-      %27575 = OpISub %uint %184292 %int_1
-      %27576 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27575
-      %27577 = OpLoad %_arr_float_uint_2 %27576
-     %120476 = OpCompositeExtract %float %27577 0
-     %120477 = OpCompositeExtract %float %27577 1
-               OpBranch %27579
-      %27565 = OpLabel
-      %27567 = OpIAdd %uint %184294 %int_1
-      %27568 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %27569 = OpLoad %float %27568
-               OpBranch %27579
-      %27578 = OpLabel
-               OpUnreachable
-      %27579 = OpLabel
-     %184509 = OpPhi %uint %27567 %27565 %184294 %27573
-     %184508 = OpPhi %uint %184292 %27565 %27575 %27573
-     %184506 = OpPhi %float %27569 %27565 %120476 %27573
-     %184505 = OpPhi %float %27569 %27565 %120477 %27573
-      %19063 = OpLoad %uint %12053
-      %19064 = OpBitwiseAnd %uint %19063 %uint_16384
-      %19065 = OpUGreaterThan %bool %19064 %uint_0
-               OpSelectionMerge %27602 None
-               OpSwitch %uint_0 %27586
-      %27586 = OpLabel
-               OpSelectionMerge %27601 None
-               OpBranchConditional %19065 %27588 %27596
-      %27596 = OpLabel
-      %27598 = OpISub %uint %184508 %int_1
-      %27599 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27598
-      %27600 = OpLoad %_arr_float_uint_2 %27599
-     %120467 = OpCompositeExtract %float %27600 0
-     %120468 = OpCompositeExtract %float %27600 1
-               OpBranch %27602
-      %27588 = OpLabel
-      %27590 = OpIAdd %uint %184509 %int_1
-      %27591 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184509
-      %27592 = OpLoad %float %27591
-               OpBranch %27602
-      %27601 = OpLabel
-               OpUnreachable
-      %27602 = OpLabel
-     %186753 = OpPhi %uint %27590 %27588 %184509 %27596
-     %186506 = OpPhi %uint %184508 %27588 %27598 %27596
-     %184511 = OpPhi %float %27592 %27588 %120467 %27596
-     %184510 = OpPhi %float %27592 %27588 %120468 %27596
-      %19071 = OpCompositeConstruct %v2float %184506 %184511
-      %19076 = OpCompositeConstruct %v2float %184505 %184510
-      %19077 = OpCompositeConstruct %_arr_v2float_uint_2 %19071 %19076
-      %27606 = OpIAdd %uint %184313 %int_1
-      %27608 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184313
-               OpStore %27608 %19077
-               OpBranch %20471
-      %18806 = OpLabel
-      %18809 = OpLoad %uint %12053
-      %18810 = OpBitwiseAnd %uint %18809 %uint_32768
-      %18811 = OpUGreaterThan %bool %18810 %uint_0
-               OpSelectionMerge %27551 None
-               OpSwitch %uint_0 %27535
-      %27535 = OpLabel
-               OpSelectionMerge %27550 None
-               OpBranchConditional %18811 %27537 %27545
-      %27545 = OpLabel
-      %27547 = OpISub %uint %184311 %int_1
-      %27548 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %27547
-      %27549 = OpLoad %_arr_v4float_uint_2 %27548
-     %120485 = OpCompositeExtract %v4float %27549 0
-     %120486 = OpCompositeExtract %v4float %27549 1
-               OpBranch %27551
-      %27537 = OpLabel
-      %27539 = OpIAdd %uint %184337 %int_1
-      %27540 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %27541 = OpLoad %v4float %27540
-               OpBranch %27551
-      %27550 = OpLabel
-               OpUnreachable
-      %27551 = OpLabel
-     %261305 = OpPhi %uint %27539 %27537 %184337 %27545
-     %184516 = OpPhi %uint %184311 %27537 %27547 %27545
-     %184515 = OpPhi %v4float %27541 %27537 %120485 %27545
-     %184514 = OpPhi %v4float %27541 %27537 %120486 %27545
-      %18815 = OpFOrdGreaterThan %v4bool %184514 %3375
-      %18818 = OpFOrdLessThan %v4bool %184515 %3375
-      %18819 = OpSelect %v4bool %18818 %18815 %3373
-      %18822 = OpExtInst %v4float %1 FAbs %184515
-      %18825 = OpExtInst %v4float %1 FAbs %184514
-      %18826 = OpExtInst %v4float %1 FMin %18822 %18825
-      %18828 = OpSelect %v4float %18819 %3375 %18826
-      %18835 = OpExtInst %v4float %1 FMax %18822 %18825
-      %18837 = OpCompositeExtract %float %184514 0
-      %18841 = OpCompositeExtract %float %18828 1
-      %18843 = OpCompositeExtract %float %18828 2
-      %18845 = OpCompositeExtract %float %18828 3
-      %18846 = OpCompositeConstruct %v4float %18837 %18841 %18843 %18845
-      %18847 = OpExtInst %float %1 Length %18846
-      %18848 = OpFDiv %float %18837 %18847
-      %18850 = OpCompositeExtract %float %184514 1
-      %18852 = OpCompositeExtract %float %18828 0
-      %18859 = OpCompositeConstruct %v4float %18852 %18850 %18843 %18845
-      %18860 = OpExtInst %float %1 Length %18859
-      %18861 = OpFDiv %float %18850 %18860
-      %18863 = OpCompositeExtract %float %184514 2
-      %18872 = OpCompositeConstruct %v4float %18852 %18841 %18863 %18845
-      %18873 = OpExtInst %float %1 Length %18872
-      %18874 = OpFDiv %float %18863 %18873
-      %18876 = OpCompositeExtract %float %184514 3
-      %18885 = OpCompositeConstruct %v4float %18852 %18841 %18843 %18876
-      %18886 = OpExtInst %float %1 Length %18885
-      %18887 = OpFDiv %float %18876 %18886
-      %18888 = OpCompositeConstruct %v4float %18848 %18861 %18874 %18887
-      %18894 = OpCompositeExtract %float %18835 1
-      %18896 = OpCompositeExtract %float %18835 2
-      %18898 = OpCompositeExtract %float %18835 3
-      %18899 = OpCompositeConstruct %v4float %18837 %18894 %18896 %18898
-      %18900 = OpExtInst %float %1 Length %18899
-      %18901 = OpFDiv %float %18837 %18900
-      %18905 = OpCompositeExtract %float %18835 0
-      %18912 = OpCompositeConstruct %v4float %18905 %18850 %18896 %18898
-      %18913 = OpExtInst %float %1 Length %18912
-      %18914 = OpFDiv %float %18850 %18913
-      %18925 = OpCompositeConstruct %v4float %18905 %18894 %18863 %18898
-      %18926 = OpExtInst %float %1 Length %18925
-      %18927 = OpFDiv %float %18863 %18926
-      %18938 = OpCompositeConstruct %v4float %18905 %18894 %18896 %18876
-      %18939 = OpExtInst %float %1 Length %18938
-      %18940 = OpFDiv %float %18876 %18939
-      %18941 = OpCompositeConstruct %v4float %18901 %18914 %18927 %18940
-      %18942 = OpExtInst %v4float %1 FMax %18888 %18941
-      %18944 = OpCompositeExtract %float %184515 0
-      %18953 = OpCompositeConstruct %v4float %18944 %18841 %18843 %18845
-      %18954 = OpExtInst %float %1 Length %18953
-      %18955 = OpFDiv %float %18944 %18954
-      %18957 = OpCompositeExtract %float %184515 1
-      %18966 = OpCompositeConstruct %v4float %18852 %18957 %18843 %18845
-      %18967 = OpExtInst %float %1 Length %18966
-      %18968 = OpFDiv %float %18957 %18967
-      %18970 = OpCompositeExtract %float %184515 2
-      %18979 = OpCompositeConstruct %v4float %18852 %18841 %18970 %18845
-      %18980 = OpExtInst %float %1 Length %18979
-      %18981 = OpFDiv %float %18970 %18980
-      %18983 = OpCompositeExtract %float %184515 3
-      %18992 = OpCompositeConstruct %v4float %18852 %18841 %18843 %18983
-      %18993 = OpExtInst %float %1 Length %18992
-      %18994 = OpFDiv %float %18983 %18993
-      %18995 = OpCompositeConstruct %v4float %18955 %18968 %18981 %18994
-      %19006 = OpCompositeConstruct %v4float %18944 %18894 %18896 %18898
-      %19007 = OpExtInst %float %1 Length %19006
-      %19008 = OpFDiv %float %18944 %19007
-      %19019 = OpCompositeConstruct %v4float %18905 %18957 %18896 %18898
-      %19020 = OpExtInst %float %1 Length %19019
-      %19021 = OpFDiv %float %18957 %19020
-      %19032 = OpCompositeConstruct %v4float %18905 %18894 %18970 %18898
-      %19033 = OpExtInst %float %1 Length %19032
-      %19034 = OpFDiv %float %18970 %19033
-      %19045 = OpCompositeConstruct %v4float %18905 %18894 %18896 %18983
-      %19046 = OpExtInst %float %1 Length %19045
-      %19047 = OpFDiv %float %18983 %19046
-      %19048 = OpCompositeConstruct %v4float %19008 %19021 %19034 %19047
-      %19049 = OpExtInst %v4float %1 FMin %18995 %19048
-      %19052 = OpCompositeConstruct %_arr_v4float_uint_2 %19049 %18942
-      %27555 = OpIAdd %uint %184516 %int_1
-      %27557 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184516
-               OpStore %27557 %19052
-               OpBranch %20471
-      %18634 = OpLabel
-      %18637 = OpLoad %uint %12053
-      %18638 = OpBitwiseAnd %uint %18637 %uint_32768
-      %18639 = OpUGreaterThan %bool %18638 %uint_0
-               OpSelectionMerge %27523 None
-               OpSwitch %uint_0 %27507
-      %27507 = OpLabel
-               OpSelectionMerge %27522 None
-               OpBranchConditional %18639 %27509 %27517
-      %27517 = OpLabel
-      %27519 = OpISub %uint %184302 %int_1
-      %27520 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %27519
-      %27521 = OpLoad %_arr_v3float_uint_2 %27520
-     %120494 = OpCompositeExtract %v3float %27521 0
-     %120495 = OpCompositeExtract %v3float %27521 1
-               OpBranch %27523
-      %27509 = OpLabel
-      %27511 = OpIAdd %uint %184305 %int_1
-      %27512 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %27513 = OpLoad %v3float %27512
-               OpBranch %27523
-      %27522 = OpLabel
-               OpUnreachable
-      %27523 = OpLabel
-     %260530 = OpPhi %uint %27511 %27509 %184305 %27517
-     %184519 = OpPhi %uint %184302 %27509 %27519 %27517
-     %184518 = OpPhi %v3float %27513 %27509 %120494 %27517
-     %184517 = OpPhi %v3float %27513 %27509 %120495 %27517
-      %18643 = OpFOrdGreaterThan %v3bool %184517 %123
-      %18646 = OpFOrdLessThan %v3bool %184518 %123
-      %18647 = OpSelect %v3bool %18646 %18643 %3323
-      %18650 = OpExtInst %v3float %1 FAbs %184518
-      %18653 = OpExtInst %v3float %1 FAbs %184517
-      %18654 = OpExtInst %v3float %1 FMin %18650 %18653
-      %18656 = OpSelect %v3float %18647 %123 %18654
-      %18663 = OpExtInst %v3float %1 FMax %18650 %18653
-      %18665 = OpCompositeExtract %float %184517 0
-      %18669 = OpCompositeExtract %float %18656 1
-      %18671 = OpCompositeExtract %float %18656 2
-      %18672 = OpCompositeConstruct %v3float %18665 %18669 %18671
-      %18673 = OpExtInst %float %1 Length %18672
-      %18674 = OpFDiv %float %18665 %18673
-      %18676 = OpCompositeExtract %float %184517 1
-      %18678 = OpCompositeExtract %float %18656 0
-      %18683 = OpCompositeConstruct %v3float %18678 %18676 %18671
-      %18684 = OpExtInst %float %1 Length %18683
-      %18685 = OpFDiv %float %18676 %18684
-      %18687 = OpCompositeExtract %float %184517 2
-      %18694 = OpCompositeConstruct %v3float %18678 %18669 %18687
-      %18695 = OpExtInst %float %1 Length %18694
-      %18696 = OpFDiv %float %18687 %18695
-      %18697 = OpCompositeConstruct %v3float %18674 %18685 %18696
-      %18703 = OpCompositeExtract %float %18663 1
-      %18705 = OpCompositeExtract %float %18663 2
-      %18706 = OpCompositeConstruct %v3float %18665 %18703 %18705
-      %18707 = OpExtInst %float %1 Length %18706
-      %18708 = OpFDiv %float %18665 %18707
-      %18712 = OpCompositeExtract %float %18663 0
-      %18717 = OpCompositeConstruct %v3float %18712 %18676 %18705
-      %18718 = OpExtInst %float %1 Length %18717
-      %18719 = OpFDiv %float %18676 %18718
-      %18728 = OpCompositeConstruct %v3float %18712 %18703 %18687
-      %18729 = OpExtInst %float %1 Length %18728
-      %18730 = OpFDiv %float %18687 %18729
-      %18731 = OpCompositeConstruct %v3float %18708 %18719 %18730
-      %18732 = OpExtInst %v3float %1 FMax %18697 %18731
-      %18734 = OpCompositeExtract %float %184518 0
-      %18741 = OpCompositeConstruct %v3float %18734 %18669 %18671
-      %18742 = OpExtInst %float %1 Length %18741
-      %18743 = OpFDiv %float %18734 %18742
-      %18745 = OpCompositeExtract %float %184518 1
-      %18752 = OpCompositeConstruct %v3float %18678 %18745 %18671
-      %18753 = OpExtInst %float %1 Length %18752
-      %18754 = OpFDiv %float %18745 %18753
-      %18756 = OpCompositeExtract %float %184518 2
-      %18763 = OpCompositeConstruct %v3float %18678 %18669 %18756
-      %18764 = OpExtInst %float %1 Length %18763
-      %18765 = OpFDiv %float %18756 %18764
-      %18766 = OpCompositeConstruct %v3float %18743 %18754 %18765
-      %18775 = OpCompositeConstruct %v3float %18734 %18703 %18705
-      %18776 = OpExtInst %float %1 Length %18775
-      %18777 = OpFDiv %float %18734 %18776
-      %18786 = OpCompositeConstruct %v3float %18712 %18745 %18705
-      %18787 = OpExtInst %float %1 Length %18786
-      %18788 = OpFDiv %float %18745 %18787
-      %18797 = OpCompositeConstruct %v3float %18712 %18703 %18756
-      %18798 = OpExtInst %float %1 Length %18797
-      %18799 = OpFDiv %float %18756 %18798
-      %18800 = OpCompositeConstruct %v3float %18777 %18788 %18799
-      %18801 = OpExtInst %v3float %1 FMin %18766 %18800
-      %18804 = OpCompositeConstruct %_arr_v3float_uint_2 %18801 %18732
-      %27527 = OpIAdd %uint %184519 %int_1
-      %27529 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184519
-               OpStore %27529 %18804
-               OpBranch %20471
-      %18522 = OpLabel
-      %18525 = OpLoad %uint %12053
-      %18526 = OpBitwiseAnd %uint %18525 %uint_32768
-      %18527 = OpUGreaterThan %bool %18526 %uint_0
-               OpSelectionMerge %27495 None
-               OpSwitch %uint_0 %27479
-      %27479 = OpLabel
-               OpSelectionMerge %27494 None
-               OpBranchConditional %18527 %27481 %27489
-      %27489 = OpLabel
-      %27491 = OpISub %uint %184313 %int_1
-      %27492 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %27491
-      %27493 = OpLoad %_arr_v2float_uint_2 %27492
-     %120503 = OpCompositeExtract %v2float %27493 0
-     %120504 = OpCompositeExtract %v2float %27493 1
-               OpBranch %27495
-      %27481 = OpLabel
-      %27483 = OpIAdd %uint %184363 %int_1
-      %27484 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %27485 = OpLoad %v2float %27484
-               OpBranch %27495
-      %27494 = OpLabel
-               OpUnreachable
-      %27495 = OpLabel
-     %262245 = OpPhi %uint %27483 %27481 %184363 %27489
-     %184522 = OpPhi %uint %184313 %27481 %27491 %27489
-     %184521 = OpPhi %v2float %27485 %27481 %120503 %27489
-     %184520 = OpPhi %v2float %27485 %27481 %120504 %27489
-      %18531 = OpFOrdGreaterThan %v2bool %184520 %3274
-      %18534 = OpFOrdLessThan %v2bool %184521 %3274
-      %18535 = OpSelect %v2bool %18534 %18531 %3272
-      %18538 = OpExtInst %v2float %1 FAbs %184521
-      %18541 = OpExtInst %v2float %1 FAbs %184520
-      %18542 = OpExtInst %v2float %1 FMin %18538 %18541
-      %18544 = OpSelect %v2float %18535 %3274 %18542
-      %18551 = OpExtInst %v2float %1 FMax %18538 %18541
-      %18553 = OpCompositeExtract %float %184520 0
-      %18557 = OpCompositeExtract %float %18544 1
-      %18558 = OpCompositeConstruct %v2float %18553 %18557
-      %18559 = OpExtInst %float %1 Length %18558
-      %18560 = OpFDiv %float %18553 %18559
-      %18562 = OpCompositeExtract %float %184520 1
-      %18564 = OpCompositeExtract %float %18544 0
-      %18567 = OpCompositeConstruct %v2float %18564 %18562
-      %18568 = OpExtInst %float %1 Length %18567
-      %18569 = OpFDiv %float %18562 %18568
-      %18570 = OpCompositeConstruct %v2float %18560 %18569
-      %18576 = OpCompositeExtract %float %18551 1
-      %18577 = OpCompositeConstruct %v2float %18553 %18576
-      %18578 = OpExtInst %float %1 Length %18577
-      %18579 = OpFDiv %float %18553 %18578
-      %18583 = OpCompositeExtract %float %18551 0
-      %18586 = OpCompositeConstruct %v2float %18583 %18562
-      %18587 = OpExtInst %float %1 Length %18586
-      %18588 = OpFDiv %float %18562 %18587
-      %18589 = OpCompositeConstruct %v2float %18579 %18588
-      %18590 = OpExtInst %v2float %1 FMax %18570 %18589
-      %18592 = OpCompositeExtract %float %184521 0
-      %18597 = OpCompositeConstruct %v2float %18592 %18557
-      %18598 = OpExtInst %float %1 Length %18597
-      %18599 = OpFDiv %float %18592 %18598
-      %18601 = OpCompositeExtract %float %184521 1
-      %18606 = OpCompositeConstruct %v2float %18564 %18601
-      %18607 = OpExtInst %float %1 Length %18606
-      %18608 = OpFDiv %float %18601 %18607
-      %18609 = OpCompositeConstruct %v2float %18599 %18608
-      %18616 = OpCompositeConstruct %v2float %18592 %18576
-      %18617 = OpExtInst %float %1 Length %18616
-      %18618 = OpFDiv %float %18592 %18617
-      %18625 = OpCompositeConstruct %v2float %18583 %18601
-      %18626 = OpExtInst %float %1 Length %18625
-      %18627 = OpFDiv %float %18601 %18626
-      %18628 = OpCompositeConstruct %v2float %18618 %18627
-      %18629 = OpExtInst %v2float %1 FMin %18609 %18628
-      %18632 = OpCompositeConstruct %_arr_v2float_uint_2 %18629 %18590
-      %27499 = OpIAdd %uint %184522 %int_1
-      %27501 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184522
-               OpStore %27501 %18632
-               OpBranch %20471
-      %18483 = OpLabel
-      %18486 = OpLoad %uint %12053
-      %18487 = OpBitwiseAnd %uint %18486 %uint_32768
-      %18488 = OpUGreaterThan %bool %18487 %uint_0
-               OpSelectionMerge %27421 None
-               OpSwitch %uint_0 %27405
-      %27405 = OpLabel
-               OpSelectionMerge %27420 None
-               OpBranchConditional %18488 %27407 %27415
-      %27415 = OpLabel
-      %27417 = OpISub %uint %184311 %int_1
-      %27418 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %27417
-      %27419 = OpLoad %_arr_v4float_uint_2 %27418
-     %120530 = OpCompositeExtract %v4float %27419 0
-     %120531 = OpCompositeExtract %v4float %27419 1
-               OpBranch %27421
-      %27407 = OpLabel
-      %27409 = OpIAdd %uint %184337 %int_1
-      %27410 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %27411 = OpLoad %v4float %27410
-               OpBranch %27421
-      %27420 = OpLabel
-               OpUnreachable
-      %27421 = OpLabel
-     %184527 = OpPhi %uint %27409 %27407 %184337 %27415
-     %184526 = OpPhi %uint %184311 %27407 %27417 %27415
-     %184524 = OpPhi %v4float %27411 %27407 %120530 %27415
-     %184523 = OpPhi %v4float %27411 %27407 %120531 %27415
-      %18492 = OpLoad %uint %12053
-      %18493 = OpBitwiseAnd %uint %18492 %uint_16384
-      %18494 = OpUGreaterThan %bool %18493 %uint_0
-               OpSelectionMerge %27444 None
-               OpSwitch %uint_0 %27428
-      %27428 = OpLabel
-               OpSelectionMerge %27443 None
-               OpBranchConditional %18494 %27430 %27438
-      %27438 = OpLabel
-      %27440 = OpISub %uint %184526 %int_1
-      %27441 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %27440
-      %27442 = OpLoad %_arr_v4float_uint_2 %27441
-     %120521 = OpCompositeExtract %v4float %27442 0
-     %120522 = OpCompositeExtract %v4float %27442 1
-               OpBranch %27444
-      %27430 = OpLabel
-      %27432 = OpIAdd %uint %184527 %int_1
-      %27433 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184527
-      %27434 = OpLoad %v4float %27433
-               OpBranch %27444
-      %27443 = OpLabel
-               OpUnreachable
-      %27444 = OpLabel
-     %261302 = OpPhi %uint %27432 %27430 %184527 %27438
-     %184542 = OpPhi %uint %184526 %27430 %27440 %27438
-     %184529 = OpPhi %v4float %27434 %27430 %120521 %27438
-     %184528 = OpPhi %v4float %27434 %27430 %120522 %27438
-      %18498 = OpLoad %uint %12053
-      %18499 = OpBitwiseAnd %uint %18498 %uint_8192
-      %18500 = OpUGreaterThan %bool %18499 %uint_0
-               OpSelectionMerge %27467 None
-               OpSwitch %uint_0 %27451
-      %27451 = OpLabel
-               OpSelectionMerge %27466 None
-               OpBranchConditional %18500 %27453 %27461
-      %27461 = OpLabel
-      %27463 = OpISub %uint %184292 %int_1
-      %27464 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27463
-      %27465 = OpLoad %_arr_float_uint_2 %27464
-     %120512 = OpCompositeExtract %float %27465 0
-     %120513 = OpCompositeExtract %float %27465 1
-               OpBranch %27467
-      %27453 = OpLabel
-      %27455 = OpIAdd %uint %184294 %int_1
-      %27456 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %27457 = OpLoad %float %27456
-               OpBranch %27467
-      %27466 = OpLabel
-               OpUnreachable
-      %27467 = OpLabel
-     %186749 = OpPhi %uint %27455 %27453 %184294 %27461
-     %186502 = OpPhi %uint %184292 %27453 %27463 %27461
-     %184536 = OpPhi %float %27457 %27453 %120512 %27461
-     %184535 = OpPhi %float %27457 %27453 %120513 %27461
-      %18508 = OpCompositeConstruct %v4float %184536 %184536 %184536 %184536
-      %18509 = OpExtInst %v4float %1 FMix %184524 %184529 %18508
-      %18517 = OpCompositeConstruct %v4float %184535 %184535 %184535 %184535
-      %18518 = OpExtInst %v4float %1 FMix %184523 %184528 %18517
-     %124606 = OpCompositeConstruct %_arr_v4float_uint_2 %18509 %18518
-      %27471 = OpIAdd %uint %184542 %int_1
-      %27473 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184542
-               OpStore %27473 %124606
-               OpBranch %20471
-      %18442 = OpLabel
-      %18445 = OpLoad %uint %12053
-      %18446 = OpBitwiseAnd %uint %18445 %uint_32768
-      %18447 = OpUGreaterThan %bool %18446 %uint_0
-               OpSelectionMerge %27347 None
-               OpSwitch %uint_0 %27331
-      %27331 = OpLabel
-               OpSelectionMerge %27346 None
-               OpBranchConditional %18447 %27333 %27341
-      %27341 = OpLabel
-      %27343 = OpISub %uint %184311 %int_1
-      %27344 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %27343
-      %27345 = OpLoad %_arr_v4float_uint_2 %27344
-     %120557 = OpCompositeExtract %v4float %27345 0
-     %120558 = OpCompositeExtract %v4float %27345 1
-               OpBranch %27347
-      %27333 = OpLabel
-      %27335 = OpIAdd %uint %184337 %int_1
-      %27336 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %27337 = OpLoad %v4float %27336
-               OpBranch %27347
-      %27346 = OpLabel
-               OpUnreachable
-      %27347 = OpLabel
-     %261300 = OpPhi %uint %27335 %27333 %184337 %27341
-     %184561 = OpPhi %uint %184311 %27333 %27343 %27341
-     %184544 = OpPhi %v4float %27337 %27333 %120557 %27341
-     %184543 = OpPhi %v4float %27337 %27333 %120558 %27341
-      %18451 = OpLoad %uint %12053
-      %18452 = OpBitwiseAnd %uint %18451 %uint_16384
-      %18453 = OpUGreaterThan %bool %18452 %uint_0
-               OpSelectionMerge %27370 None
-               OpSwitch %uint_0 %27354
-      %27354 = OpLabel
-               OpSelectionMerge %27369 None
-               OpBranchConditional %18453 %27356 %27364
-      %27364 = OpLabel
-      %27366 = OpISub %uint %184292 %int_1
-      %27367 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27366
-      %27368 = OpLoad %_arr_float_uint_2 %27367
-     %120548 = OpCompositeExtract %float %27368 0
-     %120549 = OpCompositeExtract %float %27368 1
-               OpBranch %27370
-      %27356 = OpLabel
-      %27358 = OpIAdd %uint %184294 %int_1
-      %27359 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %27360 = OpLoad %float %27359
-               OpBranch %27370
-      %27369 = OpLabel
-               OpUnreachable
-      %27370 = OpLabel
-     %184552 = OpPhi %uint %27358 %27356 %184294 %27364
-     %184551 = OpPhi %uint %184292 %27356 %27366 %27364
-     %184549 = OpPhi %float %27360 %27356 %120548 %27364
-     %184548 = OpPhi %float %27360 %27356 %120549 %27364
-      %18457 = OpLoad %uint %12053
-      %18458 = OpBitwiseAnd %uint %18457 %uint_8192
-      %18459 = OpUGreaterThan %bool %18458 %uint_0
-               OpSelectionMerge %27393 None
-               OpSwitch %uint_0 %27377
-      %27377 = OpLabel
-               OpSelectionMerge %27392 None
-               OpBranchConditional %18459 %27379 %27387
-      %27387 = OpLabel
-      %27389 = OpISub %uint %184551 %int_1
-      %27390 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27389
-      %27391 = OpLoad %_arr_float_uint_2 %27390
-     %120539 = OpCompositeExtract %float %27391 0
-     %120540 = OpCompositeExtract %float %27391 1
-               OpBranch %27393
-      %27379 = OpLabel
-      %27381 = OpIAdd %uint %184552 %int_1
-      %27382 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184552
-      %27383 = OpLoad %float %27382
-               OpBranch %27393
-      %27392 = OpLabel
-               OpUnreachable
-      %27393 = OpLabel
-     %186748 = OpPhi %uint %27381 %27379 %184552 %27387
-     %186501 = OpPhi %uint %184551 %27379 %27389 %27387
-     %184554 = OpPhi %float %27383 %27379 %120539 %27387
-     %184553 = OpPhi %float %27383 %27379 %120540 %27387
-      %18467 = OpCompositeConstruct %v4float %184549 %184549 %184549 %184549
-      %18468 = OpCompositeConstruct %v4float %184554 %184554 %184554 %184554
-      %18469 = OpExtInst %v4float %1 FClamp %184544 %18467 %18468
-      %18477 = OpCompositeConstruct %v4float %184548 %184548 %184548 %184548
-      %18478 = OpCompositeConstruct %v4float %184553 %184553 %184553 %184553
-      %18479 = OpExtInst %v4float %1 FClamp %184543 %18477 %18478
-     %124591 = OpCompositeConstruct %_arr_v4float_uint_2 %18469 %18479
-      %27397 = OpIAdd %uint %184561 %int_1
-      %27399 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184561
-               OpStore %27399 %124591
-               OpBranch %20471
-      %18405 = OpLabel
-      %18408 = OpLoad %uint %12053
-      %18409 = OpBitwiseAnd %uint %18408 %uint_32768
-      %18410 = OpUGreaterThan %bool %18409 %uint_0
-               OpSelectionMerge %27273 None
-               OpSwitch %uint_0 %27257
-      %27257 = OpLabel
-               OpSelectionMerge %27272 None
-               OpBranchConditional %18410 %27259 %27267
-      %27267 = OpLabel
-      %27269 = OpISub %uint %184311 %int_1
-      %27270 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %27269
-      %27271 = OpLoad %_arr_v4float_uint_2 %27270
-     %120584 = OpCompositeExtract %v4float %27271 0
-     %120585 = OpCompositeExtract %v4float %27271 1
-               OpBranch %27273
-      %27259 = OpLabel
-      %27261 = OpIAdd %uint %184337 %int_1
-      %27262 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %27263 = OpLoad %v4float %27262
-               OpBranch %27273
-      %27272 = OpLabel
-               OpUnreachable
-      %27273 = OpLabel
-     %184566 = OpPhi %uint %27261 %27259 %184337 %27267
-     %184565 = OpPhi %uint %184311 %27259 %27269 %27267
-     %184563 = OpPhi %v4float %27263 %27259 %120584 %27267
-     %184562 = OpPhi %v4float %27263 %27259 %120585 %27267
-      %18414 = OpLoad %uint %12053
-      %18415 = OpBitwiseAnd %uint %18414 %uint_16384
-      %18416 = OpUGreaterThan %bool %18415 %uint_0
-               OpSelectionMerge %27296 None
-               OpSwitch %uint_0 %27280
-      %27280 = OpLabel
-               OpSelectionMerge %27295 None
-               OpBranchConditional %18416 %27282 %27290
-      %27290 = OpLabel
-      %27292 = OpISub %uint %184565 %int_1
-      %27293 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %27292
-      %27294 = OpLoad %_arr_v4float_uint_2 %27293
-     %120575 = OpCompositeExtract %v4float %27294 0
-     %120576 = OpCompositeExtract %v4float %27294 1
-               OpBranch %27296
-      %27282 = OpLabel
-      %27284 = OpIAdd %uint %184566 %int_1
-      %27285 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184566
-      %27286 = OpLoad %v4float %27285
-               OpBranch %27296
-      %27295 = OpLabel
-               OpUnreachable
-      %27296 = OpLabel
-     %184571 = OpPhi %uint %27284 %27282 %184566 %27290
-     %184570 = OpPhi %uint %184565 %27282 %27292 %27290
-     %184568 = OpPhi %v4float %27286 %27282 %120575 %27290
-     %184567 = OpPhi %v4float %27286 %27282 %120576 %27290
-      %18420 = OpLoad %uint %12053
-      %18421 = OpBitwiseAnd %uint %18420 %uint_8192
-      %18422 = OpUGreaterThan %bool %18421 %uint_0
-               OpSelectionMerge %27319 None
-               OpSwitch %uint_0 %27303
-      %27303 = OpLabel
-               OpSelectionMerge %27318 None
-               OpBranchConditional %18422 %27305 %27313
-      %27313 = OpLabel
-      %27315 = OpISub %uint %184570 %int_1
-      %27316 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %27315
-      %27317 = OpLoad %_arr_v4float_uint_2 %27316
-     %120566 = OpCompositeExtract %v4float %27317 0
-     %120567 = OpCompositeExtract %v4float %27317 1
-               OpBranch %27319
-      %27305 = OpLabel
-      %27307 = OpIAdd %uint %184571 %int_1
-      %27308 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184571
-      %27309 = OpLoad %v4float %27308
-               OpBranch %27319
-      %27318 = OpLabel
-               OpUnreachable
-      %27319 = OpLabel
-     %261297 = OpPhi %uint %27307 %27305 %184571 %27313
-     %184578 = OpPhi %uint %184570 %27305 %27315 %27313
-     %184573 = OpPhi %v4float %27309 %27305 %120566 %27313
-     %184572 = OpPhi %v4float %27309 %27305 %120567 %27313
-      %18430 = OpExtInst %v4float %1 FMix %184563 %184568 %184573
-      %18438 = OpExtInst %v4float %1 FMix %184562 %184567 %184572
-     %124576 = OpCompositeConstruct %_arr_v4float_uint_2 %18430 %18438
-      %27323 = OpIAdd %uint %184578 %int_1
-      %27325 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184578
-               OpStore %27325 %124576
-               OpBranch %20471
-      %18368 = OpLabel
-      %18371 = OpLoad %uint %12053
-      %18372 = OpBitwiseAnd %uint %18371 %uint_32768
-      %18373 = OpUGreaterThan %bool %18372 %uint_0
-               OpSelectionMerge %27199 None
-               OpSwitch %uint_0 %27183
-      %27183 = OpLabel
-               OpSelectionMerge %27198 None
-               OpBranchConditional %18373 %27185 %27193
-      %27193 = OpLabel
-      %27195 = OpISub %uint %184311 %int_1
-      %27196 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %27195
-      %27197 = OpLoad %_arr_v4float_uint_2 %27196
-     %120611 = OpCompositeExtract %v4float %27197 0
-     %120612 = OpCompositeExtract %v4float %27197 1
-               OpBranch %27199
-      %27185 = OpLabel
-      %27187 = OpIAdd %uint %184337 %int_1
-      %27188 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %27189 = OpLoad %v4float %27188
-               OpBranch %27199
-      %27198 = OpLabel
-               OpUnreachable
-      %27199 = OpLabel
-     %184583 = OpPhi %uint %27187 %27185 %184337 %27193
-     %184582 = OpPhi %uint %184311 %27185 %27195 %27193
-     %184580 = OpPhi %v4float %27189 %27185 %120611 %27193
-     %184579 = OpPhi %v4float %27189 %27185 %120612 %27193
-      %18377 = OpLoad %uint %12053
-      %18378 = OpBitwiseAnd %uint %18377 %uint_16384
-      %18379 = OpUGreaterThan %bool %18378 %uint_0
-               OpSelectionMerge %27222 None
-               OpSwitch %uint_0 %27206
-      %27206 = OpLabel
-               OpSelectionMerge %27221 None
-               OpBranchConditional %18379 %27208 %27216
-      %27216 = OpLabel
-      %27218 = OpISub %uint %184582 %int_1
-      %27219 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %27218
-      %27220 = OpLoad %_arr_v4float_uint_2 %27219
-     %120602 = OpCompositeExtract %v4float %27220 0
-     %120603 = OpCompositeExtract %v4float %27220 1
-               OpBranch %27222
-      %27208 = OpLabel
-      %27210 = OpIAdd %uint %184583 %int_1
-      %27211 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184583
-      %27212 = OpLoad %v4float %27211
-               OpBranch %27222
-      %27221 = OpLabel
-               OpUnreachable
-      %27222 = OpLabel
-     %184588 = OpPhi %uint %27210 %27208 %184583 %27216
-     %184587 = OpPhi %uint %184582 %27208 %27218 %27216
-     %184585 = OpPhi %v4float %27212 %27208 %120602 %27216
-     %184584 = OpPhi %v4float %27212 %27208 %120603 %27216
-      %18383 = OpLoad %uint %12053
-      %18384 = OpBitwiseAnd %uint %18383 %uint_8192
-      %18385 = OpUGreaterThan %bool %18384 %uint_0
-               OpSelectionMerge %27245 None
-               OpSwitch %uint_0 %27229
-      %27229 = OpLabel
-               OpSelectionMerge %27244 None
-               OpBranchConditional %18385 %27231 %27239
-      %27239 = OpLabel
-      %27241 = OpISub %uint %184587 %int_1
-      %27242 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %27241
-      %27243 = OpLoad %_arr_v4float_uint_2 %27242
-     %120593 = OpCompositeExtract %v4float %27243 0
-     %120594 = OpCompositeExtract %v4float %27243 1
-               OpBranch %27245
-      %27231 = OpLabel
-      %27233 = OpIAdd %uint %184588 %int_1
-      %27234 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184588
-      %27235 = OpLoad %v4float %27234
-               OpBranch %27245
-      %27244 = OpLabel
-               OpUnreachable
-      %27245 = OpLabel
-     %261296 = OpPhi %uint %27233 %27231 %184588 %27239
-     %184595 = OpPhi %uint %184587 %27231 %27241 %27239
-     %184590 = OpPhi %v4float %27235 %27231 %120593 %27239
-     %184589 = OpPhi %v4float %27235 %27231 %120594 %27239
-      %18393 = OpExtInst %v4float %1 FClamp %184580 %184585 %184590
-      %18401 = OpExtInst %v4float %1 FClamp %184579 %184584 %184589
-     %124561 = OpCompositeConstruct %_arr_v4float_uint_2 %18393 %18401
-      %27249 = OpIAdd %uint %184595 %int_1
-      %27251 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184595
-               OpStore %27251 %124561
-               OpBranch %20471
-      %18329 = OpLabel
-      %18332 = OpLoad %uint %12053
-      %18333 = OpBitwiseAnd %uint %18332 %uint_32768
-      %18334 = OpUGreaterThan %bool %18333 %uint_0
-               OpSelectionMerge %27125 None
-               OpSwitch %uint_0 %27109
-      %27109 = OpLabel
-               OpSelectionMerge %27124 None
-               OpBranchConditional %18334 %27111 %27119
-      %27119 = OpLabel
-      %27121 = OpISub %uint %184302 %int_1
-      %27122 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %27121
-      %27123 = OpLoad %_arr_v3float_uint_2 %27122
-     %120638 = OpCompositeExtract %v3float %27123 0
-     %120639 = OpCompositeExtract %v3float %27123 1
-               OpBranch %27125
-      %27111 = OpLabel
-      %27113 = OpIAdd %uint %184305 %int_1
-      %27114 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %27115 = OpLoad %v3float %27114
-               OpBranch %27125
-      %27124 = OpLabel
-               OpUnreachable
-      %27125 = OpLabel
-     %184600 = OpPhi %uint %27113 %27111 %184305 %27119
-     %184599 = OpPhi %uint %184302 %27111 %27121 %27119
-     %184597 = OpPhi %v3float %27115 %27111 %120638 %27119
-     %184596 = OpPhi %v3float %27115 %27111 %120639 %27119
-      %18338 = OpLoad %uint %12053
-      %18339 = OpBitwiseAnd %uint %18338 %uint_16384
-      %18340 = OpUGreaterThan %bool %18339 %uint_0
-               OpSelectionMerge %27148 None
-               OpSwitch %uint_0 %27132
-      %27132 = OpLabel
-               OpSelectionMerge %27147 None
-               OpBranchConditional %18340 %27134 %27142
-      %27142 = OpLabel
-      %27144 = OpISub %uint %184599 %int_1
-      %27145 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %27144
-      %27146 = OpLoad %_arr_v3float_uint_2 %27145
-     %120629 = OpCompositeExtract %v3float %27146 0
-     %120630 = OpCompositeExtract %v3float %27146 1
-               OpBranch %27148
-      %27134 = OpLabel
-      %27136 = OpIAdd %uint %184600 %int_1
-      %27137 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184600
-      %27138 = OpLoad %v3float %27137
-               OpBranch %27148
-      %27147 = OpLabel
-               OpUnreachable
-      %27148 = OpLabel
-     %260516 = OpPhi %uint %27136 %27134 %184600 %27142
-     %184615 = OpPhi %uint %184599 %27134 %27144 %27142
-     %184602 = OpPhi %v3float %27138 %27134 %120629 %27142
-     %184601 = OpPhi %v3float %27138 %27134 %120630 %27142
-      %18344 = OpLoad %uint %12053
-      %18345 = OpBitwiseAnd %uint %18344 %uint_8192
-      %18346 = OpUGreaterThan %bool %18345 %uint_0
-               OpSelectionMerge %27171 None
-               OpSwitch %uint_0 %27155
-      %27155 = OpLabel
-               OpSelectionMerge %27170 None
-               OpBranchConditional %18346 %27157 %27165
-      %27165 = OpLabel
-      %27167 = OpISub %uint %184292 %int_1
-      %27168 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27167
-      %27169 = OpLoad %_arr_float_uint_2 %27168
-     %120620 = OpCompositeExtract %float %27169 0
-     %120621 = OpCompositeExtract %float %27169 1
-               OpBranch %27171
-      %27157 = OpLabel
-      %27159 = OpIAdd %uint %184294 %int_1
-      %27160 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %27161 = OpLoad %float %27160
-               OpBranch %27171
-      %27170 = OpLabel
-               OpUnreachable
-      %27171 = OpLabel
-     %186741 = OpPhi %uint %27159 %27157 %184294 %27165
-     %186494 = OpPhi %uint %184292 %27157 %27167 %27165
-     %184609 = OpPhi %float %27161 %27157 %120620 %27165
-     %184608 = OpPhi %float %27161 %27157 %120621 %27165
-      %18354 = OpCompositeConstruct %v3float %184609 %184609 %184609
-      %18355 = OpExtInst %v3float %1 FMix %184597 %184602 %18354
-      %18363 = OpCompositeConstruct %v3float %184608 %184608 %184608
-      %18364 = OpExtInst %v3float %1 FMix %184596 %184601 %18363
-     %124546 = OpCompositeConstruct %_arr_v3float_uint_2 %18355 %18364
-      %27175 = OpIAdd %uint %184615 %int_1
-      %27177 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184615
-               OpStore %27177 %124546
-               OpBranch %20471
-      %18288 = OpLabel
-      %18291 = OpLoad %uint %12053
-      %18292 = OpBitwiseAnd %uint %18291 %uint_32768
-      %18293 = OpUGreaterThan %bool %18292 %uint_0
-               OpSelectionMerge %27051 None
-               OpSwitch %uint_0 %27035
-      %27035 = OpLabel
-               OpSelectionMerge %27050 None
-               OpBranchConditional %18293 %27037 %27045
-      %27045 = OpLabel
-      %27047 = OpISub %uint %184302 %int_1
-      %27048 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %27047
-      %27049 = OpLoad %_arr_v3float_uint_2 %27048
-     %120665 = OpCompositeExtract %v3float %27049 0
-     %120666 = OpCompositeExtract %v3float %27049 1
-               OpBranch %27051
-      %27037 = OpLabel
-      %27039 = OpIAdd %uint %184305 %int_1
-      %27040 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %27041 = OpLoad %v3float %27040
-               OpBranch %27051
-      %27050 = OpLabel
-               OpUnreachable
-      %27051 = OpLabel
-     %260514 = OpPhi %uint %27039 %27037 %184305 %27045
-     %184634 = OpPhi %uint %184302 %27037 %27047 %27045
-     %184617 = OpPhi %v3float %27041 %27037 %120665 %27045
-     %184616 = OpPhi %v3float %27041 %27037 %120666 %27045
-      %18297 = OpLoad %uint %12053
-      %18298 = OpBitwiseAnd %uint %18297 %uint_16384
-      %18299 = OpUGreaterThan %bool %18298 %uint_0
-               OpSelectionMerge %27074 None
-               OpSwitch %uint_0 %27058
-      %27058 = OpLabel
-               OpSelectionMerge %27073 None
-               OpBranchConditional %18299 %27060 %27068
-      %27068 = OpLabel
-      %27070 = OpISub %uint %184292 %int_1
-      %27071 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27070
-      %27072 = OpLoad %_arr_float_uint_2 %27071
-     %120656 = OpCompositeExtract %float %27072 0
-     %120657 = OpCompositeExtract %float %27072 1
-               OpBranch %27074
-      %27060 = OpLabel
-      %27062 = OpIAdd %uint %184294 %int_1
-      %27063 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %27064 = OpLoad %float %27063
-               OpBranch %27074
-      %27073 = OpLabel
-               OpUnreachable
-      %27074 = OpLabel
-     %184625 = OpPhi %uint %27062 %27060 %184294 %27068
-     %184624 = OpPhi %uint %184292 %27060 %27070 %27068
-     %184622 = OpPhi %float %27064 %27060 %120656 %27068
-     %184621 = OpPhi %float %27064 %27060 %120657 %27068
-      %18303 = OpLoad %uint %12053
-      %18304 = OpBitwiseAnd %uint %18303 %uint_8192
-      %18305 = OpUGreaterThan %bool %18304 %uint_0
-               OpSelectionMerge %27097 None
-               OpSwitch %uint_0 %27081
-      %27081 = OpLabel
-               OpSelectionMerge %27096 None
-               OpBranchConditional %18305 %27083 %27091
-      %27091 = OpLabel
-      %27093 = OpISub %uint %184624 %int_1
-      %27094 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %27093
-      %27095 = OpLoad %_arr_float_uint_2 %27094
-     %120647 = OpCompositeExtract %float %27095 0
-     %120648 = OpCompositeExtract %float %27095 1
-               OpBranch %27097
-      %27083 = OpLabel
-      %27085 = OpIAdd %uint %184625 %int_1
-      %27086 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184625
-      %27087 = OpLoad %float %27086
-               OpBranch %27097
-      %27096 = OpLabel
-               OpUnreachable
-      %27097 = OpLabel
-     %186740 = OpPhi %uint %27085 %27083 %184625 %27091
-     %186493 = OpPhi %uint %184624 %27083 %27093 %27091
-     %184627 = OpPhi %float %27087 %27083 %120647 %27091
-     %184626 = OpPhi %float %27087 %27083 %120648 %27091
-      %18313 = OpCompositeConstruct %v3float %184622 %184622 %184622
-      %18314 = OpCompositeConstruct %v3float %184627 %184627 %184627
-      %18315 = OpExtInst %v3float %1 FClamp %184617 %18313 %18314
-      %18323 = OpCompositeConstruct %v3float %184621 %184621 %184621
-      %18324 = OpCompositeConstruct %v3float %184626 %184626 %184626
-      %18325 = OpExtInst %v3float %1 FClamp %184616 %18323 %18324
-     %124531 = OpCompositeConstruct %_arr_v3float_uint_2 %18315 %18325
-      %27101 = OpIAdd %uint %184634 %int_1
-      %27103 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184634
-               OpStore %27103 %124531
-               OpBranch %20471
-      %18251 = OpLabel
-      %18254 = OpLoad %uint %12053
-      %18255 = OpBitwiseAnd %uint %18254 %uint_32768
-      %18256 = OpUGreaterThan %bool %18255 %uint_0
-               OpSelectionMerge %26977 None
-               OpSwitch %uint_0 %26961
-      %26961 = OpLabel
-               OpSelectionMerge %26976 None
-               OpBranchConditional %18256 %26963 %26971
-      %26971 = OpLabel
-      %26973 = OpISub %uint %184302 %int_1
-      %26974 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %26973
-      %26975 = OpLoad %_arr_v3float_uint_2 %26974
-     %120692 = OpCompositeExtract %v3float %26975 0
-     %120693 = OpCompositeExtract %v3float %26975 1
-               OpBranch %26977
-      %26963 = OpLabel
-      %26965 = OpIAdd %uint %184305 %int_1
-      %26966 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %26967 = OpLoad %v3float %26966
-               OpBranch %26977
-      %26976 = OpLabel
-               OpUnreachable
-      %26977 = OpLabel
-     %184639 = OpPhi %uint %26965 %26963 %184305 %26971
-     %184638 = OpPhi %uint %184302 %26963 %26973 %26971
-     %184636 = OpPhi %v3float %26967 %26963 %120692 %26971
-     %184635 = OpPhi %v3float %26967 %26963 %120693 %26971
-      %18260 = OpLoad %uint %12053
-      %18261 = OpBitwiseAnd %uint %18260 %uint_16384
-      %18262 = OpUGreaterThan %bool %18261 %uint_0
-               OpSelectionMerge %27000 None
-               OpSwitch %uint_0 %26984
-      %26984 = OpLabel
-               OpSelectionMerge %26999 None
-               OpBranchConditional %18262 %26986 %26994
-      %26994 = OpLabel
-      %26996 = OpISub %uint %184638 %int_1
-      %26997 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %26996
-      %26998 = OpLoad %_arr_v3float_uint_2 %26997
-     %120683 = OpCompositeExtract %v3float %26998 0
-     %120684 = OpCompositeExtract %v3float %26998 1
-               OpBranch %27000
-      %26986 = OpLabel
-      %26988 = OpIAdd %uint %184639 %int_1
-      %26989 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184639
-      %26990 = OpLoad %v3float %26989
-               OpBranch %27000
-      %26999 = OpLabel
-               OpUnreachable
-      %27000 = OpLabel
-     %184644 = OpPhi %uint %26988 %26986 %184639 %26994
-     %184643 = OpPhi %uint %184638 %26986 %26996 %26994
-     %184641 = OpPhi %v3float %26990 %26986 %120683 %26994
-     %184640 = OpPhi %v3float %26990 %26986 %120684 %26994
-      %18266 = OpLoad %uint %12053
-      %18267 = OpBitwiseAnd %uint %18266 %uint_8192
-      %18268 = OpUGreaterThan %bool %18267 %uint_0
-               OpSelectionMerge %27023 None
-               OpSwitch %uint_0 %27007
-      %27007 = OpLabel
-               OpSelectionMerge %27022 None
-               OpBranchConditional %18268 %27009 %27017
-      %27017 = OpLabel
-      %27019 = OpISub %uint %184643 %int_1
-      %27020 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %27019
-      %27021 = OpLoad %_arr_v3float_uint_2 %27020
-     %120674 = OpCompositeExtract %v3float %27021 0
-     %120675 = OpCompositeExtract %v3float %27021 1
-               OpBranch %27023
-      %27009 = OpLabel
-      %27011 = OpIAdd %uint %184644 %int_1
-      %27012 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184644
-      %27013 = OpLoad %v3float %27012
-               OpBranch %27023
-      %27022 = OpLabel
-               OpUnreachable
-      %27023 = OpLabel
-     %260511 = OpPhi %uint %27011 %27009 %184644 %27017
-     %184651 = OpPhi %uint %184643 %27009 %27019 %27017
-     %184646 = OpPhi %v3float %27013 %27009 %120674 %27017
-     %184645 = OpPhi %v3float %27013 %27009 %120675 %27017
-      %18276 = OpExtInst %v3float %1 FMix %184636 %184641 %184646
-      %18284 = OpExtInst %v3float %1 FMix %184635 %184640 %184645
-     %124516 = OpCompositeConstruct %_arr_v3float_uint_2 %18276 %18284
-      %27027 = OpIAdd %uint %184651 %int_1
-      %27029 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184651
-               OpStore %27029 %124516
-               OpBranch %20471
-      %18214 = OpLabel
-      %18217 = OpLoad %uint %12053
-      %18218 = OpBitwiseAnd %uint %18217 %uint_32768
-      %18219 = OpUGreaterThan %bool %18218 %uint_0
-               OpSelectionMerge %26903 None
-               OpSwitch %uint_0 %26887
-      %26887 = OpLabel
-               OpSelectionMerge %26902 None
-               OpBranchConditional %18219 %26889 %26897
-      %26897 = OpLabel
-      %26899 = OpISub %uint %184302 %int_1
-      %26900 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %26899
-      %26901 = OpLoad %_arr_v3float_uint_2 %26900
-     %120719 = OpCompositeExtract %v3float %26901 0
-     %120720 = OpCompositeExtract %v3float %26901 1
-               OpBranch %26903
-      %26889 = OpLabel
-      %26891 = OpIAdd %uint %184305 %int_1
-      %26892 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %26893 = OpLoad %v3float %26892
-               OpBranch %26903
-      %26902 = OpLabel
-               OpUnreachable
-      %26903 = OpLabel
-     %184656 = OpPhi %uint %26891 %26889 %184305 %26897
-     %184655 = OpPhi %uint %184302 %26889 %26899 %26897
-     %184653 = OpPhi %v3float %26893 %26889 %120719 %26897
-     %184652 = OpPhi %v3float %26893 %26889 %120720 %26897
-      %18223 = OpLoad %uint %12053
-      %18224 = OpBitwiseAnd %uint %18223 %uint_16384
-      %18225 = OpUGreaterThan %bool %18224 %uint_0
-               OpSelectionMerge %26926 None
-               OpSwitch %uint_0 %26910
-      %26910 = OpLabel
-               OpSelectionMerge %26925 None
-               OpBranchConditional %18225 %26912 %26920
-      %26920 = OpLabel
-      %26922 = OpISub %uint %184655 %int_1
-      %26923 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %26922
-      %26924 = OpLoad %_arr_v3float_uint_2 %26923
-     %120710 = OpCompositeExtract %v3float %26924 0
-     %120711 = OpCompositeExtract %v3float %26924 1
-               OpBranch %26926
-      %26912 = OpLabel
-      %26914 = OpIAdd %uint %184656 %int_1
-      %26915 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184656
-      %26916 = OpLoad %v3float %26915
-               OpBranch %26926
-      %26925 = OpLabel
-               OpUnreachable
-      %26926 = OpLabel
-     %184661 = OpPhi %uint %26914 %26912 %184656 %26920
-     %184660 = OpPhi %uint %184655 %26912 %26922 %26920
-     %184658 = OpPhi %v3float %26916 %26912 %120710 %26920
-     %184657 = OpPhi %v3float %26916 %26912 %120711 %26920
-      %18229 = OpLoad %uint %12053
-      %18230 = OpBitwiseAnd %uint %18229 %uint_8192
-      %18231 = OpUGreaterThan %bool %18230 %uint_0
-               OpSelectionMerge %26949 None
-               OpSwitch %uint_0 %26933
-      %26933 = OpLabel
-               OpSelectionMerge %26948 None
-               OpBranchConditional %18231 %26935 %26943
-      %26943 = OpLabel
-      %26945 = OpISub %uint %184660 %int_1
-      %26946 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %26945
-      %26947 = OpLoad %_arr_v3float_uint_2 %26946
-     %120701 = OpCompositeExtract %v3float %26947 0
-     %120702 = OpCompositeExtract %v3float %26947 1
-               OpBranch %26949
-      %26935 = OpLabel
-      %26937 = OpIAdd %uint %184661 %int_1
-      %26938 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184661
-      %26939 = OpLoad %v3float %26938
-               OpBranch %26949
-      %26948 = OpLabel
-               OpUnreachable
-      %26949 = OpLabel
-     %260510 = OpPhi %uint %26937 %26935 %184661 %26943
-     %184668 = OpPhi %uint %184660 %26935 %26945 %26943
-     %184663 = OpPhi %v3float %26939 %26935 %120701 %26943
-     %184662 = OpPhi %v3float %26939 %26935 %120702 %26943
-      %18239 = OpExtInst %v3float %1 FClamp %184653 %184658 %184663
-      %18247 = OpExtInst %v3float %1 FClamp %184652 %184657 %184662
-     %124501 = OpCompositeConstruct %_arr_v3float_uint_2 %18239 %18247
-      %26953 = OpIAdd %uint %184668 %int_1
-      %26955 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184668
-               OpStore %26955 %124501
-               OpBranch %20471
-      %18175 = OpLabel
-      %18178 = OpLoad %uint %12053
-      %18179 = OpBitwiseAnd %uint %18178 %uint_32768
-      %18180 = OpUGreaterThan %bool %18179 %uint_0
-               OpSelectionMerge %26829 None
-               OpSwitch %uint_0 %26813
-      %26813 = OpLabel
-               OpSelectionMerge %26828 None
-               OpBranchConditional %18180 %26815 %26823
-      %26823 = OpLabel
-      %26825 = OpISub %uint %184313 %int_1
-      %26826 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %26825
-      %26827 = OpLoad %_arr_v2float_uint_2 %26826
-     %120746 = OpCompositeExtract %v2float %26827 0
-     %120747 = OpCompositeExtract %v2float %26827 1
-               OpBranch %26829
-      %26815 = OpLabel
-      %26817 = OpIAdd %uint %184363 %int_1
-      %26818 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %26819 = OpLoad %v2float %26818
-               OpBranch %26829
-      %26828 = OpLabel
-               OpUnreachable
-      %26829 = OpLabel
-     %184673 = OpPhi %uint %26817 %26815 %184363 %26823
-     %184672 = OpPhi %uint %184313 %26815 %26825 %26823
-     %184670 = OpPhi %v2float %26819 %26815 %120746 %26823
-     %184669 = OpPhi %v2float %26819 %26815 %120747 %26823
-      %18184 = OpLoad %uint %12053
-      %18185 = OpBitwiseAnd %uint %18184 %uint_16384
-      %18186 = OpUGreaterThan %bool %18185 %uint_0
-               OpSelectionMerge %26852 None
-               OpSwitch %uint_0 %26836
-      %26836 = OpLabel
-               OpSelectionMerge %26851 None
-               OpBranchConditional %18186 %26838 %26846
-      %26846 = OpLabel
-      %26848 = OpISub %uint %184672 %int_1
-      %26849 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %26848
-      %26850 = OpLoad %_arr_v2float_uint_2 %26849
-     %120737 = OpCompositeExtract %v2float %26850 0
-     %120738 = OpCompositeExtract %v2float %26850 1
-               OpBranch %26852
-      %26838 = OpLabel
-      %26840 = OpIAdd %uint %184673 %int_1
-      %26841 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184673
-      %26842 = OpLoad %v2float %26841
-               OpBranch %26852
-      %26851 = OpLabel
-               OpUnreachable
-      %26852 = OpLabel
-     %262220 = OpPhi %uint %26840 %26838 %184673 %26846
-     %184688 = OpPhi %uint %184672 %26838 %26848 %26846
-     %184675 = OpPhi %v2float %26842 %26838 %120737 %26846
-     %184674 = OpPhi %v2float %26842 %26838 %120738 %26846
-      %18190 = OpLoad %uint %12053
-      %18191 = OpBitwiseAnd %uint %18190 %uint_8192
-      %18192 = OpUGreaterThan %bool %18191 %uint_0
-               OpSelectionMerge %26875 None
-               OpSwitch %uint_0 %26859
-      %26859 = OpLabel
-               OpSelectionMerge %26874 None
-               OpBranchConditional %18192 %26861 %26869
-      %26869 = OpLabel
-      %26871 = OpISub %uint %184292 %int_1
-      %26872 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %26871
-      %26873 = OpLoad %_arr_float_uint_2 %26872
-     %120728 = OpCompositeExtract %float %26873 0
-     %120729 = OpCompositeExtract %float %26873 1
-               OpBranch %26875
-      %26861 = OpLabel
-      %26863 = OpIAdd %uint %184294 %int_1
-      %26864 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %26865 = OpLoad %float %26864
-               OpBranch %26875
-      %26874 = OpLabel
-               OpUnreachable
-      %26875 = OpLabel
-     %186733 = OpPhi %uint %26863 %26861 %184294 %26869
-     %186486 = OpPhi %uint %184292 %26861 %26871 %26869
-     %184682 = OpPhi %float %26865 %26861 %120728 %26869
-     %184681 = OpPhi %float %26865 %26861 %120729 %26869
-      %18200 = OpCompositeConstruct %v2float %184682 %184682
-      %18201 = OpExtInst %v2float %1 FMix %184670 %184675 %18200
-      %18209 = OpCompositeConstruct %v2float %184681 %184681
-      %18210 = OpExtInst %v2float %1 FMix %184669 %184674 %18209
-     %124486 = OpCompositeConstruct %_arr_v2float_uint_2 %18201 %18210
-      %26879 = OpIAdd %uint %184688 %int_1
-      %26881 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184688
-               OpStore %26881 %124486
-               OpBranch %20471
-      %18134 = OpLabel
-      %18137 = OpLoad %uint %12053
-      %18138 = OpBitwiseAnd %uint %18137 %uint_32768
-      %18139 = OpUGreaterThan %bool %18138 %uint_0
-               OpSelectionMerge %26755 None
-               OpSwitch %uint_0 %26739
-      %26739 = OpLabel
-               OpSelectionMerge %26754 None
-               OpBranchConditional %18139 %26741 %26749
-      %26749 = OpLabel
-      %26751 = OpISub %uint %184313 %int_1
-      %26752 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %26751
-      %26753 = OpLoad %_arr_v2float_uint_2 %26752
-     %120773 = OpCompositeExtract %v2float %26753 0
-     %120774 = OpCompositeExtract %v2float %26753 1
-               OpBranch %26755
-      %26741 = OpLabel
-      %26743 = OpIAdd %uint %184363 %int_1
-      %26744 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %26745 = OpLoad %v2float %26744
-               OpBranch %26755
-      %26754 = OpLabel
-               OpUnreachable
-      %26755 = OpLabel
-     %262218 = OpPhi %uint %26743 %26741 %184363 %26749
-     %184707 = OpPhi %uint %184313 %26741 %26751 %26749
-     %184690 = OpPhi %v2float %26745 %26741 %120773 %26749
-     %184689 = OpPhi %v2float %26745 %26741 %120774 %26749
-      %18143 = OpLoad %uint %12053
-      %18144 = OpBitwiseAnd %uint %18143 %uint_16384
-      %18145 = OpUGreaterThan %bool %18144 %uint_0
-               OpSelectionMerge %26778 None
-               OpSwitch %uint_0 %26762
-      %26762 = OpLabel
-               OpSelectionMerge %26777 None
-               OpBranchConditional %18145 %26764 %26772
-      %26772 = OpLabel
-      %26774 = OpISub %uint %184292 %int_1
-      %26775 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %26774
-      %26776 = OpLoad %_arr_float_uint_2 %26775
-     %120764 = OpCompositeExtract %float %26776 0
-     %120765 = OpCompositeExtract %float %26776 1
-               OpBranch %26778
-      %26764 = OpLabel
-      %26766 = OpIAdd %uint %184294 %int_1
-      %26767 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %26768 = OpLoad %float %26767
-               OpBranch %26778
-      %26777 = OpLabel
-               OpUnreachable
-      %26778 = OpLabel
-     %184698 = OpPhi %uint %26766 %26764 %184294 %26772
-     %184697 = OpPhi %uint %184292 %26764 %26774 %26772
-     %184695 = OpPhi %float %26768 %26764 %120764 %26772
-     %184694 = OpPhi %float %26768 %26764 %120765 %26772
-      %18149 = OpLoad %uint %12053
-      %18150 = OpBitwiseAnd %uint %18149 %uint_8192
-      %18151 = OpUGreaterThan %bool %18150 %uint_0
-               OpSelectionMerge %26801 None
-               OpSwitch %uint_0 %26785
-      %26785 = OpLabel
-               OpSelectionMerge %26800 None
-               OpBranchConditional %18151 %26787 %26795
-      %26795 = OpLabel
-      %26797 = OpISub %uint %184697 %int_1
-      %26798 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %26797
-      %26799 = OpLoad %_arr_float_uint_2 %26798
-     %120755 = OpCompositeExtract %float %26799 0
-     %120756 = OpCompositeExtract %float %26799 1
-               OpBranch %26801
-      %26787 = OpLabel
-      %26789 = OpIAdd %uint %184698 %int_1
-      %26790 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184698
-      %26791 = OpLoad %float %26790
-               OpBranch %26801
-      %26800 = OpLabel
-               OpUnreachable
-      %26801 = OpLabel
-     %186732 = OpPhi %uint %26789 %26787 %184698 %26795
-     %186485 = OpPhi %uint %184697 %26787 %26797 %26795
-     %184700 = OpPhi %float %26791 %26787 %120755 %26795
-     %184699 = OpPhi %float %26791 %26787 %120756 %26795
-      %18159 = OpCompositeConstruct %v2float %184695 %184695
-      %18160 = OpCompositeConstruct %v2float %184700 %184700
-      %18161 = OpExtInst %v2float %1 FClamp %184690 %18159 %18160
-      %18169 = OpCompositeConstruct %v2float %184694 %184694
-      %18170 = OpCompositeConstruct %v2float %184699 %184699
-      %18171 = OpExtInst %v2float %1 FClamp %184689 %18169 %18170
-     %124471 = OpCompositeConstruct %_arr_v2float_uint_2 %18161 %18171
-      %26805 = OpIAdd %uint %184707 %int_1
-      %26807 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184707
-               OpStore %26807 %124471
-               OpBranch %20471
-      %18097 = OpLabel
-      %18100 = OpLoad %uint %12053
-      %18101 = OpBitwiseAnd %uint %18100 %uint_32768
-      %18102 = OpUGreaterThan %bool %18101 %uint_0
-               OpSelectionMerge %26681 None
-               OpSwitch %uint_0 %26665
-      %26665 = OpLabel
-               OpSelectionMerge %26680 None
-               OpBranchConditional %18102 %26667 %26675
-      %26675 = OpLabel
-      %26677 = OpISub %uint %184313 %int_1
-      %26678 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %26677
-      %26679 = OpLoad %_arr_v2float_uint_2 %26678
-     %120800 = OpCompositeExtract %v2float %26679 0
-     %120801 = OpCompositeExtract %v2float %26679 1
-               OpBranch %26681
-      %26667 = OpLabel
-      %26669 = OpIAdd %uint %184363 %int_1
-      %26670 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %26671 = OpLoad %v2float %26670
-               OpBranch %26681
-      %26680 = OpLabel
-               OpUnreachable
-      %26681 = OpLabel
-     %184712 = OpPhi %uint %26669 %26667 %184363 %26675
-     %184711 = OpPhi %uint %184313 %26667 %26677 %26675
-     %184709 = OpPhi %v2float %26671 %26667 %120800 %26675
-     %184708 = OpPhi %v2float %26671 %26667 %120801 %26675
-      %18106 = OpLoad %uint %12053
-      %18107 = OpBitwiseAnd %uint %18106 %uint_16384
-      %18108 = OpUGreaterThan %bool %18107 %uint_0
-               OpSelectionMerge %26704 None
-               OpSwitch %uint_0 %26688
-      %26688 = OpLabel
-               OpSelectionMerge %26703 None
-               OpBranchConditional %18108 %26690 %26698
-      %26698 = OpLabel
-      %26700 = OpISub %uint %184711 %int_1
-      %26701 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %26700
-      %26702 = OpLoad %_arr_v2float_uint_2 %26701
-     %120791 = OpCompositeExtract %v2float %26702 0
-     %120792 = OpCompositeExtract %v2float %26702 1
-               OpBranch %26704
-      %26690 = OpLabel
-      %26692 = OpIAdd %uint %184712 %int_1
-      %26693 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184712
-      %26694 = OpLoad %v2float %26693
-               OpBranch %26704
-      %26703 = OpLabel
-               OpUnreachable
-      %26704 = OpLabel
-     %184717 = OpPhi %uint %26692 %26690 %184712 %26698
-     %184716 = OpPhi %uint %184711 %26690 %26700 %26698
-     %184714 = OpPhi %v2float %26694 %26690 %120791 %26698
-     %184713 = OpPhi %v2float %26694 %26690 %120792 %26698
-      %18112 = OpLoad %uint %12053
-      %18113 = OpBitwiseAnd %uint %18112 %uint_8192
-      %18114 = OpUGreaterThan %bool %18113 %uint_0
-               OpSelectionMerge %26727 None
-               OpSwitch %uint_0 %26711
-      %26711 = OpLabel
-               OpSelectionMerge %26726 None
-               OpBranchConditional %18114 %26713 %26721
-      %26721 = OpLabel
-      %26723 = OpISub %uint %184716 %int_1
-      %26724 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %26723
-      %26725 = OpLoad %_arr_v2float_uint_2 %26724
-     %120782 = OpCompositeExtract %v2float %26725 0
-     %120783 = OpCompositeExtract %v2float %26725 1
-               OpBranch %26727
-      %26713 = OpLabel
-      %26715 = OpIAdd %uint %184717 %int_1
-      %26716 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184717
-      %26717 = OpLoad %v2float %26716
-               OpBranch %26727
-      %26726 = OpLabel
-               OpUnreachable
-      %26727 = OpLabel
-     %262215 = OpPhi %uint %26715 %26713 %184717 %26721
-     %184724 = OpPhi %uint %184716 %26713 %26723 %26721
-     %184719 = OpPhi %v2float %26717 %26713 %120782 %26721
-     %184718 = OpPhi %v2float %26717 %26713 %120783 %26721
-      %18122 = OpExtInst %v2float %1 FMix %184709 %184714 %184719
-      %18130 = OpExtInst %v2float %1 FMix %184708 %184713 %184718
-     %124456 = OpCompositeConstruct %_arr_v2float_uint_2 %18122 %18130
-      %26731 = OpIAdd %uint %184724 %int_1
-      %26733 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184724
-               OpStore %26733 %124456
-               OpBranch %20471
-      %18060 = OpLabel
-      %18063 = OpLoad %uint %12053
-      %18064 = OpBitwiseAnd %uint %18063 %uint_32768
-      %18065 = OpUGreaterThan %bool %18064 %uint_0
-               OpSelectionMerge %26607 None
-               OpSwitch %uint_0 %26591
-      %26591 = OpLabel
-               OpSelectionMerge %26606 None
-               OpBranchConditional %18065 %26593 %26601
-      %26601 = OpLabel
-      %26603 = OpISub %uint %184313 %int_1
-      %26604 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %26603
-      %26605 = OpLoad %_arr_v2float_uint_2 %26604
-     %120827 = OpCompositeExtract %v2float %26605 0
-     %120828 = OpCompositeExtract %v2float %26605 1
-               OpBranch %26607
-      %26593 = OpLabel
-      %26595 = OpIAdd %uint %184363 %int_1
-      %26596 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %26597 = OpLoad %v2float %26596
-               OpBranch %26607
-      %26606 = OpLabel
-               OpUnreachable
-      %26607 = OpLabel
-     %184729 = OpPhi %uint %26595 %26593 %184363 %26601
-     %184728 = OpPhi %uint %184313 %26593 %26603 %26601
-     %184726 = OpPhi %v2float %26597 %26593 %120827 %26601
-     %184725 = OpPhi %v2float %26597 %26593 %120828 %26601
-      %18069 = OpLoad %uint %12053
-      %18070 = OpBitwiseAnd %uint %18069 %uint_16384
-      %18071 = OpUGreaterThan %bool %18070 %uint_0
-               OpSelectionMerge %26630 None
-               OpSwitch %uint_0 %26614
-      %26614 = OpLabel
-               OpSelectionMerge %26629 None
-               OpBranchConditional %18071 %26616 %26624
-      %26624 = OpLabel
-      %26626 = OpISub %uint %184728 %int_1
-      %26627 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %26626
-      %26628 = OpLoad %_arr_v2float_uint_2 %26627
-     %120818 = OpCompositeExtract %v2float %26628 0
-     %120819 = OpCompositeExtract %v2float %26628 1
-               OpBranch %26630
-      %26616 = OpLabel
-      %26618 = OpIAdd %uint %184729 %int_1
-      %26619 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184729
-      %26620 = OpLoad %v2float %26619
-               OpBranch %26630
-      %26629 = OpLabel
-               OpUnreachable
-      %26630 = OpLabel
-     %184734 = OpPhi %uint %26618 %26616 %184729 %26624
-     %184733 = OpPhi %uint %184728 %26616 %26626 %26624
-     %184731 = OpPhi %v2float %26620 %26616 %120818 %26624
-     %184730 = OpPhi %v2float %26620 %26616 %120819 %26624
-      %18075 = OpLoad %uint %12053
-      %18076 = OpBitwiseAnd %uint %18075 %uint_8192
-      %18077 = OpUGreaterThan %bool %18076 %uint_0
-               OpSelectionMerge %26653 None
-               OpSwitch %uint_0 %26637
-      %26637 = OpLabel
-               OpSelectionMerge %26652 None
-               OpBranchConditional %18077 %26639 %26647
-      %26647 = OpLabel
-      %26649 = OpISub %uint %184733 %int_1
-      %26650 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %26649
-      %26651 = OpLoad %_arr_v2float_uint_2 %26650
-     %120809 = OpCompositeExtract %v2float %26651 0
-     %120810 = OpCompositeExtract %v2float %26651 1
-               OpBranch %26653
-      %26639 = OpLabel
-      %26641 = OpIAdd %uint %184734 %int_1
-      %26642 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184734
-      %26643 = OpLoad %v2float %26642
-               OpBranch %26653
-      %26652 = OpLabel
-               OpUnreachable
-      %26653 = OpLabel
-     %262214 = OpPhi %uint %26641 %26639 %184734 %26647
-     %184741 = OpPhi %uint %184733 %26639 %26649 %26647
-     %184736 = OpPhi %v2float %26643 %26639 %120809 %26647
-     %184735 = OpPhi %v2float %26643 %26639 %120810 %26647
-      %18085 = OpExtInst %v2float %1 FClamp %184726 %184731 %184736
-      %18093 = OpExtInst %v2float %1 FClamp %184725 %184730 %184735
-     %124441 = OpCompositeConstruct %_arr_v2float_uint_2 %18085 %18093
-      %26657 = OpIAdd %uint %184741 %int_1
-      %26659 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %184741
-               OpStore %26659 %124441
-               OpBranch %20471
-      %18023 = OpLabel
-      %18026 = OpLoad %uint %12053
-      %18027 = OpBitwiseAnd %uint %18026 %uint_32768
-      %18028 = OpUGreaterThan %bool %18027 %uint_0
-               OpSelectionMerge %26533 None
-               OpSwitch %uint_0 %26517
-      %26517 = OpLabel
-               OpSelectionMerge %26532 None
-               OpBranchConditional %18028 %26519 %26527
-      %26527 = OpLabel
-      %26529 = OpISub %uint %184292 %int_1
-      %26530 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %26529
-      %26531 = OpLoad %_arr_float_uint_2 %26530
-     %120854 = OpCompositeExtract %float %26531 0
-     %120855 = OpCompositeExtract %float %26531 1
-               OpBranch %26533
-      %26519 = OpLabel
-      %26521 = OpIAdd %uint %184294 %int_1
-      %26522 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %26523 = OpLoad %float %26522
-               OpBranch %26533
-      %26532 = OpLabel
-               OpUnreachable
-      %26533 = OpLabel
-     %184746 = OpPhi %uint %26521 %26519 %184294 %26527
-     %184745 = OpPhi %uint %184292 %26519 %26529 %26527
-     %184743 = OpPhi %float %26523 %26519 %120854 %26527
-     %184742 = OpPhi %float %26523 %26519 %120855 %26527
-      %18032 = OpLoad %uint %12053
-      %18033 = OpBitwiseAnd %uint %18032 %uint_16384
-      %18034 = OpUGreaterThan %bool %18033 %uint_0
-               OpSelectionMerge %26556 None
-               OpSwitch %uint_0 %26540
-      %26540 = OpLabel
-               OpSelectionMerge %26555 None
-               OpBranchConditional %18034 %26542 %26550
-      %26550 = OpLabel
-      %26552 = OpISub %uint %184745 %int_1
-      %26553 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %26552
-      %26554 = OpLoad %_arr_float_uint_2 %26553
-     %120845 = OpCompositeExtract %float %26554 0
-     %120846 = OpCompositeExtract %float %26554 1
-               OpBranch %26556
-      %26542 = OpLabel
-      %26544 = OpIAdd %uint %184746 %int_1
-      %26545 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184746
-      %26546 = OpLoad %float %26545
-               OpBranch %26556
-      %26555 = OpLabel
-               OpUnreachable
-      %26556 = OpLabel
-     %184751 = OpPhi %uint %26544 %26542 %184746 %26550
-     %184750 = OpPhi %uint %184745 %26542 %26552 %26550
-     %184748 = OpPhi %float %26546 %26542 %120845 %26550
-     %184747 = OpPhi %float %26546 %26542 %120846 %26550
-      %18038 = OpLoad %uint %12053
-      %18039 = OpBitwiseAnd %uint %18038 %uint_8192
-      %18040 = OpUGreaterThan %bool %18039 %uint_0
-               OpSelectionMerge %26579 None
-               OpSwitch %uint_0 %26563
-      %26563 = OpLabel
-               OpSelectionMerge %26578 None
-               OpBranchConditional %18040 %26565 %26573
-      %26573 = OpLabel
-      %26575 = OpISub %uint %184750 %int_1
-      %26576 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %26575
-      %26577 = OpLoad %_arr_float_uint_2 %26576
-     %120836 = OpCompositeExtract %float %26577 0
-     %120837 = OpCompositeExtract %float %26577 1
-               OpBranch %26579
-      %26565 = OpLabel
-      %26567 = OpIAdd %uint %184751 %int_1
-      %26568 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184751
-      %26569 = OpLoad %float %26568
-               OpBranch %26579
-      %26578 = OpLabel
-               OpUnreachable
-      %26579 = OpLabel
-     %186725 = OpPhi %uint %26567 %26565 %184751 %26573
-     %184758 = OpPhi %uint %184750 %26565 %26575 %26573
-     %184753 = OpPhi %float %26569 %26565 %120836 %26573
-     %184752 = OpPhi %float %26569 %26565 %120837 %26573
-      %18048 = OpExtInst %float %1 FMix %184743 %184748 %184753
-      %18056 = OpExtInst %float %1 FMix %184742 %184747 %184752
-     %124426 = OpCompositeConstruct %_arr_float_uint_2 %18048 %18056
-      %26583 = OpIAdd %uint %184758 %int_1
-      %26585 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184758
-               OpStore %26585 %124426
-               OpBranch %20471
-      %17986 = OpLabel
-      %17989 = OpLoad %uint %12053
-      %17990 = OpBitwiseAnd %uint %17989 %uint_32768
-      %17991 = OpUGreaterThan %bool %17990 %uint_0
-               OpSelectionMerge %26459 None
-               OpSwitch %uint_0 %26443
-      %26443 = OpLabel
-               OpSelectionMerge %26458 None
-               OpBranchConditional %17991 %26445 %26453
-      %26453 = OpLabel
-      %26455 = OpISub %uint %184292 %int_1
-      %26456 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %26455
-      %26457 = OpLoad %_arr_float_uint_2 %26456
-     %120881 = OpCompositeExtract %float %26457 0
-     %120882 = OpCompositeExtract %float %26457 1
-               OpBranch %26459
-      %26445 = OpLabel
-      %26447 = OpIAdd %uint %184294 %int_1
-      %26448 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %26449 = OpLoad %float %26448
-               OpBranch %26459
-      %26458 = OpLabel
-               OpUnreachable
-      %26459 = OpLabel
-     %184763 = OpPhi %uint %26447 %26445 %184294 %26453
-     %184762 = OpPhi %uint %184292 %26445 %26455 %26453
-     %184760 = OpPhi %float %26449 %26445 %120881 %26453
-     %184759 = OpPhi %float %26449 %26445 %120882 %26453
-      %17995 = OpLoad %uint %12053
-      %17996 = OpBitwiseAnd %uint %17995 %uint_16384
-      %17997 = OpUGreaterThan %bool %17996 %uint_0
-               OpSelectionMerge %26482 None
-               OpSwitch %uint_0 %26466
-      %26466 = OpLabel
-               OpSelectionMerge %26481 None
-               OpBranchConditional %17997 %26468 %26476
-      %26476 = OpLabel
-      %26478 = OpISub %uint %184762 %int_1
-      %26479 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %26478
-      %26480 = OpLoad %_arr_float_uint_2 %26479
-     %120872 = OpCompositeExtract %float %26480 0
-     %120873 = OpCompositeExtract %float %26480 1
-               OpBranch %26482
-      %26468 = OpLabel
-      %26470 = OpIAdd %uint %184763 %int_1
-      %26471 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184763
-      %26472 = OpLoad %float %26471
-               OpBranch %26482
-      %26481 = OpLabel
-               OpUnreachable
-      %26482 = OpLabel
-     %184768 = OpPhi %uint %26470 %26468 %184763 %26476
-     %184767 = OpPhi %uint %184762 %26468 %26478 %26476
-     %184765 = OpPhi %float %26472 %26468 %120872 %26476
-     %184764 = OpPhi %float %26472 %26468 %120873 %26476
-      %18001 = OpLoad %uint %12053
-      %18002 = OpBitwiseAnd %uint %18001 %uint_8192
-      %18003 = OpUGreaterThan %bool %18002 %uint_0
-               OpSelectionMerge %26505 None
-               OpSwitch %uint_0 %26489
-      %26489 = OpLabel
-               OpSelectionMerge %26504 None
-               OpBranchConditional %18003 %26491 %26499
-      %26499 = OpLabel
-      %26501 = OpISub %uint %184767 %int_1
-      %26502 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %26501
-      %26503 = OpLoad %_arr_float_uint_2 %26502
-     %120863 = OpCompositeExtract %float %26503 0
-     %120864 = OpCompositeExtract %float %26503 1
-               OpBranch %26505
-      %26491 = OpLabel
-      %26493 = OpIAdd %uint %184768 %int_1
-      %26494 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184768
-      %26495 = OpLoad %float %26494
-               OpBranch %26505
-      %26504 = OpLabel
-               OpUnreachable
-      %26505 = OpLabel
-     %186724 = OpPhi %uint %26493 %26491 %184768 %26499
-     %184775 = OpPhi %uint %184767 %26491 %26501 %26499
-     %184770 = OpPhi %float %26495 %26491 %120863 %26499
-     %184769 = OpPhi %float %26495 %26491 %120864 %26499
-      %18011 = OpExtInst %float %1 FClamp %184760 %184765 %184770
-      %18019 = OpExtInst %float %1 FClamp %184759 %184764 %184769
-     %124411 = OpCompositeConstruct %_arr_float_uint_2 %18011 %18019
-      %26509 = OpIAdd %uint %184775 %int_1
-      %26511 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184775
-               OpStore %26511 %124411
-               OpBranch %20471
-      %17904 = OpLabel
-      %17907 = OpLoad %uint %12053
-      %17908 = OpBitwiseAnd %uint %17907 %uint_32768
-      %17909 = OpUGreaterThan %bool %17908 %uint_0
-               OpSelectionMerge %26385 None
-               OpSwitch %uint_0 %26369
-      %26369 = OpLabel
-               OpSelectionMerge %26384 None
-               OpBranchConditional %17909 %26371 %26379
-      %26379 = OpLabel
-      %26381 = OpISub %uint %184311 %int_1
-      %26382 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26381
-      %26383 = OpLoad %_arr_v4float_uint_2 %26382
-     %120908 = OpCompositeExtract %v4float %26383 0
-     %120909 = OpCompositeExtract %v4float %26383 1
-               OpBranch %26385
-      %26371 = OpLabel
-      %26373 = OpIAdd %uint %184337 %int_1
-      %26374 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %26375 = OpLoad %v4float %26374
-               OpBranch %26385
-      %26384 = OpLabel
-               OpUnreachable
-      %26385 = OpLabel
-     %184780 = OpPhi %uint %26373 %26371 %184337 %26379
-     %184779 = OpPhi %uint %184311 %26371 %26381 %26379
-     %184777 = OpPhi %v4float %26375 %26371 %120908 %26379
-     %184776 = OpPhi %v4float %26375 %26371 %120909 %26379
-      %17913 = OpLoad %uint %12053
-      %17914 = OpBitwiseAnd %uint %17913 %uint_16384
-      %17915 = OpUGreaterThan %bool %17914 %uint_0
-               OpSelectionMerge %26408 None
-               OpSwitch %uint_0 %26392
-      %26392 = OpLabel
-               OpSelectionMerge %26407 None
-               OpBranchConditional %17915 %26394 %26402
-      %26402 = OpLabel
-      %26404 = OpISub %uint %184779 %int_1
-      %26405 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26404
-      %26406 = OpLoad %_arr_v4float_uint_2 %26405
-     %120899 = OpCompositeExtract %v4float %26406 0
-     %120900 = OpCompositeExtract %v4float %26406 1
-               OpBranch %26408
-      %26394 = OpLabel
-      %26396 = OpIAdd %uint %184780 %int_1
-      %26397 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184780
-      %26398 = OpLoad %v4float %26397
-               OpBranch %26408
-      %26407 = OpLabel
-               OpUnreachable
-      %26408 = OpLabel
-     %184785 = OpPhi %uint %26396 %26394 %184780 %26402
-     %184784 = OpPhi %uint %184779 %26394 %26404 %26402
-     %184782 = OpPhi %v4float %26398 %26394 %120899 %26402
-     %184781 = OpPhi %v4float %26398 %26394 %120900 %26402
-      %17919 = OpLoad %uint %12053
-      %17920 = OpBitwiseAnd %uint %17919 %uint_8192
-      %17921 = OpUGreaterThan %bool %17920 %uint_0
-               OpSelectionMerge %26431 None
-               OpSwitch %uint_0 %26415
-      %26415 = OpLabel
-               OpSelectionMerge %26430 None
-               OpBranchConditional %17921 %26417 %26425
-      %26425 = OpLabel
-      %26427 = OpISub %uint %184784 %int_1
-      %26428 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26427
-      %26429 = OpLoad %_arr_v4float_uint_2 %26428
-     %120890 = OpCompositeExtract %v4float %26429 0
-     %120891 = OpCompositeExtract %v4float %26429 1
-               OpBranch %26431
-      %26417 = OpLabel
-      %26419 = OpIAdd %uint %184785 %int_1
-      %26420 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184785
-      %26421 = OpLoad %v4float %26420
-               OpBranch %26431
-      %26430 = OpLabel
-               OpUnreachable
-      %26431 = OpLabel
-     %261265 = OpPhi %uint %26419 %26417 %184785 %26425
-     %184794 = OpPhi %uint %184784 %26417 %26427 %26425
-     %184787 = OpPhi %v4float %26421 %26417 %120890 %26425
-     %184786 = OpPhi %v4float %26421 %26417 %120891 %26425
-      %17927 = OpFMul %v4float %184777 %184782
-      %17933 = OpFMul %v4float %184777 %184781
-      %17939 = OpFMul %v4float %184776 %184782
-      %17945 = OpFMul %v4float %184776 %184781
-      %17955 = OpExtInst %v4float %1 FMin %17939 %17945
-      %17956 = OpExtInst %v4float %1 FMin %17933 %17955
-      %17957 = OpExtInst %v4float %1 FMin %17927 %17956
-      %17967 = OpExtInst %v4float %1 FMax %17939 %17945
-      %17968 = OpExtInst %v4float %1 FMax %17933 %17967
-      %17969 = OpExtInst %v4float %1 FMax %17927 %17968
-      %17976 = OpFAdd %v4float %17957 %184787
-      %17982 = OpFAdd %v4float %17969 %184786
-     %124394 = OpCompositeConstruct %_arr_v4float_uint_2 %17976 %17982
-      %26435 = OpIAdd %uint %184794 %int_1
-      %26437 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184794
-               OpStore %26437 %124394
-               OpBranch %20471
-      %17877 = OpLabel
-      %17880 = OpLoad %uint %12053
-      %17881 = OpBitwiseAnd %uint %17880 %uint_32768
-      %17882 = OpUGreaterThan %bool %17881 %uint_0
-               OpSelectionMerge %26334 None
-               OpSwitch %uint_0 %26318
-      %26318 = OpLabel
-               OpSelectionMerge %26333 None
-               OpBranchConditional %17882 %26320 %26328
-      %26328 = OpLabel
-      %26330 = OpISub %uint %184311 %int_1
-      %26331 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26330
-      %26332 = OpLoad %_arr_v4float_uint_2 %26331
-     %120926 = OpCompositeExtract %v4float %26332 0
-     %120927 = OpCompositeExtract %v4float %26332 1
-               OpBranch %26334
-      %26320 = OpLabel
-      %26322 = OpIAdd %uint %184337 %int_1
-      %26323 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %26324 = OpLoad %v4float %26323
-               OpBranch %26334
-      %26333 = OpLabel
-               OpUnreachable
-      %26334 = OpLabel
-     %184799 = OpPhi %uint %26322 %26320 %184337 %26328
-     %184798 = OpPhi %uint %184311 %26320 %26330 %26328
-     %184796 = OpPhi %v4float %26324 %26320 %120926 %26328
-     %184795 = OpPhi %v4float %26324 %26320 %120927 %26328
-      %17886 = OpLoad %uint %12053
-      %17887 = OpBitwiseAnd %uint %17886 %uint_16384
-      %17888 = OpUGreaterThan %bool %17887 %uint_0
-               OpSelectionMerge %26357 None
-               OpSwitch %uint_0 %26341
-      %26341 = OpLabel
-               OpSelectionMerge %26356 None
-               OpBranchConditional %17888 %26343 %26351
-      %26351 = OpLabel
-      %26353 = OpISub %uint %184798 %int_1
-      %26354 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26353
-      %26355 = OpLoad %_arr_v4float_uint_2 %26354
-     %120917 = OpCompositeExtract %v4float %26355 0
-     %120918 = OpCompositeExtract %v4float %26355 1
-               OpBranch %26357
-      %26343 = OpLabel
-      %26345 = OpIAdd %uint %184799 %int_1
-      %26346 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184799
-      %26347 = OpLoad %v4float %26346
-               OpBranch %26357
-      %26356 = OpLabel
-               OpUnreachable
-      %26357 = OpLabel
-     %261264 = OpPhi %uint %26345 %26343 %184799 %26351
-     %184804 = OpPhi %uint %184798 %26343 %26353 %26351
-     %184801 = OpPhi %v4float %26347 %26343 %120917 %26351
-     %184800 = OpPhi %v4float %26347 %26343 %120918 %26351
-      %17894 = OpExtInst %v4float %1 FMax %184796 %184801
-      %17900 = OpExtInst %v4float %1 FMax %184795 %184800
-     %124383 = OpCompositeConstruct %_arr_v4float_uint_2 %17894 %17900
-      %26361 = OpIAdd %uint %184804 %int_1
-      %26363 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184804
-               OpStore %26363 %124383
-               OpBranch %20471
-      %17850 = OpLabel
-      %17853 = OpLoad %uint %12053
-      %17854 = OpBitwiseAnd %uint %17853 %uint_32768
-      %17855 = OpUGreaterThan %bool %17854 %uint_0
-               OpSelectionMerge %26283 None
-               OpSwitch %uint_0 %26267
-      %26267 = OpLabel
-               OpSelectionMerge %26282 None
-               OpBranchConditional %17855 %26269 %26277
-      %26277 = OpLabel
-      %26279 = OpISub %uint %184311 %int_1
-      %26280 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26279
-      %26281 = OpLoad %_arr_v4float_uint_2 %26280
-     %120944 = OpCompositeExtract %v4float %26281 0
-     %120945 = OpCompositeExtract %v4float %26281 1
-               OpBranch %26283
-      %26269 = OpLabel
-      %26271 = OpIAdd %uint %184337 %int_1
-      %26272 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %26273 = OpLoad %v4float %26272
-               OpBranch %26283
-      %26282 = OpLabel
-               OpUnreachable
-      %26283 = OpLabel
-     %184809 = OpPhi %uint %26271 %26269 %184337 %26277
-     %184808 = OpPhi %uint %184311 %26269 %26279 %26277
-     %184806 = OpPhi %v4float %26273 %26269 %120944 %26277
-     %184805 = OpPhi %v4float %26273 %26269 %120945 %26277
-      %17859 = OpLoad %uint %12053
-      %17860 = OpBitwiseAnd %uint %17859 %uint_16384
-      %17861 = OpUGreaterThan %bool %17860 %uint_0
-               OpSelectionMerge %26306 None
-               OpSwitch %uint_0 %26290
-      %26290 = OpLabel
-               OpSelectionMerge %26305 None
-               OpBranchConditional %17861 %26292 %26300
-      %26300 = OpLabel
-      %26302 = OpISub %uint %184808 %int_1
-      %26303 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26302
-      %26304 = OpLoad %_arr_v4float_uint_2 %26303
-     %120935 = OpCompositeExtract %v4float %26304 0
-     %120936 = OpCompositeExtract %v4float %26304 1
-               OpBranch %26306
-      %26292 = OpLabel
-      %26294 = OpIAdd %uint %184809 %int_1
-      %26295 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184809
-      %26296 = OpLoad %v4float %26295
-               OpBranch %26306
-      %26305 = OpLabel
-               OpUnreachable
-      %26306 = OpLabel
-     %261263 = OpPhi %uint %26294 %26292 %184809 %26300
-     %184814 = OpPhi %uint %184808 %26292 %26302 %26300
-     %184811 = OpPhi %v4float %26296 %26292 %120935 %26300
-     %184810 = OpPhi %v4float %26296 %26292 %120936 %26300
-      %17867 = OpExtInst %v4float %1 FMin %184806 %184811
-      %17873 = OpExtInst %v4float %1 FMin %184805 %184810
-     %124372 = OpCompositeConstruct %_arr_v4float_uint_2 %17867 %17873
-      %26310 = OpIAdd %uint %184814 %int_1
-      %26312 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184814
-               OpStore %26312 %124372
-               OpBranch %20471
-      %17821 = OpLabel
-      %17824 = OpLoad %uint %12053
-      %17825 = OpBitwiseAnd %uint %17824 %uint_32768
-      %17826 = OpUGreaterThan %bool %17825 %uint_0
-               OpSelectionMerge %26255 None
-               OpSwitch %uint_0 %26239
-      %26239 = OpLabel
-               OpSelectionMerge %26254 None
-               OpBranchConditional %17826 %26241 %26249
-      %26249 = OpLabel
-      %26251 = OpISub %uint %184311 %int_1
-      %26252 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26251
-      %26253 = OpLoad %_arr_v4float_uint_2 %26252
-     %120953 = OpCompositeExtract %v4float %26253 0
-     %120954 = OpCompositeExtract %v4float %26253 1
-               OpBranch %26255
-      %26241 = OpLabel
-      %26243 = OpIAdd %uint %184337 %int_1
-      %26244 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %26245 = OpLoad %v4float %26244
-               OpBranch %26255
-      %26254 = OpLabel
-               OpUnreachable
-      %26255 = OpLabel
-     %261262 = OpPhi %uint %26243 %26241 %184337 %26249
-     %184817 = OpPhi %uint %184311 %26241 %26251 %26249
-     %184816 = OpPhi %v4float %26245 %26241 %120953 %26249
-     %184815 = OpPhi %v4float %26245 %26241 %120954 %26249
-      %17830 = OpExtInst %v4float %1 Trunc %184816
-      %17834 = OpExtInst %v4float %1 Trunc %184815
-      %17840 = OpExtInst %v4float %1 FMin %17830 %17834
-      %17846 = OpExtInst %v4float %1 FMax %17830 %17834
-     %124363 = OpCompositeConstruct %_arr_v4float_uint_2 %17840 %17846
-      %26259 = OpIAdd %uint %184817 %int_1
-      %26261 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184817
-               OpStore %26261 %124363
-               OpBranch %20471
-      %17792 = OpLabel
-      %17795 = OpLoad %uint %12053
-      %17796 = OpBitwiseAnd %uint %17795 %uint_32768
-      %17797 = OpUGreaterThan %bool %17796 %uint_0
-               OpSelectionMerge %26227 None
-               OpSwitch %uint_0 %26211
-      %26211 = OpLabel
-               OpSelectionMerge %26226 None
-               OpBranchConditional %17797 %26213 %26221
-      %26221 = OpLabel
-      %26223 = OpISub %uint %184311 %int_1
-      %26224 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26223
-      %26225 = OpLoad %_arr_v4float_uint_2 %26224
-     %120962 = OpCompositeExtract %v4float %26225 0
-     %120963 = OpCompositeExtract %v4float %26225 1
-               OpBranch %26227
-      %26213 = OpLabel
-      %26215 = OpIAdd %uint %184337 %int_1
-      %26216 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %26217 = OpLoad %v4float %26216
-               OpBranch %26227
-      %26226 = OpLabel
-               OpUnreachable
-      %26227 = OpLabel
-     %261261 = OpPhi %uint %26215 %26213 %184337 %26221
-     %184820 = OpPhi %uint %184311 %26213 %26223 %26221
-     %184819 = OpPhi %v4float %26217 %26213 %120962 %26221
-     %184818 = OpPhi %v4float %26217 %26213 %120963 %26221
-      %17801 = OpExtInst %v4float %1 Round %184819
-      %17805 = OpExtInst %v4float %1 Round %184818
-      %17811 = OpExtInst %v4float %1 FMin %17801 %17805
-      %17817 = OpExtInst %v4float %1 FMax %17801 %17805
-     %124354 = OpCompositeConstruct %_arr_v4float_uint_2 %17811 %17817
-      %26231 = OpIAdd %uint %184820 %int_1
-      %26233 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184820
-               OpStore %26233 %124354
-               OpBranch %20471
-      %17763 = OpLabel
-      %17766 = OpLoad %uint %12053
-      %17767 = OpBitwiseAnd %uint %17766 %uint_32768
-      %17768 = OpUGreaterThan %bool %17767 %uint_0
-               OpSelectionMerge %26199 None
-               OpSwitch %uint_0 %26183
-      %26183 = OpLabel
-               OpSelectionMerge %26198 None
-               OpBranchConditional %17768 %26185 %26193
-      %26193 = OpLabel
-      %26195 = OpISub %uint %184311 %int_1
-      %26196 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26195
-      %26197 = OpLoad %_arr_v4float_uint_2 %26196
-     %120971 = OpCompositeExtract %v4float %26197 0
-     %120972 = OpCompositeExtract %v4float %26197 1
-               OpBranch %26199
-      %26185 = OpLabel
-      %26187 = OpIAdd %uint %184337 %int_1
-      %26188 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %26189 = OpLoad %v4float %26188
-               OpBranch %26199
-      %26198 = OpLabel
-               OpUnreachable
-      %26199 = OpLabel
-     %261260 = OpPhi %uint %26187 %26185 %184337 %26193
-     %184823 = OpPhi %uint %184311 %26185 %26195 %26193
-     %184822 = OpPhi %v4float %26189 %26185 %120971 %26193
-     %184821 = OpPhi %v4float %26189 %26185 %120972 %26193
-      %17772 = OpExtInst %v4float %1 Tanh %184822
-      %17776 = OpExtInst %v4float %1 Tanh %184821
-      %17782 = OpExtInst %v4float %1 FMin %17772 %17776
-      %17788 = OpExtInst %v4float %1 FMax %17772 %17776
-     %124345 = OpCompositeConstruct %_arr_v4float_uint_2 %17782 %17788
-      %26203 = OpIAdd %uint %184823 %int_1
-      %26205 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184823
-               OpStore %26205 %124345
-               OpBranch %20471
-      %17734 = OpLabel
-      %17737 = OpLoad %uint %12053
-      %17738 = OpBitwiseAnd %uint %17737 %uint_32768
-      %17739 = OpUGreaterThan %bool %17738 %uint_0
-               OpSelectionMerge %26171 None
-               OpSwitch %uint_0 %26155
-      %26155 = OpLabel
-               OpSelectionMerge %26170 None
-               OpBranchConditional %17739 %26157 %26165
-      %26165 = OpLabel
-      %26167 = OpISub %uint %184311 %int_1
-      %26168 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26167
-      %26169 = OpLoad %_arr_v4float_uint_2 %26168
-     %120980 = OpCompositeExtract %v4float %26169 0
-     %120981 = OpCompositeExtract %v4float %26169 1
-               OpBranch %26171
-      %26157 = OpLabel
-      %26159 = OpIAdd %uint %184337 %int_1
-      %26160 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %26161 = OpLoad %v4float %26160
-               OpBranch %26171
-      %26170 = OpLabel
-               OpUnreachable
-      %26171 = OpLabel
-     %261259 = OpPhi %uint %26159 %26157 %184337 %26165
-     %184826 = OpPhi %uint %184311 %26157 %26167 %26165
-     %184825 = OpPhi %v4float %26161 %26157 %120980 %26165
-     %184824 = OpPhi %v4float %26161 %26157 %120981 %26165
-      %17743 = OpExtInst %v4float %1 Sinh %184825
-      %17747 = OpExtInst %v4float %1 Sinh %184824
-      %17753 = OpExtInst %v4float %1 FMin %17743 %17747
-      %17759 = OpExtInst %v4float %1 FMax %17743 %17747
-     %124336 = OpCompositeConstruct %_arr_v4float_uint_2 %17753 %17759
-      %26175 = OpIAdd %uint %184826 %int_1
-      %26177 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184826
-               OpStore %26177 %124336
-               OpBranch %20471
-      %17705 = OpLabel
-      %17708 = OpLoad %uint %12053
-      %17709 = OpBitwiseAnd %uint %17708 %uint_32768
-      %17710 = OpUGreaterThan %bool %17709 %uint_0
-               OpSelectionMerge %26143 None
-               OpSwitch %uint_0 %26127
-      %26127 = OpLabel
-               OpSelectionMerge %26142 None
-               OpBranchConditional %17710 %26129 %26137
-      %26137 = OpLabel
-      %26139 = OpISub %uint %184311 %int_1
-      %26140 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26139
-      %26141 = OpLoad %_arr_v4float_uint_2 %26140
-     %120989 = OpCompositeExtract %v4float %26141 0
-     %120990 = OpCompositeExtract %v4float %26141 1
-               OpBranch %26143
-      %26129 = OpLabel
-      %26131 = OpIAdd %uint %184337 %int_1
-      %26132 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %26133 = OpLoad %v4float %26132
-               OpBranch %26143
-      %26142 = OpLabel
-               OpUnreachable
-      %26143 = OpLabel
-     %261258 = OpPhi %uint %26131 %26129 %184337 %26137
-     %184829 = OpPhi %uint %184311 %26129 %26139 %26137
-     %184828 = OpPhi %v4float %26133 %26129 %120989 %26137
-     %184827 = OpPhi %v4float %26133 %26129 %120990 %26137
-      %17714 = OpExtInst %v4float %1 Cosh %184828
-      %17718 = OpExtInst %v4float %1 Cosh %184827
-      %17724 = OpExtInst %v4float %1 FMin %17714 %17718
-      %17730 = OpExtInst %v4float %1 FMax %17714 %17718
-     %124327 = OpCompositeConstruct %_arr_v4float_uint_2 %17724 %17730
-      %26147 = OpIAdd %uint %184829 %int_1
-      %26149 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184829
-               OpStore %26149 %124327
-               OpBranch %20471
-      %17676 = OpLabel
-      %17679 = OpLoad %uint %12053
-      %17680 = OpBitwiseAnd %uint %17679 %uint_32768
-      %17681 = OpUGreaterThan %bool %17680 %uint_0
-               OpSelectionMerge %26115 None
-               OpSwitch %uint_0 %26099
-      %26099 = OpLabel
-               OpSelectionMerge %26114 None
-               OpBranchConditional %17681 %26101 %26109
-      %26109 = OpLabel
-      %26111 = OpISub %uint %184311 %int_1
-      %26112 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26111
-      %26113 = OpLoad %_arr_v4float_uint_2 %26112
-     %120998 = OpCompositeExtract %v4float %26113 0
-     %120999 = OpCompositeExtract %v4float %26113 1
-               OpBranch %26115
-      %26101 = OpLabel
-      %26103 = OpIAdd %uint %184337 %int_1
-      %26104 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %26105 = OpLoad %v4float %26104
-               OpBranch %26115
-      %26114 = OpLabel
-               OpUnreachable
-      %26115 = OpLabel
-     %261257 = OpPhi %uint %26103 %26101 %184337 %26109
-     %184832 = OpPhi %uint %184311 %26101 %26111 %26109
-     %184831 = OpPhi %v4float %26105 %26101 %120998 %26109
-     %184830 = OpPhi %v4float %26105 %26101 %120999 %26109
-      %17685 = OpExtInst %v4float %1 Atanh %184831
-      %17689 = OpExtInst %v4float %1 Atanh %184830
-      %17695 = OpExtInst %v4float %1 FMin %17685 %17689
-      %17701 = OpExtInst %v4float %1 FMax %17685 %17689
-     %124318 = OpCompositeConstruct %_arr_v4float_uint_2 %17695 %17701
-      %26119 = OpIAdd %uint %184832 %int_1
-      %26121 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184832
-               OpStore %26121 %124318
-               OpBranch %20471
-      %17647 = OpLabel
-      %17650 = OpLoad %uint %12053
-      %17651 = OpBitwiseAnd %uint %17650 %uint_32768
-      %17652 = OpUGreaterThan %bool %17651 %uint_0
-               OpSelectionMerge %26087 None
-               OpSwitch %uint_0 %26071
-      %26071 = OpLabel
-               OpSelectionMerge %26086 None
-               OpBranchConditional %17652 %26073 %26081
-      %26081 = OpLabel
-      %26083 = OpISub %uint %184311 %int_1
-      %26084 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26083
-      %26085 = OpLoad %_arr_v4float_uint_2 %26084
-     %121007 = OpCompositeExtract %v4float %26085 0
-     %121008 = OpCompositeExtract %v4float %26085 1
-               OpBranch %26087
-      %26073 = OpLabel
-      %26075 = OpIAdd %uint %184337 %int_1
-      %26076 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %26077 = OpLoad %v4float %26076
-               OpBranch %26087
-      %26086 = OpLabel
-               OpUnreachable
-      %26087 = OpLabel
-     %261256 = OpPhi %uint %26075 %26073 %184337 %26081
-     %184835 = OpPhi %uint %184311 %26073 %26083 %26081
-     %184834 = OpPhi %v4float %26077 %26073 %121007 %26081
-     %184833 = OpPhi %v4float %26077 %26073 %121008 %26081
-      %17656 = OpExtInst %v4float %1 Asinh %184834
-      %17660 = OpExtInst %v4float %1 Asinh %184833
-      %17666 = OpExtInst %v4float %1 FMin %17656 %17660
-      %17672 = OpExtInst %v4float %1 FMax %17656 %17660
-     %124309 = OpCompositeConstruct %_arr_v4float_uint_2 %17666 %17672
-      %26091 = OpIAdd %uint %184835 %int_1
-      %26093 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184835
-               OpStore %26093 %124309
-               OpBranch %20471
-      %17618 = OpLabel
-      %17621 = OpLoad %uint %12053
-      %17622 = OpBitwiseAnd %uint %17621 %uint_32768
-      %17623 = OpUGreaterThan %bool %17622 %uint_0
-               OpSelectionMerge %26059 None
-               OpSwitch %uint_0 %26043
-      %26043 = OpLabel
-               OpSelectionMerge %26058 None
-               OpBranchConditional %17623 %26045 %26053
-      %26053 = OpLabel
-      %26055 = OpISub %uint %184311 %int_1
-      %26056 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26055
-      %26057 = OpLoad %_arr_v4float_uint_2 %26056
-     %121016 = OpCompositeExtract %v4float %26057 0
-     %121017 = OpCompositeExtract %v4float %26057 1
-               OpBranch %26059
-      %26045 = OpLabel
-      %26047 = OpIAdd %uint %184337 %int_1
-      %26048 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %26049 = OpLoad %v4float %26048
-               OpBranch %26059
-      %26058 = OpLabel
-               OpUnreachable
-      %26059 = OpLabel
-     %261255 = OpPhi %uint %26047 %26045 %184337 %26053
-     %184838 = OpPhi %uint %184311 %26045 %26055 %26053
-     %184837 = OpPhi %v4float %26049 %26045 %121016 %26053
-     %184836 = OpPhi %v4float %26049 %26045 %121017 %26053
-      %17627 = OpExtInst %v4float %1 Acosh %184837
-      %17631 = OpExtInst %v4float %1 Acosh %184836
-      %17637 = OpExtInst %v4float %1 FMin %17627 %17631
-      %17643 = OpExtInst %v4float %1 FMax %17627 %17631
-     %124300 = OpCompositeConstruct %_arr_v4float_uint_2 %17637 %17643
-      %26063 = OpIAdd %uint %184838 %int_1
-      %26065 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184838
-               OpStore %26065 %124300
-               OpBranch %20471
-      %17589 = OpLabel
-      %17592 = OpLoad %uint %12053
-      %17593 = OpBitwiseAnd %uint %17592 %uint_32768
-      %17594 = OpUGreaterThan %bool %17593 %uint_0
-               OpSelectionMerge %26031 None
-               OpSwitch %uint_0 %26015
-      %26015 = OpLabel
-               OpSelectionMerge %26030 None
-               OpBranchConditional %17594 %26017 %26025
-      %26025 = OpLabel
-      %26027 = OpISub %uint %184311 %int_1
-      %26028 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %26027
-      %26029 = OpLoad %_arr_v4float_uint_2 %26028
-     %121025 = OpCompositeExtract %v4float %26029 0
-     %121026 = OpCompositeExtract %v4float %26029 1
-               OpBranch %26031
-      %26017 = OpLabel
-      %26019 = OpIAdd %uint %184337 %int_1
-      %26020 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %26021 = OpLoad %v4float %26020
-               OpBranch %26031
-      %26030 = OpLabel
-               OpUnreachable
-      %26031 = OpLabel
-     %261254 = OpPhi %uint %26019 %26017 %184337 %26025
-     %184841 = OpPhi %uint %184311 %26017 %26027 %26025
-     %184840 = OpPhi %v4float %26021 %26017 %121025 %26025
-     %184839 = OpPhi %v4float %26021 %26017 %121026 %26025
-      %17598 = OpExtInst %v4float %1 Atan %184840
-      %17602 = OpExtInst %v4float %1 Atan %184839
-      %17608 = OpExtInst %v4float %1 FMin %17598 %17602
-      %17614 = OpExtInst %v4float %1 FMax %17598 %17602
-     %124291 = OpCompositeConstruct %_arr_v4float_uint_2 %17608 %17614
-      %26035 = OpIAdd %uint %184841 %int_1
-      %26037 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184841
-               OpStore %26037 %124291
-               OpBranch %20471
-      %17560 = OpLabel
-      %17563 = OpLoad %uint %12053
-      %17564 = OpBitwiseAnd %uint %17563 %uint_32768
-      %17565 = OpUGreaterThan %bool %17564 %uint_0
-               OpSelectionMerge %26003 None
-               OpSwitch %uint_0 %25987
-      %25987 = OpLabel
-               OpSelectionMerge %26002 None
-               OpBranchConditional %17565 %25989 %25997
-      %25997 = OpLabel
-      %25999 = OpISub %uint %184311 %int_1
-      %26000 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25999
-      %26001 = OpLoad %_arr_v4float_uint_2 %26000
-     %121034 = OpCompositeExtract %v4float %26001 0
-     %121035 = OpCompositeExtract %v4float %26001 1
-               OpBranch %26003
-      %25989 = OpLabel
-      %25991 = OpIAdd %uint %184337 %int_1
-      %25992 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25993 = OpLoad %v4float %25992
-               OpBranch %26003
-      %26002 = OpLabel
-               OpUnreachable
-      %26003 = OpLabel
-     %261253 = OpPhi %uint %25991 %25989 %184337 %25997
-     %184844 = OpPhi %uint %184311 %25989 %25999 %25997
-     %184843 = OpPhi %v4float %25993 %25989 %121034 %25997
-     %184842 = OpPhi %v4float %25993 %25989 %121035 %25997
-      %17569 = OpExtInst %v4float %1 Acos %184843
-      %17573 = OpExtInst %v4float %1 Acos %184842
-      %17579 = OpExtInst %v4float %1 FMin %17569 %17573
-      %17585 = OpExtInst %v4float %1 FMax %17569 %17573
-     %124282 = OpCompositeConstruct %_arr_v4float_uint_2 %17579 %17585
-      %26007 = OpIAdd %uint %184844 %int_1
-      %26009 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184844
-               OpStore %26009 %124282
-               OpBranch %20471
-      %17531 = OpLabel
-      %17534 = OpLoad %uint %12053
-      %17535 = OpBitwiseAnd %uint %17534 %uint_32768
-      %17536 = OpUGreaterThan %bool %17535 %uint_0
-               OpSelectionMerge %25975 None
-               OpSwitch %uint_0 %25959
-      %25959 = OpLabel
-               OpSelectionMerge %25974 None
-               OpBranchConditional %17536 %25961 %25969
-      %25969 = OpLabel
-      %25971 = OpISub %uint %184311 %int_1
-      %25972 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25971
-      %25973 = OpLoad %_arr_v4float_uint_2 %25972
-     %121043 = OpCompositeExtract %v4float %25973 0
-     %121044 = OpCompositeExtract %v4float %25973 1
-               OpBranch %25975
-      %25961 = OpLabel
-      %25963 = OpIAdd %uint %184337 %int_1
-      %25964 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25965 = OpLoad %v4float %25964
-               OpBranch %25975
-      %25974 = OpLabel
-               OpUnreachable
-      %25975 = OpLabel
-     %261252 = OpPhi %uint %25963 %25961 %184337 %25969
-     %184847 = OpPhi %uint %184311 %25961 %25971 %25969
-     %184846 = OpPhi %v4float %25965 %25961 %121043 %25969
-     %184845 = OpPhi %v4float %25965 %25961 %121044 %25969
-      %17540 = OpExtInst %v4float %1 Asin %184846
-      %17544 = OpExtInst %v4float %1 Asin %184845
-      %17550 = OpExtInst %v4float %1 FMin %17540 %17544
-      %17556 = OpExtInst %v4float %1 FMax %17540 %17544
-     %124273 = OpCompositeConstruct %_arr_v4float_uint_2 %17550 %17556
-      %25979 = OpIAdd %uint %184847 %int_1
-      %25981 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184847
-               OpStore %25981 %124273
-               OpBranch %20471
-      %17502 = OpLabel
-      %17505 = OpLoad %uint %12053
-      %17506 = OpBitwiseAnd %uint %17505 %uint_32768
-      %17507 = OpUGreaterThan %bool %17506 %uint_0
-               OpSelectionMerge %25947 None
-               OpSwitch %uint_0 %25931
-      %25931 = OpLabel
-               OpSelectionMerge %25946 None
-               OpBranchConditional %17507 %25933 %25941
-      %25941 = OpLabel
-      %25943 = OpISub %uint %184311 %int_1
-      %25944 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25943
-      %25945 = OpLoad %_arr_v4float_uint_2 %25944
-     %121052 = OpCompositeExtract %v4float %25945 0
-     %121053 = OpCompositeExtract %v4float %25945 1
-               OpBranch %25947
-      %25933 = OpLabel
-      %25935 = OpIAdd %uint %184337 %int_1
-      %25936 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25937 = OpLoad %v4float %25936
-               OpBranch %25947
-      %25946 = OpLabel
-               OpUnreachable
-      %25947 = OpLabel
-     %261251 = OpPhi %uint %25935 %25933 %184337 %25941
-     %184850 = OpPhi %uint %184311 %25933 %25943 %25941
-     %184849 = OpPhi %v4float %25937 %25933 %121052 %25941
-     %184848 = OpPhi %v4float %25937 %25933 %121053 %25941
-      %17511 = OpExtInst %v4float %1 Tan %184849
-      %17515 = OpExtInst %v4float %1 Tan %184848
-      %17521 = OpExtInst %v4float %1 FMin %17511 %17515
-      %17527 = OpExtInst %v4float %1 FMax %17511 %17515
-     %124264 = OpCompositeConstruct %_arr_v4float_uint_2 %17521 %17527
-      %25951 = OpIAdd %uint %184850 %int_1
-      %25953 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184850
-               OpStore %25953 %124264
-               OpBranch %20471
-      %17473 = OpLabel
-      %17476 = OpLoad %uint %12053
-      %17477 = OpBitwiseAnd %uint %17476 %uint_32768
-      %17478 = OpUGreaterThan %bool %17477 %uint_0
-               OpSelectionMerge %25919 None
-               OpSwitch %uint_0 %25903
-      %25903 = OpLabel
-               OpSelectionMerge %25918 None
-               OpBranchConditional %17478 %25905 %25913
-      %25913 = OpLabel
-      %25915 = OpISub %uint %184311 %int_1
-      %25916 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25915
-      %25917 = OpLoad %_arr_v4float_uint_2 %25916
-     %121061 = OpCompositeExtract %v4float %25917 0
-     %121062 = OpCompositeExtract %v4float %25917 1
-               OpBranch %25919
-      %25905 = OpLabel
-      %25907 = OpIAdd %uint %184337 %int_1
-      %25908 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25909 = OpLoad %v4float %25908
-               OpBranch %25919
-      %25918 = OpLabel
-               OpUnreachable
-      %25919 = OpLabel
-     %261250 = OpPhi %uint %25907 %25905 %184337 %25913
-     %184853 = OpPhi %uint %184311 %25905 %25915 %25913
-     %184852 = OpPhi %v4float %25909 %25905 %121061 %25913
-     %184851 = OpPhi %v4float %25909 %25905 %121062 %25913
-      %17482 = OpExtInst %v4float %1 Cos %184852
-      %17486 = OpExtInst %v4float %1 Cos %184851
-      %17492 = OpExtInst %v4float %1 FMin %17482 %17486
-      %17498 = OpExtInst %v4float %1 FMax %17482 %17486
-     %124255 = OpCompositeConstruct %_arr_v4float_uint_2 %17492 %17498
-      %25923 = OpIAdd %uint %184853 %int_1
-      %25925 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184853
-               OpStore %25925 %124255
-               OpBranch %20471
-      %17444 = OpLabel
-      %17447 = OpLoad %uint %12053
-      %17448 = OpBitwiseAnd %uint %17447 %uint_32768
-      %17449 = OpUGreaterThan %bool %17448 %uint_0
-               OpSelectionMerge %25891 None
-               OpSwitch %uint_0 %25875
-      %25875 = OpLabel
-               OpSelectionMerge %25890 None
-               OpBranchConditional %17449 %25877 %25885
-      %25885 = OpLabel
-      %25887 = OpISub %uint %184311 %int_1
-      %25888 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25887
-      %25889 = OpLoad %_arr_v4float_uint_2 %25888
-     %121070 = OpCompositeExtract %v4float %25889 0
-     %121071 = OpCompositeExtract %v4float %25889 1
-               OpBranch %25891
-      %25877 = OpLabel
-      %25879 = OpIAdd %uint %184337 %int_1
-      %25880 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25881 = OpLoad %v4float %25880
-               OpBranch %25891
-      %25890 = OpLabel
-               OpUnreachable
-      %25891 = OpLabel
-     %261249 = OpPhi %uint %25879 %25877 %184337 %25885
-     %184856 = OpPhi %uint %184311 %25877 %25887 %25885
-     %184855 = OpPhi %v4float %25881 %25877 %121070 %25885
-     %184854 = OpPhi %v4float %25881 %25877 %121071 %25885
-      %17453 = OpExtInst %v4float %1 Sin %184855
-      %17457 = OpExtInst %v4float %1 Sin %184854
-      %17463 = OpExtInst %v4float %1 FMin %17453 %17457
-      %17469 = OpExtInst %v4float %1 FMax %17453 %17457
-     %124246 = OpCompositeConstruct %_arr_v4float_uint_2 %17463 %17469
-      %25895 = OpIAdd %uint %184856 %int_1
-      %25897 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184856
-               OpStore %25897 %124246
-               OpBranch %20471
-      %17415 = OpLabel
-      %17418 = OpLoad %uint %12053
-      %17419 = OpBitwiseAnd %uint %17418 %uint_32768
-      %17420 = OpUGreaterThan %bool %17419 %uint_0
-               OpSelectionMerge %25863 None
-               OpSwitch %uint_0 %25847
-      %25847 = OpLabel
-               OpSelectionMerge %25862 None
-               OpBranchConditional %17420 %25849 %25857
-      %25857 = OpLabel
-      %25859 = OpISub %uint %184311 %int_1
-      %25860 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25859
-      %25861 = OpLoad %_arr_v4float_uint_2 %25860
-     %121079 = OpCompositeExtract %v4float %25861 0
-     %121080 = OpCompositeExtract %v4float %25861 1
-               OpBranch %25863
-      %25849 = OpLabel
-      %25851 = OpIAdd %uint %184337 %int_1
-      %25852 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25853 = OpLoad %v4float %25852
-               OpBranch %25863
-      %25862 = OpLabel
-               OpUnreachable
-      %25863 = OpLabel
-     %261248 = OpPhi %uint %25851 %25849 %184337 %25857
-     %184859 = OpPhi %uint %184311 %25849 %25859 %25857
-     %184858 = OpPhi %v4float %25853 %25849 %121079 %25857
-     %184857 = OpPhi %v4float %25853 %25849 %121080 %25857
-      %17424 = OpExtInst %v4float %1 Log2 %184858
-      %17428 = OpExtInst %v4float %1 Log2 %184857
-      %17434 = OpExtInst %v4float %1 FMin %17424 %17428
-      %17440 = OpExtInst %v4float %1 FMax %17424 %17428
-     %124237 = OpCompositeConstruct %_arr_v4float_uint_2 %17434 %17440
-      %25867 = OpIAdd %uint %184859 %int_1
-      %25869 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184859
-               OpStore %25869 %124237
-               OpBranch %20471
-      %17386 = OpLabel
-      %17389 = OpLoad %uint %12053
-      %17390 = OpBitwiseAnd %uint %17389 %uint_32768
-      %17391 = OpUGreaterThan %bool %17390 %uint_0
-               OpSelectionMerge %25835 None
-               OpSwitch %uint_0 %25819
-      %25819 = OpLabel
-               OpSelectionMerge %25834 None
-               OpBranchConditional %17391 %25821 %25829
-      %25829 = OpLabel
-      %25831 = OpISub %uint %184311 %int_1
-      %25832 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25831
-      %25833 = OpLoad %_arr_v4float_uint_2 %25832
-     %121088 = OpCompositeExtract %v4float %25833 0
-     %121089 = OpCompositeExtract %v4float %25833 1
-               OpBranch %25835
-      %25821 = OpLabel
-      %25823 = OpIAdd %uint %184337 %int_1
-      %25824 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25825 = OpLoad %v4float %25824
-               OpBranch %25835
-      %25834 = OpLabel
-               OpUnreachable
-      %25835 = OpLabel
-     %261247 = OpPhi %uint %25823 %25821 %184337 %25829
-     %184862 = OpPhi %uint %184311 %25821 %25831 %25829
-     %184861 = OpPhi %v4float %25825 %25821 %121088 %25829
-     %184860 = OpPhi %v4float %25825 %25821 %121089 %25829
-      %17395 = OpExtInst %v4float %1 Log %184861
-      %17399 = OpExtInst %v4float %1 Log %184860
-      %17405 = OpExtInst %v4float %1 FMin %17395 %17399
-      %17411 = OpExtInst %v4float %1 FMax %17395 %17399
-     %124228 = OpCompositeConstruct %_arr_v4float_uint_2 %17405 %17411
-      %25839 = OpIAdd %uint %184862 %int_1
-      %25841 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184862
-               OpStore %25841 %124228
-               OpBranch %20471
-      %17357 = OpLabel
-      %17360 = OpLoad %uint %12053
-      %17361 = OpBitwiseAnd %uint %17360 %uint_32768
-      %17362 = OpUGreaterThan %bool %17361 %uint_0
-               OpSelectionMerge %25807 None
-               OpSwitch %uint_0 %25791
-      %25791 = OpLabel
-               OpSelectionMerge %25806 None
-               OpBranchConditional %17362 %25793 %25801
-      %25801 = OpLabel
-      %25803 = OpISub %uint %184311 %int_1
-      %25804 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25803
-      %25805 = OpLoad %_arr_v4float_uint_2 %25804
-     %121097 = OpCompositeExtract %v4float %25805 0
-     %121098 = OpCompositeExtract %v4float %25805 1
-               OpBranch %25807
-      %25793 = OpLabel
-      %25795 = OpIAdd %uint %184337 %int_1
-      %25796 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25797 = OpLoad %v4float %25796
-               OpBranch %25807
-      %25806 = OpLabel
-               OpUnreachable
-      %25807 = OpLabel
-     %261246 = OpPhi %uint %25795 %25793 %184337 %25801
-     %184865 = OpPhi %uint %184311 %25793 %25803 %25801
-     %184864 = OpPhi %v4float %25797 %25793 %121097 %25801
-     %184863 = OpPhi %v4float %25797 %25793 %121098 %25801
-      %17366 = OpExtInst %v4float %1 Exp2 %184864
-      %17370 = OpExtInst %v4float %1 Exp2 %184863
-      %17376 = OpExtInst %v4float %1 FMin %17366 %17370
-      %17382 = OpExtInst %v4float %1 FMax %17366 %17370
-     %124219 = OpCompositeConstruct %_arr_v4float_uint_2 %17376 %17382
-      %25811 = OpIAdd %uint %184865 %int_1
-      %25813 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184865
-               OpStore %25813 %124219
-               OpBranch %20471
-      %17328 = OpLabel
-      %17331 = OpLoad %uint %12053
-      %17332 = OpBitwiseAnd %uint %17331 %uint_32768
-      %17333 = OpUGreaterThan %bool %17332 %uint_0
-               OpSelectionMerge %25779 None
-               OpSwitch %uint_0 %25763
-      %25763 = OpLabel
-               OpSelectionMerge %25778 None
-               OpBranchConditional %17333 %25765 %25773
-      %25773 = OpLabel
-      %25775 = OpISub %uint %184311 %int_1
-      %25776 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25775
-      %25777 = OpLoad %_arr_v4float_uint_2 %25776
-     %121106 = OpCompositeExtract %v4float %25777 0
-     %121107 = OpCompositeExtract %v4float %25777 1
-               OpBranch %25779
-      %25765 = OpLabel
-      %25767 = OpIAdd %uint %184337 %int_1
-      %25768 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25769 = OpLoad %v4float %25768
-               OpBranch %25779
-      %25778 = OpLabel
-               OpUnreachable
-      %25779 = OpLabel
-     %261245 = OpPhi %uint %25767 %25765 %184337 %25773
-     %184868 = OpPhi %uint %184311 %25765 %25775 %25773
-     %184867 = OpPhi %v4float %25769 %25765 %121106 %25773
-     %184866 = OpPhi %v4float %25769 %25765 %121107 %25773
-      %17337 = OpExtInst %v4float %1 Exp %184867
-      %17341 = OpExtInst %v4float %1 Exp %184866
-      %17347 = OpExtInst %v4float %1 FMin %17337 %17341
-      %17353 = OpExtInst %v4float %1 FMax %17337 %17341
-     %124210 = OpCompositeConstruct %_arr_v4float_uint_2 %17347 %17353
-      %25783 = OpIAdd %uint %184868 %int_1
-      %25785 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184868
-               OpStore %25785 %124210
-               OpBranch %20471
-      %17299 = OpLabel
-      %17302 = OpLoad %uint %12053
-      %17303 = OpBitwiseAnd %uint %17302 %uint_32768
-      %17304 = OpUGreaterThan %bool %17303 %uint_0
-               OpSelectionMerge %25751 None
-               OpSwitch %uint_0 %25735
-      %25735 = OpLabel
-               OpSelectionMerge %25750 None
-               OpBranchConditional %17304 %25737 %25745
-      %25745 = OpLabel
-      %25747 = OpISub %uint %184311 %int_1
-      %25748 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25747
-      %25749 = OpLoad %_arr_v4float_uint_2 %25748
-     %121115 = OpCompositeExtract %v4float %25749 0
-     %121116 = OpCompositeExtract %v4float %25749 1
-               OpBranch %25751
-      %25737 = OpLabel
-      %25739 = OpIAdd %uint %184337 %int_1
-      %25740 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25741 = OpLoad %v4float %25740
-               OpBranch %25751
-      %25750 = OpLabel
-               OpUnreachable
-      %25751 = OpLabel
-     %261244 = OpPhi %uint %25739 %25737 %184337 %25745
-     %184871 = OpPhi %uint %184311 %25737 %25747 %25745
-     %184870 = OpPhi %v4float %25741 %25737 %121115 %25745
-     %184869 = OpPhi %v4float %25741 %25737 %121116 %25745
-      %17308 = OpExtInst %v4float %1 InverseSqrt %184870
-      %17312 = OpExtInst %v4float %1 InverseSqrt %184869
-      %17318 = OpExtInst %v4float %1 FMin %17308 %17312
-      %17324 = OpExtInst %v4float %1 FMax %17308 %17312
-     %124201 = OpCompositeConstruct %_arr_v4float_uint_2 %17318 %17324
-      %25755 = OpIAdd %uint %184871 %int_1
-      %25757 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184871
-               OpStore %25757 %124201
-               OpBranch %20471
-      %17270 = OpLabel
-      %17273 = OpLoad %uint %12053
-      %17274 = OpBitwiseAnd %uint %17273 %uint_32768
-      %17275 = OpUGreaterThan %bool %17274 %uint_0
-               OpSelectionMerge %25723 None
-               OpSwitch %uint_0 %25707
-      %25707 = OpLabel
-               OpSelectionMerge %25722 None
-               OpBranchConditional %17275 %25709 %25717
-      %25717 = OpLabel
-      %25719 = OpISub %uint %184311 %int_1
-      %25720 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25719
-      %25721 = OpLoad %_arr_v4float_uint_2 %25720
-     %121124 = OpCompositeExtract %v4float %25721 0
-     %121125 = OpCompositeExtract %v4float %25721 1
-               OpBranch %25723
-      %25709 = OpLabel
-      %25711 = OpIAdd %uint %184337 %int_1
-      %25712 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25713 = OpLoad %v4float %25712
-               OpBranch %25723
-      %25722 = OpLabel
-               OpUnreachable
-      %25723 = OpLabel
-     %261243 = OpPhi %uint %25711 %25709 %184337 %25717
-     %184874 = OpPhi %uint %184311 %25709 %25719 %25717
-     %184873 = OpPhi %v4float %25713 %25709 %121124 %25717
-     %184872 = OpPhi %v4float %25713 %25709 %121125 %25717
-      %17279 = OpExtInst %v4float %1 Sqrt %184873
-      %17283 = OpExtInst %v4float %1 Sqrt %184872
-      %17289 = OpExtInst %v4float %1 FMin %17279 %17283
-      %17295 = OpExtInst %v4float %1 FMax %17279 %17283
-     %124192 = OpCompositeConstruct %_arr_v4float_uint_2 %17289 %17295
-      %25727 = OpIAdd %uint %184874 %int_1
-      %25729 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184874
-               OpStore %25729 %124192
-               OpBranch %20471
-      %17241 = OpLabel
-      %17244 = OpLoad %uint %12053
-      %17245 = OpBitwiseAnd %uint %17244 %uint_32768
-      %17246 = OpUGreaterThan %bool %17245 %uint_0
-               OpSelectionMerge %25695 None
-               OpSwitch %uint_0 %25679
-      %25679 = OpLabel
-               OpSelectionMerge %25694 None
-               OpBranchConditional %17246 %25681 %25689
-      %25689 = OpLabel
-      %25691 = OpISub %uint %184311 %int_1
-      %25692 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25691
-      %25693 = OpLoad %_arr_v4float_uint_2 %25692
-     %121133 = OpCompositeExtract %v4float %25693 0
-     %121134 = OpCompositeExtract %v4float %25693 1
-               OpBranch %25695
-      %25681 = OpLabel
-      %25683 = OpIAdd %uint %184337 %int_1
-      %25684 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25685 = OpLoad %v4float %25684
-               OpBranch %25695
-      %25694 = OpLabel
-               OpUnreachable
-      %25695 = OpLabel
-     %261242 = OpPhi %uint %25683 %25681 %184337 %25689
-     %184877 = OpPhi %uint %184311 %25681 %25691 %25689
-     %184876 = OpPhi %v4float %25685 %25681 %121133 %25689
-     %184875 = OpPhi %v4float %25685 %25681 %121134 %25689
-      %17250 = OpExtInst %v4float %1 Fract %184876
-      %17254 = OpExtInst %v4float %1 Fract %184875
-      %17260 = OpExtInst %v4float %1 FMin %17250 %17254
-      %17266 = OpExtInst %v4float %1 FMax %17250 %17254
-     %124183 = OpCompositeConstruct %_arr_v4float_uint_2 %17260 %17266
-      %25699 = OpIAdd %uint %184877 %int_1
-      %25701 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184877
-               OpStore %25701 %124183
-               OpBranch %20471
-      %17212 = OpLabel
-      %17215 = OpLoad %uint %12053
-      %17216 = OpBitwiseAnd %uint %17215 %uint_32768
-      %17217 = OpUGreaterThan %bool %17216 %uint_0
-               OpSelectionMerge %25667 None
-               OpSwitch %uint_0 %25651
-      %25651 = OpLabel
-               OpSelectionMerge %25666 None
-               OpBranchConditional %17217 %25653 %25661
-      %25661 = OpLabel
-      %25663 = OpISub %uint %184311 %int_1
-      %25664 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25663
-      %25665 = OpLoad %_arr_v4float_uint_2 %25664
-     %121142 = OpCompositeExtract %v4float %25665 0
-     %121143 = OpCompositeExtract %v4float %25665 1
-               OpBranch %25667
-      %25653 = OpLabel
-      %25655 = OpIAdd %uint %184337 %int_1
-      %25656 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25657 = OpLoad %v4float %25656
-               OpBranch %25667
-      %25666 = OpLabel
-               OpUnreachable
-      %25667 = OpLabel
-     %261241 = OpPhi %uint %25655 %25653 %184337 %25661
-     %184880 = OpPhi %uint %184311 %25653 %25663 %25661
-     %184879 = OpPhi %v4float %25657 %25653 %121142 %25661
-     %184878 = OpPhi %v4float %25657 %25653 %121143 %25661
-      %17221 = OpExtInst %v4float %1 Ceil %184879
-      %17225 = OpExtInst %v4float %1 Ceil %184878
-      %17231 = OpExtInst %v4float %1 FMin %17221 %17225
-      %17237 = OpExtInst %v4float %1 FMax %17221 %17225
-     %124174 = OpCompositeConstruct %_arr_v4float_uint_2 %17231 %17237
-      %25671 = OpIAdd %uint %184880 %int_1
-      %25673 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184880
-               OpStore %25673 %124174
-               OpBranch %20471
-      %17183 = OpLabel
-      %17186 = OpLoad %uint %12053
-      %17187 = OpBitwiseAnd %uint %17186 %uint_32768
-      %17188 = OpUGreaterThan %bool %17187 %uint_0
-               OpSelectionMerge %25639 None
-               OpSwitch %uint_0 %25623
-      %25623 = OpLabel
-               OpSelectionMerge %25638 None
-               OpBranchConditional %17188 %25625 %25633
-      %25633 = OpLabel
-      %25635 = OpISub %uint %184311 %int_1
-      %25636 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25635
-      %25637 = OpLoad %_arr_v4float_uint_2 %25636
-     %121151 = OpCompositeExtract %v4float %25637 0
-     %121152 = OpCompositeExtract %v4float %25637 1
-               OpBranch %25639
-      %25625 = OpLabel
-      %25627 = OpIAdd %uint %184337 %int_1
-      %25628 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25629 = OpLoad %v4float %25628
-               OpBranch %25639
-      %25638 = OpLabel
-               OpUnreachable
-      %25639 = OpLabel
-     %261240 = OpPhi %uint %25627 %25625 %184337 %25633
-     %184883 = OpPhi %uint %184311 %25625 %25635 %25633
-     %184882 = OpPhi %v4float %25629 %25625 %121151 %25633
-     %184881 = OpPhi %v4float %25629 %25625 %121152 %25633
-      %17192 = OpExtInst %v4float %1 Floor %184882
-      %17196 = OpExtInst %v4float %1 Floor %184881
-      %17202 = OpExtInst %v4float %1 FMin %17192 %17196
-      %17208 = OpExtInst %v4float %1 FMax %17192 %17196
-     %124165 = OpCompositeConstruct %_arr_v4float_uint_2 %17202 %17208
-      %25643 = OpIAdd %uint %184883 %int_1
-      %25645 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184883
-               OpStore %25645 %124165
-               OpBranch %20471
-      %17154 = OpLabel
-      %17157 = OpLoad %uint %12053
-      %17158 = OpBitwiseAnd %uint %17157 %uint_32768
-      %17159 = OpUGreaterThan %bool %17158 %uint_0
-               OpSelectionMerge %25611 None
-               OpSwitch %uint_0 %25595
-      %25595 = OpLabel
-               OpSelectionMerge %25610 None
-               OpBranchConditional %17159 %25597 %25605
-      %25605 = OpLabel
-      %25607 = OpISub %uint %184311 %int_1
-      %25608 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25607
-      %25609 = OpLoad %_arr_v4float_uint_2 %25608
-     %121160 = OpCompositeExtract %v4float %25609 0
-     %121161 = OpCompositeExtract %v4float %25609 1
-               OpBranch %25611
-      %25597 = OpLabel
-      %25599 = OpIAdd %uint %184337 %int_1
-      %25600 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25601 = OpLoad %v4float %25600
-               OpBranch %25611
-      %25610 = OpLabel
-               OpUnreachable
-      %25611 = OpLabel
-     %261239 = OpPhi %uint %25599 %25597 %184337 %25605
-     %184886 = OpPhi %uint %184311 %25597 %25607 %25605
-     %184885 = OpPhi %v4float %25601 %25597 %121160 %25605
-     %184884 = OpPhi %v4float %25601 %25597 %121161 %25605
-      %17163 = OpExtInst %v4float %1 FSign %184885
-      %17167 = OpExtInst %v4float %1 FSign %184884
-      %17173 = OpExtInst %v4float %1 FMin %17163 %17167
-      %17179 = OpExtInst %v4float %1 FMax %17163 %17167
-     %124156 = OpCompositeConstruct %_arr_v4float_uint_2 %17173 %17179
-      %25615 = OpIAdd %uint %184886 %int_1
-      %25617 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184886
-               OpStore %25617 %124156
-               OpBranch %20471
-      %17125 = OpLabel
-      %17128 = OpLoad %uint %12053
-      %17129 = OpBitwiseAnd %uint %17128 %uint_32768
-      %17130 = OpUGreaterThan %bool %17129 %uint_0
-               OpSelectionMerge %25583 None
-               OpSwitch %uint_0 %25567
-      %25567 = OpLabel
-               OpSelectionMerge %25582 None
-               OpBranchConditional %17130 %25569 %25577
-      %25577 = OpLabel
-      %25579 = OpISub %uint %184311 %int_1
-      %25580 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %25579
-      %25581 = OpLoad %_arr_v4float_uint_2 %25580
-     %121169 = OpCompositeExtract %v4float %25581 0
-     %121170 = OpCompositeExtract %v4float %25581 1
-               OpBranch %25583
-      %25569 = OpLabel
-      %25571 = OpIAdd %uint %184337 %int_1
-      %25572 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %25573 = OpLoad %v4float %25572
-               OpBranch %25583
-      %25582 = OpLabel
-               OpUnreachable
-      %25583 = OpLabel
-     %261238 = OpPhi %uint %25571 %25569 %184337 %25577
-     %184889 = OpPhi %uint %184311 %25569 %25579 %25577
-     %184888 = OpPhi %v4float %25573 %25569 %121169 %25577
-     %184887 = OpPhi %v4float %25573 %25569 %121170 %25577
-      %17134 = OpExtInst %v4float %1 FAbs %184888
-      %17138 = OpExtInst %v4float %1 FAbs %184887
-      %17144 = OpExtInst %v4float %1 FMin %17134 %17138
-      %17150 = OpExtInst %v4float %1 FMax %17134 %17138
-     %124147 = OpCompositeConstruct %_arr_v4float_uint_2 %17144 %17150
-      %25587 = OpIAdd %uint %184889 %int_1
-      %25589 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %184889
-               OpStore %25589 %124147
-               OpBranch %20471
-      %17043 = OpLabel
-      %17046 = OpLoad %uint %12053
-      %17047 = OpBitwiseAnd %uint %17046 %uint_32768
-      %17048 = OpUGreaterThan %bool %17047 %uint_0
-               OpSelectionMerge %25509 None
-               OpSwitch %uint_0 %25493
-      %25493 = OpLabel
-               OpSelectionMerge %25508 None
-               OpBranchConditional %17048 %25495 %25503
-      %25503 = OpLabel
-      %25505 = OpISub %uint %184302 %int_1
-      %25506 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25505
-      %25507 = OpLoad %_arr_v3float_uint_2 %25506
-     %121196 = OpCompositeExtract %v3float %25507 0
-     %121197 = OpCompositeExtract %v3float %25507 1
-               OpBranch %25509
-      %25495 = OpLabel
-      %25497 = OpIAdd %uint %184305 %int_1
-      %25498 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25499 = OpLoad %v3float %25498
-               OpBranch %25509
-      %25508 = OpLabel
-               OpUnreachable
-      %25509 = OpLabel
-     %184894 = OpPhi %uint %25497 %25495 %184305 %25503
-     %184893 = OpPhi %uint %184302 %25495 %25505 %25503
-     %184891 = OpPhi %v3float %25499 %25495 %121196 %25503
-     %184890 = OpPhi %v3float %25499 %25495 %121197 %25503
-      %17052 = OpLoad %uint %12053
-      %17053 = OpBitwiseAnd %uint %17052 %uint_16384
-      %17054 = OpUGreaterThan %bool %17053 %uint_0
-               OpSelectionMerge %25532 None
-               OpSwitch %uint_0 %25516
-      %25516 = OpLabel
-               OpSelectionMerge %25531 None
-               OpBranchConditional %17054 %25518 %25526
-      %25526 = OpLabel
-      %25528 = OpISub %uint %184893 %int_1
-      %25529 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25528
-      %25530 = OpLoad %_arr_v3float_uint_2 %25529
-     %121187 = OpCompositeExtract %v3float %25530 0
-     %121188 = OpCompositeExtract %v3float %25530 1
-               OpBranch %25532
-      %25518 = OpLabel
-      %25520 = OpIAdd %uint %184894 %int_1
-      %25521 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184894
-      %25522 = OpLoad %v3float %25521
-               OpBranch %25532
-      %25531 = OpLabel
-               OpUnreachable
-      %25532 = OpLabel
-     %184899 = OpPhi %uint %25520 %25518 %184894 %25526
-     %184898 = OpPhi %uint %184893 %25518 %25528 %25526
-     %184896 = OpPhi %v3float %25522 %25518 %121187 %25526
-     %184895 = OpPhi %v3float %25522 %25518 %121188 %25526
-      %17058 = OpLoad %uint %12053
-      %17059 = OpBitwiseAnd %uint %17058 %uint_8192
-      %17060 = OpUGreaterThan %bool %17059 %uint_0
-               OpSelectionMerge %25555 None
-               OpSwitch %uint_0 %25539
-      %25539 = OpLabel
-               OpSelectionMerge %25554 None
-               OpBranchConditional %17060 %25541 %25549
-      %25549 = OpLabel
-      %25551 = OpISub %uint %184898 %int_1
-      %25552 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25551
-      %25553 = OpLoad %_arr_v3float_uint_2 %25552
-     %121178 = OpCompositeExtract %v3float %25553 0
-     %121179 = OpCompositeExtract %v3float %25553 1
-               OpBranch %25555
-      %25541 = OpLabel
-      %25543 = OpIAdd %uint %184899 %int_1
-      %25544 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184899
-      %25545 = OpLoad %v3float %25544
-               OpBranch %25555
-      %25554 = OpLabel
-               OpUnreachable
-      %25555 = OpLabel
-     %260459 = OpPhi %uint %25543 %25541 %184899 %25549
-     %184908 = OpPhi %uint %184898 %25541 %25551 %25549
-     %184901 = OpPhi %v3float %25545 %25541 %121178 %25549
-     %184900 = OpPhi %v3float %25545 %25541 %121179 %25549
-      %17066 = OpFMul %v3float %184891 %184896
-      %17072 = OpFMul %v3float %184891 %184895
-      %17078 = OpFMul %v3float %184890 %184896
-      %17084 = OpFMul %v3float %184890 %184895
-      %17094 = OpExtInst %v3float %1 FMin %17078 %17084
-      %17095 = OpExtInst %v3float %1 FMin %17072 %17094
-      %17096 = OpExtInst %v3float %1 FMin %17066 %17095
-      %17106 = OpExtInst %v3float %1 FMax %17078 %17084
-      %17107 = OpExtInst %v3float %1 FMax %17072 %17106
-      %17108 = OpExtInst %v3float %1 FMax %17066 %17107
-      %17115 = OpFAdd %v3float %17096 %184901
-      %17121 = OpFAdd %v3float %17108 %184900
-     %124130 = OpCompositeConstruct %_arr_v3float_uint_2 %17115 %17121
-      %25559 = OpIAdd %uint %184908 %int_1
-      %25561 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184908
-               OpStore %25561 %124130
-               OpBranch %20471
-      %17016 = OpLabel
-      %17019 = OpLoad %uint %12053
-      %17020 = OpBitwiseAnd %uint %17019 %uint_32768
-      %17021 = OpUGreaterThan %bool %17020 %uint_0
-               OpSelectionMerge %25458 None
-               OpSwitch %uint_0 %25442
-      %25442 = OpLabel
-               OpSelectionMerge %25457 None
-               OpBranchConditional %17021 %25444 %25452
-      %25452 = OpLabel
-      %25454 = OpISub %uint %184302 %int_1
-      %25455 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25454
-      %25456 = OpLoad %_arr_v3float_uint_2 %25455
-     %121214 = OpCompositeExtract %v3float %25456 0
-     %121215 = OpCompositeExtract %v3float %25456 1
-               OpBranch %25458
-      %25444 = OpLabel
-      %25446 = OpIAdd %uint %184305 %int_1
-      %25447 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25448 = OpLoad %v3float %25447
-               OpBranch %25458
-      %25457 = OpLabel
-               OpUnreachable
-      %25458 = OpLabel
-     %184913 = OpPhi %uint %25446 %25444 %184305 %25452
-     %184912 = OpPhi %uint %184302 %25444 %25454 %25452
-     %184910 = OpPhi %v3float %25448 %25444 %121214 %25452
-     %184909 = OpPhi %v3float %25448 %25444 %121215 %25452
-      %17025 = OpLoad %uint %12053
-      %17026 = OpBitwiseAnd %uint %17025 %uint_16384
-      %17027 = OpUGreaterThan %bool %17026 %uint_0
-               OpSelectionMerge %25481 None
-               OpSwitch %uint_0 %25465
-      %25465 = OpLabel
-               OpSelectionMerge %25480 None
-               OpBranchConditional %17027 %25467 %25475
-      %25475 = OpLabel
-      %25477 = OpISub %uint %184912 %int_1
-      %25478 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25477
-      %25479 = OpLoad %_arr_v3float_uint_2 %25478
-     %121205 = OpCompositeExtract %v3float %25479 0
-     %121206 = OpCompositeExtract %v3float %25479 1
-               OpBranch %25481
-      %25467 = OpLabel
-      %25469 = OpIAdd %uint %184913 %int_1
-      %25470 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184913
-      %25471 = OpLoad %v3float %25470
-               OpBranch %25481
-      %25480 = OpLabel
-               OpUnreachable
-      %25481 = OpLabel
-     %260458 = OpPhi %uint %25469 %25467 %184913 %25475
-     %184918 = OpPhi %uint %184912 %25467 %25477 %25475
-     %184915 = OpPhi %v3float %25471 %25467 %121205 %25475
-     %184914 = OpPhi %v3float %25471 %25467 %121206 %25475
-      %17033 = OpExtInst %v3float %1 FMax %184910 %184915
-      %17039 = OpExtInst %v3float %1 FMax %184909 %184914
-     %124119 = OpCompositeConstruct %_arr_v3float_uint_2 %17033 %17039
-      %25485 = OpIAdd %uint %184918 %int_1
-      %25487 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184918
-               OpStore %25487 %124119
-               OpBranch %20471
-      %16989 = OpLabel
-      %16992 = OpLoad %uint %12053
-      %16993 = OpBitwiseAnd %uint %16992 %uint_32768
-      %16994 = OpUGreaterThan %bool %16993 %uint_0
-               OpSelectionMerge %25407 None
-               OpSwitch %uint_0 %25391
-      %25391 = OpLabel
-               OpSelectionMerge %25406 None
-               OpBranchConditional %16994 %25393 %25401
-      %25401 = OpLabel
-      %25403 = OpISub %uint %184302 %int_1
-      %25404 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25403
-      %25405 = OpLoad %_arr_v3float_uint_2 %25404
-     %121232 = OpCompositeExtract %v3float %25405 0
-     %121233 = OpCompositeExtract %v3float %25405 1
-               OpBranch %25407
-      %25393 = OpLabel
-      %25395 = OpIAdd %uint %184305 %int_1
-      %25396 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25397 = OpLoad %v3float %25396
-               OpBranch %25407
-      %25406 = OpLabel
-               OpUnreachable
-      %25407 = OpLabel
-     %184923 = OpPhi %uint %25395 %25393 %184305 %25401
-     %184922 = OpPhi %uint %184302 %25393 %25403 %25401
-     %184920 = OpPhi %v3float %25397 %25393 %121232 %25401
-     %184919 = OpPhi %v3float %25397 %25393 %121233 %25401
-      %16998 = OpLoad %uint %12053
-      %16999 = OpBitwiseAnd %uint %16998 %uint_16384
-      %17000 = OpUGreaterThan %bool %16999 %uint_0
-               OpSelectionMerge %25430 None
-               OpSwitch %uint_0 %25414
-      %25414 = OpLabel
-               OpSelectionMerge %25429 None
-               OpBranchConditional %17000 %25416 %25424
-      %25424 = OpLabel
-      %25426 = OpISub %uint %184922 %int_1
-      %25427 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25426
-      %25428 = OpLoad %_arr_v3float_uint_2 %25427
-     %121223 = OpCompositeExtract %v3float %25428 0
-     %121224 = OpCompositeExtract %v3float %25428 1
-               OpBranch %25430
-      %25416 = OpLabel
-      %25418 = OpIAdd %uint %184923 %int_1
-      %25419 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184923
-      %25420 = OpLoad %v3float %25419
-               OpBranch %25430
-      %25429 = OpLabel
-               OpUnreachable
-      %25430 = OpLabel
-     %260457 = OpPhi %uint %25418 %25416 %184923 %25424
-     %184928 = OpPhi %uint %184922 %25416 %25426 %25424
-     %184925 = OpPhi %v3float %25420 %25416 %121223 %25424
-     %184924 = OpPhi %v3float %25420 %25416 %121224 %25424
-      %17006 = OpExtInst %v3float %1 FMin %184920 %184925
-      %17012 = OpExtInst %v3float %1 FMin %184919 %184924
-     %124108 = OpCompositeConstruct %_arr_v3float_uint_2 %17006 %17012
-      %25434 = OpIAdd %uint %184928 %int_1
-      %25436 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184928
-               OpStore %25436 %124108
-               OpBranch %20471
-      %16960 = OpLabel
-      %16963 = OpLoad %uint %12053
-      %16964 = OpBitwiseAnd %uint %16963 %uint_32768
-      %16965 = OpUGreaterThan %bool %16964 %uint_0
-               OpSelectionMerge %25379 None
-               OpSwitch %uint_0 %25363
-      %25363 = OpLabel
-               OpSelectionMerge %25378 None
-               OpBranchConditional %16965 %25365 %25373
-      %25373 = OpLabel
-      %25375 = OpISub %uint %184302 %int_1
-      %25376 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25375
-      %25377 = OpLoad %_arr_v3float_uint_2 %25376
-     %121241 = OpCompositeExtract %v3float %25377 0
-     %121242 = OpCompositeExtract %v3float %25377 1
-               OpBranch %25379
-      %25365 = OpLabel
-      %25367 = OpIAdd %uint %184305 %int_1
-      %25368 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25369 = OpLoad %v3float %25368
-               OpBranch %25379
-      %25378 = OpLabel
-               OpUnreachable
-      %25379 = OpLabel
-     %260456 = OpPhi %uint %25367 %25365 %184305 %25373
-     %184931 = OpPhi %uint %184302 %25365 %25375 %25373
-     %184930 = OpPhi %v3float %25369 %25365 %121241 %25373
-     %184929 = OpPhi %v3float %25369 %25365 %121242 %25373
-      %16969 = OpExtInst %v3float %1 Trunc %184930
-      %16973 = OpExtInst %v3float %1 Trunc %184929
-      %16979 = OpExtInst %v3float %1 FMin %16969 %16973
-      %16985 = OpExtInst %v3float %1 FMax %16969 %16973
-     %124099 = OpCompositeConstruct %_arr_v3float_uint_2 %16979 %16985
-      %25383 = OpIAdd %uint %184931 %int_1
-      %25385 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184931
-               OpStore %25385 %124099
-               OpBranch %20471
-      %16931 = OpLabel
-      %16934 = OpLoad %uint %12053
-      %16935 = OpBitwiseAnd %uint %16934 %uint_32768
-      %16936 = OpUGreaterThan %bool %16935 %uint_0
-               OpSelectionMerge %25351 None
-               OpSwitch %uint_0 %25335
-      %25335 = OpLabel
-               OpSelectionMerge %25350 None
-               OpBranchConditional %16936 %25337 %25345
-      %25345 = OpLabel
-      %25347 = OpISub %uint %184302 %int_1
-      %25348 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25347
-      %25349 = OpLoad %_arr_v3float_uint_2 %25348
-     %121250 = OpCompositeExtract %v3float %25349 0
-     %121251 = OpCompositeExtract %v3float %25349 1
-               OpBranch %25351
-      %25337 = OpLabel
-      %25339 = OpIAdd %uint %184305 %int_1
-      %25340 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25341 = OpLoad %v3float %25340
-               OpBranch %25351
-      %25350 = OpLabel
-               OpUnreachable
-      %25351 = OpLabel
-     %260455 = OpPhi %uint %25339 %25337 %184305 %25345
-     %184934 = OpPhi %uint %184302 %25337 %25347 %25345
-     %184933 = OpPhi %v3float %25341 %25337 %121250 %25345
-     %184932 = OpPhi %v3float %25341 %25337 %121251 %25345
-      %16940 = OpExtInst %v3float %1 Round %184933
-      %16944 = OpExtInst %v3float %1 Round %184932
-      %16950 = OpExtInst %v3float %1 FMin %16940 %16944
-      %16956 = OpExtInst %v3float %1 FMax %16940 %16944
-     %124090 = OpCompositeConstruct %_arr_v3float_uint_2 %16950 %16956
-      %25355 = OpIAdd %uint %184934 %int_1
-      %25357 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184934
-               OpStore %25357 %124090
-               OpBranch %20471
-      %16902 = OpLabel
-      %16905 = OpLoad %uint %12053
-      %16906 = OpBitwiseAnd %uint %16905 %uint_32768
-      %16907 = OpUGreaterThan %bool %16906 %uint_0
-               OpSelectionMerge %25323 None
-               OpSwitch %uint_0 %25307
-      %25307 = OpLabel
-               OpSelectionMerge %25322 None
-               OpBranchConditional %16907 %25309 %25317
-      %25317 = OpLabel
-      %25319 = OpISub %uint %184302 %int_1
-      %25320 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25319
-      %25321 = OpLoad %_arr_v3float_uint_2 %25320
-     %121259 = OpCompositeExtract %v3float %25321 0
-     %121260 = OpCompositeExtract %v3float %25321 1
-               OpBranch %25323
-      %25309 = OpLabel
-      %25311 = OpIAdd %uint %184305 %int_1
-      %25312 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25313 = OpLoad %v3float %25312
-               OpBranch %25323
-      %25322 = OpLabel
-               OpUnreachable
-      %25323 = OpLabel
-     %260454 = OpPhi %uint %25311 %25309 %184305 %25317
-     %184937 = OpPhi %uint %184302 %25309 %25319 %25317
-     %184936 = OpPhi %v3float %25313 %25309 %121259 %25317
-     %184935 = OpPhi %v3float %25313 %25309 %121260 %25317
-      %16911 = OpExtInst %v3float %1 Tanh %184936
-      %16915 = OpExtInst %v3float %1 Tanh %184935
-      %16921 = OpExtInst %v3float %1 FMin %16911 %16915
-      %16927 = OpExtInst %v3float %1 FMax %16911 %16915
-     %124081 = OpCompositeConstruct %_arr_v3float_uint_2 %16921 %16927
-      %25327 = OpIAdd %uint %184937 %int_1
-      %25329 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184937
-               OpStore %25329 %124081
-               OpBranch %20471
-      %16873 = OpLabel
-      %16876 = OpLoad %uint %12053
-      %16877 = OpBitwiseAnd %uint %16876 %uint_32768
-      %16878 = OpUGreaterThan %bool %16877 %uint_0
-               OpSelectionMerge %25295 None
-               OpSwitch %uint_0 %25279
-      %25279 = OpLabel
-               OpSelectionMerge %25294 None
-               OpBranchConditional %16878 %25281 %25289
-      %25289 = OpLabel
-      %25291 = OpISub %uint %184302 %int_1
-      %25292 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25291
-      %25293 = OpLoad %_arr_v3float_uint_2 %25292
-     %121268 = OpCompositeExtract %v3float %25293 0
-     %121269 = OpCompositeExtract %v3float %25293 1
-               OpBranch %25295
-      %25281 = OpLabel
-      %25283 = OpIAdd %uint %184305 %int_1
-      %25284 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25285 = OpLoad %v3float %25284
-               OpBranch %25295
-      %25294 = OpLabel
-               OpUnreachable
-      %25295 = OpLabel
-     %260453 = OpPhi %uint %25283 %25281 %184305 %25289
-     %184940 = OpPhi %uint %184302 %25281 %25291 %25289
-     %184939 = OpPhi %v3float %25285 %25281 %121268 %25289
-     %184938 = OpPhi %v3float %25285 %25281 %121269 %25289
-      %16882 = OpExtInst %v3float %1 Sinh %184939
-      %16886 = OpExtInst %v3float %1 Sinh %184938
-      %16892 = OpExtInst %v3float %1 FMin %16882 %16886
-      %16898 = OpExtInst %v3float %1 FMax %16882 %16886
-     %124072 = OpCompositeConstruct %_arr_v3float_uint_2 %16892 %16898
-      %25299 = OpIAdd %uint %184940 %int_1
-      %25301 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184940
-               OpStore %25301 %124072
-               OpBranch %20471
-      %16844 = OpLabel
-      %16847 = OpLoad %uint %12053
-      %16848 = OpBitwiseAnd %uint %16847 %uint_32768
-      %16849 = OpUGreaterThan %bool %16848 %uint_0
-               OpSelectionMerge %25267 None
-               OpSwitch %uint_0 %25251
-      %25251 = OpLabel
-               OpSelectionMerge %25266 None
-               OpBranchConditional %16849 %25253 %25261
-      %25261 = OpLabel
-      %25263 = OpISub %uint %184302 %int_1
-      %25264 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25263
-      %25265 = OpLoad %_arr_v3float_uint_2 %25264
-     %121277 = OpCompositeExtract %v3float %25265 0
-     %121278 = OpCompositeExtract %v3float %25265 1
-               OpBranch %25267
-      %25253 = OpLabel
-      %25255 = OpIAdd %uint %184305 %int_1
-      %25256 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25257 = OpLoad %v3float %25256
-               OpBranch %25267
-      %25266 = OpLabel
-               OpUnreachable
-      %25267 = OpLabel
-     %260452 = OpPhi %uint %25255 %25253 %184305 %25261
-     %184943 = OpPhi %uint %184302 %25253 %25263 %25261
-     %184942 = OpPhi %v3float %25257 %25253 %121277 %25261
-     %184941 = OpPhi %v3float %25257 %25253 %121278 %25261
-      %16853 = OpExtInst %v3float %1 Cosh %184942
-      %16857 = OpExtInst %v3float %1 Cosh %184941
-      %16863 = OpExtInst %v3float %1 FMin %16853 %16857
-      %16869 = OpExtInst %v3float %1 FMax %16853 %16857
-     %124063 = OpCompositeConstruct %_arr_v3float_uint_2 %16863 %16869
-      %25271 = OpIAdd %uint %184943 %int_1
-      %25273 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184943
-               OpStore %25273 %124063
-               OpBranch %20471
-      %16815 = OpLabel
-      %16818 = OpLoad %uint %12053
-      %16819 = OpBitwiseAnd %uint %16818 %uint_32768
-      %16820 = OpUGreaterThan %bool %16819 %uint_0
-               OpSelectionMerge %25239 None
-               OpSwitch %uint_0 %25223
-      %25223 = OpLabel
-               OpSelectionMerge %25238 None
-               OpBranchConditional %16820 %25225 %25233
-      %25233 = OpLabel
-      %25235 = OpISub %uint %184302 %int_1
-      %25236 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25235
-      %25237 = OpLoad %_arr_v3float_uint_2 %25236
-     %121286 = OpCompositeExtract %v3float %25237 0
-     %121287 = OpCompositeExtract %v3float %25237 1
-               OpBranch %25239
-      %25225 = OpLabel
-      %25227 = OpIAdd %uint %184305 %int_1
-      %25228 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25229 = OpLoad %v3float %25228
-               OpBranch %25239
-      %25238 = OpLabel
-               OpUnreachable
-      %25239 = OpLabel
-     %260451 = OpPhi %uint %25227 %25225 %184305 %25233
-     %184946 = OpPhi %uint %184302 %25225 %25235 %25233
-     %184945 = OpPhi %v3float %25229 %25225 %121286 %25233
-     %184944 = OpPhi %v3float %25229 %25225 %121287 %25233
-      %16824 = OpExtInst %v3float %1 Atanh %184945
-      %16828 = OpExtInst %v3float %1 Atanh %184944
-      %16834 = OpExtInst %v3float %1 FMin %16824 %16828
-      %16840 = OpExtInst %v3float %1 FMax %16824 %16828
-     %124054 = OpCompositeConstruct %_arr_v3float_uint_2 %16834 %16840
-      %25243 = OpIAdd %uint %184946 %int_1
-      %25245 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184946
-               OpStore %25245 %124054
-               OpBranch %20471
-      %16786 = OpLabel
-      %16789 = OpLoad %uint %12053
-      %16790 = OpBitwiseAnd %uint %16789 %uint_32768
-      %16791 = OpUGreaterThan %bool %16790 %uint_0
-               OpSelectionMerge %25211 None
-               OpSwitch %uint_0 %25195
-      %25195 = OpLabel
-               OpSelectionMerge %25210 None
-               OpBranchConditional %16791 %25197 %25205
-      %25205 = OpLabel
-      %25207 = OpISub %uint %184302 %int_1
-      %25208 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25207
-      %25209 = OpLoad %_arr_v3float_uint_2 %25208
-     %121295 = OpCompositeExtract %v3float %25209 0
-     %121296 = OpCompositeExtract %v3float %25209 1
-               OpBranch %25211
-      %25197 = OpLabel
-      %25199 = OpIAdd %uint %184305 %int_1
-      %25200 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25201 = OpLoad %v3float %25200
-               OpBranch %25211
-      %25210 = OpLabel
-               OpUnreachable
-      %25211 = OpLabel
-     %260450 = OpPhi %uint %25199 %25197 %184305 %25205
-     %184949 = OpPhi %uint %184302 %25197 %25207 %25205
-     %184948 = OpPhi %v3float %25201 %25197 %121295 %25205
-     %184947 = OpPhi %v3float %25201 %25197 %121296 %25205
-      %16795 = OpExtInst %v3float %1 Asinh %184948
-      %16799 = OpExtInst %v3float %1 Asinh %184947
-      %16805 = OpExtInst %v3float %1 FMin %16795 %16799
-      %16811 = OpExtInst %v3float %1 FMax %16795 %16799
-     %124045 = OpCompositeConstruct %_arr_v3float_uint_2 %16805 %16811
-      %25215 = OpIAdd %uint %184949 %int_1
-      %25217 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184949
-               OpStore %25217 %124045
-               OpBranch %20471
-      %16757 = OpLabel
-      %16760 = OpLoad %uint %12053
-      %16761 = OpBitwiseAnd %uint %16760 %uint_32768
-      %16762 = OpUGreaterThan %bool %16761 %uint_0
-               OpSelectionMerge %25183 None
-               OpSwitch %uint_0 %25167
-      %25167 = OpLabel
-               OpSelectionMerge %25182 None
-               OpBranchConditional %16762 %25169 %25177
-      %25177 = OpLabel
-      %25179 = OpISub %uint %184302 %int_1
-      %25180 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25179
-      %25181 = OpLoad %_arr_v3float_uint_2 %25180
-     %121304 = OpCompositeExtract %v3float %25181 0
-     %121305 = OpCompositeExtract %v3float %25181 1
-               OpBranch %25183
-      %25169 = OpLabel
-      %25171 = OpIAdd %uint %184305 %int_1
-      %25172 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25173 = OpLoad %v3float %25172
-               OpBranch %25183
-      %25182 = OpLabel
-               OpUnreachable
-      %25183 = OpLabel
-     %260449 = OpPhi %uint %25171 %25169 %184305 %25177
-     %184952 = OpPhi %uint %184302 %25169 %25179 %25177
-     %184951 = OpPhi %v3float %25173 %25169 %121304 %25177
-     %184950 = OpPhi %v3float %25173 %25169 %121305 %25177
-      %16766 = OpExtInst %v3float %1 Acosh %184951
-      %16770 = OpExtInst %v3float %1 Acosh %184950
-      %16776 = OpExtInst %v3float %1 FMin %16766 %16770
-      %16782 = OpExtInst %v3float %1 FMax %16766 %16770
-     %124036 = OpCompositeConstruct %_arr_v3float_uint_2 %16776 %16782
-      %25187 = OpIAdd %uint %184952 %int_1
-      %25189 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184952
-               OpStore %25189 %124036
-               OpBranch %20471
-      %16728 = OpLabel
-      %16731 = OpLoad %uint %12053
-      %16732 = OpBitwiseAnd %uint %16731 %uint_32768
-      %16733 = OpUGreaterThan %bool %16732 %uint_0
-               OpSelectionMerge %25155 None
-               OpSwitch %uint_0 %25139
-      %25139 = OpLabel
-               OpSelectionMerge %25154 None
-               OpBranchConditional %16733 %25141 %25149
-      %25149 = OpLabel
-      %25151 = OpISub %uint %184302 %int_1
-      %25152 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25151
-      %25153 = OpLoad %_arr_v3float_uint_2 %25152
-     %121313 = OpCompositeExtract %v3float %25153 0
-     %121314 = OpCompositeExtract %v3float %25153 1
-               OpBranch %25155
-      %25141 = OpLabel
-      %25143 = OpIAdd %uint %184305 %int_1
-      %25144 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25145 = OpLoad %v3float %25144
-               OpBranch %25155
-      %25154 = OpLabel
-               OpUnreachable
-      %25155 = OpLabel
-     %260448 = OpPhi %uint %25143 %25141 %184305 %25149
-     %184955 = OpPhi %uint %184302 %25141 %25151 %25149
-     %184954 = OpPhi %v3float %25145 %25141 %121313 %25149
-     %184953 = OpPhi %v3float %25145 %25141 %121314 %25149
-      %16737 = OpExtInst %v3float %1 Atan %184954
-      %16741 = OpExtInst %v3float %1 Atan %184953
-      %16747 = OpExtInst %v3float %1 FMin %16737 %16741
-      %16753 = OpExtInst %v3float %1 FMax %16737 %16741
-     %124027 = OpCompositeConstruct %_arr_v3float_uint_2 %16747 %16753
-      %25159 = OpIAdd %uint %184955 %int_1
-      %25161 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184955
-               OpStore %25161 %124027
-               OpBranch %20471
-      %16699 = OpLabel
-      %16702 = OpLoad %uint %12053
-      %16703 = OpBitwiseAnd %uint %16702 %uint_32768
-      %16704 = OpUGreaterThan %bool %16703 %uint_0
-               OpSelectionMerge %25127 None
-               OpSwitch %uint_0 %25111
-      %25111 = OpLabel
-               OpSelectionMerge %25126 None
-               OpBranchConditional %16704 %25113 %25121
-      %25121 = OpLabel
-      %25123 = OpISub %uint %184302 %int_1
-      %25124 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25123
-      %25125 = OpLoad %_arr_v3float_uint_2 %25124
-     %121322 = OpCompositeExtract %v3float %25125 0
-     %121323 = OpCompositeExtract %v3float %25125 1
-               OpBranch %25127
-      %25113 = OpLabel
-      %25115 = OpIAdd %uint %184305 %int_1
-      %25116 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25117 = OpLoad %v3float %25116
-               OpBranch %25127
-      %25126 = OpLabel
-               OpUnreachable
-      %25127 = OpLabel
-     %260447 = OpPhi %uint %25115 %25113 %184305 %25121
-     %184958 = OpPhi %uint %184302 %25113 %25123 %25121
-     %184957 = OpPhi %v3float %25117 %25113 %121322 %25121
-     %184956 = OpPhi %v3float %25117 %25113 %121323 %25121
-      %16708 = OpExtInst %v3float %1 Acos %184957
-      %16712 = OpExtInst %v3float %1 Acos %184956
-      %16718 = OpExtInst %v3float %1 FMin %16708 %16712
-      %16724 = OpExtInst %v3float %1 FMax %16708 %16712
-     %124018 = OpCompositeConstruct %_arr_v3float_uint_2 %16718 %16724
-      %25131 = OpIAdd %uint %184958 %int_1
-      %25133 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184958
-               OpStore %25133 %124018
-               OpBranch %20471
-      %16670 = OpLabel
-      %16673 = OpLoad %uint %12053
-      %16674 = OpBitwiseAnd %uint %16673 %uint_32768
-      %16675 = OpUGreaterThan %bool %16674 %uint_0
-               OpSelectionMerge %25099 None
-               OpSwitch %uint_0 %25083
-      %25083 = OpLabel
-               OpSelectionMerge %25098 None
-               OpBranchConditional %16675 %25085 %25093
-      %25093 = OpLabel
-      %25095 = OpISub %uint %184302 %int_1
-      %25096 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25095
-      %25097 = OpLoad %_arr_v3float_uint_2 %25096
-     %121331 = OpCompositeExtract %v3float %25097 0
-     %121332 = OpCompositeExtract %v3float %25097 1
-               OpBranch %25099
-      %25085 = OpLabel
-      %25087 = OpIAdd %uint %184305 %int_1
-      %25088 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25089 = OpLoad %v3float %25088
-               OpBranch %25099
-      %25098 = OpLabel
-               OpUnreachable
-      %25099 = OpLabel
-     %260446 = OpPhi %uint %25087 %25085 %184305 %25093
-     %184961 = OpPhi %uint %184302 %25085 %25095 %25093
-     %184960 = OpPhi %v3float %25089 %25085 %121331 %25093
-     %184959 = OpPhi %v3float %25089 %25085 %121332 %25093
-      %16679 = OpExtInst %v3float %1 Asin %184960
-      %16683 = OpExtInst %v3float %1 Asin %184959
-      %16689 = OpExtInst %v3float %1 FMin %16679 %16683
-      %16695 = OpExtInst %v3float %1 FMax %16679 %16683
-     %124009 = OpCompositeConstruct %_arr_v3float_uint_2 %16689 %16695
-      %25103 = OpIAdd %uint %184961 %int_1
-      %25105 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184961
-               OpStore %25105 %124009
-               OpBranch %20471
-      %16641 = OpLabel
-      %16644 = OpLoad %uint %12053
-      %16645 = OpBitwiseAnd %uint %16644 %uint_32768
-      %16646 = OpUGreaterThan %bool %16645 %uint_0
-               OpSelectionMerge %25071 None
-               OpSwitch %uint_0 %25055
-      %25055 = OpLabel
-               OpSelectionMerge %25070 None
-               OpBranchConditional %16646 %25057 %25065
-      %25065 = OpLabel
-      %25067 = OpISub %uint %184302 %int_1
-      %25068 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25067
-      %25069 = OpLoad %_arr_v3float_uint_2 %25068
-     %121340 = OpCompositeExtract %v3float %25069 0
-     %121341 = OpCompositeExtract %v3float %25069 1
-               OpBranch %25071
-      %25057 = OpLabel
-      %25059 = OpIAdd %uint %184305 %int_1
-      %25060 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25061 = OpLoad %v3float %25060
-               OpBranch %25071
-      %25070 = OpLabel
-               OpUnreachable
-      %25071 = OpLabel
-     %260445 = OpPhi %uint %25059 %25057 %184305 %25065
-     %184964 = OpPhi %uint %184302 %25057 %25067 %25065
-     %184963 = OpPhi %v3float %25061 %25057 %121340 %25065
-     %184962 = OpPhi %v3float %25061 %25057 %121341 %25065
-      %16650 = OpExtInst %v3float %1 Tan %184963
-      %16654 = OpExtInst %v3float %1 Tan %184962
-      %16660 = OpExtInst %v3float %1 FMin %16650 %16654
-      %16666 = OpExtInst %v3float %1 FMax %16650 %16654
-     %124000 = OpCompositeConstruct %_arr_v3float_uint_2 %16660 %16666
-      %25075 = OpIAdd %uint %184964 %int_1
-      %25077 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184964
-               OpStore %25077 %124000
-               OpBranch %20471
-      %16612 = OpLabel
-      %16615 = OpLoad %uint %12053
-      %16616 = OpBitwiseAnd %uint %16615 %uint_32768
-      %16617 = OpUGreaterThan %bool %16616 %uint_0
-               OpSelectionMerge %25043 None
-               OpSwitch %uint_0 %25027
-      %25027 = OpLabel
-               OpSelectionMerge %25042 None
-               OpBranchConditional %16617 %25029 %25037
-      %25037 = OpLabel
-      %25039 = OpISub %uint %184302 %int_1
-      %25040 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25039
-      %25041 = OpLoad %_arr_v3float_uint_2 %25040
-     %121349 = OpCompositeExtract %v3float %25041 0
-     %121350 = OpCompositeExtract %v3float %25041 1
-               OpBranch %25043
-      %25029 = OpLabel
-      %25031 = OpIAdd %uint %184305 %int_1
-      %25032 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25033 = OpLoad %v3float %25032
-               OpBranch %25043
-      %25042 = OpLabel
-               OpUnreachable
-      %25043 = OpLabel
-     %260444 = OpPhi %uint %25031 %25029 %184305 %25037
-     %184967 = OpPhi %uint %184302 %25029 %25039 %25037
-     %184966 = OpPhi %v3float %25033 %25029 %121349 %25037
-     %184965 = OpPhi %v3float %25033 %25029 %121350 %25037
-      %16621 = OpExtInst %v3float %1 Cos %184966
-      %16625 = OpExtInst %v3float %1 Cos %184965
-      %16631 = OpExtInst %v3float %1 FMin %16621 %16625
-      %16637 = OpExtInst %v3float %1 FMax %16621 %16625
-     %123991 = OpCompositeConstruct %_arr_v3float_uint_2 %16631 %16637
-      %25047 = OpIAdd %uint %184967 %int_1
-      %25049 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184967
-               OpStore %25049 %123991
-               OpBranch %20471
-      %16583 = OpLabel
-      %16586 = OpLoad %uint %12053
-      %16587 = OpBitwiseAnd %uint %16586 %uint_32768
-      %16588 = OpUGreaterThan %bool %16587 %uint_0
-               OpSelectionMerge %25015 None
-               OpSwitch %uint_0 %24999
-      %24999 = OpLabel
-               OpSelectionMerge %25014 None
-               OpBranchConditional %16588 %25001 %25009
-      %25009 = OpLabel
-      %25011 = OpISub %uint %184302 %int_1
-      %25012 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %25011
-      %25013 = OpLoad %_arr_v3float_uint_2 %25012
-     %121358 = OpCompositeExtract %v3float %25013 0
-     %121359 = OpCompositeExtract %v3float %25013 1
-               OpBranch %25015
-      %25001 = OpLabel
-      %25003 = OpIAdd %uint %184305 %int_1
-      %25004 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %25005 = OpLoad %v3float %25004
-               OpBranch %25015
-      %25014 = OpLabel
-               OpUnreachable
-      %25015 = OpLabel
-     %260443 = OpPhi %uint %25003 %25001 %184305 %25009
-     %184970 = OpPhi %uint %184302 %25001 %25011 %25009
-     %184969 = OpPhi %v3float %25005 %25001 %121358 %25009
-     %184968 = OpPhi %v3float %25005 %25001 %121359 %25009
-      %16592 = OpExtInst %v3float %1 Sin %184969
-      %16596 = OpExtInst %v3float %1 Sin %184968
-      %16602 = OpExtInst %v3float %1 FMin %16592 %16596
-      %16608 = OpExtInst %v3float %1 FMax %16592 %16596
-     %123982 = OpCompositeConstruct %_arr_v3float_uint_2 %16602 %16608
-      %25019 = OpIAdd %uint %184970 %int_1
-      %25021 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184970
-               OpStore %25021 %123982
-               OpBranch %20471
-      %16554 = OpLabel
-      %16557 = OpLoad %uint %12053
-      %16558 = OpBitwiseAnd %uint %16557 %uint_32768
-      %16559 = OpUGreaterThan %bool %16558 %uint_0
-               OpSelectionMerge %24987 None
-               OpSwitch %uint_0 %24971
-      %24971 = OpLabel
-               OpSelectionMerge %24986 None
-               OpBranchConditional %16559 %24973 %24981
-      %24981 = OpLabel
-      %24983 = OpISub %uint %184302 %int_1
-      %24984 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %24983
-      %24985 = OpLoad %_arr_v3float_uint_2 %24984
-     %121367 = OpCompositeExtract %v3float %24985 0
-     %121368 = OpCompositeExtract %v3float %24985 1
-               OpBranch %24987
-      %24973 = OpLabel
-      %24975 = OpIAdd %uint %184305 %int_1
-      %24976 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %24977 = OpLoad %v3float %24976
-               OpBranch %24987
-      %24986 = OpLabel
-               OpUnreachable
-      %24987 = OpLabel
-     %260442 = OpPhi %uint %24975 %24973 %184305 %24981
-     %184973 = OpPhi %uint %184302 %24973 %24983 %24981
-     %184972 = OpPhi %v3float %24977 %24973 %121367 %24981
-     %184971 = OpPhi %v3float %24977 %24973 %121368 %24981
-      %16563 = OpExtInst %v3float %1 Log2 %184972
-      %16567 = OpExtInst %v3float %1 Log2 %184971
-      %16573 = OpExtInst %v3float %1 FMin %16563 %16567
-      %16579 = OpExtInst %v3float %1 FMax %16563 %16567
-     %123973 = OpCompositeConstruct %_arr_v3float_uint_2 %16573 %16579
-      %24991 = OpIAdd %uint %184973 %int_1
-      %24993 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184973
-               OpStore %24993 %123973
-               OpBranch %20471
-      %16525 = OpLabel
-      %16528 = OpLoad %uint %12053
-      %16529 = OpBitwiseAnd %uint %16528 %uint_32768
-      %16530 = OpUGreaterThan %bool %16529 %uint_0
-               OpSelectionMerge %24959 None
-               OpSwitch %uint_0 %24943
-      %24943 = OpLabel
-               OpSelectionMerge %24958 None
-               OpBranchConditional %16530 %24945 %24953
-      %24953 = OpLabel
-      %24955 = OpISub %uint %184302 %int_1
-      %24956 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %24955
-      %24957 = OpLoad %_arr_v3float_uint_2 %24956
-     %121376 = OpCompositeExtract %v3float %24957 0
-     %121377 = OpCompositeExtract %v3float %24957 1
-               OpBranch %24959
-      %24945 = OpLabel
-      %24947 = OpIAdd %uint %184305 %int_1
-      %24948 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %24949 = OpLoad %v3float %24948
-               OpBranch %24959
-      %24958 = OpLabel
-               OpUnreachable
-      %24959 = OpLabel
-     %260441 = OpPhi %uint %24947 %24945 %184305 %24953
-     %184976 = OpPhi %uint %184302 %24945 %24955 %24953
-     %184975 = OpPhi %v3float %24949 %24945 %121376 %24953
-     %184974 = OpPhi %v3float %24949 %24945 %121377 %24953
-      %16534 = OpExtInst %v3float %1 Log %184975
-      %16538 = OpExtInst %v3float %1 Log %184974
-      %16544 = OpExtInst %v3float %1 FMin %16534 %16538
-      %16550 = OpExtInst %v3float %1 FMax %16534 %16538
-     %123964 = OpCompositeConstruct %_arr_v3float_uint_2 %16544 %16550
-      %24963 = OpIAdd %uint %184976 %int_1
-      %24965 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184976
-               OpStore %24965 %123964
-               OpBranch %20471
-      %16496 = OpLabel
-      %16499 = OpLoad %uint %12053
-      %16500 = OpBitwiseAnd %uint %16499 %uint_32768
-      %16501 = OpUGreaterThan %bool %16500 %uint_0
-               OpSelectionMerge %24931 None
-               OpSwitch %uint_0 %24915
-      %24915 = OpLabel
-               OpSelectionMerge %24930 None
-               OpBranchConditional %16501 %24917 %24925
-      %24925 = OpLabel
-      %24927 = OpISub %uint %184302 %int_1
-      %24928 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %24927
-      %24929 = OpLoad %_arr_v3float_uint_2 %24928
-     %121385 = OpCompositeExtract %v3float %24929 0
-     %121386 = OpCompositeExtract %v3float %24929 1
-               OpBranch %24931
-      %24917 = OpLabel
-      %24919 = OpIAdd %uint %184305 %int_1
-      %24920 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %24921 = OpLoad %v3float %24920
-               OpBranch %24931
-      %24930 = OpLabel
-               OpUnreachable
-      %24931 = OpLabel
-     %260440 = OpPhi %uint %24919 %24917 %184305 %24925
-     %184979 = OpPhi %uint %184302 %24917 %24927 %24925
-     %184978 = OpPhi %v3float %24921 %24917 %121385 %24925
-     %184977 = OpPhi %v3float %24921 %24917 %121386 %24925
-      %16505 = OpExtInst %v3float %1 Exp2 %184978
-      %16509 = OpExtInst %v3float %1 Exp2 %184977
-      %16515 = OpExtInst %v3float %1 FMin %16505 %16509
-      %16521 = OpExtInst %v3float %1 FMax %16505 %16509
-     %123955 = OpCompositeConstruct %_arr_v3float_uint_2 %16515 %16521
-      %24935 = OpIAdd %uint %184979 %int_1
-      %24937 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184979
-               OpStore %24937 %123955
-               OpBranch %20471
-      %16467 = OpLabel
-      %16470 = OpLoad %uint %12053
-      %16471 = OpBitwiseAnd %uint %16470 %uint_32768
-      %16472 = OpUGreaterThan %bool %16471 %uint_0
-               OpSelectionMerge %24903 None
-               OpSwitch %uint_0 %24887
-      %24887 = OpLabel
-               OpSelectionMerge %24902 None
-               OpBranchConditional %16472 %24889 %24897
-      %24897 = OpLabel
-      %24899 = OpISub %uint %184302 %int_1
-      %24900 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %24899
-      %24901 = OpLoad %_arr_v3float_uint_2 %24900
-     %121394 = OpCompositeExtract %v3float %24901 0
-     %121395 = OpCompositeExtract %v3float %24901 1
-               OpBranch %24903
-      %24889 = OpLabel
-      %24891 = OpIAdd %uint %184305 %int_1
-      %24892 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %24893 = OpLoad %v3float %24892
-               OpBranch %24903
-      %24902 = OpLabel
-               OpUnreachable
-      %24903 = OpLabel
-     %260439 = OpPhi %uint %24891 %24889 %184305 %24897
-     %184982 = OpPhi %uint %184302 %24889 %24899 %24897
-     %184981 = OpPhi %v3float %24893 %24889 %121394 %24897
-     %184980 = OpPhi %v3float %24893 %24889 %121395 %24897
-      %16476 = OpExtInst %v3float %1 Exp %184981
-      %16480 = OpExtInst %v3float %1 Exp %184980
-      %16486 = OpExtInst %v3float %1 FMin %16476 %16480
-      %16492 = OpExtInst %v3float %1 FMax %16476 %16480
-     %123946 = OpCompositeConstruct %_arr_v3float_uint_2 %16486 %16492
-      %24907 = OpIAdd %uint %184982 %int_1
-      %24909 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184982
-               OpStore %24909 %123946
-               OpBranch %20471
-      %16438 = OpLabel
-      %16441 = OpLoad %uint %12053
-      %16442 = OpBitwiseAnd %uint %16441 %uint_32768
-      %16443 = OpUGreaterThan %bool %16442 %uint_0
-               OpSelectionMerge %24875 None
-               OpSwitch %uint_0 %24859
-      %24859 = OpLabel
-               OpSelectionMerge %24874 None
-               OpBranchConditional %16443 %24861 %24869
-      %24869 = OpLabel
-      %24871 = OpISub %uint %184302 %int_1
-      %24872 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %24871
-      %24873 = OpLoad %_arr_v3float_uint_2 %24872
-     %121403 = OpCompositeExtract %v3float %24873 0
-     %121404 = OpCompositeExtract %v3float %24873 1
-               OpBranch %24875
-      %24861 = OpLabel
-      %24863 = OpIAdd %uint %184305 %int_1
-      %24864 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %24865 = OpLoad %v3float %24864
-               OpBranch %24875
-      %24874 = OpLabel
-               OpUnreachable
-      %24875 = OpLabel
-     %260438 = OpPhi %uint %24863 %24861 %184305 %24869
-     %184985 = OpPhi %uint %184302 %24861 %24871 %24869
-     %184984 = OpPhi %v3float %24865 %24861 %121403 %24869
-     %184983 = OpPhi %v3float %24865 %24861 %121404 %24869
-      %16447 = OpExtInst %v3float %1 InverseSqrt %184984
-      %16451 = OpExtInst %v3float %1 InverseSqrt %184983
-      %16457 = OpExtInst %v3float %1 FMin %16447 %16451
-      %16463 = OpExtInst %v3float %1 FMax %16447 %16451
-     %123937 = OpCompositeConstruct %_arr_v3float_uint_2 %16457 %16463
-      %24879 = OpIAdd %uint %184985 %int_1
-      %24881 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184985
-               OpStore %24881 %123937
-               OpBranch %20471
-      %16409 = OpLabel
-      %16412 = OpLoad %uint %12053
-      %16413 = OpBitwiseAnd %uint %16412 %uint_32768
-      %16414 = OpUGreaterThan %bool %16413 %uint_0
-               OpSelectionMerge %24847 None
-               OpSwitch %uint_0 %24831
-      %24831 = OpLabel
-               OpSelectionMerge %24846 None
-               OpBranchConditional %16414 %24833 %24841
-      %24841 = OpLabel
-      %24843 = OpISub %uint %184302 %int_1
-      %24844 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %24843
-      %24845 = OpLoad %_arr_v3float_uint_2 %24844
-     %121412 = OpCompositeExtract %v3float %24845 0
-     %121413 = OpCompositeExtract %v3float %24845 1
-               OpBranch %24847
-      %24833 = OpLabel
-      %24835 = OpIAdd %uint %184305 %int_1
-      %24836 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %24837 = OpLoad %v3float %24836
-               OpBranch %24847
-      %24846 = OpLabel
-               OpUnreachable
-      %24847 = OpLabel
-     %260437 = OpPhi %uint %24835 %24833 %184305 %24841
-     %184988 = OpPhi %uint %184302 %24833 %24843 %24841
-     %184987 = OpPhi %v3float %24837 %24833 %121412 %24841
-     %184986 = OpPhi %v3float %24837 %24833 %121413 %24841
-      %16418 = OpExtInst %v3float %1 Sqrt %184987
-      %16422 = OpExtInst %v3float %1 Sqrt %184986
-      %16428 = OpExtInst %v3float %1 FMin %16418 %16422
-      %16434 = OpExtInst %v3float %1 FMax %16418 %16422
-     %123928 = OpCompositeConstruct %_arr_v3float_uint_2 %16428 %16434
-      %24851 = OpIAdd %uint %184988 %int_1
-      %24853 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184988
-               OpStore %24853 %123928
-               OpBranch %20471
-      %16380 = OpLabel
-      %16383 = OpLoad %uint %12053
-      %16384 = OpBitwiseAnd %uint %16383 %uint_32768
-      %16385 = OpUGreaterThan %bool %16384 %uint_0
-               OpSelectionMerge %24819 None
-               OpSwitch %uint_0 %24803
-      %24803 = OpLabel
-               OpSelectionMerge %24818 None
-               OpBranchConditional %16385 %24805 %24813
-      %24813 = OpLabel
-      %24815 = OpISub %uint %184302 %int_1
-      %24816 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %24815
-      %24817 = OpLoad %_arr_v3float_uint_2 %24816
-     %121421 = OpCompositeExtract %v3float %24817 0
-     %121422 = OpCompositeExtract %v3float %24817 1
-               OpBranch %24819
-      %24805 = OpLabel
-      %24807 = OpIAdd %uint %184305 %int_1
-      %24808 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %24809 = OpLoad %v3float %24808
-               OpBranch %24819
-      %24818 = OpLabel
-               OpUnreachable
-      %24819 = OpLabel
-     %260436 = OpPhi %uint %24807 %24805 %184305 %24813
-     %184991 = OpPhi %uint %184302 %24805 %24815 %24813
-     %184990 = OpPhi %v3float %24809 %24805 %121421 %24813
-     %184989 = OpPhi %v3float %24809 %24805 %121422 %24813
-      %16389 = OpExtInst %v3float %1 Fract %184990
-      %16393 = OpExtInst %v3float %1 Fract %184989
-      %16399 = OpExtInst %v3float %1 FMin %16389 %16393
-      %16405 = OpExtInst %v3float %1 FMax %16389 %16393
-     %123919 = OpCompositeConstruct %_arr_v3float_uint_2 %16399 %16405
-      %24823 = OpIAdd %uint %184991 %int_1
-      %24825 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184991
-               OpStore %24825 %123919
-               OpBranch %20471
-      %16351 = OpLabel
-      %16354 = OpLoad %uint %12053
-      %16355 = OpBitwiseAnd %uint %16354 %uint_32768
-      %16356 = OpUGreaterThan %bool %16355 %uint_0
-               OpSelectionMerge %24791 None
-               OpSwitch %uint_0 %24775
-      %24775 = OpLabel
-               OpSelectionMerge %24790 None
-               OpBranchConditional %16356 %24777 %24785
-      %24785 = OpLabel
-      %24787 = OpISub %uint %184302 %int_1
-      %24788 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %24787
-      %24789 = OpLoad %_arr_v3float_uint_2 %24788
-     %121430 = OpCompositeExtract %v3float %24789 0
-     %121431 = OpCompositeExtract %v3float %24789 1
-               OpBranch %24791
-      %24777 = OpLabel
-      %24779 = OpIAdd %uint %184305 %int_1
-      %24780 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %24781 = OpLoad %v3float %24780
-               OpBranch %24791
-      %24790 = OpLabel
-               OpUnreachable
-      %24791 = OpLabel
-     %260435 = OpPhi %uint %24779 %24777 %184305 %24785
-     %184994 = OpPhi %uint %184302 %24777 %24787 %24785
-     %184993 = OpPhi %v3float %24781 %24777 %121430 %24785
-     %184992 = OpPhi %v3float %24781 %24777 %121431 %24785
-      %16360 = OpExtInst %v3float %1 Ceil %184993
-      %16364 = OpExtInst %v3float %1 Ceil %184992
-      %16370 = OpExtInst %v3float %1 FMin %16360 %16364
-      %16376 = OpExtInst %v3float %1 FMax %16360 %16364
-     %123910 = OpCompositeConstruct %_arr_v3float_uint_2 %16370 %16376
-      %24795 = OpIAdd %uint %184994 %int_1
-      %24797 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184994
-               OpStore %24797 %123910
-               OpBranch %20471
-      %16322 = OpLabel
-      %16325 = OpLoad %uint %12053
-      %16326 = OpBitwiseAnd %uint %16325 %uint_32768
-      %16327 = OpUGreaterThan %bool %16326 %uint_0
-               OpSelectionMerge %24763 None
-               OpSwitch %uint_0 %24747
-      %24747 = OpLabel
-               OpSelectionMerge %24762 None
-               OpBranchConditional %16327 %24749 %24757
-      %24757 = OpLabel
-      %24759 = OpISub %uint %184302 %int_1
-      %24760 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %24759
-      %24761 = OpLoad %_arr_v3float_uint_2 %24760
-     %121439 = OpCompositeExtract %v3float %24761 0
-     %121440 = OpCompositeExtract %v3float %24761 1
-               OpBranch %24763
-      %24749 = OpLabel
-      %24751 = OpIAdd %uint %184305 %int_1
-      %24752 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %24753 = OpLoad %v3float %24752
-               OpBranch %24763
-      %24762 = OpLabel
-               OpUnreachable
-      %24763 = OpLabel
-     %260434 = OpPhi %uint %24751 %24749 %184305 %24757
-     %184997 = OpPhi %uint %184302 %24749 %24759 %24757
-     %184996 = OpPhi %v3float %24753 %24749 %121439 %24757
-     %184995 = OpPhi %v3float %24753 %24749 %121440 %24757
-      %16331 = OpExtInst %v3float %1 Floor %184996
-      %16335 = OpExtInst %v3float %1 Floor %184995
-      %16341 = OpExtInst %v3float %1 FMin %16331 %16335
-      %16347 = OpExtInst %v3float %1 FMax %16331 %16335
-     %123901 = OpCompositeConstruct %_arr_v3float_uint_2 %16341 %16347
-      %24767 = OpIAdd %uint %184997 %int_1
-      %24769 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %184997
-               OpStore %24769 %123901
-               OpBranch %20471
-      %16293 = OpLabel
-      %16296 = OpLoad %uint %12053
-      %16297 = OpBitwiseAnd %uint %16296 %uint_32768
-      %16298 = OpUGreaterThan %bool %16297 %uint_0
-               OpSelectionMerge %24735 None
-               OpSwitch %uint_0 %24719
-      %24719 = OpLabel
-               OpSelectionMerge %24734 None
-               OpBranchConditional %16298 %24721 %24729
-      %24729 = OpLabel
-      %24731 = OpISub %uint %184302 %int_1
-      %24732 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %24731
-      %24733 = OpLoad %_arr_v3float_uint_2 %24732
-     %121448 = OpCompositeExtract %v3float %24733 0
-     %121449 = OpCompositeExtract %v3float %24733 1
-               OpBranch %24735
-      %24721 = OpLabel
-      %24723 = OpIAdd %uint %184305 %int_1
-      %24724 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %24725 = OpLoad %v3float %24724
-               OpBranch %24735
-      %24734 = OpLabel
-               OpUnreachable
-      %24735 = OpLabel
-     %260433 = OpPhi %uint %24723 %24721 %184305 %24729
-     %185000 = OpPhi %uint %184302 %24721 %24731 %24729
-     %184999 = OpPhi %v3float %24725 %24721 %121448 %24729
-     %184998 = OpPhi %v3float %24725 %24721 %121449 %24729
-      %16302 = OpExtInst %v3float %1 FSign %184999
-      %16306 = OpExtInst %v3float %1 FSign %184998
-      %16312 = OpExtInst %v3float %1 FMin %16302 %16306
-      %16318 = OpExtInst %v3float %1 FMax %16302 %16306
-     %123892 = OpCompositeConstruct %_arr_v3float_uint_2 %16312 %16318
-      %24739 = OpIAdd %uint %185000 %int_1
-      %24741 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185000
-               OpStore %24741 %123892
-               OpBranch %20471
-      %16264 = OpLabel
-      %16267 = OpLoad %uint %12053
-      %16268 = OpBitwiseAnd %uint %16267 %uint_32768
-      %16269 = OpUGreaterThan %bool %16268 %uint_0
-               OpSelectionMerge %24707 None
-               OpSwitch %uint_0 %24691
-      %24691 = OpLabel
-               OpSelectionMerge %24706 None
-               OpBranchConditional %16269 %24693 %24701
-      %24701 = OpLabel
-      %24703 = OpISub %uint %184302 %int_1
-      %24704 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %24703
-      %24705 = OpLoad %_arr_v3float_uint_2 %24704
-     %121457 = OpCompositeExtract %v3float %24705 0
-     %121458 = OpCompositeExtract %v3float %24705 1
-               OpBranch %24707
-      %24693 = OpLabel
-      %24695 = OpIAdd %uint %184305 %int_1
-      %24696 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %24697 = OpLoad %v3float %24696
-               OpBranch %24707
-      %24706 = OpLabel
-               OpUnreachable
-      %24707 = OpLabel
-     %260432 = OpPhi %uint %24695 %24693 %184305 %24701
-     %185003 = OpPhi %uint %184302 %24693 %24703 %24701
-     %185002 = OpPhi %v3float %24697 %24693 %121457 %24701
-     %185001 = OpPhi %v3float %24697 %24693 %121458 %24701
-      %16273 = OpExtInst %v3float %1 FAbs %185002
-      %16277 = OpExtInst %v3float %1 FAbs %185001
-      %16283 = OpExtInst %v3float %1 FMin %16273 %16277
-      %16289 = OpExtInst %v3float %1 FMax %16273 %16277
-     %123883 = OpCompositeConstruct %_arr_v3float_uint_2 %16283 %16289
-      %24711 = OpIAdd %uint %185003 %int_1
-      %24713 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185003
-               OpStore %24713 %123883
-               OpBranch %20471
-      %16182 = OpLabel
-      %16185 = OpLoad %uint %12053
-      %16186 = OpBitwiseAnd %uint %16185 %uint_32768
-      %16187 = OpUGreaterThan %bool %16186 %uint_0
-               OpSelectionMerge %24633 None
-               OpSwitch %uint_0 %24617
-      %24617 = OpLabel
-               OpSelectionMerge %24632 None
-               OpBranchConditional %16187 %24619 %24627
-      %24627 = OpLabel
-      %24629 = OpISub %uint %184313 %int_1
-      %24630 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24629
-      %24631 = OpLoad %_arr_v2float_uint_2 %24630
-     %121484 = OpCompositeExtract %v2float %24631 0
-     %121485 = OpCompositeExtract %v2float %24631 1
-               OpBranch %24633
-      %24619 = OpLabel
-      %24621 = OpIAdd %uint %184363 %int_1
-      %24622 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24623 = OpLoad %v2float %24622
-               OpBranch %24633
-      %24632 = OpLabel
-               OpUnreachable
-      %24633 = OpLabel
-     %185008 = OpPhi %uint %24621 %24619 %184363 %24627
-     %185007 = OpPhi %uint %184313 %24619 %24629 %24627
-     %185005 = OpPhi %v2float %24623 %24619 %121484 %24627
-     %185004 = OpPhi %v2float %24623 %24619 %121485 %24627
-      %16191 = OpLoad %uint %12053
-      %16192 = OpBitwiseAnd %uint %16191 %uint_16384
-      %16193 = OpUGreaterThan %bool %16192 %uint_0
-               OpSelectionMerge %24656 None
-               OpSwitch %uint_0 %24640
-      %24640 = OpLabel
-               OpSelectionMerge %24655 None
-               OpBranchConditional %16193 %24642 %24650
-      %24650 = OpLabel
-      %24652 = OpISub %uint %185007 %int_1
-      %24653 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24652
-      %24654 = OpLoad %_arr_v2float_uint_2 %24653
-     %121475 = OpCompositeExtract %v2float %24654 0
-     %121476 = OpCompositeExtract %v2float %24654 1
-               OpBranch %24656
-      %24642 = OpLabel
-      %24644 = OpIAdd %uint %185008 %int_1
-      %24645 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %185008
-      %24646 = OpLoad %v2float %24645
-               OpBranch %24656
-      %24655 = OpLabel
-               OpUnreachable
-      %24656 = OpLabel
-     %185013 = OpPhi %uint %24644 %24642 %185008 %24650
-     %185012 = OpPhi %uint %185007 %24642 %24652 %24650
-     %185010 = OpPhi %v2float %24646 %24642 %121475 %24650
-     %185009 = OpPhi %v2float %24646 %24642 %121476 %24650
-      %16197 = OpLoad %uint %12053
-      %16198 = OpBitwiseAnd %uint %16197 %uint_8192
-      %16199 = OpUGreaterThan %bool %16198 %uint_0
-               OpSelectionMerge %24679 None
-               OpSwitch %uint_0 %24663
-      %24663 = OpLabel
-               OpSelectionMerge %24678 None
-               OpBranchConditional %16199 %24665 %24673
-      %24673 = OpLabel
-      %24675 = OpISub %uint %185012 %int_1
-      %24676 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24675
-      %24677 = OpLoad %_arr_v2float_uint_2 %24676
-     %121466 = OpCompositeExtract %v2float %24677 0
-     %121467 = OpCompositeExtract %v2float %24677 1
-               OpBranch %24679
-      %24665 = OpLabel
-      %24667 = OpIAdd %uint %185013 %int_1
-      %24668 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %185013
-      %24669 = OpLoad %v2float %24668
-               OpBranch %24679
-      %24678 = OpLabel
-               OpUnreachable
-      %24679 = OpLabel
-     %262143 = OpPhi %uint %24667 %24665 %185013 %24673
-     %185022 = OpPhi %uint %185012 %24665 %24675 %24673
-     %185015 = OpPhi %v2float %24669 %24665 %121466 %24673
-     %185014 = OpPhi %v2float %24669 %24665 %121467 %24673
-      %16205 = OpFMul %v2float %185005 %185010
-      %16211 = OpFMul %v2float %185005 %185009
-      %16217 = OpFMul %v2float %185004 %185010
-      %16223 = OpFMul %v2float %185004 %185009
-      %16233 = OpExtInst %v2float %1 FMin %16217 %16223
-      %16234 = OpExtInst %v2float %1 FMin %16211 %16233
-      %16235 = OpExtInst %v2float %1 FMin %16205 %16234
-      %16245 = OpExtInst %v2float %1 FMax %16217 %16223
-      %16246 = OpExtInst %v2float %1 FMax %16211 %16245
-      %16247 = OpExtInst %v2float %1 FMax %16205 %16246
-      %16254 = OpFAdd %v2float %16235 %185015
-      %16260 = OpFAdd %v2float %16247 %185014
-     %123866 = OpCompositeConstruct %_arr_v2float_uint_2 %16254 %16260
-      %24683 = OpIAdd %uint %185022 %int_1
-      %24685 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185022
-               OpStore %24685 %123866
-               OpBranch %20471
-      %16155 = OpLabel
-      %16158 = OpLoad %uint %12053
-      %16159 = OpBitwiseAnd %uint %16158 %uint_32768
-      %16160 = OpUGreaterThan %bool %16159 %uint_0
-               OpSelectionMerge %24582 None
-               OpSwitch %uint_0 %24566
-      %24566 = OpLabel
-               OpSelectionMerge %24581 None
-               OpBranchConditional %16160 %24568 %24576
-      %24576 = OpLabel
-      %24578 = OpISub %uint %184313 %int_1
-      %24579 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24578
-      %24580 = OpLoad %_arr_v2float_uint_2 %24579
-     %121502 = OpCompositeExtract %v2float %24580 0
-     %121503 = OpCompositeExtract %v2float %24580 1
-               OpBranch %24582
-      %24568 = OpLabel
-      %24570 = OpIAdd %uint %184363 %int_1
-      %24571 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24572 = OpLoad %v2float %24571
-               OpBranch %24582
-      %24581 = OpLabel
-               OpUnreachable
-      %24582 = OpLabel
-     %185027 = OpPhi %uint %24570 %24568 %184363 %24576
-     %185026 = OpPhi %uint %184313 %24568 %24578 %24576
-     %185024 = OpPhi %v2float %24572 %24568 %121502 %24576
-     %185023 = OpPhi %v2float %24572 %24568 %121503 %24576
-      %16164 = OpLoad %uint %12053
-      %16165 = OpBitwiseAnd %uint %16164 %uint_16384
-      %16166 = OpUGreaterThan %bool %16165 %uint_0
-               OpSelectionMerge %24605 None
-               OpSwitch %uint_0 %24589
-      %24589 = OpLabel
-               OpSelectionMerge %24604 None
-               OpBranchConditional %16166 %24591 %24599
-      %24599 = OpLabel
-      %24601 = OpISub %uint %185026 %int_1
-      %24602 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24601
-      %24603 = OpLoad %_arr_v2float_uint_2 %24602
-     %121493 = OpCompositeExtract %v2float %24603 0
-     %121494 = OpCompositeExtract %v2float %24603 1
-               OpBranch %24605
-      %24591 = OpLabel
-      %24593 = OpIAdd %uint %185027 %int_1
-      %24594 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %185027
-      %24595 = OpLoad %v2float %24594
-               OpBranch %24605
-      %24604 = OpLabel
-               OpUnreachable
-      %24605 = OpLabel
-     %262142 = OpPhi %uint %24593 %24591 %185027 %24599
-     %185032 = OpPhi %uint %185026 %24591 %24601 %24599
-     %185029 = OpPhi %v2float %24595 %24591 %121493 %24599
-     %185028 = OpPhi %v2float %24595 %24591 %121494 %24599
-      %16172 = OpExtInst %v2float %1 FMax %185024 %185029
-      %16178 = OpExtInst %v2float %1 FMax %185023 %185028
-     %123855 = OpCompositeConstruct %_arr_v2float_uint_2 %16172 %16178
-      %24609 = OpIAdd %uint %185032 %int_1
-      %24611 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185032
-               OpStore %24611 %123855
-               OpBranch %20471
-      %16128 = OpLabel
-      %16131 = OpLoad %uint %12053
-      %16132 = OpBitwiseAnd %uint %16131 %uint_32768
-      %16133 = OpUGreaterThan %bool %16132 %uint_0
-               OpSelectionMerge %24531 None
-               OpSwitch %uint_0 %24515
-      %24515 = OpLabel
-               OpSelectionMerge %24530 None
-               OpBranchConditional %16133 %24517 %24525
-      %24525 = OpLabel
-      %24527 = OpISub %uint %184313 %int_1
-      %24528 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24527
-      %24529 = OpLoad %_arr_v2float_uint_2 %24528
-     %121520 = OpCompositeExtract %v2float %24529 0
-     %121521 = OpCompositeExtract %v2float %24529 1
-               OpBranch %24531
-      %24517 = OpLabel
-      %24519 = OpIAdd %uint %184363 %int_1
-      %24520 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24521 = OpLoad %v2float %24520
-               OpBranch %24531
-      %24530 = OpLabel
-               OpUnreachable
-      %24531 = OpLabel
-     %185037 = OpPhi %uint %24519 %24517 %184363 %24525
-     %185036 = OpPhi %uint %184313 %24517 %24527 %24525
-     %185034 = OpPhi %v2float %24521 %24517 %121520 %24525
-     %185033 = OpPhi %v2float %24521 %24517 %121521 %24525
-      %16137 = OpLoad %uint %12053
-      %16138 = OpBitwiseAnd %uint %16137 %uint_16384
-      %16139 = OpUGreaterThan %bool %16138 %uint_0
-               OpSelectionMerge %24554 None
-               OpSwitch %uint_0 %24538
-      %24538 = OpLabel
-               OpSelectionMerge %24553 None
-               OpBranchConditional %16139 %24540 %24548
-      %24548 = OpLabel
-      %24550 = OpISub %uint %185036 %int_1
-      %24551 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24550
-      %24552 = OpLoad %_arr_v2float_uint_2 %24551
-     %121511 = OpCompositeExtract %v2float %24552 0
-     %121512 = OpCompositeExtract %v2float %24552 1
-               OpBranch %24554
-      %24540 = OpLabel
-      %24542 = OpIAdd %uint %185037 %int_1
-      %24543 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %185037
-      %24544 = OpLoad %v2float %24543
-               OpBranch %24554
-      %24553 = OpLabel
-               OpUnreachable
-      %24554 = OpLabel
-     %262141 = OpPhi %uint %24542 %24540 %185037 %24548
-     %185042 = OpPhi %uint %185036 %24540 %24550 %24548
-     %185039 = OpPhi %v2float %24544 %24540 %121511 %24548
-     %185038 = OpPhi %v2float %24544 %24540 %121512 %24548
-      %16145 = OpExtInst %v2float %1 FMin %185034 %185039
-      %16151 = OpExtInst %v2float %1 FMin %185033 %185038
-     %123844 = OpCompositeConstruct %_arr_v2float_uint_2 %16145 %16151
-      %24558 = OpIAdd %uint %185042 %int_1
-      %24560 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185042
-               OpStore %24560 %123844
-               OpBranch %20471
-      %16099 = OpLabel
-      %16102 = OpLoad %uint %12053
-      %16103 = OpBitwiseAnd %uint %16102 %uint_32768
-      %16104 = OpUGreaterThan %bool %16103 %uint_0
-               OpSelectionMerge %24503 None
-               OpSwitch %uint_0 %24487
-      %24487 = OpLabel
-               OpSelectionMerge %24502 None
-               OpBranchConditional %16104 %24489 %24497
-      %24497 = OpLabel
-      %24499 = OpISub %uint %184313 %int_1
-      %24500 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24499
-      %24501 = OpLoad %_arr_v2float_uint_2 %24500
-     %121529 = OpCompositeExtract %v2float %24501 0
-     %121530 = OpCompositeExtract %v2float %24501 1
-               OpBranch %24503
-      %24489 = OpLabel
-      %24491 = OpIAdd %uint %184363 %int_1
-      %24492 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24493 = OpLoad %v2float %24492
-               OpBranch %24503
-      %24502 = OpLabel
-               OpUnreachable
-      %24503 = OpLabel
-     %262140 = OpPhi %uint %24491 %24489 %184363 %24497
-     %185045 = OpPhi %uint %184313 %24489 %24499 %24497
-     %185044 = OpPhi %v2float %24493 %24489 %121529 %24497
-     %185043 = OpPhi %v2float %24493 %24489 %121530 %24497
-      %16108 = OpExtInst %v2float %1 Trunc %185044
-      %16112 = OpExtInst %v2float %1 Trunc %185043
-      %16118 = OpExtInst %v2float %1 FMin %16108 %16112
-      %16124 = OpExtInst %v2float %1 FMax %16108 %16112
-     %123835 = OpCompositeConstruct %_arr_v2float_uint_2 %16118 %16124
-      %24507 = OpIAdd %uint %185045 %int_1
-      %24509 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185045
-               OpStore %24509 %123835
-               OpBranch %20471
-      %16070 = OpLabel
-      %16073 = OpLoad %uint %12053
-      %16074 = OpBitwiseAnd %uint %16073 %uint_32768
-      %16075 = OpUGreaterThan %bool %16074 %uint_0
-               OpSelectionMerge %24475 None
-               OpSwitch %uint_0 %24459
-      %24459 = OpLabel
-               OpSelectionMerge %24474 None
-               OpBranchConditional %16075 %24461 %24469
-      %24469 = OpLabel
-      %24471 = OpISub %uint %184313 %int_1
-      %24472 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24471
-      %24473 = OpLoad %_arr_v2float_uint_2 %24472
-     %121538 = OpCompositeExtract %v2float %24473 0
-     %121539 = OpCompositeExtract %v2float %24473 1
-               OpBranch %24475
-      %24461 = OpLabel
-      %24463 = OpIAdd %uint %184363 %int_1
-      %24464 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24465 = OpLoad %v2float %24464
-               OpBranch %24475
-      %24474 = OpLabel
-               OpUnreachable
-      %24475 = OpLabel
-     %262139 = OpPhi %uint %24463 %24461 %184363 %24469
-     %185048 = OpPhi %uint %184313 %24461 %24471 %24469
-     %185047 = OpPhi %v2float %24465 %24461 %121538 %24469
-     %185046 = OpPhi %v2float %24465 %24461 %121539 %24469
-      %16079 = OpExtInst %v2float %1 Round %185047
-      %16083 = OpExtInst %v2float %1 Round %185046
-      %16089 = OpExtInst %v2float %1 FMin %16079 %16083
-      %16095 = OpExtInst %v2float %1 FMax %16079 %16083
-     %123826 = OpCompositeConstruct %_arr_v2float_uint_2 %16089 %16095
-      %24479 = OpIAdd %uint %185048 %int_1
-      %24481 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185048
-               OpStore %24481 %123826
-               OpBranch %20471
-      %16041 = OpLabel
-      %16044 = OpLoad %uint %12053
-      %16045 = OpBitwiseAnd %uint %16044 %uint_32768
-      %16046 = OpUGreaterThan %bool %16045 %uint_0
-               OpSelectionMerge %24447 None
-               OpSwitch %uint_0 %24431
-      %24431 = OpLabel
-               OpSelectionMerge %24446 None
-               OpBranchConditional %16046 %24433 %24441
-      %24441 = OpLabel
-      %24443 = OpISub %uint %184313 %int_1
-      %24444 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24443
-      %24445 = OpLoad %_arr_v2float_uint_2 %24444
-     %121547 = OpCompositeExtract %v2float %24445 0
-     %121548 = OpCompositeExtract %v2float %24445 1
-               OpBranch %24447
-      %24433 = OpLabel
-      %24435 = OpIAdd %uint %184363 %int_1
-      %24436 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24437 = OpLoad %v2float %24436
-               OpBranch %24447
-      %24446 = OpLabel
-               OpUnreachable
-      %24447 = OpLabel
-     %262138 = OpPhi %uint %24435 %24433 %184363 %24441
-     %185051 = OpPhi %uint %184313 %24433 %24443 %24441
-     %185050 = OpPhi %v2float %24437 %24433 %121547 %24441
-     %185049 = OpPhi %v2float %24437 %24433 %121548 %24441
-      %16050 = OpExtInst %v2float %1 Tanh %185050
-      %16054 = OpExtInst %v2float %1 Tanh %185049
-      %16060 = OpExtInst %v2float %1 FMin %16050 %16054
-      %16066 = OpExtInst %v2float %1 FMax %16050 %16054
-     %123817 = OpCompositeConstruct %_arr_v2float_uint_2 %16060 %16066
-      %24451 = OpIAdd %uint %185051 %int_1
-      %24453 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185051
-               OpStore %24453 %123817
-               OpBranch %20471
-      %16012 = OpLabel
-      %16015 = OpLoad %uint %12053
-      %16016 = OpBitwiseAnd %uint %16015 %uint_32768
-      %16017 = OpUGreaterThan %bool %16016 %uint_0
-               OpSelectionMerge %24419 None
-               OpSwitch %uint_0 %24403
-      %24403 = OpLabel
-               OpSelectionMerge %24418 None
-               OpBranchConditional %16017 %24405 %24413
-      %24413 = OpLabel
-      %24415 = OpISub %uint %184313 %int_1
-      %24416 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24415
-      %24417 = OpLoad %_arr_v2float_uint_2 %24416
-     %121556 = OpCompositeExtract %v2float %24417 0
-     %121557 = OpCompositeExtract %v2float %24417 1
-               OpBranch %24419
-      %24405 = OpLabel
-      %24407 = OpIAdd %uint %184363 %int_1
-      %24408 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24409 = OpLoad %v2float %24408
-               OpBranch %24419
-      %24418 = OpLabel
-               OpUnreachable
-      %24419 = OpLabel
-     %262137 = OpPhi %uint %24407 %24405 %184363 %24413
-     %185054 = OpPhi %uint %184313 %24405 %24415 %24413
-     %185053 = OpPhi %v2float %24409 %24405 %121556 %24413
-     %185052 = OpPhi %v2float %24409 %24405 %121557 %24413
-      %16021 = OpExtInst %v2float %1 Sinh %185053
-      %16025 = OpExtInst %v2float %1 Sinh %185052
-      %16031 = OpExtInst %v2float %1 FMin %16021 %16025
-      %16037 = OpExtInst %v2float %1 FMax %16021 %16025
-     %123808 = OpCompositeConstruct %_arr_v2float_uint_2 %16031 %16037
-      %24423 = OpIAdd %uint %185054 %int_1
-      %24425 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185054
-               OpStore %24425 %123808
-               OpBranch %20471
-      %15983 = OpLabel
-      %15986 = OpLoad %uint %12053
-      %15987 = OpBitwiseAnd %uint %15986 %uint_32768
-      %15988 = OpUGreaterThan %bool %15987 %uint_0
-               OpSelectionMerge %24391 None
-               OpSwitch %uint_0 %24375
-      %24375 = OpLabel
-               OpSelectionMerge %24390 None
-               OpBranchConditional %15988 %24377 %24385
-      %24385 = OpLabel
-      %24387 = OpISub %uint %184313 %int_1
-      %24388 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24387
-      %24389 = OpLoad %_arr_v2float_uint_2 %24388
-     %121565 = OpCompositeExtract %v2float %24389 0
-     %121566 = OpCompositeExtract %v2float %24389 1
-               OpBranch %24391
-      %24377 = OpLabel
-      %24379 = OpIAdd %uint %184363 %int_1
-      %24380 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24381 = OpLoad %v2float %24380
-               OpBranch %24391
-      %24390 = OpLabel
-               OpUnreachable
-      %24391 = OpLabel
-     %262136 = OpPhi %uint %24379 %24377 %184363 %24385
-     %185057 = OpPhi %uint %184313 %24377 %24387 %24385
-     %185056 = OpPhi %v2float %24381 %24377 %121565 %24385
-     %185055 = OpPhi %v2float %24381 %24377 %121566 %24385
-      %15992 = OpExtInst %v2float %1 Cosh %185056
-      %15996 = OpExtInst %v2float %1 Cosh %185055
-      %16002 = OpExtInst %v2float %1 FMin %15992 %15996
-      %16008 = OpExtInst %v2float %1 FMax %15992 %15996
-     %123799 = OpCompositeConstruct %_arr_v2float_uint_2 %16002 %16008
-      %24395 = OpIAdd %uint %185057 %int_1
-      %24397 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185057
-               OpStore %24397 %123799
-               OpBranch %20471
-      %15954 = OpLabel
-      %15957 = OpLoad %uint %12053
-      %15958 = OpBitwiseAnd %uint %15957 %uint_32768
-      %15959 = OpUGreaterThan %bool %15958 %uint_0
-               OpSelectionMerge %24363 None
-               OpSwitch %uint_0 %24347
-      %24347 = OpLabel
-               OpSelectionMerge %24362 None
-               OpBranchConditional %15959 %24349 %24357
-      %24357 = OpLabel
-      %24359 = OpISub %uint %184313 %int_1
-      %24360 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24359
-      %24361 = OpLoad %_arr_v2float_uint_2 %24360
-     %121574 = OpCompositeExtract %v2float %24361 0
-     %121575 = OpCompositeExtract %v2float %24361 1
-               OpBranch %24363
-      %24349 = OpLabel
-      %24351 = OpIAdd %uint %184363 %int_1
-      %24352 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24353 = OpLoad %v2float %24352
-               OpBranch %24363
-      %24362 = OpLabel
-               OpUnreachable
-      %24363 = OpLabel
-     %262135 = OpPhi %uint %24351 %24349 %184363 %24357
-     %185060 = OpPhi %uint %184313 %24349 %24359 %24357
-     %185059 = OpPhi %v2float %24353 %24349 %121574 %24357
-     %185058 = OpPhi %v2float %24353 %24349 %121575 %24357
-      %15963 = OpExtInst %v2float %1 Atanh %185059
-      %15967 = OpExtInst %v2float %1 Atanh %185058
-      %15973 = OpExtInst %v2float %1 FMin %15963 %15967
-      %15979 = OpExtInst %v2float %1 FMax %15963 %15967
-     %123790 = OpCompositeConstruct %_arr_v2float_uint_2 %15973 %15979
-      %24367 = OpIAdd %uint %185060 %int_1
-      %24369 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185060
-               OpStore %24369 %123790
-               OpBranch %20471
-      %15925 = OpLabel
-      %15928 = OpLoad %uint %12053
-      %15929 = OpBitwiseAnd %uint %15928 %uint_32768
-      %15930 = OpUGreaterThan %bool %15929 %uint_0
-               OpSelectionMerge %24335 None
-               OpSwitch %uint_0 %24319
-      %24319 = OpLabel
-               OpSelectionMerge %24334 None
-               OpBranchConditional %15930 %24321 %24329
-      %24329 = OpLabel
-      %24331 = OpISub %uint %184313 %int_1
-      %24332 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24331
-      %24333 = OpLoad %_arr_v2float_uint_2 %24332
-     %121583 = OpCompositeExtract %v2float %24333 0
-     %121584 = OpCompositeExtract %v2float %24333 1
-               OpBranch %24335
-      %24321 = OpLabel
-      %24323 = OpIAdd %uint %184363 %int_1
-      %24324 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24325 = OpLoad %v2float %24324
-               OpBranch %24335
-      %24334 = OpLabel
-               OpUnreachable
-      %24335 = OpLabel
-     %262134 = OpPhi %uint %24323 %24321 %184363 %24329
-     %185063 = OpPhi %uint %184313 %24321 %24331 %24329
-     %185062 = OpPhi %v2float %24325 %24321 %121583 %24329
-     %185061 = OpPhi %v2float %24325 %24321 %121584 %24329
-      %15934 = OpExtInst %v2float %1 Asinh %185062
-      %15938 = OpExtInst %v2float %1 Asinh %185061
-      %15944 = OpExtInst %v2float %1 FMin %15934 %15938
-      %15950 = OpExtInst %v2float %1 FMax %15934 %15938
-     %123781 = OpCompositeConstruct %_arr_v2float_uint_2 %15944 %15950
-      %24339 = OpIAdd %uint %185063 %int_1
-      %24341 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185063
-               OpStore %24341 %123781
-               OpBranch %20471
-      %15896 = OpLabel
-      %15899 = OpLoad %uint %12053
-      %15900 = OpBitwiseAnd %uint %15899 %uint_32768
-      %15901 = OpUGreaterThan %bool %15900 %uint_0
-               OpSelectionMerge %24307 None
-               OpSwitch %uint_0 %24291
-      %24291 = OpLabel
-               OpSelectionMerge %24306 None
-               OpBranchConditional %15901 %24293 %24301
-      %24301 = OpLabel
-      %24303 = OpISub %uint %184313 %int_1
-      %24304 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24303
-      %24305 = OpLoad %_arr_v2float_uint_2 %24304
-     %121592 = OpCompositeExtract %v2float %24305 0
-     %121593 = OpCompositeExtract %v2float %24305 1
-               OpBranch %24307
-      %24293 = OpLabel
-      %24295 = OpIAdd %uint %184363 %int_1
-      %24296 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24297 = OpLoad %v2float %24296
-               OpBranch %24307
-      %24306 = OpLabel
-               OpUnreachable
-      %24307 = OpLabel
-     %262133 = OpPhi %uint %24295 %24293 %184363 %24301
-     %185066 = OpPhi %uint %184313 %24293 %24303 %24301
-     %185065 = OpPhi %v2float %24297 %24293 %121592 %24301
-     %185064 = OpPhi %v2float %24297 %24293 %121593 %24301
-      %15905 = OpExtInst %v2float %1 Acosh %185065
-      %15909 = OpExtInst %v2float %1 Acosh %185064
-      %15915 = OpExtInst %v2float %1 FMin %15905 %15909
-      %15921 = OpExtInst %v2float %1 FMax %15905 %15909
-     %123772 = OpCompositeConstruct %_arr_v2float_uint_2 %15915 %15921
-      %24311 = OpIAdd %uint %185066 %int_1
-      %24313 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185066
-               OpStore %24313 %123772
-               OpBranch %20471
-      %15867 = OpLabel
-      %15870 = OpLoad %uint %12053
-      %15871 = OpBitwiseAnd %uint %15870 %uint_32768
-      %15872 = OpUGreaterThan %bool %15871 %uint_0
-               OpSelectionMerge %24279 None
-               OpSwitch %uint_0 %24263
-      %24263 = OpLabel
-               OpSelectionMerge %24278 None
-               OpBranchConditional %15872 %24265 %24273
-      %24273 = OpLabel
-      %24275 = OpISub %uint %184313 %int_1
-      %24276 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24275
-      %24277 = OpLoad %_arr_v2float_uint_2 %24276
-     %121601 = OpCompositeExtract %v2float %24277 0
-     %121602 = OpCompositeExtract %v2float %24277 1
-               OpBranch %24279
-      %24265 = OpLabel
-      %24267 = OpIAdd %uint %184363 %int_1
-      %24268 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24269 = OpLoad %v2float %24268
-               OpBranch %24279
-      %24278 = OpLabel
-               OpUnreachable
-      %24279 = OpLabel
-     %262132 = OpPhi %uint %24267 %24265 %184363 %24273
-     %185069 = OpPhi %uint %184313 %24265 %24275 %24273
-     %185068 = OpPhi %v2float %24269 %24265 %121601 %24273
-     %185067 = OpPhi %v2float %24269 %24265 %121602 %24273
-      %15876 = OpExtInst %v2float %1 Atan %185068
-      %15880 = OpExtInst %v2float %1 Atan %185067
-      %15886 = OpExtInst %v2float %1 FMin %15876 %15880
-      %15892 = OpExtInst %v2float %1 FMax %15876 %15880
-     %123763 = OpCompositeConstruct %_arr_v2float_uint_2 %15886 %15892
-      %24283 = OpIAdd %uint %185069 %int_1
-      %24285 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185069
-               OpStore %24285 %123763
-               OpBranch %20471
-      %15838 = OpLabel
-      %15841 = OpLoad %uint %12053
-      %15842 = OpBitwiseAnd %uint %15841 %uint_32768
-      %15843 = OpUGreaterThan %bool %15842 %uint_0
-               OpSelectionMerge %24251 None
-               OpSwitch %uint_0 %24235
-      %24235 = OpLabel
-               OpSelectionMerge %24250 None
-               OpBranchConditional %15843 %24237 %24245
-      %24245 = OpLabel
-      %24247 = OpISub %uint %184313 %int_1
-      %24248 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24247
-      %24249 = OpLoad %_arr_v2float_uint_2 %24248
-     %121610 = OpCompositeExtract %v2float %24249 0
-     %121611 = OpCompositeExtract %v2float %24249 1
-               OpBranch %24251
-      %24237 = OpLabel
-      %24239 = OpIAdd %uint %184363 %int_1
-      %24240 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24241 = OpLoad %v2float %24240
-               OpBranch %24251
-      %24250 = OpLabel
-               OpUnreachable
-      %24251 = OpLabel
-     %262131 = OpPhi %uint %24239 %24237 %184363 %24245
-     %185072 = OpPhi %uint %184313 %24237 %24247 %24245
-     %185071 = OpPhi %v2float %24241 %24237 %121610 %24245
-     %185070 = OpPhi %v2float %24241 %24237 %121611 %24245
-      %15847 = OpExtInst %v2float %1 Acos %185071
-      %15851 = OpExtInst %v2float %1 Acos %185070
-      %15857 = OpExtInst %v2float %1 FMin %15847 %15851
-      %15863 = OpExtInst %v2float %1 FMax %15847 %15851
-     %123754 = OpCompositeConstruct %_arr_v2float_uint_2 %15857 %15863
-      %24255 = OpIAdd %uint %185072 %int_1
-      %24257 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185072
-               OpStore %24257 %123754
-               OpBranch %20471
-      %15809 = OpLabel
-      %15812 = OpLoad %uint %12053
-      %15813 = OpBitwiseAnd %uint %15812 %uint_32768
-      %15814 = OpUGreaterThan %bool %15813 %uint_0
-               OpSelectionMerge %24223 None
-               OpSwitch %uint_0 %24207
-      %24207 = OpLabel
-               OpSelectionMerge %24222 None
-               OpBranchConditional %15814 %24209 %24217
-      %24217 = OpLabel
-      %24219 = OpISub %uint %184313 %int_1
-      %24220 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24219
-      %24221 = OpLoad %_arr_v2float_uint_2 %24220
-     %121619 = OpCompositeExtract %v2float %24221 0
-     %121620 = OpCompositeExtract %v2float %24221 1
-               OpBranch %24223
-      %24209 = OpLabel
-      %24211 = OpIAdd %uint %184363 %int_1
-      %24212 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24213 = OpLoad %v2float %24212
-               OpBranch %24223
-      %24222 = OpLabel
-               OpUnreachable
-      %24223 = OpLabel
-     %262130 = OpPhi %uint %24211 %24209 %184363 %24217
-     %185075 = OpPhi %uint %184313 %24209 %24219 %24217
-     %185074 = OpPhi %v2float %24213 %24209 %121619 %24217
-     %185073 = OpPhi %v2float %24213 %24209 %121620 %24217
-      %15818 = OpExtInst %v2float %1 Asin %185074
-      %15822 = OpExtInst %v2float %1 Asin %185073
-      %15828 = OpExtInst %v2float %1 FMin %15818 %15822
-      %15834 = OpExtInst %v2float %1 FMax %15818 %15822
-     %123745 = OpCompositeConstruct %_arr_v2float_uint_2 %15828 %15834
-      %24227 = OpIAdd %uint %185075 %int_1
-      %24229 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185075
-               OpStore %24229 %123745
-               OpBranch %20471
-      %15780 = OpLabel
-      %15783 = OpLoad %uint %12053
-      %15784 = OpBitwiseAnd %uint %15783 %uint_32768
-      %15785 = OpUGreaterThan %bool %15784 %uint_0
-               OpSelectionMerge %24195 None
-               OpSwitch %uint_0 %24179
-      %24179 = OpLabel
-               OpSelectionMerge %24194 None
-               OpBranchConditional %15785 %24181 %24189
-      %24189 = OpLabel
-      %24191 = OpISub %uint %184313 %int_1
-      %24192 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24191
-      %24193 = OpLoad %_arr_v2float_uint_2 %24192
-     %121628 = OpCompositeExtract %v2float %24193 0
-     %121629 = OpCompositeExtract %v2float %24193 1
-               OpBranch %24195
-      %24181 = OpLabel
-      %24183 = OpIAdd %uint %184363 %int_1
-      %24184 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24185 = OpLoad %v2float %24184
-               OpBranch %24195
-      %24194 = OpLabel
-               OpUnreachable
-      %24195 = OpLabel
-     %262129 = OpPhi %uint %24183 %24181 %184363 %24189
-     %185078 = OpPhi %uint %184313 %24181 %24191 %24189
-     %185077 = OpPhi %v2float %24185 %24181 %121628 %24189
-     %185076 = OpPhi %v2float %24185 %24181 %121629 %24189
-      %15789 = OpExtInst %v2float %1 Tan %185077
-      %15793 = OpExtInst %v2float %1 Tan %185076
-      %15799 = OpExtInst %v2float %1 FMin %15789 %15793
-      %15805 = OpExtInst %v2float %1 FMax %15789 %15793
-     %123736 = OpCompositeConstruct %_arr_v2float_uint_2 %15799 %15805
-      %24199 = OpIAdd %uint %185078 %int_1
-      %24201 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185078
-               OpStore %24201 %123736
-               OpBranch %20471
-      %15751 = OpLabel
-      %15754 = OpLoad %uint %12053
-      %15755 = OpBitwiseAnd %uint %15754 %uint_32768
-      %15756 = OpUGreaterThan %bool %15755 %uint_0
-               OpSelectionMerge %24167 None
-               OpSwitch %uint_0 %24151
-      %24151 = OpLabel
-               OpSelectionMerge %24166 None
-               OpBranchConditional %15756 %24153 %24161
-      %24161 = OpLabel
-      %24163 = OpISub %uint %184313 %int_1
-      %24164 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24163
-      %24165 = OpLoad %_arr_v2float_uint_2 %24164
-     %121637 = OpCompositeExtract %v2float %24165 0
-     %121638 = OpCompositeExtract %v2float %24165 1
-               OpBranch %24167
-      %24153 = OpLabel
-      %24155 = OpIAdd %uint %184363 %int_1
-      %24156 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24157 = OpLoad %v2float %24156
-               OpBranch %24167
-      %24166 = OpLabel
-               OpUnreachable
-      %24167 = OpLabel
-     %262128 = OpPhi %uint %24155 %24153 %184363 %24161
-     %185081 = OpPhi %uint %184313 %24153 %24163 %24161
-     %185080 = OpPhi %v2float %24157 %24153 %121637 %24161
-     %185079 = OpPhi %v2float %24157 %24153 %121638 %24161
-      %15760 = OpExtInst %v2float %1 Cos %185080
-      %15764 = OpExtInst %v2float %1 Cos %185079
-      %15770 = OpExtInst %v2float %1 FMin %15760 %15764
-      %15776 = OpExtInst %v2float %1 FMax %15760 %15764
-     %123727 = OpCompositeConstruct %_arr_v2float_uint_2 %15770 %15776
-      %24171 = OpIAdd %uint %185081 %int_1
-      %24173 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185081
-               OpStore %24173 %123727
-               OpBranch %20471
-      %15722 = OpLabel
-      %15725 = OpLoad %uint %12053
-      %15726 = OpBitwiseAnd %uint %15725 %uint_32768
-      %15727 = OpUGreaterThan %bool %15726 %uint_0
-               OpSelectionMerge %24139 None
-               OpSwitch %uint_0 %24123
-      %24123 = OpLabel
-               OpSelectionMerge %24138 None
-               OpBranchConditional %15727 %24125 %24133
-      %24133 = OpLabel
-      %24135 = OpISub %uint %184313 %int_1
-      %24136 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24135
-      %24137 = OpLoad %_arr_v2float_uint_2 %24136
-     %121646 = OpCompositeExtract %v2float %24137 0
-     %121647 = OpCompositeExtract %v2float %24137 1
-               OpBranch %24139
-      %24125 = OpLabel
-      %24127 = OpIAdd %uint %184363 %int_1
-      %24128 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24129 = OpLoad %v2float %24128
-               OpBranch %24139
-      %24138 = OpLabel
-               OpUnreachable
-      %24139 = OpLabel
-     %262127 = OpPhi %uint %24127 %24125 %184363 %24133
-     %185084 = OpPhi %uint %184313 %24125 %24135 %24133
-     %185083 = OpPhi %v2float %24129 %24125 %121646 %24133
-     %185082 = OpPhi %v2float %24129 %24125 %121647 %24133
-      %15731 = OpExtInst %v2float %1 Sin %185083
-      %15735 = OpExtInst %v2float %1 Sin %185082
-      %15741 = OpExtInst %v2float %1 FMin %15731 %15735
-      %15747 = OpExtInst %v2float %1 FMax %15731 %15735
-     %123718 = OpCompositeConstruct %_arr_v2float_uint_2 %15741 %15747
-      %24143 = OpIAdd %uint %185084 %int_1
-      %24145 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185084
-               OpStore %24145 %123718
-               OpBranch %20471
-      %15693 = OpLabel
-      %15696 = OpLoad %uint %12053
-      %15697 = OpBitwiseAnd %uint %15696 %uint_32768
-      %15698 = OpUGreaterThan %bool %15697 %uint_0
-               OpSelectionMerge %24111 None
-               OpSwitch %uint_0 %24095
-      %24095 = OpLabel
-               OpSelectionMerge %24110 None
-               OpBranchConditional %15698 %24097 %24105
-      %24105 = OpLabel
-      %24107 = OpISub %uint %184313 %int_1
-      %24108 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24107
-      %24109 = OpLoad %_arr_v2float_uint_2 %24108
-     %121655 = OpCompositeExtract %v2float %24109 0
-     %121656 = OpCompositeExtract %v2float %24109 1
-               OpBranch %24111
-      %24097 = OpLabel
-      %24099 = OpIAdd %uint %184363 %int_1
-      %24100 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24101 = OpLoad %v2float %24100
-               OpBranch %24111
-      %24110 = OpLabel
-               OpUnreachable
-      %24111 = OpLabel
-     %262126 = OpPhi %uint %24099 %24097 %184363 %24105
-     %185087 = OpPhi %uint %184313 %24097 %24107 %24105
-     %185086 = OpPhi %v2float %24101 %24097 %121655 %24105
-     %185085 = OpPhi %v2float %24101 %24097 %121656 %24105
-      %15702 = OpExtInst %v2float %1 Log2 %185086
-      %15706 = OpExtInst %v2float %1 Log2 %185085
-      %15712 = OpExtInst %v2float %1 FMin %15702 %15706
-      %15718 = OpExtInst %v2float %1 FMax %15702 %15706
-     %123709 = OpCompositeConstruct %_arr_v2float_uint_2 %15712 %15718
-      %24115 = OpIAdd %uint %185087 %int_1
-      %24117 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185087
-               OpStore %24117 %123709
-               OpBranch %20471
-      %15664 = OpLabel
-      %15667 = OpLoad %uint %12053
-      %15668 = OpBitwiseAnd %uint %15667 %uint_32768
-      %15669 = OpUGreaterThan %bool %15668 %uint_0
-               OpSelectionMerge %24083 None
-               OpSwitch %uint_0 %24067
-      %24067 = OpLabel
-               OpSelectionMerge %24082 None
-               OpBranchConditional %15669 %24069 %24077
-      %24077 = OpLabel
-      %24079 = OpISub %uint %184313 %int_1
-      %24080 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24079
-      %24081 = OpLoad %_arr_v2float_uint_2 %24080
-     %121664 = OpCompositeExtract %v2float %24081 0
-     %121665 = OpCompositeExtract %v2float %24081 1
-               OpBranch %24083
-      %24069 = OpLabel
-      %24071 = OpIAdd %uint %184363 %int_1
-      %24072 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24073 = OpLoad %v2float %24072
-               OpBranch %24083
-      %24082 = OpLabel
-               OpUnreachable
-      %24083 = OpLabel
-     %262125 = OpPhi %uint %24071 %24069 %184363 %24077
-     %185090 = OpPhi %uint %184313 %24069 %24079 %24077
-     %185089 = OpPhi %v2float %24073 %24069 %121664 %24077
-     %185088 = OpPhi %v2float %24073 %24069 %121665 %24077
-      %15673 = OpExtInst %v2float %1 Log %185089
-      %15677 = OpExtInst %v2float %1 Log %185088
-      %15683 = OpExtInst %v2float %1 FMin %15673 %15677
-      %15689 = OpExtInst %v2float %1 FMax %15673 %15677
-     %123700 = OpCompositeConstruct %_arr_v2float_uint_2 %15683 %15689
-      %24087 = OpIAdd %uint %185090 %int_1
-      %24089 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185090
-               OpStore %24089 %123700
-               OpBranch %20471
-      %15635 = OpLabel
-      %15638 = OpLoad %uint %12053
-      %15639 = OpBitwiseAnd %uint %15638 %uint_32768
-      %15640 = OpUGreaterThan %bool %15639 %uint_0
-               OpSelectionMerge %24055 None
-               OpSwitch %uint_0 %24039
-      %24039 = OpLabel
-               OpSelectionMerge %24054 None
-               OpBranchConditional %15640 %24041 %24049
-      %24049 = OpLabel
-      %24051 = OpISub %uint %184313 %int_1
-      %24052 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24051
-      %24053 = OpLoad %_arr_v2float_uint_2 %24052
-     %121673 = OpCompositeExtract %v2float %24053 0
-     %121674 = OpCompositeExtract %v2float %24053 1
-               OpBranch %24055
-      %24041 = OpLabel
-      %24043 = OpIAdd %uint %184363 %int_1
-      %24044 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24045 = OpLoad %v2float %24044
-               OpBranch %24055
-      %24054 = OpLabel
-               OpUnreachable
-      %24055 = OpLabel
-     %262124 = OpPhi %uint %24043 %24041 %184363 %24049
-     %185093 = OpPhi %uint %184313 %24041 %24051 %24049
-     %185092 = OpPhi %v2float %24045 %24041 %121673 %24049
-     %185091 = OpPhi %v2float %24045 %24041 %121674 %24049
-      %15644 = OpExtInst %v2float %1 Exp2 %185092
-      %15648 = OpExtInst %v2float %1 Exp2 %185091
-      %15654 = OpExtInst %v2float %1 FMin %15644 %15648
-      %15660 = OpExtInst %v2float %1 FMax %15644 %15648
-     %123691 = OpCompositeConstruct %_arr_v2float_uint_2 %15654 %15660
-      %24059 = OpIAdd %uint %185093 %int_1
-      %24061 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185093
-               OpStore %24061 %123691
-               OpBranch %20471
-      %15606 = OpLabel
-      %15609 = OpLoad %uint %12053
-      %15610 = OpBitwiseAnd %uint %15609 %uint_32768
-      %15611 = OpUGreaterThan %bool %15610 %uint_0
-               OpSelectionMerge %24027 None
-               OpSwitch %uint_0 %24011
-      %24011 = OpLabel
-               OpSelectionMerge %24026 None
-               OpBranchConditional %15611 %24013 %24021
-      %24021 = OpLabel
-      %24023 = OpISub %uint %184313 %int_1
-      %24024 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %24023
-      %24025 = OpLoad %_arr_v2float_uint_2 %24024
-     %121682 = OpCompositeExtract %v2float %24025 0
-     %121683 = OpCompositeExtract %v2float %24025 1
-               OpBranch %24027
-      %24013 = OpLabel
-      %24015 = OpIAdd %uint %184363 %int_1
-      %24016 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %24017 = OpLoad %v2float %24016
-               OpBranch %24027
-      %24026 = OpLabel
-               OpUnreachable
-      %24027 = OpLabel
-     %262123 = OpPhi %uint %24015 %24013 %184363 %24021
-     %185096 = OpPhi %uint %184313 %24013 %24023 %24021
-     %185095 = OpPhi %v2float %24017 %24013 %121682 %24021
-     %185094 = OpPhi %v2float %24017 %24013 %121683 %24021
-      %15615 = OpExtInst %v2float %1 Exp %185095
-      %15619 = OpExtInst %v2float %1 Exp %185094
-      %15625 = OpExtInst %v2float %1 FMin %15615 %15619
-      %15631 = OpExtInst %v2float %1 FMax %15615 %15619
-     %123682 = OpCompositeConstruct %_arr_v2float_uint_2 %15625 %15631
-      %24031 = OpIAdd %uint %185096 %int_1
-      %24033 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185096
-               OpStore %24033 %123682
-               OpBranch %20471
-      %15577 = OpLabel
-      %15580 = OpLoad %uint %12053
-      %15581 = OpBitwiseAnd %uint %15580 %uint_32768
-      %15582 = OpUGreaterThan %bool %15581 %uint_0
-               OpSelectionMerge %23999 None
-               OpSwitch %uint_0 %23983
-      %23983 = OpLabel
-               OpSelectionMerge %23998 None
-               OpBranchConditional %15582 %23985 %23993
-      %23993 = OpLabel
-      %23995 = OpISub %uint %184313 %int_1
-      %23996 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %23995
-      %23997 = OpLoad %_arr_v2float_uint_2 %23996
-     %121691 = OpCompositeExtract %v2float %23997 0
-     %121692 = OpCompositeExtract %v2float %23997 1
-               OpBranch %23999
-      %23985 = OpLabel
-      %23987 = OpIAdd %uint %184363 %int_1
-      %23988 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %23989 = OpLoad %v2float %23988
-               OpBranch %23999
-      %23998 = OpLabel
-               OpUnreachable
-      %23999 = OpLabel
-     %262122 = OpPhi %uint %23987 %23985 %184363 %23993
-     %185099 = OpPhi %uint %184313 %23985 %23995 %23993
-     %185098 = OpPhi %v2float %23989 %23985 %121691 %23993
-     %185097 = OpPhi %v2float %23989 %23985 %121692 %23993
-      %15586 = OpExtInst %v2float %1 InverseSqrt %185098
-      %15590 = OpExtInst %v2float %1 InverseSqrt %185097
-      %15596 = OpExtInst %v2float %1 FMin %15586 %15590
-      %15602 = OpExtInst %v2float %1 FMax %15586 %15590
-     %123673 = OpCompositeConstruct %_arr_v2float_uint_2 %15596 %15602
-      %24003 = OpIAdd %uint %185099 %int_1
-      %24005 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185099
-               OpStore %24005 %123673
-               OpBranch %20471
-      %15548 = OpLabel
-      %15551 = OpLoad %uint %12053
-      %15552 = OpBitwiseAnd %uint %15551 %uint_32768
-      %15553 = OpUGreaterThan %bool %15552 %uint_0
-               OpSelectionMerge %23971 None
-               OpSwitch %uint_0 %23955
-      %23955 = OpLabel
-               OpSelectionMerge %23970 None
-               OpBranchConditional %15553 %23957 %23965
-      %23965 = OpLabel
-      %23967 = OpISub %uint %184313 %int_1
-      %23968 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %23967
-      %23969 = OpLoad %_arr_v2float_uint_2 %23968
-     %121700 = OpCompositeExtract %v2float %23969 0
-     %121701 = OpCompositeExtract %v2float %23969 1
-               OpBranch %23971
-      %23957 = OpLabel
-      %23959 = OpIAdd %uint %184363 %int_1
-      %23960 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %23961 = OpLoad %v2float %23960
-               OpBranch %23971
-      %23970 = OpLabel
-               OpUnreachable
-      %23971 = OpLabel
-     %262121 = OpPhi %uint %23959 %23957 %184363 %23965
-     %185102 = OpPhi %uint %184313 %23957 %23967 %23965
-     %185101 = OpPhi %v2float %23961 %23957 %121700 %23965
-     %185100 = OpPhi %v2float %23961 %23957 %121701 %23965
-      %15557 = OpExtInst %v2float %1 Sqrt %185101
-      %15561 = OpExtInst %v2float %1 Sqrt %185100
-      %15567 = OpExtInst %v2float %1 FMin %15557 %15561
-      %15573 = OpExtInst %v2float %1 FMax %15557 %15561
-     %123664 = OpCompositeConstruct %_arr_v2float_uint_2 %15567 %15573
-      %23975 = OpIAdd %uint %185102 %int_1
-      %23977 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185102
-               OpStore %23977 %123664
-               OpBranch %20471
-      %15519 = OpLabel
-      %15522 = OpLoad %uint %12053
-      %15523 = OpBitwiseAnd %uint %15522 %uint_32768
-      %15524 = OpUGreaterThan %bool %15523 %uint_0
-               OpSelectionMerge %23943 None
-               OpSwitch %uint_0 %23927
-      %23927 = OpLabel
-               OpSelectionMerge %23942 None
-               OpBranchConditional %15524 %23929 %23937
-      %23937 = OpLabel
-      %23939 = OpISub %uint %184313 %int_1
-      %23940 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %23939
-      %23941 = OpLoad %_arr_v2float_uint_2 %23940
-     %121709 = OpCompositeExtract %v2float %23941 0
-     %121710 = OpCompositeExtract %v2float %23941 1
-               OpBranch %23943
-      %23929 = OpLabel
-      %23931 = OpIAdd %uint %184363 %int_1
-      %23932 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %23933 = OpLoad %v2float %23932
-               OpBranch %23943
-      %23942 = OpLabel
-               OpUnreachable
-      %23943 = OpLabel
-     %262120 = OpPhi %uint %23931 %23929 %184363 %23937
-     %185105 = OpPhi %uint %184313 %23929 %23939 %23937
-     %185104 = OpPhi %v2float %23933 %23929 %121709 %23937
-     %185103 = OpPhi %v2float %23933 %23929 %121710 %23937
-      %15528 = OpExtInst %v2float %1 Fract %185104
-      %15532 = OpExtInst %v2float %1 Fract %185103
-      %15538 = OpExtInst %v2float %1 FMin %15528 %15532
-      %15544 = OpExtInst %v2float %1 FMax %15528 %15532
-     %123655 = OpCompositeConstruct %_arr_v2float_uint_2 %15538 %15544
-      %23947 = OpIAdd %uint %185105 %int_1
-      %23949 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185105
-               OpStore %23949 %123655
-               OpBranch %20471
-      %15490 = OpLabel
-      %15493 = OpLoad %uint %12053
-      %15494 = OpBitwiseAnd %uint %15493 %uint_32768
-      %15495 = OpUGreaterThan %bool %15494 %uint_0
-               OpSelectionMerge %23915 None
-               OpSwitch %uint_0 %23899
-      %23899 = OpLabel
-               OpSelectionMerge %23914 None
-               OpBranchConditional %15495 %23901 %23909
-      %23909 = OpLabel
-      %23911 = OpISub %uint %184313 %int_1
-      %23912 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %23911
-      %23913 = OpLoad %_arr_v2float_uint_2 %23912
-     %121718 = OpCompositeExtract %v2float %23913 0
-     %121719 = OpCompositeExtract %v2float %23913 1
-               OpBranch %23915
-      %23901 = OpLabel
-      %23903 = OpIAdd %uint %184363 %int_1
-      %23904 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %23905 = OpLoad %v2float %23904
-               OpBranch %23915
-      %23914 = OpLabel
-               OpUnreachable
-      %23915 = OpLabel
-     %262119 = OpPhi %uint %23903 %23901 %184363 %23909
-     %185108 = OpPhi %uint %184313 %23901 %23911 %23909
-     %185107 = OpPhi %v2float %23905 %23901 %121718 %23909
-     %185106 = OpPhi %v2float %23905 %23901 %121719 %23909
-      %15499 = OpExtInst %v2float %1 Ceil %185107
-      %15503 = OpExtInst %v2float %1 Ceil %185106
-      %15509 = OpExtInst %v2float %1 FMin %15499 %15503
-      %15515 = OpExtInst %v2float %1 FMax %15499 %15503
-     %123646 = OpCompositeConstruct %_arr_v2float_uint_2 %15509 %15515
-      %23919 = OpIAdd %uint %185108 %int_1
-      %23921 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185108
-               OpStore %23921 %123646
-               OpBranch %20471
-      %15461 = OpLabel
-      %15464 = OpLoad %uint %12053
-      %15465 = OpBitwiseAnd %uint %15464 %uint_32768
-      %15466 = OpUGreaterThan %bool %15465 %uint_0
-               OpSelectionMerge %23887 None
-               OpSwitch %uint_0 %23871
-      %23871 = OpLabel
-               OpSelectionMerge %23886 None
-               OpBranchConditional %15466 %23873 %23881
-      %23881 = OpLabel
-      %23883 = OpISub %uint %184313 %int_1
-      %23884 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %23883
-      %23885 = OpLoad %_arr_v2float_uint_2 %23884
-     %121727 = OpCompositeExtract %v2float %23885 0
-     %121728 = OpCompositeExtract %v2float %23885 1
-               OpBranch %23887
-      %23873 = OpLabel
-      %23875 = OpIAdd %uint %184363 %int_1
-      %23876 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %23877 = OpLoad %v2float %23876
-               OpBranch %23887
-      %23886 = OpLabel
-               OpUnreachable
-      %23887 = OpLabel
-     %262118 = OpPhi %uint %23875 %23873 %184363 %23881
-     %185111 = OpPhi %uint %184313 %23873 %23883 %23881
-     %185110 = OpPhi %v2float %23877 %23873 %121727 %23881
-     %185109 = OpPhi %v2float %23877 %23873 %121728 %23881
-      %15470 = OpExtInst %v2float %1 Floor %185110
-      %15474 = OpExtInst %v2float %1 Floor %185109
-      %15480 = OpExtInst %v2float %1 FMin %15470 %15474
-      %15486 = OpExtInst %v2float %1 FMax %15470 %15474
-     %123637 = OpCompositeConstruct %_arr_v2float_uint_2 %15480 %15486
-      %23891 = OpIAdd %uint %185111 %int_1
-      %23893 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185111
-               OpStore %23893 %123637
-               OpBranch %20471
-      %15432 = OpLabel
-      %15435 = OpLoad %uint %12053
-      %15436 = OpBitwiseAnd %uint %15435 %uint_32768
-      %15437 = OpUGreaterThan %bool %15436 %uint_0
-               OpSelectionMerge %23859 None
-               OpSwitch %uint_0 %23843
-      %23843 = OpLabel
-               OpSelectionMerge %23858 None
-               OpBranchConditional %15437 %23845 %23853
-      %23853 = OpLabel
-      %23855 = OpISub %uint %184313 %int_1
-      %23856 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %23855
-      %23857 = OpLoad %_arr_v2float_uint_2 %23856
-     %121736 = OpCompositeExtract %v2float %23857 0
-     %121737 = OpCompositeExtract %v2float %23857 1
-               OpBranch %23859
-      %23845 = OpLabel
-      %23847 = OpIAdd %uint %184363 %int_1
-      %23848 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %23849 = OpLoad %v2float %23848
-               OpBranch %23859
-      %23858 = OpLabel
-               OpUnreachable
-      %23859 = OpLabel
-     %262117 = OpPhi %uint %23847 %23845 %184363 %23853
-     %185114 = OpPhi %uint %184313 %23845 %23855 %23853
-     %185113 = OpPhi %v2float %23849 %23845 %121736 %23853
-     %185112 = OpPhi %v2float %23849 %23845 %121737 %23853
-      %15441 = OpExtInst %v2float %1 FSign %185113
-      %15445 = OpExtInst %v2float %1 FSign %185112
-      %15451 = OpExtInst %v2float %1 FMin %15441 %15445
-      %15457 = OpExtInst %v2float %1 FMax %15441 %15445
-     %123628 = OpCompositeConstruct %_arr_v2float_uint_2 %15451 %15457
-      %23863 = OpIAdd %uint %185114 %int_1
-      %23865 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185114
-               OpStore %23865 %123628
-               OpBranch %20471
-      %15403 = OpLabel
-      %15406 = OpLoad %uint %12053
-      %15407 = OpBitwiseAnd %uint %15406 %uint_32768
-      %15408 = OpUGreaterThan %bool %15407 %uint_0
-               OpSelectionMerge %23831 None
-               OpSwitch %uint_0 %23815
-      %23815 = OpLabel
-               OpSelectionMerge %23830 None
-               OpBranchConditional %15408 %23817 %23825
-      %23825 = OpLabel
-      %23827 = OpISub %uint %184313 %int_1
-      %23828 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %23827
-      %23829 = OpLoad %_arr_v2float_uint_2 %23828
-     %121745 = OpCompositeExtract %v2float %23829 0
-     %121746 = OpCompositeExtract %v2float %23829 1
-               OpBranch %23831
-      %23817 = OpLabel
-      %23819 = OpIAdd %uint %184363 %int_1
-      %23820 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %23821 = OpLoad %v2float %23820
-               OpBranch %23831
-      %23830 = OpLabel
-               OpUnreachable
-      %23831 = OpLabel
-     %262116 = OpPhi %uint %23819 %23817 %184363 %23825
-     %185117 = OpPhi %uint %184313 %23817 %23827 %23825
-     %185116 = OpPhi %v2float %23821 %23817 %121745 %23825
-     %185115 = OpPhi %v2float %23821 %23817 %121746 %23825
-      %15412 = OpExtInst %v2float %1 FAbs %185116
-      %15416 = OpExtInst %v2float %1 FAbs %185115
-      %15422 = OpExtInst %v2float %1 FMin %15412 %15416
-      %15428 = OpExtInst %v2float %1 FMax %15412 %15416
-     %123619 = OpCompositeConstruct %_arr_v2float_uint_2 %15422 %15428
-      %23835 = OpIAdd %uint %185117 %int_1
-      %23837 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185117
-               OpStore %23837 %123619
-               OpBranch %20471
-      %15321 = OpLabel
-      %15324 = OpLoad %uint %12053
-      %15325 = OpBitwiseAnd %uint %15324 %uint_32768
-      %15326 = OpUGreaterThan %bool %15325 %uint_0
-               OpSelectionMerge %23757 None
-               OpSwitch %uint_0 %23741
-      %23741 = OpLabel
-               OpSelectionMerge %23756 None
-               OpBranchConditional %15326 %23743 %23751
-      %23751 = OpLabel
-      %23753 = OpISub %uint %184292 %int_1
-      %23754 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23753
-      %23755 = OpLoad %_arr_float_uint_2 %23754
-     %121772 = OpCompositeExtract %float %23755 0
-     %121773 = OpCompositeExtract %float %23755 1
-               OpBranch %23757
-      %23743 = OpLabel
-      %23745 = OpIAdd %uint %184294 %int_1
-      %23746 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23747 = OpLoad %float %23746
-               OpBranch %23757
-      %23756 = OpLabel
-               OpUnreachable
-      %23757 = OpLabel
-     %185122 = OpPhi %uint %23745 %23743 %184294 %23751
-     %185121 = OpPhi %uint %184292 %23743 %23753 %23751
-     %185119 = OpPhi %float %23747 %23743 %121772 %23751
-     %185118 = OpPhi %float %23747 %23743 %121773 %23751
-      %15330 = OpLoad %uint %12053
-      %15331 = OpBitwiseAnd %uint %15330 %uint_16384
-      %15332 = OpUGreaterThan %bool %15331 %uint_0
-               OpSelectionMerge %23780 None
-               OpSwitch %uint_0 %23764
-      %23764 = OpLabel
-               OpSelectionMerge %23779 None
-               OpBranchConditional %15332 %23766 %23774
-      %23774 = OpLabel
-      %23776 = OpISub %uint %185121 %int_1
-      %23777 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23776
-      %23778 = OpLoad %_arr_float_uint_2 %23777
-     %121763 = OpCompositeExtract %float %23778 0
-     %121764 = OpCompositeExtract %float %23778 1
-               OpBranch %23780
-      %23766 = OpLabel
-      %23768 = OpIAdd %uint %185122 %int_1
-      %23769 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %185122
-      %23770 = OpLoad %float %23769
-               OpBranch %23780
-      %23779 = OpLabel
-               OpUnreachable
-      %23780 = OpLabel
-     %185127 = OpPhi %uint %23768 %23766 %185122 %23774
-     %185126 = OpPhi %uint %185121 %23766 %23776 %23774
-     %185124 = OpPhi %float %23770 %23766 %121763 %23774
-     %185123 = OpPhi %float %23770 %23766 %121764 %23774
-      %15336 = OpLoad %uint %12053
-      %15337 = OpBitwiseAnd %uint %15336 %uint_8192
-      %15338 = OpUGreaterThan %bool %15337 %uint_0
-               OpSelectionMerge %23803 None
-               OpSwitch %uint_0 %23787
-      %23787 = OpLabel
-               OpSelectionMerge %23802 None
-               OpBranchConditional %15338 %23789 %23797
-      %23797 = OpLabel
-      %23799 = OpISub %uint %185126 %int_1
-      %23800 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23799
-      %23801 = OpLoad %_arr_float_uint_2 %23800
-     %121754 = OpCompositeExtract %float %23801 0
-     %121755 = OpCompositeExtract %float %23801 1
-               OpBranch %23803
-      %23789 = OpLabel
-      %23791 = OpIAdd %uint %185127 %int_1
-      %23792 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %185127
-      %23793 = OpLoad %float %23792
-               OpBranch %23803
-      %23802 = OpLabel
-               OpUnreachable
-      %23803 = OpLabel
-     %186627 = OpPhi %uint %23791 %23789 %185127 %23797
-     %185136 = OpPhi %uint %185126 %23789 %23799 %23797
-     %185129 = OpPhi %float %23793 %23789 %121754 %23797
-     %185128 = OpPhi %float %23793 %23789 %121755 %23797
-      %15344 = OpFMul %float %185119 %185124
-      %15350 = OpFMul %float %185119 %185123
-      %15356 = OpFMul %float %185118 %185124
-      %15362 = OpFMul %float %185118 %185123
-      %15372 = OpExtInst %float %1 FMin %15356 %15362
-      %15373 = OpExtInst %float %1 FMin %15350 %15372
-      %15374 = OpExtInst %float %1 FMin %15344 %15373
-      %15384 = OpExtInst %float %1 FMax %15356 %15362
-      %15385 = OpExtInst %float %1 FMax %15350 %15384
-      %15386 = OpExtInst %float %1 FMax %15344 %15385
-      %15393 = OpFAdd %float %15374 %185129
-      %15399 = OpFAdd %float %15386 %185128
-     %123602 = OpCompositeConstruct %_arr_float_uint_2 %15393 %15399
-      %23807 = OpIAdd %uint %185136 %int_1
-      %23809 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185136
-               OpStore %23809 %123602
-               OpBranch %20471
-      %15294 = OpLabel
-      %15297 = OpLoad %uint %12053
-      %15298 = OpBitwiseAnd %uint %15297 %uint_32768
-      %15299 = OpUGreaterThan %bool %15298 %uint_0
-               OpSelectionMerge %23706 None
-               OpSwitch %uint_0 %23690
-      %23690 = OpLabel
-               OpSelectionMerge %23705 None
-               OpBranchConditional %15299 %23692 %23700
-      %23700 = OpLabel
-      %23702 = OpISub %uint %184292 %int_1
-      %23703 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23702
-      %23704 = OpLoad %_arr_float_uint_2 %23703
-     %121790 = OpCompositeExtract %float %23704 0
-     %121791 = OpCompositeExtract %float %23704 1
-               OpBranch %23706
-      %23692 = OpLabel
-      %23694 = OpIAdd %uint %184294 %int_1
-      %23695 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23696 = OpLoad %float %23695
-               OpBranch %23706
-      %23705 = OpLabel
-               OpUnreachable
-      %23706 = OpLabel
-     %185144 = OpPhi %uint %23694 %23692 %184294 %23700
-     %185143 = OpPhi %uint %184292 %23692 %23702 %23700
-     %185141 = OpPhi %float %23696 %23692 %121790 %23700
-     %185140 = OpPhi %float %23696 %23692 %121791 %23700
-      %15303 = OpLoad %uint %12053
-      %15304 = OpBitwiseAnd %uint %15303 %uint_16384
-      %15305 = OpUGreaterThan %bool %15304 %uint_0
-               OpSelectionMerge %23729 None
-               OpSwitch %uint_0 %23713
-      %23713 = OpLabel
-               OpSelectionMerge %23728 None
-               OpBranchConditional %15305 %23715 %23723
-      %23723 = OpLabel
-      %23725 = OpISub %uint %185143 %int_1
-      %23726 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23725
-      %23727 = OpLoad %_arr_float_uint_2 %23726
-     %121781 = OpCompositeExtract %float %23727 0
-     %121782 = OpCompositeExtract %float %23727 1
-               OpBranch %23729
-      %23715 = OpLabel
-      %23717 = OpIAdd %uint %185144 %int_1
-      %23718 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %185144
-      %23719 = OpLoad %float %23718
-               OpBranch %23729
-      %23728 = OpLabel
-               OpUnreachable
-      %23729 = OpLabel
-     %186626 = OpPhi %uint %23717 %23715 %185144 %23723
-     %185149 = OpPhi %uint %185143 %23715 %23725 %23723
-     %185146 = OpPhi %float %23719 %23715 %121781 %23723
-     %185145 = OpPhi %float %23719 %23715 %121782 %23723
-      %15311 = OpExtInst %float %1 FMax %185141 %185146
-      %15317 = OpExtInst %float %1 FMax %185140 %185145
-     %123591 = OpCompositeConstruct %_arr_float_uint_2 %15311 %15317
-      %23733 = OpIAdd %uint %185149 %int_1
-      %23735 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185149
-               OpStore %23735 %123591
-               OpBranch %20471
-      %15267 = OpLabel
-      %15270 = OpLoad %uint %12053
-      %15271 = OpBitwiseAnd %uint %15270 %uint_32768
-      %15272 = OpUGreaterThan %bool %15271 %uint_0
-               OpSelectionMerge %23655 None
-               OpSwitch %uint_0 %23639
-      %23639 = OpLabel
-               OpSelectionMerge %23654 None
-               OpBranchConditional %15272 %23641 %23649
-      %23649 = OpLabel
-      %23651 = OpISub %uint %184292 %int_1
-      %23652 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23651
-      %23653 = OpLoad %_arr_float_uint_2 %23652
-     %121808 = OpCompositeExtract %float %23653 0
-     %121809 = OpCompositeExtract %float %23653 1
-               OpBranch %23655
-      %23641 = OpLabel
-      %23643 = OpIAdd %uint %184294 %int_1
-      %23644 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23645 = OpLoad %float %23644
-               OpBranch %23655
-      %23654 = OpLabel
-               OpUnreachable
-      %23655 = OpLabel
-     %185157 = OpPhi %uint %23643 %23641 %184294 %23649
-     %185156 = OpPhi %uint %184292 %23641 %23651 %23649
-     %185154 = OpPhi %float %23645 %23641 %121808 %23649
-     %185153 = OpPhi %float %23645 %23641 %121809 %23649
-      %15276 = OpLoad %uint %12053
-      %15277 = OpBitwiseAnd %uint %15276 %uint_16384
-      %15278 = OpUGreaterThan %bool %15277 %uint_0
-               OpSelectionMerge %23678 None
-               OpSwitch %uint_0 %23662
-      %23662 = OpLabel
-               OpSelectionMerge %23677 None
-               OpBranchConditional %15278 %23664 %23672
-      %23672 = OpLabel
-      %23674 = OpISub %uint %185156 %int_1
-      %23675 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23674
-      %23676 = OpLoad %_arr_float_uint_2 %23675
-     %121799 = OpCompositeExtract %float %23676 0
-     %121800 = OpCompositeExtract %float %23676 1
-               OpBranch %23678
-      %23664 = OpLabel
-      %23666 = OpIAdd %uint %185157 %int_1
-      %23667 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %185157
-      %23668 = OpLoad %float %23667
-               OpBranch %23678
-      %23677 = OpLabel
-               OpUnreachable
-      %23678 = OpLabel
-     %186625 = OpPhi %uint %23666 %23664 %185157 %23672
-     %185162 = OpPhi %uint %185156 %23664 %23674 %23672
-     %185159 = OpPhi %float %23668 %23664 %121799 %23672
-     %185158 = OpPhi %float %23668 %23664 %121800 %23672
-      %15284 = OpExtInst %float %1 FMin %185154 %185159
-      %15290 = OpExtInst %float %1 FMin %185153 %185158
-     %123580 = OpCompositeConstruct %_arr_float_uint_2 %15284 %15290
-      %23682 = OpIAdd %uint %185162 %int_1
-      %23684 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185162
-               OpStore %23684 %123580
-               OpBranch %20471
-      %15238 = OpLabel
-      %15241 = OpLoad %uint %12053
-      %15242 = OpBitwiseAnd %uint %15241 %uint_32768
-      %15243 = OpUGreaterThan %bool %15242 %uint_0
-               OpSelectionMerge %23627 None
-               OpSwitch %uint_0 %23611
-      %23611 = OpLabel
-               OpSelectionMerge %23626 None
-               OpBranchConditional %15243 %23613 %23621
-      %23621 = OpLabel
-      %23623 = OpISub %uint %184292 %int_1
-      %23624 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23623
-      %23625 = OpLoad %_arr_float_uint_2 %23624
-     %121817 = OpCompositeExtract %float %23625 0
-     %121818 = OpCompositeExtract %float %23625 1
-               OpBranch %23627
-      %23613 = OpLabel
-      %23615 = OpIAdd %uint %184294 %int_1
-      %23616 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23617 = OpLoad %float %23616
-               OpBranch %23627
-      %23626 = OpLabel
-               OpUnreachable
-      %23627 = OpLabel
-     %186624 = OpPhi %uint %23615 %23613 %184294 %23621
-     %185165 = OpPhi %uint %184292 %23613 %23623 %23621
-     %185164 = OpPhi %float %23617 %23613 %121817 %23621
-     %185163 = OpPhi %float %23617 %23613 %121818 %23621
-      %15247 = OpExtInst %float %1 Trunc %185164
-      %15251 = OpExtInst %float %1 Trunc %185163
-      %15257 = OpExtInst %float %1 FMin %15247 %15251
-      %15263 = OpExtInst %float %1 FMax %15247 %15251
-     %123571 = OpCompositeConstruct %_arr_float_uint_2 %15257 %15263
-      %23631 = OpIAdd %uint %185165 %int_1
-      %23633 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185165
-               OpStore %23633 %123571
-               OpBranch %20471
-      %15209 = OpLabel
-      %15212 = OpLoad %uint %12053
-      %15213 = OpBitwiseAnd %uint %15212 %uint_32768
-      %15214 = OpUGreaterThan %bool %15213 %uint_0
-               OpSelectionMerge %23599 None
-               OpSwitch %uint_0 %23583
-      %23583 = OpLabel
-               OpSelectionMerge %23598 None
-               OpBranchConditional %15214 %23585 %23593
-      %23593 = OpLabel
-      %23595 = OpISub %uint %184292 %int_1
-      %23596 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23595
-      %23597 = OpLoad %_arr_float_uint_2 %23596
-     %121826 = OpCompositeExtract %float %23597 0
-     %121827 = OpCompositeExtract %float %23597 1
-               OpBranch %23599
-      %23585 = OpLabel
-      %23587 = OpIAdd %uint %184294 %int_1
-      %23588 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23589 = OpLoad %float %23588
-               OpBranch %23599
-      %23598 = OpLabel
-               OpUnreachable
-      %23599 = OpLabel
-     %186623 = OpPhi %uint %23587 %23585 %184294 %23593
-     %185168 = OpPhi %uint %184292 %23585 %23595 %23593
-     %185167 = OpPhi %float %23589 %23585 %121826 %23593
-     %185166 = OpPhi %float %23589 %23585 %121827 %23593
-      %15218 = OpExtInst %float %1 Round %185167
-      %15222 = OpExtInst %float %1 Round %185166
-      %15228 = OpExtInst %float %1 FMin %15218 %15222
-      %15234 = OpExtInst %float %1 FMax %15218 %15222
-     %123562 = OpCompositeConstruct %_arr_float_uint_2 %15228 %15234
-      %23603 = OpIAdd %uint %185168 %int_1
-      %23605 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185168
-               OpStore %23605 %123562
-               OpBranch %20471
-      %15180 = OpLabel
-      %15183 = OpLoad %uint %12053
-      %15184 = OpBitwiseAnd %uint %15183 %uint_32768
-      %15185 = OpUGreaterThan %bool %15184 %uint_0
-               OpSelectionMerge %23571 None
-               OpSwitch %uint_0 %23555
-      %23555 = OpLabel
-               OpSelectionMerge %23570 None
-               OpBranchConditional %15185 %23557 %23565
-      %23565 = OpLabel
-      %23567 = OpISub %uint %184292 %int_1
-      %23568 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23567
-      %23569 = OpLoad %_arr_float_uint_2 %23568
-     %121835 = OpCompositeExtract %float %23569 0
-     %121836 = OpCompositeExtract %float %23569 1
-               OpBranch %23571
-      %23557 = OpLabel
-      %23559 = OpIAdd %uint %184294 %int_1
-      %23560 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23561 = OpLoad %float %23560
-               OpBranch %23571
-      %23570 = OpLabel
-               OpUnreachable
-      %23571 = OpLabel
-     %186622 = OpPhi %uint %23559 %23557 %184294 %23565
-     %185171 = OpPhi %uint %184292 %23557 %23567 %23565
-     %185170 = OpPhi %float %23561 %23557 %121835 %23565
-     %185169 = OpPhi %float %23561 %23557 %121836 %23565
-      %15189 = OpExtInst %float %1 Tanh %185170
-      %15193 = OpExtInst %float %1 Tanh %185169
-      %15199 = OpExtInst %float %1 FMin %15189 %15193
-      %15205 = OpExtInst %float %1 FMax %15189 %15193
-     %123553 = OpCompositeConstruct %_arr_float_uint_2 %15199 %15205
-      %23575 = OpIAdd %uint %185171 %int_1
-      %23577 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185171
-               OpStore %23577 %123553
-               OpBranch %20471
-      %15151 = OpLabel
-      %15154 = OpLoad %uint %12053
-      %15155 = OpBitwiseAnd %uint %15154 %uint_32768
-      %15156 = OpUGreaterThan %bool %15155 %uint_0
-               OpSelectionMerge %23543 None
-               OpSwitch %uint_0 %23527
-      %23527 = OpLabel
-               OpSelectionMerge %23542 None
-               OpBranchConditional %15156 %23529 %23537
-      %23537 = OpLabel
-      %23539 = OpISub %uint %184292 %int_1
-      %23540 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23539
-      %23541 = OpLoad %_arr_float_uint_2 %23540
-     %121844 = OpCompositeExtract %float %23541 0
-     %121845 = OpCompositeExtract %float %23541 1
-               OpBranch %23543
-      %23529 = OpLabel
-      %23531 = OpIAdd %uint %184294 %int_1
-      %23532 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23533 = OpLoad %float %23532
-               OpBranch %23543
-      %23542 = OpLabel
-               OpUnreachable
-      %23543 = OpLabel
-     %186621 = OpPhi %uint %23531 %23529 %184294 %23537
-     %185174 = OpPhi %uint %184292 %23529 %23539 %23537
-     %185173 = OpPhi %float %23533 %23529 %121844 %23537
-     %185172 = OpPhi %float %23533 %23529 %121845 %23537
-      %15160 = OpExtInst %float %1 Sinh %185173
-      %15164 = OpExtInst %float %1 Sinh %185172
-      %15170 = OpExtInst %float %1 FMin %15160 %15164
-      %15176 = OpExtInst %float %1 FMax %15160 %15164
-     %123544 = OpCompositeConstruct %_arr_float_uint_2 %15170 %15176
-      %23547 = OpIAdd %uint %185174 %int_1
-      %23549 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185174
-               OpStore %23549 %123544
-               OpBranch %20471
-      %15122 = OpLabel
-      %15125 = OpLoad %uint %12053
-      %15126 = OpBitwiseAnd %uint %15125 %uint_32768
-      %15127 = OpUGreaterThan %bool %15126 %uint_0
-               OpSelectionMerge %23515 None
-               OpSwitch %uint_0 %23499
-      %23499 = OpLabel
-               OpSelectionMerge %23514 None
-               OpBranchConditional %15127 %23501 %23509
-      %23509 = OpLabel
-      %23511 = OpISub %uint %184292 %int_1
-      %23512 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23511
-      %23513 = OpLoad %_arr_float_uint_2 %23512
-     %121853 = OpCompositeExtract %float %23513 0
-     %121854 = OpCompositeExtract %float %23513 1
-               OpBranch %23515
-      %23501 = OpLabel
-      %23503 = OpIAdd %uint %184294 %int_1
-      %23504 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23505 = OpLoad %float %23504
-               OpBranch %23515
-      %23514 = OpLabel
-               OpUnreachable
-      %23515 = OpLabel
-     %186620 = OpPhi %uint %23503 %23501 %184294 %23509
-     %185177 = OpPhi %uint %184292 %23501 %23511 %23509
-     %185176 = OpPhi %float %23505 %23501 %121853 %23509
-     %185175 = OpPhi %float %23505 %23501 %121854 %23509
-      %15131 = OpExtInst %float %1 Cosh %185176
-      %15135 = OpExtInst %float %1 Cosh %185175
-      %15141 = OpExtInst %float %1 FMin %15131 %15135
-      %15147 = OpExtInst %float %1 FMax %15131 %15135
-     %123535 = OpCompositeConstruct %_arr_float_uint_2 %15141 %15147
-      %23519 = OpIAdd %uint %185177 %int_1
-      %23521 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185177
-               OpStore %23521 %123535
-               OpBranch %20471
-      %15093 = OpLabel
-      %15096 = OpLoad %uint %12053
-      %15097 = OpBitwiseAnd %uint %15096 %uint_32768
-      %15098 = OpUGreaterThan %bool %15097 %uint_0
-               OpSelectionMerge %23487 None
-               OpSwitch %uint_0 %23471
-      %23471 = OpLabel
-               OpSelectionMerge %23486 None
-               OpBranchConditional %15098 %23473 %23481
-      %23481 = OpLabel
-      %23483 = OpISub %uint %184292 %int_1
-      %23484 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23483
-      %23485 = OpLoad %_arr_float_uint_2 %23484
-     %121862 = OpCompositeExtract %float %23485 0
-     %121863 = OpCompositeExtract %float %23485 1
-               OpBranch %23487
-      %23473 = OpLabel
-      %23475 = OpIAdd %uint %184294 %int_1
-      %23476 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23477 = OpLoad %float %23476
-               OpBranch %23487
-      %23486 = OpLabel
-               OpUnreachable
-      %23487 = OpLabel
-     %186619 = OpPhi %uint %23475 %23473 %184294 %23481
-     %185180 = OpPhi %uint %184292 %23473 %23483 %23481
-     %185179 = OpPhi %float %23477 %23473 %121862 %23481
-     %185178 = OpPhi %float %23477 %23473 %121863 %23481
-      %15102 = OpExtInst %float %1 Atanh %185179
-      %15106 = OpExtInst %float %1 Atanh %185178
-      %15112 = OpExtInst %float %1 FMin %15102 %15106
-      %15118 = OpExtInst %float %1 FMax %15102 %15106
-     %123526 = OpCompositeConstruct %_arr_float_uint_2 %15112 %15118
-      %23491 = OpIAdd %uint %185180 %int_1
-      %23493 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185180
-               OpStore %23493 %123526
-               OpBranch %20471
-      %15064 = OpLabel
-      %15067 = OpLoad %uint %12053
-      %15068 = OpBitwiseAnd %uint %15067 %uint_32768
-      %15069 = OpUGreaterThan %bool %15068 %uint_0
-               OpSelectionMerge %23459 None
-               OpSwitch %uint_0 %23443
-      %23443 = OpLabel
-               OpSelectionMerge %23458 None
-               OpBranchConditional %15069 %23445 %23453
-      %23453 = OpLabel
-      %23455 = OpISub %uint %184292 %int_1
-      %23456 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23455
-      %23457 = OpLoad %_arr_float_uint_2 %23456
-     %121871 = OpCompositeExtract %float %23457 0
-     %121872 = OpCompositeExtract %float %23457 1
-               OpBranch %23459
-      %23445 = OpLabel
-      %23447 = OpIAdd %uint %184294 %int_1
-      %23448 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23449 = OpLoad %float %23448
-               OpBranch %23459
-      %23458 = OpLabel
-               OpUnreachable
-      %23459 = OpLabel
-     %186618 = OpPhi %uint %23447 %23445 %184294 %23453
-     %185183 = OpPhi %uint %184292 %23445 %23455 %23453
-     %185182 = OpPhi %float %23449 %23445 %121871 %23453
-     %185181 = OpPhi %float %23449 %23445 %121872 %23453
-      %15073 = OpExtInst %float %1 Asinh %185182
-      %15077 = OpExtInst %float %1 Asinh %185181
-      %15083 = OpExtInst %float %1 FMin %15073 %15077
-      %15089 = OpExtInst %float %1 FMax %15073 %15077
-     %123517 = OpCompositeConstruct %_arr_float_uint_2 %15083 %15089
-      %23463 = OpIAdd %uint %185183 %int_1
-      %23465 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185183
-               OpStore %23465 %123517
-               OpBranch %20471
-      %15035 = OpLabel
-      %15038 = OpLoad %uint %12053
-      %15039 = OpBitwiseAnd %uint %15038 %uint_32768
-      %15040 = OpUGreaterThan %bool %15039 %uint_0
-               OpSelectionMerge %23431 None
-               OpSwitch %uint_0 %23415
-      %23415 = OpLabel
-               OpSelectionMerge %23430 None
-               OpBranchConditional %15040 %23417 %23425
-      %23425 = OpLabel
-      %23427 = OpISub %uint %184292 %int_1
-      %23428 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23427
-      %23429 = OpLoad %_arr_float_uint_2 %23428
-     %121880 = OpCompositeExtract %float %23429 0
-     %121881 = OpCompositeExtract %float %23429 1
-               OpBranch %23431
-      %23417 = OpLabel
-      %23419 = OpIAdd %uint %184294 %int_1
-      %23420 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23421 = OpLoad %float %23420
-               OpBranch %23431
-      %23430 = OpLabel
-               OpUnreachable
-      %23431 = OpLabel
-     %186617 = OpPhi %uint %23419 %23417 %184294 %23425
-     %185186 = OpPhi %uint %184292 %23417 %23427 %23425
-     %185185 = OpPhi %float %23421 %23417 %121880 %23425
-     %185184 = OpPhi %float %23421 %23417 %121881 %23425
-      %15044 = OpExtInst %float %1 Acosh %185185
-      %15048 = OpExtInst %float %1 Acosh %185184
-      %15054 = OpExtInst %float %1 FMin %15044 %15048
-      %15060 = OpExtInst %float %1 FMax %15044 %15048
-     %123508 = OpCompositeConstruct %_arr_float_uint_2 %15054 %15060
-      %23435 = OpIAdd %uint %185186 %int_1
-      %23437 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185186
-               OpStore %23437 %123508
-               OpBranch %20471
-      %15006 = OpLabel
-      %15009 = OpLoad %uint %12053
-      %15010 = OpBitwiseAnd %uint %15009 %uint_32768
-      %15011 = OpUGreaterThan %bool %15010 %uint_0
-               OpSelectionMerge %23403 None
-               OpSwitch %uint_0 %23387
-      %23387 = OpLabel
-               OpSelectionMerge %23402 None
-               OpBranchConditional %15011 %23389 %23397
-      %23397 = OpLabel
-      %23399 = OpISub %uint %184292 %int_1
-      %23400 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23399
-      %23401 = OpLoad %_arr_float_uint_2 %23400
-     %121889 = OpCompositeExtract %float %23401 0
-     %121890 = OpCompositeExtract %float %23401 1
-               OpBranch %23403
-      %23389 = OpLabel
-      %23391 = OpIAdd %uint %184294 %int_1
-      %23392 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23393 = OpLoad %float %23392
-               OpBranch %23403
-      %23402 = OpLabel
-               OpUnreachable
-      %23403 = OpLabel
-     %186616 = OpPhi %uint %23391 %23389 %184294 %23397
-     %185189 = OpPhi %uint %184292 %23389 %23399 %23397
-     %185188 = OpPhi %float %23393 %23389 %121889 %23397
-     %185187 = OpPhi %float %23393 %23389 %121890 %23397
-      %15015 = OpExtInst %float %1 Atan %185188
-      %15019 = OpExtInst %float %1 Atan %185187
-      %15025 = OpExtInst %float %1 FMin %15015 %15019
-      %15031 = OpExtInst %float %1 FMax %15015 %15019
-     %123499 = OpCompositeConstruct %_arr_float_uint_2 %15025 %15031
-      %23407 = OpIAdd %uint %185189 %int_1
-      %23409 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185189
-               OpStore %23409 %123499
-               OpBranch %20471
-      %14977 = OpLabel
-      %14980 = OpLoad %uint %12053
-      %14981 = OpBitwiseAnd %uint %14980 %uint_32768
-      %14982 = OpUGreaterThan %bool %14981 %uint_0
-               OpSelectionMerge %23375 None
-               OpSwitch %uint_0 %23359
-      %23359 = OpLabel
-               OpSelectionMerge %23374 None
-               OpBranchConditional %14982 %23361 %23369
-      %23369 = OpLabel
-      %23371 = OpISub %uint %184292 %int_1
-      %23372 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23371
-      %23373 = OpLoad %_arr_float_uint_2 %23372
-     %121898 = OpCompositeExtract %float %23373 0
-     %121899 = OpCompositeExtract %float %23373 1
-               OpBranch %23375
-      %23361 = OpLabel
-      %23363 = OpIAdd %uint %184294 %int_1
-      %23364 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23365 = OpLoad %float %23364
-               OpBranch %23375
-      %23374 = OpLabel
-               OpUnreachable
-      %23375 = OpLabel
-     %186615 = OpPhi %uint %23363 %23361 %184294 %23369
-     %185192 = OpPhi %uint %184292 %23361 %23371 %23369
-     %185191 = OpPhi %float %23365 %23361 %121898 %23369
-     %185190 = OpPhi %float %23365 %23361 %121899 %23369
-      %14986 = OpExtInst %float %1 Acos %185191
-      %14990 = OpExtInst %float %1 Acos %185190
-      %14996 = OpExtInst %float %1 FMin %14986 %14990
-      %15002 = OpExtInst %float %1 FMax %14986 %14990
-     %123490 = OpCompositeConstruct %_arr_float_uint_2 %14996 %15002
-      %23379 = OpIAdd %uint %185192 %int_1
-      %23381 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185192
-               OpStore %23381 %123490
-               OpBranch %20471
-      %14948 = OpLabel
-      %14951 = OpLoad %uint %12053
-      %14952 = OpBitwiseAnd %uint %14951 %uint_32768
-      %14953 = OpUGreaterThan %bool %14952 %uint_0
-               OpSelectionMerge %23347 None
-               OpSwitch %uint_0 %23331
-      %23331 = OpLabel
-               OpSelectionMerge %23346 None
-               OpBranchConditional %14953 %23333 %23341
-      %23341 = OpLabel
-      %23343 = OpISub %uint %184292 %int_1
-      %23344 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23343
-      %23345 = OpLoad %_arr_float_uint_2 %23344
-     %121907 = OpCompositeExtract %float %23345 0
-     %121908 = OpCompositeExtract %float %23345 1
-               OpBranch %23347
-      %23333 = OpLabel
-      %23335 = OpIAdd %uint %184294 %int_1
-      %23336 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23337 = OpLoad %float %23336
-               OpBranch %23347
-      %23346 = OpLabel
-               OpUnreachable
-      %23347 = OpLabel
-     %186614 = OpPhi %uint %23335 %23333 %184294 %23341
-     %185195 = OpPhi %uint %184292 %23333 %23343 %23341
-     %185194 = OpPhi %float %23337 %23333 %121907 %23341
-     %185193 = OpPhi %float %23337 %23333 %121908 %23341
-      %14957 = OpExtInst %float %1 Asin %185194
-      %14961 = OpExtInst %float %1 Asin %185193
-      %14967 = OpExtInst %float %1 FMin %14957 %14961
-      %14973 = OpExtInst %float %1 FMax %14957 %14961
-     %123481 = OpCompositeConstruct %_arr_float_uint_2 %14967 %14973
-      %23351 = OpIAdd %uint %185195 %int_1
-      %23353 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185195
-               OpStore %23353 %123481
-               OpBranch %20471
-      %14919 = OpLabel
-      %14922 = OpLoad %uint %12053
-      %14923 = OpBitwiseAnd %uint %14922 %uint_32768
-      %14924 = OpUGreaterThan %bool %14923 %uint_0
-               OpSelectionMerge %23319 None
-               OpSwitch %uint_0 %23303
-      %23303 = OpLabel
-               OpSelectionMerge %23318 None
-               OpBranchConditional %14924 %23305 %23313
-      %23313 = OpLabel
-      %23315 = OpISub %uint %184292 %int_1
-      %23316 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23315
-      %23317 = OpLoad %_arr_float_uint_2 %23316
-     %121916 = OpCompositeExtract %float %23317 0
-     %121917 = OpCompositeExtract %float %23317 1
-               OpBranch %23319
-      %23305 = OpLabel
-      %23307 = OpIAdd %uint %184294 %int_1
-      %23308 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23309 = OpLoad %float %23308
-               OpBranch %23319
-      %23318 = OpLabel
-               OpUnreachable
-      %23319 = OpLabel
-     %186613 = OpPhi %uint %23307 %23305 %184294 %23313
-     %185198 = OpPhi %uint %184292 %23305 %23315 %23313
-     %185197 = OpPhi %float %23309 %23305 %121916 %23313
-     %185196 = OpPhi %float %23309 %23305 %121917 %23313
-      %14928 = OpExtInst %float %1 Tan %185197
-      %14932 = OpExtInst %float %1 Tan %185196
-      %14938 = OpExtInst %float %1 FMin %14928 %14932
-      %14944 = OpExtInst %float %1 FMax %14928 %14932
-     %123472 = OpCompositeConstruct %_arr_float_uint_2 %14938 %14944
-      %23323 = OpIAdd %uint %185198 %int_1
-      %23325 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185198
-               OpStore %23325 %123472
-               OpBranch %20471
-      %14890 = OpLabel
-      %14893 = OpLoad %uint %12053
-      %14894 = OpBitwiseAnd %uint %14893 %uint_32768
-      %14895 = OpUGreaterThan %bool %14894 %uint_0
-               OpSelectionMerge %23291 None
-               OpSwitch %uint_0 %23275
-      %23275 = OpLabel
-               OpSelectionMerge %23290 None
-               OpBranchConditional %14895 %23277 %23285
-      %23285 = OpLabel
-      %23287 = OpISub %uint %184292 %int_1
-      %23288 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23287
-      %23289 = OpLoad %_arr_float_uint_2 %23288
-     %121925 = OpCompositeExtract %float %23289 0
-     %121926 = OpCompositeExtract %float %23289 1
-               OpBranch %23291
-      %23277 = OpLabel
-      %23279 = OpIAdd %uint %184294 %int_1
-      %23280 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23281 = OpLoad %float %23280
-               OpBranch %23291
-      %23290 = OpLabel
-               OpUnreachable
-      %23291 = OpLabel
-     %186612 = OpPhi %uint %23279 %23277 %184294 %23285
-     %185201 = OpPhi %uint %184292 %23277 %23287 %23285
-     %185200 = OpPhi %float %23281 %23277 %121925 %23285
-     %185199 = OpPhi %float %23281 %23277 %121926 %23285
-      %14899 = OpExtInst %float %1 Cos %185200
-      %14903 = OpExtInst %float %1 Cos %185199
-      %14909 = OpExtInst %float %1 FMin %14899 %14903
-      %14915 = OpExtInst %float %1 FMax %14899 %14903
-     %123463 = OpCompositeConstruct %_arr_float_uint_2 %14909 %14915
-      %23295 = OpIAdd %uint %185201 %int_1
-      %23297 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185201
-               OpStore %23297 %123463
-               OpBranch %20471
-      %14861 = OpLabel
-      %14864 = OpLoad %uint %12053
-      %14865 = OpBitwiseAnd %uint %14864 %uint_32768
-      %14866 = OpUGreaterThan %bool %14865 %uint_0
-               OpSelectionMerge %23263 None
-               OpSwitch %uint_0 %23247
-      %23247 = OpLabel
-               OpSelectionMerge %23262 None
-               OpBranchConditional %14866 %23249 %23257
-      %23257 = OpLabel
-      %23259 = OpISub %uint %184292 %int_1
-      %23260 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23259
-      %23261 = OpLoad %_arr_float_uint_2 %23260
-     %121934 = OpCompositeExtract %float %23261 0
-     %121935 = OpCompositeExtract %float %23261 1
-               OpBranch %23263
-      %23249 = OpLabel
-      %23251 = OpIAdd %uint %184294 %int_1
-      %23252 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23253 = OpLoad %float %23252
-               OpBranch %23263
-      %23262 = OpLabel
-               OpUnreachable
-      %23263 = OpLabel
-     %186611 = OpPhi %uint %23251 %23249 %184294 %23257
-     %185204 = OpPhi %uint %184292 %23249 %23259 %23257
-     %185203 = OpPhi %float %23253 %23249 %121934 %23257
-     %185202 = OpPhi %float %23253 %23249 %121935 %23257
-      %14870 = OpExtInst %float %1 Sin %185203
-      %14874 = OpExtInst %float %1 Sin %185202
-      %14880 = OpExtInst %float %1 FMin %14870 %14874
-      %14886 = OpExtInst %float %1 FMax %14870 %14874
-     %123454 = OpCompositeConstruct %_arr_float_uint_2 %14880 %14886
-      %23267 = OpIAdd %uint %185204 %int_1
-      %23269 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185204
-               OpStore %23269 %123454
-               OpBranch %20471
-      %14832 = OpLabel
-      %14835 = OpLoad %uint %12053
-      %14836 = OpBitwiseAnd %uint %14835 %uint_32768
-      %14837 = OpUGreaterThan %bool %14836 %uint_0
-               OpSelectionMerge %23235 None
-               OpSwitch %uint_0 %23219
-      %23219 = OpLabel
-               OpSelectionMerge %23234 None
-               OpBranchConditional %14837 %23221 %23229
-      %23229 = OpLabel
-      %23231 = OpISub %uint %184292 %int_1
-      %23232 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23231
-      %23233 = OpLoad %_arr_float_uint_2 %23232
-     %121943 = OpCompositeExtract %float %23233 0
-     %121944 = OpCompositeExtract %float %23233 1
-               OpBranch %23235
-      %23221 = OpLabel
-      %23223 = OpIAdd %uint %184294 %int_1
-      %23224 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23225 = OpLoad %float %23224
-               OpBranch %23235
-      %23234 = OpLabel
-               OpUnreachable
-      %23235 = OpLabel
-     %186610 = OpPhi %uint %23223 %23221 %184294 %23229
-     %185207 = OpPhi %uint %184292 %23221 %23231 %23229
-     %185206 = OpPhi %float %23225 %23221 %121943 %23229
-     %185205 = OpPhi %float %23225 %23221 %121944 %23229
-      %14841 = OpExtInst %float %1 Log2 %185206
-      %14845 = OpExtInst %float %1 Log2 %185205
-      %14851 = OpExtInst %float %1 FMin %14841 %14845
-      %14857 = OpExtInst %float %1 FMax %14841 %14845
-     %123445 = OpCompositeConstruct %_arr_float_uint_2 %14851 %14857
-      %23239 = OpIAdd %uint %185207 %int_1
-      %23241 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185207
-               OpStore %23241 %123445
-               OpBranch %20471
-      %14803 = OpLabel
-      %14806 = OpLoad %uint %12053
-      %14807 = OpBitwiseAnd %uint %14806 %uint_32768
-      %14808 = OpUGreaterThan %bool %14807 %uint_0
-               OpSelectionMerge %23207 None
-               OpSwitch %uint_0 %23191
-      %23191 = OpLabel
-               OpSelectionMerge %23206 None
-               OpBranchConditional %14808 %23193 %23201
-      %23201 = OpLabel
-      %23203 = OpISub %uint %184292 %int_1
-      %23204 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23203
-      %23205 = OpLoad %_arr_float_uint_2 %23204
-     %121952 = OpCompositeExtract %float %23205 0
-     %121953 = OpCompositeExtract %float %23205 1
-               OpBranch %23207
-      %23193 = OpLabel
-      %23195 = OpIAdd %uint %184294 %int_1
-      %23196 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23197 = OpLoad %float %23196
-               OpBranch %23207
-      %23206 = OpLabel
-               OpUnreachable
-      %23207 = OpLabel
-     %186609 = OpPhi %uint %23195 %23193 %184294 %23201
-     %185210 = OpPhi %uint %184292 %23193 %23203 %23201
-     %185209 = OpPhi %float %23197 %23193 %121952 %23201
-     %185208 = OpPhi %float %23197 %23193 %121953 %23201
-      %14812 = OpExtInst %float %1 Log %185209
-      %14816 = OpExtInst %float %1 Log %185208
-      %14822 = OpExtInst %float %1 FMin %14812 %14816
-      %14828 = OpExtInst %float %1 FMax %14812 %14816
-     %123436 = OpCompositeConstruct %_arr_float_uint_2 %14822 %14828
-      %23211 = OpIAdd %uint %185210 %int_1
-      %23213 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185210
-               OpStore %23213 %123436
-               OpBranch %20471
-      %14774 = OpLabel
-      %14777 = OpLoad %uint %12053
-      %14778 = OpBitwiseAnd %uint %14777 %uint_32768
-      %14779 = OpUGreaterThan %bool %14778 %uint_0
-               OpSelectionMerge %23179 None
-               OpSwitch %uint_0 %23163
-      %23163 = OpLabel
-               OpSelectionMerge %23178 None
-               OpBranchConditional %14779 %23165 %23173
-      %23173 = OpLabel
-      %23175 = OpISub %uint %184292 %int_1
-      %23176 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23175
-      %23177 = OpLoad %_arr_float_uint_2 %23176
-     %121961 = OpCompositeExtract %float %23177 0
-     %121962 = OpCompositeExtract %float %23177 1
-               OpBranch %23179
-      %23165 = OpLabel
-      %23167 = OpIAdd %uint %184294 %int_1
-      %23168 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23169 = OpLoad %float %23168
-               OpBranch %23179
-      %23178 = OpLabel
-               OpUnreachable
-      %23179 = OpLabel
-     %186608 = OpPhi %uint %23167 %23165 %184294 %23173
-     %185213 = OpPhi %uint %184292 %23165 %23175 %23173
-     %185212 = OpPhi %float %23169 %23165 %121961 %23173
-     %185211 = OpPhi %float %23169 %23165 %121962 %23173
-      %14783 = OpExtInst %float %1 Exp2 %185212
-      %14787 = OpExtInst %float %1 Exp2 %185211
-      %14793 = OpExtInst %float %1 FMin %14783 %14787
-      %14799 = OpExtInst %float %1 FMax %14783 %14787
-     %123427 = OpCompositeConstruct %_arr_float_uint_2 %14793 %14799
-      %23183 = OpIAdd %uint %185213 %int_1
-      %23185 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185213
-               OpStore %23185 %123427
-               OpBranch %20471
-      %14745 = OpLabel
-      %14748 = OpLoad %uint %12053
-      %14749 = OpBitwiseAnd %uint %14748 %uint_32768
-      %14750 = OpUGreaterThan %bool %14749 %uint_0
-               OpSelectionMerge %23151 None
-               OpSwitch %uint_0 %23135
-      %23135 = OpLabel
-               OpSelectionMerge %23150 None
-               OpBranchConditional %14750 %23137 %23145
-      %23145 = OpLabel
-      %23147 = OpISub %uint %184292 %int_1
-      %23148 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23147
-      %23149 = OpLoad %_arr_float_uint_2 %23148
-     %121970 = OpCompositeExtract %float %23149 0
-     %121971 = OpCompositeExtract %float %23149 1
-               OpBranch %23151
-      %23137 = OpLabel
-      %23139 = OpIAdd %uint %184294 %int_1
-      %23140 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23141 = OpLoad %float %23140
-               OpBranch %23151
-      %23150 = OpLabel
-               OpUnreachable
-      %23151 = OpLabel
-     %186607 = OpPhi %uint %23139 %23137 %184294 %23145
-     %185216 = OpPhi %uint %184292 %23137 %23147 %23145
-     %185215 = OpPhi %float %23141 %23137 %121970 %23145
-     %185214 = OpPhi %float %23141 %23137 %121971 %23145
-      %14754 = OpExtInst %float %1 Exp %185215
-      %14758 = OpExtInst %float %1 Exp %185214
-      %14764 = OpExtInst %float %1 FMin %14754 %14758
-      %14770 = OpExtInst %float %1 FMax %14754 %14758
-     %123418 = OpCompositeConstruct %_arr_float_uint_2 %14764 %14770
-      %23155 = OpIAdd %uint %185216 %int_1
-      %23157 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185216
-               OpStore %23157 %123418
-               OpBranch %20471
-      %14716 = OpLabel
-      %14719 = OpLoad %uint %12053
-      %14720 = OpBitwiseAnd %uint %14719 %uint_32768
-      %14721 = OpUGreaterThan %bool %14720 %uint_0
-               OpSelectionMerge %23123 None
-               OpSwitch %uint_0 %23107
-      %23107 = OpLabel
-               OpSelectionMerge %23122 None
-               OpBranchConditional %14721 %23109 %23117
-      %23117 = OpLabel
-      %23119 = OpISub %uint %184292 %int_1
-      %23120 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23119
-      %23121 = OpLoad %_arr_float_uint_2 %23120
-     %121979 = OpCompositeExtract %float %23121 0
-     %121980 = OpCompositeExtract %float %23121 1
-               OpBranch %23123
-      %23109 = OpLabel
-      %23111 = OpIAdd %uint %184294 %int_1
-      %23112 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23113 = OpLoad %float %23112
-               OpBranch %23123
-      %23122 = OpLabel
-               OpUnreachable
-      %23123 = OpLabel
-     %186606 = OpPhi %uint %23111 %23109 %184294 %23117
-     %185219 = OpPhi %uint %184292 %23109 %23119 %23117
-     %185218 = OpPhi %float %23113 %23109 %121979 %23117
-     %185217 = OpPhi %float %23113 %23109 %121980 %23117
-      %14725 = OpExtInst %float %1 InverseSqrt %185218
-      %14729 = OpExtInst %float %1 InverseSqrt %185217
-      %14735 = OpExtInst %float %1 FMin %14725 %14729
-      %14741 = OpExtInst %float %1 FMax %14725 %14729
-     %123409 = OpCompositeConstruct %_arr_float_uint_2 %14735 %14741
-      %23127 = OpIAdd %uint %185219 %int_1
-      %23129 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185219
-               OpStore %23129 %123409
-               OpBranch %20471
-      %14687 = OpLabel
-      %14690 = OpLoad %uint %12053
-      %14691 = OpBitwiseAnd %uint %14690 %uint_32768
-      %14692 = OpUGreaterThan %bool %14691 %uint_0
-               OpSelectionMerge %23095 None
-               OpSwitch %uint_0 %23079
-      %23079 = OpLabel
-               OpSelectionMerge %23094 None
-               OpBranchConditional %14692 %23081 %23089
-      %23089 = OpLabel
-      %23091 = OpISub %uint %184292 %int_1
-      %23092 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23091
-      %23093 = OpLoad %_arr_float_uint_2 %23092
-     %121988 = OpCompositeExtract %float %23093 0
-     %121989 = OpCompositeExtract %float %23093 1
-               OpBranch %23095
-      %23081 = OpLabel
-      %23083 = OpIAdd %uint %184294 %int_1
-      %23084 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23085 = OpLoad %float %23084
-               OpBranch %23095
-      %23094 = OpLabel
-               OpUnreachable
-      %23095 = OpLabel
-     %186605 = OpPhi %uint %23083 %23081 %184294 %23089
-     %185222 = OpPhi %uint %184292 %23081 %23091 %23089
-     %185221 = OpPhi %float %23085 %23081 %121988 %23089
-     %185220 = OpPhi %float %23085 %23081 %121989 %23089
-      %14696 = OpExtInst %float %1 Sqrt %185221
-      %14700 = OpExtInst %float %1 Sqrt %185220
-      %14706 = OpExtInst %float %1 FMin %14696 %14700
-      %14712 = OpExtInst %float %1 FMax %14696 %14700
-     %123400 = OpCompositeConstruct %_arr_float_uint_2 %14706 %14712
-      %23099 = OpIAdd %uint %185222 %int_1
-      %23101 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185222
-               OpStore %23101 %123400
-               OpBranch %20471
-      %14658 = OpLabel
-      %14661 = OpLoad %uint %12053
-      %14662 = OpBitwiseAnd %uint %14661 %uint_32768
-      %14663 = OpUGreaterThan %bool %14662 %uint_0
-               OpSelectionMerge %23067 None
-               OpSwitch %uint_0 %23051
-      %23051 = OpLabel
-               OpSelectionMerge %23066 None
-               OpBranchConditional %14663 %23053 %23061
-      %23061 = OpLabel
-      %23063 = OpISub %uint %184292 %int_1
-      %23064 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23063
-      %23065 = OpLoad %_arr_float_uint_2 %23064
-     %121997 = OpCompositeExtract %float %23065 0
-     %121998 = OpCompositeExtract %float %23065 1
-               OpBranch %23067
-      %23053 = OpLabel
-      %23055 = OpIAdd %uint %184294 %int_1
-      %23056 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23057 = OpLoad %float %23056
-               OpBranch %23067
-      %23066 = OpLabel
-               OpUnreachable
-      %23067 = OpLabel
-     %186604 = OpPhi %uint %23055 %23053 %184294 %23061
-     %185225 = OpPhi %uint %184292 %23053 %23063 %23061
-     %185224 = OpPhi %float %23057 %23053 %121997 %23061
-     %185223 = OpPhi %float %23057 %23053 %121998 %23061
-      %14667 = OpExtInst %float %1 Fract %185224
-      %14671 = OpExtInst %float %1 Fract %185223
-      %14677 = OpExtInst %float %1 FMin %14667 %14671
-      %14683 = OpExtInst %float %1 FMax %14667 %14671
-     %123391 = OpCompositeConstruct %_arr_float_uint_2 %14677 %14683
-      %23071 = OpIAdd %uint %185225 %int_1
-      %23073 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185225
-               OpStore %23073 %123391
-               OpBranch %20471
-      %14629 = OpLabel
-      %14632 = OpLoad %uint %12053
-      %14633 = OpBitwiseAnd %uint %14632 %uint_32768
-      %14634 = OpUGreaterThan %bool %14633 %uint_0
-               OpSelectionMerge %23039 None
-               OpSwitch %uint_0 %23023
-      %23023 = OpLabel
-               OpSelectionMerge %23038 None
-               OpBranchConditional %14634 %23025 %23033
-      %23033 = OpLabel
-      %23035 = OpISub %uint %184292 %int_1
-      %23036 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23035
-      %23037 = OpLoad %_arr_float_uint_2 %23036
-     %122006 = OpCompositeExtract %float %23037 0
-     %122007 = OpCompositeExtract %float %23037 1
-               OpBranch %23039
-      %23025 = OpLabel
-      %23027 = OpIAdd %uint %184294 %int_1
-      %23028 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23029 = OpLoad %float %23028
-               OpBranch %23039
-      %23038 = OpLabel
-               OpUnreachable
-      %23039 = OpLabel
-     %186603 = OpPhi %uint %23027 %23025 %184294 %23033
-     %185228 = OpPhi %uint %184292 %23025 %23035 %23033
-     %185227 = OpPhi %float %23029 %23025 %122006 %23033
-     %185226 = OpPhi %float %23029 %23025 %122007 %23033
-      %14638 = OpExtInst %float %1 Ceil %185227
-      %14642 = OpExtInst %float %1 Ceil %185226
-      %14648 = OpExtInst %float %1 FMin %14638 %14642
-      %14654 = OpExtInst %float %1 FMax %14638 %14642
-     %123382 = OpCompositeConstruct %_arr_float_uint_2 %14648 %14654
-      %23043 = OpIAdd %uint %185228 %int_1
-      %23045 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185228
-               OpStore %23045 %123382
-               OpBranch %20471
-      %14600 = OpLabel
-      %14603 = OpLoad %uint %12053
-      %14604 = OpBitwiseAnd %uint %14603 %uint_32768
-      %14605 = OpUGreaterThan %bool %14604 %uint_0
-               OpSelectionMerge %23011 None
-               OpSwitch %uint_0 %22995
-      %22995 = OpLabel
-               OpSelectionMerge %23010 None
-               OpBranchConditional %14605 %22997 %23005
-      %23005 = OpLabel
-      %23007 = OpISub %uint %184292 %int_1
-      %23008 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %23007
-      %23009 = OpLoad %_arr_float_uint_2 %23008
-     %122015 = OpCompositeExtract %float %23009 0
-     %122016 = OpCompositeExtract %float %23009 1
-               OpBranch %23011
-      %22997 = OpLabel
-      %22999 = OpIAdd %uint %184294 %int_1
-      %23000 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %23001 = OpLoad %float %23000
-               OpBranch %23011
-      %23010 = OpLabel
-               OpUnreachable
-      %23011 = OpLabel
-     %186602 = OpPhi %uint %22999 %22997 %184294 %23005
-     %185231 = OpPhi %uint %184292 %22997 %23007 %23005
-     %185230 = OpPhi %float %23001 %22997 %122015 %23005
-     %185229 = OpPhi %float %23001 %22997 %122016 %23005
-      %14609 = OpExtInst %float %1 Floor %185230
-      %14613 = OpExtInst %float %1 Floor %185229
-      %14619 = OpExtInst %float %1 FMin %14609 %14613
-      %14625 = OpExtInst %float %1 FMax %14609 %14613
-     %123373 = OpCompositeConstruct %_arr_float_uint_2 %14619 %14625
-      %23015 = OpIAdd %uint %185231 %int_1
-      %23017 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185231
-               OpStore %23017 %123373
-               OpBranch %20471
-      %14571 = OpLabel
-      %14574 = OpLoad %uint %12053
-      %14575 = OpBitwiseAnd %uint %14574 %uint_32768
-      %14576 = OpUGreaterThan %bool %14575 %uint_0
-               OpSelectionMerge %22983 None
-               OpSwitch %uint_0 %22967
-      %22967 = OpLabel
-               OpSelectionMerge %22982 None
-               OpBranchConditional %14576 %22969 %22977
-      %22977 = OpLabel
-      %22979 = OpISub %uint %184292 %int_1
-      %22980 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %22979
-      %22981 = OpLoad %_arr_float_uint_2 %22980
-     %122024 = OpCompositeExtract %float %22981 0
-     %122025 = OpCompositeExtract %float %22981 1
-               OpBranch %22983
-      %22969 = OpLabel
-      %22971 = OpIAdd %uint %184294 %int_1
-      %22972 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %22973 = OpLoad %float %22972
-               OpBranch %22983
-      %22982 = OpLabel
-               OpUnreachable
-      %22983 = OpLabel
-     %186601 = OpPhi %uint %22971 %22969 %184294 %22977
-     %185234 = OpPhi %uint %184292 %22969 %22979 %22977
-     %185233 = OpPhi %float %22973 %22969 %122024 %22977
-     %185232 = OpPhi %float %22973 %22969 %122025 %22977
-      %14580 = OpExtInst %float %1 FSign %185233
-      %14584 = OpExtInst %float %1 FSign %185232
-      %14590 = OpExtInst %float %1 FMin %14580 %14584
-      %14596 = OpExtInst %float %1 FMax %14580 %14584
-     %123364 = OpCompositeConstruct %_arr_float_uint_2 %14590 %14596
-      %22987 = OpIAdd %uint %185234 %int_1
-      %22989 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185234
-               OpStore %22989 %123364
-               OpBranch %20471
-      %14542 = OpLabel
-      %14545 = OpLoad %uint %12053
-      %14546 = OpBitwiseAnd %uint %14545 %uint_32768
-      %14547 = OpUGreaterThan %bool %14546 %uint_0
-               OpSelectionMerge %22955 None
-               OpSwitch %uint_0 %22939
-      %22939 = OpLabel
-               OpSelectionMerge %22954 None
-               OpBranchConditional %14547 %22941 %22949
-      %22949 = OpLabel
-      %22951 = OpISub %uint %184292 %int_1
-      %22952 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %22951
-      %22953 = OpLoad %_arr_float_uint_2 %22952
-     %122033 = OpCompositeExtract %float %22953 0
-     %122034 = OpCompositeExtract %float %22953 1
-               OpBranch %22955
-      %22941 = OpLabel
-      %22943 = OpIAdd %uint %184294 %int_1
-      %22944 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %22945 = OpLoad %float %22944
-               OpBranch %22955
-      %22954 = OpLabel
-               OpUnreachable
-      %22955 = OpLabel
-     %186600 = OpPhi %uint %22943 %22941 %184294 %22949
-     %185237 = OpPhi %uint %184292 %22941 %22951 %22949
-     %185236 = OpPhi %float %22945 %22941 %122033 %22949
-     %185235 = OpPhi %float %22945 %22941 %122034 %22949
-      %14551 = OpExtInst %float %1 FAbs %185236
-      %14555 = OpExtInst %float %1 FAbs %185235
-      %14561 = OpExtInst %float %1 FMin %14551 %14555
-      %14567 = OpExtInst %float %1 FMax %14551 %14555
-     %123355 = OpCompositeConstruct %_arr_float_uint_2 %14561 %14567
-      %22959 = OpIAdd %uint %185237 %int_1
-      %22961 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185237
-               OpStore %22961 %123355
-               OpBranch %20471
-      %14478 = OpLabel
-      %14481 = OpLoad %uint %12053
-      %14482 = OpBitwiseAnd %uint %14481 %uint_32768
-      %14483 = OpUGreaterThan %bool %14482 %uint_0
-               OpSelectionMerge %22904 None
-               OpSwitch %uint_0 %22888
-      %22888 = OpLabel
-               OpSelectionMerge %22903 None
-               OpBranchConditional %14483 %22890 %22898
-      %22898 = OpLabel
-      %22900 = OpISub %uint %184311 %int_1
-               OpBranch %22904
-      %22890 = OpLabel
-      %22892 = OpIAdd %uint %184337 %int_1
-               OpBranch %22904
-      %22903 = OpLabel
-               OpUnreachable
-      %22904 = OpLabel
-     %185240 = OpPhi %uint %22892 %22890 %184337 %22898
-     %185239 = OpPhi %uint %184311 %22890 %22900 %22898
-      %14487 = OpLoad %uint %12053
-      %14488 = OpBitwiseAnd %uint %14487 %uint_16384
-      %14489 = OpUGreaterThan %bool %14488 %uint_0
-               OpSelectionMerge %22927 None
-               OpSwitch %uint_0 %22911
-      %22911 = OpLabel
-               OpSelectionMerge %22926 None
-               OpBranchConditional %14489 %22913 %22921
-      %22921 = OpLabel
-      %22923 = OpISub %uint %185239 %int_1
-               OpBranch %22927
-      %22913 = OpLabel
-      %22915 = OpIAdd %uint %185240 %int_1
-               OpBranch %22927
-      %22926 = OpLabel
-               OpUnreachable
-      %22927 = OpLabel
-     %261139 = OpPhi %uint %22915 %22913 %185240 %22921
-     %260648 = OpPhi %uint %185239 %22913 %22923 %22921
-     %123348 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %22931 = OpIAdd %uint %184292 %int_1
-      %22933 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %22933 %123348
-               OpBranch %20471
-      %14432 = OpLabel
-      %14435 = OpLoad %uint %12053
-      %14436 = OpBitwiseAnd %uint %14435 %uint_32768
-      %14437 = OpUGreaterThan %bool %14436 %uint_0
-               OpSelectionMerge %22853 None
-               OpSwitch %uint_0 %22837
-      %22837 = OpLabel
-               OpSelectionMerge %22852 None
-               OpBranchConditional %14437 %22839 %22847
-      %22847 = OpLabel
-      %22849 = OpISub %uint %184302 %int_1
-               OpBranch %22853
-      %22839 = OpLabel
-      %22841 = OpIAdd %uint %184305 %int_1
-               OpBranch %22853
-      %22852 = OpLabel
-               OpUnreachable
-      %22853 = OpLabel
-     %185259 = OpPhi %uint %22841 %22839 %184305 %22847
-     %185258 = OpPhi %uint %184302 %22839 %22849 %22847
-      %14441 = OpLoad %uint %12053
-      %14442 = OpBitwiseAnd %uint %14441 %uint_16384
-      %14443 = OpUGreaterThan %bool %14442 %uint_0
-               OpSelectionMerge %22876 None
-               OpSwitch %uint_0 %22860
-      %22860 = OpLabel
-               OpSelectionMerge %22875 None
-               OpBranchConditional %14443 %22862 %22870
-      %22870 = OpLabel
-      %22872 = OpISub %uint %185258 %int_1
-               OpBranch %22876
-      %22862 = OpLabel
-      %22864 = OpIAdd %uint %185259 %int_1
-               OpBranch %22876
-      %22875 = OpLabel
-               OpUnreachable
-      %22876 = OpLabel
-     %260363 = OpPhi %uint %22864 %22862 %185259 %22870
-     %260109 = OpPhi %uint %185258 %22862 %22872 %22870
-     %123343 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %22880 = OpIAdd %uint %184292 %int_1
-      %22882 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %22882 %123343
-               OpBranch %20471
-      %14368 = OpLabel
-      %14371 = OpLoad %uint %12053
-      %14372 = OpBitwiseAnd %uint %14371 %uint_32768
-      %14373 = OpUGreaterThan %bool %14372 %uint_0
-               OpSelectionMerge %22802 None
-               OpSwitch %uint_0 %22786
-      %22786 = OpLabel
-               OpSelectionMerge %22801 None
-               OpBranchConditional %14373 %22788 %22796
-      %22796 = OpLabel
-      %22798 = OpISub %uint %184313 %int_1
-               OpBranch %22802
-      %22788 = OpLabel
-      %22790 = OpIAdd %uint %184363 %int_1
-               OpBranch %22802
-      %22801 = OpLabel
-               OpUnreachable
-      %22802 = OpLabel
-     %185278 = OpPhi %uint %22790 %22788 %184363 %22796
-     %185277 = OpPhi %uint %184313 %22788 %22798 %22796
-      %14377 = OpLoad %uint %12053
-      %14378 = OpBitwiseAnd %uint %14377 %uint_16384
-      %14379 = OpUGreaterThan %bool %14378 %uint_0
-               OpSelectionMerge %22825 None
-               OpSwitch %uint_0 %22809
-      %22809 = OpLabel
-               OpSelectionMerge %22824 None
-               OpBranchConditional %14379 %22811 %22819
-      %22819 = OpLabel
-      %22821 = OpISub %uint %185277 %int_1
-               OpBranch %22825
-      %22811 = OpLabel
-      %22813 = OpIAdd %uint %185278 %int_1
-               OpBranch %22825
-      %22824 = OpLabel
-               OpUnreachable
-      %22825 = OpLabel
-     %262077 = OpPhi %uint %22813 %22811 %185278 %22819
-     %260877 = OpPhi %uint %185277 %22811 %22821 %22819
-     %123338 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %22829 = OpIAdd %uint %184292 %int_1
-      %22831 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %22831 %123338
-               OpBranch %20471
-      %14328 = OpLabel
-      %14331 = OpLoad %uint %12053
-      %14332 = OpBitwiseAnd %uint %14331 %uint_32768
-      %14333 = OpUGreaterThan %bool %14332 %uint_0
-               OpSelectionMerge %22774 None
-               OpSwitch %uint_0 %22758
-      %22758 = OpLabel
-               OpSelectionMerge %22773 None
-               OpBranchConditional %14333 %22760 %22768
-      %22768 = OpLabel
-      %22770 = OpISub %uint %184311 %int_1
-               OpBranch %22774
-      %22760 = OpLabel
-      %22762 = OpIAdd %uint %184337 %int_1
-               OpBranch %22774
-      %22773 = OpLabel
-               OpUnreachable
-      %22774 = OpLabel
-     %261134 = OpPhi %uint %22762 %22760 %184337 %22768
-     %260643 = OpPhi %uint %184311 %22760 %22770 %22768
-     %123333 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %22778 = OpIAdd %uint %184292 %int_1
-      %22780 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %22780 %123333
-               OpBranch %20471
-      %14288 = OpLabel
-      %14291 = OpLoad %uint %12053
-      %14292 = OpBitwiseAnd %uint %14291 %uint_32768
-      %14293 = OpUGreaterThan %bool %14292 %uint_0
-               OpSelectionMerge %22746 None
-               OpSwitch %uint_0 %22730
-      %22730 = OpLabel
-               OpSelectionMerge %22745 None
-               OpBranchConditional %14293 %22732 %22740
-      %22740 = OpLabel
-      %22742 = OpISub %uint %184302 %int_1
-               OpBranch %22746
-      %22732 = OpLabel
-      %22734 = OpIAdd %uint %184305 %int_1
-               OpBranch %22746
-      %22745 = OpLabel
-               OpUnreachable
-      %22746 = OpLabel
-     %260359 = OpPhi %uint %22734 %22732 %184305 %22740
-     %260105 = OpPhi %uint %184302 %22732 %22742 %22740
-     %123328 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %22750 = OpIAdd %uint %184292 %int_1
-      %22752 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %22752 %123328
-               OpBranch %20471
-      %14248 = OpLabel
-      %14251 = OpLoad %uint %12053
-      %14252 = OpBitwiseAnd %uint %14251 %uint_32768
-      %14253 = OpUGreaterThan %bool %14252 %uint_0
-               OpSelectionMerge %22718 None
-               OpSwitch %uint_0 %22702
-      %22702 = OpLabel
-               OpSelectionMerge %22717 None
-               OpBranchConditional %14253 %22704 %22712
-      %22712 = OpLabel
-      %22714 = OpISub %uint %184313 %int_1
-               OpBranch %22718
-      %22704 = OpLabel
-      %22706 = OpIAdd %uint %184363 %int_1
-               OpBranch %22718
-      %22717 = OpLabel
-               OpUnreachable
-      %22718 = OpLabel
-     %262074 = OpPhi %uint %22706 %22704 %184363 %22712
-     %260874 = OpPhi %uint %184313 %22704 %22714 %22712
-     %123323 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %22722 = OpIAdd %uint %184292 %int_1
-      %22724 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %22724 %123323
-               OpBranch %20471
-      %14197 = OpLabel
-      %14200 = OpLoad %uint %12053
-      %14201 = OpBitwiseAnd %uint %14200 %uint_32768
-      %14202 = OpUGreaterThan %bool %14201 %uint_0
-               OpSelectionMerge %22667 None
-               OpSwitch %uint_0 %22651
-      %22651 = OpLabel
-               OpSelectionMerge %22666 None
-               OpBranchConditional %14202 %22653 %22661
-      %22661 = OpLabel
-      %22663 = OpISub %uint %184311 %int_1
-               OpBranch %22667
-      %22653 = OpLabel
-      %22655 = OpIAdd %uint %184337 %int_1
-               OpBranch %22667
-      %22666 = OpLabel
-               OpUnreachable
-      %22667 = OpLabel
-     %185336 = OpPhi %uint %22655 %22653 %184337 %22661
-     %185335 = OpPhi %uint %184311 %22653 %22663 %22661
-      %14206 = OpLoad %uint %12053
-      %14207 = OpBitwiseAnd %uint %14206 %uint_16384
-      %14208 = OpUGreaterThan %bool %14207 %uint_0
-               OpSelectionMerge %22690 None
-               OpSwitch %uint_0 %22674
-      %22674 = OpLabel
-               OpSelectionMerge %22689 None
-               OpBranchConditional %14208 %22676 %22684
-      %22684 = OpLabel
-      %22686 = OpISub %uint %185335 %int_1
-               OpBranch %22690
-      %22676 = OpLabel
-      %22678 = OpIAdd %uint %185336 %int_1
-               OpBranch %22690
-      %22689 = OpLabel
-               OpUnreachable
-      %22690 = OpLabel
-     %261131 = OpPhi %uint %22678 %22676 %185336 %22684
-     %260640 = OpPhi %uint %185335 %22676 %22686 %22684
-     %123318 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %22694 = OpIAdd %uint %184292 %int_1
-      %22696 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %22696 %123318
-               OpBranch %20471
-      %14146 = OpLabel
-      %14149 = OpLoad %uint %12053
-      %14150 = OpBitwiseAnd %uint %14149 %uint_32768
-      %14151 = OpUGreaterThan %bool %14150 %uint_0
-               OpSelectionMerge %22616 None
-               OpSwitch %uint_0 %22600
-      %22600 = OpLabel
-               OpSelectionMerge %22615 None
-               OpBranchConditional %14151 %22602 %22610
-      %22610 = OpLabel
-      %22612 = OpISub %uint %184302 %int_1
-               OpBranch %22616
-      %22602 = OpLabel
-      %22604 = OpIAdd %uint %184305 %int_1
-               OpBranch %22616
-      %22615 = OpLabel
-               OpUnreachable
-      %22616 = OpLabel
-     %185355 = OpPhi %uint %22604 %22602 %184305 %22610
-     %185354 = OpPhi %uint %184302 %22602 %22612 %22610
-      %14155 = OpLoad %uint %12053
-      %14156 = OpBitwiseAnd %uint %14155 %uint_16384
-      %14157 = OpUGreaterThan %bool %14156 %uint_0
-               OpSelectionMerge %22639 None
-               OpSwitch %uint_0 %22623
-      %22623 = OpLabel
-               OpSelectionMerge %22638 None
-               OpBranchConditional %14157 %22625 %22633
-      %22633 = OpLabel
-      %22635 = OpISub %uint %185354 %int_1
-               OpBranch %22639
-      %22625 = OpLabel
-      %22627 = OpIAdd %uint %185355 %int_1
-               OpBranch %22639
-      %22638 = OpLabel
-               OpUnreachable
-      %22639 = OpLabel
-     %260355 = OpPhi %uint %22627 %22625 %185355 %22633
-     %260101 = OpPhi %uint %185354 %22625 %22635 %22633
-     %123313 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %22643 = OpIAdd %uint %184292 %int_1
-      %22645 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %22645 %123313
-               OpBranch %20471
-      %14095 = OpLabel
-      %14098 = OpLoad %uint %12053
-      %14099 = OpBitwiseAnd %uint %14098 %uint_32768
-      %14100 = OpUGreaterThan %bool %14099 %uint_0
-               OpSelectionMerge %22565 None
-               OpSwitch %uint_0 %22549
-      %22549 = OpLabel
-               OpSelectionMerge %22564 None
-               OpBranchConditional %14100 %22551 %22559
-      %22559 = OpLabel
-      %22561 = OpISub %uint %184313 %int_1
-               OpBranch %22565
-      %22551 = OpLabel
-      %22553 = OpIAdd %uint %184363 %int_1
-               OpBranch %22565
-      %22564 = OpLabel
-               OpUnreachable
-      %22565 = OpLabel
-     %185374 = OpPhi %uint %22553 %22551 %184363 %22559
-     %185373 = OpPhi %uint %184313 %22551 %22561 %22559
-      %14104 = OpLoad %uint %12053
-      %14105 = OpBitwiseAnd %uint %14104 %uint_16384
-      %14106 = OpUGreaterThan %bool %14105 %uint_0
-               OpSelectionMerge %22588 None
-               OpSwitch %uint_0 %22572
-      %22572 = OpLabel
-               OpSelectionMerge %22587 None
-               OpBranchConditional %14106 %22574 %22582
-      %22582 = OpLabel
-      %22584 = OpISub %uint %185373 %int_1
-               OpBranch %22588
-      %22574 = OpLabel
-      %22576 = OpIAdd %uint %185374 %int_1
-               OpBranch %22588
-      %22587 = OpLabel
-               OpUnreachable
-      %22588 = OpLabel
-     %262069 = OpPhi %uint %22576 %22574 %185374 %22582
-     %260869 = OpPhi %uint %185373 %22574 %22584 %22582
-     %123308 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %22592 = OpIAdd %uint %184292 %int_1
-      %22594 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %184292
-               OpStore %22594 %123308
-               OpBranch %20471
-      %14046 = OpLabel
-      %14049 = OpLoad %uint %12053
-      %14050 = OpBitwiseAnd %uint %14049 %uint_32768
-      %14051 = OpUGreaterThan %bool %14050 %uint_0
-               OpSelectionMerge %22514 None
-               OpSwitch %uint_0 %22498
-      %22498 = OpLabel
-               OpSelectionMerge %22513 None
-               OpBranchConditional %14051 %22500 %22508
-      %22508 = OpLabel
-      %22510 = OpISub %uint %184302 %int_1
-      %22511 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %22510
-      %22512 = OpLoad %_arr_v3float_uint_2 %22511
-     %122051 = OpCompositeExtract %v3float %22512 0
-     %122052 = OpCompositeExtract %v3float %22512 1
-               OpBranch %22514
-      %22500 = OpLabel
-      %22502 = OpIAdd %uint %184305 %int_1
-      %22503 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %22504 = OpLoad %v3float %22503
-               OpBranch %22514
-      %22513 = OpLabel
-               OpUnreachable
-      %22514 = OpLabel
-     %185395 = OpPhi %uint %22502 %22500 %184305 %22508
-     %185394 = OpPhi %uint %184302 %22500 %22510 %22508
-     %185392 = OpPhi %v3float %22504 %22500 %122051 %22508
-     %185391 = OpPhi %v3float %22504 %22500 %122052 %22508
-      %14055 = OpLoad %uint %12053
-      %14056 = OpBitwiseAnd %uint %14055 %uint_16384
-      %14057 = OpUGreaterThan %bool %14056 %uint_0
-               OpSelectionMerge %22537 None
-               OpSwitch %uint_0 %22521
-      %22521 = OpLabel
-               OpSelectionMerge %22536 None
-               OpBranchConditional %14057 %22523 %22531
-      %22531 = OpLabel
-      %22533 = OpISub %uint %185394 %int_1
-      %22534 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %22533
-      %22535 = OpLoad %_arr_v3float_uint_2 %22534
-     %122042 = OpCompositeExtract %v3float %22535 0
-     %122043 = OpCompositeExtract %v3float %22535 1
-               OpBranch %22537
-      %22523 = OpLabel
-      %22525 = OpIAdd %uint %185395 %int_1
-      %22526 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %185395
-      %22527 = OpLoad %v3float %22526
-               OpBranch %22537
-      %22536 = OpLabel
-               OpUnreachable
-      %22537 = OpLabel
-     %260352 = OpPhi %uint %22525 %22523 %185395 %22531
-     %185398 = OpPhi %uint %185394 %22523 %22533 %22531
-     %185397 = OpPhi %v3float %22527 %22523 %122042 %22531
-     %185396 = OpPhi %v3float %22527 %22523 %122043 %22531
-      %14063 = OpExtInst %v3float %1 Cross %185392 %185397
-      %14068 = OpExtInst %v3float %1 Cross %185392 %185396
-      %14073 = OpExtInst %v3float %1 Cross %185391 %185397
-      %14078 = OpExtInst %v3float %1 Cross %185391 %185396
-      %14083 = OpExtInst %v3float %1 FMin %14073 %14078
-      %14084 = OpExtInst %v3float %1 FMin %14068 %14083
-      %14085 = OpExtInst %v3float %1 FMin %14063 %14084
-      %14090 = OpExtInst %v3float %1 FMax %14073 %14078
-      %14091 = OpExtInst %v3float %1 FMax %14068 %14090
-      %14092 = OpExtInst %v3float %1 FMax %14063 %14091
-      %14093 = OpCompositeConstruct %_arr_v3float_uint_2 %14085 %14092
-      %22541 = OpIAdd %uint %185398 %int_1
-      %22543 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185398
-               OpStore %22543 %14093
-               OpBranch %20471
-      %13979 = OpLabel
-      %13982 = OpLoad %uint %12053
-      %13983 = OpBitwiseAnd %uint %13982 %uint_32768
-      %13984 = OpUGreaterThan %bool %13983 %uint_0
-               OpSelectionMerge %22463 None
-               OpSwitch %uint_0 %22447
-      %22447 = OpLabel
-               OpSelectionMerge %22462 None
-               OpBranchConditional %13984 %22449 %22457
-      %22457 = OpLabel
-      %22459 = OpISub %uint %184311 %int_1
-      %22460 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %22459
-      %22461 = OpLoad %_arr_v4float_uint_2 %22460
-     %122069 = OpCompositeExtract %v4float %22461 0
-     %122070 = OpCompositeExtract %v4float %22461 1
-               OpBranch %22463
-      %22449 = OpLabel
-      %22451 = OpIAdd %uint %184337 %int_1
-      %22452 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %22453 = OpLoad %v4float %22452
-               OpBranch %22463
-      %22462 = OpLabel
-               OpUnreachable
-      %22463 = OpLabel
-     %261124 = OpPhi %uint %22451 %22449 %184337 %22457
-     %185409 = OpPhi %uint %184311 %22449 %22459 %22457
-     %185400 = OpPhi %v4float %22453 %22449 %122069 %22457
-     %185399 = OpPhi %v4float %22453 %22449 %122070 %22457
-      %13988 = OpLoad %uint %12053
-      %13989 = OpBitwiseAnd %uint %13988 %uint_16384
-      %13990 = OpUGreaterThan %bool %13989 %uint_0
-               OpSelectionMerge %22486 None
-               OpSwitch %uint_0 %22470
-      %22470 = OpLabel
-               OpSelectionMerge %22485 None
-               OpBranchConditional %13990 %22472 %22480
-      %22480 = OpLabel
-      %22482 = OpISub %uint %184292 %int_1
-      %22483 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %22482
-      %22484 = OpLoad %_arr_float_uint_2 %22483
-     %122060 = OpCompositeExtract %float %22484 0
-     %122061 = OpCompositeExtract %float %22484 1
-               OpBranch %22486
-      %22472 = OpLabel
-      %22474 = OpIAdd %uint %184294 %int_1
-      %22475 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %22476 = OpLoad %float %22475
-               OpBranch %22486
-      %22485 = OpLabel
-               OpUnreachable
-      %22486 = OpLabel
-     %186582 = OpPhi %uint %22474 %22472 %184294 %22480
-     %186380 = OpPhi %uint %184292 %22472 %22482 %22480
-     %185405 = OpPhi %float %22476 %22472 %122060 %22480
-     %185404 = OpPhi %float %22476 %22472 %122061 %22480
-      %13996 = OpCompositeConstruct %v4float %185405 %185405 %185405 %185405
-      %13997 = OpFMod %v4float %185400 %13996
-      %14003 = OpCompositeConstruct %v4float %185404 %185404 %185404 %185404
-      %14004 = OpFMod %v4float %185400 %14003
-      %14011 = OpFMod %v4float %185399 %13996
-      %14018 = OpFMod %v4float %185399 %14003
-      %14028 = OpExtInst %v4float %1 FMin %14011 %14018
-      %14029 = OpExtInst %v4float %1 FMin %14004 %14028
-      %14030 = OpExtInst %v4float %1 FMin %13997 %14029
-      %14040 = OpExtInst %v4float %1 FMax %14011 %14018
-      %14041 = OpExtInst %v4float %1 FMax %14004 %14040
-      %14042 = OpExtInst %v4float %1 FMax %13997 %14041
-     %123287 = OpCompositeConstruct %_arr_v4float_uint_2 %14030 %14042
-      %22490 = OpIAdd %uint %185409 %int_1
-      %22492 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %185409
-               OpStore %22492 %123287
-               OpBranch %20471
-      %13916 = OpLabel
-      %13919 = OpLoad %uint %12053
-      %13920 = OpBitwiseAnd %uint %13919 %uint_32768
-      %13921 = OpUGreaterThan %bool %13920 %uint_0
-               OpSelectionMerge %22412 None
-               OpSwitch %uint_0 %22396
-      %22396 = OpLabel
-               OpSelectionMerge %22411 None
-               OpBranchConditional %13921 %22398 %22406
-      %22406 = OpLabel
-      %22408 = OpISub %uint %184311 %int_1
-      %22409 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %22408
-      %22410 = OpLoad %_arr_v4float_uint_2 %22409
-     %122087 = OpCompositeExtract %v4float %22410 0
-     %122088 = OpCompositeExtract %v4float %22410 1
-               OpBranch %22412
-      %22398 = OpLabel
-      %22400 = OpIAdd %uint %184337 %int_1
-      %22401 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %22402 = OpLoad %v4float %22401
-               OpBranch %22412
-      %22411 = OpLabel
-               OpUnreachable
-      %22412 = OpLabel
-     %185414 = OpPhi %uint %22400 %22398 %184337 %22406
-     %185413 = OpPhi %uint %184311 %22398 %22408 %22406
-     %185411 = OpPhi %v4float %22402 %22398 %122087 %22406
-     %185410 = OpPhi %v4float %22402 %22398 %122088 %22406
-      %13925 = OpLoad %uint %12053
-      %13926 = OpBitwiseAnd %uint %13925 %uint_16384
-      %13927 = OpUGreaterThan %bool %13926 %uint_0
-               OpSelectionMerge %22435 None
-               OpSwitch %uint_0 %22419
-      %22419 = OpLabel
-               OpSelectionMerge %22434 None
-               OpBranchConditional %13927 %22421 %22429
-      %22429 = OpLabel
-      %22431 = OpISub %uint %185413 %int_1
-      %22432 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %22431
-      %22433 = OpLoad %_arr_v4float_uint_2 %22432
-     %122078 = OpCompositeExtract %v4float %22433 0
-     %122079 = OpCompositeExtract %v4float %22433 1
-               OpBranch %22435
-      %22421 = OpLabel
-      %22423 = OpIAdd %uint %185414 %int_1
-      %22424 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %185414
-      %22425 = OpLoad %v4float %22424
-               OpBranch %22435
-      %22434 = OpLabel
-               OpUnreachable
-      %22435 = OpLabel
-     %261122 = OpPhi %uint %22423 %22421 %185414 %22429
-     %185419 = OpPhi %uint %185413 %22421 %22431 %22429
-     %185416 = OpPhi %v4float %22425 %22421 %122078 %22429
-     %185415 = OpPhi %v4float %22425 %22421 %122079 %22429
-      %13933 = OpFMod %v4float %185411 %185416
-      %13939 = OpFMod %v4float %185411 %185415
-      %13945 = OpFMod %v4float %185410 %185416
-      %13951 = OpFMod %v4float %185410 %185415
-      %13961 = OpExtInst %v4float %1 FMin %13945 %13951
-      %13962 = OpExtInst %v4float %1 FMin %13939 %13961
-      %13963 = OpExtInst %v4float %1 FMin %13933 %13962
-      %13973 = OpExtInst %v4float %1 FMax %13945 %13951
-      %13974 = OpExtInst %v4float %1 FMax %13939 %13973
-      %13975 = OpExtInst %v4float %1 FMax %13933 %13974
-     %123272 = OpCompositeConstruct %_arr_v4float_uint_2 %13963 %13975
-      %22439 = OpIAdd %uint %185419 %int_1
-      %22441 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %185419
-               OpStore %22441 %123272
-               OpBranch %20471
-      %13849 = OpLabel
-      %13852 = OpLoad %uint %12053
-      %13853 = OpBitwiseAnd %uint %13852 %uint_32768
-      %13854 = OpUGreaterThan %bool %13853 %uint_0
-               OpSelectionMerge %22361 None
-               OpSwitch %uint_0 %22345
-      %22345 = OpLabel
-               OpSelectionMerge %22360 None
-               OpBranchConditional %13854 %22347 %22355
-      %22355 = OpLabel
-      %22357 = OpISub %uint %184302 %int_1
-      %22358 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %22357
-      %22359 = OpLoad %_arr_v3float_uint_2 %22358
-     %122105 = OpCompositeExtract %v3float %22359 0
-     %122106 = OpCompositeExtract %v3float %22359 1
-               OpBranch %22361
-      %22347 = OpLabel
-      %22349 = OpIAdd %uint %184305 %int_1
-      %22350 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %22351 = OpLoad %v3float %22350
-               OpBranch %22361
-      %22360 = OpLabel
-               OpUnreachable
-      %22361 = OpLabel
-     %260347 = OpPhi %uint %22349 %22347 %184305 %22355
-     %185430 = OpPhi %uint %184302 %22347 %22357 %22355
-     %185421 = OpPhi %v3float %22351 %22347 %122105 %22355
-     %185420 = OpPhi %v3float %22351 %22347 %122106 %22355
-      %13858 = OpLoad %uint %12053
-      %13859 = OpBitwiseAnd %uint %13858 %uint_16384
-      %13860 = OpUGreaterThan %bool %13859 %uint_0
-               OpSelectionMerge %22384 None
-               OpSwitch %uint_0 %22368
-      %22368 = OpLabel
-               OpSelectionMerge %22383 None
-               OpBranchConditional %13860 %22370 %22378
-      %22378 = OpLabel
-      %22380 = OpISub %uint %184292 %int_1
-      %22381 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %22380
-      %22382 = OpLoad %_arr_float_uint_2 %22381
-     %122096 = OpCompositeExtract %float %22382 0
-     %122097 = OpCompositeExtract %float %22382 1
-               OpBranch %22384
-      %22370 = OpLabel
-      %22372 = OpIAdd %uint %184294 %int_1
-      %22373 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %22374 = OpLoad %float %22373
-               OpBranch %22384
-      %22383 = OpLabel
-               OpUnreachable
-      %22384 = OpLabel
-     %186579 = OpPhi %uint %22372 %22370 %184294 %22378
-     %186377 = OpPhi %uint %184292 %22370 %22380 %22378
-     %185426 = OpPhi %float %22374 %22370 %122096 %22378
-     %185425 = OpPhi %float %22374 %22370 %122097 %22378
-      %13866 = OpCompositeConstruct %v3float %185426 %185426 %185426
-      %13867 = OpFMod %v3float %185421 %13866
-      %13873 = OpCompositeConstruct %v3float %185425 %185425 %185425
-      %13874 = OpFMod %v3float %185421 %13873
-      %13881 = OpFMod %v3float %185420 %13866
-      %13888 = OpFMod %v3float %185420 %13873
-      %13898 = OpExtInst %v3float %1 FMin %13881 %13888
-      %13899 = OpExtInst %v3float %1 FMin %13874 %13898
-      %13900 = OpExtInst %v3float %1 FMin %13867 %13899
-      %13910 = OpExtInst %v3float %1 FMax %13881 %13888
-      %13911 = OpExtInst %v3float %1 FMax %13874 %13910
-      %13912 = OpExtInst %v3float %1 FMax %13867 %13911
-     %123257 = OpCompositeConstruct %_arr_v3float_uint_2 %13900 %13912
-      %22388 = OpIAdd %uint %185430 %int_1
-      %22390 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185430
-               OpStore %22390 %123257
-               OpBranch %20471
-      %13786 = OpLabel
-      %13789 = OpLoad %uint %12053
-      %13790 = OpBitwiseAnd %uint %13789 %uint_32768
-      %13791 = OpUGreaterThan %bool %13790 %uint_0
-               OpSelectionMerge %22310 None
-               OpSwitch %uint_0 %22294
-      %22294 = OpLabel
-               OpSelectionMerge %22309 None
-               OpBranchConditional %13791 %22296 %22304
-      %22304 = OpLabel
-      %22306 = OpISub %uint %184302 %int_1
-      %22307 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %22306
-      %22308 = OpLoad %_arr_v3float_uint_2 %22307
-     %122123 = OpCompositeExtract %v3float %22308 0
-     %122124 = OpCompositeExtract %v3float %22308 1
-               OpBranch %22310
-      %22296 = OpLabel
-      %22298 = OpIAdd %uint %184305 %int_1
-      %22299 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %22300 = OpLoad %v3float %22299
-               OpBranch %22310
-      %22309 = OpLabel
-               OpUnreachable
-      %22310 = OpLabel
-     %185435 = OpPhi %uint %22298 %22296 %184305 %22304
-     %185434 = OpPhi %uint %184302 %22296 %22306 %22304
-     %185432 = OpPhi %v3float %22300 %22296 %122123 %22304
-     %185431 = OpPhi %v3float %22300 %22296 %122124 %22304
-      %13795 = OpLoad %uint %12053
-      %13796 = OpBitwiseAnd %uint %13795 %uint_16384
-      %13797 = OpUGreaterThan %bool %13796 %uint_0
-               OpSelectionMerge %22333 None
-               OpSwitch %uint_0 %22317
-      %22317 = OpLabel
-               OpSelectionMerge %22332 None
-               OpBranchConditional %13797 %22319 %22327
-      %22327 = OpLabel
-      %22329 = OpISub %uint %185434 %int_1
-      %22330 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %22329
-      %22331 = OpLoad %_arr_v3float_uint_2 %22330
-     %122114 = OpCompositeExtract %v3float %22331 0
-     %122115 = OpCompositeExtract %v3float %22331 1
-               OpBranch %22333
-      %22319 = OpLabel
-      %22321 = OpIAdd %uint %185435 %int_1
-      %22322 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %185435
-      %22323 = OpLoad %v3float %22322
-               OpBranch %22333
-      %22332 = OpLabel
-               OpUnreachable
-      %22333 = OpLabel
-     %260345 = OpPhi %uint %22321 %22319 %185435 %22327
-     %185440 = OpPhi %uint %185434 %22319 %22329 %22327
-     %185437 = OpPhi %v3float %22323 %22319 %122114 %22327
-     %185436 = OpPhi %v3float %22323 %22319 %122115 %22327
-      %13803 = OpFMod %v3float %185432 %185437
-      %13809 = OpFMod %v3float %185432 %185436
-      %13815 = OpFMod %v3float %185431 %185437
-      %13821 = OpFMod %v3float %185431 %185436
-      %13831 = OpExtInst %v3float %1 FMin %13815 %13821
-      %13832 = OpExtInst %v3float %1 FMin %13809 %13831
-      %13833 = OpExtInst %v3float %1 FMin %13803 %13832
-      %13843 = OpExtInst %v3float %1 FMax %13815 %13821
-      %13844 = OpExtInst %v3float %1 FMax %13809 %13843
-      %13845 = OpExtInst %v3float %1 FMax %13803 %13844
-     %123242 = OpCompositeConstruct %_arr_v3float_uint_2 %13833 %13845
-      %22337 = OpIAdd %uint %185440 %int_1
-      %22339 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185440
-               OpStore %22339 %123242
-               OpBranch %20471
-      %13719 = OpLabel
-      %13722 = OpLoad %uint %12053
-      %13723 = OpBitwiseAnd %uint %13722 %uint_32768
-      %13724 = OpUGreaterThan %bool %13723 %uint_0
-               OpSelectionMerge %22259 None
-               OpSwitch %uint_0 %22243
-      %22243 = OpLabel
-               OpSelectionMerge %22258 None
-               OpBranchConditional %13724 %22245 %22253
-      %22253 = OpLabel
-      %22255 = OpISub %uint %184313 %int_1
-      %22256 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %22255
-      %22257 = OpLoad %_arr_v2float_uint_2 %22256
-     %122141 = OpCompositeExtract %v2float %22257 0
-     %122142 = OpCompositeExtract %v2float %22257 1
-               OpBranch %22259
-      %22245 = OpLabel
-      %22247 = OpIAdd %uint %184363 %int_1
-      %22248 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %22249 = OpLoad %v2float %22248
-               OpBranch %22259
-      %22258 = OpLabel
-               OpUnreachable
-      %22259 = OpLabel
-     %262058 = OpPhi %uint %22247 %22245 %184363 %22253
-     %185451 = OpPhi %uint %184313 %22245 %22255 %22253
-     %185442 = OpPhi %v2float %22249 %22245 %122141 %22253
-     %185441 = OpPhi %v2float %22249 %22245 %122142 %22253
-      %13728 = OpLoad %uint %12053
-      %13729 = OpBitwiseAnd %uint %13728 %uint_16384
-      %13730 = OpUGreaterThan %bool %13729 %uint_0
-               OpSelectionMerge %22282 None
-               OpSwitch %uint_0 %22266
-      %22266 = OpLabel
-               OpSelectionMerge %22281 None
-               OpBranchConditional %13730 %22268 %22276
-      %22276 = OpLabel
-      %22278 = OpISub %uint %184292 %int_1
-      %22279 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %22278
-      %22280 = OpLoad %_arr_float_uint_2 %22279
-     %122132 = OpCompositeExtract %float %22280 0
-     %122133 = OpCompositeExtract %float %22280 1
-               OpBranch %22282
-      %22268 = OpLabel
-      %22270 = OpIAdd %uint %184294 %int_1
-      %22271 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %22272 = OpLoad %float %22271
-               OpBranch %22282
-      %22281 = OpLabel
-               OpUnreachable
-      %22282 = OpLabel
-     %186576 = OpPhi %uint %22270 %22268 %184294 %22276
-     %186374 = OpPhi %uint %184292 %22268 %22278 %22276
-     %185447 = OpPhi %float %22272 %22268 %122132 %22276
-     %185446 = OpPhi %float %22272 %22268 %122133 %22276
-      %13736 = OpCompositeConstruct %v2float %185447 %185447
-      %13737 = OpFMod %v2float %185442 %13736
-      %13743 = OpCompositeConstruct %v2float %185446 %185446
-      %13744 = OpFMod %v2float %185442 %13743
-      %13751 = OpFMod %v2float %185441 %13736
-      %13758 = OpFMod %v2float %185441 %13743
-      %13768 = OpExtInst %v2float %1 FMin %13751 %13758
-      %13769 = OpExtInst %v2float %1 FMin %13744 %13768
-      %13770 = OpExtInst %v2float %1 FMin %13737 %13769
-      %13780 = OpExtInst %v2float %1 FMax %13751 %13758
-      %13781 = OpExtInst %v2float %1 FMax %13744 %13780
-      %13782 = OpExtInst %v2float %1 FMax %13737 %13781
-     %123227 = OpCompositeConstruct %_arr_v2float_uint_2 %13770 %13782
-      %22286 = OpIAdd %uint %185451 %int_1
-      %22288 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185451
-               OpStore %22288 %123227
-               OpBranch %20471
-      %13656 = OpLabel
-      %13659 = OpLoad %uint %12053
-      %13660 = OpBitwiseAnd %uint %13659 %uint_32768
-      %13661 = OpUGreaterThan %bool %13660 %uint_0
-               OpSelectionMerge %22208 None
-               OpSwitch %uint_0 %22192
-      %22192 = OpLabel
-               OpSelectionMerge %22207 None
-               OpBranchConditional %13661 %22194 %22202
-      %22202 = OpLabel
-      %22204 = OpISub %uint %184313 %int_1
-      %22205 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %22204
-      %22206 = OpLoad %_arr_v2float_uint_2 %22205
-     %122159 = OpCompositeExtract %v2float %22206 0
-     %122160 = OpCompositeExtract %v2float %22206 1
-               OpBranch %22208
-      %22194 = OpLabel
-      %22196 = OpIAdd %uint %184363 %int_1
-      %22197 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %22198 = OpLoad %v2float %22197
-               OpBranch %22208
-      %22207 = OpLabel
-               OpUnreachable
-      %22208 = OpLabel
-     %185456 = OpPhi %uint %22196 %22194 %184363 %22202
-     %185455 = OpPhi %uint %184313 %22194 %22204 %22202
-     %185453 = OpPhi %v2float %22198 %22194 %122159 %22202
-     %185452 = OpPhi %v2float %22198 %22194 %122160 %22202
-      %13665 = OpLoad %uint %12053
-      %13666 = OpBitwiseAnd %uint %13665 %uint_16384
-      %13667 = OpUGreaterThan %bool %13666 %uint_0
-               OpSelectionMerge %22231 None
-               OpSwitch %uint_0 %22215
-      %22215 = OpLabel
-               OpSelectionMerge %22230 None
-               OpBranchConditional %13667 %22217 %22225
-      %22225 = OpLabel
-      %22227 = OpISub %uint %185455 %int_1
-      %22228 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %22227
-      %22229 = OpLoad %_arr_v2float_uint_2 %22228
-     %122150 = OpCompositeExtract %v2float %22229 0
-     %122151 = OpCompositeExtract %v2float %22229 1
-               OpBranch %22231
-      %22217 = OpLabel
-      %22219 = OpIAdd %uint %185456 %int_1
-      %22220 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %185456
-      %22221 = OpLoad %v2float %22220
-               OpBranch %22231
-      %22230 = OpLabel
-               OpUnreachable
-      %22231 = OpLabel
-     %262056 = OpPhi %uint %22219 %22217 %185456 %22225
-     %185461 = OpPhi %uint %185455 %22217 %22227 %22225
-     %185458 = OpPhi %v2float %22221 %22217 %122150 %22225
-     %185457 = OpPhi %v2float %22221 %22217 %122151 %22225
-      %13673 = OpFMod %v2float %185453 %185458
-      %13679 = OpFMod %v2float %185453 %185457
-      %13685 = OpFMod %v2float %185452 %185458
-      %13691 = OpFMod %v2float %185452 %185457
-      %13701 = OpExtInst %v2float %1 FMin %13685 %13691
-      %13702 = OpExtInst %v2float %1 FMin %13679 %13701
-      %13703 = OpExtInst %v2float %1 FMin %13673 %13702
-      %13713 = OpExtInst %v2float %1 FMax %13685 %13691
-      %13714 = OpExtInst %v2float %1 FMax %13679 %13713
-      %13715 = OpExtInst %v2float %1 FMax %13673 %13714
-     %123212 = OpCompositeConstruct %_arr_v2float_uint_2 %13703 %13715
-      %22235 = OpIAdd %uint %185461 %int_1
-      %22237 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185461
-               OpStore %22237 %123212
-               OpBranch %20471
-      %13593 = OpLabel
-      %13596 = OpLoad %uint %12053
-      %13597 = OpBitwiseAnd %uint %13596 %uint_32768
-      %13598 = OpUGreaterThan %bool %13597 %uint_0
-               OpSelectionMerge %22157 None
-               OpSwitch %uint_0 %22141
-      %22141 = OpLabel
-               OpSelectionMerge %22156 None
-               OpBranchConditional %13598 %22143 %22151
-      %22151 = OpLabel
-      %22153 = OpISub %uint %184292 %int_1
-      %22154 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %22153
-      %22155 = OpLoad %_arr_float_uint_2 %22154
-     %122177 = OpCompositeExtract %float %22155 0
-     %122178 = OpCompositeExtract %float %22155 1
-               OpBranch %22157
-      %22143 = OpLabel
-      %22145 = OpIAdd %uint %184294 %int_1
-      %22146 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %22147 = OpLoad %float %22146
-               OpBranch %22157
-      %22156 = OpLabel
-               OpUnreachable
-      %22157 = OpLabel
-     %185466 = OpPhi %uint %22145 %22143 %184294 %22151
-     %185465 = OpPhi %uint %184292 %22143 %22153 %22151
-     %185463 = OpPhi %float %22147 %22143 %122177 %22151
-     %185462 = OpPhi %float %22147 %22143 %122178 %22151
-      %13602 = OpLoad %uint %12053
-      %13603 = OpBitwiseAnd %uint %13602 %uint_16384
-      %13604 = OpUGreaterThan %bool %13603 %uint_0
-               OpSelectionMerge %22180 None
-               OpSwitch %uint_0 %22164
-      %22164 = OpLabel
-               OpSelectionMerge %22179 None
-               OpBranchConditional %13604 %22166 %22174
-      %22174 = OpLabel
-      %22176 = OpISub %uint %185465 %int_1
-      %22177 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %22176
-      %22178 = OpLoad %_arr_float_uint_2 %22177
-     %122168 = OpCompositeExtract %float %22178 0
-     %122169 = OpCompositeExtract %float %22178 1
-               OpBranch %22180
-      %22166 = OpLabel
-      %22168 = OpIAdd %uint %185466 %int_1
-      %22169 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %185466
-      %22170 = OpLoad %float %22169
-               OpBranch %22180
-      %22179 = OpLabel
-               OpUnreachable
-      %22180 = OpLabel
-     %186573 = OpPhi %uint %22168 %22166 %185466 %22174
-     %185471 = OpPhi %uint %185465 %22166 %22176 %22174
-     %185468 = OpPhi %float %22170 %22166 %122168 %22174
-     %185467 = OpPhi %float %22170 %22166 %122169 %22174
-      %13610 = OpFMod %float %185463 %185468
-      %13616 = OpFMod %float %185463 %185467
-      %13622 = OpFMod %float %185462 %185468
-      %13628 = OpFMod %float %185462 %185467
-      %13638 = OpExtInst %float %1 FMin %13622 %13628
-      %13639 = OpExtInst %float %1 FMin %13616 %13638
-      %13640 = OpExtInst %float %1 FMin %13610 %13639
-      %13650 = OpExtInst %float %1 FMax %13622 %13628
-      %13651 = OpExtInst %float %1 FMax %13616 %13650
-      %13652 = OpExtInst %float %1 FMax %13610 %13651
-     %123197 = OpCompositeConstruct %_arr_float_uint_2 %13640 %13652
-      %22184 = OpIAdd %uint %185471 %int_1
-      %22186 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185471
-               OpStore %22186 %123197
-               OpBranch %20471
-      %13530 = OpLabel
-      %13533 = OpLoad %uint %12053
-      %13534 = OpBitwiseAnd %uint %13533 %uint_32768
-      %13535 = OpUGreaterThan %bool %13534 %uint_0
-               OpSelectionMerge %22106 None
-               OpSwitch %uint_0 %22090
-      %22090 = OpLabel
-               OpSelectionMerge %22105 None
-               OpBranchConditional %13535 %22092 %22100
-      %22100 = OpLabel
-      %22102 = OpISub %uint %184311 %int_1
-      %22103 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %22102
-      %22104 = OpLoad %_arr_v4float_uint_2 %22103
-     %122195 = OpCompositeExtract %v4float %22104 0
-     %122196 = OpCompositeExtract %v4float %22104 1
-               OpBranch %22106
-      %22092 = OpLabel
-      %22094 = OpIAdd %uint %184337 %int_1
-      %22095 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %22096 = OpLoad %v4float %22095
-               OpBranch %22106
-      %22105 = OpLabel
-               OpUnreachable
-      %22106 = OpLabel
-     %185476 = OpPhi %uint %22094 %22092 %184337 %22100
-     %185475 = OpPhi %uint %184311 %22092 %22102 %22100
-     %185473 = OpPhi %v4float %22096 %22092 %122195 %22100
-     %185472 = OpPhi %v4float %22096 %22092 %122196 %22100
-      %13539 = OpLoad %uint %12053
-      %13540 = OpBitwiseAnd %uint %13539 %uint_16384
-      %13541 = OpUGreaterThan %bool %13540 %uint_0
-               OpSelectionMerge %22129 None
-               OpSwitch %uint_0 %22113
-      %22113 = OpLabel
-               OpSelectionMerge %22128 None
-               OpBranchConditional %13541 %22115 %22123
-      %22123 = OpLabel
-      %22125 = OpISub %uint %185475 %int_1
-      %22126 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %22125
-      %22127 = OpLoad %_arr_v4float_uint_2 %22126
-     %122186 = OpCompositeExtract %v4float %22127 0
-     %122187 = OpCompositeExtract %v4float %22127 1
-               OpBranch %22129
-      %22115 = OpLabel
-      %22117 = OpIAdd %uint %185476 %int_1
-      %22118 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %185476
-      %22119 = OpLoad %v4float %22118
-               OpBranch %22129
-      %22128 = OpLabel
-               OpUnreachable
-      %22129 = OpLabel
-     %261111 = OpPhi %uint %22117 %22115 %185476 %22123
-     %185481 = OpPhi %uint %185475 %22115 %22125 %22123
-     %185478 = OpPhi %v4float %22119 %22115 %122186 %22123
-     %185477 = OpPhi %v4float %22119 %22115 %122187 %22123
-      %13547 = OpExtInst %v4float %1 Pow %185473 %185478
-      %13553 = OpExtInst %v4float %1 Pow %185473 %185477
-      %13559 = OpExtInst %v4float %1 Pow %185472 %185478
-      %13565 = OpExtInst %v4float %1 Pow %185472 %185477
-      %13575 = OpExtInst %v4float %1 FMin %13559 %13565
-      %13576 = OpExtInst %v4float %1 FMin %13553 %13575
-      %13577 = OpExtInst %v4float %1 FMin %13547 %13576
-      %13587 = OpExtInst %v4float %1 FMax %13559 %13565
-      %13588 = OpExtInst %v4float %1 FMax %13553 %13587
-      %13589 = OpExtInst %v4float %1 FMax %13547 %13588
-     %123182 = OpCompositeConstruct %_arr_v4float_uint_2 %13577 %13589
-      %22133 = OpIAdd %uint %185481 %int_1
-      %22135 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %185481
-               OpStore %22135 %123182
-               OpBranch %20471
-      %13467 = OpLabel
-      %13470 = OpLoad %uint %12053
-      %13471 = OpBitwiseAnd %uint %13470 %uint_32768
-      %13472 = OpUGreaterThan %bool %13471 %uint_0
-               OpSelectionMerge %22055 None
-               OpSwitch %uint_0 %22039
-      %22039 = OpLabel
-               OpSelectionMerge %22054 None
-               OpBranchConditional %13472 %22041 %22049
-      %22049 = OpLabel
-      %22051 = OpISub %uint %184302 %int_1
-      %22052 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %22051
-      %22053 = OpLoad %_arr_v3float_uint_2 %22052
-     %122213 = OpCompositeExtract %v3float %22053 0
-     %122214 = OpCompositeExtract %v3float %22053 1
-               OpBranch %22055
-      %22041 = OpLabel
-      %22043 = OpIAdd %uint %184305 %int_1
-      %22044 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %22045 = OpLoad %v3float %22044
-               OpBranch %22055
-      %22054 = OpLabel
-               OpUnreachable
-      %22055 = OpLabel
-     %185486 = OpPhi %uint %22043 %22041 %184305 %22049
-     %185485 = OpPhi %uint %184302 %22041 %22051 %22049
-     %185483 = OpPhi %v3float %22045 %22041 %122213 %22049
-     %185482 = OpPhi %v3float %22045 %22041 %122214 %22049
-      %13476 = OpLoad %uint %12053
-      %13477 = OpBitwiseAnd %uint %13476 %uint_16384
-      %13478 = OpUGreaterThan %bool %13477 %uint_0
-               OpSelectionMerge %22078 None
-               OpSwitch %uint_0 %22062
-      %22062 = OpLabel
-               OpSelectionMerge %22077 None
-               OpBranchConditional %13478 %22064 %22072
-      %22072 = OpLabel
-      %22074 = OpISub %uint %185485 %int_1
-      %22075 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %22074
-      %22076 = OpLoad %_arr_v3float_uint_2 %22075
-     %122204 = OpCompositeExtract %v3float %22076 0
-     %122205 = OpCompositeExtract %v3float %22076 1
-               OpBranch %22078
-      %22064 = OpLabel
-      %22066 = OpIAdd %uint %185486 %int_1
-      %22067 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %185486
-      %22068 = OpLoad %v3float %22067
-               OpBranch %22078
-      %22077 = OpLabel
-               OpUnreachable
-      %22078 = OpLabel
-     %260336 = OpPhi %uint %22066 %22064 %185486 %22072
-     %185491 = OpPhi %uint %185485 %22064 %22074 %22072
-     %185488 = OpPhi %v3float %22068 %22064 %122204 %22072
-     %185487 = OpPhi %v3float %22068 %22064 %122205 %22072
-      %13484 = OpExtInst %v3float %1 Pow %185483 %185488
-      %13490 = OpExtInst %v3float %1 Pow %185483 %185487
-      %13496 = OpExtInst %v3float %1 Pow %185482 %185488
-      %13502 = OpExtInst %v3float %1 Pow %185482 %185487
-      %13512 = OpExtInst %v3float %1 FMin %13496 %13502
-      %13513 = OpExtInst %v3float %1 FMin %13490 %13512
-      %13514 = OpExtInst %v3float %1 FMin %13484 %13513
-      %13524 = OpExtInst %v3float %1 FMax %13496 %13502
-      %13525 = OpExtInst %v3float %1 FMax %13490 %13524
-      %13526 = OpExtInst %v3float %1 FMax %13484 %13525
-     %123167 = OpCompositeConstruct %_arr_v3float_uint_2 %13514 %13526
-      %22082 = OpIAdd %uint %185491 %int_1
-      %22084 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185491
-               OpStore %22084 %123167
-               OpBranch %20471
-      %13404 = OpLabel
-      %13407 = OpLoad %uint %12053
-      %13408 = OpBitwiseAnd %uint %13407 %uint_32768
-      %13409 = OpUGreaterThan %bool %13408 %uint_0
-               OpSelectionMerge %22004 None
-               OpSwitch %uint_0 %21988
-      %21988 = OpLabel
-               OpSelectionMerge %22003 None
-               OpBranchConditional %13409 %21990 %21998
-      %21998 = OpLabel
-      %22000 = OpISub %uint %184313 %int_1
-      %22001 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %22000
-      %22002 = OpLoad %_arr_v2float_uint_2 %22001
-     %122231 = OpCompositeExtract %v2float %22002 0
-     %122232 = OpCompositeExtract %v2float %22002 1
-               OpBranch %22004
-      %21990 = OpLabel
-      %21992 = OpIAdd %uint %184363 %int_1
-      %21993 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %21994 = OpLoad %v2float %21993
-               OpBranch %22004
-      %22003 = OpLabel
-               OpUnreachable
-      %22004 = OpLabel
-     %185496 = OpPhi %uint %21992 %21990 %184363 %21998
-     %185495 = OpPhi %uint %184313 %21990 %22000 %21998
-     %185493 = OpPhi %v2float %21994 %21990 %122231 %21998
-     %185492 = OpPhi %v2float %21994 %21990 %122232 %21998
-      %13413 = OpLoad %uint %12053
-      %13414 = OpBitwiseAnd %uint %13413 %uint_16384
-      %13415 = OpUGreaterThan %bool %13414 %uint_0
-               OpSelectionMerge %22027 None
-               OpSwitch %uint_0 %22011
-      %22011 = OpLabel
-               OpSelectionMerge %22026 None
-               OpBranchConditional %13415 %22013 %22021
-      %22021 = OpLabel
-      %22023 = OpISub %uint %185495 %int_1
-      %22024 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %22023
-      %22025 = OpLoad %_arr_v2float_uint_2 %22024
-     %122222 = OpCompositeExtract %v2float %22025 0
-     %122223 = OpCompositeExtract %v2float %22025 1
-               OpBranch %22027
-      %22013 = OpLabel
-      %22015 = OpIAdd %uint %185496 %int_1
-      %22016 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %185496
-      %22017 = OpLoad %v2float %22016
-               OpBranch %22027
-      %22026 = OpLabel
-               OpUnreachable
-      %22027 = OpLabel
-     %262049 = OpPhi %uint %22015 %22013 %185496 %22021
-     %185501 = OpPhi %uint %185495 %22013 %22023 %22021
-     %185498 = OpPhi %v2float %22017 %22013 %122222 %22021
-     %185497 = OpPhi %v2float %22017 %22013 %122223 %22021
-      %13421 = OpExtInst %v2float %1 Pow %185493 %185498
-      %13427 = OpExtInst %v2float %1 Pow %185493 %185497
-      %13433 = OpExtInst %v2float %1 Pow %185492 %185498
-      %13439 = OpExtInst %v2float %1 Pow %185492 %185497
-      %13449 = OpExtInst %v2float %1 FMin %13433 %13439
-      %13450 = OpExtInst %v2float %1 FMin %13427 %13449
-      %13451 = OpExtInst %v2float %1 FMin %13421 %13450
-      %13461 = OpExtInst %v2float %1 FMax %13433 %13439
-      %13462 = OpExtInst %v2float %1 FMax %13427 %13461
-      %13463 = OpExtInst %v2float %1 FMax %13421 %13462
-     %123152 = OpCompositeConstruct %_arr_v2float_uint_2 %13451 %13463
-      %22031 = OpIAdd %uint %185501 %int_1
-      %22033 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185501
-               OpStore %22033 %123152
-               OpBranch %20471
-      %13341 = OpLabel
-      %13344 = OpLoad %uint %12053
-      %13345 = OpBitwiseAnd %uint %13344 %uint_32768
-      %13346 = OpUGreaterThan %bool %13345 %uint_0
-               OpSelectionMerge %21953 None
-               OpSwitch %uint_0 %21937
-      %21937 = OpLabel
-               OpSelectionMerge %21952 None
-               OpBranchConditional %13346 %21939 %21947
-      %21947 = OpLabel
-      %21949 = OpISub %uint %184292 %int_1
-      %21950 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21949
-      %21951 = OpLoad %_arr_float_uint_2 %21950
-     %122249 = OpCompositeExtract %float %21951 0
-     %122250 = OpCompositeExtract %float %21951 1
-               OpBranch %21953
-      %21939 = OpLabel
-      %21941 = OpIAdd %uint %184294 %int_1
-      %21942 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %21943 = OpLoad %float %21942
-               OpBranch %21953
-      %21952 = OpLabel
-               OpUnreachable
-      %21953 = OpLabel
-     %185506 = OpPhi %uint %21941 %21939 %184294 %21947
-     %185505 = OpPhi %uint %184292 %21939 %21949 %21947
-     %185503 = OpPhi %float %21943 %21939 %122249 %21947
-     %185502 = OpPhi %float %21943 %21939 %122250 %21947
-      %13350 = OpLoad %uint %12053
-      %13351 = OpBitwiseAnd %uint %13350 %uint_16384
-      %13352 = OpUGreaterThan %bool %13351 %uint_0
-               OpSelectionMerge %21976 None
-               OpSwitch %uint_0 %21960
-      %21960 = OpLabel
-               OpSelectionMerge %21975 None
-               OpBranchConditional %13352 %21962 %21970
-      %21970 = OpLabel
-      %21972 = OpISub %uint %185505 %int_1
-      %21973 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21972
-      %21974 = OpLoad %_arr_float_uint_2 %21973
-     %122240 = OpCompositeExtract %float %21974 0
-     %122241 = OpCompositeExtract %float %21974 1
-               OpBranch %21976
-      %21962 = OpLabel
-      %21964 = OpIAdd %uint %185506 %int_1
-      %21965 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %185506
-      %21966 = OpLoad %float %21965
-               OpBranch %21976
-      %21975 = OpLabel
-               OpUnreachable
-      %21976 = OpLabel
-     %186566 = OpPhi %uint %21964 %21962 %185506 %21970
-     %185511 = OpPhi %uint %185505 %21962 %21972 %21970
-     %185508 = OpPhi %float %21966 %21962 %122240 %21970
-     %185507 = OpPhi %float %21966 %21962 %122241 %21970
-      %13358 = OpExtInst %float %1 Pow %185503 %185508
-      %13364 = OpExtInst %float %1 Pow %185503 %185507
-      %13370 = OpExtInst %float %1 Pow %185502 %185508
-      %13376 = OpExtInst %float %1 Pow %185502 %185507
-      %13386 = OpExtInst %float %1 FMin %13370 %13376
-      %13387 = OpExtInst %float %1 FMin %13364 %13386
-      %13388 = OpExtInst %float %1 FMin %13358 %13387
-      %13398 = OpExtInst %float %1 FMax %13370 %13376
-      %13399 = OpExtInst %float %1 FMax %13364 %13398
-      %13400 = OpExtInst %float %1 FMax %13358 %13399
-     %123137 = OpCompositeConstruct %_arr_float_uint_2 %13388 %13400
-      %21980 = OpIAdd %uint %185511 %int_1
-      %21982 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185511
-               OpStore %21982 %123137
-               OpBranch %20471
-      %13274 = OpLabel
-      %13277 = OpLoad %uint %12053
-      %13278 = OpBitwiseAnd %uint %13277 %uint_32768
-      %13279 = OpUGreaterThan %bool %13278 %uint_0
-               OpSelectionMerge %21902 None
-               OpSwitch %uint_0 %21886
-      %21886 = OpLabel
-               OpSelectionMerge %21901 None
-               OpBranchConditional %13279 %21888 %21896
-      %21896 = OpLabel
-      %21898 = OpISub %uint %184311 %int_1
-      %21899 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %21898
-      %21900 = OpLoad %_arr_v4float_uint_2 %21899
-     %122267 = OpCompositeExtract %v4float %21900 0
-     %122268 = OpCompositeExtract %v4float %21900 1
-               OpBranch %21902
-      %21888 = OpLabel
-      %21890 = OpIAdd %uint %184337 %int_1
-      %21891 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %21892 = OpLoad %v4float %21891
-               OpBranch %21902
-      %21901 = OpLabel
-               OpUnreachable
-      %21902 = OpLabel
-     %261104 = OpPhi %uint %21890 %21888 %184337 %21896
-     %185522 = OpPhi %uint %184311 %21888 %21898 %21896
-     %185513 = OpPhi %v4float %21892 %21888 %122267 %21896
-     %185512 = OpPhi %v4float %21892 %21888 %122268 %21896
-      %13283 = OpLoad %uint %12053
-      %13284 = OpBitwiseAnd %uint %13283 %uint_16384
-      %13285 = OpUGreaterThan %bool %13284 %uint_0
-               OpSelectionMerge %21925 None
-               OpSwitch %uint_0 %21909
-      %21909 = OpLabel
-               OpSelectionMerge %21924 None
-               OpBranchConditional %13285 %21911 %21919
-      %21919 = OpLabel
-      %21921 = OpISub %uint %184292 %int_1
-      %21922 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21921
-      %21923 = OpLoad %_arr_float_uint_2 %21922
-     %122258 = OpCompositeExtract %float %21923 0
-     %122259 = OpCompositeExtract %float %21923 1
-               OpBranch %21925
-      %21911 = OpLabel
-      %21913 = OpIAdd %uint %184294 %int_1
-      %21914 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %21915 = OpLoad %float %21914
-               OpBranch %21925
-      %21924 = OpLabel
-               OpUnreachable
-      %21925 = OpLabel
-     %186565 = OpPhi %uint %21913 %21911 %184294 %21919
-     %186365 = OpPhi %uint %184292 %21911 %21921 %21919
-     %185518 = OpPhi %float %21915 %21911 %122258 %21919
-     %185517 = OpPhi %float %21915 %21911 %122259 %21919
-      %13291 = OpCompositeConstruct %v4float %185518 %185518 %185518 %185518
-      %13292 = OpFDiv %v4float %185513 %13291
-      %13298 = OpCompositeConstruct %v4float %185517 %185517 %185517 %185517
-      %13299 = OpFDiv %v4float %185513 %13298
-      %13306 = OpFDiv %v4float %185512 %13291
-      %13313 = OpFDiv %v4float %185512 %13298
-      %13323 = OpExtInst %v4float %1 FMin %13306 %13313
-      %13324 = OpExtInst %v4float %1 FMin %13299 %13323
-      %13325 = OpExtInst %v4float %1 FMin %13292 %13324
-      %13335 = OpExtInst %v4float %1 FMax %13306 %13313
-      %13336 = OpExtInst %v4float %1 FMax %13299 %13335
-      %13337 = OpExtInst %v4float %1 FMax %13292 %13336
-     %123122 = OpCompositeConstruct %_arr_v4float_uint_2 %13325 %13337
-      %21929 = OpIAdd %uint %185522 %int_1
-      %21931 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %185522
-               OpStore %21931 %123122
-               OpBranch %20471
-      %13211 = OpLabel
-      %13214 = OpLoad %uint %12053
-      %13215 = OpBitwiseAnd %uint %13214 %uint_32768
-      %13216 = OpUGreaterThan %bool %13215 %uint_0
-               OpSelectionMerge %21851 None
-               OpSwitch %uint_0 %21835
-      %21835 = OpLabel
-               OpSelectionMerge %21850 None
-               OpBranchConditional %13216 %21837 %21845
-      %21845 = OpLabel
-      %21847 = OpISub %uint %184311 %int_1
-      %21848 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %21847
-      %21849 = OpLoad %_arr_v4float_uint_2 %21848
-     %122285 = OpCompositeExtract %v4float %21849 0
-     %122286 = OpCompositeExtract %v4float %21849 1
-               OpBranch %21851
-      %21837 = OpLabel
-      %21839 = OpIAdd %uint %184337 %int_1
-      %21840 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %21841 = OpLoad %v4float %21840
-               OpBranch %21851
-      %21850 = OpLabel
-               OpUnreachable
-      %21851 = OpLabel
-     %185527 = OpPhi %uint %21839 %21837 %184337 %21845
-     %185526 = OpPhi %uint %184311 %21837 %21847 %21845
-     %185524 = OpPhi %v4float %21841 %21837 %122285 %21845
-     %185523 = OpPhi %v4float %21841 %21837 %122286 %21845
-      %13220 = OpLoad %uint %12053
-      %13221 = OpBitwiseAnd %uint %13220 %uint_16384
-      %13222 = OpUGreaterThan %bool %13221 %uint_0
-               OpSelectionMerge %21874 None
-               OpSwitch %uint_0 %21858
-      %21858 = OpLabel
-               OpSelectionMerge %21873 None
-               OpBranchConditional %13222 %21860 %21868
-      %21868 = OpLabel
-      %21870 = OpISub %uint %185526 %int_1
-      %21871 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %21870
-      %21872 = OpLoad %_arr_v4float_uint_2 %21871
-     %122276 = OpCompositeExtract %v4float %21872 0
-     %122277 = OpCompositeExtract %v4float %21872 1
-               OpBranch %21874
-      %21860 = OpLabel
-      %21862 = OpIAdd %uint %185527 %int_1
-      %21863 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %185527
-      %21864 = OpLoad %v4float %21863
-               OpBranch %21874
-      %21873 = OpLabel
-               OpUnreachable
-      %21874 = OpLabel
-     %261102 = OpPhi %uint %21862 %21860 %185527 %21868
-     %185532 = OpPhi %uint %185526 %21860 %21870 %21868
-     %185529 = OpPhi %v4float %21864 %21860 %122276 %21868
-     %185528 = OpPhi %v4float %21864 %21860 %122277 %21868
-      %13228 = OpFDiv %v4float %185524 %185529
-      %13234 = OpFDiv %v4float %185524 %185528
-      %13240 = OpFDiv %v4float %185523 %185529
-      %13246 = OpFDiv %v4float %185523 %185528
-      %13256 = OpExtInst %v4float %1 FMin %13240 %13246
-      %13257 = OpExtInst %v4float %1 FMin %13234 %13256
-      %13258 = OpExtInst %v4float %1 FMin %13228 %13257
-      %13268 = OpExtInst %v4float %1 FMax %13240 %13246
-      %13269 = OpExtInst %v4float %1 FMax %13234 %13268
-      %13270 = OpExtInst %v4float %1 FMax %13228 %13269
-     %123107 = OpCompositeConstruct %_arr_v4float_uint_2 %13258 %13270
-      %21878 = OpIAdd %uint %185532 %int_1
-      %21880 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %185532
-               OpStore %21880 %123107
-               OpBranch %20471
-      %13144 = OpLabel
-      %13147 = OpLoad %uint %12053
-      %13148 = OpBitwiseAnd %uint %13147 %uint_32768
-      %13149 = OpUGreaterThan %bool %13148 %uint_0
-               OpSelectionMerge %21800 None
-               OpSwitch %uint_0 %21784
-      %21784 = OpLabel
-               OpSelectionMerge %21799 None
-               OpBranchConditional %13149 %21786 %21794
-      %21794 = OpLabel
-      %21796 = OpISub %uint %184302 %int_1
-      %21797 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %21796
-      %21798 = OpLoad %_arr_v3float_uint_2 %21797
-     %122303 = OpCompositeExtract %v3float %21798 0
-     %122304 = OpCompositeExtract %v3float %21798 1
-               OpBranch %21800
-      %21786 = OpLabel
-      %21788 = OpIAdd %uint %184305 %int_1
-      %21789 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %21790 = OpLoad %v3float %21789
-               OpBranch %21800
-      %21799 = OpLabel
-               OpUnreachable
-      %21800 = OpLabel
-     %260327 = OpPhi %uint %21788 %21786 %184305 %21794
-     %185543 = OpPhi %uint %184302 %21786 %21796 %21794
-     %185534 = OpPhi %v3float %21790 %21786 %122303 %21794
-     %185533 = OpPhi %v3float %21790 %21786 %122304 %21794
-      %13153 = OpLoad %uint %12053
-      %13154 = OpBitwiseAnd %uint %13153 %uint_16384
-      %13155 = OpUGreaterThan %bool %13154 %uint_0
-               OpSelectionMerge %21823 None
-               OpSwitch %uint_0 %21807
-      %21807 = OpLabel
-               OpSelectionMerge %21822 None
-               OpBranchConditional %13155 %21809 %21817
-      %21817 = OpLabel
-      %21819 = OpISub %uint %184292 %int_1
-      %21820 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21819
-      %21821 = OpLoad %_arr_float_uint_2 %21820
-     %122294 = OpCompositeExtract %float %21821 0
-     %122295 = OpCompositeExtract %float %21821 1
-               OpBranch %21823
-      %21809 = OpLabel
-      %21811 = OpIAdd %uint %184294 %int_1
-      %21812 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %21813 = OpLoad %float %21812
-               OpBranch %21823
-      %21822 = OpLabel
-               OpUnreachable
-      %21823 = OpLabel
-     %186562 = OpPhi %uint %21811 %21809 %184294 %21817
-     %186362 = OpPhi %uint %184292 %21809 %21819 %21817
-     %185539 = OpPhi %float %21813 %21809 %122294 %21817
-     %185538 = OpPhi %float %21813 %21809 %122295 %21817
-      %13161 = OpCompositeConstruct %v3float %185539 %185539 %185539
-      %13162 = OpFDiv %v3float %185534 %13161
-      %13168 = OpCompositeConstruct %v3float %185538 %185538 %185538
-      %13169 = OpFDiv %v3float %185534 %13168
-      %13176 = OpFDiv %v3float %185533 %13161
-      %13183 = OpFDiv %v3float %185533 %13168
-      %13193 = OpExtInst %v3float %1 FMin %13176 %13183
-      %13194 = OpExtInst %v3float %1 FMin %13169 %13193
-      %13195 = OpExtInst %v3float %1 FMin %13162 %13194
-      %13205 = OpExtInst %v3float %1 FMax %13176 %13183
-      %13206 = OpExtInst %v3float %1 FMax %13169 %13205
-      %13207 = OpExtInst %v3float %1 FMax %13162 %13206
-     %123092 = OpCompositeConstruct %_arr_v3float_uint_2 %13195 %13207
-      %21827 = OpIAdd %uint %185543 %int_1
-      %21829 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185543
-               OpStore %21829 %123092
-               OpBranch %20471
-      %13081 = OpLabel
-      %13084 = OpLoad %uint %12053
-      %13085 = OpBitwiseAnd %uint %13084 %uint_32768
-      %13086 = OpUGreaterThan %bool %13085 %uint_0
-               OpSelectionMerge %21749 None
-               OpSwitch %uint_0 %21733
-      %21733 = OpLabel
-               OpSelectionMerge %21748 None
-               OpBranchConditional %13086 %21735 %21743
-      %21743 = OpLabel
-      %21745 = OpISub %uint %184302 %int_1
-      %21746 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %21745
-      %21747 = OpLoad %_arr_v3float_uint_2 %21746
-     %122321 = OpCompositeExtract %v3float %21747 0
-     %122322 = OpCompositeExtract %v3float %21747 1
-               OpBranch %21749
-      %21735 = OpLabel
-      %21737 = OpIAdd %uint %184305 %int_1
-      %21738 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %21739 = OpLoad %v3float %21738
-               OpBranch %21749
-      %21748 = OpLabel
-               OpUnreachable
-      %21749 = OpLabel
-     %185548 = OpPhi %uint %21737 %21735 %184305 %21743
-     %185547 = OpPhi %uint %184302 %21735 %21745 %21743
-     %185545 = OpPhi %v3float %21739 %21735 %122321 %21743
-     %185544 = OpPhi %v3float %21739 %21735 %122322 %21743
-      %13090 = OpLoad %uint %12053
-      %13091 = OpBitwiseAnd %uint %13090 %uint_16384
-      %13092 = OpUGreaterThan %bool %13091 %uint_0
-               OpSelectionMerge %21772 None
-               OpSwitch %uint_0 %21756
-      %21756 = OpLabel
-               OpSelectionMerge %21771 None
-               OpBranchConditional %13092 %21758 %21766
-      %21766 = OpLabel
-      %21768 = OpISub %uint %185547 %int_1
-      %21769 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %21768
-      %21770 = OpLoad %_arr_v3float_uint_2 %21769
-     %122312 = OpCompositeExtract %v3float %21770 0
-     %122313 = OpCompositeExtract %v3float %21770 1
-               OpBranch %21772
-      %21758 = OpLabel
-      %21760 = OpIAdd %uint %185548 %int_1
-      %21761 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %185548
-      %21762 = OpLoad %v3float %21761
-               OpBranch %21772
-      %21771 = OpLabel
-               OpUnreachable
-      %21772 = OpLabel
-     %260325 = OpPhi %uint %21760 %21758 %185548 %21766
-     %185553 = OpPhi %uint %185547 %21758 %21768 %21766
-     %185550 = OpPhi %v3float %21762 %21758 %122312 %21766
-     %185549 = OpPhi %v3float %21762 %21758 %122313 %21766
-      %13098 = OpFDiv %v3float %185545 %185550
-      %13104 = OpFDiv %v3float %185545 %185549
-      %13110 = OpFDiv %v3float %185544 %185550
-      %13116 = OpFDiv %v3float %185544 %185549
-      %13126 = OpExtInst %v3float %1 FMin %13110 %13116
-      %13127 = OpExtInst %v3float %1 FMin %13104 %13126
-      %13128 = OpExtInst %v3float %1 FMin %13098 %13127
-      %13138 = OpExtInst %v3float %1 FMax %13110 %13116
-      %13139 = OpExtInst %v3float %1 FMax %13104 %13138
-      %13140 = OpExtInst %v3float %1 FMax %13098 %13139
-     %123077 = OpCompositeConstruct %_arr_v3float_uint_2 %13128 %13140
-      %21776 = OpIAdd %uint %185553 %int_1
-      %21778 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185553
-               OpStore %21778 %123077
-               OpBranch %20471
-      %13014 = OpLabel
-      %13017 = OpLoad %uint %12053
-      %13018 = OpBitwiseAnd %uint %13017 %uint_32768
-      %13019 = OpUGreaterThan %bool %13018 %uint_0
-               OpSelectionMerge %21698 None
-               OpSwitch %uint_0 %21682
-      %21682 = OpLabel
-               OpSelectionMerge %21697 None
-               OpBranchConditional %13019 %21684 %21692
-      %21692 = OpLabel
-      %21694 = OpISub %uint %184313 %int_1
-      %21695 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %21694
-      %21696 = OpLoad %_arr_v2float_uint_2 %21695
-     %122339 = OpCompositeExtract %v2float %21696 0
-     %122340 = OpCompositeExtract %v2float %21696 1
-               OpBranch %21698
-      %21684 = OpLabel
-      %21686 = OpIAdd %uint %184363 %int_1
-      %21687 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %21688 = OpLoad %v2float %21687
-               OpBranch %21698
-      %21697 = OpLabel
-               OpUnreachable
-      %21698 = OpLabel
-     %262038 = OpPhi %uint %21686 %21684 %184363 %21692
-     %185564 = OpPhi %uint %184313 %21684 %21694 %21692
-     %185555 = OpPhi %v2float %21688 %21684 %122339 %21692
-     %185554 = OpPhi %v2float %21688 %21684 %122340 %21692
-      %13023 = OpLoad %uint %12053
-      %13024 = OpBitwiseAnd %uint %13023 %uint_16384
-      %13025 = OpUGreaterThan %bool %13024 %uint_0
-               OpSelectionMerge %21721 None
-               OpSwitch %uint_0 %21705
-      %21705 = OpLabel
-               OpSelectionMerge %21720 None
-               OpBranchConditional %13025 %21707 %21715
-      %21715 = OpLabel
-      %21717 = OpISub %uint %184292 %int_1
-      %21718 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21717
-      %21719 = OpLoad %_arr_float_uint_2 %21718
-     %122330 = OpCompositeExtract %float %21719 0
-     %122331 = OpCompositeExtract %float %21719 1
-               OpBranch %21721
-      %21707 = OpLabel
-      %21709 = OpIAdd %uint %184294 %int_1
-      %21710 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %21711 = OpLoad %float %21710
-               OpBranch %21721
-      %21720 = OpLabel
-               OpUnreachable
-      %21721 = OpLabel
-     %186559 = OpPhi %uint %21709 %21707 %184294 %21715
-     %186359 = OpPhi %uint %184292 %21707 %21717 %21715
-     %185560 = OpPhi %float %21711 %21707 %122330 %21715
-     %185559 = OpPhi %float %21711 %21707 %122331 %21715
-      %13031 = OpCompositeConstruct %v2float %185560 %185560
-      %13032 = OpFDiv %v2float %185555 %13031
-      %13038 = OpCompositeConstruct %v2float %185559 %185559
-      %13039 = OpFDiv %v2float %185555 %13038
-      %13046 = OpFDiv %v2float %185554 %13031
-      %13053 = OpFDiv %v2float %185554 %13038
-      %13063 = OpExtInst %v2float %1 FMin %13046 %13053
-      %13064 = OpExtInst %v2float %1 FMin %13039 %13063
-      %13065 = OpExtInst %v2float %1 FMin %13032 %13064
-      %13075 = OpExtInst %v2float %1 FMax %13046 %13053
-      %13076 = OpExtInst %v2float %1 FMax %13039 %13075
-      %13077 = OpExtInst %v2float %1 FMax %13032 %13076
-     %123062 = OpCompositeConstruct %_arr_v2float_uint_2 %13065 %13077
-      %21725 = OpIAdd %uint %185564 %int_1
-      %21727 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185564
-               OpStore %21727 %123062
-               OpBranch %20471
-      %12951 = OpLabel
-      %12954 = OpLoad %uint %12053
-      %12955 = OpBitwiseAnd %uint %12954 %uint_32768
-      %12956 = OpUGreaterThan %bool %12955 %uint_0
-               OpSelectionMerge %21647 None
-               OpSwitch %uint_0 %21631
-      %21631 = OpLabel
-               OpSelectionMerge %21646 None
-               OpBranchConditional %12956 %21633 %21641
-      %21641 = OpLabel
-      %21643 = OpISub %uint %184313 %int_1
-      %21644 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %21643
-      %21645 = OpLoad %_arr_v2float_uint_2 %21644
-     %122357 = OpCompositeExtract %v2float %21645 0
-     %122358 = OpCompositeExtract %v2float %21645 1
-               OpBranch %21647
-      %21633 = OpLabel
-      %21635 = OpIAdd %uint %184363 %int_1
-      %21636 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %21637 = OpLoad %v2float %21636
-               OpBranch %21647
-      %21646 = OpLabel
-               OpUnreachable
-      %21647 = OpLabel
-     %185569 = OpPhi %uint %21635 %21633 %184363 %21641
-     %185568 = OpPhi %uint %184313 %21633 %21643 %21641
-     %185566 = OpPhi %v2float %21637 %21633 %122357 %21641
-     %185565 = OpPhi %v2float %21637 %21633 %122358 %21641
-      %12960 = OpLoad %uint %12053
-      %12961 = OpBitwiseAnd %uint %12960 %uint_16384
-      %12962 = OpUGreaterThan %bool %12961 %uint_0
-               OpSelectionMerge %21670 None
-               OpSwitch %uint_0 %21654
-      %21654 = OpLabel
-               OpSelectionMerge %21669 None
-               OpBranchConditional %12962 %21656 %21664
-      %21664 = OpLabel
-      %21666 = OpISub %uint %185568 %int_1
-      %21667 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %21666
-      %21668 = OpLoad %_arr_v2float_uint_2 %21667
-     %122348 = OpCompositeExtract %v2float %21668 0
-     %122349 = OpCompositeExtract %v2float %21668 1
-               OpBranch %21670
-      %21656 = OpLabel
-      %21658 = OpIAdd %uint %185569 %int_1
-      %21659 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %185569
-      %21660 = OpLoad %v2float %21659
-               OpBranch %21670
-      %21669 = OpLabel
-               OpUnreachable
-      %21670 = OpLabel
-     %262036 = OpPhi %uint %21658 %21656 %185569 %21664
-     %185574 = OpPhi %uint %185568 %21656 %21666 %21664
-     %185571 = OpPhi %v2float %21660 %21656 %122348 %21664
-     %185570 = OpPhi %v2float %21660 %21656 %122349 %21664
-      %12968 = OpFDiv %v2float %185566 %185571
-      %12974 = OpFDiv %v2float %185566 %185570
-      %12980 = OpFDiv %v2float %185565 %185571
-      %12986 = OpFDiv %v2float %185565 %185570
-      %12996 = OpExtInst %v2float %1 FMin %12980 %12986
-      %12997 = OpExtInst %v2float %1 FMin %12974 %12996
-      %12998 = OpExtInst %v2float %1 FMin %12968 %12997
-      %13008 = OpExtInst %v2float %1 FMax %12980 %12986
-      %13009 = OpExtInst %v2float %1 FMax %12974 %13008
-      %13010 = OpExtInst %v2float %1 FMax %12968 %13009
-     %123047 = OpCompositeConstruct %_arr_v2float_uint_2 %12998 %13010
-      %21674 = OpIAdd %uint %185574 %int_1
-      %21676 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185574
-               OpStore %21676 %123047
-               OpBranch %20471
-      %12888 = OpLabel
-      %12891 = OpLoad %uint %12053
-      %12892 = OpBitwiseAnd %uint %12891 %uint_32768
-      %12893 = OpUGreaterThan %bool %12892 %uint_0
-               OpSelectionMerge %21596 None
-               OpSwitch %uint_0 %21580
-      %21580 = OpLabel
-               OpSelectionMerge %21595 None
-               OpBranchConditional %12893 %21582 %21590
-      %21590 = OpLabel
-      %21592 = OpISub %uint %184292 %int_1
-      %21593 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21592
-      %21594 = OpLoad %_arr_float_uint_2 %21593
-     %122375 = OpCompositeExtract %float %21594 0
-     %122376 = OpCompositeExtract %float %21594 1
-               OpBranch %21596
-      %21582 = OpLabel
-      %21584 = OpIAdd %uint %184294 %int_1
-      %21585 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %21586 = OpLoad %float %21585
-               OpBranch %21596
-      %21595 = OpLabel
-               OpUnreachable
-      %21596 = OpLabel
-     %185579 = OpPhi %uint %21584 %21582 %184294 %21590
-     %185578 = OpPhi %uint %184292 %21582 %21592 %21590
-     %185576 = OpPhi %float %21586 %21582 %122375 %21590
-     %185575 = OpPhi %float %21586 %21582 %122376 %21590
-      %12897 = OpLoad %uint %12053
-      %12898 = OpBitwiseAnd %uint %12897 %uint_16384
-      %12899 = OpUGreaterThan %bool %12898 %uint_0
-               OpSelectionMerge %21619 None
-               OpSwitch %uint_0 %21603
-      %21603 = OpLabel
-               OpSelectionMerge %21618 None
-               OpBranchConditional %12899 %21605 %21613
-      %21613 = OpLabel
-      %21615 = OpISub %uint %185578 %int_1
-      %21616 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21615
-      %21617 = OpLoad %_arr_float_uint_2 %21616
-     %122366 = OpCompositeExtract %float %21617 0
-     %122367 = OpCompositeExtract %float %21617 1
-               OpBranch %21619
-      %21605 = OpLabel
-      %21607 = OpIAdd %uint %185579 %int_1
-      %21608 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %185579
-      %21609 = OpLoad %float %21608
-               OpBranch %21619
-      %21618 = OpLabel
-               OpUnreachable
-      %21619 = OpLabel
-     %186556 = OpPhi %uint %21607 %21605 %185579 %21613
-     %185584 = OpPhi %uint %185578 %21605 %21615 %21613
-     %185581 = OpPhi %float %21609 %21605 %122366 %21613
-     %185580 = OpPhi %float %21609 %21605 %122367 %21613
-      %12905 = OpFDiv %float %185576 %185581
-      %12911 = OpFDiv %float %185576 %185580
-      %12917 = OpFDiv %float %185575 %185581
-      %12923 = OpFDiv %float %185575 %185580
-      %12933 = OpExtInst %float %1 FMin %12917 %12923
-      %12934 = OpExtInst %float %1 FMin %12911 %12933
-      %12935 = OpExtInst %float %1 FMin %12905 %12934
-      %12945 = OpExtInst %float %1 FMax %12917 %12923
-      %12946 = OpExtInst %float %1 FMax %12911 %12945
-      %12947 = OpExtInst %float %1 FMax %12905 %12946
-     %123032 = OpCompositeConstruct %_arr_float_uint_2 %12935 %12947
-      %21623 = OpIAdd %uint %185584 %int_1
-      %21625 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185584
-               OpStore %21625 %123032
-               OpBranch %20471
-      %12825 = OpLabel
-      %12828 = OpLoad %uint %12053
-      %12829 = OpBitwiseAnd %uint %12828 %uint_32768
-      %12830 = OpUGreaterThan %bool %12829 %uint_0
-               OpSelectionMerge %21545 None
-               OpSwitch %uint_0 %21529
-      %21529 = OpLabel
-               OpSelectionMerge %21544 None
-               OpBranchConditional %12830 %21531 %21539
-      %21539 = OpLabel
-      %21541 = OpISub %uint %184311 %int_1
-      %21542 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %21541
-      %21543 = OpLoad %_arr_v4float_uint_2 %21542
-     %122393 = OpCompositeExtract %v4float %21543 0
-     %122394 = OpCompositeExtract %v4float %21543 1
-               OpBranch %21545
-      %21531 = OpLabel
-      %21533 = OpIAdd %uint %184337 %int_1
-      %21534 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %21535 = OpLoad %v4float %21534
-               OpBranch %21545
-      %21544 = OpLabel
-               OpUnreachable
-      %21545 = OpLabel
-     %261091 = OpPhi %uint %21533 %21531 %184337 %21539
-     %185595 = OpPhi %uint %184311 %21531 %21541 %21539
-     %185586 = OpPhi %v4float %21535 %21531 %122393 %21539
-     %185585 = OpPhi %v4float %21535 %21531 %122394 %21539
-      %12834 = OpLoad %uint %12053
-      %12835 = OpBitwiseAnd %uint %12834 %uint_16384
-      %12836 = OpUGreaterThan %bool %12835 %uint_0
-               OpSelectionMerge %21568 None
-               OpSwitch %uint_0 %21552
-      %21552 = OpLabel
-               OpSelectionMerge %21567 None
-               OpBranchConditional %12836 %21554 %21562
-      %21562 = OpLabel
-      %21564 = OpISub %uint %184292 %int_1
-      %21565 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21564
-      %21566 = OpLoad %_arr_float_uint_2 %21565
-     %122384 = OpCompositeExtract %float %21566 0
-     %122385 = OpCompositeExtract %float %21566 1
-               OpBranch %21568
-      %21554 = OpLabel
-      %21556 = OpIAdd %uint %184294 %int_1
-      %21557 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %21558 = OpLoad %float %21557
-               OpBranch %21568
-      %21567 = OpLabel
-               OpUnreachable
-      %21568 = OpLabel
-     %186555 = OpPhi %uint %21556 %21554 %184294 %21562
-     %186356 = OpPhi %uint %184292 %21554 %21564 %21562
-     %185591 = OpPhi %float %21558 %21554 %122384 %21562
-     %185590 = OpPhi %float %21558 %21554 %122385 %21562
-      %12842 = OpVectorTimesScalar %v4float %185586 %185591
-      %12848 = OpVectorTimesScalar %v4float %185586 %185590
-      %12854 = OpVectorTimesScalar %v4float %185585 %185591
-      %12860 = OpVectorTimesScalar %v4float %185585 %185590
-      %12870 = OpExtInst %v4float %1 FMin %12854 %12860
-      %12871 = OpExtInst %v4float %1 FMin %12848 %12870
-      %12872 = OpExtInst %v4float %1 FMin %12842 %12871
-      %12882 = OpExtInst %v4float %1 FMax %12854 %12860
-      %12883 = OpExtInst %v4float %1 FMax %12848 %12882
-      %12884 = OpExtInst %v4float %1 FMax %12842 %12883
-     %123017 = OpCompositeConstruct %_arr_v4float_uint_2 %12872 %12884
-      %21572 = OpIAdd %uint %185595 %int_1
-      %21574 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %185595
-               OpStore %21574 %123017
-               OpBranch %20471
-      %12762 = OpLabel
-      %12765 = OpLoad %uint %12053
-      %12766 = OpBitwiseAnd %uint %12765 %uint_32768
-      %12767 = OpUGreaterThan %bool %12766 %uint_0
-               OpSelectionMerge %21494 None
-               OpSwitch %uint_0 %21478
-      %21478 = OpLabel
-               OpSelectionMerge %21493 None
-               OpBranchConditional %12767 %21480 %21488
-      %21488 = OpLabel
-      %21490 = OpISub %uint %184311 %int_1
-      %21491 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %21490
-      %21492 = OpLoad %_arr_v4float_uint_2 %21491
-     %122411 = OpCompositeExtract %v4float %21492 0
-     %122412 = OpCompositeExtract %v4float %21492 1
-               OpBranch %21494
-      %21480 = OpLabel
-      %21482 = OpIAdd %uint %184337 %int_1
-      %21483 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %21484 = OpLoad %v4float %21483
-               OpBranch %21494
-      %21493 = OpLabel
-               OpUnreachable
-      %21494 = OpLabel
-     %185600 = OpPhi %uint %21482 %21480 %184337 %21488
-     %185599 = OpPhi %uint %184311 %21480 %21490 %21488
-     %185597 = OpPhi %v4float %21484 %21480 %122411 %21488
-     %185596 = OpPhi %v4float %21484 %21480 %122412 %21488
-      %12771 = OpLoad %uint %12053
-      %12772 = OpBitwiseAnd %uint %12771 %uint_16384
-      %12773 = OpUGreaterThan %bool %12772 %uint_0
-               OpSelectionMerge %21517 None
-               OpSwitch %uint_0 %21501
-      %21501 = OpLabel
-               OpSelectionMerge %21516 None
-               OpBranchConditional %12773 %21503 %21511
-      %21511 = OpLabel
-      %21513 = OpISub %uint %185599 %int_1
-      %21514 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %21513
-      %21515 = OpLoad %_arr_v4float_uint_2 %21514
-     %122402 = OpCompositeExtract %v4float %21515 0
-     %122403 = OpCompositeExtract %v4float %21515 1
-               OpBranch %21517
-      %21503 = OpLabel
-      %21505 = OpIAdd %uint %185600 %int_1
-      %21506 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %185600
-      %21507 = OpLoad %v4float %21506
-               OpBranch %21517
-      %21516 = OpLabel
-               OpUnreachable
-      %21517 = OpLabel
-     %261089 = OpPhi %uint %21505 %21503 %185600 %21511
-     %185605 = OpPhi %uint %185599 %21503 %21513 %21511
-     %185602 = OpPhi %v4float %21507 %21503 %122402 %21511
-     %185601 = OpPhi %v4float %21507 %21503 %122403 %21511
-      %12779 = OpFMul %v4float %185597 %185602
-      %12785 = OpFMul %v4float %185597 %185601
-      %12791 = OpFMul %v4float %185596 %185602
-      %12797 = OpFMul %v4float %185596 %185601
-      %12807 = OpExtInst %v4float %1 FMin %12791 %12797
-      %12808 = OpExtInst %v4float %1 FMin %12785 %12807
-      %12809 = OpExtInst %v4float %1 FMin %12779 %12808
-      %12819 = OpExtInst %v4float %1 FMax %12791 %12797
-      %12820 = OpExtInst %v4float %1 FMax %12785 %12819
-      %12821 = OpExtInst %v4float %1 FMax %12779 %12820
-     %123002 = OpCompositeConstruct %_arr_v4float_uint_2 %12809 %12821
-      %21521 = OpIAdd %uint %185605 %int_1
-      %21523 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %185605
-               OpStore %21523 %123002
-               OpBranch %20471
-      %12699 = OpLabel
-      %12702 = OpLoad %uint %12053
-      %12703 = OpBitwiseAnd %uint %12702 %uint_32768
-      %12704 = OpUGreaterThan %bool %12703 %uint_0
-               OpSelectionMerge %21443 None
-               OpSwitch %uint_0 %21427
-      %21427 = OpLabel
-               OpSelectionMerge %21442 None
-               OpBranchConditional %12704 %21429 %21437
-      %21437 = OpLabel
-      %21439 = OpISub %uint %184302 %int_1
-      %21440 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %21439
-      %21441 = OpLoad %_arr_v3float_uint_2 %21440
-     %122429 = OpCompositeExtract %v3float %21441 0
-     %122430 = OpCompositeExtract %v3float %21441 1
-               OpBranch %21443
-      %21429 = OpLabel
-      %21431 = OpIAdd %uint %184305 %int_1
-      %21432 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %21433 = OpLoad %v3float %21432
-               OpBranch %21443
-      %21442 = OpLabel
-               OpUnreachable
-      %21443 = OpLabel
-     %260314 = OpPhi %uint %21431 %21429 %184305 %21437
-     %185616 = OpPhi %uint %184302 %21429 %21439 %21437
-     %185607 = OpPhi %v3float %21433 %21429 %122429 %21437
-     %185606 = OpPhi %v3float %21433 %21429 %122430 %21437
-      %12708 = OpLoad %uint %12053
-      %12709 = OpBitwiseAnd %uint %12708 %uint_16384
-      %12710 = OpUGreaterThan %bool %12709 %uint_0
-               OpSelectionMerge %21466 None
-               OpSwitch %uint_0 %21450
-      %21450 = OpLabel
-               OpSelectionMerge %21465 None
-               OpBranchConditional %12710 %21452 %21460
-      %21460 = OpLabel
-      %21462 = OpISub %uint %184292 %int_1
-      %21463 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21462
-      %21464 = OpLoad %_arr_float_uint_2 %21463
-     %122420 = OpCompositeExtract %float %21464 0
-     %122421 = OpCompositeExtract %float %21464 1
-               OpBranch %21466
-      %21452 = OpLabel
-      %21454 = OpIAdd %uint %184294 %int_1
-      %21455 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %21456 = OpLoad %float %21455
-               OpBranch %21466
-      %21465 = OpLabel
-               OpUnreachable
-      %21466 = OpLabel
-     %186552 = OpPhi %uint %21454 %21452 %184294 %21460
-     %186353 = OpPhi %uint %184292 %21452 %21462 %21460
-     %185612 = OpPhi %float %21456 %21452 %122420 %21460
-     %185611 = OpPhi %float %21456 %21452 %122421 %21460
-      %12716 = OpVectorTimesScalar %v3float %185607 %185612
-      %12722 = OpVectorTimesScalar %v3float %185607 %185611
-      %12728 = OpVectorTimesScalar %v3float %185606 %185612
-      %12734 = OpVectorTimesScalar %v3float %185606 %185611
-      %12744 = OpExtInst %v3float %1 FMin %12728 %12734
-      %12745 = OpExtInst %v3float %1 FMin %12722 %12744
-      %12746 = OpExtInst %v3float %1 FMin %12716 %12745
-      %12756 = OpExtInst %v3float %1 FMax %12728 %12734
-      %12757 = OpExtInst %v3float %1 FMax %12722 %12756
-      %12758 = OpExtInst %v3float %1 FMax %12716 %12757
-     %122987 = OpCompositeConstruct %_arr_v3float_uint_2 %12746 %12758
-      %21470 = OpIAdd %uint %185616 %int_1
-      %21472 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185616
-               OpStore %21472 %122987
-               OpBranch %20471
-      %12636 = OpLabel
-      %12639 = OpLoad %uint %12053
-      %12640 = OpBitwiseAnd %uint %12639 %uint_32768
-      %12641 = OpUGreaterThan %bool %12640 %uint_0
-               OpSelectionMerge %21392 None
-               OpSwitch %uint_0 %21376
-      %21376 = OpLabel
-               OpSelectionMerge %21391 None
-               OpBranchConditional %12641 %21378 %21386
-      %21386 = OpLabel
-      %21388 = OpISub %uint %184302 %int_1
-      %21389 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %21388
-      %21390 = OpLoad %_arr_v3float_uint_2 %21389
-     %122447 = OpCompositeExtract %v3float %21390 0
-     %122448 = OpCompositeExtract %v3float %21390 1
-               OpBranch %21392
-      %21378 = OpLabel
-      %21380 = OpIAdd %uint %184305 %int_1
-      %21381 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %21382 = OpLoad %v3float %21381
-               OpBranch %21392
-      %21391 = OpLabel
-               OpUnreachable
-      %21392 = OpLabel
-     %185621 = OpPhi %uint %21380 %21378 %184305 %21386
-     %185620 = OpPhi %uint %184302 %21378 %21388 %21386
-     %185618 = OpPhi %v3float %21382 %21378 %122447 %21386
-     %185617 = OpPhi %v3float %21382 %21378 %122448 %21386
-      %12645 = OpLoad %uint %12053
-      %12646 = OpBitwiseAnd %uint %12645 %uint_16384
-      %12647 = OpUGreaterThan %bool %12646 %uint_0
-               OpSelectionMerge %21415 None
-               OpSwitch %uint_0 %21399
-      %21399 = OpLabel
-               OpSelectionMerge %21414 None
-               OpBranchConditional %12647 %21401 %21409
-      %21409 = OpLabel
-      %21411 = OpISub %uint %185620 %int_1
-      %21412 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %21411
-      %21413 = OpLoad %_arr_v3float_uint_2 %21412
-     %122438 = OpCompositeExtract %v3float %21413 0
-     %122439 = OpCompositeExtract %v3float %21413 1
-               OpBranch %21415
-      %21401 = OpLabel
-      %21403 = OpIAdd %uint %185621 %int_1
-      %21404 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %185621
-      %21405 = OpLoad %v3float %21404
-               OpBranch %21415
-      %21414 = OpLabel
-               OpUnreachable
-      %21415 = OpLabel
-     %260312 = OpPhi %uint %21403 %21401 %185621 %21409
-     %185626 = OpPhi %uint %185620 %21401 %21411 %21409
-     %185623 = OpPhi %v3float %21405 %21401 %122438 %21409
-     %185622 = OpPhi %v3float %21405 %21401 %122439 %21409
-      %12653 = OpFMul %v3float %185618 %185623
-      %12659 = OpFMul %v3float %185618 %185622
-      %12665 = OpFMul %v3float %185617 %185623
-      %12671 = OpFMul %v3float %185617 %185622
-      %12681 = OpExtInst %v3float %1 FMin %12665 %12671
-      %12682 = OpExtInst %v3float %1 FMin %12659 %12681
-      %12683 = OpExtInst %v3float %1 FMin %12653 %12682
-      %12693 = OpExtInst %v3float %1 FMax %12665 %12671
-      %12694 = OpExtInst %v3float %1 FMax %12659 %12693
-      %12695 = OpExtInst %v3float %1 FMax %12653 %12694
-     %122972 = OpCompositeConstruct %_arr_v3float_uint_2 %12683 %12695
-      %21419 = OpIAdd %uint %185626 %int_1
-      %21421 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185626
-               OpStore %21421 %122972
-               OpBranch %20471
-      %12573 = OpLabel
-      %12576 = OpLoad %uint %12053
-      %12577 = OpBitwiseAnd %uint %12576 %uint_32768
-      %12578 = OpUGreaterThan %bool %12577 %uint_0
-               OpSelectionMerge %21341 None
-               OpSwitch %uint_0 %21325
-      %21325 = OpLabel
-               OpSelectionMerge %21340 None
-               OpBranchConditional %12578 %21327 %21335
-      %21335 = OpLabel
-      %21337 = OpISub %uint %184313 %int_1
-      %21338 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %21337
-      %21339 = OpLoad %_arr_v2float_uint_2 %21338
-     %122465 = OpCompositeExtract %v2float %21339 0
-     %122466 = OpCompositeExtract %v2float %21339 1
-               OpBranch %21341
-      %21327 = OpLabel
-      %21329 = OpIAdd %uint %184363 %int_1
-      %21330 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %21331 = OpLoad %v2float %21330
-               OpBranch %21341
-      %21340 = OpLabel
-               OpUnreachable
-      %21341 = OpLabel
-     %262025 = OpPhi %uint %21329 %21327 %184363 %21335
-     %185637 = OpPhi %uint %184313 %21327 %21337 %21335
-     %185628 = OpPhi %v2float %21331 %21327 %122465 %21335
-     %185627 = OpPhi %v2float %21331 %21327 %122466 %21335
-      %12582 = OpLoad %uint %12053
-      %12583 = OpBitwiseAnd %uint %12582 %uint_16384
-      %12584 = OpUGreaterThan %bool %12583 %uint_0
-               OpSelectionMerge %21364 None
-               OpSwitch %uint_0 %21348
-      %21348 = OpLabel
-               OpSelectionMerge %21363 None
-               OpBranchConditional %12584 %21350 %21358
-      %21358 = OpLabel
-      %21360 = OpISub %uint %184292 %int_1
-      %21361 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21360
-      %21362 = OpLoad %_arr_float_uint_2 %21361
-     %122456 = OpCompositeExtract %float %21362 0
-     %122457 = OpCompositeExtract %float %21362 1
-               OpBranch %21364
-      %21350 = OpLabel
-      %21352 = OpIAdd %uint %184294 %int_1
-      %21353 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %21354 = OpLoad %float %21353
-               OpBranch %21364
-      %21363 = OpLabel
-               OpUnreachable
-      %21364 = OpLabel
-     %186549 = OpPhi %uint %21352 %21350 %184294 %21358
-     %186350 = OpPhi %uint %184292 %21350 %21360 %21358
-     %185633 = OpPhi %float %21354 %21350 %122456 %21358
-     %185632 = OpPhi %float %21354 %21350 %122457 %21358
-      %12590 = OpVectorTimesScalar %v2float %185628 %185633
-      %12596 = OpVectorTimesScalar %v2float %185628 %185632
-      %12602 = OpVectorTimesScalar %v2float %185627 %185633
-      %12608 = OpVectorTimesScalar %v2float %185627 %185632
-      %12618 = OpExtInst %v2float %1 FMin %12602 %12608
-      %12619 = OpExtInst %v2float %1 FMin %12596 %12618
-      %12620 = OpExtInst %v2float %1 FMin %12590 %12619
-      %12630 = OpExtInst %v2float %1 FMax %12602 %12608
-      %12631 = OpExtInst %v2float %1 FMax %12596 %12630
-      %12632 = OpExtInst %v2float %1 FMax %12590 %12631
-     %122957 = OpCompositeConstruct %_arr_v2float_uint_2 %12620 %12632
-      %21368 = OpIAdd %uint %185637 %int_1
-      %21370 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185637
-               OpStore %21370 %122957
-               OpBranch %20471
-      %12510 = OpLabel
-      %12513 = OpLoad %uint %12053
-      %12514 = OpBitwiseAnd %uint %12513 %uint_32768
-      %12515 = OpUGreaterThan %bool %12514 %uint_0
-               OpSelectionMerge %21290 None
-               OpSwitch %uint_0 %21274
-      %21274 = OpLabel
-               OpSelectionMerge %21289 None
-               OpBranchConditional %12515 %21276 %21284
-      %21284 = OpLabel
-      %21286 = OpISub %uint %184313 %int_1
-      %21287 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %21286
-      %21288 = OpLoad %_arr_v2float_uint_2 %21287
-     %122483 = OpCompositeExtract %v2float %21288 0
-     %122484 = OpCompositeExtract %v2float %21288 1
-               OpBranch %21290
-      %21276 = OpLabel
-      %21278 = OpIAdd %uint %184363 %int_1
-      %21279 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %21280 = OpLoad %v2float %21279
-               OpBranch %21290
-      %21289 = OpLabel
-               OpUnreachable
-      %21290 = OpLabel
-     %185642 = OpPhi %uint %21278 %21276 %184363 %21284
-     %185641 = OpPhi %uint %184313 %21276 %21286 %21284
-     %185639 = OpPhi %v2float %21280 %21276 %122483 %21284
-     %185638 = OpPhi %v2float %21280 %21276 %122484 %21284
-      %12519 = OpLoad %uint %12053
-      %12520 = OpBitwiseAnd %uint %12519 %uint_16384
-      %12521 = OpUGreaterThan %bool %12520 %uint_0
-               OpSelectionMerge %21313 None
-               OpSwitch %uint_0 %21297
-      %21297 = OpLabel
-               OpSelectionMerge %21312 None
-               OpBranchConditional %12521 %21299 %21307
-      %21307 = OpLabel
-      %21309 = OpISub %uint %185641 %int_1
-      %21310 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %21309
-      %21311 = OpLoad %_arr_v2float_uint_2 %21310
-     %122474 = OpCompositeExtract %v2float %21311 0
-     %122475 = OpCompositeExtract %v2float %21311 1
-               OpBranch %21313
-      %21299 = OpLabel
-      %21301 = OpIAdd %uint %185642 %int_1
-      %21302 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %185642
-      %21303 = OpLoad %v2float %21302
-               OpBranch %21313
-      %21312 = OpLabel
-               OpUnreachable
-      %21313 = OpLabel
-     %262023 = OpPhi %uint %21301 %21299 %185642 %21307
-     %185647 = OpPhi %uint %185641 %21299 %21309 %21307
-     %185644 = OpPhi %v2float %21303 %21299 %122474 %21307
-     %185643 = OpPhi %v2float %21303 %21299 %122475 %21307
-      %12527 = OpFMul %v2float %185639 %185644
-      %12533 = OpFMul %v2float %185639 %185643
-      %12539 = OpFMul %v2float %185638 %185644
-      %12545 = OpFMul %v2float %185638 %185643
-      %12555 = OpExtInst %v2float %1 FMin %12539 %12545
-      %12556 = OpExtInst %v2float %1 FMin %12533 %12555
-      %12557 = OpExtInst %v2float %1 FMin %12527 %12556
-      %12567 = OpExtInst %v2float %1 FMax %12539 %12545
-      %12568 = OpExtInst %v2float %1 FMax %12533 %12567
-      %12569 = OpExtInst %v2float %1 FMax %12527 %12568
-     %122942 = OpCompositeConstruct %_arr_v2float_uint_2 %12557 %12569
-      %21317 = OpIAdd %uint %185647 %int_1
-      %21319 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185647
-               OpStore %21319 %122942
-               OpBranch %20471
-      %12447 = OpLabel
-      %12450 = OpLoad %uint %12053
-      %12451 = OpBitwiseAnd %uint %12450 %uint_32768
-      %12452 = OpUGreaterThan %bool %12451 %uint_0
-               OpSelectionMerge %21239 None
-               OpSwitch %uint_0 %21223
-      %21223 = OpLabel
-               OpSelectionMerge %21238 None
-               OpBranchConditional %12452 %21225 %21233
-      %21233 = OpLabel
-      %21235 = OpISub %uint %184292 %int_1
-      %21236 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21235
-      %21237 = OpLoad %_arr_float_uint_2 %21236
-     %122501 = OpCompositeExtract %float %21237 0
-     %122502 = OpCompositeExtract %float %21237 1
-               OpBranch %21239
-      %21225 = OpLabel
-      %21227 = OpIAdd %uint %184294 %int_1
-      %21228 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %21229 = OpLoad %float %21228
-               OpBranch %21239
-      %21238 = OpLabel
-               OpUnreachable
-      %21239 = OpLabel
-     %185652 = OpPhi %uint %21227 %21225 %184294 %21233
-     %185651 = OpPhi %uint %184292 %21225 %21235 %21233
-     %185649 = OpPhi %float %21229 %21225 %122501 %21233
-     %185648 = OpPhi %float %21229 %21225 %122502 %21233
-      %12456 = OpLoad %uint %12053
-      %12457 = OpBitwiseAnd %uint %12456 %uint_16384
-      %12458 = OpUGreaterThan %bool %12457 %uint_0
-               OpSelectionMerge %21262 None
-               OpSwitch %uint_0 %21246
-      %21246 = OpLabel
-               OpSelectionMerge %21261 None
-               OpBranchConditional %12458 %21248 %21256
-      %21256 = OpLabel
-      %21258 = OpISub %uint %185651 %int_1
-      %21259 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21258
-      %21260 = OpLoad %_arr_float_uint_2 %21259
-     %122492 = OpCompositeExtract %float %21260 0
-     %122493 = OpCompositeExtract %float %21260 1
-               OpBranch %21262
-      %21248 = OpLabel
-      %21250 = OpIAdd %uint %185652 %int_1
-      %21251 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %185652
-      %21252 = OpLoad %float %21251
-               OpBranch %21262
-      %21261 = OpLabel
-               OpUnreachable
-      %21262 = OpLabel
-     %186546 = OpPhi %uint %21250 %21248 %185652 %21256
-     %185657 = OpPhi %uint %185651 %21248 %21258 %21256
-     %185654 = OpPhi %float %21252 %21248 %122492 %21256
-     %185653 = OpPhi %float %21252 %21248 %122493 %21256
-      %12464 = OpFMul %float %185649 %185654
-      %12470 = OpFMul %float %185649 %185653
-      %12476 = OpFMul %float %185648 %185654
-      %12482 = OpFMul %float %185648 %185653
-      %12492 = OpExtInst %float %1 FMin %12476 %12482
-      %12493 = OpExtInst %float %1 FMin %12470 %12492
-      %12494 = OpExtInst %float %1 FMin %12464 %12493
-      %12504 = OpExtInst %float %1 FMax %12476 %12482
-      %12505 = OpExtInst %float %1 FMax %12470 %12504
-      %12506 = OpExtInst %float %1 FMax %12464 %12505
-     %122927 = OpCompositeConstruct %_arr_float_uint_2 %12494 %12506
-      %21266 = OpIAdd %uint %185657 %int_1
-      %21268 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185657
-               OpStore %21268 %122927
-               OpBranch %20471
-      %12418 = OpLabel
-      %12421 = OpLoad %uint %12053
-      %12422 = OpBitwiseAnd %uint %12421 %uint_32768
-      %12423 = OpUGreaterThan %bool %12422 %uint_0
-               OpSelectionMerge %21188 None
-               OpSwitch %uint_0 %21172
-      %21172 = OpLabel
-               OpSelectionMerge %21187 None
-               OpBranchConditional %12423 %21174 %21182
-      %21182 = OpLabel
-      %21184 = OpISub %uint %184311 %int_1
-      %21185 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %21184
-      %21186 = OpLoad %_arr_v4float_uint_2 %21185
-     %122519 = OpCompositeExtract %v4float %21186 0
-     %122520 = OpCompositeExtract %v4float %21186 1
-               OpBranch %21188
-      %21174 = OpLabel
-      %21176 = OpIAdd %uint %184337 %int_1
-      %21177 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %21178 = OpLoad %v4float %21177
-               OpBranch %21188
-      %21187 = OpLabel
-               OpUnreachable
-      %21188 = OpLabel
-     %261078 = OpPhi %uint %21176 %21174 %184337 %21182
-     %185668 = OpPhi %uint %184311 %21174 %21184 %21182
-     %185659 = OpPhi %v4float %21178 %21174 %122519 %21182
-     %185658 = OpPhi %v4float %21178 %21174 %122520 %21182
-      %12427 = OpLoad %uint %12053
-      %12428 = OpBitwiseAnd %uint %12427 %uint_16384
-      %12429 = OpUGreaterThan %bool %12428 %uint_0
-               OpSelectionMerge %21211 None
-               OpSwitch %uint_0 %21195
-      %21195 = OpLabel
-               OpSelectionMerge %21210 None
-               OpBranchConditional %12429 %21197 %21205
-      %21205 = OpLabel
-      %21207 = OpISub %uint %184292 %int_1
-      %21208 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21207
-      %21209 = OpLoad %_arr_float_uint_2 %21208
-     %122510 = OpCompositeExtract %float %21209 0
-     %122511 = OpCompositeExtract %float %21209 1
-               OpBranch %21211
-      %21197 = OpLabel
-      %21199 = OpIAdd %uint %184294 %int_1
-      %21200 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %21201 = OpLoad %float %21200
-               OpBranch %21211
-      %21210 = OpLabel
-               OpUnreachable
-      %21211 = OpLabel
-     %186545 = OpPhi %uint %21199 %21197 %184294 %21205
-     %186347 = OpPhi %uint %184292 %21197 %21207 %21205
-     %185664 = OpPhi %float %21201 %21197 %122510 %21205
-     %185663 = OpPhi %float %21201 %21197 %122511 %21205
-      %12435 = OpCompositeConstruct %v4float %185663 %185663 %185663 %185663
-      %12436 = OpFSub %v4float %185659 %12435
-      %12442 = OpCompositeConstruct %v4float %185664 %185664 %185664 %185664
-      %12443 = OpFSub %v4float %185658 %12442
-     %122916 = OpCompositeConstruct %_arr_v4float_uint_2 %12436 %12443
-      %21215 = OpIAdd %uint %185668 %int_1
-      %21217 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %185668
-               OpStore %21217 %122916
-               OpBranch %20471
-      %12391 = OpLabel
-      %12394 = OpLoad %uint %12053
-      %12395 = OpBitwiseAnd %uint %12394 %uint_32768
-      %12396 = OpUGreaterThan %bool %12395 %uint_0
-               OpSelectionMerge %21137 None
-               OpSwitch %uint_0 %21121
-      %21121 = OpLabel
-               OpSelectionMerge %21136 None
-               OpBranchConditional %12396 %21123 %21131
-      %21131 = OpLabel
-      %21133 = OpISub %uint %184311 %int_1
-      %21134 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %21133
-      %21135 = OpLoad %_arr_v4float_uint_2 %21134
-     %122537 = OpCompositeExtract %v4float %21135 0
-     %122538 = OpCompositeExtract %v4float %21135 1
-               OpBranch %21137
-      %21123 = OpLabel
-      %21125 = OpIAdd %uint %184337 %int_1
-      %21126 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %21127 = OpLoad %v4float %21126
-               OpBranch %21137
-      %21136 = OpLabel
-               OpUnreachable
-      %21137 = OpLabel
-     %185673 = OpPhi %uint %21125 %21123 %184337 %21131
-     %185672 = OpPhi %uint %184311 %21123 %21133 %21131
-     %185670 = OpPhi %v4float %21127 %21123 %122537 %21131
-     %185669 = OpPhi %v4float %21127 %21123 %122538 %21131
-      %12400 = OpLoad %uint %12053
-      %12401 = OpBitwiseAnd %uint %12400 %uint_16384
-      %12402 = OpUGreaterThan %bool %12401 %uint_0
-               OpSelectionMerge %21160 None
-               OpSwitch %uint_0 %21144
-      %21144 = OpLabel
-               OpSelectionMerge %21159 None
-               OpBranchConditional %12402 %21146 %21154
-      %21154 = OpLabel
-      %21156 = OpISub %uint %185672 %int_1
-      %21157 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %21156
-      %21158 = OpLoad %_arr_v4float_uint_2 %21157
-     %122528 = OpCompositeExtract %v4float %21158 0
-     %122529 = OpCompositeExtract %v4float %21158 1
-               OpBranch %21160
-      %21146 = OpLabel
-      %21148 = OpIAdd %uint %185673 %int_1
-      %21149 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %185673
-      %21150 = OpLoad %v4float %21149
-               OpBranch %21160
-      %21159 = OpLabel
-               OpUnreachable
-      %21160 = OpLabel
-     %261076 = OpPhi %uint %21148 %21146 %185673 %21154
-     %185678 = OpPhi %uint %185672 %21146 %21156 %21154
-     %185675 = OpPhi %v4float %21150 %21146 %122528 %21154
-     %185674 = OpPhi %v4float %21150 %21146 %122529 %21154
-      %12408 = OpFSub %v4float %185670 %185674
-      %12414 = OpFSub %v4float %185669 %185675
-     %122905 = OpCompositeConstruct %_arr_v4float_uint_2 %12408 %12414
-      %21164 = OpIAdd %uint %185678 %int_1
-      %21166 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %185678
-               OpStore %21166 %122905
-               OpBranch %20471
-      %12362 = OpLabel
-      %12365 = OpLoad %uint %12053
-      %12366 = OpBitwiseAnd %uint %12365 %uint_32768
-      %12367 = OpUGreaterThan %bool %12366 %uint_0
-               OpSelectionMerge %21086 None
-               OpSwitch %uint_0 %21070
-      %21070 = OpLabel
-               OpSelectionMerge %21085 None
-               OpBranchConditional %12367 %21072 %21080
-      %21080 = OpLabel
-      %21082 = OpISub %uint %184302 %int_1
-      %21083 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %21082
-      %21084 = OpLoad %_arr_v3float_uint_2 %21083
-     %122555 = OpCompositeExtract %v3float %21084 0
-     %122556 = OpCompositeExtract %v3float %21084 1
-               OpBranch %21086
-      %21072 = OpLabel
-      %21074 = OpIAdd %uint %184305 %int_1
-      %21075 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %21076 = OpLoad %v3float %21075
-               OpBranch %21086
-      %21085 = OpLabel
-               OpUnreachable
-      %21086 = OpLabel
-     %260301 = OpPhi %uint %21074 %21072 %184305 %21080
-     %185689 = OpPhi %uint %184302 %21072 %21082 %21080
-     %185680 = OpPhi %v3float %21076 %21072 %122555 %21080
-     %185679 = OpPhi %v3float %21076 %21072 %122556 %21080
-      %12371 = OpLoad %uint %12053
-      %12372 = OpBitwiseAnd %uint %12371 %uint_16384
-      %12373 = OpUGreaterThan %bool %12372 %uint_0
-               OpSelectionMerge %21109 None
-               OpSwitch %uint_0 %21093
-      %21093 = OpLabel
-               OpSelectionMerge %21108 None
-               OpBranchConditional %12373 %21095 %21103
-      %21103 = OpLabel
-      %21105 = OpISub %uint %184292 %int_1
-      %21106 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21105
-      %21107 = OpLoad %_arr_float_uint_2 %21106
-     %122546 = OpCompositeExtract %float %21107 0
-     %122547 = OpCompositeExtract %float %21107 1
-               OpBranch %21109
-      %21095 = OpLabel
-      %21097 = OpIAdd %uint %184294 %int_1
-      %21098 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %21099 = OpLoad %float %21098
-               OpBranch %21109
-      %21108 = OpLabel
-               OpUnreachable
-      %21109 = OpLabel
-     %186542 = OpPhi %uint %21097 %21095 %184294 %21103
-     %186344 = OpPhi %uint %184292 %21095 %21105 %21103
-     %185685 = OpPhi %float %21099 %21095 %122546 %21103
-     %185684 = OpPhi %float %21099 %21095 %122547 %21103
-      %12379 = OpCompositeConstruct %v3float %185684 %185684 %185684
-      %12380 = OpFSub %v3float %185680 %12379
-      %12386 = OpCompositeConstruct %v3float %185685 %185685 %185685
-      %12387 = OpFSub %v3float %185679 %12386
-     %122894 = OpCompositeConstruct %_arr_v3float_uint_2 %12380 %12387
-      %21113 = OpIAdd %uint %185689 %int_1
-      %21115 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185689
-               OpStore %21115 %122894
-               OpBranch %20471
-      %12335 = OpLabel
-      %12338 = OpLoad %uint %12053
-      %12339 = OpBitwiseAnd %uint %12338 %uint_32768
-      %12340 = OpUGreaterThan %bool %12339 %uint_0
-               OpSelectionMerge %21035 None
-               OpSwitch %uint_0 %21019
-      %21019 = OpLabel
-               OpSelectionMerge %21034 None
-               OpBranchConditional %12340 %21021 %21029
-      %21029 = OpLabel
-      %21031 = OpISub %uint %184302 %int_1
-      %21032 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %21031
-      %21033 = OpLoad %_arr_v3float_uint_2 %21032
-     %122573 = OpCompositeExtract %v3float %21033 0
-     %122574 = OpCompositeExtract %v3float %21033 1
-               OpBranch %21035
-      %21021 = OpLabel
-      %21023 = OpIAdd %uint %184305 %int_1
-      %21024 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %21025 = OpLoad %v3float %21024
-               OpBranch %21035
-      %21034 = OpLabel
-               OpUnreachable
-      %21035 = OpLabel
-     %185694 = OpPhi %uint %21023 %21021 %184305 %21029
-     %185693 = OpPhi %uint %184302 %21021 %21031 %21029
-     %185691 = OpPhi %v3float %21025 %21021 %122573 %21029
-     %185690 = OpPhi %v3float %21025 %21021 %122574 %21029
-      %12344 = OpLoad %uint %12053
-      %12345 = OpBitwiseAnd %uint %12344 %uint_16384
-      %12346 = OpUGreaterThan %bool %12345 %uint_0
-               OpSelectionMerge %21058 None
-               OpSwitch %uint_0 %21042
-      %21042 = OpLabel
-               OpSelectionMerge %21057 None
-               OpBranchConditional %12346 %21044 %21052
-      %21052 = OpLabel
-      %21054 = OpISub %uint %185693 %int_1
-      %21055 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %21054
-      %21056 = OpLoad %_arr_v3float_uint_2 %21055
-     %122564 = OpCompositeExtract %v3float %21056 0
-     %122565 = OpCompositeExtract %v3float %21056 1
-               OpBranch %21058
-      %21044 = OpLabel
-      %21046 = OpIAdd %uint %185694 %int_1
-      %21047 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %185694
-      %21048 = OpLoad %v3float %21047
-               OpBranch %21058
-      %21057 = OpLabel
-               OpUnreachable
-      %21058 = OpLabel
-     %260299 = OpPhi %uint %21046 %21044 %185694 %21052
-     %185699 = OpPhi %uint %185693 %21044 %21054 %21052
-     %185696 = OpPhi %v3float %21048 %21044 %122564 %21052
-     %185695 = OpPhi %v3float %21048 %21044 %122565 %21052
-      %12352 = OpFSub %v3float %185691 %185695
-      %12358 = OpFSub %v3float %185690 %185696
-     %122883 = OpCompositeConstruct %_arr_v3float_uint_2 %12352 %12358
-      %21062 = OpIAdd %uint %185699 %int_1
-      %21064 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185699
-               OpStore %21064 %122883
-               OpBranch %20471
-      %12306 = OpLabel
-      %12309 = OpLoad %uint %12053
-      %12310 = OpBitwiseAnd %uint %12309 %uint_32768
-      %12311 = OpUGreaterThan %bool %12310 %uint_0
-               OpSelectionMerge %20984 None
-               OpSwitch %uint_0 %20968
-      %20968 = OpLabel
-               OpSelectionMerge %20983 None
-               OpBranchConditional %12311 %20970 %20978
-      %20978 = OpLabel
-      %20980 = OpISub %uint %184313 %int_1
-      %20981 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20980
-      %20982 = OpLoad %_arr_v2float_uint_2 %20981
-     %122591 = OpCompositeExtract %v2float %20982 0
-     %122592 = OpCompositeExtract %v2float %20982 1
-               OpBranch %20984
-      %20970 = OpLabel
-      %20972 = OpIAdd %uint %184363 %int_1
-      %20973 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %20974 = OpLoad %v2float %20973
-               OpBranch %20984
-      %20983 = OpLabel
-               OpUnreachable
-      %20984 = OpLabel
-     %262012 = OpPhi %uint %20972 %20970 %184363 %20978
-     %185710 = OpPhi %uint %184313 %20970 %20980 %20978
-     %185701 = OpPhi %v2float %20974 %20970 %122591 %20978
-     %185700 = OpPhi %v2float %20974 %20970 %122592 %20978
-      %12315 = OpLoad %uint %12053
-      %12316 = OpBitwiseAnd %uint %12315 %uint_16384
-      %12317 = OpUGreaterThan %bool %12316 %uint_0
-               OpSelectionMerge %21007 None
-               OpSwitch %uint_0 %20991
-      %20991 = OpLabel
-               OpSelectionMerge %21006 None
-               OpBranchConditional %12317 %20993 %21001
-      %21001 = OpLabel
-      %21003 = OpISub %uint %184292 %int_1
-      %21004 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %21003
-      %21005 = OpLoad %_arr_float_uint_2 %21004
-     %122582 = OpCompositeExtract %float %21005 0
-     %122583 = OpCompositeExtract %float %21005 1
-               OpBranch %21007
-      %20993 = OpLabel
-      %20995 = OpIAdd %uint %184294 %int_1
-      %20996 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %20997 = OpLoad %float %20996
-               OpBranch %21007
-      %21006 = OpLabel
-               OpUnreachable
-      %21007 = OpLabel
-     %186539 = OpPhi %uint %20995 %20993 %184294 %21001
-     %186341 = OpPhi %uint %184292 %20993 %21003 %21001
-     %185706 = OpPhi %float %20997 %20993 %122582 %21001
-     %185705 = OpPhi %float %20997 %20993 %122583 %21001
-      %12323 = OpCompositeConstruct %v2float %185705 %185705
-      %12324 = OpFSub %v2float %185701 %12323
-      %12330 = OpCompositeConstruct %v2float %185706 %185706
-      %12331 = OpFSub %v2float %185700 %12330
-     %122872 = OpCompositeConstruct %_arr_v2float_uint_2 %12324 %12331
-      %21011 = OpIAdd %uint %185710 %int_1
-      %21013 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185710
-               OpStore %21013 %122872
-               OpBranch %20471
-      %12279 = OpLabel
-      %12282 = OpLoad %uint %12053
-      %12283 = OpBitwiseAnd %uint %12282 %uint_32768
-      %12284 = OpUGreaterThan %bool %12283 %uint_0
-               OpSelectionMerge %20933 None
-               OpSwitch %uint_0 %20917
-      %20917 = OpLabel
-               OpSelectionMerge %20932 None
-               OpBranchConditional %12284 %20919 %20927
-      %20927 = OpLabel
-      %20929 = OpISub %uint %184313 %int_1
-      %20930 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20929
-      %20931 = OpLoad %_arr_v2float_uint_2 %20930
-     %122609 = OpCompositeExtract %v2float %20931 0
-     %122610 = OpCompositeExtract %v2float %20931 1
-               OpBranch %20933
-      %20919 = OpLabel
-      %20921 = OpIAdd %uint %184363 %int_1
-      %20922 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %20923 = OpLoad %v2float %20922
-               OpBranch %20933
-      %20932 = OpLabel
-               OpUnreachable
-      %20933 = OpLabel
-     %185715 = OpPhi %uint %20921 %20919 %184363 %20927
-     %185714 = OpPhi %uint %184313 %20919 %20929 %20927
-     %185712 = OpPhi %v2float %20923 %20919 %122609 %20927
-     %185711 = OpPhi %v2float %20923 %20919 %122610 %20927
-      %12288 = OpLoad %uint %12053
-      %12289 = OpBitwiseAnd %uint %12288 %uint_16384
-      %12290 = OpUGreaterThan %bool %12289 %uint_0
-               OpSelectionMerge %20956 None
-               OpSwitch %uint_0 %20940
-      %20940 = OpLabel
-               OpSelectionMerge %20955 None
-               OpBranchConditional %12290 %20942 %20950
-      %20950 = OpLabel
-      %20952 = OpISub %uint %185714 %int_1
-      %20953 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20952
-      %20954 = OpLoad %_arr_v2float_uint_2 %20953
-     %122600 = OpCompositeExtract %v2float %20954 0
-     %122601 = OpCompositeExtract %v2float %20954 1
-               OpBranch %20956
-      %20942 = OpLabel
-      %20944 = OpIAdd %uint %185715 %int_1
-      %20945 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %185715
-      %20946 = OpLoad %v2float %20945
-               OpBranch %20956
-      %20955 = OpLabel
-               OpUnreachable
-      %20956 = OpLabel
-     %262010 = OpPhi %uint %20944 %20942 %185715 %20950
-     %185720 = OpPhi %uint %185714 %20942 %20952 %20950
-     %185717 = OpPhi %v2float %20946 %20942 %122600 %20950
-     %185716 = OpPhi %v2float %20946 %20942 %122601 %20950
-      %12296 = OpFSub %v2float %185712 %185716
-      %12302 = OpFSub %v2float %185711 %185717
-     %122861 = OpCompositeConstruct %_arr_v2float_uint_2 %12296 %12302
-      %20960 = OpIAdd %uint %185720 %int_1
-      %20962 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185720
-               OpStore %20962 %122861
-               OpBranch %20471
-      %12252 = OpLabel
-      %12255 = OpLoad %uint %12053
-      %12256 = OpBitwiseAnd %uint %12255 %uint_32768
-      %12257 = OpUGreaterThan %bool %12256 %uint_0
-               OpSelectionMerge %20882 None
-               OpSwitch %uint_0 %20866
-      %20866 = OpLabel
-               OpSelectionMerge %20881 None
-               OpBranchConditional %12257 %20868 %20876
-      %20876 = OpLabel
-      %20878 = OpISub %uint %184292 %int_1
-      %20879 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20878
-      %20880 = OpLoad %_arr_float_uint_2 %20879
-     %122627 = OpCompositeExtract %float %20880 0
-     %122628 = OpCompositeExtract %float %20880 1
-               OpBranch %20882
-      %20868 = OpLabel
-      %20870 = OpIAdd %uint %184294 %int_1
-      %20871 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %20872 = OpLoad %float %20871
-               OpBranch %20882
-      %20881 = OpLabel
-               OpUnreachable
-      %20882 = OpLabel
-     %185725 = OpPhi %uint %20870 %20868 %184294 %20876
-     %185724 = OpPhi %uint %184292 %20868 %20878 %20876
-     %185722 = OpPhi %float %20872 %20868 %122627 %20876
-     %185721 = OpPhi %float %20872 %20868 %122628 %20876
-      %12261 = OpLoad %uint %12053
-      %12262 = OpBitwiseAnd %uint %12261 %uint_16384
-      %12263 = OpUGreaterThan %bool %12262 %uint_0
-               OpSelectionMerge %20905 None
-               OpSwitch %uint_0 %20889
-      %20889 = OpLabel
-               OpSelectionMerge %20904 None
-               OpBranchConditional %12263 %20891 %20899
-      %20899 = OpLabel
-      %20901 = OpISub %uint %185724 %int_1
-      %20902 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20901
-      %20903 = OpLoad %_arr_float_uint_2 %20902
-     %122618 = OpCompositeExtract %float %20903 0
-     %122619 = OpCompositeExtract %float %20903 1
-               OpBranch %20905
-      %20891 = OpLabel
-      %20893 = OpIAdd %uint %185725 %int_1
-      %20894 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %185725
-      %20895 = OpLoad %float %20894
-               OpBranch %20905
-      %20904 = OpLabel
-               OpUnreachable
-      %20905 = OpLabel
-     %186536 = OpPhi %uint %20893 %20891 %185725 %20899
-     %185730 = OpPhi %uint %185724 %20891 %20901 %20899
-     %185727 = OpPhi %float %20895 %20891 %122618 %20899
-     %185726 = OpPhi %float %20895 %20891 %122619 %20899
-      %12269 = OpFSub %float %185722 %185726
-      %12275 = OpFSub %float %185721 %185727
-     %122850 = OpCompositeConstruct %_arr_float_uint_2 %12269 %12275
-      %20909 = OpIAdd %uint %185730 %int_1
-      %20911 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185730
-               OpStore %20911 %122850
-               OpBranch %20471
-      %12223 = OpLabel
-      %12226 = OpLoad %uint %12053
-      %12227 = OpBitwiseAnd %uint %12226 %uint_32768
-      %12228 = OpUGreaterThan %bool %12227 %uint_0
-               OpSelectionMerge %20831 None
-               OpSwitch %uint_0 %20815
-      %20815 = OpLabel
-               OpSelectionMerge %20830 None
-               OpBranchConditional %12228 %20817 %20825
-      %20825 = OpLabel
-      %20827 = OpISub %uint %184311 %int_1
-      %20828 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20827
-      %20829 = OpLoad %_arr_v4float_uint_2 %20828
-     %122645 = OpCompositeExtract %v4float %20829 0
-     %122646 = OpCompositeExtract %v4float %20829 1
-               OpBranch %20831
-      %20817 = OpLabel
-      %20819 = OpIAdd %uint %184337 %int_1
-      %20820 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %20821 = OpLoad %v4float %20820
-               OpBranch %20831
-      %20830 = OpLabel
-               OpUnreachable
-      %20831 = OpLabel
-     %261065 = OpPhi %uint %20819 %20817 %184337 %20825
-     %185741 = OpPhi %uint %184311 %20817 %20827 %20825
-     %185732 = OpPhi %v4float %20821 %20817 %122645 %20825
-     %185731 = OpPhi %v4float %20821 %20817 %122646 %20825
-      %12232 = OpLoad %uint %12053
-      %12233 = OpBitwiseAnd %uint %12232 %uint_16384
-      %12234 = OpUGreaterThan %bool %12233 %uint_0
-               OpSelectionMerge %20854 None
-               OpSwitch %uint_0 %20838
-      %20838 = OpLabel
-               OpSelectionMerge %20853 None
-               OpBranchConditional %12234 %20840 %20848
-      %20848 = OpLabel
-      %20850 = OpISub %uint %184292 %int_1
-      %20851 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20850
-      %20852 = OpLoad %_arr_float_uint_2 %20851
-     %122636 = OpCompositeExtract %float %20852 0
-     %122637 = OpCompositeExtract %float %20852 1
-               OpBranch %20854
-      %20840 = OpLabel
-      %20842 = OpIAdd %uint %184294 %int_1
-      %20843 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %20844 = OpLoad %float %20843
-               OpBranch %20854
-      %20853 = OpLabel
-               OpUnreachable
-      %20854 = OpLabel
-     %186535 = OpPhi %uint %20842 %20840 %184294 %20848
-     %186338 = OpPhi %uint %184292 %20840 %20850 %20848
-     %185737 = OpPhi %float %20844 %20840 %122636 %20848
-     %185736 = OpPhi %float %20844 %20840 %122637 %20848
-      %12240 = OpCompositeConstruct %v4float %185737 %185737 %185737 %185737
-      %12241 = OpFAdd %v4float %185732 %12240
-      %12247 = OpCompositeConstruct %v4float %185736 %185736 %185736 %185736
-      %12248 = OpFAdd %v4float %185731 %12247
-     %122839 = OpCompositeConstruct %_arr_v4float_uint_2 %12241 %12248
-      %20858 = OpIAdd %uint %185741 %int_1
-      %20860 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %185741
-               OpStore %20860 %122839
-               OpBranch %20471
-      %12196 = OpLabel
-      %12199 = OpLoad %uint %12053
-      %12200 = OpBitwiseAnd %uint %12199 %uint_32768
-      %12201 = OpUGreaterThan %bool %12200 %uint_0
-               OpSelectionMerge %20780 None
-               OpSwitch %uint_0 %20764
-      %20764 = OpLabel
-               OpSelectionMerge %20779 None
-               OpBranchConditional %12201 %20766 %20774
-      %20774 = OpLabel
-      %20776 = OpISub %uint %184311 %int_1
-      %20777 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20776
-      %20778 = OpLoad %_arr_v4float_uint_2 %20777
-     %122663 = OpCompositeExtract %v4float %20778 0
-     %122664 = OpCompositeExtract %v4float %20778 1
-               OpBranch %20780
-      %20766 = OpLabel
-      %20768 = OpIAdd %uint %184337 %int_1
-      %20769 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %184337
-      %20770 = OpLoad %v4float %20769
-               OpBranch %20780
-      %20779 = OpLabel
-               OpUnreachable
-      %20780 = OpLabel
-     %185746 = OpPhi %uint %20768 %20766 %184337 %20774
-     %185745 = OpPhi %uint %184311 %20766 %20776 %20774
-     %185743 = OpPhi %v4float %20770 %20766 %122663 %20774
-     %185742 = OpPhi %v4float %20770 %20766 %122664 %20774
-      %12205 = OpLoad %uint %12053
-      %12206 = OpBitwiseAnd %uint %12205 %uint_16384
-      %12207 = OpUGreaterThan %bool %12206 %uint_0
-               OpSelectionMerge %20803 None
-               OpSwitch %uint_0 %20787
-      %20787 = OpLabel
-               OpSelectionMerge %20802 None
-               OpBranchConditional %12207 %20789 %20797
-      %20797 = OpLabel
-      %20799 = OpISub %uint %185745 %int_1
-      %20800 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %20799
-      %20801 = OpLoad %_arr_v4float_uint_2 %20800
-     %122654 = OpCompositeExtract %v4float %20801 0
-     %122655 = OpCompositeExtract %v4float %20801 1
-               OpBranch %20803
-      %20789 = OpLabel
-      %20791 = OpIAdd %uint %185746 %int_1
-      %20792 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %185746
-      %20793 = OpLoad %v4float %20792
-               OpBranch %20803
-      %20802 = OpLabel
-               OpUnreachable
-      %20803 = OpLabel
-     %261063 = OpPhi %uint %20791 %20789 %185746 %20797
-     %185751 = OpPhi %uint %185745 %20789 %20799 %20797
-     %185748 = OpPhi %v4float %20793 %20789 %122654 %20797
-     %185747 = OpPhi %v4float %20793 %20789 %122655 %20797
-      %12213 = OpFAdd %v4float %185743 %185748
-      %12219 = OpFAdd %v4float %185742 %185747
-     %122828 = OpCompositeConstruct %_arr_v4float_uint_2 %12213 %12219
-      %20807 = OpIAdd %uint %185751 %int_1
-      %20809 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %185751
-               OpStore %20809 %122828
-               OpBranch %20471
-      %12167 = OpLabel
-      %12170 = OpLoad %uint %12053
-      %12171 = OpBitwiseAnd %uint %12170 %uint_32768
-      %12172 = OpUGreaterThan %bool %12171 %uint_0
-               OpSelectionMerge %20729 None
-               OpSwitch %uint_0 %20713
-      %20713 = OpLabel
-               OpSelectionMerge %20728 None
-               OpBranchConditional %12172 %20715 %20723
-      %20723 = OpLabel
-      %20725 = OpISub %uint %184302 %int_1
-      %20726 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20725
-      %20727 = OpLoad %_arr_v3float_uint_2 %20726
-     %122681 = OpCompositeExtract %v3float %20727 0
-     %122682 = OpCompositeExtract %v3float %20727 1
-               OpBranch %20729
-      %20715 = OpLabel
-      %20717 = OpIAdd %uint %184305 %int_1
-      %20718 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %20719 = OpLoad %v3float %20718
-               OpBranch %20729
-      %20728 = OpLabel
-               OpUnreachable
-      %20729 = OpLabel
-     %260288 = OpPhi %uint %20717 %20715 %184305 %20723
-     %185762 = OpPhi %uint %184302 %20715 %20725 %20723
-     %185753 = OpPhi %v3float %20719 %20715 %122681 %20723
-     %185752 = OpPhi %v3float %20719 %20715 %122682 %20723
-      %12176 = OpLoad %uint %12053
-      %12177 = OpBitwiseAnd %uint %12176 %uint_16384
-      %12178 = OpUGreaterThan %bool %12177 %uint_0
-               OpSelectionMerge %20752 None
-               OpSwitch %uint_0 %20736
-      %20736 = OpLabel
-               OpSelectionMerge %20751 None
-               OpBranchConditional %12178 %20738 %20746
-      %20746 = OpLabel
-      %20748 = OpISub %uint %184292 %int_1
-      %20749 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20748
-      %20750 = OpLoad %_arr_float_uint_2 %20749
-     %122672 = OpCompositeExtract %float %20750 0
-     %122673 = OpCompositeExtract %float %20750 1
-               OpBranch %20752
-      %20738 = OpLabel
-      %20740 = OpIAdd %uint %184294 %int_1
-      %20741 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %20742 = OpLoad %float %20741
-               OpBranch %20752
-      %20751 = OpLabel
-               OpUnreachable
-      %20752 = OpLabel
-     %186532 = OpPhi %uint %20740 %20738 %184294 %20746
-     %186335 = OpPhi %uint %184292 %20738 %20748 %20746
-     %185758 = OpPhi %float %20742 %20738 %122672 %20746
-     %185757 = OpPhi %float %20742 %20738 %122673 %20746
-      %12184 = OpCompositeConstruct %v3float %185758 %185758 %185758
-      %12185 = OpFAdd %v3float %185753 %12184
-      %12191 = OpCompositeConstruct %v3float %185757 %185757 %185757
-      %12192 = OpFAdd %v3float %185752 %12191
-     %122817 = OpCompositeConstruct %_arr_v3float_uint_2 %12185 %12192
-      %20756 = OpIAdd %uint %185762 %int_1
-      %20758 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185762
-               OpStore %20758 %122817
-               OpBranch %20471
-      %12140 = OpLabel
-      %12143 = OpLoad %uint %12053
-      %12144 = OpBitwiseAnd %uint %12143 %uint_32768
-      %12145 = OpUGreaterThan %bool %12144 %uint_0
-               OpSelectionMerge %20678 None
-               OpSwitch %uint_0 %20662
-      %20662 = OpLabel
-               OpSelectionMerge %20677 None
-               OpBranchConditional %12145 %20664 %20672
-      %20672 = OpLabel
-      %20674 = OpISub %uint %184302 %int_1
-      %20675 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20674
-      %20676 = OpLoad %_arr_v3float_uint_2 %20675
-     %122699 = OpCompositeExtract %v3float %20676 0
-     %122700 = OpCompositeExtract %v3float %20676 1
-               OpBranch %20678
-      %20664 = OpLabel
-      %20666 = OpIAdd %uint %184305 %int_1
-      %20667 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %184305
-      %20668 = OpLoad %v3float %20667
-               OpBranch %20678
-      %20677 = OpLabel
-               OpUnreachable
-      %20678 = OpLabel
-     %185767 = OpPhi %uint %20666 %20664 %184305 %20672
-     %185766 = OpPhi %uint %184302 %20664 %20674 %20672
-     %185764 = OpPhi %v3float %20668 %20664 %122699 %20672
-     %185763 = OpPhi %v3float %20668 %20664 %122700 %20672
-      %12149 = OpLoad %uint %12053
-      %12150 = OpBitwiseAnd %uint %12149 %uint_16384
-      %12151 = OpUGreaterThan %bool %12150 %uint_0
-               OpSelectionMerge %20701 None
-               OpSwitch %uint_0 %20685
-      %20685 = OpLabel
-               OpSelectionMerge %20700 None
-               OpBranchConditional %12151 %20687 %20695
-      %20695 = OpLabel
-      %20697 = OpISub %uint %185766 %int_1
-      %20698 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %20697
-      %20699 = OpLoad %_arr_v3float_uint_2 %20698
-     %122690 = OpCompositeExtract %v3float %20699 0
-     %122691 = OpCompositeExtract %v3float %20699 1
-               OpBranch %20701
-      %20687 = OpLabel
-      %20689 = OpIAdd %uint %185767 %int_1
-      %20690 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %185767
-      %20691 = OpLoad %v3float %20690
-               OpBranch %20701
-      %20700 = OpLabel
-               OpUnreachable
-      %20701 = OpLabel
-     %260286 = OpPhi %uint %20689 %20687 %185767 %20695
-     %185772 = OpPhi %uint %185766 %20687 %20697 %20695
-     %185769 = OpPhi %v3float %20691 %20687 %122690 %20695
-     %185768 = OpPhi %v3float %20691 %20687 %122691 %20695
-      %12157 = OpFAdd %v3float %185764 %185769
-      %12163 = OpFAdd %v3float %185763 %185768
-     %122806 = OpCompositeConstruct %_arr_v3float_uint_2 %12157 %12163
-      %20705 = OpIAdd %uint %185772 %int_1
-      %20707 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %185772
-               OpStore %20707 %122806
-               OpBranch %20471
-      %12111 = OpLabel
-      %12114 = OpLoad %uint %12053
-      %12115 = OpBitwiseAnd %uint %12114 %uint_32768
-      %12116 = OpUGreaterThan %bool %12115 %uint_0
-               OpSelectionMerge %20627 None
-               OpSwitch %uint_0 %20611
-      %20611 = OpLabel
-               OpSelectionMerge %20626 None
-               OpBranchConditional %12116 %20613 %20621
-      %20621 = OpLabel
-      %20623 = OpISub %uint %184313 %int_1
-      %20624 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20623
-      %20625 = OpLoad %_arr_v2float_uint_2 %20624
-     %122717 = OpCompositeExtract %v2float %20625 0
-     %122718 = OpCompositeExtract %v2float %20625 1
-               OpBranch %20627
-      %20613 = OpLabel
-      %20615 = OpIAdd %uint %184363 %int_1
-      %20616 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %20617 = OpLoad %v2float %20616
-               OpBranch %20627
-      %20626 = OpLabel
-               OpUnreachable
-      %20627 = OpLabel
-     %261999 = OpPhi %uint %20615 %20613 %184363 %20621
-     %185783 = OpPhi %uint %184313 %20613 %20623 %20621
-     %185774 = OpPhi %v2float %20617 %20613 %122717 %20621
-     %185773 = OpPhi %v2float %20617 %20613 %122718 %20621
-      %12120 = OpLoad %uint %12053
-      %12121 = OpBitwiseAnd %uint %12120 %uint_16384
-      %12122 = OpUGreaterThan %bool %12121 %uint_0
-               OpSelectionMerge %20650 None
-               OpSwitch %uint_0 %20634
-      %20634 = OpLabel
-               OpSelectionMerge %20649 None
-               OpBranchConditional %12122 %20636 %20644
-      %20644 = OpLabel
-      %20646 = OpISub %uint %184292 %int_1
-      %20647 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20646
-      %20648 = OpLoad %_arr_float_uint_2 %20647
-     %122708 = OpCompositeExtract %float %20648 0
-     %122709 = OpCompositeExtract %float %20648 1
-               OpBranch %20650
-      %20636 = OpLabel
-      %20638 = OpIAdd %uint %184294 %int_1
-      %20639 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %20640 = OpLoad %float %20639
-               OpBranch %20650
-      %20649 = OpLabel
-               OpUnreachable
-      %20650 = OpLabel
-     %186529 = OpPhi %uint %20638 %20636 %184294 %20644
-     %186332 = OpPhi %uint %184292 %20636 %20646 %20644
-     %185779 = OpPhi %float %20640 %20636 %122708 %20644
-     %185778 = OpPhi %float %20640 %20636 %122709 %20644
-      %12128 = OpCompositeConstruct %v2float %185779 %185779
-      %12129 = OpFAdd %v2float %185774 %12128
-      %12135 = OpCompositeConstruct %v2float %185778 %185778
-      %12136 = OpFAdd %v2float %185773 %12135
-     %122795 = OpCompositeConstruct %_arr_v2float_uint_2 %12129 %12136
-      %20654 = OpIAdd %uint %185783 %int_1
-      %20656 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185783
-               OpStore %20656 %122795
-               OpBranch %20471
-      %12084 = OpLabel
-      %12087 = OpLoad %uint %12053
-      %12088 = OpBitwiseAnd %uint %12087 %uint_32768
-      %12089 = OpUGreaterThan %bool %12088 %uint_0
-               OpSelectionMerge %20576 None
-               OpSwitch %uint_0 %20560
-      %20560 = OpLabel
-               OpSelectionMerge %20575 None
-               OpBranchConditional %12089 %20562 %20570
-      %20570 = OpLabel
-      %20572 = OpISub %uint %184313 %int_1
-      %20573 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20572
-      %20574 = OpLoad %_arr_v2float_uint_2 %20573
-     %122735 = OpCompositeExtract %v2float %20574 0
-     %122736 = OpCompositeExtract %v2float %20574 1
-               OpBranch %20576
-      %20562 = OpLabel
-      %20564 = OpIAdd %uint %184363 %int_1
-      %20565 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %184363
-      %20566 = OpLoad %v2float %20565
-               OpBranch %20576
-      %20575 = OpLabel
-               OpUnreachable
-      %20576 = OpLabel
-     %185788 = OpPhi %uint %20564 %20562 %184363 %20570
-     %185787 = OpPhi %uint %184313 %20562 %20572 %20570
-     %185785 = OpPhi %v2float %20566 %20562 %122735 %20570
-     %185784 = OpPhi %v2float %20566 %20562 %122736 %20570
-      %12093 = OpLoad %uint %12053
-      %12094 = OpBitwiseAnd %uint %12093 %uint_16384
-      %12095 = OpUGreaterThan %bool %12094 %uint_0
-               OpSelectionMerge %20599 None
-               OpSwitch %uint_0 %20583
-      %20583 = OpLabel
-               OpSelectionMerge %20598 None
-               OpBranchConditional %12095 %20585 %20593
-      %20593 = OpLabel
-      %20595 = OpISub %uint %185787 %int_1
-      %20596 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %20595
-      %20597 = OpLoad %_arr_v2float_uint_2 %20596
-     %122726 = OpCompositeExtract %v2float %20597 0
-     %122727 = OpCompositeExtract %v2float %20597 1
-               OpBranch %20599
-      %20585 = OpLabel
-      %20587 = OpIAdd %uint %185788 %int_1
-      %20588 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %185788
-      %20589 = OpLoad %v2float %20588
-               OpBranch %20599
-      %20598 = OpLabel
-               OpUnreachable
-      %20599 = OpLabel
-     %261997 = OpPhi %uint %20587 %20585 %185788 %20593
-     %185793 = OpPhi %uint %185787 %20585 %20595 %20593
-     %185790 = OpPhi %v2float %20589 %20585 %122726 %20593
-     %185789 = OpPhi %v2float %20589 %20585 %122727 %20593
-      %12101 = OpFAdd %v2float %185785 %185790
-      %12107 = OpFAdd %v2float %185784 %185789
-     %122784 = OpCompositeConstruct %_arr_v2float_uint_2 %12101 %12107
-      %20603 = OpIAdd %uint %185793 %int_1
-      %20605 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %185793
-               OpStore %20605 %122784
-               OpBranch %20471
-      %12057 = OpLabel
-      %12060 = OpLoad %uint %12053
-      %12061 = OpBitwiseAnd %uint %12060 %uint_32768
-      %12062 = OpUGreaterThan %bool %12061 %uint_0
-               OpSelectionMerge %20525 None
-               OpSwitch %uint_0 %20509
-      %20509 = OpLabel
-               OpSelectionMerge %20524 None
-               OpBranchConditional %12062 %20511 %20519
-      %20519 = OpLabel
-      %20521 = OpISub %uint %184292 %int_1
-      %20522 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20521
-      %20523 = OpLoad %_arr_float_uint_2 %20522
-     %122753 = OpCompositeExtract %float %20523 0
-     %122754 = OpCompositeExtract %float %20523 1
-               OpBranch %20525
-      %20511 = OpLabel
-      %20513 = OpIAdd %uint %184294 %int_1
-      %20514 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %184294
-      %20515 = OpLoad %float %20514
-               OpBranch %20525
-      %20524 = OpLabel
-               OpUnreachable
-      %20525 = OpLabel
-     %185798 = OpPhi %uint %20513 %20511 %184294 %20519
-     %185797 = OpPhi %uint %184292 %20511 %20521 %20519
-     %185795 = OpPhi %float %20515 %20511 %122753 %20519
-     %185794 = OpPhi %float %20515 %20511 %122754 %20519
-      %12066 = OpLoad %uint %12053
-      %12067 = OpBitwiseAnd %uint %12066 %uint_16384
-      %12068 = OpUGreaterThan %bool %12067 %uint_0
-               OpSelectionMerge %20548 None
-               OpSwitch %uint_0 %20532
-      %20532 = OpLabel
-               OpSelectionMerge %20547 None
-               OpBranchConditional %12068 %20534 %20542
-      %20542 = OpLabel
-      %20544 = OpISub %uint %185797 %int_1
-      %20545 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %20544
-      %20546 = OpLoad %_arr_float_uint_2 %20545
-     %122744 = OpCompositeExtract %float %20546 0
-     %122745 = OpCompositeExtract %float %20546 1
-               OpBranch %20548
-      %20534 = OpLabel
-      %20536 = OpIAdd %uint %185798 %int_1
-      %20537 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %185798
-      %20538 = OpLoad %float %20537
-               OpBranch %20548
-      %20547 = OpLabel
-               OpUnreachable
-      %20548 = OpLabel
-     %186526 = OpPhi %uint %20536 %20534 %185798 %20542
-     %185803 = OpPhi %uint %185797 %20534 %20544 %20542
-     %185800 = OpPhi %float %20538 %20534 %122744 %20542
-     %185799 = OpPhi %float %20538 %20534 %122745 %20542
-      %12074 = OpFAdd %float %185795 %185800
-      %12080 = OpFAdd %float %185794 %185799
-     %122773 = OpCompositeConstruct %_arr_float_uint_2 %12074 %12080
-      %20552 = OpIAdd %uint %185803 %int_1
-      %20554 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %185803
-               OpStore %20554 %122773
-               OpBranch %20471
-      %12056 = OpLabel
-               OpBranch %20492
-      %20471 = OpLabel
-     %264520 = OpPhi %uint %184417 %20548 %184417 %20599 %184417 %20650 %184417 %20701 %184417 %20752 %184417 %20803 %184417 %20854 %184417 %20905 %184417 %20956 %184417 %21007 %184417 %21058 %184417 %21109 %184417 %21160 %184417 %21211 %184417 %21262 %184417 %21313 %184417 %21364 %184417 %21415 %184417 %21466 %184417 %21517 %184417 %21568 %184417 %21619 %184417 %21670 %184417 %21721 %184417 %21772 %184417 %21823 %184417 %21874 %184417 %21925 %184417 %21976 %184417 %22027 %184417 %22078 %184417 %22129 %184417 %22180 %184417 %22231 %184417 %22282 %184417 %22333 %184417 %22384 %184417 %22435 %184417 %22486 %184417 %22537 %184417 %22588 %184417 %22639 %184417 %22690 %184417 %22718 %184417 %22746 %184417 %22774 %184417 %22825 %184417 %22876 %184417 %22927 %184417 %22955 %184417 %22983 %184417 %23011 %184417 %23039 %184417 %23067 %184417 %23095 %184417 %23123 %184417 %23151 %184417 %23179 %184417 %23207 %184417 %23235 %184417 %23263 %184417 %23291 %184417 %23319 %184417 %23347 %184417 %23375 %184417 %23403 %184417 %23431 %184417 %23459 %184417 %23487 %184417 %23515 %184417 %23543 %184417 %23571 %184417 %23599 %184417 %23627 %184417 %23678 %184417 %23729 %184417 %23803 %184417 %23831 %184417 %23859 %184417 %23887 %184417 %23915 %184417 %23943 %184417 %23971 %184417 %23999 %184417 %24027 %184417 %24055 %184417 %24083 %184417 %24111 %184417 %24139 %184417 %24167 %184417 %24195 %184417 %24223 %184417 %24251 %184417 %24279 %184417 %24307 %184417 %24335 %184417 %24363 %184417 %24391 %184417 %24419 %184417 %24447 %184417 %24475 %184417 %24503 %184417 %24554 %184417 %24605 %184417 %24679 %184417 %24707 %184417 %24735 %184417 %24763 %184417 %24791 %184417 %24819 %184417 %24847 %184417 %24875 %184417 %24903 %184417 %24931 %184417 %24959 %184417 %24987 %184417 %25015 %184417 %25043 %184417 %25071 %184417 %25099 %184417 %25127 %184417 %25155 %184417 %25183 %184417 %25211 %184417 %25239 %184417 %25267 %184417 %25295 %184417 %25323 %184417 %25351 %184417 %25379 %184417 %25430 %184417 %25481 %184417 %25555 %184417 %25583 %184417 %25611 %184417 %25639 %184417 %25667 %184417 %25695 %184417 %25723 %184417 %25751 %184417 %25779 %184417 %25807 %184417 %25835 %184417 %25863 %184417 %25891 %184417 %25919 %184417 %25947 %184417 %25975 %184417 %26003 %184417 %26031 %184417 %26059 %184417 %26087 %184417 %26115 %184417 %26143 %184417 %26171 %184417 %26199 %184417 %26227 %184417 %26255 %184417 %26306 %184417 %26357 %184417 %26431 %184417 %26505 %184417 %26579 %184417 %26653 %184417 %26727 %184417 %26801 %184417 %26875 %184417 %26949 %184417 %27023 %184417 %27097 %184417 %27171 %184417 %27245 %184417 %27319 %184417 %27393 %184417 %27467 %184417 %27495 %184417 %27523 %184417 %27551 %184417 %27602 %184417 %27676 %184417 %27727 %184417 %27824 %184417 %27898 %184417 %27949 %184417 %28000 %184417 %28028 %184417 %28071 %264811 %28104 %184417 %28142 %184417 %28185 %184417 %28213 %184417 %28246 %184417 %28284 %184417 %19530 %184417 %28355 %184417 %28383 %184417 %28411 %184417 %28439 %184417 %28467 %184417 %28495 %184417 %28523 %184417 %28580 %184417 %28637 %184417 %19911 %184417 %19927 %184417 %19943 %184417 %19959 %184417 %19965 %184417 %19971 %184417 %19977 %184417 %19983 %184417 %19986 %184417 %19996 %184417 %20013 %184417 %20037 %184417 %20053 %184417 %20069 %184417 %20085 %184417 %20091 %184417 %20097 %184417 %20103 %184417 %20109 %184417 %20112 %184417 %20122 %184417 %20139 %184417 %20163 %184417 %20179 %184417 %20195 %184417 %20211 %184417 %20217 %184417 %20223 %184417 %20229 %184417 %20235 %184417 %20238 %184417 %20248 %184417 %20265 %184417 %20289 %184417 %20305 %184417 %20321 %184417 %20337 %184417 %20343 %184417 %20349 %184417 %20355 %184417 %20361 %184417 %20364 %184417 %20374 %184417 %20391 %184417 %28768 %184417 %20463
-     %264203 = OpPhi %uint %184415 %20548 %184415 %20599 %184415 %20650 %184415 %20701 %184415 %20752 %184415 %20803 %184415 %20854 %184415 %20905 %184415 %20956 %184415 %21007 %184415 %21058 %184415 %21109 %184415 %21160 %184415 %21211 %184415 %21262 %184415 %21313 %184415 %21364 %184415 %21415 %184415 %21466 %184415 %21517 %184415 %21568 %184415 %21619 %184415 %21670 %184415 %21721 %184415 %21772 %184415 %21823 %184415 %21874 %184415 %21925 %184415 %21976 %184415 %22027 %184415 %22078 %184415 %22129 %184415 %22180 %184415 %22231 %184415 %22282 %184415 %22333 %184415 %22384 %184415 %22435 %184415 %22486 %184415 %22537 %184415 %22588 %184415 %22639 %184415 %22690 %184415 %22718 %184415 %22746 %184415 %22774 %184415 %22825 %184415 %22876 %184415 %22927 %184415 %22955 %184415 %22983 %184415 %23011 %184415 %23039 %184415 %23067 %184415 %23095 %184415 %23123 %184415 %23151 %184415 %23179 %184415 %23207 %184415 %23235 %184415 %23263 %184415 %23291 %184415 %23319 %184415 %23347 %184415 %23375 %184415 %23403 %184415 %23431 %184415 %23459 %184415 %23487 %184415 %23515 %184415 %23543 %184415 %23571 %184415 %23599 %184415 %23627 %184415 %23678 %184415 %23729 %184415 %23803 %184415 %23831 %184415 %23859 %184415 %23887 %184415 %23915 %184415 %23943 %184415 %23971 %184415 %23999 %184415 %24027 %184415 %24055 %184415 %24083 %184415 %24111 %184415 %24139 %184415 %24167 %184415 %24195 %184415 %24223 %184415 %24251 %184415 %24279 %184415 %24307 %184415 %24335 %184415 %24363 %184415 %24391 %184415 %24419 %184415 %24447 %184415 %24475 %184415 %24503 %184415 %24554 %184415 %24605 %184415 %24679 %184415 %24707 %184415 %24735 %184415 %24763 %184415 %24791 %184415 %24819 %184415 %24847 %184415 %24875 %184415 %24903 %184415 %24931 %184415 %24959 %184415 %24987 %184415 %25015 %184415 %25043 %184415 %25071 %184415 %25099 %184415 %25127 %184415 %25155 %184415 %25183 %184415 %25211 %184415 %25239 %184415 %25267 %184415 %25295 %184415 %25323 %184415 %25351 %184415 %25379 %184415 %25430 %184415 %25481 %184415 %25555 %184415 %25583 %184415 %25611 %184415 %25639 %184415 %25667 %184415 %25695 %184415 %25723 %184415 %25751 %184415 %25779 %184415 %25807 %184415 %25835 %184415 %25863 %184415 %25891 %184415 %25919 %184415 %25947 %184415 %25975 %184415 %26003 %184415 %26031 %184415 %26059 %184415 %26087 %184415 %26115 %184415 %26143 %184415 %26171 %184415 %26199 %184415 %26227 %184415 %26255 %184415 %26306 %184415 %26357 %184415 %26431 %184415 %26505 %184415 %26579 %184415 %26653 %184415 %26727 %184415 %26801 %184415 %26875 %184415 %26949 %184415 %27023 %184415 %27097 %184415 %27171 %184415 %27245 %184415 %27319 %184415 %27393 %184415 %27467 %184415 %27495 %184415 %27523 %184415 %27551 %184415 %27602 %184415 %27676 %184415 %27727 %184415 %27824 %184415 %27898 %184415 %27949 %184415 %28000 %184415 %28028 %184415 %28071 %264494 %28104 %184415 %28142 %184415 %28185 %184415 %28213 %184415 %28246 %184415 %28284 %184415 %19530 %184415 %28355 %184415 %28383 %184415 %28411 %184415 %28439 %184415 %28467 %184415 %28495 %184415 %28523 %184415 %28580 %184415 %28637 %184415 %19911 %184415 %19927 %184415 %19943 %184415 %19959 %184415 %19965 %184415 %19971 %184415 %19977 %184415 %19983 %184415 %19986 %184415 %19996 %184415 %20013 %184415 %20037 %184415 %20053 %184415 %20069 %184415 %20085 %184415 %20091 %184415 %20097 %184415 %20103 %184415 %20109 %184415 %20112 %184415 %20122 %184415 %20139 %184415 %20163 %184415 %20179 %184415 %20195 %184415 %20211 %184415 %20217 %184415 %20223 %184415 %20229 %184415 %20235 %184415 %20238 %184415 %20248 %184415 %20265 %184415 %20289 %184415 %20305 %184415 %20321 %184415 %20337 %184415 %20343 %184415 %20349 %184415 %20355 %184415 %20361 %184415 %20364 %184415 %20374 %184415 %20391 %184415 %28768 %184415 %20463
-     %263886 = OpPhi %uint %184410 %20548 %184410 %20599 %184410 %20650 %184410 %20701 %184410 %20752 %184410 %20803 %184410 %20854 %184410 %20905 %184410 %20956 %184410 %21007 %184410 %21058 %184410 %21109 %184410 %21160 %184410 %21211 %184410 %21262 %184410 %21313 %184410 %21364 %184410 %21415 %184410 %21466 %184410 %21517 %184410 %21568 %184410 %21619 %184410 %21670 %184410 %21721 %184410 %21772 %184410 %21823 %184410 %21874 %184410 %21925 %184410 %21976 %184410 %22027 %184410 %22078 %184410 %22129 %184410 %22180 %184410 %22231 %184410 %22282 %184410 %22333 %184410 %22384 %184410 %22435 %184410 %22486 %184410 %22537 %184410 %22588 %184410 %22639 %184410 %22690 %184410 %22718 %184410 %22746 %184410 %22774 %184410 %22825 %184410 %22876 %184410 %22927 %184410 %22955 %184410 %22983 %184410 %23011 %184410 %23039 %184410 %23067 %184410 %23095 %184410 %23123 %184410 %23151 %184410 %23179 %184410 %23207 %184410 %23235 %184410 %23263 %184410 %23291 %184410 %23319 %184410 %23347 %184410 %23375 %184410 %23403 %184410 %23431 %184410 %23459 %184410 %23487 %184410 %23515 %184410 %23543 %184410 %23571 %184410 %23599 %184410 %23627 %184410 %23678 %184410 %23729 %184410 %23803 %184410 %23831 %184410 %23859 %184410 %23887 %184410 %23915 %184410 %23943 %184410 %23971 %184410 %23999 %184410 %24027 %184410 %24055 %184410 %24083 %184410 %24111 %184410 %24139 %184410 %24167 %184410 %24195 %184410 %24223 %184410 %24251 %184410 %24279 %184410 %24307 %184410 %24335 %184410 %24363 %184410 %24391 %184410 %24419 %184410 %24447 %184410 %24475 %184410 %24503 %184410 %24554 %184410 %24605 %184410 %24679 %184410 %24707 %184410 %24735 %184410 %24763 %184410 %24791 %184410 %24819 %184410 %24847 %184410 %24875 %184410 %24903 %184410 %24931 %184410 %24959 %184410 %24987 %184410 %25015 %184410 %25043 %184410 %25071 %184410 %25099 %184410 %25127 %184410 %25155 %184410 %25183 %184410 %25211 %184410 %25239 %184410 %25267 %184410 %25295 %184410 %25323 %184410 %25351 %184410 %25379 %184410 %25430 %184410 %25481 %184410 %25555 %184410 %25583 %184410 %25611 %184410 %25639 %184410 %25667 %184410 %25695 %184410 %25723 %184410 %25751 %184410 %25779 %184410 %25807 %184410 %25835 %184410 %25863 %184410 %25891 %184410 %25919 %184410 %25947 %184410 %25975 %184410 %26003 %184410 %26031 %184410 %26059 %184410 %26087 %184410 %26115 %184410 %26143 %184410 %26171 %184410 %26199 %184410 %26227 %184410 %26255 %184410 %26306 %184410 %26357 %184410 %26431 %184410 %26505 %184410 %26579 %184410 %26653 %184410 %26727 %184410 %26801 %184410 %26875 %184410 %26949 %184410 %27023 %184410 %27097 %184410 %27171 %184410 %27245 %184410 %27319 %184410 %27393 %184410 %27467 %184410 %27495 %184410 %27523 %184410 %27551 %184410 %27602 %184410 %27676 %184410 %27727 %184410 %27824 %184410 %27898 %184410 %27949 %184410 %28000 %184410 %28028 %184410 %28071 %184410 %28104 %264178 %28142 %184410 %28185 %184410 %28213 %184410 %28246 %184410 %28284 %184410 %19530 %184410 %28355 %184410 %28383 %184410 %28411 %184410 %28439 %184410 %28467 %184410 %28495 %184410 %28523 %184410 %28580 %184410 %28637 %184410 %19911 %184410 %19927 %184410 %19943 %184410 %19959 %184410 %19965 %184410 %19971 %184410 %19977 %184410 %19983 %184410 %19986 %184410 %19996 %184410 %20013 %184410 %20037 %184410 %20053 %184410 %20069 %184410 %20085 %184410 %20091 %184410 %20097 %184410 %20103 %184410 %20109 %184410 %20112 %184410 %20122 %184410 %20139 %184410 %20163 %184410 %20179 %184410 %20195 %184410 %20211 %184410 %20217 %184410 %20223 %184410 %20229 %184410 %20235 %184410 %20238 %184410 %20248 %184410 %20265 %184410 %20289 %184410 %20305 %184410 %20321 %184410 %20337 %184410 %20343 %184410 %20349 %184410 %20355 %184410 %20361 %184410 %20364 %184410 %20374 %184410 %20391 %184410 %28768 %184410 %20463
-     %263569 = OpPhi %uint %184408 %20548 %184408 %20599 %184408 %20650 %184408 %20701 %184408 %20752 %184408 %20803 %184408 %20854 %184408 %20905 %184408 %20956 %184408 %21007 %184408 %21058 %184408 %21109 %184408 %21160 %184408 %21211 %184408 %21262 %184408 %21313 %184408 %21364 %184408 %21415 %184408 %21466 %184408 %21517 %184408 %21568 %184408 %21619 %184408 %21670 %184408 %21721 %184408 %21772 %184408 %21823 %184408 %21874 %184408 %21925 %184408 %21976 %184408 %22027 %184408 %22078 %184408 %22129 %184408 %22180 %184408 %22231 %184408 %22282 %184408 %22333 %184408 %22384 %184408 %22435 %184408 %22486 %184408 %22537 %184408 %22588 %184408 %22639 %184408 %22690 %184408 %22718 %184408 %22746 %184408 %22774 %184408 %22825 %184408 %22876 %184408 %22927 %184408 %22955 %184408 %22983 %184408 %23011 %184408 %23039 %184408 %23067 %184408 %23095 %184408 %23123 %184408 %23151 %184408 %23179 %184408 %23207 %184408 %23235 %184408 %23263 %184408 %23291 %184408 %23319 %184408 %23347 %184408 %23375 %184408 %23403 %184408 %23431 %184408 %23459 %184408 %23487 %184408 %23515 %184408 %23543 %184408 %23571 %184408 %23599 %184408 %23627 %184408 %23678 %184408 %23729 %184408 %23803 %184408 %23831 %184408 %23859 %184408 %23887 %184408 %23915 %184408 %23943 %184408 %23971 %184408 %23999 %184408 %24027 %184408 %24055 %184408 %24083 %184408 %24111 %184408 %24139 %184408 %24167 %184408 %24195 %184408 %24223 %184408 %24251 %184408 %24279 %184408 %24307 %184408 %24335 %184408 %24363 %184408 %24391 %184408 %24419 %184408 %24447 %184408 %24475 %184408 %24503 %184408 %24554 %184408 %24605 %184408 %24679 %184408 %24707 %184408 %24735 %184408 %24763 %184408 %24791 %184408 %24819 %184408 %24847 %184408 %24875 %184408 %24903 %184408 %24931 %184408 %24959 %184408 %24987 %184408 %25015 %184408 %25043 %184408 %25071 %184408 %25099 %184408 %25127 %184408 %25155 %184408 %25183 %184408 %25211 %184408 %25239 %184408 %25267 %184408 %25295 %184408 %25323 %184408 %25351 %184408 %25379 %184408 %25430 %184408 %25481 %184408 %25555 %184408 %25583 %184408 %25611 %184408 %25639 %184408 %25667 %184408 %25695 %184408 %25723 %184408 %25751 %184408 %25779 %184408 %25807 %184408 %25835 %184408 %25863 %184408 %25891 %184408 %25919 %184408 %25947 %184408 %25975 %184408 %26003 %184408 %26031 %184408 %26059 %184408 %26087 %184408 %26115 %184408 %26143 %184408 %26171 %184408 %26199 %184408 %26227 %184408 %26255 %184408 %26306 %184408 %26357 %184408 %26431 %184408 %26505 %184408 %26579 %184408 %26653 %184408 %26727 %184408 %26801 %184408 %26875 %184408 %26949 %184408 %27023 %184408 %27097 %184408 %27171 %184408 %27245 %184408 %27319 %184408 %27393 %184408 %27467 %184408 %27495 %184408 %27523 %184408 %27551 %184408 %27602 %184408 %27676 %184408 %27727 %184408 %27824 %184408 %27898 %184408 %27949 %184408 %28000 %184408 %28028 %184408 %28071 %184408 %28104 %263861 %28142 %184408 %28185 %184408 %28213 %184408 %28246 %184408 %28284 %184408 %19530 %184408 %28355 %184408 %28383 %184408 %28411 %184408 %28439 %184408 %28467 %184408 %28495 %184408 %28523 %184408 %28580 %184408 %28637 %184408 %19911 %184408 %19927 %184408 %19943 %184408 %19959 %184408 %19965 %184408 %19971 %184408 %19977 %184408 %19983 %184408 %19986 %184408 %19996 %184408 %20013 %184408 %20037 %184408 %20053 %184408 %20069 %184408 %20085 %184408 %20091 %184408 %20097 %184408 %20103 %184408 %20109 %184408 %20112 %184408 %20122 %184408 %20139 %184408 %20163 %184408 %20179 %184408 %20195 %184408 %20211 %184408 %20217 %184408 %20223 %184408 %20229 %184408 %20235 %184408 %20238 %184408 %20248 %184408 %20265 %184408 %20289 %184408 %20305 %184408 %20321 %184408 %20337 %184408 %20343 %184408 %20349 %184408 %20355 %184408 %20361 %184408 %20364 %184408 %20374 %184408 %20391 %184408 %28768 %184408 %20463
-     %263252 = OpPhi %uint %184403 %20548 %184403 %20599 %184403 %20650 %184403 %20701 %184403 %20752 %184403 %20803 %184403 %20854 %184403 %20905 %184403 %20956 %184403 %21007 %184403 %21058 %184403 %21109 %184403 %21160 %184403 %21211 %184403 %21262 %184403 %21313 %184403 %21364 %184403 %21415 %184403 %21466 %184403 %21517 %184403 %21568 %184403 %21619 %184403 %21670 %184403 %21721 %184403 %21772 %184403 %21823 %184403 %21874 %184403 %21925 %184403 %21976 %184403 %22027 %184403 %22078 %184403 %22129 %184403 %22180 %184403 %22231 %184403 %22282 %184403 %22333 %184403 %22384 %184403 %22435 %184403 %22486 %184403 %22537 %184403 %22588 %184403 %22639 %184403 %22690 %184403 %22718 %184403 %22746 %184403 %22774 %184403 %22825 %184403 %22876 %184403 %22927 %184403 %22955 %184403 %22983 %184403 %23011 %184403 %23039 %184403 %23067 %184403 %23095 %184403 %23123 %184403 %23151 %184403 %23179 %184403 %23207 %184403 %23235 %184403 %23263 %184403 %23291 %184403 %23319 %184403 %23347 %184403 %23375 %184403 %23403 %184403 %23431 %184403 %23459 %184403 %23487 %184403 %23515 %184403 %23543 %184403 %23571 %184403 %23599 %184403 %23627 %184403 %23678 %184403 %23729 %184403 %23803 %184403 %23831 %184403 %23859 %184403 %23887 %184403 %23915 %184403 %23943 %184403 %23971 %184403 %23999 %184403 %24027 %184403 %24055 %184403 %24083 %184403 %24111 %184403 %24139 %184403 %24167 %184403 %24195 %184403 %24223 %184403 %24251 %184403 %24279 %184403 %24307 %184403 %24335 %184403 %24363 %184403 %24391 %184403 %24419 %184403 %24447 %184403 %24475 %184403 %24503 %184403 %24554 %184403 %24605 %184403 %24679 %184403 %24707 %184403 %24735 %184403 %24763 %184403 %24791 %184403 %24819 %184403 %24847 %184403 %24875 %184403 %24903 %184403 %24931 %184403 %24959 %184403 %24987 %184403 %25015 %184403 %25043 %184403 %25071 %184403 %25099 %184403 %25127 %184403 %25155 %184403 %25183 %184403 %25211 %184403 %25239 %184403 %25267 %184403 %25295 %184403 %25323 %184403 %25351 %184403 %25379 %184403 %25430 %184403 %25481 %184403 %25555 %184403 %25583 %184403 %25611 %184403 %25639 %184403 %25667 %184403 %25695 %184403 %25723 %184403 %25751 %184403 %25779 %184403 %25807 %184403 %25835 %184403 %25863 %184403 %25891 %184403 %25919 %184403 %25947 %184403 %25975 %184403 %26003 %184403 %26031 %184403 %26059 %184403 %26087 %184403 %26115 %184403 %26143 %184403 %26171 %184403 %26199 %184403 %26227 %184403 %26255 %184403 %26306 %184403 %26357 %184403 %26431 %184403 %26505 %184403 %26579 %184403 %26653 %184403 %26727 %184403 %26801 %184403 %26875 %184403 %26949 %184403 %27023 %184403 %27097 %184403 %27171 %184403 %27245 %184403 %27319 %184403 %27393 %184403 %27467 %184403 %27495 %184403 %27523 %184403 %27551 %184403 %27602 %184403 %27676 %184403 %27727 %184403 %27824 %184403 %27898 %184403 %27949 %184403 %28000 %263541 %28028 %263542 %28071 %184403 %28104 %184403 %28142 %263545 %28185 %184403 %28213 %184403 %28246 %184403 %28284 %184403 %19530 %184403 %28355 %184403 %28383 %184403 %28411 %184403 %28439 %184403 %28467 %184403 %28495 %184403 %28523 %184403 %28580 %184403 %28637 %184403 %19911 %184403 %19927 %184403 %19943 %184403 %19959 %184403 %19965 %184403 %19971 %184403 %19977 %184403 %19983 %184403 %19986 %184403 %19996 %184403 %20013 %184403 %20037 %184403 %20053 %184403 %20069 %184403 %20085 %184403 %20091 %184403 %20097 %184403 %20103 %184403 %20109 %184403 %20112 %184403 %20122 %184403 %20139 %184403 %20163 %184403 %20179 %184403 %20195 %184403 %20211 %184403 %20217 %184403 %20223 %184403 %20229 %184403 %20235 %184403 %20238 %184403 %20248 %184403 %20265 %184403 %20289 %184403 %20305 %184403 %20321 %184403 %20337 %184403 %20343 %184403 %20349 %184403 %20355 %184403 %20361 %184403 %20364 %184403 %20374 %184403 %20391 %184403 %28768 %184403 %20463
-     %262935 = OpPhi %uint %184401 %20548 %184401 %20599 %184401 %20650 %184401 %20701 %184401 %20752 %184401 %20803 %184401 %20854 %184401 %20905 %184401 %20956 %184401 %21007 %184401 %21058 %184401 %21109 %184401 %21160 %184401 %21211 %184401 %21262 %184401 %21313 %184401 %21364 %184401 %21415 %184401 %21466 %184401 %21517 %184401 %21568 %184401 %21619 %184401 %21670 %184401 %21721 %184401 %21772 %184401 %21823 %184401 %21874 %184401 %21925 %184401 %21976 %184401 %22027 %184401 %22078 %184401 %22129 %184401 %22180 %184401 %22231 %184401 %22282 %184401 %22333 %184401 %22384 %184401 %22435 %184401 %22486 %184401 %22537 %184401 %22588 %184401 %22639 %184401 %22690 %184401 %22718 %184401 %22746 %184401 %22774 %184401 %22825 %184401 %22876 %184401 %22927 %184401 %22955 %184401 %22983 %184401 %23011 %184401 %23039 %184401 %23067 %184401 %23095 %184401 %23123 %184401 %23151 %184401 %23179 %184401 %23207 %184401 %23235 %184401 %23263 %184401 %23291 %184401 %23319 %184401 %23347 %184401 %23375 %184401 %23403 %184401 %23431 %184401 %23459 %184401 %23487 %184401 %23515 %184401 %23543 %184401 %23571 %184401 %23599 %184401 %23627 %184401 %23678 %184401 %23729 %184401 %23803 %184401 %23831 %184401 %23859 %184401 %23887 %184401 %23915 %184401 %23943 %184401 %23971 %184401 %23999 %184401 %24027 %184401 %24055 %184401 %24083 %184401 %24111 %184401 %24139 %184401 %24167 %184401 %24195 %184401 %24223 %184401 %24251 %184401 %24279 %184401 %24307 %184401 %24335 %184401 %24363 %184401 %24391 %184401 %24419 %184401 %24447 %184401 %24475 %184401 %24503 %184401 %24554 %184401 %24605 %184401 %24679 %184401 %24707 %184401 %24735 %184401 %24763 %184401 %24791 %184401 %24819 %184401 %24847 %184401 %24875 %184401 %24903 %184401 %24931 %184401 %24959 %184401 %24987 %184401 %25015 %184401 %25043 %184401 %25071 %184401 %25099 %184401 %25127 %184401 %25155 %184401 %25183 %184401 %25211 %184401 %25239 %184401 %25267 %184401 %25295 %184401 %25323 %184401 %25351 %184401 %25379 %184401 %25430 %184401 %25481 %184401 %25555 %184401 %25583 %184401 %25611 %184401 %25639 %184401 %25667 %184401 %25695 %184401 %25723 %184401 %25751 %184401 %25779 %184401 %25807 %184401 %25835 %184401 %25863 %184401 %25891 %184401 %25919 %184401 %25947 %184401 %25975 %184401 %26003 %184401 %26031 %184401 %26059 %184401 %26087 %184401 %26115 %184401 %26143 %184401 %26171 %184401 %26199 %184401 %26227 %184401 %26255 %184401 %26306 %184401 %26357 %184401 %26431 %184401 %26505 %184401 %26579 %184401 %26653 %184401 %26727 %184401 %26801 %184401 %26875 %184401 %26949 %184401 %27023 %184401 %27097 %184401 %27171 %184401 %27245 %184401 %27319 %184401 %27393 %184401 %27467 %184401 %27495 %184401 %27523 %184401 %27551 %184401 %27602 %184401 %27676 %184401 %27727 %184401 %27824 %184401 %27898 %184401 %27949 %184401 %28000 %263224 %28028 %263225 %28071 %184401 %28104 %184401 %28142 %263228 %28185 %184401 %28213 %184401 %28246 %184401 %28284 %184401 %19530 %184401 %28355 %184401 %28383 %184401 %28411 %184401 %28439 %184401 %28467 %184401 %28495 %184401 %28523 %184401 %28580 %184401 %28637 %184401 %19911 %184401 %19927 %184401 %19943 %184401 %19959 %184401 %19965 %184401 %19971 %184401 %19977 %184401 %19983 %184401 %19986 %184401 %19996 %184401 %20013 %184401 %20037 %184401 %20053 %184401 %20069 %184401 %20085 %184401 %20091 %184401 %20097 %184401 %20103 %184401 %20109 %184401 %20112 %184401 %20122 %184401 %20139 %184401 %20163 %184401 %20179 %184401 %20195 %184401 %20211 %184401 %20217 %184401 %20223 %184401 %20229 %184401 %20235 %184401 %20238 %184401 %20248 %184401 %20265 %184401 %20289 %184401 %20305 %184401 %20321 %184401 %20337 %184401 %20343 %184401 %20349 %184401 %20355 %184401 %20361 %184401 %20364 %184401 %20374 %184401 %20391 %184401 %28768 %184401 %20463
-     %261994 = OpPhi %uint %184363 %20548 %261997 %20599 %261999 %20650 %184363 %20701 %184363 %20752 %184363 %20803 %184363 %20854 %184363 %20905 %262010 %20956 %262012 %21007 %184363 %21058 %184363 %21109 %184363 %21160 %184363 %21211 %184363 %21262 %262023 %21313 %262025 %21364 %184363 %21415 %184363 %21466 %184363 %21517 %184363 %21568 %184363 %21619 %262036 %21670 %262038 %21721 %184363 %21772 %184363 %21823 %184363 %21874 %184363 %21925 %184363 %21976 %262049 %22027 %184363 %22078 %184363 %22129 %184363 %22180 %262056 %22231 %262058 %22282 %184363 %22333 %184363 %22384 %184363 %22435 %184363 %22486 %184363 %22537 %262069 %22588 %184363 %22639 %184363 %22690 %262074 %22718 %184363 %22746 %184363 %22774 %262077 %22825 %184363 %22876 %184363 %22927 %184363 %22955 %184363 %22983 %184363 %23011 %184363 %23039 %184363 %23067 %184363 %23095 %184363 %23123 %184363 %23151 %184363 %23179 %184363 %23207 %184363 %23235 %184363 %23263 %184363 %23291 %184363 %23319 %184363 %23347 %184363 %23375 %184363 %23403 %184363 %23431 %184363 %23459 %184363 %23487 %184363 %23515 %184363 %23543 %184363 %23571 %184363 %23599 %184363 %23627 %184363 %23678 %184363 %23729 %184363 %23803 %262116 %23831 %262117 %23859 %262118 %23887 %262119 %23915 %262120 %23943 %262121 %23971 %262122 %23999 %262123 %24027 %262124 %24055 %262125 %24083 %262126 %24111 %262127 %24139 %262128 %24167 %262129 %24195 %262130 %24223 %262131 %24251 %262132 %24279 %262133 %24307 %262134 %24335 %262135 %24363 %262136 %24391 %262137 %24419 %262138 %24447 %262139 %24475 %262140 %24503 %262141 %24554 %262142 %24605 %262143 %24679 %184363 %24707 %184363 %24735 %184363 %24763 %184363 %24791 %184363 %24819 %184363 %24847 %184363 %24875 %184363 %24903 %184363 %24931 %184363 %24959 %184363 %24987 %184363 %25015 %184363 %25043 %184363 %25071 %184363 %25099 %184363 %25127 %184363 %25155 %184363 %25183 %184363 %25211 %184363 %25239 %184363 %25267 %184363 %25295 %184363 %25323 %184363 %25351 %184363 %25379 %184363 %25430 %184363 %25481 %184363 %25555 %184363 %25583 %184363 %25611 %184363 %25639 %184363 %25667 %184363 %25695 %184363 %25723 %184363 %25751 %184363 %25779 %184363 %25807 %184363 %25835 %184363 %25863 %184363 %25891 %184363 %25919 %184363 %25947 %184363 %25975 %184363 %26003 %184363 %26031 %184363 %26059 %184363 %26087 %184363 %26115 %184363 %26143 %184363 %26171 %184363 %26199 %184363 %26227 %184363 %26255 %184363 %26306 %184363 %26357 %184363 %26431 %184363 %26505 %184363 %26579 %262214 %26653 %262215 %26727 %262218 %26801 %262220 %26875 %184363 %26949 %184363 %27023 %184363 %27097 %184363 %27171 %184363 %27245 %184363 %27319 %184363 %27393 %184363 %27467 %262245 %27495 %184363 %27523 %184363 %27551 %184363 %27602 %184363 %27676 %262254 %27727 %184363 %27824 %262261 %27898 %184363 %27949 %262264 %28000 %184363 %28028 %184363 %28071 %184363 %28104 %184363 %28142 %184363 %28185 %262270 %28213 %184363 %28246 %184363 %28284 %184363 %19530 %184363 %28355 %262277 %28383 %262278 %28411 %184363 %28439 %184363 %28467 %184363 %28495 %184363 %28523 %184363 %28580 %184363 %28637 %184363 %19911 %184363 %19927 %184363 %19943 %184363 %19959 %184363 %19965 %184363 %19971 %184363 %19977 %184363 %19983 %184363 %19986 %184363 %19996 %184363 %20013 %184363 %20037 %184363 %20053 %184363 %20069 %184363 %20085 %184363 %20091 %184363 %20097 %184363 %20103 %184363 %20109 %184363 %20112 %184363 %20122 %184363 %20139 %184363 %20163 %184363 %20179 %184363 %20195 %184363 %20211 %184363 %20217 %184363 %20223 %184363 %20229 %184363 %20235 %184363 %20238 %184363 %20248 %184363 %20265 %184363 %20289 %184363 %20305 %184363 %20321 %184363 %20337 %184363 %20343 %184363 %20349 %184363 %20355 %184363 %20361 %184363 %20364 %184363 %20374 %184363 %20391 %184363 %28768 %184363 %20463
-     %261052 = OpPhi %uint %184337 %20548 %184337 %20599 %184337 %20650 %184337 %20701 %184337 %20752 %261063 %20803 %261065 %20854 %184337 %20905 %184337 %20956 %184337 %21007 %184337 %21058 %184337 %21109 %261076 %21160 %261078 %21211 %184337 %21262 %184337 %21313 %184337 %21364 %184337 %21415 %184337 %21466 %261089 %21517 %261091 %21568 %184337 %21619 %184337 %21670 %184337 %21721 %184337 %21772 %184337 %21823 %261102 %21874 %261104 %21925 %184337 %21976 %184337 %22027 %184337 %22078 %261111 %22129 %184337 %22180 %184337 %22231 %184337 %22282 %184337 %22333 %184337 %22384 %261122 %22435 %261124 %22486 %184337 %22537 %184337 %22588 %184337 %22639 %261131 %22690 %184337 %22718 %184337 %22746 %261134 %22774 %184337 %22825 %184337 %22876 %261139 %22927 %184337 %22955 %184337 %22983 %184337 %23011 %184337 %23039 %184337 %23067 %184337 %23095 %184337 %23123 %184337 %23151 %184337 %23179 %184337 %23207 %184337 %23235 %184337 %23263 %184337 %23291 %184337 %23319 %184337 %23347 %184337 %23375 %184337 %23403 %184337 %23431 %184337 %23459 %184337 %23487 %184337 %23515 %184337 %23543 %184337 %23571 %184337 %23599 %184337 %23627 %184337 %23678 %184337 %23729 %184337 %23803 %184337 %23831 %184337 %23859 %184337 %23887 %184337 %23915 %184337 %23943 %184337 %23971 %184337 %23999 %184337 %24027 %184337 %24055 %184337 %24083 %184337 %24111 %184337 %24139 %184337 %24167 %184337 %24195 %184337 %24223 %184337 %24251 %184337 %24279 %184337 %24307 %184337 %24335 %184337 %24363 %184337 %24391 %184337 %24419 %184337 %24447 %184337 %24475 %184337 %24503 %184337 %24554 %184337 %24605 %184337 %24679 %184337 %24707 %184337 %24735 %184337 %24763 %184337 %24791 %184337 %24819 %184337 %24847 %184337 %24875 %184337 %24903 %184337 %24931 %184337 %24959 %184337 %24987 %184337 %25015 %184337 %25043 %184337 %25071 %184337 %25099 %184337 %25127 %184337 %25155 %184337 %25183 %184337 %25211 %184337 %25239 %184337 %25267 %184337 %25295 %184337 %25323 %184337 %25351 %184337 %25379 %184337 %25430 %184337 %25481 %184337 %25555 %261238 %25583 %261239 %25611 %261240 %25639 %261241 %25667 %261242 %25695 %261243 %25723 %261244 %25751 %261245 %25779 %261246 %25807 %261247 %25835 %261248 %25863 %261249 %25891 %261250 %25919 %261251 %25947 %261252 %25975 %261253 %26003 %261254 %26031 %261255 %26059 %261256 %26087 %261257 %26115 %261258 %26143 %261259 %26171 %261260 %26199 %261261 %26227 %261262 %26255 %261263 %26306 %261264 %26357 %261265 %26431 %184337 %26505 %184337 %26579 %184337 %26653 %184337 %26727 %184337 %26801 %184337 %26875 %184337 %26949 %184337 %27023 %184337 %27097 %184337 %27171 %261296 %27245 %261297 %27319 %261300 %27393 %261302 %27467 %184337 %27495 %184337 %27523 %261305 %27551 %184337 %27602 %184337 %27676 %184337 %27727 %184337 %27824 %184337 %27898 %184337 %27949 %184337 %28000 %184337 %28028 %184337 %28071 %184337 %28104 %184337 %28142 %184337 %28185 %184337 %28213 %184337 %28246 %261331 %28284 %184337 %19530 %184337 %28355 %184337 %28383 %184337 %28411 %184337 %28439 %184337 %28467 %261340 %28495 %261341 %28523 %184337 %28580 %184337 %28637 %184337 %19911 %184337 %19927 %184337 %19943 %184337 %19959 %184337 %19965 %184337 %19971 %184337 %19977 %184337 %19983 %184337 %19986 %184337 %19996 %184337 %20013 %184337 %20037 %184337 %20053 %184337 %20069 %184337 %20085 %184337 %20091 %184337 %20097 %184337 %20103 %184337 %20109 %184337 %20112 %184337 %20122 %184337 %20139 %184337 %20163 %184337 %20179 %184337 %20195 %184337 %20211 %184337 %20217 %184337 %20223 %184337 %20229 %184337 %20235 %184337 %20238 %184337 %20248 %184337 %20265 %184337 %20289 %184337 %20305 %184337 %20321 %184337 %20337 %184337 %20343 %184337 %20349 %184337 %20355 %184337 %20361 %184337 %20364 %184337 %20374 %184337 %20391 %184337 %28768 %184337 %20463
-     %260810 = OpPhi %uint %184313 %20548 %20603 %20599 %20654 %20650 %184313 %20701 %184313 %20752 %184313 %20803 %184313 %20854 %184313 %20905 %20960 %20956 %21011 %21007 %184313 %21058 %184313 %21109 %184313 %21160 %184313 %21211 %184313 %21262 %21317 %21313 %21368 %21364 %184313 %21415 %184313 %21466 %184313 %21517 %184313 %21568 %184313 %21619 %21674 %21670 %21725 %21721 %184313 %21772 %184313 %21823 %184313 %21874 %184313 %21925 %184313 %21976 %22031 %22027 %184313 %22078 %184313 %22129 %184313 %22180 %22235 %22231 %22286 %22282 %184313 %22333 %184313 %22384 %184313 %22435 %184313 %22486 %184313 %22537 %260869 %22588 %184313 %22639 %184313 %22690 %260874 %22718 %184313 %22746 %184313 %22774 %260877 %22825 %184313 %22876 %184313 %22927 %184313 %22955 %184313 %22983 %184313 %23011 %184313 %23039 %184313 %23067 %184313 %23095 %184313 %23123 %184313 %23151 %184313 %23179 %184313 %23207 %184313 %23235 %184313 %23263 %184313 %23291 %184313 %23319 %184313 %23347 %184313 %23375 %184313 %23403 %184313 %23431 %184313 %23459 %184313 %23487 %184313 %23515 %184313 %23543 %184313 %23571 %184313 %23599 %184313 %23627 %184313 %23678 %184313 %23729 %184313 %23803 %23835 %23831 %23863 %23859 %23891 %23887 %23919 %23915 %23947 %23943 %23975 %23971 %24003 %23999 %24031 %24027 %24059 %24055 %24087 %24083 %24115 %24111 %24143 %24139 %24171 %24167 %24199 %24195 %24227 %24223 %24255 %24251 %24283 %24279 %24311 %24307 %24339 %24335 %24367 %24363 %24395 %24391 %24423 %24419 %24451 %24447 %24479 %24475 %24507 %24503 %24558 %24554 %24609 %24605 %24683 %24679 %184313 %24707 %184313 %24735 %184313 %24763 %184313 %24791 %184313 %24819 %184313 %24847 %184313 %24875 %184313 %24903 %184313 %24931 %184313 %24959 %184313 %24987 %184313 %25015 %184313 %25043 %184313 %25071 %184313 %25099 %184313 %25127 %184313 %25155 %184313 %25183 %184313 %25211 %184313 %25239 %184313 %25267 %184313 %25295 %184313 %25323 %184313 %25351 %184313 %25379 %184313 %25430 %184313 %25481 %184313 %25555 %184313 %25583 %184313 %25611 %184313 %25639 %184313 %25667 %184313 %25695 %184313 %25723 %184313 %25751 %184313 %25779 %184313 %25807 %184313 %25835 %184313 %25863 %184313 %25891 %184313 %25919 %184313 %25947 %184313 %25975 %184313 %26003 %184313 %26031 %184313 %26059 %184313 %26087 %184313 %26115 %184313 %26143 %184313 %26171 %184313 %26199 %184313 %26227 %184313 %26255 %184313 %26306 %184313 %26357 %184313 %26431 %184313 %26505 %184313 %26579 %26657 %26653 %26731 %26727 %26805 %26801 %26879 %26875 %184313 %26949 %184313 %27023 %184313 %27097 %184313 %27171 %184313 %27245 %184313 %27319 %184313 %27393 %184313 %27467 %27499 %27495 %184313 %27523 %184313 %27551 %27606 %27602 %184313 %27676 %261016 %27727 %184313 %27824 %261023 %27898 %184313 %27949 %261026 %28000 %184313 %28028 %28080 %28071 %184313 %28104 %184313 %28142 %184313 %28185 %261031 %28213 %184313 %28246 %184313 %28284 %184313 %19530 %184313 %28355 %28387 %28383 %28415 %28411 %184313 %28439 %184313 %28467 %184313 %28495 %184313 %28523 %184313 %28580 %184313 %28637 %184313 %19911 %184313 %19927 %184313 %19943 %184313 %19959 %184313 %19965 %184313 %19971 %184313 %19977 %184313 %19983 %184313 %19986 %184313 %19996 %184313 %20013 %184313 %20037 %184313 %20053 %184313 %20069 %28666 %20085 %28671 %20091 %28676 %20097 %28681 %20103 %20111 %20109 %20121 %20112 %20138 %20122 %20162 %20139 %184313 %20163 %184313 %20179 %184313 %20195 %184313 %20211 %184313 %20217 %184313 %20223 %184313 %20229 %184313 %20235 %184313 %20238 %184313 %20248 %184313 %20265 %184313 %20289 %184313 %20305 %184313 %20321 %184313 %20337 %184313 %20343 %184313 %20349 %184313 %20355 %184313 %20361 %184313 %20364 %184313 %20374 %184313 %20391 %184313 %28768 %184313 %20463
-     %260577 = OpPhi %uint %184311 %20548 %184311 %20599 %184311 %20650 %184311 %20701 %184311 %20752 %20807 %20803 %20858 %20854 %184311 %20905 %184311 %20956 %184311 %21007 %184311 %21058 %184311 %21109 %21164 %21160 %21215 %21211 %184311 %21262 %184311 %21313 %184311 %21364 %184311 %21415 %184311 %21466 %21521 %21517 %21572 %21568 %184311 %21619 %184311 %21670 %184311 %21721 %184311 %21772 %184311 %21823 %21878 %21874 %21929 %21925 %184311 %21976 %184311 %22027 %184311 %22078 %22133 %22129 %184311 %22180 %184311 %22231 %184311 %22282 %184311 %22333 %184311 %22384 %22439 %22435 %22490 %22486 %184311 %22537 %184311 %22588 %184311 %22639 %260640 %22690 %184311 %22718 %184311 %22746 %260643 %22774 %184311 %22825 %184311 %22876 %260648 %22927 %184311 %22955 %184311 %22983 %184311 %23011 %184311 %23039 %184311 %23067 %184311 %23095 %184311 %23123 %184311 %23151 %184311 %23179 %184311 %23207 %184311 %23235 %184311 %23263 %184311 %23291 %184311 %23319 %184311 %23347 %184311 %23375 %184311 %23403 %184311 %23431 %184311 %23459 %184311 %23487 %184311 %23515 %184311 %23543 %184311 %23571 %184311 %23599 %184311 %23627 %184311 %23678 %184311 %23729 %184311 %23803 %184311 %23831 %184311 %23859 %184311 %23887 %184311 %23915 %184311 %23943 %184311 %23971 %184311 %23999 %184311 %24027 %184311 %24055 %184311 %24083 %184311 %24111 %184311 %24139 %184311 %24167 %184311 %24195 %184311 %24223 %184311 %24251 %184311 %24279 %184311 %24307 %184311 %24335 %184311 %24363 %184311 %24391 %184311 %24419 %184311 %24447 %184311 %24475 %184311 %24503 %184311 %24554 %184311 %24605 %184311 %24679 %184311 %24707 %184311 %24735 %184311 %24763 %184311 %24791 %184311 %24819 %184311 %24847 %184311 %24875 %184311 %24903 %184311 %24931 %184311 %24959 %184311 %24987 %184311 %25015 %184311 %25043 %184311 %25071 %184311 %25099 %184311 %25127 %184311 %25155 %184311 %25183 %184311 %25211 %184311 %25239 %184311 %25267 %184311 %25295 %184311 %25323 %184311 %25351 %184311 %25379 %184311 %25430 %184311 %25481 %184311 %25555 %25587 %25583 %25615 %25611 %25643 %25639 %25671 %25667 %25699 %25695 %25727 %25723 %25755 %25751 %25783 %25779 %25811 %25807 %25839 %25835 %25867 %25863 %25895 %25891 %25923 %25919 %25951 %25947 %25979 %25975 %26007 %26003 %26035 %26031 %26063 %26059 %26091 %26087 %26119 %26115 %26147 %26143 %26175 %26171 %26203 %26199 %26231 %26227 %26259 %26255 %26310 %26306 %26361 %26357 %26435 %26431 %184311 %26505 %184311 %26579 %184311 %26653 %184311 %26727 %184311 %26801 %184311 %26875 %184311 %26949 %184311 %27023 %184311 %27097 %184311 %27171 %27249 %27245 %27323 %27319 %27397 %27393 %27471 %27467 %184311 %27495 %184311 %27523 %27555 %27551 %184311 %27602 %184311 %27676 %184311 %27727 %27828 %27824 %27902 %27898 %27953 %27949 %28004 %28000 %184311 %28028 %184311 %28071 %184311 %28104 %28161 %28142 %28189 %28185 %184311 %28213 %184311 %28246 %260791 %28284 %184311 %19530 %184311 %28355 %184311 %28383 %184311 %28411 %184311 %28439 %184311 %28467 %28499 %28495 %28527 %28523 %184311 %28580 %184311 %28637 %184311 %19911 %184311 %19927 %184311 %19943 %184311 %19959 %184311 %19965 %184311 %19971 %184311 %19977 %184311 %19983 %184311 %19986 %184311 %19996 %184311 %20013 %184311 %20037 %184311 %20053 %184311 %20069 %184311 %20085 %184311 %20091 %184311 %20097 %184311 %20103 %184311 %20109 %184311 %20112 %184311 %20122 %184311 %20139 %184311 %20163 %184311 %20179 %184311 %20195 %184311 %20211 %184311 %20217 %184311 %20223 %184311 %20229 %184311 %20235 %184311 %20238 %184311 %20248 %184311 %20265 %184311 %20289 %184311 %20305 %184311 %20321 %28706 %20337 %28711 %20343 %28716 %20349 %28721 %20355 %20363 %20361 %20373 %20364 %20390 %20374 %20414 %20391 %184311 %28768 %184311 %20463
-     %260279 = OpPhi %uint %184305 %20548 %184305 %20599 %184305 %20650 %260286 %20701 %260288 %20752 %184305 %20803 %184305 %20854 %184305 %20905 %184305 %20956 %184305 %21007 %260299 %21058 %260301 %21109 %184305 %21160 %184305 %21211 %184305 %21262 %184305 %21313 %184305 %21364 %260312 %21415 %260314 %21466 %184305 %21517 %184305 %21568 %184305 %21619 %184305 %21670 %184305 %21721 %260325 %21772 %260327 %21823 %184305 %21874 %184305 %21925 %184305 %21976 %184305 %22027 %260336 %22078 %184305 %22129 %184305 %22180 %184305 %22231 %184305 %22282 %260345 %22333 %260347 %22384 %184305 %22435 %184305 %22486 %260352 %22537 %184305 %22588 %260355 %22639 %184305 %22690 %184305 %22718 %260359 %22746 %184305 %22774 %184305 %22825 %260363 %22876 %184305 %22927 %184305 %22955 %184305 %22983 %184305 %23011 %184305 %23039 %184305 %23067 %184305 %23095 %184305 %23123 %184305 %23151 %184305 %23179 %184305 %23207 %184305 %23235 %184305 %23263 %184305 %23291 %184305 %23319 %184305 %23347 %184305 %23375 %184305 %23403 %184305 %23431 %184305 %23459 %184305 %23487 %184305 %23515 %184305 %23543 %184305 %23571 %184305 %23599 %184305 %23627 %184305 %23678 %184305 %23729 %184305 %23803 %184305 %23831 %184305 %23859 %184305 %23887 %184305 %23915 %184305 %23943 %184305 %23971 %184305 %23999 %184305 %24027 %184305 %24055 %184305 %24083 %184305 %24111 %184305 %24139 %184305 %24167 %184305 %24195 %184305 %24223 %184305 %24251 %184305 %24279 %184305 %24307 %184305 %24335 %184305 %24363 %184305 %24391 %184305 %24419 %184305 %24447 %184305 %24475 %184305 %24503 %184305 %24554 %184305 %24605 %184305 %24679 %260432 %24707 %260433 %24735 %260434 %24763 %260435 %24791 %260436 %24819 %260437 %24847 %260438 %24875 %260439 %24903 %260440 %24931 %260441 %24959 %260442 %24987 %260443 %25015 %260444 %25043 %260445 %25071 %260446 %25099 %260447 %25127 %260448 %25155 %260449 %25183 %260450 %25211 %260451 %25239 %260452 %25267 %260453 %25295 %260454 %25323 %260455 %25351 %260456 %25379 %260457 %25430 %260458 %25481 %260459 %25555 %184305 %25583 %184305 %25611 %184305 %25639 %184305 %25667 %184305 %25695 %184305 %25723 %184305 %25751 %184305 %25779 %184305 %25807 %184305 %25835 %184305 %25863 %184305 %25891 %184305 %25919 %184305 %25947 %184305 %25975 %184305 %26003 %184305 %26031 %184305 %26059 %184305 %26087 %184305 %26115 %184305 %26143 %184305 %26171 %184305 %26199 %184305 %26227 %184305 %26255 %184305 %26306 %184305 %26357 %184305 %26431 %184305 %26505 %184305 %26579 %184305 %26653 %184305 %26727 %184305 %26801 %184305 %26875 %260510 %26949 %260511 %27023 %260514 %27097 %260516 %27171 %184305 %27245 %184305 %27319 %184305 %27393 %184305 %27467 %184305 %27495 %260530 %27523 %184305 %27551 %184305 %27602 %184305 %27676 %184305 %27727 %184305 %27824 %184305 %27898 %260547 %27949 %184305 %28000 %184305 %28028 %184305 %28071 %184305 %28104 %184305 %28142 %184305 %28185 %184305 %28213 %260556 %28246 %184305 %28284 %184305 %19530 %184305 %28355 %184305 %28383 %184305 %28411 %260564 %28439 %260565 %28467 %184305 %28495 %184305 %28523 %184305 %28580 %184305 %28637 %184305 %19911 %184305 %19927 %184305 %19943 %184305 %19959 %184305 %19965 %184305 %19971 %184305 %19977 %184305 %19983 %184305 %19986 %184305 %19996 %184305 %20013 %184305 %20037 %184305 %20053 %184305 %20069 %184305 %20085 %184305 %20091 %184305 %20097 %184305 %20103 %184305 %20109 %184305 %20112 %184305 %20122 %184305 %20139 %184305 %20163 %184305 %20179 %184305 %20195 %184305 %20211 %184305 %20217 %184305 %20223 %184305 %20229 %184305 %20235 %184305 %20238 %184305 %20248 %184305 %20265 %184305 %20289 %184305 %20305 %184305 %20321 %184305 %20337 %184305 %20343 %184305 %20349 %184305 %20355 %184305 %20361 %184305 %20364 %184305 %20374 %184305 %20391 %260574 %28768 %184305 %20463
-     %260042 = OpPhi %uint %184302 %20548 %184302 %20599 %184302 %20650 %20705 %20701 %20756 %20752 %184302 %20803 %184302 %20854 %184302 %20905 %184302 %20956 %184302 %21007 %21062 %21058 %21113 %21109 %184302 %21160 %184302 %21211 %184302 %21262 %184302 %21313 %184302 %21364 %21419 %21415 %21470 %21466 %184302 %21517 %184302 %21568 %184302 %21619 %184302 %21670 %184302 %21721 %21776 %21772 %21827 %21823 %184302 %21874 %184302 %21925 %184302 %21976 %184302 %22027 %22082 %22078 %184302 %22129 %184302 %22180 %184302 %22231 %184302 %22282 %22337 %22333 %22388 %22384 %184302 %22435 %184302 %22486 %22541 %22537 %184302 %22588 %260101 %22639 %184302 %22690 %184302 %22718 %260105 %22746 %184302 %22774 %184302 %22825 %260109 %22876 %184302 %22927 %184302 %22955 %184302 %22983 %184302 %23011 %184302 %23039 %184302 %23067 %184302 %23095 %184302 %23123 %184302 %23151 %184302 %23179 %184302 %23207 %184302 %23235 %184302 %23263 %184302 %23291 %184302 %23319 %184302 %23347 %184302 %23375 %184302 %23403 %184302 %23431 %184302 %23459 %184302 %23487 %184302 %23515 %184302 %23543 %184302 %23571 %184302 %23599 %184302 %23627 %184302 %23678 %184302 %23729 %184302 %23803 %184302 %23831 %184302 %23859 %184302 %23887 %184302 %23915 %184302 %23943 %184302 %23971 %184302 %23999 %184302 %24027 %184302 %24055 %184302 %24083 %184302 %24111 %184302 %24139 %184302 %24167 %184302 %24195 %184302 %24223 %184302 %24251 %184302 %24279 %184302 %24307 %184302 %24335 %184302 %24363 %184302 %24391 %184302 %24419 %184302 %24447 %184302 %24475 %184302 %24503 %184302 %24554 %184302 %24605 %184302 %24679 %24711 %24707 %24739 %24735 %24767 %24763 %24795 %24791 %24823 %24819 %24851 %24847 %24879 %24875 %24907 %24903 %24935 %24931 %24963 %24959 %24991 %24987 %25019 %25015 %25047 %25043 %25075 %25071 %25103 %25099 %25131 %25127 %25159 %25155 %25187 %25183 %25215 %25211 %25243 %25239 %25271 %25267 %25299 %25295 %25327 %25323 %25355 %25351 %25383 %25379 %25434 %25430 %25485 %25481 %25559 %25555 %184302 %25583 %184302 %25611 %184302 %25639 %184302 %25667 %184302 %25695 %184302 %25723 %184302 %25751 %184302 %25779 %184302 %25807 %184302 %25835 %184302 %25863 %184302 %25891 %184302 %25919 %184302 %25947 %184302 %25975 %184302 %26003 %184302 %26031 %184302 %26059 %184302 %26087 %184302 %26115 %184302 %26143 %184302 %26171 %184302 %26199 %184302 %26227 %184302 %26255 %184302 %26306 %184302 %26357 %184302 %26431 %184302 %26505 %184302 %26579 %184302 %26653 %184302 %26727 %184302 %26801 %184302 %26875 %26953 %26949 %27027 %27023 %27101 %27097 %27175 %27171 %184302 %27245 %184302 %27319 %184302 %27393 %184302 %27467 %184302 %27495 %27527 %27523 %184302 %27551 %184302 %27602 %27680 %27676 %27731 %27727 %184302 %27824 %184302 %27898 %260252 %27949 %184302 %28000 %184302 %28028 %184302 %28071 %28118 %28104 %184302 %28142 %184302 %28185 %184302 %28213 %260260 %28246 %184302 %28284 %184302 %19530 %184302 %28355 %184302 %28383 %184302 %28411 %28443 %28439 %28471 %28467 %184302 %28495 %184302 %28523 %184302 %28580 %184302 %28637 %184302 %19911 %184302 %19927 %184302 %19943 %184302 %19959 %184302 %19965 %184302 %19971 %184302 %19977 %184302 %19983 %184302 %19986 %184302 %19996 %184302 %20013 %184302 %20037 %184302 %20053 %184302 %20069 %184302 %20085 %184302 %20091 %184302 %20097 %184302 %20103 %184302 %20109 %184302 %20112 %184302 %20122 %184302 %20139 %184302 %20163 %184302 %20179 %184302 %20195 %28686 %20211 %28691 %20217 %28696 %20223 %28701 %20229 %20237 %20235 %20247 %20238 %20264 %20248 %20288 %20265 %184302 %20289 %184302 %20305 %184302 %20321 %184302 %20337 %184302 %20343 %184302 %20349 %184302 %20355 %184302 %20361 %184302 %20364 %184302 %20374 %184302 %20391 %260276 %28768 %184302 %20463
-     %186525 = OpPhi %uint %186526 %20548 %184294 %20599 %186529 %20650 %184294 %20701 %186532 %20752 %184294 %20803 %186535 %20854 %186536 %20905 %184294 %20956 %186539 %21007 %184294 %21058 %186542 %21109 %184294 %21160 %186545 %21211 %186546 %21262 %184294 %21313 %186549 %21364 %184294 %21415 %186552 %21466 %184294 %21517 %186555 %21568 %186556 %21619 %184294 %21670 %186559 %21721 %184294 %21772 %186562 %21823 %184294 %21874 %186565 %21925 %186566 %21976 %184294 %22027 %184294 %22078 %184294 %22129 %186573 %22180 %184294 %22231 %186576 %22282 %184294 %22333 %186579 %22384 %184294 %22435 %186582 %22486 %184294 %22537 %184294 %22588 %184294 %22639 %184294 %22690 %184294 %22718 %184294 %22746 %184294 %22774 %184294 %22825 %184294 %22876 %184294 %22927 %186600 %22955 %186601 %22983 %186602 %23011 %186603 %23039 %186604 %23067 %186605 %23095 %186606 %23123 %186607 %23151 %186608 %23179 %186609 %23207 %186610 %23235 %186611 %23263 %186612 %23291 %186613 %23319 %186614 %23347 %186615 %23375 %186616 %23403 %186617 %23431 %186618 %23459 %186619 %23487 %186620 %23515 %186621 %23543 %186622 %23571 %186623 %23599 %186624 %23627 %186625 %23678 %186626 %23729 %186627 %23803 %184294 %23831 %184294 %23859 %184294 %23887 %184294 %23915 %184294 %23943 %184294 %23971 %184294 %23999 %184294 %24027 %184294 %24055 %184294 %24083 %184294 %24111 %184294 %24139 %184294 %24167 %184294 %24195 %184294 %24223 %184294 %24251 %184294 %24279 %184294 %24307 %184294 %24335 %184294 %24363 %184294 %24391 %184294 %24419 %184294 %24447 %184294 %24475 %184294 %24503 %184294 %24554 %184294 %24605 %184294 %24679 %184294 %24707 %184294 %24735 %184294 %24763 %184294 %24791 %184294 %24819 %184294 %24847 %184294 %24875 %184294 %24903 %184294 %24931 %184294 %24959 %184294 %24987 %184294 %25015 %184294 %25043 %184294 %25071 %184294 %25099 %184294 %25127 %184294 %25155 %184294 %25183 %184294 %25211 %184294 %25239 %184294 %25267 %184294 %25295 %184294 %25323 %184294 %25351 %184294 %25379 %184294 %25430 %184294 %25481 %184294 %25555 %184294 %25583 %184294 %25611 %184294 %25639 %184294 %25667 %184294 %25695 %184294 %25723 %184294 %25751 %184294 %25779 %184294 %25807 %184294 %25835 %184294 %25863 %184294 %25891 %184294 %25919 %184294 %25947 %184294 %25975 %184294 %26003 %184294 %26031 %184294 %26059 %184294 %26087 %184294 %26115 %184294 %26143 %184294 %26171 %184294 %26199 %184294 %26227 %184294 %26255 %184294 %26306 %184294 %26357 %184294 %26431 %186724 %26505 %186725 %26579 %184294 %26653 %184294 %26727 %186732 %26801 %186733 %26875 %184294 %26949 %184294 %27023 %186740 %27097 %186741 %27171 %184294 %27245 %184294 %27319 %186748 %27393 %186749 %27467 %184294 %27495 %184294 %27523 %184294 %27551 %186753 %27602 %186754 %27676 %186755 %27727 %186756 %27824 %186757 %27898 %186758 %27949 %184294 %28000 %184294 %28028 %184294 %28071 %184294 %28104 %184294 %28142 %184294 %28185 %184294 %28213 %184294 %28246 %184294 %28284 %186771 %19530 %186772 %28355 %184294 %28383 %184294 %28411 %184294 %28439 %184294 %28467 %184294 %28495 %184294 %28523 %186779 %28580 %186780 %28637 %184294 %19911 %184294 %19927 %184294 %19943 %184294 %19959 %184294 %19965 %184294 %19971 %184294 %19977 %184294 %19983 %184294 %19986 %184294 %19996 %184294 %20013 %184294 %20037 %184294 %20053 %184294 %20069 %184294 %20085 %184294 %20091 %184294 %20097 %184294 %20103 %184294 %20109 %184294 %20112 %184294 %20122 %184294 %20139 %184294 %20163 %184294 %20179 %184294 %20195 %184294 %20211 %184294 %20217 %184294 %20223 %184294 %20229 %184294 %20235 %184294 %20238 %184294 %20248 %184294 %20265 %184294 %20289 %184294 %20305 %184294 %20321 %184294 %20337 %184294 %20343 %184294 %20349 %184294 %20355 %184294 %20361 %184294 %20364 %184294 %20374 %184294 %20391 %186782 %28768 %184294 %20463
-     %186329 = OpPhi %uint %20552 %20548 %184292 %20599 %186332 %20650 %184292 %20701 %186335 %20752 %184292 %20803 %186338 %20854 %20909 %20905 %184292 %20956 %186341 %21007 %184292 %21058 %186344 %21109 %184292 %21160 %186347 %21211 %21266 %21262 %184292 %21313 %186350 %21364 %184292 %21415 %186353 %21466 %184292 %21517 %186356 %21568 %21623 %21619 %184292 %21670 %186359 %21721 %184292 %21772 %186362 %21823 %184292 %21874 %186365 %21925 %21980 %21976 %184292 %22027 %184292 %22078 %184292 %22129 %22184 %22180 %184292 %22231 %186374 %22282 %184292 %22333 %186377 %22384 %184292 %22435 %186380 %22486 %184292 %22537 %22592 %22588 %22643 %22639 %22694 %22690 %22722 %22718 %22750 %22746 %22778 %22774 %22829 %22825 %22880 %22876 %22931 %22927 %22959 %22955 %22987 %22983 %23015 %23011 %23043 %23039 %23071 %23067 %23099 %23095 %23127 %23123 %23155 %23151 %23183 %23179 %23211 %23207 %23239 %23235 %23267 %23263 %23295 %23291 %23323 %23319 %23351 %23347 %23379 %23375 %23407 %23403 %23435 %23431 %23463 %23459 %23491 %23487 %23519 %23515 %23547 %23543 %23575 %23571 %23603 %23599 %23631 %23627 %23682 %23678 %23733 %23729 %23807 %23803 %184292 %23831 %184292 %23859 %184292 %23887 %184292 %23915 %184292 %23943 %184292 %23971 %184292 %23999 %184292 %24027 %184292 %24055 %184292 %24083 %184292 %24111 %184292 %24139 %184292 %24167 %184292 %24195 %184292 %24223 %184292 %24251 %184292 %24279 %184292 %24307 %184292 %24335 %184292 %24363 %184292 %24391 %184292 %24419 %184292 %24447 %184292 %24475 %184292 %24503 %184292 %24554 %184292 %24605 %184292 %24679 %184292 %24707 %184292 %24735 %184292 %24763 %184292 %24791 %184292 %24819 %184292 %24847 %184292 %24875 %184292 %24903 %184292 %24931 %184292 %24959 %184292 %24987 %184292 %25015 %184292 %25043 %184292 %25071 %184292 %25099 %184292 %25127 %184292 %25155 %184292 %25183 %184292 %25211 %184292 %25239 %184292 %25267 %184292 %25295 %184292 %25323 %184292 %25351 %184292 %25379 %184292 %25430 %184292 %25481 %184292 %25555 %184292 %25583 %184292 %25611 %184292 %25639 %184292 %25667 %184292 %25695 %184292 %25723 %184292 %25751 %184292 %25779 %184292 %25807 %184292 %25835 %184292 %25863 %184292 %25891 %184292 %25919 %184292 %25947 %184292 %25975 %184292 %26003 %184292 %26031 %184292 %26059 %184292 %26087 %184292 %26115 %184292 %26143 %184292 %26171 %184292 %26199 %184292 %26227 %184292 %26255 %184292 %26306 %184292 %26357 %184292 %26431 %26509 %26505 %26583 %26579 %184292 %26653 %184292 %26727 %186485 %26801 %186486 %26875 %184292 %26949 %184292 %27023 %186493 %27097 %186494 %27171 %184292 %27245 %184292 %27319 %186501 %27393 %186502 %27467 %184292 %27495 %184292 %27523 %184292 %27551 %186506 %27602 %186507 %27676 %186508 %27727 %186509 %27824 %186510 %27898 %186511 %27949 %184292 %28000 %28047 %28028 %184292 %28071 %184292 %28104 %184292 %28142 %184292 %28185 %28222 %28213 %28260 %28246 %28303 %28284 %28331 %19530 %28359 %28355 %184292 %28383 %184292 %28411 %184292 %28439 %184292 %28467 %184292 %28495 %184292 %28523 %28584 %28580 %28641 %28637 %184292 %19911 %184292 %19927 %184292 %19943 %28646 %19959 %28651 %19965 %28656 %19971 %28661 %19977 %19985 %19983 %19995 %19986 %20012 %19996 %20036 %20013 %184292 %20037 %184292 %20053 %184292 %20069 %184292 %20085 %184292 %20091 %184292 %20097 %184292 %20103 %184292 %20109 %184292 %20112 %184292 %20122 %184292 %20139 %184292 %20163 %184292 %20179 %184292 %20195 %184292 %20211 %184292 %20217 %184292 %20223 %184292 %20229 %184292 %20235 %184292 %20238 %184292 %20248 %184292 %20265 %184292 %20289 %184292 %20305 %184292 %20321 %184292 %20337 %184292 %20343 %184292 %20349 %184292 %20355 %184292 %20361 %184292 %20364 %184292 %20374 %184292 %20391 %28772 %28768 %184292 %20463
-               OpBranch %20472
-      %20472 = OpLabel
-     %264519 = OpPhi %uint %184417 %12041 %264520 %20471
-     %264202 = OpPhi %uint %184415 %12041 %264203 %20471
-     %263885 = OpPhi %uint %184410 %12041 %263886 %20471
-     %263568 = OpPhi %uint %184408 %12041 %263569 %20471
-     %263251 = OpPhi %uint %184403 %12041 %263252 %20471
-     %262934 = OpPhi %uint %184401 %12041 %262935 %20471
-     %261993 = OpPhi %uint %184363 %12041 %261994 %20471
-     %261051 = OpPhi %uint %184337 %12041 %261052 %20471
-     %260809 = OpPhi %uint %184313 %12041 %260810 %20471
-     %260576 = OpPhi %uint %184311 %12041 %260577 %20471
-     %260278 = OpPhi %uint %184305 %12041 %260279 %20471
-     %260041 = OpPhi %uint %184302 %12041 %260042 %20471
-     %186524 = OpPhi %uint %184294 %12041 %186525 %20471
-     %186328 = OpPhi %uint %184292 %12041 %186329 %20471
-      %20474 = OpIAdd %uint %184287 %int_1
-      %20476 = OpIEqual %bool %20474 %uint_8
-               OpSelectionMerge %20490 None
-               OpBranchConditional %20476 %20477 %20490
-      %20477 = OpLabel
-      %20479 = OpIAdd %uint %184288 %int_1
-      %20481 = OpIEqual %bool %20479 %uint_13
-               OpSelectionMerge %20489 None
-               OpBranchConditional %20481 %20482 %20489
-      %20482 = OpLabel
-      %20484 = OpAccessChain %_ptr_Function_uint %10897 %uint_0
-      %20485 = OpLoad %uint %20484
-      %20486 = OpBitwiseAnd %uint %20485 %uint_32768
-      %20487 = OpUGreaterThan %bool %20486 %uint_0
-               OpSelectionMerge %28819 None
-               OpSwitch %uint_0 %28803
-      %28803 = OpLabel
-               OpSelectionMerge %28818 None
-               OpBranchConditional %20487 %28805 %28813
-      %28813 = OpLabel
-      %28815 = OpISub %uint %186328 %int_1
-      %28816 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %28815
-      %28817 = OpLoad %_arr_float_uint_2 %28816
-     %120107 = OpCompositeExtract %float %28817 0
-               OpBranch %28819
-      %28805 = OpLabel
-      %28808 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %186524
-      %28809 = OpLoad %float %28808
-               OpBranch %28819
-      %28818 = OpLabel
-               OpUnreachable
-      %28819 = OpLabel
-     %186784 = OpPhi %float %28809 %28805 %120107 %28813
-               OpBranch %20492
-      %20489 = OpLabel
-               OpBranch %20490
-      %20490 = OpLabel
-     %260037 = OpPhi %uint %184288 %20472 %20479 %20489
-     %270609 = OpSelect %uint %20476 %uint_0 %20474
-               OpBranch %20491
-      %20491 = OpLabel
-               OpBranch %11996
-      %20492 = OpLabel
-     %187106 = OpPhi %float %float_0 %12056 %184296 %28796 %186784 %28819
-      %10867 = OpCompositeExtract %float %126020 0
-      %10868 = OpExtInst %float %1 Fma %187106 %float_0_899999976 %10867
-     %270608 = OpCompositeConstruct %v2float %10868 %187106
-      %10874 = OpVectorTimesScalar %v3float %10486 %10868
-      %10875 = OpFAdd %v3float %10466 %10874
-               OpBranch %10876
-      %10876 = OpLabel
-      %10878 = OpIAdd %int %126019 %int_1
-               OpBranch %10842
-      %10879 = OpLabel
-      %28833 = OpCompositeExtract %float %126025 0
-      %28834 = OpFAdd %float %28833 %float_9_99999975en05
-      %28836 = OpCompositeExtract %float %126025 1
-      %28838 = OpCompositeExtract %float %126025 2
-      %28839 = OpCompositeConstruct %v3float %28834 %28836 %28838
-      %28873 = OpCompositeConstruct %_arr_v3float_uint_2 %28839 %28839
-      %29977 = OpAccessChain %_ptr_StorageBuffer__struct_446 %450 %int_0 %int_1
-      %29978 = OpLoad %_struct_446 %29977
-      %29979 = OpCopyLogical %_struct_443 %29978
-     %117917 = OpCompositeExtract %uint %29979 0
-      %38490 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %uint_0
-               OpStore %38490 %28873
-               OpBranch %29983
-      %29983 = OpLabel
-     %126160 = OpPhi %uint %uint_0 %10879 %193841 %38478
-     %126158 = OpPhi %uint %uint_0 %10879 %193524 %38478
-     %126153 = OpPhi %uint %uint_0 %10879 %193206 %38478
-     %126151 = OpPhi %uint %uint_0 %10879 %192889 %38478
-     %126146 = OpPhi %uint %uint_0 %10879 %192571 %38478
-     %126144 = OpPhi %uint %uint_0 %10879 %192254 %38478
-     %126104 = OpPhi %uint %uint_0 %10879 %190675 %38478
-     %126076 = OpPhi %uint %uint_0 %10879 %189095 %38478
-     %126052 = OpPhi %uint %uint_0 %10879 %188853 %38478
-     %126050 = OpPhi %uint %uint_0 %10879 %188620 %38478
-     %126044 = OpPhi %uint %uint_0 %10879 %188322 %38478
-     %126041 = OpPhi %uint %uint_1 %10879 %188085 %38478
-     %126033 = OpPhi %uint %uint_0 %10879 %128267 %38478
-     %126031 = OpPhi %uint %uint_0 %10879 %128071 %38478
-     %126027 = OpPhi %uint %uint_0 %10879 %188080 %38478
-     %126026 = OpPhi %uint %uint_0 %10879 %270610 %38478
-               OpLoopMerge %38479 %38478 None
-               OpBranch %29986
-      %29986 = OpLabel
-      %29988 = OpIEqual %bool %126026 %uint_0
-               OpSelectionMerge %30028 None
-               OpBranchConditional %29988 %29989 %30028
-      %29989 = OpLabel
-      %29993 = OpIAdd %uint %126027 %117917
-      %29994 = OpAccessChain %_ptr_StorageBuffer_v4uint %477 %int_0 %29993
-      %29995 = OpLoad %v4uint %29994
-      %29997 = OpCompositeExtract %uint %29995 0
-      %29998 = OpBitwiseAnd %uint %29997 %uint_65535
-      %29999 = OpAccessChain %_ptr_Function_uint %28884 %int_0
-               OpStore %29999 %29998
-      %30002 = OpShiftRightLogical %uint %29997 %int_16
-      %30003 = OpAccessChain %_ptr_Function_uint %28884 %int_1
-               OpStore %30003 %30002
-      %30005 = OpCompositeExtract %uint %29995 1
-      %30006 = OpBitwiseAnd %uint %30005 %uint_65535
-      %30007 = OpAccessChain %_ptr_Function_uint %28884 %int_2
-               OpStore %30007 %30006
-      %30010 = OpShiftRightLogical %uint %30005 %int_16
-      %30011 = OpAccessChain %_ptr_Function_uint %28884 %int_3
-               OpStore %30011 %30010
-      %30013 = OpCompositeExtract %uint %29995 2
-      %30014 = OpBitwiseAnd %uint %30013 %uint_65535
-      %30015 = OpAccessChain %_ptr_Function_uint %28884 %int_4
-               OpStore %30015 %30014
-      %30018 = OpShiftRightLogical %uint %30013 %int_16
-      %30019 = OpAccessChain %_ptr_Function_uint %28884 %int_5
-               OpStore %30019 %30018
-      %30021 = OpCompositeExtract %uint %29995 3
-      %30022 = OpBitwiseAnd %uint %30021 %uint_65535
-      %30023 = OpAccessChain %_ptr_Function_uint %28884 %int_6
-               OpStore %30023 %30022
-      %30026 = OpShiftRightLogical %uint %30021 %int_16
-      %30027 = OpAccessChain %_ptr_Function_uint %28884 %int_7
-               OpStore %30027 %30026
-               OpBranch %30028
-      %30028 = OpLabel
-      %30030 = OpAccessChain %_ptr_Function_uchar %437 %126027
-      %30031 = OpLoad %uchar %30030
-      %30032 = OpUConvert %uint %30031
-      %30033 = OpBitcast %int %30032
-      %30035 = OpShiftLeftLogical %int %int_1 %126026
-      %30036 = OpBitwiseAnd %int %30033 %30035
-      %30037 = OpSGreaterThan %bool %30036 %int_0
-               OpSelectionMerge %38459 None
-               OpBranchConditional %30037 %30038 %38459
-      %30038 = OpLabel
-      %30040 = OpAccessChain %_ptr_Function_uint %28884 %126026
-      %30041 = OpLoad %uint %30040
-      %30042 = OpBitwiseAnd %uint %30041 %uint_1023
-               OpSelectionMerge %38458 None
-               OpSwitch %30042 %30043 2 %30044 3 %30071 4 %30098 5 %30127 6 %30154 7 %30183 8 %30210 9 %30239 10 %30266 11 %30293 12 %30322 13 %30349 14 %30378 15 %30405 16 %30434 17 %30497 18 %30560 19 %30623 20 %30686 21 %30749 22 %30812 23 %30875 24 %30938 25 %31001 26 %31068 27 %31131 28 %31198 29 %31261 37 %31328 38 %31391 39 %31454 40 %31517 30 %31580 31 %31643 32 %31706 33 %31773 34 %31836 35 %31903 36 %31966 41 %32033 42 %32082 43 %32133 44 %32184 45 %32235 46 %32275 47 %32315 48 %32355 49 %32419 50 %32465 54 %32529 55 %32558 56 %32587 57 %32616 58 %32645 59 %32674 60 %32703 61 %32732 62 %32761 63 %32790 64 %32819 65 %32848 66 %32877 67 %32906 68 %32935 69 %32964 70 %32993 195 %33022 199 %33051 203 %33080 207 %33109 211 %33138 215 %33167 223 %33196 227 %33225 75 %33254 71 %33254 76 %33281 72 %33281 219 %33308 90 %33390 91 %33419 92 %33448 93 %33477 94 %33506 95 %33535 96 %33564 97 %33593 98 %33622 99 %33651 100 %33680 101 %33709 102 %33738 103 %33767 104 %33796 105 %33825 106 %33854 196 %33883 200 %33912 204 %33941 208 %33970 212 %33999 216 %34028 224 %34057 228 %34086 107 %34115 108 %34142 220 %34169 120 %34251 121 %34280 122 %34309 123 %34338 124 %34367 125 %34396 126 %34425 127 %34454 128 %34483 129 %34512 130 %34541 131 %34570 132 %34599 133 %34628 134 %34657 135 %34686 136 %34715 197 %34744 201 %34773 205 %34802 209 %34831 213 %34860 217 %34889 225 %34918 229 %34947 137 %34976 138 %35003 221 %35030 150 %35112 151 %35141 152 %35170 153 %35199 154 %35228 155 %35257 156 %35286 157 %35315 158 %35344 159 %35373 160 %35402 161 %35431 162 %35460 163 %35489 164 %35518 165 %35547 166 %35576 198 %35605 202 %35634 206 %35663 210 %35692 214 %35721 218 %35750 226 %35779 230 %35808 167 %35837 168 %35864 222 %35891 231 %35973 238 %36010 232 %36047 239 %36084 233 %36121 240 %36162 234 %36201 241 %36238 235 %36275 242 %36316 236 %36355 243 %36392 237 %36429 244 %36470 51 %36509 52 %36621 53 %36793 180 %37041 181 %37066 183 %37101 182 %37130 184 %37175 186 %37214 185 %37245 190 %37278 191 %37309 192 %37328 193 %37353 194 %37384 187 %37411 188 %37430 189 %37455 245 %37486 246 %37532 247 %37559 248 %37605 249 %37632 250 %37678 251 %37705 252 %37751 77 %37778 73 %37778 78 %37838 74 %37838 79 %37898 80 %37914 81 %37930 82 %37946 83 %37952 84 %37958 85 %37964 86 %37970 87 %37973 88 %37983 89 %38000 109 %38024 110 %38040 111 %38056 112 %38072 113 %38078 114 %38084 115 %38090 116 %38096 117 %38099 118 %38109 119 %38126 139 %38150 140 %38166 141 %38182 142 %38198 143 %38204 144 %38210 145 %38216 146 %38222 147 %38225 148 %38235 149 %38252 169 %38276 170 %38292 171 %38308 172 %38324 173 %38330 174 %38336 175 %38342 176 %38348 177 %38351 178 %38361 179 %38378 253 %38402 0 %38450 1 %38451 254 %30043
-      %38451 = OpLabel
-      %38454 = OpLoad %uint %30040
-      %38455 = OpBitwiseAnd %uint %38454 %uint_32768
-      %38456 = OpUGreaterThan %bool %38455 %uint_0
-               OpSelectionMerge %46783 None
-               OpSwitch %uint_0 %46767
-      %46767 = OpLabel
-               OpSelectionMerge %46782 None
-               OpBranchConditional %38456 %46769 %46777
-      %46777 = OpLabel
-      %46779 = OpISub %uint %126031 %int_1
-      %46780 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46779
-      %46781 = OpLoad %_arr_float_uint_2 %46780
-     %115267 = OpCompositeExtract %float %46781 0
-               OpBranch %46783
-      %46769 = OpLabel
-      %46772 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %46773 = OpLoad %float %46772
-               OpBranch %46783
-      %46782 = OpLabel
-               OpUnreachable
-      %46783 = OpLabel
-     %126035 = OpPhi %float %46773 %46769 %115267 %46777
-               OpBranch %38479
-      %38450 = OpLabel
-               OpBranch %38458
-      %38402 = OpLabel
-      %38405 = OpLoad %uint %30040
-      %38406 = OpBitwiseAnd %uint %38405 %uint_32768
-      %38407 = OpUGreaterThan %bool %38406 %uint_0
-               OpSelectionMerge %46732 None
-               OpSwitch %uint_0 %46716
-      %46716 = OpLabel
-               OpSelectionMerge %46731 None
-               OpBranchConditional %38407 %46718 %46726
-      %46726 = OpLabel
-      %46728 = OpISub %uint %126031 %int_1
-      %46729 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46728
-      %46730 = OpLoad %_arr_float_uint_2 %46729
-     %115285 = OpCompositeExtract %float %46730 0
-     %115286 = OpCompositeExtract %float %46730 1
-               OpBranch %46732
-      %46718 = OpLabel
-      %46720 = OpIAdd %uint %126033 %int_1
-      %46721 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %46722 = OpLoad %float %46721
-               OpBranch %46732
-      %46731 = OpLabel
-               OpUnreachable
-      %46732 = OpLabel
-     %128525 = OpPhi %uint %46720 %46718 %126033 %46726
-     %126048 = OpPhi %uint %126031 %46718 %46728 %46726
-     %126037 = OpPhi %float %46722 %46718 %115285 %46726
-     %126036 = OpPhi %float %46722 %46718 %115286 %46726
-      %38411 = OpLoad %uint %30040
-      %38412 = OpBitwiseAnd %uint %38411 %uint_16384
-      %38413 = OpUGreaterThan %bool %38412 %uint_0
-               OpSelectionMerge %46755 None
-               OpSwitch %uint_0 %46739
-      %46739 = OpLabel
-               OpSelectionMerge %46754 None
-               OpBranchConditional %38413 %46741 %46749
-      %46749 = OpLabel
-      %46751 = OpISub %uint %126041 %int_1
-      %46752 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %46751
-      %46753 = OpLoad %_arr_v3float_uint_2 %46752
-     %115276 = OpCompositeExtract %v3float %46753 0
-     %115277 = OpCompositeExtract %v3float %46753 1
-               OpBranch %46755
-      %46741 = OpLabel
-      %46743 = OpIAdd %uint %126044 %int_1
-      %46744 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %46745 = OpLoad %v3float %46744
-               OpBranch %46755
-      %46754 = OpLabel
-               OpUnreachable
-      %46755 = OpLabel
-     %188618 = OpPhi %uint %46743 %46741 %126044 %46749
-     %188320 = OpPhi %uint %126041 %46741 %46751 %46749
-     %126046 = OpPhi %v3float %46745 %46741 %115276 %46749
-     %126045 = OpPhi %v3float %46745 %46741 %115277 %46749
-      %38417 = OpFOrdGreaterThan %v3bool %126045 %123
-      %38420 = OpFOrdLessThan %v3bool %126046 %123
-      %38421 = OpSelect %v3bool %38420 %38417 %3323
-      %38424 = OpExtInst %v3float %1 FAbs %126046
-      %38427 = OpExtInst %v3float %1 FAbs %126045
-      %38428 = OpExtInst %v3float %1 FMin %38424 %38427
-      %38430 = OpSelect %v3float %38421 %123 %38428
-      %38431 = OpExtInst %float %1 Length %38430
-      %38434 = OpFSub %float %38431 %126036
-      %38442 = OpExtInst %v3float %1 FMax %38424 %38427
-      %38443 = OpExtInst %float %1 Length %38442
-      %38446 = OpFSub %float %38443 %126037
-     %120102 = OpCompositeConstruct %_arr_float_uint_2 %38434 %38446
-      %46759 = OpIAdd %uint %126048 %int_1
-      %46761 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126048
-               OpStore %46761 %120102
-               OpBranch %38458
-      %38378 = OpLabel
-      %38380 = OpISub %uint %126050 %uint_4
-      %38382 = OpISub %uint %126050 %uint_3
-      %38383 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38382
-      %38384 = OpLoad %_arr_v4float_uint_2 %38383
-      %38385 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38380
-               OpStore %38385 %38384
-      %38389 = OpISub %uint %126050 %uint_2
-      %38390 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38389
-      %38391 = OpLoad %_arr_v4float_uint_2 %38390
-               OpStore %38383 %38391
-      %38396 = OpISub %uint %126050 %uint_1
-      %38397 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38396
-      %38398 = OpLoad %_arr_v4float_uint_2 %38397
-               OpStore %38390 %38398
-      %38401 = OpISub %uint %126050 %int_1
-               OpBranch %38458
-      %38361 = OpLabel
-      %38363 = OpISub %uint %126050 %uint_3
-      %38365 = OpISub %uint %126050 %uint_2
-      %38366 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38365
-      %38367 = OpLoad %_arr_v4float_uint_2 %38366
-      %38368 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38363
-               OpStore %38368 %38367
-      %38372 = OpISub %uint %126050 %uint_1
-      %38373 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38372
-      %38374 = OpLoad %_arr_v4float_uint_2 %38373
-               OpStore %38366 %38374
-      %38377 = OpISub %uint %126050 %int_1
-               OpBranch %38458
-      %38351 = OpLabel
-      %38353 = OpISub %uint %126050 %uint_2
-      %38355 = OpISub %uint %126050 %uint_1
-      %38356 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38355
-      %38357 = OpLoad %_arr_v4float_uint_2 %38356
-      %38358 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38353
-               OpStore %38358 %38357
-      %38360 = OpISub %uint %126050 %int_1
-               OpBranch %38458
-      %38348 = OpLabel
-      %38350 = OpISub %uint %126050 %int_1
-               OpBranch %38458
-      %38342 = OpLabel
-      %38344 = OpISub %uint %126050 %uint_4
-      %38345 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38344
-      %38346 = OpLoad %_arr_v4float_uint_2 %38345
-      %46708 = OpIAdd %uint %126050 %int_1
-      %46710 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126050
-               OpStore %46710 %38346
-               OpBranch %38458
-      %38336 = OpLabel
-      %38338 = OpISub %uint %126050 %uint_3
-      %38339 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38338
-      %38340 = OpLoad %_arr_v4float_uint_2 %38339
-      %46703 = OpIAdd %uint %126050 %int_1
-      %46705 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126050
-               OpStore %46705 %38340
-               OpBranch %38458
-      %38330 = OpLabel
-      %38332 = OpISub %uint %126050 %uint_2
-      %38333 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38332
-      %38334 = OpLoad %_arr_v4float_uint_2 %38333
-      %46698 = OpIAdd %uint %126050 %int_1
-      %46700 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126050
-               OpStore %46700 %38334
-               OpBranch %38458
-      %38324 = OpLabel
-      %38326 = OpISub %uint %126050 %uint_1
-      %38327 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38326
-      %38328 = OpLoad %_arr_v4float_uint_2 %38327
-      %46693 = OpIAdd %uint %126050 %int_1
-      %46695 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126050
-               OpStore %46695 %38328
-               OpBranch %38458
-      %38308 = OpLabel
-      %38310 = OpISub %uint %126050 %uint_1
-      %38311 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38310
-      %38312 = OpLoad %_arr_v4float_uint_2 %38311
-      %38316 = OpISub %uint %126050 %uint_4
-      %38317 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38316
-      %38318 = OpLoad %_arr_v4float_uint_2 %38317
-               OpStore %38311 %38318
-               OpStore %38317 %38312
-               OpBranch %38458
-      %38292 = OpLabel
-      %38294 = OpISub %uint %126050 %uint_1
-      %38295 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38294
-      %38296 = OpLoad %_arr_v4float_uint_2 %38295
-      %38300 = OpISub %uint %126050 %uint_3
-      %38301 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38300
-      %38302 = OpLoad %_arr_v4float_uint_2 %38301
-               OpStore %38295 %38302
-               OpStore %38301 %38296
-               OpBranch %38458
-      %38276 = OpLabel
-      %38278 = OpISub %uint %126050 %uint_1
-      %38279 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38278
-      %38280 = OpLoad %_arr_v4float_uint_2 %38279
-      %38284 = OpISub %uint %126050 %uint_2
-      %38285 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38284
-      %38286 = OpLoad %_arr_v4float_uint_2 %38285
-               OpStore %38279 %38286
-               OpStore %38285 %38280
-               OpBranch %38458
-      %38252 = OpLabel
-      %38254 = OpISub %uint %126041 %uint_4
-      %38256 = OpISub %uint %126041 %uint_3
-      %38257 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38256
-      %38258 = OpLoad %_arr_v3float_uint_2 %38257
-      %38259 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38254
-               OpStore %38259 %38258
-      %38263 = OpISub %uint %126041 %uint_2
-      %38264 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38263
-      %38265 = OpLoad %_arr_v3float_uint_2 %38264
-               OpStore %38257 %38265
-      %38270 = OpISub %uint %126041 %uint_1
-      %38271 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38270
-      %38272 = OpLoad %_arr_v3float_uint_2 %38271
-               OpStore %38264 %38272
-      %38275 = OpISub %uint %126041 %int_1
-               OpBranch %38458
-      %38235 = OpLabel
-      %38237 = OpISub %uint %126041 %uint_3
-      %38239 = OpISub %uint %126041 %uint_2
-      %38240 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38239
-      %38241 = OpLoad %_arr_v3float_uint_2 %38240
-      %38242 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38237
-               OpStore %38242 %38241
-      %38246 = OpISub %uint %126041 %uint_1
-      %38247 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38246
-      %38248 = OpLoad %_arr_v3float_uint_2 %38247
-               OpStore %38240 %38248
-      %38251 = OpISub %uint %126041 %int_1
-               OpBranch %38458
-      %38225 = OpLabel
-      %38227 = OpISub %uint %126041 %uint_2
-      %38229 = OpISub %uint %126041 %uint_1
-      %38230 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38229
-      %38231 = OpLoad %_arr_v3float_uint_2 %38230
-      %38232 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38227
-               OpStore %38232 %38231
-      %38234 = OpISub %uint %126041 %int_1
-               OpBranch %38458
-      %38222 = OpLabel
-      %38224 = OpISub %uint %126041 %int_1
-               OpBranch %38458
-      %38216 = OpLabel
-      %38218 = OpISub %uint %126041 %uint_4
-      %38219 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38218
-      %38220 = OpLoad %_arr_v3float_uint_2 %38219
-      %46688 = OpIAdd %uint %126041 %int_1
-      %46690 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126041
-               OpStore %46690 %38220
-               OpBranch %38458
-      %38210 = OpLabel
-      %38212 = OpISub %uint %126041 %uint_3
-      %38213 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38212
-      %38214 = OpLoad %_arr_v3float_uint_2 %38213
-      %46683 = OpIAdd %uint %126041 %int_1
-      %46685 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126041
-               OpStore %46685 %38214
-               OpBranch %38458
-      %38204 = OpLabel
-      %38206 = OpISub %uint %126041 %uint_2
-      %38207 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38206
-      %38208 = OpLoad %_arr_v3float_uint_2 %38207
-      %46678 = OpIAdd %uint %126041 %int_1
-      %46680 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126041
-               OpStore %46680 %38208
-               OpBranch %38458
-      %38198 = OpLabel
-      %38200 = OpISub %uint %126041 %uint_1
-      %38201 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38200
-      %38202 = OpLoad %_arr_v3float_uint_2 %38201
-      %46673 = OpIAdd %uint %126041 %int_1
-      %46675 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126041
-               OpStore %46675 %38202
-               OpBranch %38458
-      %38182 = OpLabel
-      %38184 = OpISub %uint %126041 %uint_1
-      %38185 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38184
-      %38186 = OpLoad %_arr_v3float_uint_2 %38185
-      %38190 = OpISub %uint %126041 %uint_4
-      %38191 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38190
-      %38192 = OpLoad %_arr_v3float_uint_2 %38191
-               OpStore %38185 %38192
-               OpStore %38191 %38186
-               OpBranch %38458
-      %38166 = OpLabel
-      %38168 = OpISub %uint %126041 %uint_1
-      %38169 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38168
-      %38170 = OpLoad %_arr_v3float_uint_2 %38169
-      %38174 = OpISub %uint %126041 %uint_3
-      %38175 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38174
-      %38176 = OpLoad %_arr_v3float_uint_2 %38175
-               OpStore %38169 %38176
-               OpStore %38175 %38170
-               OpBranch %38458
-      %38150 = OpLabel
-      %38152 = OpISub %uint %126041 %uint_1
-      %38153 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38152
-      %38154 = OpLoad %_arr_v3float_uint_2 %38153
-      %38158 = OpISub %uint %126041 %uint_2
-      %38159 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38158
-      %38160 = OpLoad %_arr_v3float_uint_2 %38159
-               OpStore %38153 %38160
-               OpStore %38159 %38154
-               OpBranch %38458
-      %38126 = OpLabel
-      %38128 = OpISub %uint %126052 %uint_4
-      %38130 = OpISub %uint %126052 %uint_3
-      %38131 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38130
-      %38132 = OpLoad %_arr_v2float_uint_2 %38131
-      %38133 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38128
-               OpStore %38133 %38132
-      %38137 = OpISub %uint %126052 %uint_2
-      %38138 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38137
-      %38139 = OpLoad %_arr_v2float_uint_2 %38138
-               OpStore %38131 %38139
-      %38144 = OpISub %uint %126052 %uint_1
-      %38145 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38144
-      %38146 = OpLoad %_arr_v2float_uint_2 %38145
-               OpStore %38138 %38146
-      %38149 = OpISub %uint %126052 %int_1
-               OpBranch %38458
-      %38109 = OpLabel
-      %38111 = OpISub %uint %126052 %uint_3
-      %38113 = OpISub %uint %126052 %uint_2
-      %38114 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38113
-      %38115 = OpLoad %_arr_v2float_uint_2 %38114
-      %38116 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38111
-               OpStore %38116 %38115
-      %38120 = OpISub %uint %126052 %uint_1
-      %38121 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38120
-      %38122 = OpLoad %_arr_v2float_uint_2 %38121
-               OpStore %38114 %38122
-      %38125 = OpISub %uint %126052 %int_1
-               OpBranch %38458
-      %38099 = OpLabel
-      %38101 = OpISub %uint %126052 %uint_2
-      %38103 = OpISub %uint %126052 %uint_1
-      %38104 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38103
-      %38105 = OpLoad %_arr_v2float_uint_2 %38104
-      %38106 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38101
-               OpStore %38106 %38105
-      %38108 = OpISub %uint %126052 %int_1
-               OpBranch %38458
-      %38096 = OpLabel
-      %38098 = OpISub %uint %126052 %int_1
-               OpBranch %38458
-      %38090 = OpLabel
-      %38092 = OpISub %uint %126052 %uint_4
-      %38093 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38092
-      %38094 = OpLoad %_arr_v2float_uint_2 %38093
-      %46668 = OpIAdd %uint %126052 %int_1
-      %46670 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126052
-               OpStore %46670 %38094
-               OpBranch %38458
-      %38084 = OpLabel
-      %38086 = OpISub %uint %126052 %uint_3
-      %38087 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38086
-      %38088 = OpLoad %_arr_v2float_uint_2 %38087
-      %46663 = OpIAdd %uint %126052 %int_1
-      %46665 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126052
-               OpStore %46665 %38088
-               OpBranch %38458
-      %38078 = OpLabel
-      %38080 = OpISub %uint %126052 %uint_2
-      %38081 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38080
-      %38082 = OpLoad %_arr_v2float_uint_2 %38081
-      %46658 = OpIAdd %uint %126052 %int_1
-      %46660 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126052
-               OpStore %46660 %38082
-               OpBranch %38458
-      %38072 = OpLabel
-      %38074 = OpISub %uint %126052 %uint_1
-      %38075 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38074
-      %38076 = OpLoad %_arr_v2float_uint_2 %38075
-      %46653 = OpIAdd %uint %126052 %int_1
-      %46655 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126052
-               OpStore %46655 %38076
-               OpBranch %38458
-      %38056 = OpLabel
-      %38058 = OpISub %uint %126052 %uint_1
-      %38059 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38058
-      %38060 = OpLoad %_arr_v2float_uint_2 %38059
-      %38064 = OpISub %uint %126052 %uint_4
-      %38065 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38064
-      %38066 = OpLoad %_arr_v2float_uint_2 %38065
-               OpStore %38059 %38066
-               OpStore %38065 %38060
-               OpBranch %38458
-      %38040 = OpLabel
-      %38042 = OpISub %uint %126052 %uint_1
-      %38043 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38042
-      %38044 = OpLoad %_arr_v2float_uint_2 %38043
-      %38048 = OpISub %uint %126052 %uint_3
-      %38049 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38048
-      %38050 = OpLoad %_arr_v2float_uint_2 %38049
-               OpStore %38043 %38050
-               OpStore %38049 %38044
-               OpBranch %38458
-      %38024 = OpLabel
-      %38026 = OpISub %uint %126052 %uint_1
-      %38027 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38026
-      %38028 = OpLoad %_arr_v2float_uint_2 %38027
-      %38032 = OpISub %uint %126052 %uint_2
-      %38033 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38032
-      %38034 = OpLoad %_arr_v2float_uint_2 %38033
-               OpStore %38027 %38034
-               OpStore %38033 %38028
-               OpBranch %38458
-      %38000 = OpLabel
-      %38002 = OpISub %uint %126031 %uint_4
-      %38004 = OpISub %uint %126031 %uint_3
-      %38005 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %38004
-      %38006 = OpLoad %_arr_float_uint_2 %38005
-      %38007 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %38002
-               OpStore %38007 %38006
-      %38011 = OpISub %uint %126031 %uint_2
-      %38012 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %38011
-      %38013 = OpLoad %_arr_float_uint_2 %38012
-               OpStore %38005 %38013
-      %38018 = OpISub %uint %126031 %uint_1
-      %38019 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %38018
-      %38020 = OpLoad %_arr_float_uint_2 %38019
-               OpStore %38012 %38020
-      %38023 = OpISub %uint %126031 %int_1
-               OpBranch %38458
-      %37983 = OpLabel
-      %37985 = OpISub %uint %126031 %uint_3
-      %37987 = OpISub %uint %126031 %uint_2
-      %37988 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37987
-      %37989 = OpLoad %_arr_float_uint_2 %37988
-      %37990 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37985
-               OpStore %37990 %37989
-      %37994 = OpISub %uint %126031 %uint_1
-      %37995 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37994
-      %37996 = OpLoad %_arr_float_uint_2 %37995
-               OpStore %37988 %37996
-      %37999 = OpISub %uint %126031 %int_1
-               OpBranch %38458
-      %37973 = OpLabel
-      %37975 = OpISub %uint %126031 %uint_2
-      %37977 = OpISub %uint %126031 %uint_1
-      %37978 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37977
-      %37979 = OpLoad %_arr_float_uint_2 %37978
-      %37980 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37975
-               OpStore %37980 %37979
-      %37982 = OpISub %uint %126031 %int_1
-               OpBranch %38458
-      %37970 = OpLabel
-      %37972 = OpISub %uint %126031 %int_1
-               OpBranch %38458
-      %37964 = OpLabel
-      %37966 = OpISub %uint %126031 %uint_4
-      %37967 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37966
-      %37968 = OpLoad %_arr_float_uint_2 %37967
-      %46648 = OpIAdd %uint %126031 %int_1
-      %46650 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %46650 %37968
-               OpBranch %38458
-      %37958 = OpLabel
-      %37960 = OpISub %uint %126031 %uint_3
-      %37961 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37960
-      %37962 = OpLoad %_arr_float_uint_2 %37961
-      %46643 = OpIAdd %uint %126031 %int_1
-      %46645 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %46645 %37962
-               OpBranch %38458
-      %37952 = OpLabel
-      %37954 = OpISub %uint %126031 %uint_2
-      %37955 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37954
-      %37956 = OpLoad %_arr_float_uint_2 %37955
-      %46638 = OpIAdd %uint %126031 %int_1
-      %46640 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %46640 %37956
-               OpBranch %38458
-      %37946 = OpLabel
-      %37948 = OpISub %uint %126031 %uint_1
-      %37949 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37948
-      %37950 = OpLoad %_arr_float_uint_2 %37949
-      %46633 = OpIAdd %uint %126031 %int_1
-      %46635 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %46635 %37950
-               OpBranch %38458
-      %37930 = OpLabel
-      %37932 = OpISub %uint %126031 %uint_1
-      %37933 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37932
-      %37934 = OpLoad %_arr_float_uint_2 %37933
-      %37938 = OpISub %uint %126031 %uint_4
-      %37939 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37938
-      %37940 = OpLoad %_arr_float_uint_2 %37939
-               OpStore %37933 %37940
-               OpStore %37939 %37934
-               OpBranch %38458
-      %37914 = OpLabel
-      %37916 = OpISub %uint %126031 %uint_1
-      %37917 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37916
-      %37918 = OpLoad %_arr_float_uint_2 %37917
-      %37922 = OpISub %uint %126031 %uint_3
-      %37923 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37922
-      %37924 = OpLoad %_arr_float_uint_2 %37923
-               OpStore %37917 %37924
-               OpStore %37923 %37918
-               OpBranch %38458
-      %37898 = OpLabel
-      %37900 = OpISub %uint %126031 %uint_1
-      %37901 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37900
-      %37902 = OpLoad %_arr_float_uint_2 %37901
-      %37906 = OpISub %uint %126031 %uint_2
-      %37907 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %37906
-      %37908 = OpLoad %_arr_float_uint_2 %37907
-               OpStore %37901 %37908
-               OpStore %37907 %37902
-               OpBranch %38458
-      %37838 = OpLabel
-      %46577 = OpIAdd %uint %126033 %int_1
-      %46578 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %46579 = OpLoad %float %46578
-      %37842 = OpLoad %uint %30040
-      %37843 = OpBitwiseAnd %uint %37842 %uint_32768
-      %37844 = OpUGreaterThan %bool %37843 %uint_0
-               OpSelectionMerge %46601 None
-               OpSwitch %uint_0 %46585
-      %46585 = OpLabel
-               OpSelectionMerge %46600 None
-               OpBranchConditional %37844 %46587 %46595
-      %46595 = OpLabel
-      %46597 = OpISub %uint %126031 %int_1
-      %46598 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46597
-      %46599 = OpLoad %_arr_float_uint_2 %46598
-     %115303 = OpCompositeExtract %float %46599 0
-     %115304 = OpCompositeExtract %float %46599 1
-               OpBranch %46601
-      %46587 = OpLabel
-      %46589 = OpIAdd %uint %126033 %int_2
-      %46590 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %46577
-      %46591 = OpLoad %float %46590
-               OpBranch %46601
-      %46600 = OpLabel
-               OpUnreachable
-      %46601 = OpLabel
-     %126060 = OpPhi %uint %46589 %46587 %46577 %46595
-     %126059 = OpPhi %uint %126031 %46587 %46597 %46595
-     %126057 = OpPhi %float %46591 %46587 %115303 %46595
-     %126056 = OpPhi %float %46591 %46587 %115304 %46595
-      %37848 = OpLoad %uint %30040
-      %37849 = OpBitwiseAnd %uint %37848 %uint_16384
-      %37850 = OpUGreaterThan %bool %37849 %uint_0
-               OpSelectionMerge %46624 None
-               OpSwitch %uint_0 %46608
-      %46608 = OpLabel
-               OpSelectionMerge %46623 None
-               OpBranchConditional %37850 %46610 %46618
-      %46618 = OpLabel
-      %46620 = OpISub %uint %126059 %int_1
-      %46621 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46620
-      %46622 = OpLoad %_arr_float_uint_2 %46621
-     %115294 = OpCompositeExtract %float %46622 0
-     %115295 = OpCompositeExtract %float %46622 1
-               OpBranch %46624
-      %46610 = OpLabel
-      %46612 = OpIAdd %uint %126060 %int_1
-      %46613 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126060
-      %46614 = OpLoad %float %46613
-               OpBranch %46624
-      %46623 = OpLabel
-               OpUnreachable
-      %46624 = OpLabel
-     %128523 = OpPhi %uint %46612 %46610 %126060 %46618
-     %126063 = OpPhi %uint %126059 %46610 %46620 %46618
-     %126062 = OpPhi %float %46614 %46610 %115294 %46618
-     %126061 = OpPhi %float %46614 %46610 %115295 %46618
-      %37857 = OpFSub %float %126057 %126062
-      %37858 = OpExtInst %float %1 FAbs %37857
-      %37859 = OpFSub %float %46579 %37858
-      %37860 = OpExtInst %float %1 FMax %37859 %float_0
-      %37866 = OpFSub %float %126056 %126061
-      %37867 = OpExtInst %float %1 FAbs %37866
-      %37868 = OpFSub %float %46579 %37867
-      %37869 = OpExtInst %float %1 FMax %37868 %float_0
-      %37874 = OpExtInst %float %1 FMax %126057 %126062
-      %37877 = OpFMul %float %37860 %37860
-      %37878 = OpFMul %float %37877 %float_0_25
-      %37880 = OpFDiv %float %37878 %46579
-      %37881 = OpFAdd %float %37874 %37880
-      %37886 = OpExtInst %float %1 FMax %126056 %126061
-      %37889 = OpFMul %float %37869 %37869
-      %37890 = OpFMul %float %37889 %float_0_25
-      %37892 = OpFDiv %float %37890 %46579
-      %37893 = OpFAdd %float %37886 %37892
-      %37896 = OpCompositeConstruct %_arr_float_uint_2 %37881 %37893
-      %46628 = OpIAdd %uint %126063 %int_1
-      %46630 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126063
-               OpStore %46630 %37896
-               OpBranch %38458
-      %37778 = OpLabel
-      %46520 = OpIAdd %uint %126033 %int_1
-      %46521 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %46522 = OpLoad %float %46521
-      %37782 = OpLoad %uint %30040
-      %37783 = OpBitwiseAnd %uint %37782 %uint_32768
-      %37784 = OpUGreaterThan %bool %37783 %uint_0
-               OpSelectionMerge %46544 None
-               OpSwitch %uint_0 %46528
-      %46528 = OpLabel
-               OpSelectionMerge %46543 None
-               OpBranchConditional %37784 %46530 %46538
-      %46538 = OpLabel
-      %46540 = OpISub %uint %126031 %int_1
-      %46541 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46540
-      %46542 = OpLoad %_arr_float_uint_2 %46541
-     %115321 = OpCompositeExtract %float %46542 0
-     %115322 = OpCompositeExtract %float %46542 1
-               OpBranch %46544
-      %46530 = OpLabel
-      %46532 = OpIAdd %uint %126033 %int_2
-      %46533 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %46520
-      %46534 = OpLoad %float %46533
-               OpBranch %46544
-      %46543 = OpLabel
-               OpUnreachable
-      %46544 = OpLabel
-     %126071 = OpPhi %uint %46532 %46530 %46520 %46538
-     %126070 = OpPhi %uint %126031 %46530 %46540 %46538
-     %126068 = OpPhi %float %46534 %46530 %115321 %46538
-     %126067 = OpPhi %float %46534 %46530 %115322 %46538
-      %37788 = OpLoad %uint %30040
-      %37789 = OpBitwiseAnd %uint %37788 %uint_16384
-      %37790 = OpUGreaterThan %bool %37789 %uint_0
-               OpSelectionMerge %46567 None
-               OpSwitch %uint_0 %46551
-      %46551 = OpLabel
-               OpSelectionMerge %46566 None
-               OpBranchConditional %37790 %46553 %46561
-      %46561 = OpLabel
-      %46563 = OpISub %uint %126070 %int_1
-      %46564 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46563
-      %46565 = OpLoad %_arr_float_uint_2 %46564
-     %115312 = OpCompositeExtract %float %46565 0
-     %115313 = OpCompositeExtract %float %46565 1
-               OpBranch %46567
-      %46553 = OpLabel
-      %46555 = OpIAdd %uint %126071 %int_1
-      %46556 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126071
-      %46557 = OpLoad %float %46556
-               OpBranch %46567
-      %46566 = OpLabel
-               OpUnreachable
-      %46567 = OpLabel
-     %128522 = OpPhi %uint %46555 %46553 %126071 %46561
-     %126074 = OpPhi %uint %126070 %46553 %46563 %46561
-     %126073 = OpPhi %float %46557 %46553 %115312 %46561
-     %126072 = OpPhi %float %46557 %46553 %115313 %46561
-      %37797 = OpFSub %float %126068 %126073
-      %37798 = OpExtInst %float %1 FAbs %37797
-      %37799 = OpFSub %float %46522 %37798
-      %37800 = OpExtInst %float %1 FMax %37799 %float_0
-      %37806 = OpFSub %float %126067 %126072
-      %37807 = OpExtInst %float %1 FAbs %37806
-      %37808 = OpFSub %float %46522 %37807
-      %37809 = OpExtInst %float %1 FMax %37808 %float_0
-      %37814 = OpExtInst %float %1 FMin %126068 %126073
-      %37817 = OpFMul %float %37800 %37800
-      %37818 = OpFMul %float %37817 %float_0_25
-      %37820 = OpFDiv %float %37818 %46522
-      %37821 = OpFSub %float %37814 %37820
-      %37826 = OpExtInst %float %1 FMin %126067 %126072
-      %37829 = OpFMul %float %37809 %37809
-      %37830 = OpFMul %float %37829 %float_0_25
-      %37832 = OpFDiv %float %37830 %46522
-      %37833 = OpFSub %float %37826 %37832
-      %37836 = OpCompositeConstruct %_arr_float_uint_2 %37821 %37833
-      %46571 = OpIAdd %uint %126074 %int_1
-      %46573 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126074
-               OpStore %46573 %37836
-               OpBranch %38458
-      %37751 = OpLabel
-      %37754 = OpLoad %uint %30040
-      %37755 = OpBitwiseAnd %uint %37754 %uint_32768
-      %37756 = OpUGreaterThan %bool %37755 %uint_0
-               OpSelectionMerge %46510 None
-               OpSwitch %uint_0 %46494
-      %46494 = OpLabel
-               OpSelectionMerge %46509 None
-               OpBranchConditional %37756 %46496 %46504
-      %46504 = OpLabel
-      %46506 = OpISub %uint %126050 %int_1
-      %46507 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %46506
-      %46508 = OpLoad %_arr_v4float_uint_2 %46507
-     %115331 = OpCompositeExtract %v4float %46508 1
-               OpBranch %46510
-      %46496 = OpLabel
-      %46498 = OpIAdd %uint %126076 %int_1
-      %46499 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %46500 = OpLoad %v4float %46499
-               OpBranch %46510
-      %46509 = OpLabel
-               OpUnreachable
-      %46510 = OpLabel
-     %189385 = OpPhi %uint %46498 %46496 %126076 %46504
-     %126086 = OpPhi %uint %126050 %46496 %46506 %46504
-     %126077 = OpPhi %v4float %46500 %46496 %115331 %46504
-      %37771 = OpFMul %v4float %126077 %126077
-      %37774 = OpFMul %v4float %37771 %126077
-     %120073 = OpCompositeConstruct %_arr_v4float_uint_2 %37774 %126085
-      %46514 = OpIAdd %uint %126086 %int_1
-      %46516 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126086
-               OpStore %46516 %120073
-               OpBranch %38458
-      %37705 = OpLabel
-      %37708 = OpLoad %uint %30040
-      %37709 = OpBitwiseAnd %uint %37708 %uint_32768
-      %37710 = OpUGreaterThan %bool %37709 %uint_0
-               OpSelectionMerge %46482 None
-               OpSwitch %uint_0 %46466
-      %46466 = OpLabel
-               OpSelectionMerge %46481 None
-               OpBranchConditional %37710 %46468 %46476
-      %46476 = OpLabel
-      %46478 = OpISub %uint %126050 %int_1
-      %46479 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %46478
-      %46480 = OpLoad %_arr_v4float_uint_2 %46479
-     %115339 = OpCompositeExtract %v4float %46480 0
-     %115340 = OpCompositeExtract %v4float %46480 1
-               OpBranch %46482
-      %46468 = OpLabel
-      %46470 = OpIAdd %uint %126076 %int_1
-      %46471 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %46472 = OpLoad %v4float %46471
-               OpBranch %46482
-      %46481 = OpLabel
-               OpUnreachable
-      %46482 = OpLabel
-     %189384 = OpPhi %uint %46470 %46468 %126076 %46476
-     %126089 = OpPhi %uint %126050 %46468 %46478 %46476
-     %126088 = OpPhi %v4float %46472 %46468 %115339 %46476
-     %126087 = OpPhi %v4float %46472 %46468 %115340 %46476
-      %37716 = OpFOrdGreaterThan %v4bool %126087 %3375
-      %37720 = OpFOrdLessThan %v4bool %126088 %3375
-      %37721 = OpSelect %v4bool %37720 %37716 %3373
-      %37726 = OpFMul %v4float %126088 %126088
-      %37731 = OpFMul %v4float %126087 %126087
-      %37732 = OpExtInst %v4float %1 FMin %37726 %37731
-      %37735 = OpSelect %v4float %37721 %3375 %37732
-      %37747 = OpExtInst %v4float %1 FMax %37726 %37731
-     %120064 = OpCompositeConstruct %_arr_v4float_uint_2 %37735 %37747
-      %46486 = OpIAdd %uint %126089 %int_1
-      %46488 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126089
-               OpStore %46488 %120064
-               OpBranch %38458
-      %37678 = OpLabel
-      %37681 = OpLoad %uint %30040
-      %37682 = OpBitwiseAnd %uint %37681 %uint_32768
-      %37683 = OpUGreaterThan %bool %37682 %uint_0
-               OpSelectionMerge %46454 None
-               OpSwitch %uint_0 %46438
-      %46438 = OpLabel
-               OpSelectionMerge %46453 None
-               OpBranchConditional %37683 %46440 %46448
-      %46448 = OpLabel
-      %46450 = OpISub %uint %126041 %int_1
-      %46451 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %46450
-      %46452 = OpLoad %_arr_v3float_uint_2 %46451
-     %115349 = OpCompositeExtract %v3float %46452 1
-               OpBranch %46454
-      %46440 = OpLabel
-      %46442 = OpIAdd %uint %126044 %int_1
-      %46443 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %46444 = OpLoad %v3float %46443
-               OpBranch %46454
-      %46453 = OpLabel
-               OpUnreachable
-      %46454 = OpLabel
-     %188609 = OpPhi %uint %46442 %46440 %126044 %46448
-     %126099 = OpPhi %uint %126041 %46440 %46450 %46448
-     %126090 = OpPhi %v3float %46444 %46440 %115349 %46448
-      %37698 = OpFMul %v3float %126090 %126090
-      %37701 = OpFMul %v3float %37698 %126090
-     %120055 = OpCompositeConstruct %_arr_v3float_uint_2 %37701 %126098
-      %46458 = OpIAdd %uint %126099 %int_1
-      %46460 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126099
-               OpStore %46460 %120055
-               OpBranch %38458
-      %37632 = OpLabel
-      %37635 = OpLoad %uint %30040
-      %37636 = OpBitwiseAnd %uint %37635 %uint_32768
-      %37637 = OpUGreaterThan %bool %37636 %uint_0
-               OpSelectionMerge %46426 None
-               OpSwitch %uint_0 %46410
-      %46410 = OpLabel
-               OpSelectionMerge %46425 None
-               OpBranchConditional %37637 %46412 %46420
-      %46420 = OpLabel
-      %46422 = OpISub %uint %126041 %int_1
-      %46423 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %46422
-      %46424 = OpLoad %_arr_v3float_uint_2 %46423
-     %115357 = OpCompositeExtract %v3float %46424 0
-     %115358 = OpCompositeExtract %v3float %46424 1
-               OpBranch %46426
-      %46412 = OpLabel
-      %46414 = OpIAdd %uint %126044 %int_1
-      %46415 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %46416 = OpLoad %v3float %46415
-               OpBranch %46426
-      %46425 = OpLabel
-               OpUnreachable
-      %46426 = OpLabel
-     %188608 = OpPhi %uint %46414 %46412 %126044 %46420
-     %126102 = OpPhi %uint %126041 %46412 %46422 %46420
-     %126101 = OpPhi %v3float %46416 %46412 %115357 %46420
-     %126100 = OpPhi %v3float %46416 %46412 %115358 %46420
-      %37643 = OpFOrdGreaterThan %v3bool %126100 %123
-      %37647 = OpFOrdLessThan %v3bool %126101 %123
-      %37648 = OpSelect %v3bool %37647 %37643 %3323
-      %37653 = OpFMul %v3float %126101 %126101
-      %37658 = OpFMul %v3float %126100 %126100
-      %37659 = OpExtInst %v3float %1 FMin %37653 %37658
-      %37662 = OpSelect %v3float %37648 %123 %37659
-      %37674 = OpExtInst %v3float %1 FMax %37653 %37658
-     %120046 = OpCompositeConstruct %_arr_v3float_uint_2 %37662 %37674
-      %46430 = OpIAdd %uint %126102 %int_1
-      %46432 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126102
-               OpStore %46432 %120046
-               OpBranch %38458
-      %37605 = OpLabel
-      %37608 = OpLoad %uint %30040
-      %37609 = OpBitwiseAnd %uint %37608 %uint_32768
-      %37610 = OpUGreaterThan %bool %37609 %uint_0
-               OpSelectionMerge %46398 None
-               OpSwitch %uint_0 %46382
-      %46382 = OpLabel
-               OpSelectionMerge %46397 None
-               OpBranchConditional %37610 %46384 %46392
-      %46392 = OpLabel
-      %46394 = OpISub %uint %126052 %int_1
-      %46395 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %46394
-      %46396 = OpLoad %_arr_v2float_uint_2 %46395
-     %115367 = OpCompositeExtract %v2float %46396 1
-               OpBranch %46398
-      %46384 = OpLabel
-      %46386 = OpIAdd %uint %126104 %int_1
-      %46387 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %46388 = OpLoad %v2float %46387
-               OpBranch %46398
-      %46397 = OpLabel
-               OpUnreachable
-      %46398 = OpLabel
-     %190960 = OpPhi %uint %46386 %46384 %126104 %46392
-     %126114 = OpPhi %uint %126052 %46384 %46394 %46392
-     %126105 = OpPhi %v2float %46388 %46384 %115367 %46392
-      %37625 = OpFMul %v2float %126105 %126105
-      %37628 = OpFMul %v2float %37625 %126105
-     %120037 = OpCompositeConstruct %_arr_v2float_uint_2 %37628 %126113
-      %46402 = OpIAdd %uint %126114 %int_1
-      %46404 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126114
-               OpStore %46404 %120037
-               OpBranch %38458
-      %37559 = OpLabel
-      %37562 = OpLoad %uint %30040
-      %37563 = OpBitwiseAnd %uint %37562 %uint_32768
-      %37564 = OpUGreaterThan %bool %37563 %uint_0
-               OpSelectionMerge %46370 None
-               OpSwitch %uint_0 %46354
-      %46354 = OpLabel
-               OpSelectionMerge %46369 None
-               OpBranchConditional %37564 %46356 %46364
-      %46364 = OpLabel
-      %46366 = OpISub %uint %126052 %int_1
-      %46367 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %46366
-      %46368 = OpLoad %_arr_v2float_uint_2 %46367
-     %115375 = OpCompositeExtract %v2float %46368 0
-     %115376 = OpCompositeExtract %v2float %46368 1
-               OpBranch %46370
-      %46356 = OpLabel
-      %46358 = OpIAdd %uint %126104 %int_1
-      %46359 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %46360 = OpLoad %v2float %46359
-               OpBranch %46370
-      %46369 = OpLabel
-               OpUnreachable
-      %46370 = OpLabel
-     %190959 = OpPhi %uint %46358 %46356 %126104 %46364
-     %126117 = OpPhi %uint %126052 %46356 %46366 %46364
-     %126116 = OpPhi %v2float %46360 %46356 %115375 %46364
-     %126115 = OpPhi %v2float %46360 %46356 %115376 %46364
-      %37570 = OpFOrdGreaterThan %v2bool %126115 %3274
-      %37574 = OpFOrdLessThan %v2bool %126116 %3274
-      %37575 = OpSelect %v2bool %37574 %37570 %3272
-      %37580 = OpFMul %v2float %126116 %126116
-      %37585 = OpFMul %v2float %126115 %126115
-      %37586 = OpExtInst %v2float %1 FMin %37580 %37585
-      %37589 = OpSelect %v2float %37575 %3274 %37586
-      %37601 = OpExtInst %v2float %1 FMax %37580 %37585
-     %120028 = OpCompositeConstruct %_arr_v2float_uint_2 %37589 %37601
-      %46374 = OpIAdd %uint %126117 %int_1
-      %46376 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126117
-               OpStore %46376 %120028
-               OpBranch %38458
-      %37532 = OpLabel
-      %37535 = OpLoad %uint %30040
-      %37536 = OpBitwiseAnd %uint %37535 %uint_32768
-      %37537 = OpUGreaterThan %bool %37536 %uint_0
-               OpSelectionMerge %46342 None
-               OpSwitch %uint_0 %46326
-      %46326 = OpLabel
-               OpSelectionMerge %46341 None
-               OpBranchConditional %37537 %46328 %46336
-      %46336 = OpLabel
-      %46338 = OpISub %uint %126031 %int_1
-      %46339 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46338
-      %46340 = OpLoad %_arr_float_uint_2 %46339
-     %115385 = OpCompositeExtract %float %46340 1
-               OpBranch %46342
-      %46328 = OpLabel
-      %46330 = OpIAdd %uint %126033 %int_1
-      %46331 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %46332 = OpLoad %float %46331
-               OpBranch %46342
-      %46341 = OpLabel
-               OpUnreachable
-      %46342 = OpLabel
-     %128515 = OpPhi %uint %46330 %46328 %126033 %46336
-     %126127 = OpPhi %uint %126031 %46328 %46338 %46336
-     %126118 = OpPhi %float %46332 %46328 %115385 %46336
-      %37552 = OpFMul %float %126118 %126118
-      %37555 = OpFMul %float %37552 %126118
-     %120019 = OpCompositeConstruct %_arr_float_uint_2 %37555 %126126
-      %46346 = OpIAdd %uint %126127 %int_1
-      %46348 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126127
-               OpStore %46348 %120019
-               OpBranch %38458
-      %37486 = OpLabel
-      %37489 = OpLoad %uint %30040
-      %37490 = OpBitwiseAnd %uint %37489 %uint_32768
-      %37491 = OpUGreaterThan %bool %37490 %uint_0
-               OpSelectionMerge %46314 None
-               OpSwitch %uint_0 %46298
-      %46298 = OpLabel
-               OpSelectionMerge %46313 None
-               OpBranchConditional %37491 %46300 %46308
-      %46308 = OpLabel
-      %46310 = OpISub %uint %126031 %int_1
-      %46311 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46310
-      %46312 = OpLoad %_arr_float_uint_2 %46311
-     %115393 = OpCompositeExtract %float %46312 0
-     %115394 = OpCompositeExtract %float %46312 1
-               OpBranch %46314
-      %46300 = OpLabel
-      %46302 = OpIAdd %uint %126033 %int_1
-      %46303 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %46304 = OpLoad %float %46303
-               OpBranch %46314
-      %46313 = OpLabel
-               OpUnreachable
-      %46314 = OpLabel
-     %128514 = OpPhi %uint %46302 %46300 %126033 %46308
-     %126133 = OpPhi %uint %126031 %46300 %46310 %46308
-     %126129 = OpPhi %float %46304 %46300 %115393 %46308
-     %126128 = OpPhi %float %46304 %46300 %115394 %46308
-      %37495 = OpFOrdGreaterThan %bool %126128 %float_0
-               OpSelectionMerge %37500 None
-               OpBranchConditional %37495 %37496 %37500
-      %37496 = OpLabel
-      %37499 = OpFOrdLessThan %bool %126129 %float_0
-               OpBranch %37500
-      %37500 = OpLabel
-      %37501 = OpPhi %bool %37495 %46314 %37499 %37496
-               OpSelectionMerge %37517 None
-               OpBranchConditional %37501 %37502 %37504
-      %37504 = OpLabel
-      %37509 = OpFMul %float %126129 %126129
-      %37514 = OpFMul %float %126128 %126128
-      %37515 = OpExtInst %float %1 FMin %37509 %37514
-               OpBranch %37517
-      %37502 = OpLabel
-               OpBranch %37517
-      %37517 = OpLabel
-     %126130 = OpPhi %float %float_0 %37502 %37515 %37504
-      %37522 = OpFMul %float %126129 %126129
-      %37527 = OpFMul %float %126128 %126128
-      %37528 = OpExtInst %float %1 FMax %37522 %37527
-     %120010 = OpCompositeConstruct %_arr_float_uint_2 %126130 %37528
-      %46318 = OpIAdd %uint %126133 %int_1
-      %46320 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126133
-               OpStore %46320 %120010
-               OpBranch %38458
-      %37455 = OpLabel
-      %37458 = OpLoad %uint %30040
-      %37459 = OpBitwiseAnd %uint %37458 %uint_32768
-      %37460 = OpUGreaterThan %bool %37459 %uint_0
-               OpSelectionMerge %46271 None
-               OpSwitch %uint_0 %46255
-      %46255 = OpLabel
-               OpSelectionMerge %46270 None
-               OpBranchConditional %37460 %46257 %46265
-      %46265 = OpLabel
-      %46267 = OpISub %uint %126050 %int_1
-      %46268 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %46267
-      %46269 = OpLoad %_arr_v4float_uint_2 %46268
-     %115402 = OpCompositeExtract %v4float %46269 0
-     %115403 = OpCompositeExtract %v4float %46269 1
-               OpBranch %46271
-      %46257 = OpLabel
-      %46259 = OpIAdd %uint %126076 %int_1
-      %46260 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %46261 = OpLoad %v4float %46260
-               OpBranch %46271
-      %46270 = OpLabel
-               OpUnreachable
-      %46271 = OpLabel
-     %189375 = OpPhi %uint %46259 %46257 %126076 %46265
-     %188835 = OpPhi %uint %126050 %46257 %46267 %46265
-     %126135 = OpPhi %v4float %46261 %46257 %115402 %46265
-     %126134 = OpPhi %v4float %46261 %46257 %115403 %46265
-      %37463 = OpCompositeExtract %float %126135 3
-      %37465 = OpCompositeExtract %float %126134 3
-      %37466 = OpCompositeConstruct %_arr_float_uint_2 %37463 %37465
-      %46275 = OpIAdd %uint %126031 %int_1
-      %46277 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %46277 %37466
-      %37469 = OpCompositeExtract %float %126135 2
-      %37471 = OpCompositeExtract %float %126134 2
-      %37472 = OpCompositeConstruct %_arr_float_uint_2 %37469 %37471
-      %46280 = OpIAdd %uint %126031 %int_2
-      %46282 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46275
-               OpStore %46282 %37472
-      %37475 = OpCompositeExtract %float %126135 1
-      %37477 = OpCompositeExtract %float %126134 1
-      %37478 = OpCompositeConstruct %_arr_float_uint_2 %37475 %37477
-      %46285 = OpIAdd %uint %126031 %int_3
-      %46287 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46280
-               OpStore %46287 %37478
-      %37481 = OpCompositeExtract %float %126135 0
-      %37483 = OpCompositeExtract %float %126134 0
-      %37484 = OpCompositeConstruct %_arr_float_uint_2 %37481 %37483
-      %46290 = OpIAdd %uint %126031 %int_4
-      %46292 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46285
-               OpStore %46292 %37484
-               OpBranch %38458
-      %37430 = OpLabel
-      %37433 = OpLoad %uint %30040
-      %37434 = OpBitwiseAnd %uint %37433 %uint_32768
-      %37435 = OpUGreaterThan %bool %37434 %uint_0
-               OpSelectionMerge %46233 None
-               OpSwitch %uint_0 %46217
-      %46217 = OpLabel
-               OpSelectionMerge %46232 None
-               OpBranchConditional %37435 %46219 %46227
-      %46227 = OpLabel
-      %46229 = OpISub %uint %126041 %int_1
-      %46230 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %46229
-      %46231 = OpLoad %_arr_v3float_uint_2 %46230
-     %115411 = OpCompositeExtract %v3float %46231 0
-     %115412 = OpCompositeExtract %v3float %46231 1
-               OpBranch %46233
-      %46219 = OpLabel
-      %46221 = OpIAdd %uint %126044 %int_1
-      %46222 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %46223 = OpLoad %v3float %46222
-               OpBranch %46233
-      %46232 = OpLabel
-               OpUnreachable
-      %46233 = OpLabel
-     %188600 = OpPhi %uint %46221 %46219 %126044 %46227
-     %188304 = OpPhi %uint %126041 %46219 %46229 %46227
-     %126138 = OpPhi %v3float %46223 %46219 %115411 %46227
-     %126137 = OpPhi %v3float %46223 %46219 %115412 %46227
-      %37438 = OpCompositeExtract %float %126138 2
-      %37440 = OpCompositeExtract %float %126137 2
-      %37441 = OpCompositeConstruct %_arr_float_uint_2 %37438 %37440
-      %46237 = OpIAdd %uint %126031 %int_1
-      %46239 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %46239 %37441
-      %37444 = OpCompositeExtract %float %126138 1
-      %37446 = OpCompositeExtract %float %126137 1
-      %37447 = OpCompositeConstruct %_arr_float_uint_2 %37444 %37446
-      %46242 = OpIAdd %uint %126031 %int_2
-      %46244 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46237
-               OpStore %46244 %37447
-      %37450 = OpCompositeExtract %float %126138 0
-      %37452 = OpCompositeExtract %float %126137 0
-      %37453 = OpCompositeConstruct %_arr_float_uint_2 %37450 %37452
-      %46247 = OpIAdd %uint %126031 %int_3
-      %46249 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46242
-               OpStore %46249 %37453
-               OpBranch %38458
-      %37411 = OpLabel
-      %37414 = OpLoad %uint %30040
-      %37415 = OpBitwiseAnd %uint %37414 %uint_32768
-      %37416 = OpUGreaterThan %bool %37415 %uint_0
-               OpSelectionMerge %46200 None
-               OpSwitch %uint_0 %46184
-      %46184 = OpLabel
-               OpSelectionMerge %46199 None
-               OpBranchConditional %37416 %46186 %46194
-      %46194 = OpLabel
-      %46196 = OpISub %uint %126052 %int_1
-      %46197 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %46196
-      %46198 = OpLoad %_arr_v2float_uint_2 %46197
-     %115420 = OpCompositeExtract %v2float %46198 0
-     %115421 = OpCompositeExtract %v2float %46198 1
-               OpBranch %46200
-      %46186 = OpLabel
-      %46188 = OpIAdd %uint %126104 %int_1
-      %46189 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %46190 = OpLoad %v2float %46189
-               OpBranch %46200
-      %46199 = OpLabel
-               OpUnreachable
-      %46200 = OpLabel
-     %190952 = OpPhi %uint %46188 %46186 %126104 %46194
-     %189075 = OpPhi %uint %126052 %46186 %46196 %46194
-     %126141 = OpPhi %v2float %46190 %46186 %115420 %46194
-     %126140 = OpPhi %v2float %46190 %46186 %115421 %46194
-      %37419 = OpCompositeExtract %float %126141 1
-      %37421 = OpCompositeExtract %float %126140 1
-      %37422 = OpCompositeConstruct %_arr_float_uint_2 %37419 %37421
-      %46204 = OpIAdd %uint %126031 %int_1
-      %46206 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %46206 %37422
-      %37425 = OpCompositeExtract %float %126141 0
-      %37427 = OpCompositeExtract %float %126140 0
-      %37428 = OpCompositeConstruct %_arr_float_uint_2 %37425 %37427
-      %46209 = OpIAdd %uint %126031 %int_2
-      %46211 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46204
-               OpStore %46211 %37428
-               OpBranch %38458
-      %37384 = OpLabel
-      %37387 = OpLoad %uint %30040
-      %37388 = OpBitwiseAnd %uint %37387 %uint_32768
-      %37389 = OpUGreaterThan %bool %37388 %uint_0
-               OpSelectionMerge %46172 None
-               OpSwitch %uint_0 %46156
-      %46156 = OpLabel
-               OpSelectionMerge %46171 None
-               OpBranchConditional %37389 %46158 %46166
-      %46166 = OpLabel
-      %46168 = OpISub %uint %126144 %int_1
-      %46169 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %46168
-      %46170 = OpLoad %_arr_mat2v2float_uint_2 %46169
-     %115429 = OpCompositeExtract %mat2v2float %46170 0
-     %115430 = OpCompositeExtract %mat2v2float %46170 1
-               OpBranch %46172
-      %46158 = OpLabel
-      %46160 = OpIAdd %uint %126146 %int_1
-      %46161 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %126146
-      %46162 = OpLoad %mat2v2float %46161
-               OpBranch %46172
-      %46171 = OpLabel
-               OpUnreachable
-      %46172 = OpLabel
-     %192865 = OpPhi %uint %46160 %46158 %126146 %46166
-     %192548 = OpPhi %uint %126144 %46158 %46168 %46166
-     %126148 = OpPhi %mat2v2float %46162 %46158 %115429 %46166
-     %126147 = OpPhi %mat2v2float %46162 %46158 %115430 %46166
-      %37392 = OpCompositeExtract %v2float %126148 0
-      %37394 = OpCompositeExtract %v2float %126148 1
-      %37395 = OpCompositeExtract %float %37392 0
-      %37396 = OpCompositeExtract %float %37392 1
-      %37397 = OpCompositeExtract %float %37394 0
-      %37398 = OpCompositeExtract %float %37394 1
-      %37399 = OpCompositeConstruct %v4float %37395 %37396 %37397 %37398
-      %37401 = OpCompositeExtract %v2float %126147 0
-      %37403 = OpCompositeExtract %v2float %126147 1
-      %37404 = OpCompositeExtract %float %37401 0
-      %37405 = OpCompositeExtract %float %37401 1
-      %37406 = OpCompositeExtract %float %37403 0
-      %37407 = OpCompositeExtract %float %37403 1
-      %37408 = OpCompositeConstruct %v4float %37404 %37405 %37406 %37407
-      %37409 = OpCompositeConstruct %_arr_v4float_uint_2 %37399 %37408
-      %46176 = OpIAdd %uint %126050 %int_1
-      %46178 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126050
-               OpStore %46178 %37409
-               OpBranch %38458
-      %37353 = OpLabel
-      %37356 = OpLoad %uint %30040
-      %37357 = OpBitwiseAnd %uint %37356 %uint_32768
-      %37358 = OpUGreaterThan %bool %37357 %uint_0
-               OpSelectionMerge %46129 None
-               OpSwitch %uint_0 %46113
-      %46113 = OpLabel
-               OpSelectionMerge %46128 None
-               OpBranchConditional %37358 %46115 %46123
-      %46123 = OpLabel
-      %46125 = OpISub %uint %126151 %int_1
-      %46126 = OpAccessChain %_ptr_Function__arr_mat4v4float_uint_2 %425 %46125
-      %46127 = OpLoad %_arr_mat4v4float_uint_2 %46126
-     %115438 = OpCompositeExtract %mat4v4float %46127 0
-     %115439 = OpCompositeExtract %mat4v4float %46127 1
-               OpBranch %46129
-      %46115 = OpLabel
-      %46117 = OpIAdd %uint %126153 %int_1
-      %46118 = OpAccessChain %_ptr_StorageBuffer_mat4v4float %412 %int_0 %126153
-      %46119 = OpLoad %mat4v4float %46118
-               OpBranch %46129
-      %46128 = OpLabel
-               OpUnreachable
-      %46129 = OpLabel
-     %193499 = OpPhi %uint %46117 %46115 %126153 %46123
-     %193182 = OpPhi %uint %126151 %46115 %46125 %46123
-     %126155 = OpPhi %mat4v4float %46119 %46115 %115438 %46123
-     %126154 = OpPhi %mat4v4float %46119 %46115 %115439 %46123
-      %37361 = OpCompositeExtract %v4float %126155 3
-      %37363 = OpCompositeExtract %v4float %126154 3
-      %37364 = OpCompositeConstruct %_arr_v4float_uint_2 %37361 %37363
-      %46133 = OpIAdd %uint %126050 %int_1
-      %46135 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126050
-               OpStore %46135 %37364
-      %37367 = OpCompositeExtract %v4float %126155 2
-      %37369 = OpCompositeExtract %v4float %126154 2
-      %37370 = OpCompositeConstruct %_arr_v4float_uint_2 %37367 %37369
-      %46138 = OpIAdd %uint %126050 %int_2
-      %46140 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %46133
-               OpStore %46140 %37370
-      %37373 = OpCompositeExtract %v4float %126155 1
-      %37375 = OpCompositeExtract %v4float %126154 1
-      %37376 = OpCompositeConstruct %_arr_v4float_uint_2 %37373 %37375
-      %46143 = OpIAdd %uint %126050 %int_3
-      %46145 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %46138
-               OpStore %46145 %37376
-      %37379 = OpCompositeExtract %v4float %126155 0
-      %37381 = OpCompositeExtract %v4float %126154 0
-      %37382 = OpCompositeConstruct %_arr_v4float_uint_2 %37379 %37381
-      %46148 = OpIAdd %uint %126050 %int_4
-      %46150 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %46143
-               OpStore %46150 %37382
-               OpBranch %38458
-      %37328 = OpLabel
-      %37331 = OpLoad %uint %30040
-      %37332 = OpBitwiseAnd %uint %37331 %uint_32768
-      %37333 = OpUGreaterThan %bool %37332 %uint_0
-               OpSelectionMerge %46091 None
-               OpSwitch %uint_0 %46075
-      %46075 = OpLabel
-               OpSelectionMerge %46090 None
-               OpBranchConditional %37333 %46077 %46085
-      %46085 = OpLabel
-      %46087 = OpISub %uint %126158 %int_1
-      %46088 = OpAccessChain %_ptr_Function__arr_mat3v3float_uint_2 %396 %46087
-      %46089 = OpLoad %_arr_mat3v3float_uint_2 %46088
-     %115447 = OpCompositeExtract %mat3v3float %46089 0
-     %115448 = OpCompositeExtract %mat3v3float %46089 1
-               OpBranch %46091
-      %46077 = OpLabel
-      %46079 = OpIAdd %uint %126160 %int_1
-      %46080 = OpAccessChain %_ptr_StorageBuffer_mat3v3float %383 %int_0 %126160
-      %46081 = OpLoad %mat3v3float %46080
-               OpBranch %46091
-      %46090 = OpLabel
-               OpUnreachable
-      %46091 = OpLabel
-     %194133 = OpPhi %uint %46079 %46077 %126160 %46085
-     %193816 = OpPhi %uint %126158 %46077 %46087 %46085
-     %126162 = OpPhi %mat3v3float %46081 %46077 %115447 %46085
-     %126161 = OpPhi %mat3v3float %46081 %46077 %115448 %46085
-      %37336 = OpCompositeExtract %v3float %126162 2
-      %37338 = OpCompositeExtract %v3float %126161 2
-      %37339 = OpCompositeConstruct %_arr_v3float_uint_2 %37336 %37338
-      %46095 = OpIAdd %uint %126041 %int_1
-      %46097 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126041
-               OpStore %46097 %37339
-      %37342 = OpCompositeExtract %v3float %126162 1
-      %37344 = OpCompositeExtract %v3float %126161 1
-      %37345 = OpCompositeConstruct %_arr_v3float_uint_2 %37342 %37344
-      %46100 = OpIAdd %uint %126041 %int_2
-      %46102 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %46095
-               OpStore %46102 %37345
-      %37348 = OpCompositeExtract %v3float %126162 0
-      %37350 = OpCompositeExtract %v3float %126161 0
-      %37351 = OpCompositeConstruct %_arr_v3float_uint_2 %37348 %37350
-      %46105 = OpIAdd %uint %126041 %int_3
-      %46107 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %46100
-               OpStore %46107 %37351
-               OpBranch %38458
-      %37309 = OpLabel
-      %37312 = OpLoad %uint %30040
-      %37313 = OpBitwiseAnd %uint %37312 %uint_32768
-      %37314 = OpUGreaterThan %bool %37313 %uint_0
-               OpSelectionMerge %46058 None
-               OpSwitch %uint_0 %46042
-      %46042 = OpLabel
-               OpSelectionMerge %46057 None
-               OpBranchConditional %37314 %46044 %46052
-      %46052 = OpLabel
-      %46054 = OpISub %uint %126144 %int_1
-      %46055 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %46054
-      %46056 = OpLoad %_arr_mat2v2float_uint_2 %46055
-     %115456 = OpCompositeExtract %mat2v2float %46056 0
-     %115457 = OpCompositeExtract %mat2v2float %46056 1
-               OpBranch %46058
-      %46044 = OpLabel
-      %46046 = OpIAdd %uint %126146 %int_1
-      %46047 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %126146
-      %46048 = OpLoad %mat2v2float %46047
-               OpBranch %46058
-      %46057 = OpLabel
-               OpUnreachable
-      %46058 = OpLabel
-     %192862 = OpPhi %uint %46046 %46044 %126146 %46052
-     %192545 = OpPhi %uint %126144 %46044 %46054 %46052
-     %126165 = OpPhi %mat2v2float %46048 %46044 %115456 %46052
-     %126164 = OpPhi %mat2v2float %46048 %46044 %115457 %46052
-      %37317 = OpCompositeExtract %v2float %126165 1
-      %37319 = OpCompositeExtract %v2float %126164 1
-      %37320 = OpCompositeConstruct %_arr_v2float_uint_2 %37317 %37319
-      %46062 = OpIAdd %uint %126052 %int_1
-      %46064 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126052
-               OpStore %46064 %37320
-      %37323 = OpCompositeExtract %v2float %126165 0
-      %37325 = OpCompositeExtract %v2float %126164 0
-      %37326 = OpCompositeConstruct %_arr_v2float_uint_2 %37323 %37325
-      %46067 = OpIAdd %uint %126052 %int_2
-      %46069 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %46062
-               OpStore %46069 %37326
-               OpBranch %38458
-      %37278 = OpLabel
-      %37281 = OpLoad %uint %30040
-      %37282 = OpBitwiseAnd %uint %37281 %uint_32768
-      %37283 = OpUGreaterThan %bool %37282 %uint_0
-               OpSelectionMerge %46015 None
-               OpSwitch %uint_0 %45999
-      %45999 = OpLabel
-               OpSelectionMerge %46014 None
-               OpBranchConditional %37283 %46001 %46009
-      %46009 = OpLabel
-      %46011 = OpISub %uint %126144 %int_1
-      %46012 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %46011
-      %46013 = OpLoad %_arr_mat2v2float_uint_2 %46012
-     %115465 = OpCompositeExtract %mat2v2float %46013 0
-     %115466 = OpCompositeExtract %mat2v2float %46013 1
-               OpBranch %46015
-      %46001 = OpLabel
-      %46003 = OpIAdd %uint %126146 %int_1
-      %46004 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %126146
-      %46005 = OpLoad %mat2v2float %46004
-               OpBranch %46015
-      %46014 = OpLabel
-               OpUnreachable
-      %46015 = OpLabel
-     %192861 = OpPhi %uint %46003 %46001 %126146 %46009
-     %192544 = OpPhi %uint %126144 %46001 %46011 %46009
-     %126168 = OpPhi %mat2v2float %46005 %46001 %115465 %46009
-     %126167 = OpPhi %mat2v2float %46005 %46001 %115466 %46009
-      %37286 = OpCompositeExtract %float %126168 1 1
-      %37288 = OpCompositeExtract %float %126167 1 1
-      %37289 = OpCompositeConstruct %_arr_float_uint_2 %37286 %37288
-      %46019 = OpIAdd %uint %126031 %int_1
-      %46021 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %46021 %37289
-      %37292 = OpCompositeExtract %float %126168 1 0
-      %37294 = OpCompositeExtract %float %126167 1 0
-      %37295 = OpCompositeConstruct %_arr_float_uint_2 %37292 %37294
-      %46024 = OpIAdd %uint %126031 %int_2
-      %46026 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46019
-               OpStore %46026 %37295
-      %37298 = OpCompositeExtract %float %126168 0 1
-      %37300 = OpCompositeExtract %float %126167 0 1
-      %37301 = OpCompositeConstruct %_arr_float_uint_2 %37298 %37300
-      %46029 = OpIAdd %uint %126031 %int_3
-      %46031 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46024
-               OpStore %46031 %37301
-      %37304 = OpCompositeExtract %float %126168 0 0
-      %37306 = OpCompositeExtract %float %126167 0 0
-      %37307 = OpCompositeConstruct %_arr_float_uint_2 %37304 %37306
-      %46034 = OpIAdd %uint %126031 %int_4
-      %46036 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46029
-               OpStore %46036 %37307
-               OpBranch %38458
-      %37245 = OpLabel
-      %37248 = OpLoad %uint %30040
-      %37249 = OpBitwiseAnd %uint %37248 %uint_32768
-      %37250 = OpUGreaterThan %bool %37249 %uint_0
-               OpSelectionMerge %45964 None
-               OpSwitch %uint_0 %45948
-      %45948 = OpLabel
-               OpSelectionMerge %45963 None
-               OpBranchConditional %37250 %45950 %45958
-      %45958 = OpLabel
-      %45960 = OpISub %uint %126052 %int_1
-      %45961 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %45960
-      %45962 = OpLoad %_arr_v2float_uint_2 %45961
-     %115483 = OpCompositeExtract %v2float %45962 0
-     %115484 = OpCompositeExtract %v2float %45962 1
-               OpBranch %45964
-      %45950 = OpLabel
-      %45952 = OpIAdd %uint %126104 %int_1
-      %45953 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %45954 = OpLoad %v2float %45953
-               OpBranch %45964
-      %45963 = OpLabel
-               OpUnreachable
-      %45964 = OpLabel
-     %126174 = OpPhi %uint %45952 %45950 %126104 %45958
-     %126173 = OpPhi %uint %126052 %45950 %45960 %45958
-     %126171 = OpPhi %v2float %45954 %45950 %115483 %45958
-     %126170 = OpPhi %v2float %45954 %45950 %115484 %45958
-      %37254 = OpLoad %uint %30040
-      %37255 = OpBitwiseAnd %uint %37254 %uint_16384
-      %37256 = OpUGreaterThan %bool %37255 %uint_0
-               OpSelectionMerge %45987 None
-               OpSwitch %uint_0 %45971
-      %45971 = OpLabel
-               OpSelectionMerge %45986 None
-               OpBranchConditional %37256 %45973 %45981
-      %45981 = OpLabel
-      %45983 = OpISub %uint %126173 %int_1
-      %45984 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %45983
-      %45985 = OpLoad %_arr_v2float_uint_2 %45984
-     %115474 = OpCompositeExtract %v2float %45985 0
-     %115475 = OpCompositeExtract %v2float %45985 1
-               OpBranch %45987
-      %45973 = OpLabel
-      %45975 = OpIAdd %uint %126174 %int_1
-      %45976 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126174
-      %45977 = OpLoad %v2float %45976
-               OpBranch %45987
-      %45986 = OpLabel
-               OpUnreachable
-      %45987 = OpLabel
-     %190946 = OpPhi %uint %45975 %45973 %126174 %45981
-     %189070 = OpPhi %uint %126173 %45973 %45983 %45981
-     %126176 = OpPhi %v2float %45977 %45973 %115474 %45981
-     %126175 = OpPhi %v2float %45977 %45973 %115475 %45981
-      %37262 = OpCompositeExtract %float %126171 0
-      %37263 = OpCompositeExtract %float %126171 1
-      %37264 = OpCompositeExtract %float %126176 0
-      %37265 = OpCompositeExtract %float %126176 1
-      %37266 = OpCompositeConstruct %v4float %37262 %37263 %37264 %37265
-      %37271 = OpCompositeExtract %float %126170 0
-      %37272 = OpCompositeExtract %float %126170 1
-      %37273 = OpCompositeExtract %float %126175 0
-      %37274 = OpCompositeExtract %float %126175 1
-      %37275 = OpCompositeConstruct %v4float %37271 %37272 %37273 %37274
-      %37276 = OpCompositeConstruct %_arr_v4float_uint_2 %37266 %37275
-      %45991 = OpIAdd %uint %126050 %int_1
-      %45993 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126050
-               OpStore %45993 %37276
-               OpBranch %38458
-      %37214 = OpLabel
-      %37217 = OpLoad %uint %30040
-      %37218 = OpBitwiseAnd %uint %37217 %uint_32768
-      %37219 = OpUGreaterThan %bool %37218 %uint_0
-               OpSelectionMerge %45913 None
-               OpSwitch %uint_0 %45897
-      %45897 = OpLabel
-               OpSelectionMerge %45912 None
-               OpBranchConditional %37219 %45899 %45907
-      %45907 = OpLabel
-      %45909 = OpISub %uint %126041 %int_1
-      %45910 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %45909
-      %45911 = OpLoad %_arr_v3float_uint_2 %45910
-     %115501 = OpCompositeExtract %v3float %45911 0
-     %115502 = OpCompositeExtract %v3float %45911 1
-               OpBranch %45913
-      %45899 = OpLabel
-      %45901 = OpIAdd %uint %126044 %int_1
-      %45902 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %45903 = OpLoad %v3float %45902
-               OpBranch %45913
-      %45912 = OpLabel
-               OpUnreachable
-      %45913 = OpLabel
-     %188591 = OpPhi %uint %45901 %45899 %126044 %45907
-     %188296 = OpPhi %uint %126041 %45899 %45909 %45907
-     %126180 = OpPhi %v3float %45903 %45899 %115501 %45907
-     %126179 = OpPhi %v3float %45903 %45899 %115502 %45907
-      %37223 = OpLoad %uint %30040
-      %37224 = OpBitwiseAnd %uint %37223 %uint_16384
-      %37225 = OpUGreaterThan %bool %37224 %uint_0
-               OpSelectionMerge %45936 None
-               OpSwitch %uint_0 %45920
-      %45920 = OpLabel
-               OpSelectionMerge %45935 None
-               OpBranchConditional %37225 %45922 %45930
-      %45930 = OpLabel
-      %45932 = OpISub %uint %126031 %int_1
-      %45933 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45932
-      %45934 = OpLoad %_arr_float_uint_2 %45933
-     %115492 = OpCompositeExtract %float %45934 0
-     %115493 = OpCompositeExtract %float %45934 1
-               OpBranch %45936
-      %45922 = OpLabel
-      %45924 = OpIAdd %uint %126033 %int_1
-      %45925 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %45926 = OpLoad %float %45925
-               OpBranch %45936
-      %45935 = OpLabel
-               OpUnreachable
-      %45936 = OpLabel
-     %128501 = OpPhi %uint %45924 %45922 %126033 %45930
-     %128254 = OpPhi %uint %126031 %45922 %45932 %45930
-     %126185 = OpPhi %float %45926 %45922 %115492 %45930
-     %126184 = OpPhi %float %45926 %45922 %115493 %45930
-      %37231 = OpCompositeExtract %float %126180 0
-      %37232 = OpCompositeExtract %float %126180 1
-      %37233 = OpCompositeExtract %float %126180 2
-      %37234 = OpCompositeConstruct %v4float %37231 %37232 %37233 %126185
-      %37239 = OpCompositeExtract %float %126179 0
-      %37240 = OpCompositeExtract %float %126179 1
-      %37241 = OpCompositeExtract %float %126179 2
-      %37242 = OpCompositeConstruct %v4float %37239 %37240 %37241 %126184
-      %37243 = OpCompositeConstruct %_arr_v4float_uint_2 %37234 %37242
-      %45940 = OpIAdd %uint %126050 %int_1
-      %45942 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126050
-               OpStore %45942 %37243
-               OpBranch %38458
-      %37175 = OpLabel
-      %37178 = OpLoad %uint %30040
-      %37179 = OpBitwiseAnd %uint %37178 %uint_32768
-      %37180 = OpUGreaterThan %bool %37179 %uint_0
-               OpSelectionMerge %45839 None
-               OpSwitch %uint_0 %45823
-      %45823 = OpLabel
-               OpSelectionMerge %45838 None
-               OpBranchConditional %37180 %45825 %45833
-      %45833 = OpLabel
-      %45835 = OpISub %uint %126052 %int_1
-      %45836 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %45835
-      %45837 = OpLoad %_arr_v2float_uint_2 %45836
-     %115528 = OpCompositeExtract %v2float %45837 0
-     %115529 = OpCompositeExtract %v2float %45837 1
-               OpBranch %45839
-      %45825 = OpLabel
-      %45827 = OpIAdd %uint %126104 %int_1
-      %45828 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %45829 = OpLoad %v2float %45828
-               OpBranch %45839
-      %45838 = OpLabel
-               OpUnreachable
-      %45839 = OpLabel
-     %190943 = OpPhi %uint %45827 %45825 %126104 %45833
-     %189067 = OpPhi %uint %126052 %45825 %45835 %45833
-     %126189 = OpPhi %v2float %45829 %45825 %115528 %45833
-     %126188 = OpPhi %v2float %45829 %45825 %115529 %45833
-      %37184 = OpLoad %uint %30040
-      %37185 = OpBitwiseAnd %uint %37184 %uint_16384
-      %37186 = OpUGreaterThan %bool %37185 %uint_0
-               OpSelectionMerge %45862 None
-               OpSwitch %uint_0 %45846
-      %45846 = OpLabel
-               OpSelectionMerge %45861 None
-               OpBranchConditional %37186 %45848 %45856
-      %45856 = OpLabel
-      %45858 = OpISub %uint %126031 %int_1
-      %45859 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45858
-      %45860 = OpLoad %_arr_float_uint_2 %45859
-     %115519 = OpCompositeExtract %float %45860 0
-     %115520 = OpCompositeExtract %float %45860 1
-               OpBranch %45862
-      %45848 = OpLabel
-      %45850 = OpIAdd %uint %126033 %int_1
-      %45851 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %45852 = OpLoad %float %45851
-               OpBranch %45862
-      %45861 = OpLabel
-               OpUnreachable
-      %45862 = OpLabel
-     %126197 = OpPhi %uint %45850 %45848 %126033 %45856
-     %126196 = OpPhi %uint %126031 %45848 %45858 %45856
-     %126194 = OpPhi %float %45852 %45848 %115519 %45856
-     %126193 = OpPhi %float %45852 %45848 %115520 %45856
-      %37190 = OpLoad %uint %30040
-      %37191 = OpBitwiseAnd %uint %37190 %uint_8192
-      %37192 = OpUGreaterThan %bool %37191 %uint_0
-               OpSelectionMerge %45885 None
-               OpSwitch %uint_0 %45869
-      %45869 = OpLabel
-               OpSelectionMerge %45884 None
-               OpBranchConditional %37192 %45871 %45879
-      %45879 = OpLabel
-      %45881 = OpISub %uint %126196 %int_1
-      %45882 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45881
-      %45883 = OpLoad %_arr_float_uint_2 %45882
-     %115510 = OpCompositeExtract %float %45883 0
-     %115511 = OpCompositeExtract %float %45883 1
-               OpBranch %45885
-      %45871 = OpLabel
-      %45873 = OpIAdd %uint %126197 %int_1
-      %45874 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126197
-      %45875 = OpLoad %float %45874
-               OpBranch %45885
-      %45884 = OpLabel
-               OpUnreachable
-      %45885 = OpLabel
-     %128500 = OpPhi %uint %45873 %45871 %126197 %45879
-     %128253 = OpPhi %uint %126196 %45871 %45881 %45879
-     %126199 = OpPhi %float %45875 %45871 %115510 %45879
-     %126198 = OpPhi %float %45875 %45871 %115511 %45879
-      %37200 = OpCompositeExtract %float %126189 0
-      %37201 = OpCompositeExtract %float %126189 1
-      %37202 = OpCompositeConstruct %v4float %37200 %37201 %126194 %126199
-      %37209 = OpCompositeExtract %float %126188 0
-      %37210 = OpCompositeExtract %float %126188 1
-      %37211 = OpCompositeConstruct %v4float %37209 %37210 %126193 %126198
-      %37212 = OpCompositeConstruct %_arr_v4float_uint_2 %37202 %37211
-      %45889 = OpIAdd %uint %126050 %int_1
-      %45891 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126050
-               OpStore %45891 %37212
-               OpBranch %38458
-      %37130 = OpLabel
-      %37133 = OpLoad %uint %30040
-      %37134 = OpBitwiseAnd %uint %37133 %uint_32768
-      %37135 = OpUGreaterThan %bool %37134 %uint_0
-               OpSelectionMerge %45742 None
-               OpSwitch %uint_0 %45726
-      %45726 = OpLabel
-               OpSelectionMerge %45741 None
-               OpBranchConditional %37135 %45728 %45736
-      %45736 = OpLabel
-      %45738 = OpISub %uint %126031 %int_1
-      %45739 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45738
-      %45740 = OpLoad %_arr_float_uint_2 %45739
-     %115564 = OpCompositeExtract %float %45740 0
-     %115565 = OpCompositeExtract %float %45740 1
-               OpBranch %45742
-      %45728 = OpLabel
-      %45730 = OpIAdd %uint %126033 %int_1
-      %45731 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %45732 = OpLoad %float %45731
-               OpBranch %45742
-      %45741 = OpLabel
-               OpUnreachable
-      %45742 = OpLabel
-     %126207 = OpPhi %uint %45730 %45728 %126033 %45736
-     %126206 = OpPhi %uint %126031 %45728 %45738 %45736
-     %126204 = OpPhi %float %45732 %45728 %115564 %45736
-     %126203 = OpPhi %float %45732 %45728 %115565 %45736
-      %37139 = OpLoad %uint %30040
-      %37140 = OpBitwiseAnd %uint %37139 %uint_16384
-      %37141 = OpUGreaterThan %bool %37140 %uint_0
-               OpSelectionMerge %45765 None
-               OpSwitch %uint_0 %45749
-      %45749 = OpLabel
-               OpSelectionMerge %45764 None
-               OpBranchConditional %37141 %45751 %45759
-      %45759 = OpLabel
-      %45761 = OpISub %uint %126206 %int_1
-      %45762 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45761
-      %45763 = OpLoad %_arr_float_uint_2 %45762
-     %115555 = OpCompositeExtract %float %45763 0
-     %115556 = OpCompositeExtract %float %45763 1
-               OpBranch %45765
-      %45751 = OpLabel
-      %45753 = OpIAdd %uint %126207 %int_1
-      %45754 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126207
-      %45755 = OpLoad %float %45754
-               OpBranch %45765
-      %45764 = OpLabel
-               OpUnreachable
-      %45765 = OpLabel
-     %126212 = OpPhi %uint %45753 %45751 %126207 %45759
-     %126211 = OpPhi %uint %126206 %45751 %45761 %45759
-     %126209 = OpPhi %float %45755 %45751 %115555 %45759
-     %126208 = OpPhi %float %45755 %45751 %115556 %45759
-      %37145 = OpLoad %uint %30040
-      %37146 = OpBitwiseAnd %uint %37145 %uint_8192
-      %37147 = OpUGreaterThan %bool %37146 %uint_0
-               OpSelectionMerge %45788 None
-               OpSwitch %uint_0 %45772
-      %45772 = OpLabel
-               OpSelectionMerge %45787 None
-               OpBranchConditional %37147 %45774 %45782
-      %45782 = OpLabel
-      %45784 = OpISub %uint %126211 %int_1
-      %45785 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45784
-      %45786 = OpLoad %_arr_float_uint_2 %45785
-     %115546 = OpCompositeExtract %float %45786 0
-     %115547 = OpCompositeExtract %float %45786 1
-               OpBranch %45788
-      %45774 = OpLabel
-      %45776 = OpIAdd %uint %126212 %int_1
-      %45777 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126212
-      %45778 = OpLoad %float %45777
-               OpBranch %45788
-      %45787 = OpLabel
-               OpUnreachable
-      %45788 = OpLabel
-     %126217 = OpPhi %uint %45776 %45774 %126212 %45782
-     %126216 = OpPhi %uint %126211 %45774 %45784 %45782
-     %126214 = OpPhi %float %45778 %45774 %115546 %45782
-     %126213 = OpPhi %float %45778 %45774 %115547 %45782
-      %37151 = OpLoad %uint %30040
-      %37152 = OpBitwiseAnd %uint %37151 %uint_4096
-      %37153 = OpUGreaterThan %bool %37152 %uint_0
-               OpSelectionMerge %45811 None
-               OpSwitch %uint_0 %45795
-      %45795 = OpLabel
-               OpSelectionMerge %45810 None
-               OpBranchConditional %37153 %45797 %45805
-      %45805 = OpLabel
-      %45807 = OpISub %uint %126216 %int_1
-      %45808 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45807
-      %45809 = OpLoad %_arr_float_uint_2 %45808
-     %115537 = OpCompositeExtract %float %45809 0
-     %115538 = OpCompositeExtract %float %45809 1
-               OpBranch %45811
-      %45797 = OpLabel
-      %45799 = OpIAdd %uint %126217 %int_1
-      %45800 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126217
-      %45801 = OpLoad %float %45800
-               OpBranch %45811
-      %45810 = OpLabel
-               OpUnreachable
-      %45811 = OpLabel
-     %128499 = OpPhi %uint %45799 %45797 %126217 %45805
-     %128252 = OpPhi %uint %126216 %45797 %45807 %45805
-     %126219 = OpPhi %float %45801 %45797 %115537 %45805
-     %126218 = OpPhi %float %45801 %45797 %115538 %45805
-      %37163 = OpCompositeConstruct %v4float %126204 %126209 %126214 %126219
-      %37172 = OpCompositeConstruct %v4float %126203 %126208 %126213 %126218
-      %37173 = OpCompositeConstruct %_arr_v4float_uint_2 %37163 %37172
-      %45815 = OpIAdd %uint %126050 %int_1
-      %45817 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126050
-               OpStore %45817 %37173
-               OpBranch %38458
-      %37101 = OpLabel
-      %37104 = OpLoad %uint %30040
-      %37105 = OpBitwiseAnd %uint %37104 %uint_32768
-      %37106 = OpUGreaterThan %bool %37105 %uint_0
-               OpSelectionMerge %45691 None
-               OpSwitch %uint_0 %45675
-      %45675 = OpLabel
-               OpSelectionMerge %45690 None
-               OpBranchConditional %37106 %45677 %45685
-      %45685 = OpLabel
-      %45687 = OpISub %uint %126052 %int_1
-      %45688 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %45687
-      %45689 = OpLoad %_arr_v2float_uint_2 %45688
-     %115582 = OpCompositeExtract %v2float %45689 0
-     %115583 = OpCompositeExtract %v2float %45689 1
-               OpBranch %45691
-      %45677 = OpLabel
-      %45679 = OpIAdd %uint %126104 %int_1
-      %45680 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %45681 = OpLoad %v2float %45680
-               OpBranch %45691
-      %45690 = OpLabel
-               OpUnreachable
-      %45691 = OpLabel
-     %190936 = OpPhi %uint %45679 %45677 %126104 %45685
-     %189060 = OpPhi %uint %126052 %45677 %45687 %45685
-     %126225 = OpPhi %v2float %45681 %45677 %115582 %45685
-     %126224 = OpPhi %v2float %45681 %45677 %115583 %45685
-      %37110 = OpLoad %uint %30040
-      %37111 = OpBitwiseAnd %uint %37110 %uint_16384
-      %37112 = OpUGreaterThan %bool %37111 %uint_0
-               OpSelectionMerge %45714 None
-               OpSwitch %uint_0 %45698
-      %45698 = OpLabel
-               OpSelectionMerge %45713 None
-               OpBranchConditional %37112 %45700 %45708
-      %45708 = OpLabel
-      %45710 = OpISub %uint %126031 %int_1
-      %45711 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45710
-      %45712 = OpLoad %_arr_float_uint_2 %45711
-     %115573 = OpCompositeExtract %float %45712 0
-     %115574 = OpCompositeExtract %float %45712 1
-               OpBranch %45714
-      %45700 = OpLabel
-      %45702 = OpIAdd %uint %126033 %int_1
-      %45703 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %45704 = OpLoad %float %45703
-               OpBranch %45714
-      %45713 = OpLabel
-               OpUnreachable
-      %45714 = OpLabel
-     %128498 = OpPhi %uint %45702 %45700 %126033 %45708
-     %128251 = OpPhi %uint %126031 %45700 %45710 %45708
-     %126230 = OpPhi %float %45704 %45700 %115573 %45708
-     %126229 = OpPhi %float %45704 %45700 %115574 %45708
-      %37118 = OpCompositeExtract %float %126225 0
-      %37119 = OpCompositeExtract %float %126225 1
-      %37120 = OpCompositeConstruct %v3float %37118 %37119 %126230
-      %37125 = OpCompositeExtract %float %126224 0
-      %37126 = OpCompositeExtract %float %126224 1
-      %37127 = OpCompositeConstruct %v3float %37125 %37126 %126229
-      %37128 = OpCompositeConstruct %_arr_v3float_uint_2 %37120 %37127
-      %45718 = OpIAdd %uint %126041 %int_1
-      %45720 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126041
-               OpStore %45720 %37128
-               OpBranch %38458
-      %37066 = OpLabel
-      %37069 = OpLoad %uint %30040
-      %37070 = OpBitwiseAnd %uint %37069 %uint_32768
-      %37071 = OpUGreaterThan %bool %37070 %uint_0
-               OpSelectionMerge %45617 None
-               OpSwitch %uint_0 %45601
-      %45601 = OpLabel
-               OpSelectionMerge %45616 None
-               OpBranchConditional %37071 %45603 %45611
-      %45611 = OpLabel
-      %45613 = OpISub %uint %126031 %int_1
-      %45614 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45613
-      %45615 = OpLoad %_arr_float_uint_2 %45614
-     %115609 = OpCompositeExtract %float %45615 0
-     %115610 = OpCompositeExtract %float %45615 1
-               OpBranch %45617
-      %45603 = OpLabel
-      %45605 = OpIAdd %uint %126033 %int_1
-      %45606 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %45607 = OpLoad %float %45606
-               OpBranch %45617
-      %45616 = OpLabel
-               OpUnreachable
-      %45617 = OpLabel
-     %126237 = OpPhi %uint %45605 %45603 %126033 %45611
-     %126236 = OpPhi %uint %126031 %45603 %45613 %45611
-     %126234 = OpPhi %float %45607 %45603 %115609 %45611
-     %126233 = OpPhi %float %45607 %45603 %115610 %45611
-      %37075 = OpLoad %uint %30040
-      %37076 = OpBitwiseAnd %uint %37075 %uint_16384
-      %37077 = OpUGreaterThan %bool %37076 %uint_0
-               OpSelectionMerge %45640 None
-               OpSwitch %uint_0 %45624
-      %45624 = OpLabel
-               OpSelectionMerge %45639 None
-               OpBranchConditional %37077 %45626 %45634
-      %45634 = OpLabel
-      %45636 = OpISub %uint %126236 %int_1
-      %45637 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45636
-      %45638 = OpLoad %_arr_float_uint_2 %45637
-     %115600 = OpCompositeExtract %float %45638 0
-     %115601 = OpCompositeExtract %float %45638 1
-               OpBranch %45640
-      %45626 = OpLabel
-      %45628 = OpIAdd %uint %126237 %int_1
-      %45629 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126237
-      %45630 = OpLoad %float %45629
-               OpBranch %45640
-      %45639 = OpLabel
-               OpUnreachable
-      %45640 = OpLabel
-     %126242 = OpPhi %uint %45628 %45626 %126237 %45634
-     %126241 = OpPhi %uint %126236 %45626 %45636 %45634
-     %126239 = OpPhi %float %45630 %45626 %115600 %45634
-     %126238 = OpPhi %float %45630 %45626 %115601 %45634
-      %37081 = OpLoad %uint %30040
-      %37082 = OpBitwiseAnd %uint %37081 %uint_8192
-      %37083 = OpUGreaterThan %bool %37082 %uint_0
-               OpSelectionMerge %45663 None
-               OpSwitch %uint_0 %45647
-      %45647 = OpLabel
-               OpSelectionMerge %45662 None
-               OpBranchConditional %37083 %45649 %45657
-      %45657 = OpLabel
-      %45659 = OpISub %uint %126241 %int_1
-      %45660 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45659
-      %45661 = OpLoad %_arr_float_uint_2 %45660
-     %115591 = OpCompositeExtract %float %45661 0
-     %115592 = OpCompositeExtract %float %45661 1
-               OpBranch %45663
-      %45649 = OpLabel
-      %45651 = OpIAdd %uint %126242 %int_1
-      %45652 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126242
-      %45653 = OpLoad %float %45652
-               OpBranch %45663
-      %45662 = OpLabel
-               OpUnreachable
-      %45663 = OpLabel
-     %128497 = OpPhi %uint %45651 %45649 %126242 %45657
-     %128250 = OpPhi %uint %126241 %45649 %45659 %45657
-     %126244 = OpPhi %float %45653 %45649 %115591 %45657
-     %126243 = OpPhi %float %45653 %45649 %115592 %45657
-      %37091 = OpCompositeConstruct %v3float %126234 %126239 %126244
-      %37098 = OpCompositeConstruct %v3float %126233 %126238 %126243
-      %37099 = OpCompositeConstruct %_arr_v3float_uint_2 %37091 %37098
-      %45667 = OpIAdd %uint %126041 %int_1
-      %45669 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126041
-               OpStore %45669 %37099
-               OpBranch %38458
-      %37041 = OpLabel
-      %37044 = OpLoad %uint %30040
-      %37045 = OpBitwiseAnd %uint %37044 %uint_32768
-      %37046 = OpUGreaterThan %bool %37045 %uint_0
-               OpSelectionMerge %45566 None
-               OpSwitch %uint_0 %45550
-      %45550 = OpLabel
-               OpSelectionMerge %45565 None
-               OpBranchConditional %37046 %45552 %45560
-      %45560 = OpLabel
-      %45562 = OpISub %uint %126031 %int_1
-      %45563 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45562
-      %45564 = OpLoad %_arr_float_uint_2 %45563
-     %115627 = OpCompositeExtract %float %45564 0
-     %115628 = OpCompositeExtract %float %45564 1
-               OpBranch %45566
-      %45552 = OpLabel
-      %45554 = OpIAdd %uint %126033 %int_1
-      %45555 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %45556 = OpLoad %float %45555
-               OpBranch %45566
-      %45565 = OpLabel
-               OpUnreachable
-      %45566 = OpLabel
-     %126252 = OpPhi %uint %45554 %45552 %126033 %45560
-     %126251 = OpPhi %uint %126031 %45552 %45562 %45560
-     %126249 = OpPhi %float %45556 %45552 %115627 %45560
-     %126248 = OpPhi %float %45556 %45552 %115628 %45560
-      %37050 = OpLoad %uint %30040
-      %37051 = OpBitwiseAnd %uint %37050 %uint_16384
-      %37052 = OpUGreaterThan %bool %37051 %uint_0
-               OpSelectionMerge %45589 None
-               OpSwitch %uint_0 %45573
-      %45573 = OpLabel
-               OpSelectionMerge %45588 None
-               OpBranchConditional %37052 %45575 %45583
-      %45583 = OpLabel
-      %45585 = OpISub %uint %126251 %int_1
-      %45586 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45585
-      %45587 = OpLoad %_arr_float_uint_2 %45586
-     %115618 = OpCompositeExtract %float %45587 0
-     %115619 = OpCompositeExtract %float %45587 1
-               OpBranch %45589
-      %45575 = OpLabel
-      %45577 = OpIAdd %uint %126252 %int_1
-      %45578 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126252
-      %45579 = OpLoad %float %45578
-               OpBranch %45589
-      %45588 = OpLabel
-               OpUnreachable
-      %45589 = OpLabel
-     %128496 = OpPhi %uint %45577 %45575 %126252 %45583
-     %128249 = OpPhi %uint %126251 %45575 %45585 %45583
-     %126254 = OpPhi %float %45579 %45575 %115618 %45583
-     %126253 = OpPhi %float %45579 %45575 %115619 %45583
-      %37058 = OpCompositeConstruct %v2float %126249 %126254
-      %37063 = OpCompositeConstruct %v2float %126248 %126253
-      %37064 = OpCompositeConstruct %_arr_v2float_uint_2 %37058 %37063
-      %45593 = OpIAdd %uint %126052 %int_1
-      %45595 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126052
-               OpStore %45595 %37064
-               OpBranch %38458
-      %36793 = OpLabel
-      %36796 = OpLoad %uint %30040
-      %36797 = OpBitwiseAnd %uint %36796 %uint_32768
-      %36798 = OpUGreaterThan %bool %36797 %uint_0
-               OpSelectionMerge %45538 None
-               OpSwitch %uint_0 %45522
-      %45522 = OpLabel
-               OpSelectionMerge %45537 None
-               OpBranchConditional %36798 %45524 %45532
-      %45532 = OpLabel
-      %45534 = OpISub %uint %126050 %int_1
-      %45535 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %45534
-      %45536 = OpLoad %_arr_v4float_uint_2 %45535
-     %115636 = OpCompositeExtract %v4float %45536 0
-     %115637 = OpCompositeExtract %v4float %45536 1
-               OpBranch %45538
-      %45524 = OpLabel
-      %45526 = OpIAdd %uint %126076 %int_1
-      %45527 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %45528 = OpLoad %v4float %45527
-               OpBranch %45538
-      %45537 = OpLabel
-               OpUnreachable
-      %45538 = OpLabel
-     %189349 = OpPhi %uint %45526 %45524 %126076 %45532
-     %126259 = OpPhi %uint %126050 %45524 %45534 %45532
-     %126258 = OpPhi %v4float %45528 %45524 %115636 %45532
-     %126257 = OpPhi %v4float %45528 %45524 %115637 %45532
-      %36802 = OpFOrdGreaterThan %v4bool %126257 %3375
-      %36805 = OpFOrdLessThan %v4bool %126258 %3375
-      %36806 = OpSelect %v4bool %36805 %36802 %3373
-      %36809 = OpExtInst %v4float %1 FAbs %126258
-      %36812 = OpExtInst %v4float %1 FAbs %126257
-      %36813 = OpExtInst %v4float %1 FMin %36809 %36812
-      %36815 = OpSelect %v4float %36806 %3375 %36813
-      %36822 = OpExtInst %v4float %1 FMax %36809 %36812
-      %36824 = OpCompositeExtract %float %126257 0
-      %36828 = OpCompositeExtract %float %36815 1
-      %36830 = OpCompositeExtract %float %36815 2
-      %36832 = OpCompositeExtract %float %36815 3
-      %36833 = OpCompositeConstruct %v4float %36824 %36828 %36830 %36832
-      %36834 = OpExtInst %float %1 Length %36833
-      %36835 = OpFDiv %float %36824 %36834
-      %36837 = OpCompositeExtract %float %126257 1
-      %36839 = OpCompositeExtract %float %36815 0
-      %36846 = OpCompositeConstruct %v4float %36839 %36837 %36830 %36832
-      %36847 = OpExtInst %float %1 Length %36846
-      %36848 = OpFDiv %float %36837 %36847
-      %36850 = OpCompositeExtract %float %126257 2
-      %36859 = OpCompositeConstruct %v4float %36839 %36828 %36850 %36832
-      %36860 = OpExtInst %float %1 Length %36859
-      %36861 = OpFDiv %float %36850 %36860
-      %36863 = OpCompositeExtract %float %126257 3
-      %36872 = OpCompositeConstruct %v4float %36839 %36828 %36830 %36863
-      %36873 = OpExtInst %float %1 Length %36872
-      %36874 = OpFDiv %float %36863 %36873
-      %36875 = OpCompositeConstruct %v4float %36835 %36848 %36861 %36874
-      %36881 = OpCompositeExtract %float %36822 1
-      %36883 = OpCompositeExtract %float %36822 2
-      %36885 = OpCompositeExtract %float %36822 3
-      %36886 = OpCompositeConstruct %v4float %36824 %36881 %36883 %36885
-      %36887 = OpExtInst %float %1 Length %36886
-      %36888 = OpFDiv %float %36824 %36887
-      %36892 = OpCompositeExtract %float %36822 0
-      %36899 = OpCompositeConstruct %v4float %36892 %36837 %36883 %36885
-      %36900 = OpExtInst %float %1 Length %36899
-      %36901 = OpFDiv %float %36837 %36900
-      %36912 = OpCompositeConstruct %v4float %36892 %36881 %36850 %36885
-      %36913 = OpExtInst %float %1 Length %36912
-      %36914 = OpFDiv %float %36850 %36913
-      %36925 = OpCompositeConstruct %v4float %36892 %36881 %36883 %36863
-      %36926 = OpExtInst %float %1 Length %36925
-      %36927 = OpFDiv %float %36863 %36926
-      %36928 = OpCompositeConstruct %v4float %36888 %36901 %36914 %36927
-      %36929 = OpExtInst %v4float %1 FMax %36875 %36928
-      %36931 = OpCompositeExtract %float %126258 0
-      %36940 = OpCompositeConstruct %v4float %36931 %36828 %36830 %36832
-      %36941 = OpExtInst %float %1 Length %36940
-      %36942 = OpFDiv %float %36931 %36941
-      %36944 = OpCompositeExtract %float %126258 1
-      %36953 = OpCompositeConstruct %v4float %36839 %36944 %36830 %36832
-      %36954 = OpExtInst %float %1 Length %36953
-      %36955 = OpFDiv %float %36944 %36954
-      %36957 = OpCompositeExtract %float %126258 2
-      %36966 = OpCompositeConstruct %v4float %36839 %36828 %36957 %36832
-      %36967 = OpExtInst %float %1 Length %36966
-      %36968 = OpFDiv %float %36957 %36967
-      %36970 = OpCompositeExtract %float %126258 3
-      %36979 = OpCompositeConstruct %v4float %36839 %36828 %36830 %36970
-      %36980 = OpExtInst %float %1 Length %36979
-      %36981 = OpFDiv %float %36970 %36980
-      %36982 = OpCompositeConstruct %v4float %36942 %36955 %36968 %36981
-      %36993 = OpCompositeConstruct %v4float %36931 %36881 %36883 %36885
-      %36994 = OpExtInst %float %1 Length %36993
-      %36995 = OpFDiv %float %36931 %36994
-      %37006 = OpCompositeConstruct %v4float %36892 %36944 %36883 %36885
-      %37007 = OpExtInst %float %1 Length %37006
-      %37008 = OpFDiv %float %36944 %37007
-      %37019 = OpCompositeConstruct %v4float %36892 %36881 %36957 %36885
-      %37020 = OpExtInst %float %1 Length %37019
-      %37021 = OpFDiv %float %36957 %37020
-      %37032 = OpCompositeConstruct %v4float %36892 %36881 %36883 %36970
-      %37033 = OpExtInst %float %1 Length %37032
-      %37034 = OpFDiv %float %36970 %37033
-      %37035 = OpCompositeConstruct %v4float %36995 %37008 %37021 %37034
-      %37036 = OpExtInst %v4float %1 FMin %36982 %37035
-      %37039 = OpCompositeConstruct %_arr_v4float_uint_2 %37036 %36929
-      %45542 = OpIAdd %uint %126259 %int_1
-      %45544 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126259
-               OpStore %45544 %37039
-               OpBranch %38458
-      %36621 = OpLabel
-      %36624 = OpLoad %uint %30040
-      %36625 = OpBitwiseAnd %uint %36624 %uint_32768
-      %36626 = OpUGreaterThan %bool %36625 %uint_0
-               OpSelectionMerge %45510 None
-               OpSwitch %uint_0 %45494
-      %45494 = OpLabel
-               OpSelectionMerge %45509 None
-               OpBranchConditional %36626 %45496 %45504
-      %45504 = OpLabel
-      %45506 = OpISub %uint %126041 %int_1
-      %45507 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %45506
-      %45508 = OpLoad %_arr_v3float_uint_2 %45507
-     %115645 = OpCompositeExtract %v3float %45508 0
-     %115646 = OpCompositeExtract %v3float %45508 1
-               OpBranch %45510
-      %45496 = OpLabel
-      %45498 = OpIAdd %uint %126044 %int_1
-      %45499 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %45500 = OpLoad %v3float %45499
-               OpBranch %45510
-      %45509 = OpLabel
-               OpUnreachable
-      %45510 = OpLabel
-     %188574 = OpPhi %uint %45498 %45496 %126044 %45504
-     %126262 = OpPhi %uint %126041 %45496 %45506 %45504
-     %126261 = OpPhi %v3float %45500 %45496 %115645 %45504
-     %126260 = OpPhi %v3float %45500 %45496 %115646 %45504
-      %36630 = OpFOrdGreaterThan %v3bool %126260 %123
-      %36633 = OpFOrdLessThan %v3bool %126261 %123
-      %36634 = OpSelect %v3bool %36633 %36630 %3323
-      %36637 = OpExtInst %v3float %1 FAbs %126261
-      %36640 = OpExtInst %v3float %1 FAbs %126260
-      %36641 = OpExtInst %v3float %1 FMin %36637 %36640
-      %36643 = OpSelect %v3float %36634 %123 %36641
-      %36650 = OpExtInst %v3float %1 FMax %36637 %36640
-      %36652 = OpCompositeExtract %float %126260 0
-      %36656 = OpCompositeExtract %float %36643 1
-      %36658 = OpCompositeExtract %float %36643 2
-      %36659 = OpCompositeConstruct %v3float %36652 %36656 %36658
-      %36660 = OpExtInst %float %1 Length %36659
-      %36661 = OpFDiv %float %36652 %36660
-      %36663 = OpCompositeExtract %float %126260 1
-      %36665 = OpCompositeExtract %float %36643 0
-      %36670 = OpCompositeConstruct %v3float %36665 %36663 %36658
-      %36671 = OpExtInst %float %1 Length %36670
-      %36672 = OpFDiv %float %36663 %36671
-      %36674 = OpCompositeExtract %float %126260 2
-      %36681 = OpCompositeConstruct %v3float %36665 %36656 %36674
-      %36682 = OpExtInst %float %1 Length %36681
-      %36683 = OpFDiv %float %36674 %36682
-      %36684 = OpCompositeConstruct %v3float %36661 %36672 %36683
-      %36690 = OpCompositeExtract %float %36650 1
-      %36692 = OpCompositeExtract %float %36650 2
-      %36693 = OpCompositeConstruct %v3float %36652 %36690 %36692
-      %36694 = OpExtInst %float %1 Length %36693
-      %36695 = OpFDiv %float %36652 %36694
-      %36699 = OpCompositeExtract %float %36650 0
-      %36704 = OpCompositeConstruct %v3float %36699 %36663 %36692
-      %36705 = OpExtInst %float %1 Length %36704
-      %36706 = OpFDiv %float %36663 %36705
-      %36715 = OpCompositeConstruct %v3float %36699 %36690 %36674
-      %36716 = OpExtInst %float %1 Length %36715
-      %36717 = OpFDiv %float %36674 %36716
-      %36718 = OpCompositeConstruct %v3float %36695 %36706 %36717
-      %36719 = OpExtInst %v3float %1 FMax %36684 %36718
-      %36721 = OpCompositeExtract %float %126261 0
-      %36728 = OpCompositeConstruct %v3float %36721 %36656 %36658
-      %36729 = OpExtInst %float %1 Length %36728
-      %36730 = OpFDiv %float %36721 %36729
-      %36732 = OpCompositeExtract %float %126261 1
-      %36739 = OpCompositeConstruct %v3float %36665 %36732 %36658
-      %36740 = OpExtInst %float %1 Length %36739
-      %36741 = OpFDiv %float %36732 %36740
-      %36743 = OpCompositeExtract %float %126261 2
-      %36750 = OpCompositeConstruct %v3float %36665 %36656 %36743
-      %36751 = OpExtInst %float %1 Length %36750
-      %36752 = OpFDiv %float %36743 %36751
-      %36753 = OpCompositeConstruct %v3float %36730 %36741 %36752
-      %36762 = OpCompositeConstruct %v3float %36721 %36690 %36692
-      %36763 = OpExtInst %float %1 Length %36762
-      %36764 = OpFDiv %float %36721 %36763
-      %36773 = OpCompositeConstruct %v3float %36699 %36732 %36692
-      %36774 = OpExtInst %float %1 Length %36773
-      %36775 = OpFDiv %float %36732 %36774
-      %36784 = OpCompositeConstruct %v3float %36699 %36690 %36743
-      %36785 = OpExtInst %float %1 Length %36784
-      %36786 = OpFDiv %float %36743 %36785
-      %36787 = OpCompositeConstruct %v3float %36764 %36775 %36786
-      %36788 = OpExtInst %v3float %1 FMin %36753 %36787
-      %36791 = OpCompositeConstruct %_arr_v3float_uint_2 %36788 %36719
-      %45514 = OpIAdd %uint %126262 %int_1
-      %45516 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126262
-               OpStore %45516 %36791
-               OpBranch %38458
-      %36509 = OpLabel
-      %36512 = OpLoad %uint %30040
-      %36513 = OpBitwiseAnd %uint %36512 %uint_32768
-      %36514 = OpUGreaterThan %bool %36513 %uint_0
-               OpSelectionMerge %45482 None
-               OpSwitch %uint_0 %45466
-      %45466 = OpLabel
-               OpSelectionMerge %45481 None
-               OpBranchConditional %36514 %45468 %45476
-      %45476 = OpLabel
-      %45478 = OpISub %uint %126052 %int_1
-      %45479 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %45478
-      %45480 = OpLoad %_arr_v2float_uint_2 %45479
-     %115654 = OpCompositeExtract %v2float %45480 0
-     %115655 = OpCompositeExtract %v2float %45480 1
-               OpBranch %45482
-      %45468 = OpLabel
-      %45470 = OpIAdd %uint %126104 %int_1
-      %45471 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %45472 = OpLoad %v2float %45471
-               OpBranch %45482
-      %45481 = OpLabel
-               OpUnreachable
-      %45482 = OpLabel
-     %190927 = OpPhi %uint %45470 %45468 %126104 %45476
-     %126265 = OpPhi %uint %126052 %45468 %45478 %45476
-     %126264 = OpPhi %v2float %45472 %45468 %115654 %45476
-     %126263 = OpPhi %v2float %45472 %45468 %115655 %45476
-      %36518 = OpFOrdGreaterThan %v2bool %126263 %3274
-      %36521 = OpFOrdLessThan %v2bool %126264 %3274
-      %36522 = OpSelect %v2bool %36521 %36518 %3272
-      %36525 = OpExtInst %v2float %1 FAbs %126264
-      %36528 = OpExtInst %v2float %1 FAbs %126263
-      %36529 = OpExtInst %v2float %1 FMin %36525 %36528
-      %36531 = OpSelect %v2float %36522 %3274 %36529
-      %36538 = OpExtInst %v2float %1 FMax %36525 %36528
-      %36540 = OpCompositeExtract %float %126263 0
-      %36544 = OpCompositeExtract %float %36531 1
-      %36545 = OpCompositeConstruct %v2float %36540 %36544
-      %36546 = OpExtInst %float %1 Length %36545
-      %36547 = OpFDiv %float %36540 %36546
-      %36549 = OpCompositeExtract %float %126263 1
-      %36551 = OpCompositeExtract %float %36531 0
-      %36554 = OpCompositeConstruct %v2float %36551 %36549
-      %36555 = OpExtInst %float %1 Length %36554
-      %36556 = OpFDiv %float %36549 %36555
-      %36557 = OpCompositeConstruct %v2float %36547 %36556
-      %36563 = OpCompositeExtract %float %36538 1
-      %36564 = OpCompositeConstruct %v2float %36540 %36563
-      %36565 = OpExtInst %float %1 Length %36564
-      %36566 = OpFDiv %float %36540 %36565
-      %36570 = OpCompositeExtract %float %36538 0
-      %36573 = OpCompositeConstruct %v2float %36570 %36549
-      %36574 = OpExtInst %float %1 Length %36573
-      %36575 = OpFDiv %float %36549 %36574
-      %36576 = OpCompositeConstruct %v2float %36566 %36575
-      %36577 = OpExtInst %v2float %1 FMax %36557 %36576
-      %36579 = OpCompositeExtract %float %126264 0
-      %36584 = OpCompositeConstruct %v2float %36579 %36544
-      %36585 = OpExtInst %float %1 Length %36584
-      %36586 = OpFDiv %float %36579 %36585
-      %36588 = OpCompositeExtract %float %126264 1
-      %36593 = OpCompositeConstruct %v2float %36551 %36588
-      %36594 = OpExtInst %float %1 Length %36593
-      %36595 = OpFDiv %float %36588 %36594
-      %36596 = OpCompositeConstruct %v2float %36586 %36595
-      %36603 = OpCompositeConstruct %v2float %36579 %36563
-      %36604 = OpExtInst %float %1 Length %36603
-      %36605 = OpFDiv %float %36579 %36604
-      %36612 = OpCompositeConstruct %v2float %36570 %36588
-      %36613 = OpExtInst %float %1 Length %36612
-      %36614 = OpFDiv %float %36588 %36613
-      %36615 = OpCompositeConstruct %v2float %36605 %36614
-      %36616 = OpExtInst %v2float %1 FMin %36596 %36615
-      %36619 = OpCompositeConstruct %_arr_v2float_uint_2 %36616 %36577
-      %45486 = OpIAdd %uint %126265 %int_1
-      %45488 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126265
-               OpStore %45488 %36619
-               OpBranch %38458
-      %36470 = OpLabel
-      %36473 = OpLoad %uint %30040
-      %36474 = OpBitwiseAnd %uint %36473 %uint_32768
-      %36475 = OpUGreaterThan %bool %36474 %uint_0
-               OpSelectionMerge %45408 None
-               OpSwitch %uint_0 %45392
-      %45392 = OpLabel
-               OpSelectionMerge %45407 None
-               OpBranchConditional %36475 %45394 %45402
-      %45402 = OpLabel
-      %45404 = OpISub %uint %126050 %int_1
-      %45405 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %45404
-      %45406 = OpLoad %_arr_v4float_uint_2 %45405
-     %115681 = OpCompositeExtract %v4float %45406 0
-     %115682 = OpCompositeExtract %v4float %45406 1
-               OpBranch %45408
-      %45394 = OpLabel
-      %45396 = OpIAdd %uint %126076 %int_1
-      %45397 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %45398 = OpLoad %v4float %45397
-               OpBranch %45408
-      %45407 = OpLabel
-               OpUnreachable
-      %45408 = OpLabel
-     %126270 = OpPhi %uint %45396 %45394 %126076 %45402
-     %126269 = OpPhi %uint %126050 %45394 %45404 %45402
-     %126267 = OpPhi %v4float %45398 %45394 %115681 %45402
-     %126266 = OpPhi %v4float %45398 %45394 %115682 %45402
-      %36479 = OpLoad %uint %30040
-      %36480 = OpBitwiseAnd %uint %36479 %uint_16384
-      %36481 = OpUGreaterThan %bool %36480 %uint_0
-               OpSelectionMerge %45431 None
-               OpSwitch %uint_0 %45415
-      %45415 = OpLabel
-               OpSelectionMerge %45430 None
-               OpBranchConditional %36481 %45417 %45425
-      %45425 = OpLabel
-      %45427 = OpISub %uint %126269 %int_1
-      %45428 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %45427
-      %45429 = OpLoad %_arr_v4float_uint_2 %45428
-     %115672 = OpCompositeExtract %v4float %45429 0
-     %115673 = OpCompositeExtract %v4float %45429 1
-               OpBranch %45431
-      %45417 = OpLabel
-      %45419 = OpIAdd %uint %126270 %int_1
-      %45420 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126270
-      %45421 = OpLoad %v4float %45420
-               OpBranch %45431
-      %45430 = OpLabel
-               OpUnreachable
-      %45431 = OpLabel
-     %189346 = OpPhi %uint %45419 %45417 %126270 %45425
-     %126285 = OpPhi %uint %126269 %45417 %45427 %45425
-     %126272 = OpPhi %v4float %45421 %45417 %115672 %45425
-     %126271 = OpPhi %v4float %45421 %45417 %115673 %45425
-      %36485 = OpLoad %uint %30040
-      %36486 = OpBitwiseAnd %uint %36485 %uint_8192
-      %36487 = OpUGreaterThan %bool %36486 %uint_0
-               OpSelectionMerge %45454 None
-               OpSwitch %uint_0 %45438
-      %45438 = OpLabel
-               OpSelectionMerge %45453 None
-               OpBranchConditional %36487 %45440 %45448
-      %45448 = OpLabel
-      %45450 = OpISub %uint %126031 %int_1
-      %45451 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45450
-      %45452 = OpLoad %_arr_float_uint_2 %45451
-     %115663 = OpCompositeExtract %float %45452 0
-     %115664 = OpCompositeExtract %float %45452 1
-               OpBranch %45454
-      %45440 = OpLabel
-      %45442 = OpIAdd %uint %126033 %int_1
-      %45443 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %45444 = OpLoad %float %45443
-               OpBranch %45454
-      %45453 = OpLabel
-               OpUnreachable
-      %45454 = OpLabel
-     %128492 = OpPhi %uint %45442 %45440 %126033 %45448
-     %128245 = OpPhi %uint %126031 %45440 %45450 %45448
-     %126279 = OpPhi %float %45444 %45440 %115663 %45448
-     %126278 = OpPhi %float %45444 %45440 %115664 %45448
-      %36495 = OpCompositeConstruct %v4float %126279 %126279 %126279 %126279
-      %36496 = OpExtInst %v4float %1 FMix %126267 %126272 %36495
-      %36504 = OpCompositeConstruct %v4float %126278 %126278 %126278 %126278
-      %36505 = OpExtInst %v4float %1 FMix %126266 %126271 %36504
-     %119757 = OpCompositeConstruct %_arr_v4float_uint_2 %36496 %36505
-      %45458 = OpIAdd %uint %126285 %int_1
-      %45460 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126285
-               OpStore %45460 %119757
-               OpBranch %38458
-      %36429 = OpLabel
-      %36432 = OpLoad %uint %30040
-      %36433 = OpBitwiseAnd %uint %36432 %uint_32768
-      %36434 = OpUGreaterThan %bool %36433 %uint_0
-               OpSelectionMerge %45334 None
-               OpSwitch %uint_0 %45318
-      %45318 = OpLabel
-               OpSelectionMerge %45333 None
-               OpBranchConditional %36434 %45320 %45328
-      %45328 = OpLabel
-      %45330 = OpISub %uint %126050 %int_1
-      %45331 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %45330
-      %45332 = OpLoad %_arr_v4float_uint_2 %45331
-     %115708 = OpCompositeExtract %v4float %45332 0
-     %115709 = OpCompositeExtract %v4float %45332 1
-               OpBranch %45334
-      %45320 = OpLabel
-      %45322 = OpIAdd %uint %126076 %int_1
-      %45323 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %45324 = OpLoad %v4float %45323
-               OpBranch %45334
-      %45333 = OpLabel
-               OpUnreachable
-      %45334 = OpLabel
-     %189344 = OpPhi %uint %45322 %45320 %126076 %45328
-     %126304 = OpPhi %uint %126050 %45320 %45330 %45328
-     %126287 = OpPhi %v4float %45324 %45320 %115708 %45328
-     %126286 = OpPhi %v4float %45324 %45320 %115709 %45328
-      %36438 = OpLoad %uint %30040
-      %36439 = OpBitwiseAnd %uint %36438 %uint_16384
-      %36440 = OpUGreaterThan %bool %36439 %uint_0
-               OpSelectionMerge %45357 None
-               OpSwitch %uint_0 %45341
-      %45341 = OpLabel
-               OpSelectionMerge %45356 None
-               OpBranchConditional %36440 %45343 %45351
-      %45351 = OpLabel
-      %45353 = OpISub %uint %126031 %int_1
-      %45354 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45353
-      %45355 = OpLoad %_arr_float_uint_2 %45354
-     %115699 = OpCompositeExtract %float %45355 0
-     %115700 = OpCompositeExtract %float %45355 1
-               OpBranch %45357
-      %45343 = OpLabel
-      %45345 = OpIAdd %uint %126033 %int_1
-      %45346 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %45347 = OpLoad %float %45346
-               OpBranch %45357
-      %45356 = OpLabel
-               OpUnreachable
-      %45357 = OpLabel
-     %126295 = OpPhi %uint %45345 %45343 %126033 %45351
-     %126294 = OpPhi %uint %126031 %45343 %45353 %45351
-     %126292 = OpPhi %float %45347 %45343 %115699 %45351
-     %126291 = OpPhi %float %45347 %45343 %115700 %45351
-      %36444 = OpLoad %uint %30040
-      %36445 = OpBitwiseAnd %uint %36444 %uint_8192
-      %36446 = OpUGreaterThan %bool %36445 %uint_0
-               OpSelectionMerge %45380 None
-               OpSwitch %uint_0 %45364
-      %45364 = OpLabel
-               OpSelectionMerge %45379 None
-               OpBranchConditional %36446 %45366 %45374
-      %45374 = OpLabel
-      %45376 = OpISub %uint %126294 %int_1
-      %45377 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45376
-      %45378 = OpLoad %_arr_float_uint_2 %45377
-     %115690 = OpCompositeExtract %float %45378 0
-     %115691 = OpCompositeExtract %float %45378 1
-               OpBranch %45380
-      %45366 = OpLabel
-      %45368 = OpIAdd %uint %126295 %int_1
-      %45369 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126295
-      %45370 = OpLoad %float %45369
-               OpBranch %45380
-      %45379 = OpLabel
-               OpUnreachable
-      %45380 = OpLabel
-     %128491 = OpPhi %uint %45368 %45366 %126295 %45374
-     %128244 = OpPhi %uint %126294 %45366 %45376 %45374
-     %126297 = OpPhi %float %45370 %45366 %115690 %45374
-     %126296 = OpPhi %float %45370 %45366 %115691 %45374
-      %36454 = OpCompositeConstruct %v4float %126292 %126292 %126292 %126292
-      %36455 = OpCompositeConstruct %v4float %126297 %126297 %126297 %126297
-      %36456 = OpExtInst %v4float %1 FClamp %126287 %36454 %36455
-      %36464 = OpCompositeConstruct %v4float %126291 %126291 %126291 %126291
-      %36465 = OpCompositeConstruct %v4float %126296 %126296 %126296 %126296
-      %36466 = OpExtInst %v4float %1 FClamp %126286 %36464 %36465
-     %119742 = OpCompositeConstruct %_arr_v4float_uint_2 %36456 %36466
-      %45384 = OpIAdd %uint %126304 %int_1
-      %45386 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126304
-               OpStore %45386 %119742
-               OpBranch %38458
-      %36392 = OpLabel
-      %36395 = OpLoad %uint %30040
-      %36396 = OpBitwiseAnd %uint %36395 %uint_32768
-      %36397 = OpUGreaterThan %bool %36396 %uint_0
-               OpSelectionMerge %45260 None
-               OpSwitch %uint_0 %45244
-      %45244 = OpLabel
-               OpSelectionMerge %45259 None
-               OpBranchConditional %36397 %45246 %45254
-      %45254 = OpLabel
-      %45256 = OpISub %uint %126050 %int_1
-      %45257 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %45256
-      %45258 = OpLoad %_arr_v4float_uint_2 %45257
-     %115735 = OpCompositeExtract %v4float %45258 0
-     %115736 = OpCompositeExtract %v4float %45258 1
-               OpBranch %45260
-      %45246 = OpLabel
-      %45248 = OpIAdd %uint %126076 %int_1
-      %45249 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %45250 = OpLoad %v4float %45249
-               OpBranch %45260
-      %45259 = OpLabel
-               OpUnreachable
-      %45260 = OpLabel
-     %126309 = OpPhi %uint %45248 %45246 %126076 %45254
-     %126308 = OpPhi %uint %126050 %45246 %45256 %45254
-     %126306 = OpPhi %v4float %45250 %45246 %115735 %45254
-     %126305 = OpPhi %v4float %45250 %45246 %115736 %45254
-      %36401 = OpLoad %uint %30040
-      %36402 = OpBitwiseAnd %uint %36401 %uint_16384
-      %36403 = OpUGreaterThan %bool %36402 %uint_0
-               OpSelectionMerge %45283 None
-               OpSwitch %uint_0 %45267
-      %45267 = OpLabel
-               OpSelectionMerge %45282 None
-               OpBranchConditional %36403 %45269 %45277
-      %45277 = OpLabel
-      %45279 = OpISub %uint %126308 %int_1
-      %45280 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %45279
-      %45281 = OpLoad %_arr_v4float_uint_2 %45280
-     %115726 = OpCompositeExtract %v4float %45281 0
-     %115727 = OpCompositeExtract %v4float %45281 1
-               OpBranch %45283
-      %45269 = OpLabel
-      %45271 = OpIAdd %uint %126309 %int_1
-      %45272 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126309
-      %45273 = OpLoad %v4float %45272
-               OpBranch %45283
-      %45282 = OpLabel
-               OpUnreachable
-      %45283 = OpLabel
-     %126314 = OpPhi %uint %45271 %45269 %126309 %45277
-     %126313 = OpPhi %uint %126308 %45269 %45279 %45277
-     %126311 = OpPhi %v4float %45273 %45269 %115726 %45277
-     %126310 = OpPhi %v4float %45273 %45269 %115727 %45277
-      %36407 = OpLoad %uint %30040
-      %36408 = OpBitwiseAnd %uint %36407 %uint_8192
-      %36409 = OpUGreaterThan %bool %36408 %uint_0
-               OpSelectionMerge %45306 None
-               OpSwitch %uint_0 %45290
-      %45290 = OpLabel
-               OpSelectionMerge %45305 None
-               OpBranchConditional %36409 %45292 %45300
-      %45300 = OpLabel
-      %45302 = OpISub %uint %126313 %int_1
-      %45303 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %45302
-      %45304 = OpLoad %_arr_v4float_uint_2 %45303
-     %115717 = OpCompositeExtract %v4float %45304 0
-     %115718 = OpCompositeExtract %v4float %45304 1
-               OpBranch %45306
-      %45292 = OpLabel
-      %45294 = OpIAdd %uint %126314 %int_1
-      %45295 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126314
-      %45296 = OpLoad %v4float %45295
-               OpBranch %45306
-      %45305 = OpLabel
-               OpUnreachable
-      %45306 = OpLabel
-     %189341 = OpPhi %uint %45294 %45292 %126314 %45300
-     %126321 = OpPhi %uint %126313 %45292 %45302 %45300
-     %126316 = OpPhi %v4float %45296 %45292 %115717 %45300
-     %126315 = OpPhi %v4float %45296 %45292 %115718 %45300
-      %36417 = OpExtInst %v4float %1 FMix %126306 %126311 %126316
-      %36425 = OpExtInst %v4float %1 FMix %126305 %126310 %126315
-     %119727 = OpCompositeConstruct %_arr_v4float_uint_2 %36417 %36425
-      %45310 = OpIAdd %uint %126321 %int_1
-      %45312 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126321
-               OpStore %45312 %119727
-               OpBranch %38458
-      %36355 = OpLabel
-      %36358 = OpLoad %uint %30040
-      %36359 = OpBitwiseAnd %uint %36358 %uint_32768
-      %36360 = OpUGreaterThan %bool %36359 %uint_0
-               OpSelectionMerge %45186 None
-               OpSwitch %uint_0 %45170
-      %45170 = OpLabel
-               OpSelectionMerge %45185 None
-               OpBranchConditional %36360 %45172 %45180
-      %45180 = OpLabel
-      %45182 = OpISub %uint %126050 %int_1
-      %45183 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %45182
-      %45184 = OpLoad %_arr_v4float_uint_2 %45183
-     %115762 = OpCompositeExtract %v4float %45184 0
-     %115763 = OpCompositeExtract %v4float %45184 1
-               OpBranch %45186
-      %45172 = OpLabel
-      %45174 = OpIAdd %uint %126076 %int_1
-      %45175 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %45176 = OpLoad %v4float %45175
-               OpBranch %45186
-      %45185 = OpLabel
-               OpUnreachable
-      %45186 = OpLabel
-     %126326 = OpPhi %uint %45174 %45172 %126076 %45180
-     %126325 = OpPhi %uint %126050 %45172 %45182 %45180
-     %126323 = OpPhi %v4float %45176 %45172 %115762 %45180
-     %126322 = OpPhi %v4float %45176 %45172 %115763 %45180
-      %36364 = OpLoad %uint %30040
-      %36365 = OpBitwiseAnd %uint %36364 %uint_16384
-      %36366 = OpUGreaterThan %bool %36365 %uint_0
-               OpSelectionMerge %45209 None
-               OpSwitch %uint_0 %45193
-      %45193 = OpLabel
-               OpSelectionMerge %45208 None
-               OpBranchConditional %36366 %45195 %45203
-      %45203 = OpLabel
-      %45205 = OpISub %uint %126325 %int_1
-      %45206 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %45205
-      %45207 = OpLoad %_arr_v4float_uint_2 %45206
-     %115753 = OpCompositeExtract %v4float %45207 0
-     %115754 = OpCompositeExtract %v4float %45207 1
-               OpBranch %45209
-      %45195 = OpLabel
-      %45197 = OpIAdd %uint %126326 %int_1
-      %45198 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126326
-      %45199 = OpLoad %v4float %45198
-               OpBranch %45209
-      %45208 = OpLabel
-               OpUnreachable
-      %45209 = OpLabel
-     %126331 = OpPhi %uint %45197 %45195 %126326 %45203
-     %126330 = OpPhi %uint %126325 %45195 %45205 %45203
-     %126328 = OpPhi %v4float %45199 %45195 %115753 %45203
-     %126327 = OpPhi %v4float %45199 %45195 %115754 %45203
-      %36370 = OpLoad %uint %30040
-      %36371 = OpBitwiseAnd %uint %36370 %uint_8192
-      %36372 = OpUGreaterThan %bool %36371 %uint_0
-               OpSelectionMerge %45232 None
-               OpSwitch %uint_0 %45216
-      %45216 = OpLabel
-               OpSelectionMerge %45231 None
-               OpBranchConditional %36372 %45218 %45226
-      %45226 = OpLabel
-      %45228 = OpISub %uint %126330 %int_1
-      %45229 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %45228
-      %45230 = OpLoad %_arr_v4float_uint_2 %45229
-     %115744 = OpCompositeExtract %v4float %45230 0
-     %115745 = OpCompositeExtract %v4float %45230 1
-               OpBranch %45232
-      %45218 = OpLabel
-      %45220 = OpIAdd %uint %126331 %int_1
-      %45221 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126331
-      %45222 = OpLoad %v4float %45221
-               OpBranch %45232
-      %45231 = OpLabel
-               OpUnreachable
-      %45232 = OpLabel
-     %189340 = OpPhi %uint %45220 %45218 %126331 %45226
-     %126338 = OpPhi %uint %126330 %45218 %45228 %45226
-     %126333 = OpPhi %v4float %45222 %45218 %115744 %45226
-     %126332 = OpPhi %v4float %45222 %45218 %115745 %45226
-      %36380 = OpExtInst %v4float %1 FClamp %126323 %126328 %126333
-      %36388 = OpExtInst %v4float %1 FClamp %126322 %126327 %126332
-     %119712 = OpCompositeConstruct %_arr_v4float_uint_2 %36380 %36388
-      %45236 = OpIAdd %uint %126338 %int_1
-      %45238 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126338
-               OpStore %45238 %119712
-               OpBranch %38458
-      %36316 = OpLabel
-      %36319 = OpLoad %uint %30040
-      %36320 = OpBitwiseAnd %uint %36319 %uint_32768
-      %36321 = OpUGreaterThan %bool %36320 %uint_0
-               OpSelectionMerge %45112 None
-               OpSwitch %uint_0 %45096
-      %45096 = OpLabel
-               OpSelectionMerge %45111 None
-               OpBranchConditional %36321 %45098 %45106
-      %45106 = OpLabel
-      %45108 = OpISub %uint %126041 %int_1
-      %45109 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %45108
-      %45110 = OpLoad %_arr_v3float_uint_2 %45109
-     %115789 = OpCompositeExtract %v3float %45110 0
-     %115790 = OpCompositeExtract %v3float %45110 1
-               OpBranch %45112
-      %45098 = OpLabel
-      %45100 = OpIAdd %uint %126044 %int_1
-      %45101 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %45102 = OpLoad %v3float %45101
-               OpBranch %45112
-      %45111 = OpLabel
-               OpUnreachable
-      %45112 = OpLabel
-     %126343 = OpPhi %uint %45100 %45098 %126044 %45106
-     %126342 = OpPhi %uint %126041 %45098 %45108 %45106
-     %126340 = OpPhi %v3float %45102 %45098 %115789 %45106
-     %126339 = OpPhi %v3float %45102 %45098 %115790 %45106
-      %36325 = OpLoad %uint %30040
-      %36326 = OpBitwiseAnd %uint %36325 %uint_16384
-      %36327 = OpUGreaterThan %bool %36326 %uint_0
-               OpSelectionMerge %45135 None
-               OpSwitch %uint_0 %45119
-      %45119 = OpLabel
-               OpSelectionMerge %45134 None
-               OpBranchConditional %36327 %45121 %45129
-      %45129 = OpLabel
-      %45131 = OpISub %uint %126342 %int_1
-      %45132 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %45131
-      %45133 = OpLoad %_arr_v3float_uint_2 %45132
-     %115780 = OpCompositeExtract %v3float %45133 0
-     %115781 = OpCompositeExtract %v3float %45133 1
-               OpBranch %45135
-      %45121 = OpLabel
-      %45123 = OpIAdd %uint %126343 %int_1
-      %45124 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126343
-      %45125 = OpLoad %v3float %45124
-               OpBranch %45135
-      %45134 = OpLabel
-               OpUnreachable
-      %45135 = OpLabel
-     %188560 = OpPhi %uint %45123 %45121 %126343 %45129
-     %126358 = OpPhi %uint %126342 %45121 %45131 %45129
-     %126345 = OpPhi %v3float %45125 %45121 %115780 %45129
-     %126344 = OpPhi %v3float %45125 %45121 %115781 %45129
-      %36331 = OpLoad %uint %30040
-      %36332 = OpBitwiseAnd %uint %36331 %uint_8192
-      %36333 = OpUGreaterThan %bool %36332 %uint_0
-               OpSelectionMerge %45158 None
-               OpSwitch %uint_0 %45142
-      %45142 = OpLabel
-               OpSelectionMerge %45157 None
-               OpBranchConditional %36333 %45144 %45152
-      %45152 = OpLabel
-      %45154 = OpISub %uint %126031 %int_1
-      %45155 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45154
-      %45156 = OpLoad %_arr_float_uint_2 %45155
-     %115771 = OpCompositeExtract %float %45156 0
-     %115772 = OpCompositeExtract %float %45156 1
-               OpBranch %45158
-      %45144 = OpLabel
-      %45146 = OpIAdd %uint %126033 %int_1
-      %45147 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %45148 = OpLoad %float %45147
-               OpBranch %45158
-      %45157 = OpLabel
-               OpUnreachable
-      %45158 = OpLabel
-     %128484 = OpPhi %uint %45146 %45144 %126033 %45152
-     %128237 = OpPhi %uint %126031 %45144 %45154 %45152
-     %126352 = OpPhi %float %45148 %45144 %115771 %45152
-     %126351 = OpPhi %float %45148 %45144 %115772 %45152
-      %36341 = OpCompositeConstruct %v3float %126352 %126352 %126352
-      %36342 = OpExtInst %v3float %1 FMix %126340 %126345 %36341
-      %36350 = OpCompositeConstruct %v3float %126351 %126351 %126351
-      %36351 = OpExtInst %v3float %1 FMix %126339 %126344 %36350
-     %119697 = OpCompositeConstruct %_arr_v3float_uint_2 %36342 %36351
-      %45162 = OpIAdd %uint %126358 %int_1
-      %45164 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126358
-               OpStore %45164 %119697
-               OpBranch %38458
-      %36275 = OpLabel
-      %36278 = OpLoad %uint %30040
-      %36279 = OpBitwiseAnd %uint %36278 %uint_32768
-      %36280 = OpUGreaterThan %bool %36279 %uint_0
-               OpSelectionMerge %45038 None
-               OpSwitch %uint_0 %45022
-      %45022 = OpLabel
-               OpSelectionMerge %45037 None
-               OpBranchConditional %36280 %45024 %45032
-      %45032 = OpLabel
-      %45034 = OpISub %uint %126041 %int_1
-      %45035 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %45034
-      %45036 = OpLoad %_arr_v3float_uint_2 %45035
-     %115816 = OpCompositeExtract %v3float %45036 0
-     %115817 = OpCompositeExtract %v3float %45036 1
-               OpBranch %45038
-      %45024 = OpLabel
-      %45026 = OpIAdd %uint %126044 %int_1
-      %45027 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %45028 = OpLoad %v3float %45027
-               OpBranch %45038
-      %45037 = OpLabel
-               OpUnreachable
-      %45038 = OpLabel
-     %188558 = OpPhi %uint %45026 %45024 %126044 %45032
-     %126377 = OpPhi %uint %126041 %45024 %45034 %45032
-     %126360 = OpPhi %v3float %45028 %45024 %115816 %45032
-     %126359 = OpPhi %v3float %45028 %45024 %115817 %45032
-      %36284 = OpLoad %uint %30040
-      %36285 = OpBitwiseAnd %uint %36284 %uint_16384
-      %36286 = OpUGreaterThan %bool %36285 %uint_0
-               OpSelectionMerge %45061 None
-               OpSwitch %uint_0 %45045
-      %45045 = OpLabel
-               OpSelectionMerge %45060 None
-               OpBranchConditional %36286 %45047 %45055
-      %45055 = OpLabel
-      %45057 = OpISub %uint %126031 %int_1
-      %45058 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45057
-      %45059 = OpLoad %_arr_float_uint_2 %45058
-     %115807 = OpCompositeExtract %float %45059 0
-     %115808 = OpCompositeExtract %float %45059 1
-               OpBranch %45061
-      %45047 = OpLabel
-      %45049 = OpIAdd %uint %126033 %int_1
-      %45050 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %45051 = OpLoad %float %45050
-               OpBranch %45061
-      %45060 = OpLabel
-               OpUnreachable
-      %45061 = OpLabel
-     %126368 = OpPhi %uint %45049 %45047 %126033 %45055
-     %126367 = OpPhi %uint %126031 %45047 %45057 %45055
-     %126365 = OpPhi %float %45051 %45047 %115807 %45055
-     %126364 = OpPhi %float %45051 %45047 %115808 %45055
-      %36290 = OpLoad %uint %30040
-      %36291 = OpBitwiseAnd %uint %36290 %uint_8192
-      %36292 = OpUGreaterThan %bool %36291 %uint_0
-               OpSelectionMerge %45084 None
-               OpSwitch %uint_0 %45068
-      %45068 = OpLabel
-               OpSelectionMerge %45083 None
-               OpBranchConditional %36292 %45070 %45078
-      %45078 = OpLabel
-      %45080 = OpISub %uint %126367 %int_1
-      %45081 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %45080
-      %45082 = OpLoad %_arr_float_uint_2 %45081
-     %115798 = OpCompositeExtract %float %45082 0
-     %115799 = OpCompositeExtract %float %45082 1
-               OpBranch %45084
-      %45070 = OpLabel
-      %45072 = OpIAdd %uint %126368 %int_1
-      %45073 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126368
-      %45074 = OpLoad %float %45073
-               OpBranch %45084
-      %45083 = OpLabel
-               OpUnreachable
-      %45084 = OpLabel
-     %128483 = OpPhi %uint %45072 %45070 %126368 %45078
-     %128236 = OpPhi %uint %126367 %45070 %45080 %45078
-     %126370 = OpPhi %float %45074 %45070 %115798 %45078
-     %126369 = OpPhi %float %45074 %45070 %115799 %45078
-      %36300 = OpCompositeConstruct %v3float %126365 %126365 %126365
-      %36301 = OpCompositeConstruct %v3float %126370 %126370 %126370
-      %36302 = OpExtInst %v3float %1 FClamp %126360 %36300 %36301
-      %36310 = OpCompositeConstruct %v3float %126364 %126364 %126364
-      %36311 = OpCompositeConstruct %v3float %126369 %126369 %126369
-      %36312 = OpExtInst %v3float %1 FClamp %126359 %36310 %36311
-     %119682 = OpCompositeConstruct %_arr_v3float_uint_2 %36302 %36312
-      %45088 = OpIAdd %uint %126377 %int_1
-      %45090 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126377
-               OpStore %45090 %119682
-               OpBranch %38458
-      %36238 = OpLabel
-      %36241 = OpLoad %uint %30040
-      %36242 = OpBitwiseAnd %uint %36241 %uint_32768
-      %36243 = OpUGreaterThan %bool %36242 %uint_0
-               OpSelectionMerge %44964 None
-               OpSwitch %uint_0 %44948
-      %44948 = OpLabel
-               OpSelectionMerge %44963 None
-               OpBranchConditional %36243 %44950 %44958
-      %44958 = OpLabel
-      %44960 = OpISub %uint %126041 %int_1
-      %44961 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %44960
-      %44962 = OpLoad %_arr_v3float_uint_2 %44961
-     %115843 = OpCompositeExtract %v3float %44962 0
-     %115844 = OpCompositeExtract %v3float %44962 1
-               OpBranch %44964
-      %44950 = OpLabel
-      %44952 = OpIAdd %uint %126044 %int_1
-      %44953 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %44954 = OpLoad %v3float %44953
-               OpBranch %44964
-      %44963 = OpLabel
-               OpUnreachable
-      %44964 = OpLabel
-     %126382 = OpPhi %uint %44952 %44950 %126044 %44958
-     %126381 = OpPhi %uint %126041 %44950 %44960 %44958
-     %126379 = OpPhi %v3float %44954 %44950 %115843 %44958
-     %126378 = OpPhi %v3float %44954 %44950 %115844 %44958
-      %36247 = OpLoad %uint %30040
-      %36248 = OpBitwiseAnd %uint %36247 %uint_16384
-      %36249 = OpUGreaterThan %bool %36248 %uint_0
-               OpSelectionMerge %44987 None
-               OpSwitch %uint_0 %44971
-      %44971 = OpLabel
-               OpSelectionMerge %44986 None
-               OpBranchConditional %36249 %44973 %44981
-      %44981 = OpLabel
-      %44983 = OpISub %uint %126381 %int_1
-      %44984 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %44983
-      %44985 = OpLoad %_arr_v3float_uint_2 %44984
-     %115834 = OpCompositeExtract %v3float %44985 0
-     %115835 = OpCompositeExtract %v3float %44985 1
-               OpBranch %44987
-      %44973 = OpLabel
-      %44975 = OpIAdd %uint %126382 %int_1
-      %44976 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126382
-      %44977 = OpLoad %v3float %44976
-               OpBranch %44987
-      %44986 = OpLabel
-               OpUnreachable
-      %44987 = OpLabel
-     %126387 = OpPhi %uint %44975 %44973 %126382 %44981
-     %126386 = OpPhi %uint %126381 %44973 %44983 %44981
-     %126384 = OpPhi %v3float %44977 %44973 %115834 %44981
-     %126383 = OpPhi %v3float %44977 %44973 %115835 %44981
-      %36253 = OpLoad %uint %30040
-      %36254 = OpBitwiseAnd %uint %36253 %uint_8192
-      %36255 = OpUGreaterThan %bool %36254 %uint_0
-               OpSelectionMerge %45010 None
-               OpSwitch %uint_0 %44994
-      %44994 = OpLabel
-               OpSelectionMerge %45009 None
-               OpBranchConditional %36255 %44996 %45004
-      %45004 = OpLabel
-      %45006 = OpISub %uint %126386 %int_1
-      %45007 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %45006
-      %45008 = OpLoad %_arr_v3float_uint_2 %45007
-     %115825 = OpCompositeExtract %v3float %45008 0
-     %115826 = OpCompositeExtract %v3float %45008 1
-               OpBranch %45010
-      %44996 = OpLabel
-      %44998 = OpIAdd %uint %126387 %int_1
-      %44999 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126387
-      %45000 = OpLoad %v3float %44999
-               OpBranch %45010
-      %45009 = OpLabel
-               OpUnreachable
-      %45010 = OpLabel
-     %188555 = OpPhi %uint %44998 %44996 %126387 %45004
-     %126394 = OpPhi %uint %126386 %44996 %45006 %45004
-     %126389 = OpPhi %v3float %45000 %44996 %115825 %45004
-     %126388 = OpPhi %v3float %45000 %44996 %115826 %45004
-      %36263 = OpExtInst %v3float %1 FMix %126379 %126384 %126389
-      %36271 = OpExtInst %v3float %1 FMix %126378 %126383 %126388
-     %119667 = OpCompositeConstruct %_arr_v3float_uint_2 %36263 %36271
-      %45014 = OpIAdd %uint %126394 %int_1
-      %45016 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126394
-               OpStore %45016 %119667
-               OpBranch %38458
-      %36201 = OpLabel
-      %36204 = OpLoad %uint %30040
-      %36205 = OpBitwiseAnd %uint %36204 %uint_32768
-      %36206 = OpUGreaterThan %bool %36205 %uint_0
-               OpSelectionMerge %44890 None
-               OpSwitch %uint_0 %44874
-      %44874 = OpLabel
-               OpSelectionMerge %44889 None
-               OpBranchConditional %36206 %44876 %44884
-      %44884 = OpLabel
-      %44886 = OpISub %uint %126041 %int_1
-      %44887 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %44886
-      %44888 = OpLoad %_arr_v3float_uint_2 %44887
-     %115870 = OpCompositeExtract %v3float %44888 0
-     %115871 = OpCompositeExtract %v3float %44888 1
-               OpBranch %44890
-      %44876 = OpLabel
-      %44878 = OpIAdd %uint %126044 %int_1
-      %44879 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %44880 = OpLoad %v3float %44879
-               OpBranch %44890
-      %44889 = OpLabel
-               OpUnreachable
-      %44890 = OpLabel
-     %126399 = OpPhi %uint %44878 %44876 %126044 %44884
-     %126398 = OpPhi %uint %126041 %44876 %44886 %44884
-     %126396 = OpPhi %v3float %44880 %44876 %115870 %44884
-     %126395 = OpPhi %v3float %44880 %44876 %115871 %44884
-      %36210 = OpLoad %uint %30040
-      %36211 = OpBitwiseAnd %uint %36210 %uint_16384
-      %36212 = OpUGreaterThan %bool %36211 %uint_0
-               OpSelectionMerge %44913 None
-               OpSwitch %uint_0 %44897
-      %44897 = OpLabel
-               OpSelectionMerge %44912 None
-               OpBranchConditional %36212 %44899 %44907
-      %44907 = OpLabel
-      %44909 = OpISub %uint %126398 %int_1
-      %44910 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %44909
-      %44911 = OpLoad %_arr_v3float_uint_2 %44910
-     %115861 = OpCompositeExtract %v3float %44911 0
-     %115862 = OpCompositeExtract %v3float %44911 1
-               OpBranch %44913
-      %44899 = OpLabel
-      %44901 = OpIAdd %uint %126399 %int_1
-      %44902 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126399
-      %44903 = OpLoad %v3float %44902
-               OpBranch %44913
-      %44912 = OpLabel
-               OpUnreachable
-      %44913 = OpLabel
-     %126404 = OpPhi %uint %44901 %44899 %126399 %44907
-     %126403 = OpPhi %uint %126398 %44899 %44909 %44907
-     %126401 = OpPhi %v3float %44903 %44899 %115861 %44907
-     %126400 = OpPhi %v3float %44903 %44899 %115862 %44907
-      %36216 = OpLoad %uint %30040
-      %36217 = OpBitwiseAnd %uint %36216 %uint_8192
-      %36218 = OpUGreaterThan %bool %36217 %uint_0
-               OpSelectionMerge %44936 None
-               OpSwitch %uint_0 %44920
-      %44920 = OpLabel
-               OpSelectionMerge %44935 None
-               OpBranchConditional %36218 %44922 %44930
-      %44930 = OpLabel
-      %44932 = OpISub %uint %126403 %int_1
-      %44933 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %44932
-      %44934 = OpLoad %_arr_v3float_uint_2 %44933
-     %115852 = OpCompositeExtract %v3float %44934 0
-     %115853 = OpCompositeExtract %v3float %44934 1
-               OpBranch %44936
-      %44922 = OpLabel
-      %44924 = OpIAdd %uint %126404 %int_1
-      %44925 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126404
-      %44926 = OpLoad %v3float %44925
-               OpBranch %44936
-      %44935 = OpLabel
-               OpUnreachable
-      %44936 = OpLabel
-     %188554 = OpPhi %uint %44924 %44922 %126404 %44930
-     %126411 = OpPhi %uint %126403 %44922 %44932 %44930
-     %126406 = OpPhi %v3float %44926 %44922 %115852 %44930
-     %126405 = OpPhi %v3float %44926 %44922 %115853 %44930
-      %36226 = OpExtInst %v3float %1 FClamp %126396 %126401 %126406
-      %36234 = OpExtInst %v3float %1 FClamp %126395 %126400 %126405
-     %119652 = OpCompositeConstruct %_arr_v3float_uint_2 %36226 %36234
-      %44940 = OpIAdd %uint %126411 %int_1
-      %44942 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126411
-               OpStore %44942 %119652
-               OpBranch %38458
-      %36162 = OpLabel
-      %36165 = OpLoad %uint %30040
-      %36166 = OpBitwiseAnd %uint %36165 %uint_32768
-      %36167 = OpUGreaterThan %bool %36166 %uint_0
-               OpSelectionMerge %44816 None
-               OpSwitch %uint_0 %44800
-      %44800 = OpLabel
-               OpSelectionMerge %44815 None
-               OpBranchConditional %36167 %44802 %44810
-      %44810 = OpLabel
-      %44812 = OpISub %uint %126052 %int_1
-      %44813 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %44812
-      %44814 = OpLoad %_arr_v2float_uint_2 %44813
-     %115897 = OpCompositeExtract %v2float %44814 0
-     %115898 = OpCompositeExtract %v2float %44814 1
-               OpBranch %44816
-      %44802 = OpLabel
-      %44804 = OpIAdd %uint %126104 %int_1
-      %44805 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %44806 = OpLoad %v2float %44805
-               OpBranch %44816
-      %44815 = OpLabel
-               OpUnreachable
-      %44816 = OpLabel
-     %126416 = OpPhi %uint %44804 %44802 %126104 %44810
-     %126415 = OpPhi %uint %126052 %44802 %44812 %44810
-     %126413 = OpPhi %v2float %44806 %44802 %115897 %44810
-     %126412 = OpPhi %v2float %44806 %44802 %115898 %44810
-      %36171 = OpLoad %uint %30040
-      %36172 = OpBitwiseAnd %uint %36171 %uint_16384
-      %36173 = OpUGreaterThan %bool %36172 %uint_0
-               OpSelectionMerge %44839 None
-               OpSwitch %uint_0 %44823
-      %44823 = OpLabel
-               OpSelectionMerge %44838 None
-               OpBranchConditional %36173 %44825 %44833
-      %44833 = OpLabel
-      %44835 = OpISub %uint %126415 %int_1
-      %44836 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %44835
-      %44837 = OpLoad %_arr_v2float_uint_2 %44836
-     %115888 = OpCompositeExtract %v2float %44837 0
-     %115889 = OpCompositeExtract %v2float %44837 1
-               OpBranch %44839
-      %44825 = OpLabel
-      %44827 = OpIAdd %uint %126416 %int_1
-      %44828 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126416
-      %44829 = OpLoad %v2float %44828
-               OpBranch %44839
-      %44838 = OpLabel
-               OpUnreachable
-      %44839 = OpLabel
-     %190902 = OpPhi %uint %44827 %44825 %126416 %44833
-     %126431 = OpPhi %uint %126415 %44825 %44835 %44833
-     %126418 = OpPhi %v2float %44829 %44825 %115888 %44833
-     %126417 = OpPhi %v2float %44829 %44825 %115889 %44833
-      %36177 = OpLoad %uint %30040
-      %36178 = OpBitwiseAnd %uint %36177 %uint_8192
-      %36179 = OpUGreaterThan %bool %36178 %uint_0
-               OpSelectionMerge %44862 None
-               OpSwitch %uint_0 %44846
-      %44846 = OpLabel
-               OpSelectionMerge %44861 None
-               OpBranchConditional %36179 %44848 %44856
-      %44856 = OpLabel
-      %44858 = OpISub %uint %126031 %int_1
-      %44859 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %44858
-      %44860 = OpLoad %_arr_float_uint_2 %44859
-     %115879 = OpCompositeExtract %float %44860 0
-     %115880 = OpCompositeExtract %float %44860 1
-               OpBranch %44862
-      %44848 = OpLabel
-      %44850 = OpIAdd %uint %126033 %int_1
-      %44851 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %44852 = OpLoad %float %44851
-               OpBranch %44862
-      %44861 = OpLabel
-               OpUnreachable
-      %44862 = OpLabel
-     %128476 = OpPhi %uint %44850 %44848 %126033 %44856
-     %128229 = OpPhi %uint %126031 %44848 %44858 %44856
-     %126425 = OpPhi %float %44852 %44848 %115879 %44856
-     %126424 = OpPhi %float %44852 %44848 %115880 %44856
-      %36187 = OpCompositeConstruct %v2float %126425 %126425
-      %36188 = OpExtInst %v2float %1 FMix %126413 %126418 %36187
-      %36196 = OpCompositeConstruct %v2float %126424 %126424
-      %36197 = OpExtInst %v2float %1 FMix %126412 %126417 %36196
-     %119637 = OpCompositeConstruct %_arr_v2float_uint_2 %36188 %36197
-      %44866 = OpIAdd %uint %126431 %int_1
-      %44868 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126431
-               OpStore %44868 %119637
-               OpBranch %38458
-      %36121 = OpLabel
-      %36124 = OpLoad %uint %30040
-      %36125 = OpBitwiseAnd %uint %36124 %uint_32768
-      %36126 = OpUGreaterThan %bool %36125 %uint_0
-               OpSelectionMerge %44742 None
-               OpSwitch %uint_0 %44726
-      %44726 = OpLabel
-               OpSelectionMerge %44741 None
-               OpBranchConditional %36126 %44728 %44736
-      %44736 = OpLabel
-      %44738 = OpISub %uint %126052 %int_1
-      %44739 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %44738
-      %44740 = OpLoad %_arr_v2float_uint_2 %44739
-     %115924 = OpCompositeExtract %v2float %44740 0
-     %115925 = OpCompositeExtract %v2float %44740 1
-               OpBranch %44742
-      %44728 = OpLabel
-      %44730 = OpIAdd %uint %126104 %int_1
-      %44731 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %44732 = OpLoad %v2float %44731
-               OpBranch %44742
-      %44741 = OpLabel
-               OpUnreachable
-      %44742 = OpLabel
-     %190900 = OpPhi %uint %44730 %44728 %126104 %44736
-     %126450 = OpPhi %uint %126052 %44728 %44738 %44736
-     %126433 = OpPhi %v2float %44732 %44728 %115924 %44736
-     %126432 = OpPhi %v2float %44732 %44728 %115925 %44736
-      %36130 = OpLoad %uint %30040
-      %36131 = OpBitwiseAnd %uint %36130 %uint_16384
-      %36132 = OpUGreaterThan %bool %36131 %uint_0
-               OpSelectionMerge %44765 None
-               OpSwitch %uint_0 %44749
-      %44749 = OpLabel
-               OpSelectionMerge %44764 None
-               OpBranchConditional %36132 %44751 %44759
-      %44759 = OpLabel
-      %44761 = OpISub %uint %126031 %int_1
-      %44762 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %44761
-      %44763 = OpLoad %_arr_float_uint_2 %44762
-     %115915 = OpCompositeExtract %float %44763 0
-     %115916 = OpCompositeExtract %float %44763 1
-               OpBranch %44765
-      %44751 = OpLabel
-      %44753 = OpIAdd %uint %126033 %int_1
-      %44754 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %44755 = OpLoad %float %44754
-               OpBranch %44765
-      %44764 = OpLabel
-               OpUnreachable
-      %44765 = OpLabel
-     %126441 = OpPhi %uint %44753 %44751 %126033 %44759
-     %126440 = OpPhi %uint %126031 %44751 %44761 %44759
-     %126438 = OpPhi %float %44755 %44751 %115915 %44759
-     %126437 = OpPhi %float %44755 %44751 %115916 %44759
-      %36136 = OpLoad %uint %30040
-      %36137 = OpBitwiseAnd %uint %36136 %uint_8192
-      %36138 = OpUGreaterThan %bool %36137 %uint_0
-               OpSelectionMerge %44788 None
-               OpSwitch %uint_0 %44772
-      %44772 = OpLabel
-               OpSelectionMerge %44787 None
-               OpBranchConditional %36138 %44774 %44782
-      %44782 = OpLabel
-      %44784 = OpISub %uint %126440 %int_1
-      %44785 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %44784
-      %44786 = OpLoad %_arr_float_uint_2 %44785
-     %115906 = OpCompositeExtract %float %44786 0
-     %115907 = OpCompositeExtract %float %44786 1
-               OpBranch %44788
-      %44774 = OpLabel
-      %44776 = OpIAdd %uint %126441 %int_1
-      %44777 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126441
-      %44778 = OpLoad %float %44777
-               OpBranch %44788
-      %44787 = OpLabel
-               OpUnreachable
-      %44788 = OpLabel
-     %128475 = OpPhi %uint %44776 %44774 %126441 %44782
-     %128228 = OpPhi %uint %126440 %44774 %44784 %44782
-     %126443 = OpPhi %float %44778 %44774 %115906 %44782
-     %126442 = OpPhi %float %44778 %44774 %115907 %44782
-      %36146 = OpCompositeConstruct %v2float %126438 %126438
-      %36147 = OpCompositeConstruct %v2float %126443 %126443
-      %36148 = OpExtInst %v2float %1 FClamp %126433 %36146 %36147
-      %36156 = OpCompositeConstruct %v2float %126437 %126437
-      %36157 = OpCompositeConstruct %v2float %126442 %126442
-      %36158 = OpExtInst %v2float %1 FClamp %126432 %36156 %36157
-     %119622 = OpCompositeConstruct %_arr_v2float_uint_2 %36148 %36158
-      %44792 = OpIAdd %uint %126450 %int_1
-      %44794 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126450
-               OpStore %44794 %119622
-               OpBranch %38458
-      %36084 = OpLabel
-      %36087 = OpLoad %uint %30040
-      %36088 = OpBitwiseAnd %uint %36087 %uint_32768
-      %36089 = OpUGreaterThan %bool %36088 %uint_0
-               OpSelectionMerge %44668 None
-               OpSwitch %uint_0 %44652
-      %44652 = OpLabel
-               OpSelectionMerge %44667 None
-               OpBranchConditional %36089 %44654 %44662
-      %44662 = OpLabel
-      %44664 = OpISub %uint %126052 %int_1
-      %44665 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %44664
-      %44666 = OpLoad %_arr_v2float_uint_2 %44665
-     %115951 = OpCompositeExtract %v2float %44666 0
-     %115952 = OpCompositeExtract %v2float %44666 1
-               OpBranch %44668
-      %44654 = OpLabel
-      %44656 = OpIAdd %uint %126104 %int_1
-      %44657 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %44658 = OpLoad %v2float %44657
-               OpBranch %44668
-      %44667 = OpLabel
-               OpUnreachable
-      %44668 = OpLabel
-     %126455 = OpPhi %uint %44656 %44654 %126104 %44662
-     %126454 = OpPhi %uint %126052 %44654 %44664 %44662
-     %126452 = OpPhi %v2float %44658 %44654 %115951 %44662
-     %126451 = OpPhi %v2float %44658 %44654 %115952 %44662
-      %36093 = OpLoad %uint %30040
-      %36094 = OpBitwiseAnd %uint %36093 %uint_16384
-      %36095 = OpUGreaterThan %bool %36094 %uint_0
-               OpSelectionMerge %44691 None
-               OpSwitch %uint_0 %44675
-      %44675 = OpLabel
-               OpSelectionMerge %44690 None
-               OpBranchConditional %36095 %44677 %44685
-      %44685 = OpLabel
-      %44687 = OpISub %uint %126454 %int_1
-      %44688 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %44687
-      %44689 = OpLoad %_arr_v2float_uint_2 %44688
-     %115942 = OpCompositeExtract %v2float %44689 0
-     %115943 = OpCompositeExtract %v2float %44689 1
-               OpBranch %44691
-      %44677 = OpLabel
-      %44679 = OpIAdd %uint %126455 %int_1
-      %44680 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126455
-      %44681 = OpLoad %v2float %44680
-               OpBranch %44691
-      %44690 = OpLabel
-               OpUnreachable
-      %44691 = OpLabel
-     %126460 = OpPhi %uint %44679 %44677 %126455 %44685
-     %126459 = OpPhi %uint %126454 %44677 %44687 %44685
-     %126457 = OpPhi %v2float %44681 %44677 %115942 %44685
-     %126456 = OpPhi %v2float %44681 %44677 %115943 %44685
-      %36099 = OpLoad %uint %30040
-      %36100 = OpBitwiseAnd %uint %36099 %uint_8192
-      %36101 = OpUGreaterThan %bool %36100 %uint_0
-               OpSelectionMerge %44714 None
-               OpSwitch %uint_0 %44698
-      %44698 = OpLabel
-               OpSelectionMerge %44713 None
-               OpBranchConditional %36101 %44700 %44708
-      %44708 = OpLabel
-      %44710 = OpISub %uint %126459 %int_1
-      %44711 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %44710
-      %44712 = OpLoad %_arr_v2float_uint_2 %44711
-     %115933 = OpCompositeExtract %v2float %44712 0
-     %115934 = OpCompositeExtract %v2float %44712 1
-               OpBranch %44714
-      %44700 = OpLabel
-      %44702 = OpIAdd %uint %126460 %int_1
-      %44703 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126460
-      %44704 = OpLoad %v2float %44703
-               OpBranch %44714
-      %44713 = OpLabel
-               OpUnreachable
-      %44714 = OpLabel
-     %190897 = OpPhi %uint %44702 %44700 %126460 %44708
-     %126467 = OpPhi %uint %126459 %44700 %44710 %44708
-     %126462 = OpPhi %v2float %44704 %44700 %115933 %44708
-     %126461 = OpPhi %v2float %44704 %44700 %115934 %44708
-      %36109 = OpExtInst %v2float %1 FMix %126452 %126457 %126462
-      %36117 = OpExtInst %v2float %1 FMix %126451 %126456 %126461
-     %119607 = OpCompositeConstruct %_arr_v2float_uint_2 %36109 %36117
-      %44718 = OpIAdd %uint %126467 %int_1
-      %44720 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126467
-               OpStore %44720 %119607
-               OpBranch %38458
-      %36047 = OpLabel
-      %36050 = OpLoad %uint %30040
-      %36051 = OpBitwiseAnd %uint %36050 %uint_32768
-      %36052 = OpUGreaterThan %bool %36051 %uint_0
-               OpSelectionMerge %44594 None
-               OpSwitch %uint_0 %44578
-      %44578 = OpLabel
-               OpSelectionMerge %44593 None
-               OpBranchConditional %36052 %44580 %44588
-      %44588 = OpLabel
-      %44590 = OpISub %uint %126052 %int_1
-      %44591 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %44590
-      %44592 = OpLoad %_arr_v2float_uint_2 %44591
-     %115978 = OpCompositeExtract %v2float %44592 0
-     %115979 = OpCompositeExtract %v2float %44592 1
-               OpBranch %44594
-      %44580 = OpLabel
-      %44582 = OpIAdd %uint %126104 %int_1
-      %44583 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %44584 = OpLoad %v2float %44583
-               OpBranch %44594
-      %44593 = OpLabel
-               OpUnreachable
-      %44594 = OpLabel
-     %126472 = OpPhi %uint %44582 %44580 %126104 %44588
-     %126471 = OpPhi %uint %126052 %44580 %44590 %44588
-     %126469 = OpPhi %v2float %44584 %44580 %115978 %44588
-     %126468 = OpPhi %v2float %44584 %44580 %115979 %44588
-      %36056 = OpLoad %uint %30040
-      %36057 = OpBitwiseAnd %uint %36056 %uint_16384
-      %36058 = OpUGreaterThan %bool %36057 %uint_0
-               OpSelectionMerge %44617 None
-               OpSwitch %uint_0 %44601
-      %44601 = OpLabel
-               OpSelectionMerge %44616 None
-               OpBranchConditional %36058 %44603 %44611
-      %44611 = OpLabel
-      %44613 = OpISub %uint %126471 %int_1
-      %44614 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %44613
-      %44615 = OpLoad %_arr_v2float_uint_2 %44614
-     %115969 = OpCompositeExtract %v2float %44615 0
-     %115970 = OpCompositeExtract %v2float %44615 1
-               OpBranch %44617
-      %44603 = OpLabel
-      %44605 = OpIAdd %uint %126472 %int_1
-      %44606 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126472
-      %44607 = OpLoad %v2float %44606
-               OpBranch %44617
-      %44616 = OpLabel
-               OpUnreachable
-      %44617 = OpLabel
-     %126477 = OpPhi %uint %44605 %44603 %126472 %44611
-     %126476 = OpPhi %uint %126471 %44603 %44613 %44611
-     %126474 = OpPhi %v2float %44607 %44603 %115969 %44611
-     %126473 = OpPhi %v2float %44607 %44603 %115970 %44611
-      %36062 = OpLoad %uint %30040
-      %36063 = OpBitwiseAnd %uint %36062 %uint_8192
-      %36064 = OpUGreaterThan %bool %36063 %uint_0
-               OpSelectionMerge %44640 None
-               OpSwitch %uint_0 %44624
-      %44624 = OpLabel
-               OpSelectionMerge %44639 None
-               OpBranchConditional %36064 %44626 %44634
-      %44634 = OpLabel
-      %44636 = OpISub %uint %126476 %int_1
-      %44637 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %44636
-      %44638 = OpLoad %_arr_v2float_uint_2 %44637
-     %115960 = OpCompositeExtract %v2float %44638 0
-     %115961 = OpCompositeExtract %v2float %44638 1
-               OpBranch %44640
-      %44626 = OpLabel
-      %44628 = OpIAdd %uint %126477 %int_1
-      %44629 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126477
-      %44630 = OpLoad %v2float %44629
-               OpBranch %44640
-      %44639 = OpLabel
-               OpUnreachable
-      %44640 = OpLabel
-     %190896 = OpPhi %uint %44628 %44626 %126477 %44634
-     %126484 = OpPhi %uint %126476 %44626 %44636 %44634
-     %126479 = OpPhi %v2float %44630 %44626 %115960 %44634
-     %126478 = OpPhi %v2float %44630 %44626 %115961 %44634
-      %36072 = OpExtInst %v2float %1 FClamp %126469 %126474 %126479
-      %36080 = OpExtInst %v2float %1 FClamp %126468 %126473 %126478
-     %119592 = OpCompositeConstruct %_arr_v2float_uint_2 %36072 %36080
-      %44644 = OpIAdd %uint %126484 %int_1
-      %44646 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126484
-               OpStore %44646 %119592
-               OpBranch %38458
-      %36010 = OpLabel
-      %36013 = OpLoad %uint %30040
-      %36014 = OpBitwiseAnd %uint %36013 %uint_32768
-      %36015 = OpUGreaterThan %bool %36014 %uint_0
-               OpSelectionMerge %44520 None
-               OpSwitch %uint_0 %44504
-      %44504 = OpLabel
-               OpSelectionMerge %44519 None
-               OpBranchConditional %36015 %44506 %44514
-      %44514 = OpLabel
-      %44516 = OpISub %uint %126031 %int_1
-      %44517 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %44516
-      %44518 = OpLoad %_arr_float_uint_2 %44517
-     %116005 = OpCompositeExtract %float %44518 0
-     %116006 = OpCompositeExtract %float %44518 1
-               OpBranch %44520
-      %44506 = OpLabel
-      %44508 = OpIAdd %uint %126033 %int_1
-      %44509 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %44510 = OpLoad %float %44509
-               OpBranch %44520
-      %44519 = OpLabel
-               OpUnreachable
-      %44520 = OpLabel
-     %126489 = OpPhi %uint %44508 %44506 %126033 %44514
-     %126488 = OpPhi %uint %126031 %44506 %44516 %44514
-     %126486 = OpPhi %float %44510 %44506 %116005 %44514
-     %126485 = OpPhi %float %44510 %44506 %116006 %44514
-      %36019 = OpLoad %uint %30040
-      %36020 = OpBitwiseAnd %uint %36019 %uint_16384
-      %36021 = OpUGreaterThan %bool %36020 %uint_0
-               OpSelectionMerge %44543 None
-               OpSwitch %uint_0 %44527
-      %44527 = OpLabel
-               OpSelectionMerge %44542 None
-               OpBranchConditional %36021 %44529 %44537
-      %44537 = OpLabel
-      %44539 = OpISub %uint %126488 %int_1
-      %44540 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %44539
-      %44541 = OpLoad %_arr_float_uint_2 %44540
-     %115996 = OpCompositeExtract %float %44541 0
-     %115997 = OpCompositeExtract %float %44541 1
-               OpBranch %44543
-      %44529 = OpLabel
-      %44531 = OpIAdd %uint %126489 %int_1
-      %44532 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126489
-      %44533 = OpLoad %float %44532
-               OpBranch %44543
-      %44542 = OpLabel
-               OpUnreachable
-      %44543 = OpLabel
-     %126494 = OpPhi %uint %44531 %44529 %126489 %44537
-     %126493 = OpPhi %uint %126488 %44529 %44539 %44537
-     %126491 = OpPhi %float %44533 %44529 %115996 %44537
-     %126490 = OpPhi %float %44533 %44529 %115997 %44537
-      %36025 = OpLoad %uint %30040
-      %36026 = OpBitwiseAnd %uint %36025 %uint_8192
-      %36027 = OpUGreaterThan %bool %36026 %uint_0
-               OpSelectionMerge %44566 None
-               OpSwitch %uint_0 %44550
-      %44550 = OpLabel
-               OpSelectionMerge %44565 None
-               OpBranchConditional %36027 %44552 %44560
-      %44560 = OpLabel
-      %44562 = OpISub %uint %126493 %int_1
-      %44563 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %44562
-      %44564 = OpLoad %_arr_float_uint_2 %44563
-     %115987 = OpCompositeExtract %float %44564 0
-     %115988 = OpCompositeExtract %float %44564 1
-               OpBranch %44566
-      %44552 = OpLabel
-      %44554 = OpIAdd %uint %126494 %int_1
-      %44555 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126494
-      %44556 = OpLoad %float %44555
-               OpBranch %44566
-      %44565 = OpLabel
-               OpUnreachable
-      %44566 = OpLabel
-     %128468 = OpPhi %uint %44554 %44552 %126494 %44560
-     %126501 = OpPhi %uint %126493 %44552 %44562 %44560
-     %126496 = OpPhi %float %44556 %44552 %115987 %44560
-     %126495 = OpPhi %float %44556 %44552 %115988 %44560
-      %36035 = OpExtInst %float %1 FMix %126486 %126491 %126496
-      %36043 = OpExtInst %float %1 FMix %126485 %126490 %126495
-     %119577 = OpCompositeConstruct %_arr_float_uint_2 %36035 %36043
-      %44570 = OpIAdd %uint %126501 %int_1
-      %44572 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126501
-               OpStore %44572 %119577
-               OpBranch %38458
-      %35973 = OpLabel
-      %35976 = OpLoad %uint %30040
-      %35977 = OpBitwiseAnd %uint %35976 %uint_32768
-      %35978 = OpUGreaterThan %bool %35977 %uint_0
-               OpSelectionMerge %44446 None
-               OpSwitch %uint_0 %44430
-      %44430 = OpLabel
-               OpSelectionMerge %44445 None
-               OpBranchConditional %35978 %44432 %44440
-      %44440 = OpLabel
-      %44442 = OpISub %uint %126031 %int_1
-      %44443 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %44442
-      %44444 = OpLoad %_arr_float_uint_2 %44443
-     %116032 = OpCompositeExtract %float %44444 0
-     %116033 = OpCompositeExtract %float %44444 1
-               OpBranch %44446
-      %44432 = OpLabel
-      %44434 = OpIAdd %uint %126033 %int_1
-      %44435 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %44436 = OpLoad %float %44435
-               OpBranch %44446
-      %44445 = OpLabel
-               OpUnreachable
-      %44446 = OpLabel
-     %126506 = OpPhi %uint %44434 %44432 %126033 %44440
-     %126505 = OpPhi %uint %126031 %44432 %44442 %44440
-     %126503 = OpPhi %float %44436 %44432 %116032 %44440
-     %126502 = OpPhi %float %44436 %44432 %116033 %44440
-      %35982 = OpLoad %uint %30040
-      %35983 = OpBitwiseAnd %uint %35982 %uint_16384
-      %35984 = OpUGreaterThan %bool %35983 %uint_0
-               OpSelectionMerge %44469 None
-               OpSwitch %uint_0 %44453
-      %44453 = OpLabel
-               OpSelectionMerge %44468 None
-               OpBranchConditional %35984 %44455 %44463
-      %44463 = OpLabel
-      %44465 = OpISub %uint %126505 %int_1
-      %44466 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %44465
-      %44467 = OpLoad %_arr_float_uint_2 %44466
-     %116023 = OpCompositeExtract %float %44467 0
-     %116024 = OpCompositeExtract %float %44467 1
-               OpBranch %44469
-      %44455 = OpLabel
-      %44457 = OpIAdd %uint %126506 %int_1
-      %44458 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126506
-      %44459 = OpLoad %float %44458
-               OpBranch %44469
-      %44468 = OpLabel
-               OpUnreachable
-      %44469 = OpLabel
-     %126511 = OpPhi %uint %44457 %44455 %126506 %44463
-     %126510 = OpPhi %uint %126505 %44455 %44465 %44463
-     %126508 = OpPhi %float %44459 %44455 %116023 %44463
-     %126507 = OpPhi %float %44459 %44455 %116024 %44463
-      %35988 = OpLoad %uint %30040
-      %35989 = OpBitwiseAnd %uint %35988 %uint_8192
-      %35990 = OpUGreaterThan %bool %35989 %uint_0
-               OpSelectionMerge %44492 None
-               OpSwitch %uint_0 %44476
-      %44476 = OpLabel
-               OpSelectionMerge %44491 None
-               OpBranchConditional %35990 %44478 %44486
-      %44486 = OpLabel
-      %44488 = OpISub %uint %126510 %int_1
-      %44489 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %44488
-      %44490 = OpLoad %_arr_float_uint_2 %44489
-     %116014 = OpCompositeExtract %float %44490 0
-     %116015 = OpCompositeExtract %float %44490 1
-               OpBranch %44492
-      %44478 = OpLabel
-      %44480 = OpIAdd %uint %126511 %int_1
-      %44481 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126511
-      %44482 = OpLoad %float %44481
-               OpBranch %44492
-      %44491 = OpLabel
-               OpUnreachable
-      %44492 = OpLabel
-     %128467 = OpPhi %uint %44480 %44478 %126511 %44486
-     %126518 = OpPhi %uint %126510 %44478 %44488 %44486
-     %126513 = OpPhi %float %44482 %44478 %116014 %44486
-     %126512 = OpPhi %float %44482 %44478 %116015 %44486
-      %35998 = OpExtInst %float %1 FClamp %126503 %126508 %126513
-      %36006 = OpExtInst %float %1 FClamp %126502 %126507 %126512
-     %119562 = OpCompositeConstruct %_arr_float_uint_2 %35998 %36006
-      %44496 = OpIAdd %uint %126518 %int_1
-      %44498 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126518
-               OpStore %44498 %119562
-               OpBranch %38458
-      %35891 = OpLabel
-      %35894 = OpLoad %uint %30040
-      %35895 = OpBitwiseAnd %uint %35894 %uint_32768
-      %35896 = OpUGreaterThan %bool %35895 %uint_0
-               OpSelectionMerge %44372 None
-               OpSwitch %uint_0 %44356
-      %44356 = OpLabel
-               OpSelectionMerge %44371 None
-               OpBranchConditional %35896 %44358 %44366
-      %44366 = OpLabel
-      %44368 = OpISub %uint %126050 %int_1
-      %44369 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44368
-      %44370 = OpLoad %_arr_v4float_uint_2 %44369
-     %116059 = OpCompositeExtract %v4float %44370 0
-     %116060 = OpCompositeExtract %v4float %44370 1
-               OpBranch %44372
-      %44358 = OpLabel
-      %44360 = OpIAdd %uint %126076 %int_1
-      %44361 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %44362 = OpLoad %v4float %44361
-               OpBranch %44372
-      %44371 = OpLabel
-               OpUnreachable
-      %44372 = OpLabel
-     %126523 = OpPhi %uint %44360 %44358 %126076 %44366
-     %126522 = OpPhi %uint %126050 %44358 %44368 %44366
-     %126520 = OpPhi %v4float %44362 %44358 %116059 %44366
-     %126519 = OpPhi %v4float %44362 %44358 %116060 %44366
-      %35900 = OpLoad %uint %30040
-      %35901 = OpBitwiseAnd %uint %35900 %uint_16384
-      %35902 = OpUGreaterThan %bool %35901 %uint_0
-               OpSelectionMerge %44395 None
-               OpSwitch %uint_0 %44379
-      %44379 = OpLabel
-               OpSelectionMerge %44394 None
-               OpBranchConditional %35902 %44381 %44389
-      %44389 = OpLabel
-      %44391 = OpISub %uint %126522 %int_1
-      %44392 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44391
-      %44393 = OpLoad %_arr_v4float_uint_2 %44392
-     %116050 = OpCompositeExtract %v4float %44393 0
-     %116051 = OpCompositeExtract %v4float %44393 1
-               OpBranch %44395
-      %44381 = OpLabel
-      %44383 = OpIAdd %uint %126523 %int_1
-      %44384 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126523
-      %44385 = OpLoad %v4float %44384
-               OpBranch %44395
-      %44394 = OpLabel
-               OpUnreachable
-      %44395 = OpLabel
-     %126528 = OpPhi %uint %44383 %44381 %126523 %44389
-     %126527 = OpPhi %uint %126522 %44381 %44391 %44389
-     %126525 = OpPhi %v4float %44385 %44381 %116050 %44389
-     %126524 = OpPhi %v4float %44385 %44381 %116051 %44389
-      %35906 = OpLoad %uint %30040
-      %35907 = OpBitwiseAnd %uint %35906 %uint_8192
-      %35908 = OpUGreaterThan %bool %35907 %uint_0
-               OpSelectionMerge %44418 None
-               OpSwitch %uint_0 %44402
-      %44402 = OpLabel
-               OpSelectionMerge %44417 None
-               OpBranchConditional %35908 %44404 %44412
-      %44412 = OpLabel
-      %44414 = OpISub %uint %126527 %int_1
-      %44415 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44414
-      %44416 = OpLoad %_arr_v4float_uint_2 %44415
-     %116041 = OpCompositeExtract %v4float %44416 0
-     %116042 = OpCompositeExtract %v4float %44416 1
-               OpBranch %44418
-      %44404 = OpLabel
-      %44406 = OpIAdd %uint %126528 %int_1
-      %44407 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126528
-      %44408 = OpLoad %v4float %44407
-               OpBranch %44418
-      %44417 = OpLabel
-               OpUnreachable
-      %44418 = OpLabel
-     %189309 = OpPhi %uint %44406 %44404 %126528 %44412
-     %126537 = OpPhi %uint %126527 %44404 %44414 %44412
-     %126530 = OpPhi %v4float %44408 %44404 %116041 %44412
-     %126529 = OpPhi %v4float %44408 %44404 %116042 %44412
-      %35914 = OpFMul %v4float %126520 %126525
-      %35920 = OpFMul %v4float %126520 %126524
-      %35926 = OpFMul %v4float %126519 %126525
-      %35932 = OpFMul %v4float %126519 %126524
-      %35942 = OpExtInst %v4float %1 FMin %35926 %35932
-      %35943 = OpExtInst %v4float %1 FMin %35920 %35942
-      %35944 = OpExtInst %v4float %1 FMin %35914 %35943
-      %35954 = OpExtInst %v4float %1 FMax %35926 %35932
-      %35955 = OpExtInst %v4float %1 FMax %35920 %35954
-      %35956 = OpExtInst %v4float %1 FMax %35914 %35955
-      %35963 = OpFAdd %v4float %35944 %126530
-      %35969 = OpFAdd %v4float %35956 %126529
-     %119545 = OpCompositeConstruct %_arr_v4float_uint_2 %35963 %35969
-      %44422 = OpIAdd %uint %126537 %int_1
-      %44424 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126537
-               OpStore %44424 %119545
-               OpBranch %38458
-      %35864 = OpLabel
-      %35867 = OpLoad %uint %30040
-      %35868 = OpBitwiseAnd %uint %35867 %uint_32768
-      %35869 = OpUGreaterThan %bool %35868 %uint_0
-               OpSelectionMerge %44321 None
-               OpSwitch %uint_0 %44305
-      %44305 = OpLabel
-               OpSelectionMerge %44320 None
-               OpBranchConditional %35869 %44307 %44315
-      %44315 = OpLabel
-      %44317 = OpISub %uint %126050 %int_1
-      %44318 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44317
-      %44319 = OpLoad %_arr_v4float_uint_2 %44318
-     %116077 = OpCompositeExtract %v4float %44319 0
-     %116078 = OpCompositeExtract %v4float %44319 1
-               OpBranch %44321
-      %44307 = OpLabel
-      %44309 = OpIAdd %uint %126076 %int_1
-      %44310 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %44311 = OpLoad %v4float %44310
-               OpBranch %44321
-      %44320 = OpLabel
-               OpUnreachable
-      %44321 = OpLabel
-     %126542 = OpPhi %uint %44309 %44307 %126076 %44315
-     %126541 = OpPhi %uint %126050 %44307 %44317 %44315
-     %126539 = OpPhi %v4float %44311 %44307 %116077 %44315
-     %126538 = OpPhi %v4float %44311 %44307 %116078 %44315
-      %35873 = OpLoad %uint %30040
-      %35874 = OpBitwiseAnd %uint %35873 %uint_16384
-      %35875 = OpUGreaterThan %bool %35874 %uint_0
-               OpSelectionMerge %44344 None
-               OpSwitch %uint_0 %44328
-      %44328 = OpLabel
-               OpSelectionMerge %44343 None
-               OpBranchConditional %35875 %44330 %44338
-      %44338 = OpLabel
-      %44340 = OpISub %uint %126541 %int_1
-      %44341 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44340
-      %44342 = OpLoad %_arr_v4float_uint_2 %44341
-     %116068 = OpCompositeExtract %v4float %44342 0
-     %116069 = OpCompositeExtract %v4float %44342 1
-               OpBranch %44344
-      %44330 = OpLabel
-      %44332 = OpIAdd %uint %126542 %int_1
-      %44333 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126542
-      %44334 = OpLoad %v4float %44333
-               OpBranch %44344
-      %44343 = OpLabel
-               OpUnreachable
-      %44344 = OpLabel
-     %189308 = OpPhi %uint %44332 %44330 %126542 %44338
-     %126547 = OpPhi %uint %126541 %44330 %44340 %44338
-     %126544 = OpPhi %v4float %44334 %44330 %116068 %44338
-     %126543 = OpPhi %v4float %44334 %44330 %116069 %44338
-      %35881 = OpExtInst %v4float %1 FMax %126539 %126544
-      %35887 = OpExtInst %v4float %1 FMax %126538 %126543
-     %119534 = OpCompositeConstruct %_arr_v4float_uint_2 %35881 %35887
-      %44348 = OpIAdd %uint %126547 %int_1
-      %44350 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126547
-               OpStore %44350 %119534
-               OpBranch %38458
-      %35837 = OpLabel
-      %35840 = OpLoad %uint %30040
-      %35841 = OpBitwiseAnd %uint %35840 %uint_32768
-      %35842 = OpUGreaterThan %bool %35841 %uint_0
-               OpSelectionMerge %44270 None
-               OpSwitch %uint_0 %44254
-      %44254 = OpLabel
-               OpSelectionMerge %44269 None
-               OpBranchConditional %35842 %44256 %44264
-      %44264 = OpLabel
-      %44266 = OpISub %uint %126050 %int_1
-      %44267 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44266
-      %44268 = OpLoad %_arr_v4float_uint_2 %44267
-     %116095 = OpCompositeExtract %v4float %44268 0
-     %116096 = OpCompositeExtract %v4float %44268 1
-               OpBranch %44270
-      %44256 = OpLabel
-      %44258 = OpIAdd %uint %126076 %int_1
-      %44259 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %44260 = OpLoad %v4float %44259
-               OpBranch %44270
-      %44269 = OpLabel
-               OpUnreachable
-      %44270 = OpLabel
-     %126552 = OpPhi %uint %44258 %44256 %126076 %44264
-     %126551 = OpPhi %uint %126050 %44256 %44266 %44264
-     %126549 = OpPhi %v4float %44260 %44256 %116095 %44264
-     %126548 = OpPhi %v4float %44260 %44256 %116096 %44264
-      %35846 = OpLoad %uint %30040
-      %35847 = OpBitwiseAnd %uint %35846 %uint_16384
-      %35848 = OpUGreaterThan %bool %35847 %uint_0
-               OpSelectionMerge %44293 None
-               OpSwitch %uint_0 %44277
-      %44277 = OpLabel
-               OpSelectionMerge %44292 None
-               OpBranchConditional %35848 %44279 %44287
-      %44287 = OpLabel
-      %44289 = OpISub %uint %126551 %int_1
-      %44290 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44289
-      %44291 = OpLoad %_arr_v4float_uint_2 %44290
-     %116086 = OpCompositeExtract %v4float %44291 0
-     %116087 = OpCompositeExtract %v4float %44291 1
-               OpBranch %44293
-      %44279 = OpLabel
-      %44281 = OpIAdd %uint %126552 %int_1
-      %44282 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126552
-      %44283 = OpLoad %v4float %44282
-               OpBranch %44293
-      %44292 = OpLabel
-               OpUnreachable
-      %44293 = OpLabel
-     %189307 = OpPhi %uint %44281 %44279 %126552 %44287
-     %126557 = OpPhi %uint %126551 %44279 %44289 %44287
-     %126554 = OpPhi %v4float %44283 %44279 %116086 %44287
-     %126553 = OpPhi %v4float %44283 %44279 %116087 %44287
-      %35854 = OpExtInst %v4float %1 FMin %126549 %126554
-      %35860 = OpExtInst %v4float %1 FMin %126548 %126553
-     %119523 = OpCompositeConstruct %_arr_v4float_uint_2 %35854 %35860
-      %44297 = OpIAdd %uint %126557 %int_1
-      %44299 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126557
-               OpStore %44299 %119523
-               OpBranch %38458
-      %35808 = OpLabel
-      %35811 = OpLoad %uint %30040
-      %35812 = OpBitwiseAnd %uint %35811 %uint_32768
-      %35813 = OpUGreaterThan %bool %35812 %uint_0
-               OpSelectionMerge %44242 None
-               OpSwitch %uint_0 %44226
-      %44226 = OpLabel
-               OpSelectionMerge %44241 None
-               OpBranchConditional %35813 %44228 %44236
-      %44236 = OpLabel
-      %44238 = OpISub %uint %126050 %int_1
-      %44239 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44238
-      %44240 = OpLoad %_arr_v4float_uint_2 %44239
-     %116104 = OpCompositeExtract %v4float %44240 0
-     %116105 = OpCompositeExtract %v4float %44240 1
-               OpBranch %44242
-      %44228 = OpLabel
-      %44230 = OpIAdd %uint %126076 %int_1
-      %44231 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %44232 = OpLoad %v4float %44231
-               OpBranch %44242
-      %44241 = OpLabel
-               OpUnreachable
-      %44242 = OpLabel
-     %189306 = OpPhi %uint %44230 %44228 %126076 %44236
-     %126560 = OpPhi %uint %126050 %44228 %44238 %44236
-     %126559 = OpPhi %v4float %44232 %44228 %116104 %44236
-     %126558 = OpPhi %v4float %44232 %44228 %116105 %44236
-      %35817 = OpExtInst %v4float %1 Trunc %126559
-      %35821 = OpExtInst %v4float %1 Trunc %126558
-      %35827 = OpExtInst %v4float %1 FMin %35817 %35821
-      %35833 = OpExtInst %v4float %1 FMax %35817 %35821
-     %119514 = OpCompositeConstruct %_arr_v4float_uint_2 %35827 %35833
-      %44246 = OpIAdd %uint %126560 %int_1
-      %44248 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126560
-               OpStore %44248 %119514
-               OpBranch %38458
-      %35779 = OpLabel
-      %35782 = OpLoad %uint %30040
-      %35783 = OpBitwiseAnd %uint %35782 %uint_32768
-      %35784 = OpUGreaterThan %bool %35783 %uint_0
-               OpSelectionMerge %44214 None
-               OpSwitch %uint_0 %44198
-      %44198 = OpLabel
-               OpSelectionMerge %44213 None
-               OpBranchConditional %35784 %44200 %44208
-      %44208 = OpLabel
-      %44210 = OpISub %uint %126050 %int_1
-      %44211 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44210
-      %44212 = OpLoad %_arr_v4float_uint_2 %44211
-     %116113 = OpCompositeExtract %v4float %44212 0
-     %116114 = OpCompositeExtract %v4float %44212 1
-               OpBranch %44214
-      %44200 = OpLabel
-      %44202 = OpIAdd %uint %126076 %int_1
-      %44203 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %44204 = OpLoad %v4float %44203
-               OpBranch %44214
-      %44213 = OpLabel
-               OpUnreachable
-      %44214 = OpLabel
-     %189305 = OpPhi %uint %44202 %44200 %126076 %44208
-     %126563 = OpPhi %uint %126050 %44200 %44210 %44208
-     %126562 = OpPhi %v4float %44204 %44200 %116113 %44208
-     %126561 = OpPhi %v4float %44204 %44200 %116114 %44208
-      %35788 = OpExtInst %v4float %1 Round %126562
-      %35792 = OpExtInst %v4float %1 Round %126561
-      %35798 = OpExtInst %v4float %1 FMin %35788 %35792
-      %35804 = OpExtInst %v4float %1 FMax %35788 %35792
-     %119505 = OpCompositeConstruct %_arr_v4float_uint_2 %35798 %35804
-      %44218 = OpIAdd %uint %126563 %int_1
-      %44220 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126563
-               OpStore %44220 %119505
-               OpBranch %38458
-      %35750 = OpLabel
-      %35753 = OpLoad %uint %30040
-      %35754 = OpBitwiseAnd %uint %35753 %uint_32768
-      %35755 = OpUGreaterThan %bool %35754 %uint_0
-               OpSelectionMerge %44186 None
-               OpSwitch %uint_0 %44170
-      %44170 = OpLabel
-               OpSelectionMerge %44185 None
-               OpBranchConditional %35755 %44172 %44180
-      %44180 = OpLabel
-      %44182 = OpISub %uint %126050 %int_1
-      %44183 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44182
-      %44184 = OpLoad %_arr_v4float_uint_2 %44183
-     %116122 = OpCompositeExtract %v4float %44184 0
-     %116123 = OpCompositeExtract %v4float %44184 1
-               OpBranch %44186
-      %44172 = OpLabel
-      %44174 = OpIAdd %uint %126076 %int_1
-      %44175 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %44176 = OpLoad %v4float %44175
-               OpBranch %44186
-      %44185 = OpLabel
-               OpUnreachable
-      %44186 = OpLabel
-     %189304 = OpPhi %uint %44174 %44172 %126076 %44180
-     %126566 = OpPhi %uint %126050 %44172 %44182 %44180
-     %126565 = OpPhi %v4float %44176 %44172 %116122 %44180
-     %126564 = OpPhi %v4float %44176 %44172 %116123 %44180
-      %35759 = OpExtInst %v4float %1 Tanh %126565
-      %35763 = OpExtInst %v4float %1 Tanh %126564
-      %35769 = OpExtInst %v4float %1 FMin %35759 %35763
-      %35775 = OpExtInst %v4float %1 FMax %35759 %35763
-     %119496 = OpCompositeConstruct %_arr_v4float_uint_2 %35769 %35775
-      %44190 = OpIAdd %uint %126566 %int_1
-      %44192 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126566
-               OpStore %44192 %119496
-               OpBranch %38458
-      %35721 = OpLabel
-      %35724 = OpLoad %uint %30040
-      %35725 = OpBitwiseAnd %uint %35724 %uint_32768
-      %35726 = OpUGreaterThan %bool %35725 %uint_0
-               OpSelectionMerge %44158 None
-               OpSwitch %uint_0 %44142
-      %44142 = OpLabel
-               OpSelectionMerge %44157 None
-               OpBranchConditional %35726 %44144 %44152
-      %44152 = OpLabel
-      %44154 = OpISub %uint %126050 %int_1
-      %44155 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44154
-      %44156 = OpLoad %_arr_v4float_uint_2 %44155
-     %116131 = OpCompositeExtract %v4float %44156 0
-     %116132 = OpCompositeExtract %v4float %44156 1
-               OpBranch %44158
-      %44144 = OpLabel
-      %44146 = OpIAdd %uint %126076 %int_1
-      %44147 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %44148 = OpLoad %v4float %44147
-               OpBranch %44158
-      %44157 = OpLabel
-               OpUnreachable
-      %44158 = OpLabel
-     %189303 = OpPhi %uint %44146 %44144 %126076 %44152
-     %126569 = OpPhi %uint %126050 %44144 %44154 %44152
-     %126568 = OpPhi %v4float %44148 %44144 %116131 %44152
-     %126567 = OpPhi %v4float %44148 %44144 %116132 %44152
-      %35730 = OpExtInst %v4float %1 Sinh %126568
-      %35734 = OpExtInst %v4float %1 Sinh %126567
-      %35740 = OpExtInst %v4float %1 FMin %35730 %35734
-      %35746 = OpExtInst %v4float %1 FMax %35730 %35734
-     %119487 = OpCompositeConstruct %_arr_v4float_uint_2 %35740 %35746
-      %44162 = OpIAdd %uint %126569 %int_1
-      %44164 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126569
-               OpStore %44164 %119487
-               OpBranch %38458
-      %35692 = OpLabel
-      %35695 = OpLoad %uint %30040
-      %35696 = OpBitwiseAnd %uint %35695 %uint_32768
-      %35697 = OpUGreaterThan %bool %35696 %uint_0
-               OpSelectionMerge %44130 None
-               OpSwitch %uint_0 %44114
-      %44114 = OpLabel
-               OpSelectionMerge %44129 None
-               OpBranchConditional %35697 %44116 %44124
-      %44124 = OpLabel
-      %44126 = OpISub %uint %126050 %int_1
-      %44127 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44126
-      %44128 = OpLoad %_arr_v4float_uint_2 %44127
-     %116140 = OpCompositeExtract %v4float %44128 0
-     %116141 = OpCompositeExtract %v4float %44128 1
-               OpBranch %44130
-      %44116 = OpLabel
-      %44118 = OpIAdd %uint %126076 %int_1
-      %44119 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %44120 = OpLoad %v4float %44119
-               OpBranch %44130
-      %44129 = OpLabel
-               OpUnreachable
-      %44130 = OpLabel
-     %189302 = OpPhi %uint %44118 %44116 %126076 %44124
-     %126572 = OpPhi %uint %126050 %44116 %44126 %44124
-     %126571 = OpPhi %v4float %44120 %44116 %116140 %44124
-     %126570 = OpPhi %v4float %44120 %44116 %116141 %44124
-      %35701 = OpExtInst %v4float %1 Cosh %126571
-      %35705 = OpExtInst %v4float %1 Cosh %126570
-      %35711 = OpExtInst %v4float %1 FMin %35701 %35705
-      %35717 = OpExtInst %v4float %1 FMax %35701 %35705
-     %119478 = OpCompositeConstruct %_arr_v4float_uint_2 %35711 %35717
-      %44134 = OpIAdd %uint %126572 %int_1
-      %44136 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126572
-               OpStore %44136 %119478
-               OpBranch %38458
-      %35663 = OpLabel
-      %35666 = OpLoad %uint %30040
-      %35667 = OpBitwiseAnd %uint %35666 %uint_32768
-      %35668 = OpUGreaterThan %bool %35667 %uint_0
-               OpSelectionMerge %44102 None
-               OpSwitch %uint_0 %44086
-      %44086 = OpLabel
-               OpSelectionMerge %44101 None
-               OpBranchConditional %35668 %44088 %44096
-      %44096 = OpLabel
-      %44098 = OpISub %uint %126050 %int_1
-      %44099 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44098
-      %44100 = OpLoad %_arr_v4float_uint_2 %44099
-     %116149 = OpCompositeExtract %v4float %44100 0
-     %116150 = OpCompositeExtract %v4float %44100 1
-               OpBranch %44102
-      %44088 = OpLabel
-      %44090 = OpIAdd %uint %126076 %int_1
-      %44091 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %44092 = OpLoad %v4float %44091
-               OpBranch %44102
-      %44101 = OpLabel
-               OpUnreachable
-      %44102 = OpLabel
-     %189301 = OpPhi %uint %44090 %44088 %126076 %44096
-     %126575 = OpPhi %uint %126050 %44088 %44098 %44096
-     %126574 = OpPhi %v4float %44092 %44088 %116149 %44096
-     %126573 = OpPhi %v4float %44092 %44088 %116150 %44096
-      %35672 = OpExtInst %v4float %1 Atanh %126574
-      %35676 = OpExtInst %v4float %1 Atanh %126573
-      %35682 = OpExtInst %v4float %1 FMin %35672 %35676
-      %35688 = OpExtInst %v4float %1 FMax %35672 %35676
-     %119469 = OpCompositeConstruct %_arr_v4float_uint_2 %35682 %35688
-      %44106 = OpIAdd %uint %126575 %int_1
-      %44108 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126575
-               OpStore %44108 %119469
-               OpBranch %38458
-      %35634 = OpLabel
-      %35637 = OpLoad %uint %30040
-      %35638 = OpBitwiseAnd %uint %35637 %uint_32768
-      %35639 = OpUGreaterThan %bool %35638 %uint_0
-               OpSelectionMerge %44074 None
-               OpSwitch %uint_0 %44058
-      %44058 = OpLabel
-               OpSelectionMerge %44073 None
-               OpBranchConditional %35639 %44060 %44068
-      %44068 = OpLabel
-      %44070 = OpISub %uint %126050 %int_1
-      %44071 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44070
-      %44072 = OpLoad %_arr_v4float_uint_2 %44071
-     %116158 = OpCompositeExtract %v4float %44072 0
-     %116159 = OpCompositeExtract %v4float %44072 1
-               OpBranch %44074
-      %44060 = OpLabel
-      %44062 = OpIAdd %uint %126076 %int_1
-      %44063 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %44064 = OpLoad %v4float %44063
-               OpBranch %44074
-      %44073 = OpLabel
-               OpUnreachable
-      %44074 = OpLabel
-     %189300 = OpPhi %uint %44062 %44060 %126076 %44068
-     %126578 = OpPhi %uint %126050 %44060 %44070 %44068
-     %126577 = OpPhi %v4float %44064 %44060 %116158 %44068
-     %126576 = OpPhi %v4float %44064 %44060 %116159 %44068
-      %35643 = OpExtInst %v4float %1 Asinh %126577
-      %35647 = OpExtInst %v4float %1 Asinh %126576
-      %35653 = OpExtInst %v4float %1 FMin %35643 %35647
-      %35659 = OpExtInst %v4float %1 FMax %35643 %35647
-     %119460 = OpCompositeConstruct %_arr_v4float_uint_2 %35653 %35659
-      %44078 = OpIAdd %uint %126578 %int_1
-      %44080 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126578
-               OpStore %44080 %119460
-               OpBranch %38458
-      %35605 = OpLabel
-      %35608 = OpLoad %uint %30040
-      %35609 = OpBitwiseAnd %uint %35608 %uint_32768
-      %35610 = OpUGreaterThan %bool %35609 %uint_0
-               OpSelectionMerge %44046 None
-               OpSwitch %uint_0 %44030
-      %44030 = OpLabel
-               OpSelectionMerge %44045 None
-               OpBranchConditional %35610 %44032 %44040
-      %44040 = OpLabel
-      %44042 = OpISub %uint %126050 %int_1
-      %44043 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44042
-      %44044 = OpLoad %_arr_v4float_uint_2 %44043
-     %116167 = OpCompositeExtract %v4float %44044 0
-     %116168 = OpCompositeExtract %v4float %44044 1
-               OpBranch %44046
-      %44032 = OpLabel
-      %44034 = OpIAdd %uint %126076 %int_1
-      %44035 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %44036 = OpLoad %v4float %44035
-               OpBranch %44046
-      %44045 = OpLabel
-               OpUnreachable
-      %44046 = OpLabel
-     %189299 = OpPhi %uint %44034 %44032 %126076 %44040
-     %126581 = OpPhi %uint %126050 %44032 %44042 %44040
-     %126580 = OpPhi %v4float %44036 %44032 %116167 %44040
-     %126579 = OpPhi %v4float %44036 %44032 %116168 %44040
-      %35614 = OpExtInst %v4float %1 Acosh %126580
-      %35618 = OpExtInst %v4float %1 Acosh %126579
-      %35624 = OpExtInst %v4float %1 FMin %35614 %35618
-      %35630 = OpExtInst %v4float %1 FMax %35614 %35618
-     %119451 = OpCompositeConstruct %_arr_v4float_uint_2 %35624 %35630
-      %44050 = OpIAdd %uint %126581 %int_1
-      %44052 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126581
-               OpStore %44052 %119451
-               OpBranch %38458
-      %35576 = OpLabel
-      %35579 = OpLoad %uint %30040
-      %35580 = OpBitwiseAnd %uint %35579 %uint_32768
-      %35581 = OpUGreaterThan %bool %35580 %uint_0
-               OpSelectionMerge %44018 None
-               OpSwitch %uint_0 %44002
-      %44002 = OpLabel
-               OpSelectionMerge %44017 None
-               OpBranchConditional %35581 %44004 %44012
-      %44012 = OpLabel
-      %44014 = OpISub %uint %126050 %int_1
-      %44015 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %44014
-      %44016 = OpLoad %_arr_v4float_uint_2 %44015
-     %116176 = OpCompositeExtract %v4float %44016 0
-     %116177 = OpCompositeExtract %v4float %44016 1
-               OpBranch %44018
-      %44004 = OpLabel
-      %44006 = OpIAdd %uint %126076 %int_1
-      %44007 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %44008 = OpLoad %v4float %44007
-               OpBranch %44018
-      %44017 = OpLabel
-               OpUnreachable
-      %44018 = OpLabel
-     %189298 = OpPhi %uint %44006 %44004 %126076 %44012
-     %126584 = OpPhi %uint %126050 %44004 %44014 %44012
-     %126583 = OpPhi %v4float %44008 %44004 %116176 %44012
-     %126582 = OpPhi %v4float %44008 %44004 %116177 %44012
-      %35585 = OpExtInst %v4float %1 Atan %126583
-      %35589 = OpExtInst %v4float %1 Atan %126582
-      %35595 = OpExtInst %v4float %1 FMin %35585 %35589
-      %35601 = OpExtInst %v4float %1 FMax %35585 %35589
-     %119442 = OpCompositeConstruct %_arr_v4float_uint_2 %35595 %35601
-      %44022 = OpIAdd %uint %126584 %int_1
-      %44024 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126584
-               OpStore %44024 %119442
-               OpBranch %38458
-      %35547 = OpLabel
-      %35550 = OpLoad %uint %30040
-      %35551 = OpBitwiseAnd %uint %35550 %uint_32768
-      %35552 = OpUGreaterThan %bool %35551 %uint_0
-               OpSelectionMerge %43990 None
-               OpSwitch %uint_0 %43974
-      %43974 = OpLabel
-               OpSelectionMerge %43989 None
-               OpBranchConditional %35552 %43976 %43984
-      %43984 = OpLabel
-      %43986 = OpISub %uint %126050 %int_1
-      %43987 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43986
-      %43988 = OpLoad %_arr_v4float_uint_2 %43987
-     %116185 = OpCompositeExtract %v4float %43988 0
-     %116186 = OpCompositeExtract %v4float %43988 1
-               OpBranch %43990
-      %43976 = OpLabel
-      %43978 = OpIAdd %uint %126076 %int_1
-      %43979 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43980 = OpLoad %v4float %43979
-               OpBranch %43990
-      %43989 = OpLabel
-               OpUnreachable
-      %43990 = OpLabel
-     %189297 = OpPhi %uint %43978 %43976 %126076 %43984
-     %126587 = OpPhi %uint %126050 %43976 %43986 %43984
-     %126586 = OpPhi %v4float %43980 %43976 %116185 %43984
-     %126585 = OpPhi %v4float %43980 %43976 %116186 %43984
-      %35556 = OpExtInst %v4float %1 Acos %126586
-      %35560 = OpExtInst %v4float %1 Acos %126585
-      %35566 = OpExtInst %v4float %1 FMin %35556 %35560
-      %35572 = OpExtInst %v4float %1 FMax %35556 %35560
-     %119433 = OpCompositeConstruct %_arr_v4float_uint_2 %35566 %35572
-      %43994 = OpIAdd %uint %126587 %int_1
-      %43996 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126587
-               OpStore %43996 %119433
-               OpBranch %38458
-      %35518 = OpLabel
-      %35521 = OpLoad %uint %30040
-      %35522 = OpBitwiseAnd %uint %35521 %uint_32768
-      %35523 = OpUGreaterThan %bool %35522 %uint_0
-               OpSelectionMerge %43962 None
-               OpSwitch %uint_0 %43946
-      %43946 = OpLabel
-               OpSelectionMerge %43961 None
-               OpBranchConditional %35523 %43948 %43956
-      %43956 = OpLabel
-      %43958 = OpISub %uint %126050 %int_1
-      %43959 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43958
-      %43960 = OpLoad %_arr_v4float_uint_2 %43959
-     %116194 = OpCompositeExtract %v4float %43960 0
-     %116195 = OpCompositeExtract %v4float %43960 1
-               OpBranch %43962
-      %43948 = OpLabel
-      %43950 = OpIAdd %uint %126076 %int_1
-      %43951 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43952 = OpLoad %v4float %43951
-               OpBranch %43962
-      %43961 = OpLabel
-               OpUnreachable
-      %43962 = OpLabel
-     %189296 = OpPhi %uint %43950 %43948 %126076 %43956
-     %126590 = OpPhi %uint %126050 %43948 %43958 %43956
-     %126589 = OpPhi %v4float %43952 %43948 %116194 %43956
-     %126588 = OpPhi %v4float %43952 %43948 %116195 %43956
-      %35527 = OpExtInst %v4float %1 Asin %126589
-      %35531 = OpExtInst %v4float %1 Asin %126588
-      %35537 = OpExtInst %v4float %1 FMin %35527 %35531
-      %35543 = OpExtInst %v4float %1 FMax %35527 %35531
-     %119424 = OpCompositeConstruct %_arr_v4float_uint_2 %35537 %35543
-      %43966 = OpIAdd %uint %126590 %int_1
-      %43968 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126590
-               OpStore %43968 %119424
-               OpBranch %38458
-      %35489 = OpLabel
-      %35492 = OpLoad %uint %30040
-      %35493 = OpBitwiseAnd %uint %35492 %uint_32768
-      %35494 = OpUGreaterThan %bool %35493 %uint_0
-               OpSelectionMerge %43934 None
-               OpSwitch %uint_0 %43918
-      %43918 = OpLabel
-               OpSelectionMerge %43933 None
-               OpBranchConditional %35494 %43920 %43928
-      %43928 = OpLabel
-      %43930 = OpISub %uint %126050 %int_1
-      %43931 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43930
-      %43932 = OpLoad %_arr_v4float_uint_2 %43931
-     %116203 = OpCompositeExtract %v4float %43932 0
-     %116204 = OpCompositeExtract %v4float %43932 1
-               OpBranch %43934
-      %43920 = OpLabel
-      %43922 = OpIAdd %uint %126076 %int_1
-      %43923 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43924 = OpLoad %v4float %43923
-               OpBranch %43934
-      %43933 = OpLabel
-               OpUnreachable
-      %43934 = OpLabel
-     %189295 = OpPhi %uint %43922 %43920 %126076 %43928
-     %126593 = OpPhi %uint %126050 %43920 %43930 %43928
-     %126592 = OpPhi %v4float %43924 %43920 %116203 %43928
-     %126591 = OpPhi %v4float %43924 %43920 %116204 %43928
-      %35498 = OpExtInst %v4float %1 Tan %126592
-      %35502 = OpExtInst %v4float %1 Tan %126591
-      %35508 = OpExtInst %v4float %1 FMin %35498 %35502
-      %35514 = OpExtInst %v4float %1 FMax %35498 %35502
-     %119415 = OpCompositeConstruct %_arr_v4float_uint_2 %35508 %35514
-      %43938 = OpIAdd %uint %126593 %int_1
-      %43940 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126593
-               OpStore %43940 %119415
-               OpBranch %38458
-      %35460 = OpLabel
-      %35463 = OpLoad %uint %30040
-      %35464 = OpBitwiseAnd %uint %35463 %uint_32768
-      %35465 = OpUGreaterThan %bool %35464 %uint_0
-               OpSelectionMerge %43906 None
-               OpSwitch %uint_0 %43890
-      %43890 = OpLabel
-               OpSelectionMerge %43905 None
-               OpBranchConditional %35465 %43892 %43900
-      %43900 = OpLabel
-      %43902 = OpISub %uint %126050 %int_1
-      %43903 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43902
-      %43904 = OpLoad %_arr_v4float_uint_2 %43903
-     %116212 = OpCompositeExtract %v4float %43904 0
-     %116213 = OpCompositeExtract %v4float %43904 1
-               OpBranch %43906
-      %43892 = OpLabel
-      %43894 = OpIAdd %uint %126076 %int_1
-      %43895 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43896 = OpLoad %v4float %43895
-               OpBranch %43906
-      %43905 = OpLabel
-               OpUnreachable
-      %43906 = OpLabel
-     %189294 = OpPhi %uint %43894 %43892 %126076 %43900
-     %126596 = OpPhi %uint %126050 %43892 %43902 %43900
-     %126595 = OpPhi %v4float %43896 %43892 %116212 %43900
-     %126594 = OpPhi %v4float %43896 %43892 %116213 %43900
-      %35469 = OpExtInst %v4float %1 Cos %126595
-      %35473 = OpExtInst %v4float %1 Cos %126594
-      %35479 = OpExtInst %v4float %1 FMin %35469 %35473
-      %35485 = OpExtInst %v4float %1 FMax %35469 %35473
-     %119406 = OpCompositeConstruct %_arr_v4float_uint_2 %35479 %35485
-      %43910 = OpIAdd %uint %126596 %int_1
-      %43912 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126596
-               OpStore %43912 %119406
-               OpBranch %38458
-      %35431 = OpLabel
-      %35434 = OpLoad %uint %30040
-      %35435 = OpBitwiseAnd %uint %35434 %uint_32768
-      %35436 = OpUGreaterThan %bool %35435 %uint_0
-               OpSelectionMerge %43878 None
-               OpSwitch %uint_0 %43862
-      %43862 = OpLabel
-               OpSelectionMerge %43877 None
-               OpBranchConditional %35436 %43864 %43872
-      %43872 = OpLabel
-      %43874 = OpISub %uint %126050 %int_1
-      %43875 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43874
-      %43876 = OpLoad %_arr_v4float_uint_2 %43875
-     %116221 = OpCompositeExtract %v4float %43876 0
-     %116222 = OpCompositeExtract %v4float %43876 1
-               OpBranch %43878
-      %43864 = OpLabel
-      %43866 = OpIAdd %uint %126076 %int_1
-      %43867 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43868 = OpLoad %v4float %43867
-               OpBranch %43878
-      %43877 = OpLabel
-               OpUnreachable
-      %43878 = OpLabel
-     %189293 = OpPhi %uint %43866 %43864 %126076 %43872
-     %126599 = OpPhi %uint %126050 %43864 %43874 %43872
-     %126598 = OpPhi %v4float %43868 %43864 %116221 %43872
-     %126597 = OpPhi %v4float %43868 %43864 %116222 %43872
-      %35440 = OpExtInst %v4float %1 Sin %126598
-      %35444 = OpExtInst %v4float %1 Sin %126597
-      %35450 = OpExtInst %v4float %1 FMin %35440 %35444
-      %35456 = OpExtInst %v4float %1 FMax %35440 %35444
-     %119397 = OpCompositeConstruct %_arr_v4float_uint_2 %35450 %35456
-      %43882 = OpIAdd %uint %126599 %int_1
-      %43884 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126599
-               OpStore %43884 %119397
-               OpBranch %38458
-      %35402 = OpLabel
-      %35405 = OpLoad %uint %30040
-      %35406 = OpBitwiseAnd %uint %35405 %uint_32768
-      %35407 = OpUGreaterThan %bool %35406 %uint_0
-               OpSelectionMerge %43850 None
-               OpSwitch %uint_0 %43834
-      %43834 = OpLabel
-               OpSelectionMerge %43849 None
-               OpBranchConditional %35407 %43836 %43844
-      %43844 = OpLabel
-      %43846 = OpISub %uint %126050 %int_1
-      %43847 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43846
-      %43848 = OpLoad %_arr_v4float_uint_2 %43847
-     %116230 = OpCompositeExtract %v4float %43848 0
-     %116231 = OpCompositeExtract %v4float %43848 1
-               OpBranch %43850
-      %43836 = OpLabel
-      %43838 = OpIAdd %uint %126076 %int_1
-      %43839 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43840 = OpLoad %v4float %43839
-               OpBranch %43850
-      %43849 = OpLabel
-               OpUnreachable
-      %43850 = OpLabel
-     %189292 = OpPhi %uint %43838 %43836 %126076 %43844
-     %126602 = OpPhi %uint %126050 %43836 %43846 %43844
-     %126601 = OpPhi %v4float %43840 %43836 %116230 %43844
-     %126600 = OpPhi %v4float %43840 %43836 %116231 %43844
-      %35411 = OpExtInst %v4float %1 Log2 %126601
-      %35415 = OpExtInst %v4float %1 Log2 %126600
-      %35421 = OpExtInst %v4float %1 FMin %35411 %35415
-      %35427 = OpExtInst %v4float %1 FMax %35411 %35415
-     %119388 = OpCompositeConstruct %_arr_v4float_uint_2 %35421 %35427
-      %43854 = OpIAdd %uint %126602 %int_1
-      %43856 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126602
-               OpStore %43856 %119388
-               OpBranch %38458
-      %35373 = OpLabel
-      %35376 = OpLoad %uint %30040
-      %35377 = OpBitwiseAnd %uint %35376 %uint_32768
-      %35378 = OpUGreaterThan %bool %35377 %uint_0
-               OpSelectionMerge %43822 None
-               OpSwitch %uint_0 %43806
-      %43806 = OpLabel
-               OpSelectionMerge %43821 None
-               OpBranchConditional %35378 %43808 %43816
-      %43816 = OpLabel
-      %43818 = OpISub %uint %126050 %int_1
-      %43819 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43818
-      %43820 = OpLoad %_arr_v4float_uint_2 %43819
-     %116239 = OpCompositeExtract %v4float %43820 0
-     %116240 = OpCompositeExtract %v4float %43820 1
-               OpBranch %43822
-      %43808 = OpLabel
-      %43810 = OpIAdd %uint %126076 %int_1
-      %43811 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43812 = OpLoad %v4float %43811
-               OpBranch %43822
-      %43821 = OpLabel
-               OpUnreachable
-      %43822 = OpLabel
-     %189291 = OpPhi %uint %43810 %43808 %126076 %43816
-     %126605 = OpPhi %uint %126050 %43808 %43818 %43816
-     %126604 = OpPhi %v4float %43812 %43808 %116239 %43816
-     %126603 = OpPhi %v4float %43812 %43808 %116240 %43816
-      %35382 = OpExtInst %v4float %1 Log %126604
-      %35386 = OpExtInst %v4float %1 Log %126603
-      %35392 = OpExtInst %v4float %1 FMin %35382 %35386
-      %35398 = OpExtInst %v4float %1 FMax %35382 %35386
-     %119379 = OpCompositeConstruct %_arr_v4float_uint_2 %35392 %35398
-      %43826 = OpIAdd %uint %126605 %int_1
-      %43828 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126605
-               OpStore %43828 %119379
-               OpBranch %38458
-      %35344 = OpLabel
-      %35347 = OpLoad %uint %30040
-      %35348 = OpBitwiseAnd %uint %35347 %uint_32768
-      %35349 = OpUGreaterThan %bool %35348 %uint_0
-               OpSelectionMerge %43794 None
-               OpSwitch %uint_0 %43778
-      %43778 = OpLabel
-               OpSelectionMerge %43793 None
-               OpBranchConditional %35349 %43780 %43788
-      %43788 = OpLabel
-      %43790 = OpISub %uint %126050 %int_1
-      %43791 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43790
-      %43792 = OpLoad %_arr_v4float_uint_2 %43791
-     %116248 = OpCompositeExtract %v4float %43792 0
-     %116249 = OpCompositeExtract %v4float %43792 1
-               OpBranch %43794
-      %43780 = OpLabel
-      %43782 = OpIAdd %uint %126076 %int_1
-      %43783 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43784 = OpLoad %v4float %43783
-               OpBranch %43794
-      %43793 = OpLabel
-               OpUnreachable
-      %43794 = OpLabel
-     %189290 = OpPhi %uint %43782 %43780 %126076 %43788
-     %126608 = OpPhi %uint %126050 %43780 %43790 %43788
-     %126607 = OpPhi %v4float %43784 %43780 %116248 %43788
-     %126606 = OpPhi %v4float %43784 %43780 %116249 %43788
-      %35353 = OpExtInst %v4float %1 Exp2 %126607
-      %35357 = OpExtInst %v4float %1 Exp2 %126606
-      %35363 = OpExtInst %v4float %1 FMin %35353 %35357
-      %35369 = OpExtInst %v4float %1 FMax %35353 %35357
-     %119370 = OpCompositeConstruct %_arr_v4float_uint_2 %35363 %35369
-      %43798 = OpIAdd %uint %126608 %int_1
-      %43800 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126608
-               OpStore %43800 %119370
-               OpBranch %38458
-      %35315 = OpLabel
-      %35318 = OpLoad %uint %30040
-      %35319 = OpBitwiseAnd %uint %35318 %uint_32768
-      %35320 = OpUGreaterThan %bool %35319 %uint_0
-               OpSelectionMerge %43766 None
-               OpSwitch %uint_0 %43750
-      %43750 = OpLabel
-               OpSelectionMerge %43765 None
-               OpBranchConditional %35320 %43752 %43760
-      %43760 = OpLabel
-      %43762 = OpISub %uint %126050 %int_1
-      %43763 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43762
-      %43764 = OpLoad %_arr_v4float_uint_2 %43763
-     %116257 = OpCompositeExtract %v4float %43764 0
-     %116258 = OpCompositeExtract %v4float %43764 1
-               OpBranch %43766
-      %43752 = OpLabel
-      %43754 = OpIAdd %uint %126076 %int_1
-      %43755 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43756 = OpLoad %v4float %43755
-               OpBranch %43766
-      %43765 = OpLabel
-               OpUnreachable
-      %43766 = OpLabel
-     %189289 = OpPhi %uint %43754 %43752 %126076 %43760
-     %126611 = OpPhi %uint %126050 %43752 %43762 %43760
-     %126610 = OpPhi %v4float %43756 %43752 %116257 %43760
-     %126609 = OpPhi %v4float %43756 %43752 %116258 %43760
-      %35324 = OpExtInst %v4float %1 Exp %126610
-      %35328 = OpExtInst %v4float %1 Exp %126609
-      %35334 = OpExtInst %v4float %1 FMin %35324 %35328
-      %35340 = OpExtInst %v4float %1 FMax %35324 %35328
-     %119361 = OpCompositeConstruct %_arr_v4float_uint_2 %35334 %35340
-      %43770 = OpIAdd %uint %126611 %int_1
-      %43772 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126611
-               OpStore %43772 %119361
-               OpBranch %38458
-      %35286 = OpLabel
-      %35289 = OpLoad %uint %30040
-      %35290 = OpBitwiseAnd %uint %35289 %uint_32768
-      %35291 = OpUGreaterThan %bool %35290 %uint_0
-               OpSelectionMerge %43738 None
-               OpSwitch %uint_0 %43722
-      %43722 = OpLabel
-               OpSelectionMerge %43737 None
-               OpBranchConditional %35291 %43724 %43732
-      %43732 = OpLabel
-      %43734 = OpISub %uint %126050 %int_1
-      %43735 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43734
-      %43736 = OpLoad %_arr_v4float_uint_2 %43735
-     %116266 = OpCompositeExtract %v4float %43736 0
-     %116267 = OpCompositeExtract %v4float %43736 1
-               OpBranch %43738
-      %43724 = OpLabel
-      %43726 = OpIAdd %uint %126076 %int_1
-      %43727 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43728 = OpLoad %v4float %43727
-               OpBranch %43738
-      %43737 = OpLabel
-               OpUnreachable
-      %43738 = OpLabel
-     %189288 = OpPhi %uint %43726 %43724 %126076 %43732
-     %126614 = OpPhi %uint %126050 %43724 %43734 %43732
-     %126613 = OpPhi %v4float %43728 %43724 %116266 %43732
-     %126612 = OpPhi %v4float %43728 %43724 %116267 %43732
-      %35295 = OpExtInst %v4float %1 InverseSqrt %126613
-      %35299 = OpExtInst %v4float %1 InverseSqrt %126612
-      %35305 = OpExtInst %v4float %1 FMin %35295 %35299
-      %35311 = OpExtInst %v4float %1 FMax %35295 %35299
-     %119352 = OpCompositeConstruct %_arr_v4float_uint_2 %35305 %35311
-      %43742 = OpIAdd %uint %126614 %int_1
-      %43744 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126614
-               OpStore %43744 %119352
-               OpBranch %38458
-      %35257 = OpLabel
-      %35260 = OpLoad %uint %30040
-      %35261 = OpBitwiseAnd %uint %35260 %uint_32768
-      %35262 = OpUGreaterThan %bool %35261 %uint_0
-               OpSelectionMerge %43710 None
-               OpSwitch %uint_0 %43694
-      %43694 = OpLabel
-               OpSelectionMerge %43709 None
-               OpBranchConditional %35262 %43696 %43704
-      %43704 = OpLabel
-      %43706 = OpISub %uint %126050 %int_1
-      %43707 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43706
-      %43708 = OpLoad %_arr_v4float_uint_2 %43707
-     %116275 = OpCompositeExtract %v4float %43708 0
-     %116276 = OpCompositeExtract %v4float %43708 1
-               OpBranch %43710
-      %43696 = OpLabel
-      %43698 = OpIAdd %uint %126076 %int_1
-      %43699 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43700 = OpLoad %v4float %43699
-               OpBranch %43710
-      %43709 = OpLabel
-               OpUnreachable
-      %43710 = OpLabel
-     %189287 = OpPhi %uint %43698 %43696 %126076 %43704
-     %126617 = OpPhi %uint %126050 %43696 %43706 %43704
-     %126616 = OpPhi %v4float %43700 %43696 %116275 %43704
-     %126615 = OpPhi %v4float %43700 %43696 %116276 %43704
-      %35266 = OpExtInst %v4float %1 Sqrt %126616
-      %35270 = OpExtInst %v4float %1 Sqrt %126615
-      %35276 = OpExtInst %v4float %1 FMin %35266 %35270
-      %35282 = OpExtInst %v4float %1 FMax %35266 %35270
-     %119343 = OpCompositeConstruct %_arr_v4float_uint_2 %35276 %35282
-      %43714 = OpIAdd %uint %126617 %int_1
-      %43716 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126617
-               OpStore %43716 %119343
-               OpBranch %38458
-      %35228 = OpLabel
-      %35231 = OpLoad %uint %30040
-      %35232 = OpBitwiseAnd %uint %35231 %uint_32768
-      %35233 = OpUGreaterThan %bool %35232 %uint_0
-               OpSelectionMerge %43682 None
-               OpSwitch %uint_0 %43666
-      %43666 = OpLabel
-               OpSelectionMerge %43681 None
-               OpBranchConditional %35233 %43668 %43676
-      %43676 = OpLabel
-      %43678 = OpISub %uint %126050 %int_1
-      %43679 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43678
-      %43680 = OpLoad %_arr_v4float_uint_2 %43679
-     %116284 = OpCompositeExtract %v4float %43680 0
-     %116285 = OpCompositeExtract %v4float %43680 1
-               OpBranch %43682
-      %43668 = OpLabel
-      %43670 = OpIAdd %uint %126076 %int_1
-      %43671 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43672 = OpLoad %v4float %43671
-               OpBranch %43682
-      %43681 = OpLabel
-               OpUnreachable
-      %43682 = OpLabel
-     %189286 = OpPhi %uint %43670 %43668 %126076 %43676
-     %126620 = OpPhi %uint %126050 %43668 %43678 %43676
-     %126619 = OpPhi %v4float %43672 %43668 %116284 %43676
-     %126618 = OpPhi %v4float %43672 %43668 %116285 %43676
-      %35237 = OpExtInst %v4float %1 Fract %126619
-      %35241 = OpExtInst %v4float %1 Fract %126618
-      %35247 = OpExtInst %v4float %1 FMin %35237 %35241
-      %35253 = OpExtInst %v4float %1 FMax %35237 %35241
-     %119334 = OpCompositeConstruct %_arr_v4float_uint_2 %35247 %35253
-      %43686 = OpIAdd %uint %126620 %int_1
-      %43688 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126620
-               OpStore %43688 %119334
-               OpBranch %38458
-      %35199 = OpLabel
-      %35202 = OpLoad %uint %30040
-      %35203 = OpBitwiseAnd %uint %35202 %uint_32768
-      %35204 = OpUGreaterThan %bool %35203 %uint_0
-               OpSelectionMerge %43654 None
-               OpSwitch %uint_0 %43638
-      %43638 = OpLabel
-               OpSelectionMerge %43653 None
-               OpBranchConditional %35204 %43640 %43648
-      %43648 = OpLabel
-      %43650 = OpISub %uint %126050 %int_1
-      %43651 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43650
-      %43652 = OpLoad %_arr_v4float_uint_2 %43651
-     %116293 = OpCompositeExtract %v4float %43652 0
-     %116294 = OpCompositeExtract %v4float %43652 1
-               OpBranch %43654
-      %43640 = OpLabel
-      %43642 = OpIAdd %uint %126076 %int_1
-      %43643 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43644 = OpLoad %v4float %43643
-               OpBranch %43654
-      %43653 = OpLabel
-               OpUnreachable
-      %43654 = OpLabel
-     %189285 = OpPhi %uint %43642 %43640 %126076 %43648
-     %126623 = OpPhi %uint %126050 %43640 %43650 %43648
-     %126622 = OpPhi %v4float %43644 %43640 %116293 %43648
-     %126621 = OpPhi %v4float %43644 %43640 %116294 %43648
-      %35208 = OpExtInst %v4float %1 Ceil %126622
-      %35212 = OpExtInst %v4float %1 Ceil %126621
-      %35218 = OpExtInst %v4float %1 FMin %35208 %35212
-      %35224 = OpExtInst %v4float %1 FMax %35208 %35212
-     %119325 = OpCompositeConstruct %_arr_v4float_uint_2 %35218 %35224
-      %43658 = OpIAdd %uint %126623 %int_1
-      %43660 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126623
-               OpStore %43660 %119325
-               OpBranch %38458
-      %35170 = OpLabel
-      %35173 = OpLoad %uint %30040
-      %35174 = OpBitwiseAnd %uint %35173 %uint_32768
-      %35175 = OpUGreaterThan %bool %35174 %uint_0
-               OpSelectionMerge %43626 None
-               OpSwitch %uint_0 %43610
-      %43610 = OpLabel
-               OpSelectionMerge %43625 None
-               OpBranchConditional %35175 %43612 %43620
-      %43620 = OpLabel
-      %43622 = OpISub %uint %126050 %int_1
-      %43623 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43622
-      %43624 = OpLoad %_arr_v4float_uint_2 %43623
-     %116302 = OpCompositeExtract %v4float %43624 0
-     %116303 = OpCompositeExtract %v4float %43624 1
-               OpBranch %43626
-      %43612 = OpLabel
-      %43614 = OpIAdd %uint %126076 %int_1
-      %43615 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43616 = OpLoad %v4float %43615
-               OpBranch %43626
-      %43625 = OpLabel
-               OpUnreachable
-      %43626 = OpLabel
-     %189284 = OpPhi %uint %43614 %43612 %126076 %43620
-     %126626 = OpPhi %uint %126050 %43612 %43622 %43620
-     %126625 = OpPhi %v4float %43616 %43612 %116302 %43620
-     %126624 = OpPhi %v4float %43616 %43612 %116303 %43620
-      %35179 = OpExtInst %v4float %1 Floor %126625
-      %35183 = OpExtInst %v4float %1 Floor %126624
-      %35189 = OpExtInst %v4float %1 FMin %35179 %35183
-      %35195 = OpExtInst %v4float %1 FMax %35179 %35183
-     %119316 = OpCompositeConstruct %_arr_v4float_uint_2 %35189 %35195
-      %43630 = OpIAdd %uint %126626 %int_1
-      %43632 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126626
-               OpStore %43632 %119316
-               OpBranch %38458
-      %35141 = OpLabel
-      %35144 = OpLoad %uint %30040
-      %35145 = OpBitwiseAnd %uint %35144 %uint_32768
-      %35146 = OpUGreaterThan %bool %35145 %uint_0
-               OpSelectionMerge %43598 None
-               OpSwitch %uint_0 %43582
-      %43582 = OpLabel
-               OpSelectionMerge %43597 None
-               OpBranchConditional %35146 %43584 %43592
-      %43592 = OpLabel
-      %43594 = OpISub %uint %126050 %int_1
-      %43595 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43594
-      %43596 = OpLoad %_arr_v4float_uint_2 %43595
-     %116311 = OpCompositeExtract %v4float %43596 0
-     %116312 = OpCompositeExtract %v4float %43596 1
-               OpBranch %43598
-      %43584 = OpLabel
-      %43586 = OpIAdd %uint %126076 %int_1
-      %43587 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43588 = OpLoad %v4float %43587
-               OpBranch %43598
-      %43597 = OpLabel
-               OpUnreachable
-      %43598 = OpLabel
-     %189283 = OpPhi %uint %43586 %43584 %126076 %43592
-     %126629 = OpPhi %uint %126050 %43584 %43594 %43592
-     %126628 = OpPhi %v4float %43588 %43584 %116311 %43592
-     %126627 = OpPhi %v4float %43588 %43584 %116312 %43592
-      %35150 = OpExtInst %v4float %1 FSign %126628
-      %35154 = OpExtInst %v4float %1 FSign %126627
-      %35160 = OpExtInst %v4float %1 FMin %35150 %35154
-      %35166 = OpExtInst %v4float %1 FMax %35150 %35154
-     %119307 = OpCompositeConstruct %_arr_v4float_uint_2 %35160 %35166
-      %43602 = OpIAdd %uint %126629 %int_1
-      %43604 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126629
-               OpStore %43604 %119307
-               OpBranch %38458
-      %35112 = OpLabel
-      %35115 = OpLoad %uint %30040
-      %35116 = OpBitwiseAnd %uint %35115 %uint_32768
-      %35117 = OpUGreaterThan %bool %35116 %uint_0
-               OpSelectionMerge %43570 None
-               OpSwitch %uint_0 %43554
-      %43554 = OpLabel
-               OpSelectionMerge %43569 None
-               OpBranchConditional %35117 %43556 %43564
-      %43564 = OpLabel
-      %43566 = OpISub %uint %126050 %int_1
-      %43567 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %43566
-      %43568 = OpLoad %_arr_v4float_uint_2 %43567
-     %116320 = OpCompositeExtract %v4float %43568 0
-     %116321 = OpCompositeExtract %v4float %43568 1
-               OpBranch %43570
-      %43556 = OpLabel
-      %43558 = OpIAdd %uint %126076 %int_1
-      %43559 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %43560 = OpLoad %v4float %43559
-               OpBranch %43570
-      %43569 = OpLabel
-               OpUnreachable
-      %43570 = OpLabel
-     %189282 = OpPhi %uint %43558 %43556 %126076 %43564
-     %126632 = OpPhi %uint %126050 %43556 %43566 %43564
-     %126631 = OpPhi %v4float %43560 %43556 %116320 %43564
-     %126630 = OpPhi %v4float %43560 %43556 %116321 %43564
-      %35121 = OpExtInst %v4float %1 FAbs %126631
-      %35125 = OpExtInst %v4float %1 FAbs %126630
-      %35131 = OpExtInst %v4float %1 FMin %35121 %35125
-      %35137 = OpExtInst %v4float %1 FMax %35121 %35125
-     %119298 = OpCompositeConstruct %_arr_v4float_uint_2 %35131 %35137
-      %43574 = OpIAdd %uint %126632 %int_1
-      %43576 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %126632
-               OpStore %43576 %119298
-               OpBranch %38458
-      %35030 = OpLabel
-      %35033 = OpLoad %uint %30040
-      %35034 = OpBitwiseAnd %uint %35033 %uint_32768
-      %35035 = OpUGreaterThan %bool %35034 %uint_0
-               OpSelectionMerge %43496 None
-               OpSwitch %uint_0 %43480
-      %43480 = OpLabel
-               OpSelectionMerge %43495 None
-               OpBranchConditional %35035 %43482 %43490
-      %43490 = OpLabel
-      %43492 = OpISub %uint %126041 %int_1
-      %43493 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43492
-      %43494 = OpLoad %_arr_v3float_uint_2 %43493
-     %116347 = OpCompositeExtract %v3float %43494 0
-     %116348 = OpCompositeExtract %v3float %43494 1
-               OpBranch %43496
-      %43482 = OpLabel
-      %43484 = OpIAdd %uint %126044 %int_1
-      %43485 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43486 = OpLoad %v3float %43485
-               OpBranch %43496
-      %43495 = OpLabel
-               OpUnreachable
-      %43496 = OpLabel
-     %126637 = OpPhi %uint %43484 %43482 %126044 %43490
-     %126636 = OpPhi %uint %126041 %43482 %43492 %43490
-     %126634 = OpPhi %v3float %43486 %43482 %116347 %43490
-     %126633 = OpPhi %v3float %43486 %43482 %116348 %43490
-      %35039 = OpLoad %uint %30040
-      %35040 = OpBitwiseAnd %uint %35039 %uint_16384
-      %35041 = OpUGreaterThan %bool %35040 %uint_0
-               OpSelectionMerge %43519 None
-               OpSwitch %uint_0 %43503
-      %43503 = OpLabel
-               OpSelectionMerge %43518 None
-               OpBranchConditional %35041 %43505 %43513
-      %43513 = OpLabel
-      %43515 = OpISub %uint %126636 %int_1
-      %43516 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43515
-      %43517 = OpLoad %_arr_v3float_uint_2 %43516
-     %116338 = OpCompositeExtract %v3float %43517 0
-     %116339 = OpCompositeExtract %v3float %43517 1
-               OpBranch %43519
-      %43505 = OpLabel
-      %43507 = OpIAdd %uint %126637 %int_1
-      %43508 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126637
-      %43509 = OpLoad %v3float %43508
-               OpBranch %43519
-      %43518 = OpLabel
-               OpUnreachable
-      %43519 = OpLabel
-     %126642 = OpPhi %uint %43507 %43505 %126637 %43513
-     %126641 = OpPhi %uint %126636 %43505 %43515 %43513
-     %126639 = OpPhi %v3float %43509 %43505 %116338 %43513
-     %126638 = OpPhi %v3float %43509 %43505 %116339 %43513
-      %35045 = OpLoad %uint %30040
-      %35046 = OpBitwiseAnd %uint %35045 %uint_8192
-      %35047 = OpUGreaterThan %bool %35046 %uint_0
-               OpSelectionMerge %43542 None
-               OpSwitch %uint_0 %43526
-      %43526 = OpLabel
-               OpSelectionMerge %43541 None
-               OpBranchConditional %35047 %43528 %43536
-      %43536 = OpLabel
-      %43538 = OpISub %uint %126641 %int_1
-      %43539 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43538
-      %43540 = OpLoad %_arr_v3float_uint_2 %43539
-     %116329 = OpCompositeExtract %v3float %43540 0
-     %116330 = OpCompositeExtract %v3float %43540 1
-               OpBranch %43542
-      %43528 = OpLabel
-      %43530 = OpIAdd %uint %126642 %int_1
-      %43531 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126642
-      %43532 = OpLoad %v3float %43531
-               OpBranch %43542
-      %43541 = OpLabel
-               OpUnreachable
-      %43542 = OpLabel
-     %188503 = OpPhi %uint %43530 %43528 %126642 %43536
-     %126651 = OpPhi %uint %126641 %43528 %43538 %43536
-     %126644 = OpPhi %v3float %43532 %43528 %116329 %43536
-     %126643 = OpPhi %v3float %43532 %43528 %116330 %43536
-      %35053 = OpFMul %v3float %126634 %126639
-      %35059 = OpFMul %v3float %126634 %126638
-      %35065 = OpFMul %v3float %126633 %126639
-      %35071 = OpFMul %v3float %126633 %126638
-      %35081 = OpExtInst %v3float %1 FMin %35065 %35071
-      %35082 = OpExtInst %v3float %1 FMin %35059 %35081
-      %35083 = OpExtInst %v3float %1 FMin %35053 %35082
-      %35093 = OpExtInst %v3float %1 FMax %35065 %35071
-      %35094 = OpExtInst %v3float %1 FMax %35059 %35093
-      %35095 = OpExtInst %v3float %1 FMax %35053 %35094
-      %35102 = OpFAdd %v3float %35083 %126644
-      %35108 = OpFAdd %v3float %35095 %126643
-     %119281 = OpCompositeConstruct %_arr_v3float_uint_2 %35102 %35108
-      %43546 = OpIAdd %uint %126651 %int_1
-      %43548 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126651
-               OpStore %43548 %119281
-               OpBranch %38458
-      %35003 = OpLabel
-      %35006 = OpLoad %uint %30040
-      %35007 = OpBitwiseAnd %uint %35006 %uint_32768
-      %35008 = OpUGreaterThan %bool %35007 %uint_0
-               OpSelectionMerge %43445 None
-               OpSwitch %uint_0 %43429
-      %43429 = OpLabel
-               OpSelectionMerge %43444 None
-               OpBranchConditional %35008 %43431 %43439
-      %43439 = OpLabel
-      %43441 = OpISub %uint %126041 %int_1
-      %43442 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43441
-      %43443 = OpLoad %_arr_v3float_uint_2 %43442
-     %116365 = OpCompositeExtract %v3float %43443 0
-     %116366 = OpCompositeExtract %v3float %43443 1
-               OpBranch %43445
-      %43431 = OpLabel
-      %43433 = OpIAdd %uint %126044 %int_1
-      %43434 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43435 = OpLoad %v3float %43434
-               OpBranch %43445
-      %43444 = OpLabel
-               OpUnreachable
-      %43445 = OpLabel
-     %126656 = OpPhi %uint %43433 %43431 %126044 %43439
-     %126655 = OpPhi %uint %126041 %43431 %43441 %43439
-     %126653 = OpPhi %v3float %43435 %43431 %116365 %43439
-     %126652 = OpPhi %v3float %43435 %43431 %116366 %43439
-      %35012 = OpLoad %uint %30040
-      %35013 = OpBitwiseAnd %uint %35012 %uint_16384
-      %35014 = OpUGreaterThan %bool %35013 %uint_0
-               OpSelectionMerge %43468 None
-               OpSwitch %uint_0 %43452
-      %43452 = OpLabel
-               OpSelectionMerge %43467 None
-               OpBranchConditional %35014 %43454 %43462
-      %43462 = OpLabel
-      %43464 = OpISub %uint %126655 %int_1
-      %43465 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43464
-      %43466 = OpLoad %_arr_v3float_uint_2 %43465
-     %116356 = OpCompositeExtract %v3float %43466 0
-     %116357 = OpCompositeExtract %v3float %43466 1
-               OpBranch %43468
-      %43454 = OpLabel
-      %43456 = OpIAdd %uint %126656 %int_1
-      %43457 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126656
-      %43458 = OpLoad %v3float %43457
-               OpBranch %43468
-      %43467 = OpLabel
-               OpUnreachable
-      %43468 = OpLabel
-     %188502 = OpPhi %uint %43456 %43454 %126656 %43462
-     %126661 = OpPhi %uint %126655 %43454 %43464 %43462
-     %126658 = OpPhi %v3float %43458 %43454 %116356 %43462
-     %126657 = OpPhi %v3float %43458 %43454 %116357 %43462
-      %35020 = OpExtInst %v3float %1 FMax %126653 %126658
-      %35026 = OpExtInst %v3float %1 FMax %126652 %126657
-     %119270 = OpCompositeConstruct %_arr_v3float_uint_2 %35020 %35026
-      %43472 = OpIAdd %uint %126661 %int_1
-      %43474 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126661
-               OpStore %43474 %119270
-               OpBranch %38458
-      %34976 = OpLabel
-      %34979 = OpLoad %uint %30040
-      %34980 = OpBitwiseAnd %uint %34979 %uint_32768
-      %34981 = OpUGreaterThan %bool %34980 %uint_0
-               OpSelectionMerge %43394 None
-               OpSwitch %uint_0 %43378
-      %43378 = OpLabel
-               OpSelectionMerge %43393 None
-               OpBranchConditional %34981 %43380 %43388
-      %43388 = OpLabel
-      %43390 = OpISub %uint %126041 %int_1
-      %43391 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43390
-      %43392 = OpLoad %_arr_v3float_uint_2 %43391
-     %116383 = OpCompositeExtract %v3float %43392 0
-     %116384 = OpCompositeExtract %v3float %43392 1
-               OpBranch %43394
-      %43380 = OpLabel
-      %43382 = OpIAdd %uint %126044 %int_1
-      %43383 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43384 = OpLoad %v3float %43383
-               OpBranch %43394
-      %43393 = OpLabel
-               OpUnreachable
-      %43394 = OpLabel
-     %126666 = OpPhi %uint %43382 %43380 %126044 %43388
-     %126665 = OpPhi %uint %126041 %43380 %43390 %43388
-     %126663 = OpPhi %v3float %43384 %43380 %116383 %43388
-     %126662 = OpPhi %v3float %43384 %43380 %116384 %43388
-      %34985 = OpLoad %uint %30040
-      %34986 = OpBitwiseAnd %uint %34985 %uint_16384
-      %34987 = OpUGreaterThan %bool %34986 %uint_0
-               OpSelectionMerge %43417 None
-               OpSwitch %uint_0 %43401
-      %43401 = OpLabel
-               OpSelectionMerge %43416 None
-               OpBranchConditional %34987 %43403 %43411
-      %43411 = OpLabel
-      %43413 = OpISub %uint %126665 %int_1
-      %43414 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43413
-      %43415 = OpLoad %_arr_v3float_uint_2 %43414
-     %116374 = OpCompositeExtract %v3float %43415 0
-     %116375 = OpCompositeExtract %v3float %43415 1
-               OpBranch %43417
-      %43403 = OpLabel
-      %43405 = OpIAdd %uint %126666 %int_1
-      %43406 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126666
-      %43407 = OpLoad %v3float %43406
-               OpBranch %43417
-      %43416 = OpLabel
-               OpUnreachable
-      %43417 = OpLabel
-     %188501 = OpPhi %uint %43405 %43403 %126666 %43411
-     %126671 = OpPhi %uint %126665 %43403 %43413 %43411
-     %126668 = OpPhi %v3float %43407 %43403 %116374 %43411
-     %126667 = OpPhi %v3float %43407 %43403 %116375 %43411
-      %34993 = OpExtInst %v3float %1 FMin %126663 %126668
-      %34999 = OpExtInst %v3float %1 FMin %126662 %126667
-     %119259 = OpCompositeConstruct %_arr_v3float_uint_2 %34993 %34999
-      %43421 = OpIAdd %uint %126671 %int_1
-      %43423 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126671
-               OpStore %43423 %119259
-               OpBranch %38458
-      %34947 = OpLabel
-      %34950 = OpLoad %uint %30040
-      %34951 = OpBitwiseAnd %uint %34950 %uint_32768
-      %34952 = OpUGreaterThan %bool %34951 %uint_0
-               OpSelectionMerge %43366 None
-               OpSwitch %uint_0 %43350
-      %43350 = OpLabel
-               OpSelectionMerge %43365 None
-               OpBranchConditional %34952 %43352 %43360
-      %43360 = OpLabel
-      %43362 = OpISub %uint %126041 %int_1
-      %43363 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43362
-      %43364 = OpLoad %_arr_v3float_uint_2 %43363
-     %116392 = OpCompositeExtract %v3float %43364 0
-     %116393 = OpCompositeExtract %v3float %43364 1
-               OpBranch %43366
-      %43352 = OpLabel
-      %43354 = OpIAdd %uint %126044 %int_1
-      %43355 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43356 = OpLoad %v3float %43355
-               OpBranch %43366
-      %43365 = OpLabel
-               OpUnreachable
-      %43366 = OpLabel
-     %188500 = OpPhi %uint %43354 %43352 %126044 %43360
-     %126674 = OpPhi %uint %126041 %43352 %43362 %43360
-     %126673 = OpPhi %v3float %43356 %43352 %116392 %43360
-     %126672 = OpPhi %v3float %43356 %43352 %116393 %43360
-      %34956 = OpExtInst %v3float %1 Trunc %126673
-      %34960 = OpExtInst %v3float %1 Trunc %126672
-      %34966 = OpExtInst %v3float %1 FMin %34956 %34960
-      %34972 = OpExtInst %v3float %1 FMax %34956 %34960
-     %119250 = OpCompositeConstruct %_arr_v3float_uint_2 %34966 %34972
-      %43370 = OpIAdd %uint %126674 %int_1
-      %43372 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126674
-               OpStore %43372 %119250
-               OpBranch %38458
-      %34918 = OpLabel
-      %34921 = OpLoad %uint %30040
-      %34922 = OpBitwiseAnd %uint %34921 %uint_32768
-      %34923 = OpUGreaterThan %bool %34922 %uint_0
-               OpSelectionMerge %43338 None
-               OpSwitch %uint_0 %43322
-      %43322 = OpLabel
-               OpSelectionMerge %43337 None
-               OpBranchConditional %34923 %43324 %43332
-      %43332 = OpLabel
-      %43334 = OpISub %uint %126041 %int_1
-      %43335 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43334
-      %43336 = OpLoad %_arr_v3float_uint_2 %43335
-     %116401 = OpCompositeExtract %v3float %43336 0
-     %116402 = OpCompositeExtract %v3float %43336 1
-               OpBranch %43338
-      %43324 = OpLabel
-      %43326 = OpIAdd %uint %126044 %int_1
-      %43327 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43328 = OpLoad %v3float %43327
-               OpBranch %43338
-      %43337 = OpLabel
-               OpUnreachable
-      %43338 = OpLabel
-     %188499 = OpPhi %uint %43326 %43324 %126044 %43332
-     %126677 = OpPhi %uint %126041 %43324 %43334 %43332
-     %126676 = OpPhi %v3float %43328 %43324 %116401 %43332
-     %126675 = OpPhi %v3float %43328 %43324 %116402 %43332
-      %34927 = OpExtInst %v3float %1 Round %126676
-      %34931 = OpExtInst %v3float %1 Round %126675
-      %34937 = OpExtInst %v3float %1 FMin %34927 %34931
-      %34943 = OpExtInst %v3float %1 FMax %34927 %34931
-     %119241 = OpCompositeConstruct %_arr_v3float_uint_2 %34937 %34943
-      %43342 = OpIAdd %uint %126677 %int_1
-      %43344 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126677
-               OpStore %43344 %119241
-               OpBranch %38458
-      %34889 = OpLabel
-      %34892 = OpLoad %uint %30040
-      %34893 = OpBitwiseAnd %uint %34892 %uint_32768
-      %34894 = OpUGreaterThan %bool %34893 %uint_0
-               OpSelectionMerge %43310 None
-               OpSwitch %uint_0 %43294
-      %43294 = OpLabel
-               OpSelectionMerge %43309 None
-               OpBranchConditional %34894 %43296 %43304
-      %43304 = OpLabel
-      %43306 = OpISub %uint %126041 %int_1
-      %43307 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43306
-      %43308 = OpLoad %_arr_v3float_uint_2 %43307
-     %116410 = OpCompositeExtract %v3float %43308 0
-     %116411 = OpCompositeExtract %v3float %43308 1
-               OpBranch %43310
-      %43296 = OpLabel
-      %43298 = OpIAdd %uint %126044 %int_1
-      %43299 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43300 = OpLoad %v3float %43299
-               OpBranch %43310
-      %43309 = OpLabel
-               OpUnreachable
-      %43310 = OpLabel
-     %188498 = OpPhi %uint %43298 %43296 %126044 %43304
-     %126680 = OpPhi %uint %126041 %43296 %43306 %43304
-     %126679 = OpPhi %v3float %43300 %43296 %116410 %43304
-     %126678 = OpPhi %v3float %43300 %43296 %116411 %43304
-      %34898 = OpExtInst %v3float %1 Tanh %126679
-      %34902 = OpExtInst %v3float %1 Tanh %126678
-      %34908 = OpExtInst %v3float %1 FMin %34898 %34902
-      %34914 = OpExtInst %v3float %1 FMax %34898 %34902
-     %119232 = OpCompositeConstruct %_arr_v3float_uint_2 %34908 %34914
-      %43314 = OpIAdd %uint %126680 %int_1
-      %43316 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126680
-               OpStore %43316 %119232
-               OpBranch %38458
-      %34860 = OpLabel
-      %34863 = OpLoad %uint %30040
-      %34864 = OpBitwiseAnd %uint %34863 %uint_32768
-      %34865 = OpUGreaterThan %bool %34864 %uint_0
-               OpSelectionMerge %43282 None
-               OpSwitch %uint_0 %43266
-      %43266 = OpLabel
-               OpSelectionMerge %43281 None
-               OpBranchConditional %34865 %43268 %43276
-      %43276 = OpLabel
-      %43278 = OpISub %uint %126041 %int_1
-      %43279 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43278
-      %43280 = OpLoad %_arr_v3float_uint_2 %43279
-     %116419 = OpCompositeExtract %v3float %43280 0
-     %116420 = OpCompositeExtract %v3float %43280 1
-               OpBranch %43282
-      %43268 = OpLabel
-      %43270 = OpIAdd %uint %126044 %int_1
-      %43271 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43272 = OpLoad %v3float %43271
-               OpBranch %43282
-      %43281 = OpLabel
-               OpUnreachable
-      %43282 = OpLabel
-     %188497 = OpPhi %uint %43270 %43268 %126044 %43276
-     %126683 = OpPhi %uint %126041 %43268 %43278 %43276
-     %126682 = OpPhi %v3float %43272 %43268 %116419 %43276
-     %126681 = OpPhi %v3float %43272 %43268 %116420 %43276
-      %34869 = OpExtInst %v3float %1 Sinh %126682
-      %34873 = OpExtInst %v3float %1 Sinh %126681
-      %34879 = OpExtInst %v3float %1 FMin %34869 %34873
-      %34885 = OpExtInst %v3float %1 FMax %34869 %34873
-     %119223 = OpCompositeConstruct %_arr_v3float_uint_2 %34879 %34885
-      %43286 = OpIAdd %uint %126683 %int_1
-      %43288 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126683
-               OpStore %43288 %119223
-               OpBranch %38458
-      %34831 = OpLabel
-      %34834 = OpLoad %uint %30040
-      %34835 = OpBitwiseAnd %uint %34834 %uint_32768
-      %34836 = OpUGreaterThan %bool %34835 %uint_0
-               OpSelectionMerge %43254 None
-               OpSwitch %uint_0 %43238
-      %43238 = OpLabel
-               OpSelectionMerge %43253 None
-               OpBranchConditional %34836 %43240 %43248
-      %43248 = OpLabel
-      %43250 = OpISub %uint %126041 %int_1
-      %43251 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43250
-      %43252 = OpLoad %_arr_v3float_uint_2 %43251
-     %116428 = OpCompositeExtract %v3float %43252 0
-     %116429 = OpCompositeExtract %v3float %43252 1
-               OpBranch %43254
-      %43240 = OpLabel
-      %43242 = OpIAdd %uint %126044 %int_1
-      %43243 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43244 = OpLoad %v3float %43243
-               OpBranch %43254
-      %43253 = OpLabel
-               OpUnreachable
-      %43254 = OpLabel
-     %188496 = OpPhi %uint %43242 %43240 %126044 %43248
-     %126686 = OpPhi %uint %126041 %43240 %43250 %43248
-     %126685 = OpPhi %v3float %43244 %43240 %116428 %43248
-     %126684 = OpPhi %v3float %43244 %43240 %116429 %43248
-      %34840 = OpExtInst %v3float %1 Cosh %126685
-      %34844 = OpExtInst %v3float %1 Cosh %126684
-      %34850 = OpExtInst %v3float %1 FMin %34840 %34844
-      %34856 = OpExtInst %v3float %1 FMax %34840 %34844
-     %119214 = OpCompositeConstruct %_arr_v3float_uint_2 %34850 %34856
-      %43258 = OpIAdd %uint %126686 %int_1
-      %43260 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126686
-               OpStore %43260 %119214
-               OpBranch %38458
-      %34802 = OpLabel
-      %34805 = OpLoad %uint %30040
-      %34806 = OpBitwiseAnd %uint %34805 %uint_32768
-      %34807 = OpUGreaterThan %bool %34806 %uint_0
-               OpSelectionMerge %43226 None
-               OpSwitch %uint_0 %43210
-      %43210 = OpLabel
-               OpSelectionMerge %43225 None
-               OpBranchConditional %34807 %43212 %43220
-      %43220 = OpLabel
-      %43222 = OpISub %uint %126041 %int_1
-      %43223 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43222
-      %43224 = OpLoad %_arr_v3float_uint_2 %43223
-     %116437 = OpCompositeExtract %v3float %43224 0
-     %116438 = OpCompositeExtract %v3float %43224 1
-               OpBranch %43226
-      %43212 = OpLabel
-      %43214 = OpIAdd %uint %126044 %int_1
-      %43215 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43216 = OpLoad %v3float %43215
-               OpBranch %43226
-      %43225 = OpLabel
-               OpUnreachable
-      %43226 = OpLabel
-     %188495 = OpPhi %uint %43214 %43212 %126044 %43220
-     %126689 = OpPhi %uint %126041 %43212 %43222 %43220
-     %126688 = OpPhi %v3float %43216 %43212 %116437 %43220
-     %126687 = OpPhi %v3float %43216 %43212 %116438 %43220
-      %34811 = OpExtInst %v3float %1 Atanh %126688
-      %34815 = OpExtInst %v3float %1 Atanh %126687
-      %34821 = OpExtInst %v3float %1 FMin %34811 %34815
-      %34827 = OpExtInst %v3float %1 FMax %34811 %34815
-     %119205 = OpCompositeConstruct %_arr_v3float_uint_2 %34821 %34827
-      %43230 = OpIAdd %uint %126689 %int_1
-      %43232 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126689
-               OpStore %43232 %119205
-               OpBranch %38458
-      %34773 = OpLabel
-      %34776 = OpLoad %uint %30040
-      %34777 = OpBitwiseAnd %uint %34776 %uint_32768
-      %34778 = OpUGreaterThan %bool %34777 %uint_0
-               OpSelectionMerge %43198 None
-               OpSwitch %uint_0 %43182
-      %43182 = OpLabel
-               OpSelectionMerge %43197 None
-               OpBranchConditional %34778 %43184 %43192
-      %43192 = OpLabel
-      %43194 = OpISub %uint %126041 %int_1
-      %43195 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43194
-      %43196 = OpLoad %_arr_v3float_uint_2 %43195
-     %116446 = OpCompositeExtract %v3float %43196 0
-     %116447 = OpCompositeExtract %v3float %43196 1
-               OpBranch %43198
-      %43184 = OpLabel
-      %43186 = OpIAdd %uint %126044 %int_1
-      %43187 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43188 = OpLoad %v3float %43187
-               OpBranch %43198
-      %43197 = OpLabel
-               OpUnreachable
-      %43198 = OpLabel
-     %188494 = OpPhi %uint %43186 %43184 %126044 %43192
-     %126692 = OpPhi %uint %126041 %43184 %43194 %43192
-     %126691 = OpPhi %v3float %43188 %43184 %116446 %43192
-     %126690 = OpPhi %v3float %43188 %43184 %116447 %43192
-      %34782 = OpExtInst %v3float %1 Asinh %126691
-      %34786 = OpExtInst %v3float %1 Asinh %126690
-      %34792 = OpExtInst %v3float %1 FMin %34782 %34786
-      %34798 = OpExtInst %v3float %1 FMax %34782 %34786
-     %119196 = OpCompositeConstruct %_arr_v3float_uint_2 %34792 %34798
-      %43202 = OpIAdd %uint %126692 %int_1
-      %43204 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126692
-               OpStore %43204 %119196
-               OpBranch %38458
-      %34744 = OpLabel
-      %34747 = OpLoad %uint %30040
-      %34748 = OpBitwiseAnd %uint %34747 %uint_32768
-      %34749 = OpUGreaterThan %bool %34748 %uint_0
-               OpSelectionMerge %43170 None
-               OpSwitch %uint_0 %43154
-      %43154 = OpLabel
-               OpSelectionMerge %43169 None
-               OpBranchConditional %34749 %43156 %43164
-      %43164 = OpLabel
-      %43166 = OpISub %uint %126041 %int_1
-      %43167 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43166
-      %43168 = OpLoad %_arr_v3float_uint_2 %43167
-     %116455 = OpCompositeExtract %v3float %43168 0
-     %116456 = OpCompositeExtract %v3float %43168 1
-               OpBranch %43170
-      %43156 = OpLabel
-      %43158 = OpIAdd %uint %126044 %int_1
-      %43159 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43160 = OpLoad %v3float %43159
-               OpBranch %43170
-      %43169 = OpLabel
-               OpUnreachable
-      %43170 = OpLabel
-     %188493 = OpPhi %uint %43158 %43156 %126044 %43164
-     %126695 = OpPhi %uint %126041 %43156 %43166 %43164
-     %126694 = OpPhi %v3float %43160 %43156 %116455 %43164
-     %126693 = OpPhi %v3float %43160 %43156 %116456 %43164
-      %34753 = OpExtInst %v3float %1 Acosh %126694
-      %34757 = OpExtInst %v3float %1 Acosh %126693
-      %34763 = OpExtInst %v3float %1 FMin %34753 %34757
-      %34769 = OpExtInst %v3float %1 FMax %34753 %34757
-     %119187 = OpCompositeConstruct %_arr_v3float_uint_2 %34763 %34769
-      %43174 = OpIAdd %uint %126695 %int_1
-      %43176 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126695
-               OpStore %43176 %119187
-               OpBranch %38458
-      %34715 = OpLabel
-      %34718 = OpLoad %uint %30040
-      %34719 = OpBitwiseAnd %uint %34718 %uint_32768
-      %34720 = OpUGreaterThan %bool %34719 %uint_0
-               OpSelectionMerge %43142 None
-               OpSwitch %uint_0 %43126
-      %43126 = OpLabel
-               OpSelectionMerge %43141 None
-               OpBranchConditional %34720 %43128 %43136
-      %43136 = OpLabel
-      %43138 = OpISub %uint %126041 %int_1
-      %43139 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43138
-      %43140 = OpLoad %_arr_v3float_uint_2 %43139
-     %116464 = OpCompositeExtract %v3float %43140 0
-     %116465 = OpCompositeExtract %v3float %43140 1
-               OpBranch %43142
-      %43128 = OpLabel
-      %43130 = OpIAdd %uint %126044 %int_1
-      %43131 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43132 = OpLoad %v3float %43131
-               OpBranch %43142
-      %43141 = OpLabel
-               OpUnreachable
-      %43142 = OpLabel
-     %188492 = OpPhi %uint %43130 %43128 %126044 %43136
-     %126698 = OpPhi %uint %126041 %43128 %43138 %43136
-     %126697 = OpPhi %v3float %43132 %43128 %116464 %43136
-     %126696 = OpPhi %v3float %43132 %43128 %116465 %43136
-      %34724 = OpExtInst %v3float %1 Atan %126697
-      %34728 = OpExtInst %v3float %1 Atan %126696
-      %34734 = OpExtInst %v3float %1 FMin %34724 %34728
-      %34740 = OpExtInst %v3float %1 FMax %34724 %34728
-     %119178 = OpCompositeConstruct %_arr_v3float_uint_2 %34734 %34740
-      %43146 = OpIAdd %uint %126698 %int_1
-      %43148 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126698
-               OpStore %43148 %119178
-               OpBranch %38458
-      %34686 = OpLabel
-      %34689 = OpLoad %uint %30040
-      %34690 = OpBitwiseAnd %uint %34689 %uint_32768
-      %34691 = OpUGreaterThan %bool %34690 %uint_0
-               OpSelectionMerge %43114 None
-               OpSwitch %uint_0 %43098
-      %43098 = OpLabel
-               OpSelectionMerge %43113 None
-               OpBranchConditional %34691 %43100 %43108
-      %43108 = OpLabel
-      %43110 = OpISub %uint %126041 %int_1
-      %43111 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43110
-      %43112 = OpLoad %_arr_v3float_uint_2 %43111
-     %116473 = OpCompositeExtract %v3float %43112 0
-     %116474 = OpCompositeExtract %v3float %43112 1
-               OpBranch %43114
-      %43100 = OpLabel
-      %43102 = OpIAdd %uint %126044 %int_1
-      %43103 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43104 = OpLoad %v3float %43103
-               OpBranch %43114
-      %43113 = OpLabel
-               OpUnreachable
-      %43114 = OpLabel
-     %188491 = OpPhi %uint %43102 %43100 %126044 %43108
-     %126701 = OpPhi %uint %126041 %43100 %43110 %43108
-     %126700 = OpPhi %v3float %43104 %43100 %116473 %43108
-     %126699 = OpPhi %v3float %43104 %43100 %116474 %43108
-      %34695 = OpExtInst %v3float %1 Acos %126700
-      %34699 = OpExtInst %v3float %1 Acos %126699
-      %34705 = OpExtInst %v3float %1 FMin %34695 %34699
-      %34711 = OpExtInst %v3float %1 FMax %34695 %34699
-     %119169 = OpCompositeConstruct %_arr_v3float_uint_2 %34705 %34711
-      %43118 = OpIAdd %uint %126701 %int_1
-      %43120 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126701
-               OpStore %43120 %119169
-               OpBranch %38458
-      %34657 = OpLabel
-      %34660 = OpLoad %uint %30040
-      %34661 = OpBitwiseAnd %uint %34660 %uint_32768
-      %34662 = OpUGreaterThan %bool %34661 %uint_0
-               OpSelectionMerge %43086 None
-               OpSwitch %uint_0 %43070
-      %43070 = OpLabel
-               OpSelectionMerge %43085 None
-               OpBranchConditional %34662 %43072 %43080
-      %43080 = OpLabel
-      %43082 = OpISub %uint %126041 %int_1
-      %43083 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43082
-      %43084 = OpLoad %_arr_v3float_uint_2 %43083
-     %116482 = OpCompositeExtract %v3float %43084 0
-     %116483 = OpCompositeExtract %v3float %43084 1
-               OpBranch %43086
-      %43072 = OpLabel
-      %43074 = OpIAdd %uint %126044 %int_1
-      %43075 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43076 = OpLoad %v3float %43075
-               OpBranch %43086
-      %43085 = OpLabel
-               OpUnreachable
-      %43086 = OpLabel
-     %188490 = OpPhi %uint %43074 %43072 %126044 %43080
-     %126704 = OpPhi %uint %126041 %43072 %43082 %43080
-     %126703 = OpPhi %v3float %43076 %43072 %116482 %43080
-     %126702 = OpPhi %v3float %43076 %43072 %116483 %43080
-      %34666 = OpExtInst %v3float %1 Asin %126703
-      %34670 = OpExtInst %v3float %1 Asin %126702
-      %34676 = OpExtInst %v3float %1 FMin %34666 %34670
-      %34682 = OpExtInst %v3float %1 FMax %34666 %34670
-     %119160 = OpCompositeConstruct %_arr_v3float_uint_2 %34676 %34682
-      %43090 = OpIAdd %uint %126704 %int_1
-      %43092 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126704
-               OpStore %43092 %119160
-               OpBranch %38458
-      %34628 = OpLabel
-      %34631 = OpLoad %uint %30040
-      %34632 = OpBitwiseAnd %uint %34631 %uint_32768
-      %34633 = OpUGreaterThan %bool %34632 %uint_0
-               OpSelectionMerge %43058 None
-               OpSwitch %uint_0 %43042
-      %43042 = OpLabel
-               OpSelectionMerge %43057 None
-               OpBranchConditional %34633 %43044 %43052
-      %43052 = OpLabel
-      %43054 = OpISub %uint %126041 %int_1
-      %43055 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43054
-      %43056 = OpLoad %_arr_v3float_uint_2 %43055
-     %116491 = OpCompositeExtract %v3float %43056 0
-     %116492 = OpCompositeExtract %v3float %43056 1
-               OpBranch %43058
-      %43044 = OpLabel
-      %43046 = OpIAdd %uint %126044 %int_1
-      %43047 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43048 = OpLoad %v3float %43047
-               OpBranch %43058
-      %43057 = OpLabel
-               OpUnreachable
-      %43058 = OpLabel
-     %188489 = OpPhi %uint %43046 %43044 %126044 %43052
-     %126707 = OpPhi %uint %126041 %43044 %43054 %43052
-     %126706 = OpPhi %v3float %43048 %43044 %116491 %43052
-     %126705 = OpPhi %v3float %43048 %43044 %116492 %43052
-      %34637 = OpExtInst %v3float %1 Tan %126706
-      %34641 = OpExtInst %v3float %1 Tan %126705
-      %34647 = OpExtInst %v3float %1 FMin %34637 %34641
-      %34653 = OpExtInst %v3float %1 FMax %34637 %34641
-     %119151 = OpCompositeConstruct %_arr_v3float_uint_2 %34647 %34653
-      %43062 = OpIAdd %uint %126707 %int_1
-      %43064 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126707
-               OpStore %43064 %119151
-               OpBranch %38458
-      %34599 = OpLabel
-      %34602 = OpLoad %uint %30040
-      %34603 = OpBitwiseAnd %uint %34602 %uint_32768
-      %34604 = OpUGreaterThan %bool %34603 %uint_0
-               OpSelectionMerge %43030 None
-               OpSwitch %uint_0 %43014
-      %43014 = OpLabel
-               OpSelectionMerge %43029 None
-               OpBranchConditional %34604 %43016 %43024
-      %43024 = OpLabel
-      %43026 = OpISub %uint %126041 %int_1
-      %43027 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %43026
-      %43028 = OpLoad %_arr_v3float_uint_2 %43027
-     %116500 = OpCompositeExtract %v3float %43028 0
-     %116501 = OpCompositeExtract %v3float %43028 1
-               OpBranch %43030
-      %43016 = OpLabel
-      %43018 = OpIAdd %uint %126044 %int_1
-      %43019 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %43020 = OpLoad %v3float %43019
-               OpBranch %43030
-      %43029 = OpLabel
-               OpUnreachable
-      %43030 = OpLabel
-     %188488 = OpPhi %uint %43018 %43016 %126044 %43024
-     %126710 = OpPhi %uint %126041 %43016 %43026 %43024
-     %126709 = OpPhi %v3float %43020 %43016 %116500 %43024
-     %126708 = OpPhi %v3float %43020 %43016 %116501 %43024
-      %34608 = OpExtInst %v3float %1 Cos %126709
-      %34612 = OpExtInst %v3float %1 Cos %126708
-      %34618 = OpExtInst %v3float %1 FMin %34608 %34612
-      %34624 = OpExtInst %v3float %1 FMax %34608 %34612
-     %119142 = OpCompositeConstruct %_arr_v3float_uint_2 %34618 %34624
-      %43034 = OpIAdd %uint %126710 %int_1
-      %43036 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126710
-               OpStore %43036 %119142
-               OpBranch %38458
-      %34570 = OpLabel
-      %34573 = OpLoad %uint %30040
-      %34574 = OpBitwiseAnd %uint %34573 %uint_32768
-      %34575 = OpUGreaterThan %bool %34574 %uint_0
-               OpSelectionMerge %43002 None
-               OpSwitch %uint_0 %42986
-      %42986 = OpLabel
-               OpSelectionMerge %43001 None
-               OpBranchConditional %34575 %42988 %42996
-      %42996 = OpLabel
-      %42998 = OpISub %uint %126041 %int_1
-      %42999 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %42998
-      %43000 = OpLoad %_arr_v3float_uint_2 %42999
-     %116509 = OpCompositeExtract %v3float %43000 0
-     %116510 = OpCompositeExtract %v3float %43000 1
-               OpBranch %43002
-      %42988 = OpLabel
-      %42990 = OpIAdd %uint %126044 %int_1
-      %42991 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %42992 = OpLoad %v3float %42991
-               OpBranch %43002
-      %43001 = OpLabel
-               OpUnreachable
-      %43002 = OpLabel
-     %188487 = OpPhi %uint %42990 %42988 %126044 %42996
-     %126713 = OpPhi %uint %126041 %42988 %42998 %42996
-     %126712 = OpPhi %v3float %42992 %42988 %116509 %42996
-     %126711 = OpPhi %v3float %42992 %42988 %116510 %42996
-      %34579 = OpExtInst %v3float %1 Sin %126712
-      %34583 = OpExtInst %v3float %1 Sin %126711
-      %34589 = OpExtInst %v3float %1 FMin %34579 %34583
-      %34595 = OpExtInst %v3float %1 FMax %34579 %34583
-     %119133 = OpCompositeConstruct %_arr_v3float_uint_2 %34589 %34595
-      %43006 = OpIAdd %uint %126713 %int_1
-      %43008 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126713
-               OpStore %43008 %119133
-               OpBranch %38458
-      %34541 = OpLabel
-      %34544 = OpLoad %uint %30040
-      %34545 = OpBitwiseAnd %uint %34544 %uint_32768
-      %34546 = OpUGreaterThan %bool %34545 %uint_0
-               OpSelectionMerge %42974 None
-               OpSwitch %uint_0 %42958
-      %42958 = OpLabel
-               OpSelectionMerge %42973 None
-               OpBranchConditional %34546 %42960 %42968
-      %42968 = OpLabel
-      %42970 = OpISub %uint %126041 %int_1
-      %42971 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %42970
-      %42972 = OpLoad %_arr_v3float_uint_2 %42971
-     %116518 = OpCompositeExtract %v3float %42972 0
-     %116519 = OpCompositeExtract %v3float %42972 1
-               OpBranch %42974
-      %42960 = OpLabel
-      %42962 = OpIAdd %uint %126044 %int_1
-      %42963 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %42964 = OpLoad %v3float %42963
-               OpBranch %42974
-      %42973 = OpLabel
-               OpUnreachable
-      %42974 = OpLabel
-     %188486 = OpPhi %uint %42962 %42960 %126044 %42968
-     %126716 = OpPhi %uint %126041 %42960 %42970 %42968
-     %126715 = OpPhi %v3float %42964 %42960 %116518 %42968
-     %126714 = OpPhi %v3float %42964 %42960 %116519 %42968
-      %34550 = OpExtInst %v3float %1 Log2 %126715
-      %34554 = OpExtInst %v3float %1 Log2 %126714
-      %34560 = OpExtInst %v3float %1 FMin %34550 %34554
-      %34566 = OpExtInst %v3float %1 FMax %34550 %34554
-     %119124 = OpCompositeConstruct %_arr_v3float_uint_2 %34560 %34566
-      %42978 = OpIAdd %uint %126716 %int_1
-      %42980 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126716
-               OpStore %42980 %119124
-               OpBranch %38458
-      %34512 = OpLabel
-      %34515 = OpLoad %uint %30040
-      %34516 = OpBitwiseAnd %uint %34515 %uint_32768
-      %34517 = OpUGreaterThan %bool %34516 %uint_0
-               OpSelectionMerge %42946 None
-               OpSwitch %uint_0 %42930
-      %42930 = OpLabel
-               OpSelectionMerge %42945 None
-               OpBranchConditional %34517 %42932 %42940
-      %42940 = OpLabel
-      %42942 = OpISub %uint %126041 %int_1
-      %42943 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %42942
-      %42944 = OpLoad %_arr_v3float_uint_2 %42943
-     %116527 = OpCompositeExtract %v3float %42944 0
-     %116528 = OpCompositeExtract %v3float %42944 1
-               OpBranch %42946
-      %42932 = OpLabel
-      %42934 = OpIAdd %uint %126044 %int_1
-      %42935 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %42936 = OpLoad %v3float %42935
-               OpBranch %42946
-      %42945 = OpLabel
-               OpUnreachable
-      %42946 = OpLabel
-     %188485 = OpPhi %uint %42934 %42932 %126044 %42940
-     %126719 = OpPhi %uint %126041 %42932 %42942 %42940
-     %126718 = OpPhi %v3float %42936 %42932 %116527 %42940
-     %126717 = OpPhi %v3float %42936 %42932 %116528 %42940
-      %34521 = OpExtInst %v3float %1 Log %126718
-      %34525 = OpExtInst %v3float %1 Log %126717
-      %34531 = OpExtInst %v3float %1 FMin %34521 %34525
-      %34537 = OpExtInst %v3float %1 FMax %34521 %34525
-     %119115 = OpCompositeConstruct %_arr_v3float_uint_2 %34531 %34537
-      %42950 = OpIAdd %uint %126719 %int_1
-      %42952 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126719
-               OpStore %42952 %119115
-               OpBranch %38458
-      %34483 = OpLabel
-      %34486 = OpLoad %uint %30040
-      %34487 = OpBitwiseAnd %uint %34486 %uint_32768
-      %34488 = OpUGreaterThan %bool %34487 %uint_0
-               OpSelectionMerge %42918 None
-               OpSwitch %uint_0 %42902
-      %42902 = OpLabel
-               OpSelectionMerge %42917 None
-               OpBranchConditional %34488 %42904 %42912
-      %42912 = OpLabel
-      %42914 = OpISub %uint %126041 %int_1
-      %42915 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %42914
-      %42916 = OpLoad %_arr_v3float_uint_2 %42915
-     %116536 = OpCompositeExtract %v3float %42916 0
-     %116537 = OpCompositeExtract %v3float %42916 1
-               OpBranch %42918
-      %42904 = OpLabel
-      %42906 = OpIAdd %uint %126044 %int_1
-      %42907 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %42908 = OpLoad %v3float %42907
-               OpBranch %42918
-      %42917 = OpLabel
-               OpUnreachable
-      %42918 = OpLabel
-     %188484 = OpPhi %uint %42906 %42904 %126044 %42912
-     %126722 = OpPhi %uint %126041 %42904 %42914 %42912
-     %126721 = OpPhi %v3float %42908 %42904 %116536 %42912
-     %126720 = OpPhi %v3float %42908 %42904 %116537 %42912
-      %34492 = OpExtInst %v3float %1 Exp2 %126721
-      %34496 = OpExtInst %v3float %1 Exp2 %126720
-      %34502 = OpExtInst %v3float %1 FMin %34492 %34496
-      %34508 = OpExtInst %v3float %1 FMax %34492 %34496
-     %119106 = OpCompositeConstruct %_arr_v3float_uint_2 %34502 %34508
-      %42922 = OpIAdd %uint %126722 %int_1
-      %42924 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126722
-               OpStore %42924 %119106
-               OpBranch %38458
-      %34454 = OpLabel
-      %34457 = OpLoad %uint %30040
-      %34458 = OpBitwiseAnd %uint %34457 %uint_32768
-      %34459 = OpUGreaterThan %bool %34458 %uint_0
-               OpSelectionMerge %42890 None
-               OpSwitch %uint_0 %42874
-      %42874 = OpLabel
-               OpSelectionMerge %42889 None
-               OpBranchConditional %34459 %42876 %42884
-      %42884 = OpLabel
-      %42886 = OpISub %uint %126041 %int_1
-      %42887 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %42886
-      %42888 = OpLoad %_arr_v3float_uint_2 %42887
-     %116545 = OpCompositeExtract %v3float %42888 0
-     %116546 = OpCompositeExtract %v3float %42888 1
-               OpBranch %42890
-      %42876 = OpLabel
-      %42878 = OpIAdd %uint %126044 %int_1
-      %42879 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %42880 = OpLoad %v3float %42879
-               OpBranch %42890
-      %42889 = OpLabel
-               OpUnreachable
-      %42890 = OpLabel
-     %188483 = OpPhi %uint %42878 %42876 %126044 %42884
-     %126725 = OpPhi %uint %126041 %42876 %42886 %42884
-     %126724 = OpPhi %v3float %42880 %42876 %116545 %42884
-     %126723 = OpPhi %v3float %42880 %42876 %116546 %42884
-      %34463 = OpExtInst %v3float %1 Exp %126724
-      %34467 = OpExtInst %v3float %1 Exp %126723
-      %34473 = OpExtInst %v3float %1 FMin %34463 %34467
-      %34479 = OpExtInst %v3float %1 FMax %34463 %34467
-     %119097 = OpCompositeConstruct %_arr_v3float_uint_2 %34473 %34479
-      %42894 = OpIAdd %uint %126725 %int_1
-      %42896 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126725
-               OpStore %42896 %119097
-               OpBranch %38458
-      %34425 = OpLabel
-      %34428 = OpLoad %uint %30040
-      %34429 = OpBitwiseAnd %uint %34428 %uint_32768
-      %34430 = OpUGreaterThan %bool %34429 %uint_0
-               OpSelectionMerge %42862 None
-               OpSwitch %uint_0 %42846
-      %42846 = OpLabel
-               OpSelectionMerge %42861 None
-               OpBranchConditional %34430 %42848 %42856
-      %42856 = OpLabel
-      %42858 = OpISub %uint %126041 %int_1
-      %42859 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %42858
-      %42860 = OpLoad %_arr_v3float_uint_2 %42859
-     %116554 = OpCompositeExtract %v3float %42860 0
-     %116555 = OpCompositeExtract %v3float %42860 1
-               OpBranch %42862
-      %42848 = OpLabel
-      %42850 = OpIAdd %uint %126044 %int_1
-      %42851 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %42852 = OpLoad %v3float %42851
-               OpBranch %42862
-      %42861 = OpLabel
-               OpUnreachable
-      %42862 = OpLabel
-     %188482 = OpPhi %uint %42850 %42848 %126044 %42856
-     %126728 = OpPhi %uint %126041 %42848 %42858 %42856
-     %126727 = OpPhi %v3float %42852 %42848 %116554 %42856
-     %126726 = OpPhi %v3float %42852 %42848 %116555 %42856
-      %34434 = OpExtInst %v3float %1 InverseSqrt %126727
-      %34438 = OpExtInst %v3float %1 InverseSqrt %126726
-      %34444 = OpExtInst %v3float %1 FMin %34434 %34438
-      %34450 = OpExtInst %v3float %1 FMax %34434 %34438
-     %119088 = OpCompositeConstruct %_arr_v3float_uint_2 %34444 %34450
-      %42866 = OpIAdd %uint %126728 %int_1
-      %42868 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126728
-               OpStore %42868 %119088
-               OpBranch %38458
-      %34396 = OpLabel
-      %34399 = OpLoad %uint %30040
-      %34400 = OpBitwiseAnd %uint %34399 %uint_32768
-      %34401 = OpUGreaterThan %bool %34400 %uint_0
-               OpSelectionMerge %42834 None
-               OpSwitch %uint_0 %42818
-      %42818 = OpLabel
-               OpSelectionMerge %42833 None
-               OpBranchConditional %34401 %42820 %42828
-      %42828 = OpLabel
-      %42830 = OpISub %uint %126041 %int_1
-      %42831 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %42830
-      %42832 = OpLoad %_arr_v3float_uint_2 %42831
-     %116563 = OpCompositeExtract %v3float %42832 0
-     %116564 = OpCompositeExtract %v3float %42832 1
-               OpBranch %42834
-      %42820 = OpLabel
-      %42822 = OpIAdd %uint %126044 %int_1
-      %42823 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %42824 = OpLoad %v3float %42823
-               OpBranch %42834
-      %42833 = OpLabel
-               OpUnreachable
-      %42834 = OpLabel
-     %188481 = OpPhi %uint %42822 %42820 %126044 %42828
-     %126731 = OpPhi %uint %126041 %42820 %42830 %42828
-     %126730 = OpPhi %v3float %42824 %42820 %116563 %42828
-     %126729 = OpPhi %v3float %42824 %42820 %116564 %42828
-      %34405 = OpExtInst %v3float %1 Sqrt %126730
-      %34409 = OpExtInst %v3float %1 Sqrt %126729
-      %34415 = OpExtInst %v3float %1 FMin %34405 %34409
-      %34421 = OpExtInst %v3float %1 FMax %34405 %34409
-     %119079 = OpCompositeConstruct %_arr_v3float_uint_2 %34415 %34421
-      %42838 = OpIAdd %uint %126731 %int_1
-      %42840 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126731
-               OpStore %42840 %119079
-               OpBranch %38458
-      %34367 = OpLabel
-      %34370 = OpLoad %uint %30040
-      %34371 = OpBitwiseAnd %uint %34370 %uint_32768
-      %34372 = OpUGreaterThan %bool %34371 %uint_0
-               OpSelectionMerge %42806 None
-               OpSwitch %uint_0 %42790
-      %42790 = OpLabel
-               OpSelectionMerge %42805 None
-               OpBranchConditional %34372 %42792 %42800
-      %42800 = OpLabel
-      %42802 = OpISub %uint %126041 %int_1
-      %42803 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %42802
-      %42804 = OpLoad %_arr_v3float_uint_2 %42803
-     %116572 = OpCompositeExtract %v3float %42804 0
-     %116573 = OpCompositeExtract %v3float %42804 1
-               OpBranch %42806
-      %42792 = OpLabel
-      %42794 = OpIAdd %uint %126044 %int_1
-      %42795 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %42796 = OpLoad %v3float %42795
-               OpBranch %42806
-      %42805 = OpLabel
-               OpUnreachable
-      %42806 = OpLabel
-     %188480 = OpPhi %uint %42794 %42792 %126044 %42800
-     %126734 = OpPhi %uint %126041 %42792 %42802 %42800
-     %126733 = OpPhi %v3float %42796 %42792 %116572 %42800
-     %126732 = OpPhi %v3float %42796 %42792 %116573 %42800
-      %34376 = OpExtInst %v3float %1 Fract %126733
-      %34380 = OpExtInst %v3float %1 Fract %126732
-      %34386 = OpExtInst %v3float %1 FMin %34376 %34380
-      %34392 = OpExtInst %v3float %1 FMax %34376 %34380
-     %119070 = OpCompositeConstruct %_arr_v3float_uint_2 %34386 %34392
-      %42810 = OpIAdd %uint %126734 %int_1
-      %42812 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126734
-               OpStore %42812 %119070
-               OpBranch %38458
-      %34338 = OpLabel
-      %34341 = OpLoad %uint %30040
-      %34342 = OpBitwiseAnd %uint %34341 %uint_32768
-      %34343 = OpUGreaterThan %bool %34342 %uint_0
-               OpSelectionMerge %42778 None
-               OpSwitch %uint_0 %42762
-      %42762 = OpLabel
-               OpSelectionMerge %42777 None
-               OpBranchConditional %34343 %42764 %42772
-      %42772 = OpLabel
-      %42774 = OpISub %uint %126041 %int_1
-      %42775 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %42774
-      %42776 = OpLoad %_arr_v3float_uint_2 %42775
-     %116581 = OpCompositeExtract %v3float %42776 0
-     %116582 = OpCompositeExtract %v3float %42776 1
-               OpBranch %42778
-      %42764 = OpLabel
-      %42766 = OpIAdd %uint %126044 %int_1
-      %42767 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %42768 = OpLoad %v3float %42767
-               OpBranch %42778
-      %42777 = OpLabel
-               OpUnreachable
-      %42778 = OpLabel
-     %188479 = OpPhi %uint %42766 %42764 %126044 %42772
-     %126737 = OpPhi %uint %126041 %42764 %42774 %42772
-     %126736 = OpPhi %v3float %42768 %42764 %116581 %42772
-     %126735 = OpPhi %v3float %42768 %42764 %116582 %42772
-      %34347 = OpExtInst %v3float %1 Ceil %126736
-      %34351 = OpExtInst %v3float %1 Ceil %126735
-      %34357 = OpExtInst %v3float %1 FMin %34347 %34351
-      %34363 = OpExtInst %v3float %1 FMax %34347 %34351
-     %119061 = OpCompositeConstruct %_arr_v3float_uint_2 %34357 %34363
-      %42782 = OpIAdd %uint %126737 %int_1
-      %42784 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126737
-               OpStore %42784 %119061
-               OpBranch %38458
-      %34309 = OpLabel
-      %34312 = OpLoad %uint %30040
-      %34313 = OpBitwiseAnd %uint %34312 %uint_32768
-      %34314 = OpUGreaterThan %bool %34313 %uint_0
-               OpSelectionMerge %42750 None
-               OpSwitch %uint_0 %42734
-      %42734 = OpLabel
-               OpSelectionMerge %42749 None
-               OpBranchConditional %34314 %42736 %42744
-      %42744 = OpLabel
-      %42746 = OpISub %uint %126041 %int_1
-      %42747 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %42746
-      %42748 = OpLoad %_arr_v3float_uint_2 %42747
-     %116590 = OpCompositeExtract %v3float %42748 0
-     %116591 = OpCompositeExtract %v3float %42748 1
-               OpBranch %42750
-      %42736 = OpLabel
-      %42738 = OpIAdd %uint %126044 %int_1
-      %42739 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %42740 = OpLoad %v3float %42739
-               OpBranch %42750
-      %42749 = OpLabel
-               OpUnreachable
-      %42750 = OpLabel
-     %188478 = OpPhi %uint %42738 %42736 %126044 %42744
-     %126740 = OpPhi %uint %126041 %42736 %42746 %42744
-     %126739 = OpPhi %v3float %42740 %42736 %116590 %42744
-     %126738 = OpPhi %v3float %42740 %42736 %116591 %42744
-      %34318 = OpExtInst %v3float %1 Floor %126739
-      %34322 = OpExtInst %v3float %1 Floor %126738
-      %34328 = OpExtInst %v3float %1 FMin %34318 %34322
-      %34334 = OpExtInst %v3float %1 FMax %34318 %34322
-     %119052 = OpCompositeConstruct %_arr_v3float_uint_2 %34328 %34334
-      %42754 = OpIAdd %uint %126740 %int_1
-      %42756 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126740
-               OpStore %42756 %119052
-               OpBranch %38458
-      %34280 = OpLabel
-      %34283 = OpLoad %uint %30040
-      %34284 = OpBitwiseAnd %uint %34283 %uint_32768
-      %34285 = OpUGreaterThan %bool %34284 %uint_0
-               OpSelectionMerge %42722 None
-               OpSwitch %uint_0 %42706
-      %42706 = OpLabel
-               OpSelectionMerge %42721 None
-               OpBranchConditional %34285 %42708 %42716
-      %42716 = OpLabel
-      %42718 = OpISub %uint %126041 %int_1
-      %42719 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %42718
-      %42720 = OpLoad %_arr_v3float_uint_2 %42719
-     %116599 = OpCompositeExtract %v3float %42720 0
-     %116600 = OpCompositeExtract %v3float %42720 1
-               OpBranch %42722
-      %42708 = OpLabel
-      %42710 = OpIAdd %uint %126044 %int_1
-      %42711 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %42712 = OpLoad %v3float %42711
-               OpBranch %42722
-      %42721 = OpLabel
-               OpUnreachable
-      %42722 = OpLabel
-     %188477 = OpPhi %uint %42710 %42708 %126044 %42716
-     %126743 = OpPhi %uint %126041 %42708 %42718 %42716
-     %126742 = OpPhi %v3float %42712 %42708 %116599 %42716
-     %126741 = OpPhi %v3float %42712 %42708 %116600 %42716
-      %34289 = OpExtInst %v3float %1 FSign %126742
-      %34293 = OpExtInst %v3float %1 FSign %126741
-      %34299 = OpExtInst %v3float %1 FMin %34289 %34293
-      %34305 = OpExtInst %v3float %1 FMax %34289 %34293
-     %119043 = OpCompositeConstruct %_arr_v3float_uint_2 %34299 %34305
-      %42726 = OpIAdd %uint %126743 %int_1
-      %42728 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126743
-               OpStore %42728 %119043
-               OpBranch %38458
-      %34251 = OpLabel
-      %34254 = OpLoad %uint %30040
-      %34255 = OpBitwiseAnd %uint %34254 %uint_32768
-      %34256 = OpUGreaterThan %bool %34255 %uint_0
-               OpSelectionMerge %42694 None
-               OpSwitch %uint_0 %42678
-      %42678 = OpLabel
-               OpSelectionMerge %42693 None
-               OpBranchConditional %34256 %42680 %42688
-      %42688 = OpLabel
-      %42690 = OpISub %uint %126041 %int_1
-      %42691 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %42690
-      %42692 = OpLoad %_arr_v3float_uint_2 %42691
-     %116608 = OpCompositeExtract %v3float %42692 0
-     %116609 = OpCompositeExtract %v3float %42692 1
-               OpBranch %42694
-      %42680 = OpLabel
-      %42682 = OpIAdd %uint %126044 %int_1
-      %42683 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %42684 = OpLoad %v3float %42683
-               OpBranch %42694
-      %42693 = OpLabel
-               OpUnreachable
-      %42694 = OpLabel
-     %188476 = OpPhi %uint %42682 %42680 %126044 %42688
-     %126746 = OpPhi %uint %126041 %42680 %42690 %42688
-     %126745 = OpPhi %v3float %42684 %42680 %116608 %42688
-     %126744 = OpPhi %v3float %42684 %42680 %116609 %42688
-      %34260 = OpExtInst %v3float %1 FAbs %126745
-      %34264 = OpExtInst %v3float %1 FAbs %126744
-      %34270 = OpExtInst %v3float %1 FMin %34260 %34264
-      %34276 = OpExtInst %v3float %1 FMax %34260 %34264
-     %119034 = OpCompositeConstruct %_arr_v3float_uint_2 %34270 %34276
-      %42698 = OpIAdd %uint %126746 %int_1
-      %42700 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %126746
-               OpStore %42700 %119034
-               OpBranch %38458
-      %34169 = OpLabel
-      %34172 = OpLoad %uint %30040
-      %34173 = OpBitwiseAnd %uint %34172 %uint_32768
-      %34174 = OpUGreaterThan %bool %34173 %uint_0
-               OpSelectionMerge %42620 None
-               OpSwitch %uint_0 %42604
-      %42604 = OpLabel
-               OpSelectionMerge %42619 None
-               OpBranchConditional %34174 %42606 %42614
-      %42614 = OpLabel
-      %42616 = OpISub %uint %126052 %int_1
-      %42617 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42616
-      %42618 = OpLoad %_arr_v2float_uint_2 %42617
-     %116635 = OpCompositeExtract %v2float %42618 0
-     %116636 = OpCompositeExtract %v2float %42618 1
-               OpBranch %42620
-      %42606 = OpLabel
-      %42608 = OpIAdd %uint %126104 %int_1
-      %42609 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42610 = OpLoad %v2float %42609
-               OpBranch %42620
-      %42619 = OpLabel
-               OpUnreachable
-      %42620 = OpLabel
-     %126751 = OpPhi %uint %42608 %42606 %126104 %42614
-     %126750 = OpPhi %uint %126052 %42606 %42616 %42614
-     %126748 = OpPhi %v2float %42610 %42606 %116635 %42614
-     %126747 = OpPhi %v2float %42610 %42606 %116636 %42614
-      %34178 = OpLoad %uint %30040
-      %34179 = OpBitwiseAnd %uint %34178 %uint_16384
-      %34180 = OpUGreaterThan %bool %34179 %uint_0
-               OpSelectionMerge %42643 None
-               OpSwitch %uint_0 %42627
-      %42627 = OpLabel
-               OpSelectionMerge %42642 None
-               OpBranchConditional %34180 %42629 %42637
-      %42637 = OpLabel
-      %42639 = OpISub %uint %126750 %int_1
-      %42640 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42639
-      %42641 = OpLoad %_arr_v2float_uint_2 %42640
-     %116626 = OpCompositeExtract %v2float %42641 0
-     %116627 = OpCompositeExtract %v2float %42641 1
-               OpBranch %42643
-      %42629 = OpLabel
-      %42631 = OpIAdd %uint %126751 %int_1
-      %42632 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126751
-      %42633 = OpLoad %v2float %42632
-               OpBranch %42643
-      %42642 = OpLabel
-               OpUnreachable
-      %42643 = OpLabel
-     %126756 = OpPhi %uint %42631 %42629 %126751 %42637
-     %126755 = OpPhi %uint %126750 %42629 %42639 %42637
-     %126753 = OpPhi %v2float %42633 %42629 %116626 %42637
-     %126752 = OpPhi %v2float %42633 %42629 %116627 %42637
-      %34184 = OpLoad %uint %30040
-      %34185 = OpBitwiseAnd %uint %34184 %uint_8192
-      %34186 = OpUGreaterThan %bool %34185 %uint_0
-               OpSelectionMerge %42666 None
-               OpSwitch %uint_0 %42650
-      %42650 = OpLabel
-               OpSelectionMerge %42665 None
-               OpBranchConditional %34186 %42652 %42660
-      %42660 = OpLabel
-      %42662 = OpISub %uint %126755 %int_1
-      %42663 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42662
-      %42664 = OpLoad %_arr_v2float_uint_2 %42663
-     %116617 = OpCompositeExtract %v2float %42664 0
-     %116618 = OpCompositeExtract %v2float %42664 1
-               OpBranch %42666
-      %42652 = OpLabel
-      %42654 = OpIAdd %uint %126756 %int_1
-      %42655 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126756
-      %42656 = OpLoad %v2float %42655
-               OpBranch %42666
-      %42665 = OpLabel
-               OpUnreachable
-      %42666 = OpLabel
-     %190825 = OpPhi %uint %42654 %42652 %126756 %42660
-     %126765 = OpPhi %uint %126755 %42652 %42662 %42660
-     %126758 = OpPhi %v2float %42656 %42652 %116617 %42660
-     %126757 = OpPhi %v2float %42656 %42652 %116618 %42660
-      %34192 = OpFMul %v2float %126748 %126753
-      %34198 = OpFMul %v2float %126748 %126752
-      %34204 = OpFMul %v2float %126747 %126753
-      %34210 = OpFMul %v2float %126747 %126752
-      %34220 = OpExtInst %v2float %1 FMin %34204 %34210
-      %34221 = OpExtInst %v2float %1 FMin %34198 %34220
-      %34222 = OpExtInst %v2float %1 FMin %34192 %34221
-      %34232 = OpExtInst %v2float %1 FMax %34204 %34210
-      %34233 = OpExtInst %v2float %1 FMax %34198 %34232
-      %34234 = OpExtInst %v2float %1 FMax %34192 %34233
-      %34241 = OpFAdd %v2float %34222 %126758
-      %34247 = OpFAdd %v2float %34234 %126757
-     %119017 = OpCompositeConstruct %_arr_v2float_uint_2 %34241 %34247
-      %42670 = OpIAdd %uint %126765 %int_1
-      %42672 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126765
-               OpStore %42672 %119017
-               OpBranch %38458
-      %34142 = OpLabel
-      %34145 = OpLoad %uint %30040
-      %34146 = OpBitwiseAnd %uint %34145 %uint_32768
-      %34147 = OpUGreaterThan %bool %34146 %uint_0
-               OpSelectionMerge %42569 None
-               OpSwitch %uint_0 %42553
-      %42553 = OpLabel
-               OpSelectionMerge %42568 None
-               OpBranchConditional %34147 %42555 %42563
-      %42563 = OpLabel
-      %42565 = OpISub %uint %126052 %int_1
-      %42566 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42565
-      %42567 = OpLoad %_arr_v2float_uint_2 %42566
-     %116653 = OpCompositeExtract %v2float %42567 0
-     %116654 = OpCompositeExtract %v2float %42567 1
-               OpBranch %42569
-      %42555 = OpLabel
-      %42557 = OpIAdd %uint %126104 %int_1
-      %42558 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42559 = OpLoad %v2float %42558
-               OpBranch %42569
-      %42568 = OpLabel
-               OpUnreachable
-      %42569 = OpLabel
-     %126770 = OpPhi %uint %42557 %42555 %126104 %42563
-     %126769 = OpPhi %uint %126052 %42555 %42565 %42563
-     %126767 = OpPhi %v2float %42559 %42555 %116653 %42563
-     %126766 = OpPhi %v2float %42559 %42555 %116654 %42563
-      %34151 = OpLoad %uint %30040
-      %34152 = OpBitwiseAnd %uint %34151 %uint_16384
-      %34153 = OpUGreaterThan %bool %34152 %uint_0
-               OpSelectionMerge %42592 None
-               OpSwitch %uint_0 %42576
-      %42576 = OpLabel
-               OpSelectionMerge %42591 None
-               OpBranchConditional %34153 %42578 %42586
-      %42586 = OpLabel
-      %42588 = OpISub %uint %126769 %int_1
-      %42589 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42588
-      %42590 = OpLoad %_arr_v2float_uint_2 %42589
-     %116644 = OpCompositeExtract %v2float %42590 0
-     %116645 = OpCompositeExtract %v2float %42590 1
-               OpBranch %42592
-      %42578 = OpLabel
-      %42580 = OpIAdd %uint %126770 %int_1
-      %42581 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126770
-      %42582 = OpLoad %v2float %42581
-               OpBranch %42592
-      %42591 = OpLabel
-               OpUnreachable
-      %42592 = OpLabel
-     %190824 = OpPhi %uint %42580 %42578 %126770 %42586
-     %126775 = OpPhi %uint %126769 %42578 %42588 %42586
-     %126772 = OpPhi %v2float %42582 %42578 %116644 %42586
-     %126771 = OpPhi %v2float %42582 %42578 %116645 %42586
-      %34159 = OpExtInst %v2float %1 FMax %126767 %126772
-      %34165 = OpExtInst %v2float %1 FMax %126766 %126771
-     %119006 = OpCompositeConstruct %_arr_v2float_uint_2 %34159 %34165
-      %42596 = OpIAdd %uint %126775 %int_1
-      %42598 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126775
-               OpStore %42598 %119006
-               OpBranch %38458
-      %34115 = OpLabel
-      %34118 = OpLoad %uint %30040
-      %34119 = OpBitwiseAnd %uint %34118 %uint_32768
-      %34120 = OpUGreaterThan %bool %34119 %uint_0
-               OpSelectionMerge %42518 None
-               OpSwitch %uint_0 %42502
-      %42502 = OpLabel
-               OpSelectionMerge %42517 None
-               OpBranchConditional %34120 %42504 %42512
-      %42512 = OpLabel
-      %42514 = OpISub %uint %126052 %int_1
-      %42515 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42514
-      %42516 = OpLoad %_arr_v2float_uint_2 %42515
-     %116671 = OpCompositeExtract %v2float %42516 0
-     %116672 = OpCompositeExtract %v2float %42516 1
-               OpBranch %42518
-      %42504 = OpLabel
-      %42506 = OpIAdd %uint %126104 %int_1
-      %42507 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42508 = OpLoad %v2float %42507
-               OpBranch %42518
-      %42517 = OpLabel
-               OpUnreachable
-      %42518 = OpLabel
-     %126780 = OpPhi %uint %42506 %42504 %126104 %42512
-     %126779 = OpPhi %uint %126052 %42504 %42514 %42512
-     %126777 = OpPhi %v2float %42508 %42504 %116671 %42512
-     %126776 = OpPhi %v2float %42508 %42504 %116672 %42512
-      %34124 = OpLoad %uint %30040
-      %34125 = OpBitwiseAnd %uint %34124 %uint_16384
-      %34126 = OpUGreaterThan %bool %34125 %uint_0
-               OpSelectionMerge %42541 None
-               OpSwitch %uint_0 %42525
-      %42525 = OpLabel
-               OpSelectionMerge %42540 None
-               OpBranchConditional %34126 %42527 %42535
-      %42535 = OpLabel
-      %42537 = OpISub %uint %126779 %int_1
-      %42538 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42537
-      %42539 = OpLoad %_arr_v2float_uint_2 %42538
-     %116662 = OpCompositeExtract %v2float %42539 0
-     %116663 = OpCompositeExtract %v2float %42539 1
-               OpBranch %42541
-      %42527 = OpLabel
-      %42529 = OpIAdd %uint %126780 %int_1
-      %42530 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126780
-      %42531 = OpLoad %v2float %42530
-               OpBranch %42541
-      %42540 = OpLabel
-               OpUnreachable
-      %42541 = OpLabel
-     %190823 = OpPhi %uint %42529 %42527 %126780 %42535
-     %126785 = OpPhi %uint %126779 %42527 %42537 %42535
-     %126782 = OpPhi %v2float %42531 %42527 %116662 %42535
-     %126781 = OpPhi %v2float %42531 %42527 %116663 %42535
-      %34132 = OpExtInst %v2float %1 FMin %126777 %126782
-      %34138 = OpExtInst %v2float %1 FMin %126776 %126781
-     %118995 = OpCompositeConstruct %_arr_v2float_uint_2 %34132 %34138
-      %42545 = OpIAdd %uint %126785 %int_1
-      %42547 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126785
-               OpStore %42547 %118995
-               OpBranch %38458
-      %34086 = OpLabel
-      %34089 = OpLoad %uint %30040
-      %34090 = OpBitwiseAnd %uint %34089 %uint_32768
-      %34091 = OpUGreaterThan %bool %34090 %uint_0
-               OpSelectionMerge %42490 None
-               OpSwitch %uint_0 %42474
-      %42474 = OpLabel
-               OpSelectionMerge %42489 None
-               OpBranchConditional %34091 %42476 %42484
-      %42484 = OpLabel
-      %42486 = OpISub %uint %126052 %int_1
-      %42487 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42486
-      %42488 = OpLoad %_arr_v2float_uint_2 %42487
-     %116680 = OpCompositeExtract %v2float %42488 0
-     %116681 = OpCompositeExtract %v2float %42488 1
-               OpBranch %42490
-      %42476 = OpLabel
-      %42478 = OpIAdd %uint %126104 %int_1
-      %42479 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42480 = OpLoad %v2float %42479
-               OpBranch %42490
-      %42489 = OpLabel
-               OpUnreachable
-      %42490 = OpLabel
-     %190822 = OpPhi %uint %42478 %42476 %126104 %42484
-     %126788 = OpPhi %uint %126052 %42476 %42486 %42484
-     %126787 = OpPhi %v2float %42480 %42476 %116680 %42484
-     %126786 = OpPhi %v2float %42480 %42476 %116681 %42484
-      %34095 = OpExtInst %v2float %1 Trunc %126787
-      %34099 = OpExtInst %v2float %1 Trunc %126786
-      %34105 = OpExtInst %v2float %1 FMin %34095 %34099
-      %34111 = OpExtInst %v2float %1 FMax %34095 %34099
-     %118986 = OpCompositeConstruct %_arr_v2float_uint_2 %34105 %34111
-      %42494 = OpIAdd %uint %126788 %int_1
-      %42496 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126788
-               OpStore %42496 %118986
-               OpBranch %38458
-      %34057 = OpLabel
-      %34060 = OpLoad %uint %30040
-      %34061 = OpBitwiseAnd %uint %34060 %uint_32768
-      %34062 = OpUGreaterThan %bool %34061 %uint_0
-               OpSelectionMerge %42462 None
-               OpSwitch %uint_0 %42446
-      %42446 = OpLabel
-               OpSelectionMerge %42461 None
-               OpBranchConditional %34062 %42448 %42456
-      %42456 = OpLabel
-      %42458 = OpISub %uint %126052 %int_1
-      %42459 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42458
-      %42460 = OpLoad %_arr_v2float_uint_2 %42459
-     %116689 = OpCompositeExtract %v2float %42460 0
-     %116690 = OpCompositeExtract %v2float %42460 1
-               OpBranch %42462
-      %42448 = OpLabel
-      %42450 = OpIAdd %uint %126104 %int_1
-      %42451 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42452 = OpLoad %v2float %42451
-               OpBranch %42462
-      %42461 = OpLabel
-               OpUnreachable
-      %42462 = OpLabel
-     %190821 = OpPhi %uint %42450 %42448 %126104 %42456
-     %126791 = OpPhi %uint %126052 %42448 %42458 %42456
-     %126790 = OpPhi %v2float %42452 %42448 %116689 %42456
-     %126789 = OpPhi %v2float %42452 %42448 %116690 %42456
-      %34066 = OpExtInst %v2float %1 Round %126790
-      %34070 = OpExtInst %v2float %1 Round %126789
-      %34076 = OpExtInst %v2float %1 FMin %34066 %34070
-      %34082 = OpExtInst %v2float %1 FMax %34066 %34070
-     %118977 = OpCompositeConstruct %_arr_v2float_uint_2 %34076 %34082
-      %42466 = OpIAdd %uint %126791 %int_1
-      %42468 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126791
-               OpStore %42468 %118977
-               OpBranch %38458
-      %34028 = OpLabel
-      %34031 = OpLoad %uint %30040
-      %34032 = OpBitwiseAnd %uint %34031 %uint_32768
-      %34033 = OpUGreaterThan %bool %34032 %uint_0
-               OpSelectionMerge %42434 None
-               OpSwitch %uint_0 %42418
-      %42418 = OpLabel
-               OpSelectionMerge %42433 None
-               OpBranchConditional %34033 %42420 %42428
-      %42428 = OpLabel
-      %42430 = OpISub %uint %126052 %int_1
-      %42431 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42430
-      %42432 = OpLoad %_arr_v2float_uint_2 %42431
-     %116698 = OpCompositeExtract %v2float %42432 0
-     %116699 = OpCompositeExtract %v2float %42432 1
-               OpBranch %42434
-      %42420 = OpLabel
-      %42422 = OpIAdd %uint %126104 %int_1
-      %42423 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42424 = OpLoad %v2float %42423
-               OpBranch %42434
-      %42433 = OpLabel
-               OpUnreachable
-      %42434 = OpLabel
-     %190820 = OpPhi %uint %42422 %42420 %126104 %42428
-     %126794 = OpPhi %uint %126052 %42420 %42430 %42428
-     %126793 = OpPhi %v2float %42424 %42420 %116698 %42428
-     %126792 = OpPhi %v2float %42424 %42420 %116699 %42428
-      %34037 = OpExtInst %v2float %1 Tanh %126793
-      %34041 = OpExtInst %v2float %1 Tanh %126792
-      %34047 = OpExtInst %v2float %1 FMin %34037 %34041
-      %34053 = OpExtInst %v2float %1 FMax %34037 %34041
-     %118968 = OpCompositeConstruct %_arr_v2float_uint_2 %34047 %34053
-      %42438 = OpIAdd %uint %126794 %int_1
-      %42440 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126794
-               OpStore %42440 %118968
-               OpBranch %38458
-      %33999 = OpLabel
-      %34002 = OpLoad %uint %30040
-      %34003 = OpBitwiseAnd %uint %34002 %uint_32768
-      %34004 = OpUGreaterThan %bool %34003 %uint_0
-               OpSelectionMerge %42406 None
-               OpSwitch %uint_0 %42390
-      %42390 = OpLabel
-               OpSelectionMerge %42405 None
-               OpBranchConditional %34004 %42392 %42400
-      %42400 = OpLabel
-      %42402 = OpISub %uint %126052 %int_1
-      %42403 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42402
-      %42404 = OpLoad %_arr_v2float_uint_2 %42403
-     %116707 = OpCompositeExtract %v2float %42404 0
-     %116708 = OpCompositeExtract %v2float %42404 1
-               OpBranch %42406
-      %42392 = OpLabel
-      %42394 = OpIAdd %uint %126104 %int_1
-      %42395 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42396 = OpLoad %v2float %42395
-               OpBranch %42406
-      %42405 = OpLabel
-               OpUnreachable
-      %42406 = OpLabel
-     %190819 = OpPhi %uint %42394 %42392 %126104 %42400
-     %126797 = OpPhi %uint %126052 %42392 %42402 %42400
-     %126796 = OpPhi %v2float %42396 %42392 %116707 %42400
-     %126795 = OpPhi %v2float %42396 %42392 %116708 %42400
-      %34008 = OpExtInst %v2float %1 Sinh %126796
-      %34012 = OpExtInst %v2float %1 Sinh %126795
-      %34018 = OpExtInst %v2float %1 FMin %34008 %34012
-      %34024 = OpExtInst %v2float %1 FMax %34008 %34012
-     %118959 = OpCompositeConstruct %_arr_v2float_uint_2 %34018 %34024
-      %42410 = OpIAdd %uint %126797 %int_1
-      %42412 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126797
-               OpStore %42412 %118959
-               OpBranch %38458
-      %33970 = OpLabel
-      %33973 = OpLoad %uint %30040
-      %33974 = OpBitwiseAnd %uint %33973 %uint_32768
-      %33975 = OpUGreaterThan %bool %33974 %uint_0
-               OpSelectionMerge %42378 None
-               OpSwitch %uint_0 %42362
-      %42362 = OpLabel
-               OpSelectionMerge %42377 None
-               OpBranchConditional %33975 %42364 %42372
-      %42372 = OpLabel
-      %42374 = OpISub %uint %126052 %int_1
-      %42375 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42374
-      %42376 = OpLoad %_arr_v2float_uint_2 %42375
-     %116716 = OpCompositeExtract %v2float %42376 0
-     %116717 = OpCompositeExtract %v2float %42376 1
-               OpBranch %42378
-      %42364 = OpLabel
-      %42366 = OpIAdd %uint %126104 %int_1
-      %42367 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42368 = OpLoad %v2float %42367
-               OpBranch %42378
-      %42377 = OpLabel
-               OpUnreachable
-      %42378 = OpLabel
-     %190818 = OpPhi %uint %42366 %42364 %126104 %42372
-     %126800 = OpPhi %uint %126052 %42364 %42374 %42372
-     %126799 = OpPhi %v2float %42368 %42364 %116716 %42372
-     %126798 = OpPhi %v2float %42368 %42364 %116717 %42372
-      %33979 = OpExtInst %v2float %1 Cosh %126799
-      %33983 = OpExtInst %v2float %1 Cosh %126798
-      %33989 = OpExtInst %v2float %1 FMin %33979 %33983
-      %33995 = OpExtInst %v2float %1 FMax %33979 %33983
-     %118950 = OpCompositeConstruct %_arr_v2float_uint_2 %33989 %33995
-      %42382 = OpIAdd %uint %126800 %int_1
-      %42384 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126800
-               OpStore %42384 %118950
-               OpBranch %38458
-      %33941 = OpLabel
-      %33944 = OpLoad %uint %30040
-      %33945 = OpBitwiseAnd %uint %33944 %uint_32768
-      %33946 = OpUGreaterThan %bool %33945 %uint_0
-               OpSelectionMerge %42350 None
-               OpSwitch %uint_0 %42334
-      %42334 = OpLabel
-               OpSelectionMerge %42349 None
-               OpBranchConditional %33946 %42336 %42344
-      %42344 = OpLabel
-      %42346 = OpISub %uint %126052 %int_1
-      %42347 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42346
-      %42348 = OpLoad %_arr_v2float_uint_2 %42347
-     %116725 = OpCompositeExtract %v2float %42348 0
-     %116726 = OpCompositeExtract %v2float %42348 1
-               OpBranch %42350
-      %42336 = OpLabel
-      %42338 = OpIAdd %uint %126104 %int_1
-      %42339 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42340 = OpLoad %v2float %42339
-               OpBranch %42350
-      %42349 = OpLabel
-               OpUnreachable
-      %42350 = OpLabel
-     %190817 = OpPhi %uint %42338 %42336 %126104 %42344
-     %126803 = OpPhi %uint %126052 %42336 %42346 %42344
-     %126802 = OpPhi %v2float %42340 %42336 %116725 %42344
-     %126801 = OpPhi %v2float %42340 %42336 %116726 %42344
-      %33950 = OpExtInst %v2float %1 Atanh %126802
-      %33954 = OpExtInst %v2float %1 Atanh %126801
-      %33960 = OpExtInst %v2float %1 FMin %33950 %33954
-      %33966 = OpExtInst %v2float %1 FMax %33950 %33954
-     %118941 = OpCompositeConstruct %_arr_v2float_uint_2 %33960 %33966
-      %42354 = OpIAdd %uint %126803 %int_1
-      %42356 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126803
-               OpStore %42356 %118941
-               OpBranch %38458
-      %33912 = OpLabel
-      %33915 = OpLoad %uint %30040
-      %33916 = OpBitwiseAnd %uint %33915 %uint_32768
-      %33917 = OpUGreaterThan %bool %33916 %uint_0
-               OpSelectionMerge %42322 None
-               OpSwitch %uint_0 %42306
-      %42306 = OpLabel
-               OpSelectionMerge %42321 None
-               OpBranchConditional %33917 %42308 %42316
-      %42316 = OpLabel
-      %42318 = OpISub %uint %126052 %int_1
-      %42319 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42318
-      %42320 = OpLoad %_arr_v2float_uint_2 %42319
-     %116734 = OpCompositeExtract %v2float %42320 0
-     %116735 = OpCompositeExtract %v2float %42320 1
-               OpBranch %42322
-      %42308 = OpLabel
-      %42310 = OpIAdd %uint %126104 %int_1
-      %42311 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42312 = OpLoad %v2float %42311
-               OpBranch %42322
-      %42321 = OpLabel
-               OpUnreachable
-      %42322 = OpLabel
-     %190816 = OpPhi %uint %42310 %42308 %126104 %42316
-     %126806 = OpPhi %uint %126052 %42308 %42318 %42316
-     %126805 = OpPhi %v2float %42312 %42308 %116734 %42316
-     %126804 = OpPhi %v2float %42312 %42308 %116735 %42316
-      %33921 = OpExtInst %v2float %1 Asinh %126805
-      %33925 = OpExtInst %v2float %1 Asinh %126804
-      %33931 = OpExtInst %v2float %1 FMin %33921 %33925
-      %33937 = OpExtInst %v2float %1 FMax %33921 %33925
-     %118932 = OpCompositeConstruct %_arr_v2float_uint_2 %33931 %33937
-      %42326 = OpIAdd %uint %126806 %int_1
-      %42328 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126806
-               OpStore %42328 %118932
-               OpBranch %38458
-      %33883 = OpLabel
-      %33886 = OpLoad %uint %30040
-      %33887 = OpBitwiseAnd %uint %33886 %uint_32768
-      %33888 = OpUGreaterThan %bool %33887 %uint_0
-               OpSelectionMerge %42294 None
-               OpSwitch %uint_0 %42278
-      %42278 = OpLabel
-               OpSelectionMerge %42293 None
-               OpBranchConditional %33888 %42280 %42288
-      %42288 = OpLabel
-      %42290 = OpISub %uint %126052 %int_1
-      %42291 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42290
-      %42292 = OpLoad %_arr_v2float_uint_2 %42291
-     %116743 = OpCompositeExtract %v2float %42292 0
-     %116744 = OpCompositeExtract %v2float %42292 1
-               OpBranch %42294
-      %42280 = OpLabel
-      %42282 = OpIAdd %uint %126104 %int_1
-      %42283 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42284 = OpLoad %v2float %42283
-               OpBranch %42294
-      %42293 = OpLabel
-               OpUnreachable
-      %42294 = OpLabel
-     %190815 = OpPhi %uint %42282 %42280 %126104 %42288
-     %126809 = OpPhi %uint %126052 %42280 %42290 %42288
-     %126808 = OpPhi %v2float %42284 %42280 %116743 %42288
-     %126807 = OpPhi %v2float %42284 %42280 %116744 %42288
-      %33892 = OpExtInst %v2float %1 Acosh %126808
-      %33896 = OpExtInst %v2float %1 Acosh %126807
-      %33902 = OpExtInst %v2float %1 FMin %33892 %33896
-      %33908 = OpExtInst %v2float %1 FMax %33892 %33896
-     %118923 = OpCompositeConstruct %_arr_v2float_uint_2 %33902 %33908
-      %42298 = OpIAdd %uint %126809 %int_1
-      %42300 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126809
-               OpStore %42300 %118923
-               OpBranch %38458
-      %33854 = OpLabel
-      %33857 = OpLoad %uint %30040
-      %33858 = OpBitwiseAnd %uint %33857 %uint_32768
-      %33859 = OpUGreaterThan %bool %33858 %uint_0
-               OpSelectionMerge %42266 None
-               OpSwitch %uint_0 %42250
-      %42250 = OpLabel
-               OpSelectionMerge %42265 None
-               OpBranchConditional %33859 %42252 %42260
-      %42260 = OpLabel
-      %42262 = OpISub %uint %126052 %int_1
-      %42263 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42262
-      %42264 = OpLoad %_arr_v2float_uint_2 %42263
-     %116752 = OpCompositeExtract %v2float %42264 0
-     %116753 = OpCompositeExtract %v2float %42264 1
-               OpBranch %42266
-      %42252 = OpLabel
-      %42254 = OpIAdd %uint %126104 %int_1
-      %42255 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42256 = OpLoad %v2float %42255
-               OpBranch %42266
-      %42265 = OpLabel
-               OpUnreachable
-      %42266 = OpLabel
-     %190814 = OpPhi %uint %42254 %42252 %126104 %42260
-     %126812 = OpPhi %uint %126052 %42252 %42262 %42260
-     %126811 = OpPhi %v2float %42256 %42252 %116752 %42260
-     %126810 = OpPhi %v2float %42256 %42252 %116753 %42260
-      %33863 = OpExtInst %v2float %1 Atan %126811
-      %33867 = OpExtInst %v2float %1 Atan %126810
-      %33873 = OpExtInst %v2float %1 FMin %33863 %33867
-      %33879 = OpExtInst %v2float %1 FMax %33863 %33867
-     %118914 = OpCompositeConstruct %_arr_v2float_uint_2 %33873 %33879
-      %42270 = OpIAdd %uint %126812 %int_1
-      %42272 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126812
-               OpStore %42272 %118914
-               OpBranch %38458
-      %33825 = OpLabel
-      %33828 = OpLoad %uint %30040
-      %33829 = OpBitwiseAnd %uint %33828 %uint_32768
-      %33830 = OpUGreaterThan %bool %33829 %uint_0
-               OpSelectionMerge %42238 None
-               OpSwitch %uint_0 %42222
-      %42222 = OpLabel
-               OpSelectionMerge %42237 None
-               OpBranchConditional %33830 %42224 %42232
-      %42232 = OpLabel
-      %42234 = OpISub %uint %126052 %int_1
-      %42235 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42234
-      %42236 = OpLoad %_arr_v2float_uint_2 %42235
-     %116761 = OpCompositeExtract %v2float %42236 0
-     %116762 = OpCompositeExtract %v2float %42236 1
-               OpBranch %42238
-      %42224 = OpLabel
-      %42226 = OpIAdd %uint %126104 %int_1
-      %42227 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42228 = OpLoad %v2float %42227
-               OpBranch %42238
-      %42237 = OpLabel
-               OpUnreachable
-      %42238 = OpLabel
-     %190813 = OpPhi %uint %42226 %42224 %126104 %42232
-     %126815 = OpPhi %uint %126052 %42224 %42234 %42232
-     %126814 = OpPhi %v2float %42228 %42224 %116761 %42232
-     %126813 = OpPhi %v2float %42228 %42224 %116762 %42232
-      %33834 = OpExtInst %v2float %1 Acos %126814
-      %33838 = OpExtInst %v2float %1 Acos %126813
-      %33844 = OpExtInst %v2float %1 FMin %33834 %33838
-      %33850 = OpExtInst %v2float %1 FMax %33834 %33838
-     %118905 = OpCompositeConstruct %_arr_v2float_uint_2 %33844 %33850
-      %42242 = OpIAdd %uint %126815 %int_1
-      %42244 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126815
-               OpStore %42244 %118905
-               OpBranch %38458
-      %33796 = OpLabel
-      %33799 = OpLoad %uint %30040
-      %33800 = OpBitwiseAnd %uint %33799 %uint_32768
-      %33801 = OpUGreaterThan %bool %33800 %uint_0
-               OpSelectionMerge %42210 None
-               OpSwitch %uint_0 %42194
-      %42194 = OpLabel
-               OpSelectionMerge %42209 None
-               OpBranchConditional %33801 %42196 %42204
-      %42204 = OpLabel
-      %42206 = OpISub %uint %126052 %int_1
-      %42207 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42206
-      %42208 = OpLoad %_arr_v2float_uint_2 %42207
-     %116770 = OpCompositeExtract %v2float %42208 0
-     %116771 = OpCompositeExtract %v2float %42208 1
-               OpBranch %42210
-      %42196 = OpLabel
-      %42198 = OpIAdd %uint %126104 %int_1
-      %42199 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42200 = OpLoad %v2float %42199
-               OpBranch %42210
-      %42209 = OpLabel
-               OpUnreachable
-      %42210 = OpLabel
-     %190812 = OpPhi %uint %42198 %42196 %126104 %42204
-     %126818 = OpPhi %uint %126052 %42196 %42206 %42204
-     %126817 = OpPhi %v2float %42200 %42196 %116770 %42204
-     %126816 = OpPhi %v2float %42200 %42196 %116771 %42204
-      %33805 = OpExtInst %v2float %1 Asin %126817
-      %33809 = OpExtInst %v2float %1 Asin %126816
-      %33815 = OpExtInst %v2float %1 FMin %33805 %33809
-      %33821 = OpExtInst %v2float %1 FMax %33805 %33809
-     %118896 = OpCompositeConstruct %_arr_v2float_uint_2 %33815 %33821
-      %42214 = OpIAdd %uint %126818 %int_1
-      %42216 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126818
-               OpStore %42216 %118896
-               OpBranch %38458
-      %33767 = OpLabel
-      %33770 = OpLoad %uint %30040
-      %33771 = OpBitwiseAnd %uint %33770 %uint_32768
-      %33772 = OpUGreaterThan %bool %33771 %uint_0
-               OpSelectionMerge %42182 None
-               OpSwitch %uint_0 %42166
-      %42166 = OpLabel
-               OpSelectionMerge %42181 None
-               OpBranchConditional %33772 %42168 %42176
-      %42176 = OpLabel
-      %42178 = OpISub %uint %126052 %int_1
-      %42179 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42178
-      %42180 = OpLoad %_arr_v2float_uint_2 %42179
-     %116779 = OpCompositeExtract %v2float %42180 0
-     %116780 = OpCompositeExtract %v2float %42180 1
-               OpBranch %42182
-      %42168 = OpLabel
-      %42170 = OpIAdd %uint %126104 %int_1
-      %42171 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42172 = OpLoad %v2float %42171
-               OpBranch %42182
-      %42181 = OpLabel
-               OpUnreachable
-      %42182 = OpLabel
-     %190811 = OpPhi %uint %42170 %42168 %126104 %42176
-     %126821 = OpPhi %uint %126052 %42168 %42178 %42176
-     %126820 = OpPhi %v2float %42172 %42168 %116779 %42176
-     %126819 = OpPhi %v2float %42172 %42168 %116780 %42176
-      %33776 = OpExtInst %v2float %1 Tan %126820
-      %33780 = OpExtInst %v2float %1 Tan %126819
-      %33786 = OpExtInst %v2float %1 FMin %33776 %33780
-      %33792 = OpExtInst %v2float %1 FMax %33776 %33780
-     %118887 = OpCompositeConstruct %_arr_v2float_uint_2 %33786 %33792
-      %42186 = OpIAdd %uint %126821 %int_1
-      %42188 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126821
-               OpStore %42188 %118887
-               OpBranch %38458
-      %33738 = OpLabel
-      %33741 = OpLoad %uint %30040
-      %33742 = OpBitwiseAnd %uint %33741 %uint_32768
-      %33743 = OpUGreaterThan %bool %33742 %uint_0
-               OpSelectionMerge %42154 None
-               OpSwitch %uint_0 %42138
-      %42138 = OpLabel
-               OpSelectionMerge %42153 None
-               OpBranchConditional %33743 %42140 %42148
-      %42148 = OpLabel
-      %42150 = OpISub %uint %126052 %int_1
-      %42151 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42150
-      %42152 = OpLoad %_arr_v2float_uint_2 %42151
-     %116788 = OpCompositeExtract %v2float %42152 0
-     %116789 = OpCompositeExtract %v2float %42152 1
-               OpBranch %42154
-      %42140 = OpLabel
-      %42142 = OpIAdd %uint %126104 %int_1
-      %42143 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42144 = OpLoad %v2float %42143
-               OpBranch %42154
-      %42153 = OpLabel
-               OpUnreachable
-      %42154 = OpLabel
-     %190810 = OpPhi %uint %42142 %42140 %126104 %42148
-     %126824 = OpPhi %uint %126052 %42140 %42150 %42148
-     %126823 = OpPhi %v2float %42144 %42140 %116788 %42148
-     %126822 = OpPhi %v2float %42144 %42140 %116789 %42148
-      %33747 = OpExtInst %v2float %1 Cos %126823
-      %33751 = OpExtInst %v2float %1 Cos %126822
-      %33757 = OpExtInst %v2float %1 FMin %33747 %33751
-      %33763 = OpExtInst %v2float %1 FMax %33747 %33751
-     %118878 = OpCompositeConstruct %_arr_v2float_uint_2 %33757 %33763
-      %42158 = OpIAdd %uint %126824 %int_1
-      %42160 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126824
-               OpStore %42160 %118878
-               OpBranch %38458
-      %33709 = OpLabel
-      %33712 = OpLoad %uint %30040
-      %33713 = OpBitwiseAnd %uint %33712 %uint_32768
-      %33714 = OpUGreaterThan %bool %33713 %uint_0
-               OpSelectionMerge %42126 None
-               OpSwitch %uint_0 %42110
-      %42110 = OpLabel
-               OpSelectionMerge %42125 None
-               OpBranchConditional %33714 %42112 %42120
-      %42120 = OpLabel
-      %42122 = OpISub %uint %126052 %int_1
-      %42123 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42122
-      %42124 = OpLoad %_arr_v2float_uint_2 %42123
-     %116797 = OpCompositeExtract %v2float %42124 0
-     %116798 = OpCompositeExtract %v2float %42124 1
-               OpBranch %42126
-      %42112 = OpLabel
-      %42114 = OpIAdd %uint %126104 %int_1
-      %42115 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42116 = OpLoad %v2float %42115
-               OpBranch %42126
-      %42125 = OpLabel
-               OpUnreachable
-      %42126 = OpLabel
-     %190809 = OpPhi %uint %42114 %42112 %126104 %42120
-     %126827 = OpPhi %uint %126052 %42112 %42122 %42120
-     %126826 = OpPhi %v2float %42116 %42112 %116797 %42120
-     %126825 = OpPhi %v2float %42116 %42112 %116798 %42120
-      %33718 = OpExtInst %v2float %1 Sin %126826
-      %33722 = OpExtInst %v2float %1 Sin %126825
-      %33728 = OpExtInst %v2float %1 FMin %33718 %33722
-      %33734 = OpExtInst %v2float %1 FMax %33718 %33722
-     %118869 = OpCompositeConstruct %_arr_v2float_uint_2 %33728 %33734
-      %42130 = OpIAdd %uint %126827 %int_1
-      %42132 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126827
-               OpStore %42132 %118869
-               OpBranch %38458
-      %33680 = OpLabel
-      %33683 = OpLoad %uint %30040
-      %33684 = OpBitwiseAnd %uint %33683 %uint_32768
-      %33685 = OpUGreaterThan %bool %33684 %uint_0
-               OpSelectionMerge %42098 None
-               OpSwitch %uint_0 %42082
-      %42082 = OpLabel
-               OpSelectionMerge %42097 None
-               OpBranchConditional %33685 %42084 %42092
-      %42092 = OpLabel
-      %42094 = OpISub %uint %126052 %int_1
-      %42095 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42094
-      %42096 = OpLoad %_arr_v2float_uint_2 %42095
-     %116806 = OpCompositeExtract %v2float %42096 0
-     %116807 = OpCompositeExtract %v2float %42096 1
-               OpBranch %42098
-      %42084 = OpLabel
-      %42086 = OpIAdd %uint %126104 %int_1
-      %42087 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42088 = OpLoad %v2float %42087
-               OpBranch %42098
-      %42097 = OpLabel
-               OpUnreachable
-      %42098 = OpLabel
-     %190808 = OpPhi %uint %42086 %42084 %126104 %42092
-     %126830 = OpPhi %uint %126052 %42084 %42094 %42092
-     %126829 = OpPhi %v2float %42088 %42084 %116806 %42092
-     %126828 = OpPhi %v2float %42088 %42084 %116807 %42092
-      %33689 = OpExtInst %v2float %1 Log2 %126829
-      %33693 = OpExtInst %v2float %1 Log2 %126828
-      %33699 = OpExtInst %v2float %1 FMin %33689 %33693
-      %33705 = OpExtInst %v2float %1 FMax %33689 %33693
-     %118860 = OpCompositeConstruct %_arr_v2float_uint_2 %33699 %33705
-      %42102 = OpIAdd %uint %126830 %int_1
-      %42104 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126830
-               OpStore %42104 %118860
-               OpBranch %38458
-      %33651 = OpLabel
-      %33654 = OpLoad %uint %30040
-      %33655 = OpBitwiseAnd %uint %33654 %uint_32768
-      %33656 = OpUGreaterThan %bool %33655 %uint_0
-               OpSelectionMerge %42070 None
-               OpSwitch %uint_0 %42054
-      %42054 = OpLabel
-               OpSelectionMerge %42069 None
-               OpBranchConditional %33656 %42056 %42064
-      %42064 = OpLabel
-      %42066 = OpISub %uint %126052 %int_1
-      %42067 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42066
-      %42068 = OpLoad %_arr_v2float_uint_2 %42067
-     %116815 = OpCompositeExtract %v2float %42068 0
-     %116816 = OpCompositeExtract %v2float %42068 1
-               OpBranch %42070
-      %42056 = OpLabel
-      %42058 = OpIAdd %uint %126104 %int_1
-      %42059 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42060 = OpLoad %v2float %42059
-               OpBranch %42070
-      %42069 = OpLabel
-               OpUnreachable
-      %42070 = OpLabel
-     %190807 = OpPhi %uint %42058 %42056 %126104 %42064
-     %126833 = OpPhi %uint %126052 %42056 %42066 %42064
-     %126832 = OpPhi %v2float %42060 %42056 %116815 %42064
-     %126831 = OpPhi %v2float %42060 %42056 %116816 %42064
-      %33660 = OpExtInst %v2float %1 Log %126832
-      %33664 = OpExtInst %v2float %1 Log %126831
-      %33670 = OpExtInst %v2float %1 FMin %33660 %33664
-      %33676 = OpExtInst %v2float %1 FMax %33660 %33664
-     %118851 = OpCompositeConstruct %_arr_v2float_uint_2 %33670 %33676
-      %42074 = OpIAdd %uint %126833 %int_1
-      %42076 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126833
-               OpStore %42076 %118851
-               OpBranch %38458
-      %33622 = OpLabel
-      %33625 = OpLoad %uint %30040
-      %33626 = OpBitwiseAnd %uint %33625 %uint_32768
-      %33627 = OpUGreaterThan %bool %33626 %uint_0
-               OpSelectionMerge %42042 None
-               OpSwitch %uint_0 %42026
-      %42026 = OpLabel
-               OpSelectionMerge %42041 None
-               OpBranchConditional %33627 %42028 %42036
-      %42036 = OpLabel
-      %42038 = OpISub %uint %126052 %int_1
-      %42039 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42038
-      %42040 = OpLoad %_arr_v2float_uint_2 %42039
-     %116824 = OpCompositeExtract %v2float %42040 0
-     %116825 = OpCompositeExtract %v2float %42040 1
-               OpBranch %42042
-      %42028 = OpLabel
-      %42030 = OpIAdd %uint %126104 %int_1
-      %42031 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42032 = OpLoad %v2float %42031
-               OpBranch %42042
-      %42041 = OpLabel
-               OpUnreachable
-      %42042 = OpLabel
-     %190806 = OpPhi %uint %42030 %42028 %126104 %42036
-     %126836 = OpPhi %uint %126052 %42028 %42038 %42036
-     %126835 = OpPhi %v2float %42032 %42028 %116824 %42036
-     %126834 = OpPhi %v2float %42032 %42028 %116825 %42036
-      %33631 = OpExtInst %v2float %1 Exp2 %126835
-      %33635 = OpExtInst %v2float %1 Exp2 %126834
-      %33641 = OpExtInst %v2float %1 FMin %33631 %33635
-      %33647 = OpExtInst %v2float %1 FMax %33631 %33635
-     %118842 = OpCompositeConstruct %_arr_v2float_uint_2 %33641 %33647
-      %42046 = OpIAdd %uint %126836 %int_1
-      %42048 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126836
-               OpStore %42048 %118842
-               OpBranch %38458
-      %33593 = OpLabel
-      %33596 = OpLoad %uint %30040
-      %33597 = OpBitwiseAnd %uint %33596 %uint_32768
-      %33598 = OpUGreaterThan %bool %33597 %uint_0
-               OpSelectionMerge %42014 None
-               OpSwitch %uint_0 %41998
-      %41998 = OpLabel
-               OpSelectionMerge %42013 None
-               OpBranchConditional %33598 %42000 %42008
-      %42008 = OpLabel
-      %42010 = OpISub %uint %126052 %int_1
-      %42011 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %42010
-      %42012 = OpLoad %_arr_v2float_uint_2 %42011
-     %116833 = OpCompositeExtract %v2float %42012 0
-     %116834 = OpCompositeExtract %v2float %42012 1
-               OpBranch %42014
-      %42000 = OpLabel
-      %42002 = OpIAdd %uint %126104 %int_1
-      %42003 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %42004 = OpLoad %v2float %42003
-               OpBranch %42014
-      %42013 = OpLabel
-               OpUnreachable
-      %42014 = OpLabel
-     %190805 = OpPhi %uint %42002 %42000 %126104 %42008
-     %126839 = OpPhi %uint %126052 %42000 %42010 %42008
-     %126838 = OpPhi %v2float %42004 %42000 %116833 %42008
-     %126837 = OpPhi %v2float %42004 %42000 %116834 %42008
-      %33602 = OpExtInst %v2float %1 Exp %126838
-      %33606 = OpExtInst %v2float %1 Exp %126837
-      %33612 = OpExtInst %v2float %1 FMin %33602 %33606
-      %33618 = OpExtInst %v2float %1 FMax %33602 %33606
-     %118833 = OpCompositeConstruct %_arr_v2float_uint_2 %33612 %33618
-      %42018 = OpIAdd %uint %126839 %int_1
-      %42020 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126839
-               OpStore %42020 %118833
-               OpBranch %38458
-      %33564 = OpLabel
-      %33567 = OpLoad %uint %30040
-      %33568 = OpBitwiseAnd %uint %33567 %uint_32768
-      %33569 = OpUGreaterThan %bool %33568 %uint_0
-               OpSelectionMerge %41986 None
-               OpSwitch %uint_0 %41970
-      %41970 = OpLabel
-               OpSelectionMerge %41985 None
-               OpBranchConditional %33569 %41972 %41980
-      %41980 = OpLabel
-      %41982 = OpISub %uint %126052 %int_1
-      %41983 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %41982
-      %41984 = OpLoad %_arr_v2float_uint_2 %41983
-     %116842 = OpCompositeExtract %v2float %41984 0
-     %116843 = OpCompositeExtract %v2float %41984 1
-               OpBranch %41986
-      %41972 = OpLabel
-      %41974 = OpIAdd %uint %126104 %int_1
-      %41975 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %41976 = OpLoad %v2float %41975
-               OpBranch %41986
-      %41985 = OpLabel
-               OpUnreachable
-      %41986 = OpLabel
-     %190804 = OpPhi %uint %41974 %41972 %126104 %41980
-     %126842 = OpPhi %uint %126052 %41972 %41982 %41980
-     %126841 = OpPhi %v2float %41976 %41972 %116842 %41980
-     %126840 = OpPhi %v2float %41976 %41972 %116843 %41980
-      %33573 = OpExtInst %v2float %1 InverseSqrt %126841
-      %33577 = OpExtInst %v2float %1 InverseSqrt %126840
-      %33583 = OpExtInst %v2float %1 FMin %33573 %33577
-      %33589 = OpExtInst %v2float %1 FMax %33573 %33577
-     %118824 = OpCompositeConstruct %_arr_v2float_uint_2 %33583 %33589
-      %41990 = OpIAdd %uint %126842 %int_1
-      %41992 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126842
-               OpStore %41992 %118824
-               OpBranch %38458
-      %33535 = OpLabel
-      %33538 = OpLoad %uint %30040
-      %33539 = OpBitwiseAnd %uint %33538 %uint_32768
-      %33540 = OpUGreaterThan %bool %33539 %uint_0
-               OpSelectionMerge %41958 None
-               OpSwitch %uint_0 %41942
-      %41942 = OpLabel
-               OpSelectionMerge %41957 None
-               OpBranchConditional %33540 %41944 %41952
-      %41952 = OpLabel
-      %41954 = OpISub %uint %126052 %int_1
-      %41955 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %41954
-      %41956 = OpLoad %_arr_v2float_uint_2 %41955
-     %116851 = OpCompositeExtract %v2float %41956 0
-     %116852 = OpCompositeExtract %v2float %41956 1
-               OpBranch %41958
-      %41944 = OpLabel
-      %41946 = OpIAdd %uint %126104 %int_1
-      %41947 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %41948 = OpLoad %v2float %41947
-               OpBranch %41958
-      %41957 = OpLabel
-               OpUnreachable
-      %41958 = OpLabel
-     %190803 = OpPhi %uint %41946 %41944 %126104 %41952
-     %126845 = OpPhi %uint %126052 %41944 %41954 %41952
-     %126844 = OpPhi %v2float %41948 %41944 %116851 %41952
-     %126843 = OpPhi %v2float %41948 %41944 %116852 %41952
-      %33544 = OpExtInst %v2float %1 Sqrt %126844
-      %33548 = OpExtInst %v2float %1 Sqrt %126843
-      %33554 = OpExtInst %v2float %1 FMin %33544 %33548
-      %33560 = OpExtInst %v2float %1 FMax %33544 %33548
-     %118815 = OpCompositeConstruct %_arr_v2float_uint_2 %33554 %33560
-      %41962 = OpIAdd %uint %126845 %int_1
-      %41964 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126845
-               OpStore %41964 %118815
-               OpBranch %38458
-      %33506 = OpLabel
-      %33509 = OpLoad %uint %30040
-      %33510 = OpBitwiseAnd %uint %33509 %uint_32768
-      %33511 = OpUGreaterThan %bool %33510 %uint_0
-               OpSelectionMerge %41930 None
-               OpSwitch %uint_0 %41914
-      %41914 = OpLabel
-               OpSelectionMerge %41929 None
-               OpBranchConditional %33511 %41916 %41924
-      %41924 = OpLabel
-      %41926 = OpISub %uint %126052 %int_1
-      %41927 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %41926
-      %41928 = OpLoad %_arr_v2float_uint_2 %41927
-     %116860 = OpCompositeExtract %v2float %41928 0
-     %116861 = OpCompositeExtract %v2float %41928 1
-               OpBranch %41930
-      %41916 = OpLabel
-      %41918 = OpIAdd %uint %126104 %int_1
-      %41919 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %41920 = OpLoad %v2float %41919
-               OpBranch %41930
-      %41929 = OpLabel
-               OpUnreachable
-      %41930 = OpLabel
-     %190802 = OpPhi %uint %41918 %41916 %126104 %41924
-     %126848 = OpPhi %uint %126052 %41916 %41926 %41924
-     %126847 = OpPhi %v2float %41920 %41916 %116860 %41924
-     %126846 = OpPhi %v2float %41920 %41916 %116861 %41924
-      %33515 = OpExtInst %v2float %1 Fract %126847
-      %33519 = OpExtInst %v2float %1 Fract %126846
-      %33525 = OpExtInst %v2float %1 FMin %33515 %33519
-      %33531 = OpExtInst %v2float %1 FMax %33515 %33519
-     %118806 = OpCompositeConstruct %_arr_v2float_uint_2 %33525 %33531
-      %41934 = OpIAdd %uint %126848 %int_1
-      %41936 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126848
-               OpStore %41936 %118806
-               OpBranch %38458
-      %33477 = OpLabel
-      %33480 = OpLoad %uint %30040
-      %33481 = OpBitwiseAnd %uint %33480 %uint_32768
-      %33482 = OpUGreaterThan %bool %33481 %uint_0
-               OpSelectionMerge %41902 None
-               OpSwitch %uint_0 %41886
-      %41886 = OpLabel
-               OpSelectionMerge %41901 None
-               OpBranchConditional %33482 %41888 %41896
-      %41896 = OpLabel
-      %41898 = OpISub %uint %126052 %int_1
-      %41899 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %41898
-      %41900 = OpLoad %_arr_v2float_uint_2 %41899
-     %116869 = OpCompositeExtract %v2float %41900 0
-     %116870 = OpCompositeExtract %v2float %41900 1
-               OpBranch %41902
-      %41888 = OpLabel
-      %41890 = OpIAdd %uint %126104 %int_1
-      %41891 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %41892 = OpLoad %v2float %41891
-               OpBranch %41902
-      %41901 = OpLabel
-               OpUnreachable
-      %41902 = OpLabel
-     %190801 = OpPhi %uint %41890 %41888 %126104 %41896
-     %126851 = OpPhi %uint %126052 %41888 %41898 %41896
-     %126850 = OpPhi %v2float %41892 %41888 %116869 %41896
-     %126849 = OpPhi %v2float %41892 %41888 %116870 %41896
-      %33486 = OpExtInst %v2float %1 Ceil %126850
-      %33490 = OpExtInst %v2float %1 Ceil %126849
-      %33496 = OpExtInst %v2float %1 FMin %33486 %33490
-      %33502 = OpExtInst %v2float %1 FMax %33486 %33490
-     %118797 = OpCompositeConstruct %_arr_v2float_uint_2 %33496 %33502
-      %41906 = OpIAdd %uint %126851 %int_1
-      %41908 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126851
-               OpStore %41908 %118797
-               OpBranch %38458
-      %33448 = OpLabel
-      %33451 = OpLoad %uint %30040
-      %33452 = OpBitwiseAnd %uint %33451 %uint_32768
-      %33453 = OpUGreaterThan %bool %33452 %uint_0
-               OpSelectionMerge %41874 None
-               OpSwitch %uint_0 %41858
-      %41858 = OpLabel
-               OpSelectionMerge %41873 None
-               OpBranchConditional %33453 %41860 %41868
-      %41868 = OpLabel
-      %41870 = OpISub %uint %126052 %int_1
-      %41871 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %41870
-      %41872 = OpLoad %_arr_v2float_uint_2 %41871
-     %116878 = OpCompositeExtract %v2float %41872 0
-     %116879 = OpCompositeExtract %v2float %41872 1
-               OpBranch %41874
-      %41860 = OpLabel
-      %41862 = OpIAdd %uint %126104 %int_1
-      %41863 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %41864 = OpLoad %v2float %41863
-               OpBranch %41874
-      %41873 = OpLabel
-               OpUnreachable
-      %41874 = OpLabel
-     %190800 = OpPhi %uint %41862 %41860 %126104 %41868
-     %126854 = OpPhi %uint %126052 %41860 %41870 %41868
-     %126853 = OpPhi %v2float %41864 %41860 %116878 %41868
-     %126852 = OpPhi %v2float %41864 %41860 %116879 %41868
-      %33457 = OpExtInst %v2float %1 Floor %126853
-      %33461 = OpExtInst %v2float %1 Floor %126852
-      %33467 = OpExtInst %v2float %1 FMin %33457 %33461
-      %33473 = OpExtInst %v2float %1 FMax %33457 %33461
-     %118788 = OpCompositeConstruct %_arr_v2float_uint_2 %33467 %33473
-      %41878 = OpIAdd %uint %126854 %int_1
-      %41880 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126854
-               OpStore %41880 %118788
-               OpBranch %38458
-      %33419 = OpLabel
-      %33422 = OpLoad %uint %30040
-      %33423 = OpBitwiseAnd %uint %33422 %uint_32768
-      %33424 = OpUGreaterThan %bool %33423 %uint_0
-               OpSelectionMerge %41846 None
-               OpSwitch %uint_0 %41830
-      %41830 = OpLabel
-               OpSelectionMerge %41845 None
-               OpBranchConditional %33424 %41832 %41840
-      %41840 = OpLabel
-      %41842 = OpISub %uint %126052 %int_1
-      %41843 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %41842
-      %41844 = OpLoad %_arr_v2float_uint_2 %41843
-     %116887 = OpCompositeExtract %v2float %41844 0
-     %116888 = OpCompositeExtract %v2float %41844 1
-               OpBranch %41846
-      %41832 = OpLabel
-      %41834 = OpIAdd %uint %126104 %int_1
-      %41835 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %41836 = OpLoad %v2float %41835
-               OpBranch %41846
-      %41845 = OpLabel
-               OpUnreachable
-      %41846 = OpLabel
-     %190799 = OpPhi %uint %41834 %41832 %126104 %41840
-     %126857 = OpPhi %uint %126052 %41832 %41842 %41840
-     %126856 = OpPhi %v2float %41836 %41832 %116887 %41840
-     %126855 = OpPhi %v2float %41836 %41832 %116888 %41840
-      %33428 = OpExtInst %v2float %1 FSign %126856
-      %33432 = OpExtInst %v2float %1 FSign %126855
-      %33438 = OpExtInst %v2float %1 FMin %33428 %33432
-      %33444 = OpExtInst %v2float %1 FMax %33428 %33432
-     %118779 = OpCompositeConstruct %_arr_v2float_uint_2 %33438 %33444
-      %41850 = OpIAdd %uint %126857 %int_1
-      %41852 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126857
-               OpStore %41852 %118779
-               OpBranch %38458
-      %33390 = OpLabel
-      %33393 = OpLoad %uint %30040
-      %33394 = OpBitwiseAnd %uint %33393 %uint_32768
-      %33395 = OpUGreaterThan %bool %33394 %uint_0
-               OpSelectionMerge %41818 None
-               OpSwitch %uint_0 %41802
-      %41802 = OpLabel
-               OpSelectionMerge %41817 None
-               OpBranchConditional %33395 %41804 %41812
-      %41812 = OpLabel
-      %41814 = OpISub %uint %126052 %int_1
-      %41815 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %41814
-      %41816 = OpLoad %_arr_v2float_uint_2 %41815
-     %116896 = OpCompositeExtract %v2float %41816 0
-     %116897 = OpCompositeExtract %v2float %41816 1
-               OpBranch %41818
-      %41804 = OpLabel
-      %41806 = OpIAdd %uint %126104 %int_1
-      %41807 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %41808 = OpLoad %v2float %41807
-               OpBranch %41818
-      %41817 = OpLabel
-               OpUnreachable
-      %41818 = OpLabel
-     %190798 = OpPhi %uint %41806 %41804 %126104 %41812
-     %126860 = OpPhi %uint %126052 %41804 %41814 %41812
-     %126859 = OpPhi %v2float %41808 %41804 %116896 %41812
-     %126858 = OpPhi %v2float %41808 %41804 %116897 %41812
-      %33399 = OpExtInst %v2float %1 FAbs %126859
-      %33403 = OpExtInst %v2float %1 FAbs %126858
-      %33409 = OpExtInst %v2float %1 FMin %33399 %33403
-      %33415 = OpExtInst %v2float %1 FMax %33399 %33403
-     %118770 = OpCompositeConstruct %_arr_v2float_uint_2 %33409 %33415
-      %41822 = OpIAdd %uint %126860 %int_1
-      %41824 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %126860
-               OpStore %41824 %118770
-               OpBranch %38458
-      %33308 = OpLabel
-      %33311 = OpLoad %uint %30040
-      %33312 = OpBitwiseAnd %uint %33311 %uint_32768
-      %33313 = OpUGreaterThan %bool %33312 %uint_0
-               OpSelectionMerge %41744 None
-               OpSwitch %uint_0 %41728
-      %41728 = OpLabel
-               OpSelectionMerge %41743 None
-               OpBranchConditional %33313 %41730 %41738
-      %41738 = OpLabel
-      %41740 = OpISub %uint %126031 %int_1
-      %41741 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41740
-      %41742 = OpLoad %_arr_float_uint_2 %41741
-     %116923 = OpCompositeExtract %float %41742 0
-     %116924 = OpCompositeExtract %float %41742 1
-               OpBranch %41744
-      %41730 = OpLabel
-      %41732 = OpIAdd %uint %126033 %int_1
-      %41733 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41734 = OpLoad %float %41733
-               OpBranch %41744
-      %41743 = OpLabel
-               OpUnreachable
-      %41744 = OpLabel
-     %126865 = OpPhi %uint %41732 %41730 %126033 %41738
-     %126864 = OpPhi %uint %126031 %41730 %41740 %41738
-     %126862 = OpPhi %float %41734 %41730 %116923 %41738
-     %126861 = OpPhi %float %41734 %41730 %116924 %41738
-      %33317 = OpLoad %uint %30040
-      %33318 = OpBitwiseAnd %uint %33317 %uint_16384
-      %33319 = OpUGreaterThan %bool %33318 %uint_0
-               OpSelectionMerge %41767 None
-               OpSwitch %uint_0 %41751
-      %41751 = OpLabel
-               OpSelectionMerge %41766 None
-               OpBranchConditional %33319 %41753 %41761
-      %41761 = OpLabel
-      %41763 = OpISub %uint %126864 %int_1
-      %41764 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41763
-      %41765 = OpLoad %_arr_float_uint_2 %41764
-     %116914 = OpCompositeExtract %float %41765 0
-     %116915 = OpCompositeExtract %float %41765 1
-               OpBranch %41767
-      %41753 = OpLabel
-      %41755 = OpIAdd %uint %126865 %int_1
-      %41756 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126865
-      %41757 = OpLoad %float %41756
-               OpBranch %41767
-      %41766 = OpLabel
-               OpUnreachable
-      %41767 = OpLabel
-     %126870 = OpPhi %uint %41755 %41753 %126865 %41761
-     %126869 = OpPhi %uint %126864 %41753 %41763 %41761
-     %126867 = OpPhi %float %41757 %41753 %116914 %41761
-     %126866 = OpPhi %float %41757 %41753 %116915 %41761
-      %33323 = OpLoad %uint %30040
-      %33324 = OpBitwiseAnd %uint %33323 %uint_8192
-      %33325 = OpUGreaterThan %bool %33324 %uint_0
-               OpSelectionMerge %41790 None
-               OpSwitch %uint_0 %41774
-      %41774 = OpLabel
-               OpSelectionMerge %41789 None
-               OpBranchConditional %33325 %41776 %41784
-      %41784 = OpLabel
-      %41786 = OpISub %uint %126869 %int_1
-      %41787 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41786
-      %41788 = OpLoad %_arr_float_uint_2 %41787
-     %116905 = OpCompositeExtract %float %41788 0
-     %116906 = OpCompositeExtract %float %41788 1
-               OpBranch %41790
-      %41776 = OpLabel
-      %41778 = OpIAdd %uint %126870 %int_1
-      %41779 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126870
-      %41780 = OpLoad %float %41779
-               OpBranch %41790
-      %41789 = OpLabel
-               OpUnreachable
-      %41790 = OpLabel
-     %128370 = OpPhi %uint %41778 %41776 %126870 %41784
-     %126879 = OpPhi %uint %126869 %41776 %41786 %41784
-     %126872 = OpPhi %float %41780 %41776 %116905 %41784
-     %126871 = OpPhi %float %41780 %41776 %116906 %41784
-      %33331 = OpFMul %float %126862 %126867
-      %33337 = OpFMul %float %126862 %126866
-      %33343 = OpFMul %float %126861 %126867
-      %33349 = OpFMul %float %126861 %126866
-      %33359 = OpExtInst %float %1 FMin %33343 %33349
-      %33360 = OpExtInst %float %1 FMin %33337 %33359
-      %33361 = OpExtInst %float %1 FMin %33331 %33360
-      %33371 = OpExtInst %float %1 FMax %33343 %33349
-      %33372 = OpExtInst %float %1 FMax %33337 %33371
-      %33373 = OpExtInst %float %1 FMax %33331 %33372
-      %33380 = OpFAdd %float %33361 %126872
-      %33386 = OpFAdd %float %33373 %126871
-     %118753 = OpCompositeConstruct %_arr_float_uint_2 %33380 %33386
-      %41794 = OpIAdd %uint %126879 %int_1
-      %41796 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126879
-               OpStore %41796 %118753
-               OpBranch %38458
-      %33281 = OpLabel
-      %33284 = OpLoad %uint %30040
-      %33285 = OpBitwiseAnd %uint %33284 %uint_32768
-      %33286 = OpUGreaterThan %bool %33285 %uint_0
-               OpSelectionMerge %41693 None
-               OpSwitch %uint_0 %41677
-      %41677 = OpLabel
-               OpSelectionMerge %41692 None
-               OpBranchConditional %33286 %41679 %41687
-      %41687 = OpLabel
-      %41689 = OpISub %uint %126031 %int_1
-      %41690 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41689
-      %41691 = OpLoad %_arr_float_uint_2 %41690
-     %116941 = OpCompositeExtract %float %41691 0
-     %116942 = OpCompositeExtract %float %41691 1
-               OpBranch %41693
-      %41679 = OpLabel
-      %41681 = OpIAdd %uint %126033 %int_1
-      %41682 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41683 = OpLoad %float %41682
-               OpBranch %41693
-      %41692 = OpLabel
-               OpUnreachable
-      %41693 = OpLabel
-     %126887 = OpPhi %uint %41681 %41679 %126033 %41687
-     %126886 = OpPhi %uint %126031 %41679 %41689 %41687
-     %126884 = OpPhi %float %41683 %41679 %116941 %41687
-     %126883 = OpPhi %float %41683 %41679 %116942 %41687
-      %33290 = OpLoad %uint %30040
-      %33291 = OpBitwiseAnd %uint %33290 %uint_16384
-      %33292 = OpUGreaterThan %bool %33291 %uint_0
-               OpSelectionMerge %41716 None
-               OpSwitch %uint_0 %41700
-      %41700 = OpLabel
-               OpSelectionMerge %41715 None
-               OpBranchConditional %33292 %41702 %41710
-      %41710 = OpLabel
-      %41712 = OpISub %uint %126886 %int_1
-      %41713 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41712
-      %41714 = OpLoad %_arr_float_uint_2 %41713
-     %116932 = OpCompositeExtract %float %41714 0
-     %116933 = OpCompositeExtract %float %41714 1
-               OpBranch %41716
-      %41702 = OpLabel
-      %41704 = OpIAdd %uint %126887 %int_1
-      %41705 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126887
-      %41706 = OpLoad %float %41705
-               OpBranch %41716
-      %41715 = OpLabel
-               OpUnreachable
-      %41716 = OpLabel
-     %128369 = OpPhi %uint %41704 %41702 %126887 %41710
-     %126892 = OpPhi %uint %126886 %41702 %41712 %41710
-     %126889 = OpPhi %float %41706 %41702 %116932 %41710
-     %126888 = OpPhi %float %41706 %41702 %116933 %41710
-      %33298 = OpExtInst %float %1 FMax %126884 %126889
-      %33304 = OpExtInst %float %1 FMax %126883 %126888
-     %118742 = OpCompositeConstruct %_arr_float_uint_2 %33298 %33304
-      %41720 = OpIAdd %uint %126892 %int_1
-      %41722 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126892
-               OpStore %41722 %118742
-               OpBranch %38458
-      %33254 = OpLabel
-      %33257 = OpLoad %uint %30040
-      %33258 = OpBitwiseAnd %uint %33257 %uint_32768
-      %33259 = OpUGreaterThan %bool %33258 %uint_0
-               OpSelectionMerge %41642 None
-               OpSwitch %uint_0 %41626
-      %41626 = OpLabel
-               OpSelectionMerge %41641 None
-               OpBranchConditional %33259 %41628 %41636
-      %41636 = OpLabel
-      %41638 = OpISub %uint %126031 %int_1
-      %41639 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41638
-      %41640 = OpLoad %_arr_float_uint_2 %41639
-     %116959 = OpCompositeExtract %float %41640 0
-     %116960 = OpCompositeExtract %float %41640 1
-               OpBranch %41642
-      %41628 = OpLabel
-      %41630 = OpIAdd %uint %126033 %int_1
-      %41631 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41632 = OpLoad %float %41631
-               OpBranch %41642
-      %41641 = OpLabel
-               OpUnreachable
-      %41642 = OpLabel
-     %126900 = OpPhi %uint %41630 %41628 %126033 %41636
-     %126899 = OpPhi %uint %126031 %41628 %41638 %41636
-     %126897 = OpPhi %float %41632 %41628 %116959 %41636
-     %126896 = OpPhi %float %41632 %41628 %116960 %41636
-      %33263 = OpLoad %uint %30040
-      %33264 = OpBitwiseAnd %uint %33263 %uint_16384
-      %33265 = OpUGreaterThan %bool %33264 %uint_0
-               OpSelectionMerge %41665 None
-               OpSwitch %uint_0 %41649
-      %41649 = OpLabel
-               OpSelectionMerge %41664 None
-               OpBranchConditional %33265 %41651 %41659
-      %41659 = OpLabel
-      %41661 = OpISub %uint %126899 %int_1
-      %41662 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41661
-      %41663 = OpLoad %_arr_float_uint_2 %41662
-     %116950 = OpCompositeExtract %float %41663 0
-     %116951 = OpCompositeExtract %float %41663 1
-               OpBranch %41665
-      %41651 = OpLabel
-      %41653 = OpIAdd %uint %126900 %int_1
-      %41654 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126900
-      %41655 = OpLoad %float %41654
-               OpBranch %41665
-      %41664 = OpLabel
-               OpUnreachable
-      %41665 = OpLabel
-     %128368 = OpPhi %uint %41653 %41651 %126900 %41659
-     %126905 = OpPhi %uint %126899 %41651 %41661 %41659
-     %126902 = OpPhi %float %41655 %41651 %116950 %41659
-     %126901 = OpPhi %float %41655 %41651 %116951 %41659
-      %33271 = OpExtInst %float %1 FMin %126897 %126902
-      %33277 = OpExtInst %float %1 FMin %126896 %126901
-     %118731 = OpCompositeConstruct %_arr_float_uint_2 %33271 %33277
-      %41669 = OpIAdd %uint %126905 %int_1
-      %41671 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126905
-               OpStore %41671 %118731
-               OpBranch %38458
-      %33225 = OpLabel
-      %33228 = OpLoad %uint %30040
-      %33229 = OpBitwiseAnd %uint %33228 %uint_32768
-      %33230 = OpUGreaterThan %bool %33229 %uint_0
-               OpSelectionMerge %41614 None
-               OpSwitch %uint_0 %41598
-      %41598 = OpLabel
-               OpSelectionMerge %41613 None
-               OpBranchConditional %33230 %41600 %41608
-      %41608 = OpLabel
-      %41610 = OpISub %uint %126031 %int_1
-      %41611 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41610
-      %41612 = OpLoad %_arr_float_uint_2 %41611
-     %116968 = OpCompositeExtract %float %41612 0
-     %116969 = OpCompositeExtract %float %41612 1
-               OpBranch %41614
-      %41600 = OpLabel
-      %41602 = OpIAdd %uint %126033 %int_1
-      %41603 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41604 = OpLoad %float %41603
-               OpBranch %41614
-      %41613 = OpLabel
-               OpUnreachable
-      %41614 = OpLabel
-     %128367 = OpPhi %uint %41602 %41600 %126033 %41608
-     %126908 = OpPhi %uint %126031 %41600 %41610 %41608
-     %126907 = OpPhi %float %41604 %41600 %116968 %41608
-     %126906 = OpPhi %float %41604 %41600 %116969 %41608
-      %33234 = OpExtInst %float %1 Trunc %126907
-      %33238 = OpExtInst %float %1 Trunc %126906
-      %33244 = OpExtInst %float %1 FMin %33234 %33238
-      %33250 = OpExtInst %float %1 FMax %33234 %33238
-     %118722 = OpCompositeConstruct %_arr_float_uint_2 %33244 %33250
-      %41618 = OpIAdd %uint %126908 %int_1
-      %41620 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126908
-               OpStore %41620 %118722
-               OpBranch %38458
-      %33196 = OpLabel
-      %33199 = OpLoad %uint %30040
-      %33200 = OpBitwiseAnd %uint %33199 %uint_32768
-      %33201 = OpUGreaterThan %bool %33200 %uint_0
-               OpSelectionMerge %41586 None
-               OpSwitch %uint_0 %41570
-      %41570 = OpLabel
-               OpSelectionMerge %41585 None
-               OpBranchConditional %33201 %41572 %41580
-      %41580 = OpLabel
-      %41582 = OpISub %uint %126031 %int_1
-      %41583 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41582
-      %41584 = OpLoad %_arr_float_uint_2 %41583
-     %116977 = OpCompositeExtract %float %41584 0
-     %116978 = OpCompositeExtract %float %41584 1
-               OpBranch %41586
-      %41572 = OpLabel
-      %41574 = OpIAdd %uint %126033 %int_1
-      %41575 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41576 = OpLoad %float %41575
-               OpBranch %41586
-      %41585 = OpLabel
-               OpUnreachable
-      %41586 = OpLabel
-     %128366 = OpPhi %uint %41574 %41572 %126033 %41580
-     %126911 = OpPhi %uint %126031 %41572 %41582 %41580
-     %126910 = OpPhi %float %41576 %41572 %116977 %41580
-     %126909 = OpPhi %float %41576 %41572 %116978 %41580
-      %33205 = OpExtInst %float %1 Round %126910
-      %33209 = OpExtInst %float %1 Round %126909
-      %33215 = OpExtInst %float %1 FMin %33205 %33209
-      %33221 = OpExtInst %float %1 FMax %33205 %33209
-     %118713 = OpCompositeConstruct %_arr_float_uint_2 %33215 %33221
-      %41590 = OpIAdd %uint %126911 %int_1
-      %41592 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126911
-               OpStore %41592 %118713
-               OpBranch %38458
-      %33167 = OpLabel
-      %33170 = OpLoad %uint %30040
-      %33171 = OpBitwiseAnd %uint %33170 %uint_32768
-      %33172 = OpUGreaterThan %bool %33171 %uint_0
-               OpSelectionMerge %41558 None
-               OpSwitch %uint_0 %41542
-      %41542 = OpLabel
-               OpSelectionMerge %41557 None
-               OpBranchConditional %33172 %41544 %41552
-      %41552 = OpLabel
-      %41554 = OpISub %uint %126031 %int_1
-      %41555 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41554
-      %41556 = OpLoad %_arr_float_uint_2 %41555
-     %116986 = OpCompositeExtract %float %41556 0
-     %116987 = OpCompositeExtract %float %41556 1
-               OpBranch %41558
-      %41544 = OpLabel
-      %41546 = OpIAdd %uint %126033 %int_1
-      %41547 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41548 = OpLoad %float %41547
-               OpBranch %41558
-      %41557 = OpLabel
-               OpUnreachable
-      %41558 = OpLabel
-     %128365 = OpPhi %uint %41546 %41544 %126033 %41552
-     %126914 = OpPhi %uint %126031 %41544 %41554 %41552
-     %126913 = OpPhi %float %41548 %41544 %116986 %41552
-     %126912 = OpPhi %float %41548 %41544 %116987 %41552
-      %33176 = OpExtInst %float %1 Tanh %126913
-      %33180 = OpExtInst %float %1 Tanh %126912
-      %33186 = OpExtInst %float %1 FMin %33176 %33180
-      %33192 = OpExtInst %float %1 FMax %33176 %33180
-     %118704 = OpCompositeConstruct %_arr_float_uint_2 %33186 %33192
-      %41562 = OpIAdd %uint %126914 %int_1
-      %41564 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126914
-               OpStore %41564 %118704
-               OpBranch %38458
-      %33138 = OpLabel
-      %33141 = OpLoad %uint %30040
-      %33142 = OpBitwiseAnd %uint %33141 %uint_32768
-      %33143 = OpUGreaterThan %bool %33142 %uint_0
-               OpSelectionMerge %41530 None
-               OpSwitch %uint_0 %41514
-      %41514 = OpLabel
-               OpSelectionMerge %41529 None
-               OpBranchConditional %33143 %41516 %41524
-      %41524 = OpLabel
-      %41526 = OpISub %uint %126031 %int_1
-      %41527 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41526
-      %41528 = OpLoad %_arr_float_uint_2 %41527
-     %116995 = OpCompositeExtract %float %41528 0
-     %116996 = OpCompositeExtract %float %41528 1
-               OpBranch %41530
-      %41516 = OpLabel
-      %41518 = OpIAdd %uint %126033 %int_1
-      %41519 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41520 = OpLoad %float %41519
-               OpBranch %41530
-      %41529 = OpLabel
-               OpUnreachable
-      %41530 = OpLabel
-     %128364 = OpPhi %uint %41518 %41516 %126033 %41524
-     %126917 = OpPhi %uint %126031 %41516 %41526 %41524
-     %126916 = OpPhi %float %41520 %41516 %116995 %41524
-     %126915 = OpPhi %float %41520 %41516 %116996 %41524
-      %33147 = OpExtInst %float %1 Sinh %126916
-      %33151 = OpExtInst %float %1 Sinh %126915
-      %33157 = OpExtInst %float %1 FMin %33147 %33151
-      %33163 = OpExtInst %float %1 FMax %33147 %33151
-     %118695 = OpCompositeConstruct %_arr_float_uint_2 %33157 %33163
-      %41534 = OpIAdd %uint %126917 %int_1
-      %41536 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126917
-               OpStore %41536 %118695
-               OpBranch %38458
-      %33109 = OpLabel
-      %33112 = OpLoad %uint %30040
-      %33113 = OpBitwiseAnd %uint %33112 %uint_32768
-      %33114 = OpUGreaterThan %bool %33113 %uint_0
-               OpSelectionMerge %41502 None
-               OpSwitch %uint_0 %41486
-      %41486 = OpLabel
-               OpSelectionMerge %41501 None
-               OpBranchConditional %33114 %41488 %41496
-      %41496 = OpLabel
-      %41498 = OpISub %uint %126031 %int_1
-      %41499 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41498
-      %41500 = OpLoad %_arr_float_uint_2 %41499
-     %117004 = OpCompositeExtract %float %41500 0
-     %117005 = OpCompositeExtract %float %41500 1
-               OpBranch %41502
-      %41488 = OpLabel
-      %41490 = OpIAdd %uint %126033 %int_1
-      %41491 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41492 = OpLoad %float %41491
-               OpBranch %41502
-      %41501 = OpLabel
-               OpUnreachable
-      %41502 = OpLabel
-     %128363 = OpPhi %uint %41490 %41488 %126033 %41496
-     %126920 = OpPhi %uint %126031 %41488 %41498 %41496
-     %126919 = OpPhi %float %41492 %41488 %117004 %41496
-     %126918 = OpPhi %float %41492 %41488 %117005 %41496
-      %33118 = OpExtInst %float %1 Cosh %126919
-      %33122 = OpExtInst %float %1 Cosh %126918
-      %33128 = OpExtInst %float %1 FMin %33118 %33122
-      %33134 = OpExtInst %float %1 FMax %33118 %33122
-     %118686 = OpCompositeConstruct %_arr_float_uint_2 %33128 %33134
-      %41506 = OpIAdd %uint %126920 %int_1
-      %41508 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126920
-               OpStore %41508 %118686
-               OpBranch %38458
-      %33080 = OpLabel
-      %33083 = OpLoad %uint %30040
-      %33084 = OpBitwiseAnd %uint %33083 %uint_32768
-      %33085 = OpUGreaterThan %bool %33084 %uint_0
-               OpSelectionMerge %41474 None
-               OpSwitch %uint_0 %41458
-      %41458 = OpLabel
-               OpSelectionMerge %41473 None
-               OpBranchConditional %33085 %41460 %41468
-      %41468 = OpLabel
-      %41470 = OpISub %uint %126031 %int_1
-      %41471 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41470
-      %41472 = OpLoad %_arr_float_uint_2 %41471
-     %117013 = OpCompositeExtract %float %41472 0
-     %117014 = OpCompositeExtract %float %41472 1
-               OpBranch %41474
-      %41460 = OpLabel
-      %41462 = OpIAdd %uint %126033 %int_1
-      %41463 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41464 = OpLoad %float %41463
-               OpBranch %41474
-      %41473 = OpLabel
-               OpUnreachable
-      %41474 = OpLabel
-     %128362 = OpPhi %uint %41462 %41460 %126033 %41468
-     %126923 = OpPhi %uint %126031 %41460 %41470 %41468
-     %126922 = OpPhi %float %41464 %41460 %117013 %41468
-     %126921 = OpPhi %float %41464 %41460 %117014 %41468
-      %33089 = OpExtInst %float %1 Atanh %126922
-      %33093 = OpExtInst %float %1 Atanh %126921
-      %33099 = OpExtInst %float %1 FMin %33089 %33093
-      %33105 = OpExtInst %float %1 FMax %33089 %33093
-     %118677 = OpCompositeConstruct %_arr_float_uint_2 %33099 %33105
-      %41478 = OpIAdd %uint %126923 %int_1
-      %41480 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126923
-               OpStore %41480 %118677
-               OpBranch %38458
-      %33051 = OpLabel
-      %33054 = OpLoad %uint %30040
-      %33055 = OpBitwiseAnd %uint %33054 %uint_32768
-      %33056 = OpUGreaterThan %bool %33055 %uint_0
-               OpSelectionMerge %41446 None
-               OpSwitch %uint_0 %41430
-      %41430 = OpLabel
-               OpSelectionMerge %41445 None
-               OpBranchConditional %33056 %41432 %41440
-      %41440 = OpLabel
-      %41442 = OpISub %uint %126031 %int_1
-      %41443 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41442
-      %41444 = OpLoad %_arr_float_uint_2 %41443
-     %117022 = OpCompositeExtract %float %41444 0
-     %117023 = OpCompositeExtract %float %41444 1
-               OpBranch %41446
-      %41432 = OpLabel
-      %41434 = OpIAdd %uint %126033 %int_1
-      %41435 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41436 = OpLoad %float %41435
-               OpBranch %41446
-      %41445 = OpLabel
-               OpUnreachable
-      %41446 = OpLabel
-     %128361 = OpPhi %uint %41434 %41432 %126033 %41440
-     %126926 = OpPhi %uint %126031 %41432 %41442 %41440
-     %126925 = OpPhi %float %41436 %41432 %117022 %41440
-     %126924 = OpPhi %float %41436 %41432 %117023 %41440
-      %33060 = OpExtInst %float %1 Asinh %126925
-      %33064 = OpExtInst %float %1 Asinh %126924
-      %33070 = OpExtInst %float %1 FMin %33060 %33064
-      %33076 = OpExtInst %float %1 FMax %33060 %33064
-     %118668 = OpCompositeConstruct %_arr_float_uint_2 %33070 %33076
-      %41450 = OpIAdd %uint %126926 %int_1
-      %41452 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126926
-               OpStore %41452 %118668
-               OpBranch %38458
-      %33022 = OpLabel
-      %33025 = OpLoad %uint %30040
-      %33026 = OpBitwiseAnd %uint %33025 %uint_32768
-      %33027 = OpUGreaterThan %bool %33026 %uint_0
-               OpSelectionMerge %41418 None
-               OpSwitch %uint_0 %41402
-      %41402 = OpLabel
-               OpSelectionMerge %41417 None
-               OpBranchConditional %33027 %41404 %41412
-      %41412 = OpLabel
-      %41414 = OpISub %uint %126031 %int_1
-      %41415 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41414
-      %41416 = OpLoad %_arr_float_uint_2 %41415
-     %117031 = OpCompositeExtract %float %41416 0
-     %117032 = OpCompositeExtract %float %41416 1
-               OpBranch %41418
-      %41404 = OpLabel
-      %41406 = OpIAdd %uint %126033 %int_1
-      %41407 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41408 = OpLoad %float %41407
-               OpBranch %41418
-      %41417 = OpLabel
-               OpUnreachable
-      %41418 = OpLabel
-     %128360 = OpPhi %uint %41406 %41404 %126033 %41412
-     %126929 = OpPhi %uint %126031 %41404 %41414 %41412
-     %126928 = OpPhi %float %41408 %41404 %117031 %41412
-     %126927 = OpPhi %float %41408 %41404 %117032 %41412
-      %33031 = OpExtInst %float %1 Acosh %126928
-      %33035 = OpExtInst %float %1 Acosh %126927
-      %33041 = OpExtInst %float %1 FMin %33031 %33035
-      %33047 = OpExtInst %float %1 FMax %33031 %33035
-     %118659 = OpCompositeConstruct %_arr_float_uint_2 %33041 %33047
-      %41422 = OpIAdd %uint %126929 %int_1
-      %41424 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126929
-               OpStore %41424 %118659
-               OpBranch %38458
-      %32993 = OpLabel
-      %32996 = OpLoad %uint %30040
-      %32997 = OpBitwiseAnd %uint %32996 %uint_32768
-      %32998 = OpUGreaterThan %bool %32997 %uint_0
-               OpSelectionMerge %41390 None
-               OpSwitch %uint_0 %41374
-      %41374 = OpLabel
-               OpSelectionMerge %41389 None
-               OpBranchConditional %32998 %41376 %41384
-      %41384 = OpLabel
-      %41386 = OpISub %uint %126031 %int_1
-      %41387 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41386
-      %41388 = OpLoad %_arr_float_uint_2 %41387
-     %117040 = OpCompositeExtract %float %41388 0
-     %117041 = OpCompositeExtract %float %41388 1
-               OpBranch %41390
-      %41376 = OpLabel
-      %41378 = OpIAdd %uint %126033 %int_1
-      %41379 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41380 = OpLoad %float %41379
-               OpBranch %41390
-      %41389 = OpLabel
-               OpUnreachable
-      %41390 = OpLabel
-     %128359 = OpPhi %uint %41378 %41376 %126033 %41384
-     %126932 = OpPhi %uint %126031 %41376 %41386 %41384
-     %126931 = OpPhi %float %41380 %41376 %117040 %41384
-     %126930 = OpPhi %float %41380 %41376 %117041 %41384
-      %33002 = OpExtInst %float %1 Atan %126931
-      %33006 = OpExtInst %float %1 Atan %126930
-      %33012 = OpExtInst %float %1 FMin %33002 %33006
-      %33018 = OpExtInst %float %1 FMax %33002 %33006
-     %118650 = OpCompositeConstruct %_arr_float_uint_2 %33012 %33018
-      %41394 = OpIAdd %uint %126932 %int_1
-      %41396 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126932
-               OpStore %41396 %118650
-               OpBranch %38458
-      %32964 = OpLabel
-      %32967 = OpLoad %uint %30040
-      %32968 = OpBitwiseAnd %uint %32967 %uint_32768
-      %32969 = OpUGreaterThan %bool %32968 %uint_0
-               OpSelectionMerge %41362 None
-               OpSwitch %uint_0 %41346
-      %41346 = OpLabel
-               OpSelectionMerge %41361 None
-               OpBranchConditional %32969 %41348 %41356
-      %41356 = OpLabel
-      %41358 = OpISub %uint %126031 %int_1
-      %41359 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41358
-      %41360 = OpLoad %_arr_float_uint_2 %41359
-     %117049 = OpCompositeExtract %float %41360 0
-     %117050 = OpCompositeExtract %float %41360 1
-               OpBranch %41362
-      %41348 = OpLabel
-      %41350 = OpIAdd %uint %126033 %int_1
-      %41351 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41352 = OpLoad %float %41351
-               OpBranch %41362
-      %41361 = OpLabel
-               OpUnreachable
-      %41362 = OpLabel
-     %128358 = OpPhi %uint %41350 %41348 %126033 %41356
-     %126935 = OpPhi %uint %126031 %41348 %41358 %41356
-     %126934 = OpPhi %float %41352 %41348 %117049 %41356
-     %126933 = OpPhi %float %41352 %41348 %117050 %41356
-      %32973 = OpExtInst %float %1 Acos %126934
-      %32977 = OpExtInst %float %1 Acos %126933
-      %32983 = OpExtInst %float %1 FMin %32973 %32977
-      %32989 = OpExtInst %float %1 FMax %32973 %32977
-     %118641 = OpCompositeConstruct %_arr_float_uint_2 %32983 %32989
-      %41366 = OpIAdd %uint %126935 %int_1
-      %41368 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126935
-               OpStore %41368 %118641
-               OpBranch %38458
-      %32935 = OpLabel
-      %32938 = OpLoad %uint %30040
-      %32939 = OpBitwiseAnd %uint %32938 %uint_32768
-      %32940 = OpUGreaterThan %bool %32939 %uint_0
-               OpSelectionMerge %41334 None
-               OpSwitch %uint_0 %41318
-      %41318 = OpLabel
-               OpSelectionMerge %41333 None
-               OpBranchConditional %32940 %41320 %41328
-      %41328 = OpLabel
-      %41330 = OpISub %uint %126031 %int_1
-      %41331 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41330
-      %41332 = OpLoad %_arr_float_uint_2 %41331
-     %117058 = OpCompositeExtract %float %41332 0
-     %117059 = OpCompositeExtract %float %41332 1
-               OpBranch %41334
-      %41320 = OpLabel
-      %41322 = OpIAdd %uint %126033 %int_1
-      %41323 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41324 = OpLoad %float %41323
-               OpBranch %41334
-      %41333 = OpLabel
-               OpUnreachable
-      %41334 = OpLabel
-     %128357 = OpPhi %uint %41322 %41320 %126033 %41328
-     %126938 = OpPhi %uint %126031 %41320 %41330 %41328
-     %126937 = OpPhi %float %41324 %41320 %117058 %41328
-     %126936 = OpPhi %float %41324 %41320 %117059 %41328
-      %32944 = OpExtInst %float %1 Asin %126937
-      %32948 = OpExtInst %float %1 Asin %126936
-      %32954 = OpExtInst %float %1 FMin %32944 %32948
-      %32960 = OpExtInst %float %1 FMax %32944 %32948
-     %118632 = OpCompositeConstruct %_arr_float_uint_2 %32954 %32960
-      %41338 = OpIAdd %uint %126938 %int_1
-      %41340 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126938
-               OpStore %41340 %118632
-               OpBranch %38458
-      %32906 = OpLabel
-      %32909 = OpLoad %uint %30040
-      %32910 = OpBitwiseAnd %uint %32909 %uint_32768
-      %32911 = OpUGreaterThan %bool %32910 %uint_0
-               OpSelectionMerge %41306 None
-               OpSwitch %uint_0 %41290
-      %41290 = OpLabel
-               OpSelectionMerge %41305 None
-               OpBranchConditional %32911 %41292 %41300
-      %41300 = OpLabel
-      %41302 = OpISub %uint %126031 %int_1
-      %41303 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41302
-      %41304 = OpLoad %_arr_float_uint_2 %41303
-     %117067 = OpCompositeExtract %float %41304 0
-     %117068 = OpCompositeExtract %float %41304 1
-               OpBranch %41306
-      %41292 = OpLabel
-      %41294 = OpIAdd %uint %126033 %int_1
-      %41295 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41296 = OpLoad %float %41295
-               OpBranch %41306
-      %41305 = OpLabel
-               OpUnreachable
-      %41306 = OpLabel
-     %128356 = OpPhi %uint %41294 %41292 %126033 %41300
-     %126941 = OpPhi %uint %126031 %41292 %41302 %41300
-     %126940 = OpPhi %float %41296 %41292 %117067 %41300
-     %126939 = OpPhi %float %41296 %41292 %117068 %41300
-      %32915 = OpExtInst %float %1 Tan %126940
-      %32919 = OpExtInst %float %1 Tan %126939
-      %32925 = OpExtInst %float %1 FMin %32915 %32919
-      %32931 = OpExtInst %float %1 FMax %32915 %32919
-     %118623 = OpCompositeConstruct %_arr_float_uint_2 %32925 %32931
-      %41310 = OpIAdd %uint %126941 %int_1
-      %41312 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126941
-               OpStore %41312 %118623
-               OpBranch %38458
-      %32877 = OpLabel
-      %32880 = OpLoad %uint %30040
-      %32881 = OpBitwiseAnd %uint %32880 %uint_32768
-      %32882 = OpUGreaterThan %bool %32881 %uint_0
-               OpSelectionMerge %41278 None
-               OpSwitch %uint_0 %41262
-      %41262 = OpLabel
-               OpSelectionMerge %41277 None
-               OpBranchConditional %32882 %41264 %41272
-      %41272 = OpLabel
-      %41274 = OpISub %uint %126031 %int_1
-      %41275 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41274
-      %41276 = OpLoad %_arr_float_uint_2 %41275
-     %117076 = OpCompositeExtract %float %41276 0
-     %117077 = OpCompositeExtract %float %41276 1
-               OpBranch %41278
-      %41264 = OpLabel
-      %41266 = OpIAdd %uint %126033 %int_1
-      %41267 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41268 = OpLoad %float %41267
-               OpBranch %41278
-      %41277 = OpLabel
-               OpUnreachable
-      %41278 = OpLabel
-     %128355 = OpPhi %uint %41266 %41264 %126033 %41272
-     %126944 = OpPhi %uint %126031 %41264 %41274 %41272
-     %126943 = OpPhi %float %41268 %41264 %117076 %41272
-     %126942 = OpPhi %float %41268 %41264 %117077 %41272
-      %32886 = OpExtInst %float %1 Cos %126943
-      %32890 = OpExtInst %float %1 Cos %126942
-      %32896 = OpExtInst %float %1 FMin %32886 %32890
-      %32902 = OpExtInst %float %1 FMax %32886 %32890
-     %118614 = OpCompositeConstruct %_arr_float_uint_2 %32896 %32902
-      %41282 = OpIAdd %uint %126944 %int_1
-      %41284 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126944
-               OpStore %41284 %118614
-               OpBranch %38458
-      %32848 = OpLabel
-      %32851 = OpLoad %uint %30040
-      %32852 = OpBitwiseAnd %uint %32851 %uint_32768
-      %32853 = OpUGreaterThan %bool %32852 %uint_0
-               OpSelectionMerge %41250 None
-               OpSwitch %uint_0 %41234
-      %41234 = OpLabel
-               OpSelectionMerge %41249 None
-               OpBranchConditional %32853 %41236 %41244
-      %41244 = OpLabel
-      %41246 = OpISub %uint %126031 %int_1
-      %41247 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41246
-      %41248 = OpLoad %_arr_float_uint_2 %41247
-     %117085 = OpCompositeExtract %float %41248 0
-     %117086 = OpCompositeExtract %float %41248 1
-               OpBranch %41250
-      %41236 = OpLabel
-      %41238 = OpIAdd %uint %126033 %int_1
-      %41239 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41240 = OpLoad %float %41239
-               OpBranch %41250
-      %41249 = OpLabel
-               OpUnreachable
-      %41250 = OpLabel
-     %128354 = OpPhi %uint %41238 %41236 %126033 %41244
-     %126947 = OpPhi %uint %126031 %41236 %41246 %41244
-     %126946 = OpPhi %float %41240 %41236 %117085 %41244
-     %126945 = OpPhi %float %41240 %41236 %117086 %41244
-      %32857 = OpExtInst %float %1 Sin %126946
-      %32861 = OpExtInst %float %1 Sin %126945
-      %32867 = OpExtInst %float %1 FMin %32857 %32861
-      %32873 = OpExtInst %float %1 FMax %32857 %32861
-     %118605 = OpCompositeConstruct %_arr_float_uint_2 %32867 %32873
-      %41254 = OpIAdd %uint %126947 %int_1
-      %41256 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126947
-               OpStore %41256 %118605
-               OpBranch %38458
-      %32819 = OpLabel
-      %32822 = OpLoad %uint %30040
-      %32823 = OpBitwiseAnd %uint %32822 %uint_32768
-      %32824 = OpUGreaterThan %bool %32823 %uint_0
-               OpSelectionMerge %41222 None
-               OpSwitch %uint_0 %41206
-      %41206 = OpLabel
-               OpSelectionMerge %41221 None
-               OpBranchConditional %32824 %41208 %41216
-      %41216 = OpLabel
-      %41218 = OpISub %uint %126031 %int_1
-      %41219 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41218
-      %41220 = OpLoad %_arr_float_uint_2 %41219
-     %117094 = OpCompositeExtract %float %41220 0
-     %117095 = OpCompositeExtract %float %41220 1
-               OpBranch %41222
-      %41208 = OpLabel
-      %41210 = OpIAdd %uint %126033 %int_1
-      %41211 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41212 = OpLoad %float %41211
-               OpBranch %41222
-      %41221 = OpLabel
-               OpUnreachable
-      %41222 = OpLabel
-     %128353 = OpPhi %uint %41210 %41208 %126033 %41216
-     %126950 = OpPhi %uint %126031 %41208 %41218 %41216
-     %126949 = OpPhi %float %41212 %41208 %117094 %41216
-     %126948 = OpPhi %float %41212 %41208 %117095 %41216
-      %32828 = OpExtInst %float %1 Log2 %126949
-      %32832 = OpExtInst %float %1 Log2 %126948
-      %32838 = OpExtInst %float %1 FMin %32828 %32832
-      %32844 = OpExtInst %float %1 FMax %32828 %32832
-     %118596 = OpCompositeConstruct %_arr_float_uint_2 %32838 %32844
-      %41226 = OpIAdd %uint %126950 %int_1
-      %41228 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126950
-               OpStore %41228 %118596
-               OpBranch %38458
-      %32790 = OpLabel
-      %32793 = OpLoad %uint %30040
-      %32794 = OpBitwiseAnd %uint %32793 %uint_32768
-      %32795 = OpUGreaterThan %bool %32794 %uint_0
-               OpSelectionMerge %41194 None
-               OpSwitch %uint_0 %41178
-      %41178 = OpLabel
-               OpSelectionMerge %41193 None
-               OpBranchConditional %32795 %41180 %41188
-      %41188 = OpLabel
-      %41190 = OpISub %uint %126031 %int_1
-      %41191 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41190
-      %41192 = OpLoad %_arr_float_uint_2 %41191
-     %117103 = OpCompositeExtract %float %41192 0
-     %117104 = OpCompositeExtract %float %41192 1
-               OpBranch %41194
-      %41180 = OpLabel
-      %41182 = OpIAdd %uint %126033 %int_1
-      %41183 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41184 = OpLoad %float %41183
-               OpBranch %41194
-      %41193 = OpLabel
-               OpUnreachable
-      %41194 = OpLabel
-     %128352 = OpPhi %uint %41182 %41180 %126033 %41188
-     %126953 = OpPhi %uint %126031 %41180 %41190 %41188
-     %126952 = OpPhi %float %41184 %41180 %117103 %41188
-     %126951 = OpPhi %float %41184 %41180 %117104 %41188
-      %32799 = OpExtInst %float %1 Log %126952
-      %32803 = OpExtInst %float %1 Log %126951
-      %32809 = OpExtInst %float %1 FMin %32799 %32803
-      %32815 = OpExtInst %float %1 FMax %32799 %32803
-     %118587 = OpCompositeConstruct %_arr_float_uint_2 %32809 %32815
-      %41198 = OpIAdd %uint %126953 %int_1
-      %41200 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126953
-               OpStore %41200 %118587
-               OpBranch %38458
-      %32761 = OpLabel
-      %32764 = OpLoad %uint %30040
-      %32765 = OpBitwiseAnd %uint %32764 %uint_32768
-      %32766 = OpUGreaterThan %bool %32765 %uint_0
-               OpSelectionMerge %41166 None
-               OpSwitch %uint_0 %41150
-      %41150 = OpLabel
-               OpSelectionMerge %41165 None
-               OpBranchConditional %32766 %41152 %41160
-      %41160 = OpLabel
-      %41162 = OpISub %uint %126031 %int_1
-      %41163 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41162
-      %41164 = OpLoad %_arr_float_uint_2 %41163
-     %117112 = OpCompositeExtract %float %41164 0
-     %117113 = OpCompositeExtract %float %41164 1
-               OpBranch %41166
-      %41152 = OpLabel
-      %41154 = OpIAdd %uint %126033 %int_1
-      %41155 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41156 = OpLoad %float %41155
-               OpBranch %41166
-      %41165 = OpLabel
-               OpUnreachable
-      %41166 = OpLabel
-     %128351 = OpPhi %uint %41154 %41152 %126033 %41160
-     %126956 = OpPhi %uint %126031 %41152 %41162 %41160
-     %126955 = OpPhi %float %41156 %41152 %117112 %41160
-     %126954 = OpPhi %float %41156 %41152 %117113 %41160
-      %32770 = OpExtInst %float %1 Exp2 %126955
-      %32774 = OpExtInst %float %1 Exp2 %126954
-      %32780 = OpExtInst %float %1 FMin %32770 %32774
-      %32786 = OpExtInst %float %1 FMax %32770 %32774
-     %118578 = OpCompositeConstruct %_arr_float_uint_2 %32780 %32786
-      %41170 = OpIAdd %uint %126956 %int_1
-      %41172 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126956
-               OpStore %41172 %118578
-               OpBranch %38458
-      %32732 = OpLabel
-      %32735 = OpLoad %uint %30040
-      %32736 = OpBitwiseAnd %uint %32735 %uint_32768
-      %32737 = OpUGreaterThan %bool %32736 %uint_0
-               OpSelectionMerge %41138 None
-               OpSwitch %uint_0 %41122
-      %41122 = OpLabel
-               OpSelectionMerge %41137 None
-               OpBranchConditional %32737 %41124 %41132
-      %41132 = OpLabel
-      %41134 = OpISub %uint %126031 %int_1
-      %41135 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41134
-      %41136 = OpLoad %_arr_float_uint_2 %41135
-     %117121 = OpCompositeExtract %float %41136 0
-     %117122 = OpCompositeExtract %float %41136 1
-               OpBranch %41138
-      %41124 = OpLabel
-      %41126 = OpIAdd %uint %126033 %int_1
-      %41127 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41128 = OpLoad %float %41127
-               OpBranch %41138
-      %41137 = OpLabel
-               OpUnreachable
-      %41138 = OpLabel
-     %128350 = OpPhi %uint %41126 %41124 %126033 %41132
-     %126959 = OpPhi %uint %126031 %41124 %41134 %41132
-     %126958 = OpPhi %float %41128 %41124 %117121 %41132
-     %126957 = OpPhi %float %41128 %41124 %117122 %41132
-      %32741 = OpExtInst %float %1 Exp %126958
-      %32745 = OpExtInst %float %1 Exp %126957
-      %32751 = OpExtInst %float %1 FMin %32741 %32745
-      %32757 = OpExtInst %float %1 FMax %32741 %32745
-     %118569 = OpCompositeConstruct %_arr_float_uint_2 %32751 %32757
-      %41142 = OpIAdd %uint %126959 %int_1
-      %41144 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126959
-               OpStore %41144 %118569
-               OpBranch %38458
-      %32703 = OpLabel
-      %32706 = OpLoad %uint %30040
-      %32707 = OpBitwiseAnd %uint %32706 %uint_32768
-      %32708 = OpUGreaterThan %bool %32707 %uint_0
-               OpSelectionMerge %41110 None
-               OpSwitch %uint_0 %41094
-      %41094 = OpLabel
-               OpSelectionMerge %41109 None
-               OpBranchConditional %32708 %41096 %41104
-      %41104 = OpLabel
-      %41106 = OpISub %uint %126031 %int_1
-      %41107 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41106
-      %41108 = OpLoad %_arr_float_uint_2 %41107
-     %117130 = OpCompositeExtract %float %41108 0
-     %117131 = OpCompositeExtract %float %41108 1
-               OpBranch %41110
-      %41096 = OpLabel
-      %41098 = OpIAdd %uint %126033 %int_1
-      %41099 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41100 = OpLoad %float %41099
-               OpBranch %41110
-      %41109 = OpLabel
-               OpUnreachable
-      %41110 = OpLabel
-     %128349 = OpPhi %uint %41098 %41096 %126033 %41104
-     %126962 = OpPhi %uint %126031 %41096 %41106 %41104
-     %126961 = OpPhi %float %41100 %41096 %117130 %41104
-     %126960 = OpPhi %float %41100 %41096 %117131 %41104
-      %32712 = OpExtInst %float %1 InverseSqrt %126961
-      %32716 = OpExtInst %float %1 InverseSqrt %126960
-      %32722 = OpExtInst %float %1 FMin %32712 %32716
-      %32728 = OpExtInst %float %1 FMax %32712 %32716
-     %118560 = OpCompositeConstruct %_arr_float_uint_2 %32722 %32728
-      %41114 = OpIAdd %uint %126962 %int_1
-      %41116 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126962
-               OpStore %41116 %118560
-               OpBranch %38458
-      %32674 = OpLabel
-      %32677 = OpLoad %uint %30040
-      %32678 = OpBitwiseAnd %uint %32677 %uint_32768
-      %32679 = OpUGreaterThan %bool %32678 %uint_0
-               OpSelectionMerge %41082 None
-               OpSwitch %uint_0 %41066
-      %41066 = OpLabel
-               OpSelectionMerge %41081 None
-               OpBranchConditional %32679 %41068 %41076
-      %41076 = OpLabel
-      %41078 = OpISub %uint %126031 %int_1
-      %41079 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41078
-      %41080 = OpLoad %_arr_float_uint_2 %41079
-     %117139 = OpCompositeExtract %float %41080 0
-     %117140 = OpCompositeExtract %float %41080 1
-               OpBranch %41082
-      %41068 = OpLabel
-      %41070 = OpIAdd %uint %126033 %int_1
-      %41071 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41072 = OpLoad %float %41071
-               OpBranch %41082
-      %41081 = OpLabel
-               OpUnreachable
-      %41082 = OpLabel
-     %128348 = OpPhi %uint %41070 %41068 %126033 %41076
-     %126965 = OpPhi %uint %126031 %41068 %41078 %41076
-     %126964 = OpPhi %float %41072 %41068 %117139 %41076
-     %126963 = OpPhi %float %41072 %41068 %117140 %41076
-      %32683 = OpExtInst %float %1 Sqrt %126964
-      %32687 = OpExtInst %float %1 Sqrt %126963
-      %32693 = OpExtInst %float %1 FMin %32683 %32687
-      %32699 = OpExtInst %float %1 FMax %32683 %32687
-     %118551 = OpCompositeConstruct %_arr_float_uint_2 %32693 %32699
-      %41086 = OpIAdd %uint %126965 %int_1
-      %41088 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126965
-               OpStore %41088 %118551
-               OpBranch %38458
-      %32645 = OpLabel
-      %32648 = OpLoad %uint %30040
-      %32649 = OpBitwiseAnd %uint %32648 %uint_32768
-      %32650 = OpUGreaterThan %bool %32649 %uint_0
-               OpSelectionMerge %41054 None
-               OpSwitch %uint_0 %41038
-      %41038 = OpLabel
-               OpSelectionMerge %41053 None
-               OpBranchConditional %32650 %41040 %41048
-      %41048 = OpLabel
-      %41050 = OpISub %uint %126031 %int_1
-      %41051 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41050
-      %41052 = OpLoad %_arr_float_uint_2 %41051
-     %117148 = OpCompositeExtract %float %41052 0
-     %117149 = OpCompositeExtract %float %41052 1
-               OpBranch %41054
-      %41040 = OpLabel
-      %41042 = OpIAdd %uint %126033 %int_1
-      %41043 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41044 = OpLoad %float %41043
-               OpBranch %41054
-      %41053 = OpLabel
-               OpUnreachable
-      %41054 = OpLabel
-     %128347 = OpPhi %uint %41042 %41040 %126033 %41048
-     %126968 = OpPhi %uint %126031 %41040 %41050 %41048
-     %126967 = OpPhi %float %41044 %41040 %117148 %41048
-     %126966 = OpPhi %float %41044 %41040 %117149 %41048
-      %32654 = OpExtInst %float %1 Fract %126967
-      %32658 = OpExtInst %float %1 Fract %126966
-      %32664 = OpExtInst %float %1 FMin %32654 %32658
-      %32670 = OpExtInst %float %1 FMax %32654 %32658
-     %118542 = OpCompositeConstruct %_arr_float_uint_2 %32664 %32670
-      %41058 = OpIAdd %uint %126968 %int_1
-      %41060 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126968
-               OpStore %41060 %118542
-               OpBranch %38458
-      %32616 = OpLabel
-      %32619 = OpLoad %uint %30040
-      %32620 = OpBitwiseAnd %uint %32619 %uint_32768
-      %32621 = OpUGreaterThan %bool %32620 %uint_0
-               OpSelectionMerge %41026 None
-               OpSwitch %uint_0 %41010
-      %41010 = OpLabel
-               OpSelectionMerge %41025 None
-               OpBranchConditional %32621 %41012 %41020
-      %41020 = OpLabel
-      %41022 = OpISub %uint %126031 %int_1
-      %41023 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %41022
-      %41024 = OpLoad %_arr_float_uint_2 %41023
-     %117157 = OpCompositeExtract %float %41024 0
-     %117158 = OpCompositeExtract %float %41024 1
-               OpBranch %41026
-      %41012 = OpLabel
-      %41014 = OpIAdd %uint %126033 %int_1
-      %41015 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %41016 = OpLoad %float %41015
-               OpBranch %41026
-      %41025 = OpLabel
-               OpUnreachable
-      %41026 = OpLabel
-     %128346 = OpPhi %uint %41014 %41012 %126033 %41020
-     %126971 = OpPhi %uint %126031 %41012 %41022 %41020
-     %126970 = OpPhi %float %41016 %41012 %117157 %41020
-     %126969 = OpPhi %float %41016 %41012 %117158 %41020
-      %32625 = OpExtInst %float %1 Ceil %126970
-      %32629 = OpExtInst %float %1 Ceil %126969
-      %32635 = OpExtInst %float %1 FMin %32625 %32629
-      %32641 = OpExtInst %float %1 FMax %32625 %32629
-     %118533 = OpCompositeConstruct %_arr_float_uint_2 %32635 %32641
-      %41030 = OpIAdd %uint %126971 %int_1
-      %41032 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126971
-               OpStore %41032 %118533
-               OpBranch %38458
-      %32587 = OpLabel
-      %32590 = OpLoad %uint %30040
-      %32591 = OpBitwiseAnd %uint %32590 %uint_32768
-      %32592 = OpUGreaterThan %bool %32591 %uint_0
-               OpSelectionMerge %40998 None
-               OpSwitch %uint_0 %40982
-      %40982 = OpLabel
-               OpSelectionMerge %40997 None
-               OpBranchConditional %32592 %40984 %40992
-      %40992 = OpLabel
-      %40994 = OpISub %uint %126031 %int_1
-      %40995 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %40994
-      %40996 = OpLoad %_arr_float_uint_2 %40995
-     %117166 = OpCompositeExtract %float %40996 0
-     %117167 = OpCompositeExtract %float %40996 1
-               OpBranch %40998
-      %40984 = OpLabel
-      %40986 = OpIAdd %uint %126033 %int_1
-      %40987 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %40988 = OpLoad %float %40987
-               OpBranch %40998
-      %40997 = OpLabel
-               OpUnreachable
-      %40998 = OpLabel
-     %128345 = OpPhi %uint %40986 %40984 %126033 %40992
-     %126974 = OpPhi %uint %126031 %40984 %40994 %40992
-     %126973 = OpPhi %float %40988 %40984 %117166 %40992
-     %126972 = OpPhi %float %40988 %40984 %117167 %40992
-      %32596 = OpExtInst %float %1 Floor %126973
-      %32600 = OpExtInst %float %1 Floor %126972
-      %32606 = OpExtInst %float %1 FMin %32596 %32600
-      %32612 = OpExtInst %float %1 FMax %32596 %32600
-     %118524 = OpCompositeConstruct %_arr_float_uint_2 %32606 %32612
-      %41002 = OpIAdd %uint %126974 %int_1
-      %41004 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126974
-               OpStore %41004 %118524
-               OpBranch %38458
-      %32558 = OpLabel
-      %32561 = OpLoad %uint %30040
-      %32562 = OpBitwiseAnd %uint %32561 %uint_32768
-      %32563 = OpUGreaterThan %bool %32562 %uint_0
-               OpSelectionMerge %40970 None
-               OpSwitch %uint_0 %40954
-      %40954 = OpLabel
-               OpSelectionMerge %40969 None
-               OpBranchConditional %32563 %40956 %40964
-      %40964 = OpLabel
-      %40966 = OpISub %uint %126031 %int_1
-      %40967 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %40966
-      %40968 = OpLoad %_arr_float_uint_2 %40967
-     %117175 = OpCompositeExtract %float %40968 0
-     %117176 = OpCompositeExtract %float %40968 1
-               OpBranch %40970
-      %40956 = OpLabel
-      %40958 = OpIAdd %uint %126033 %int_1
-      %40959 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %40960 = OpLoad %float %40959
-               OpBranch %40970
-      %40969 = OpLabel
-               OpUnreachable
-      %40970 = OpLabel
-     %128344 = OpPhi %uint %40958 %40956 %126033 %40964
-     %126977 = OpPhi %uint %126031 %40956 %40966 %40964
-     %126976 = OpPhi %float %40960 %40956 %117175 %40964
-     %126975 = OpPhi %float %40960 %40956 %117176 %40964
-      %32567 = OpExtInst %float %1 FSign %126976
-      %32571 = OpExtInst %float %1 FSign %126975
-      %32577 = OpExtInst %float %1 FMin %32567 %32571
-      %32583 = OpExtInst %float %1 FMax %32567 %32571
-     %118515 = OpCompositeConstruct %_arr_float_uint_2 %32577 %32583
-      %40974 = OpIAdd %uint %126977 %int_1
-      %40976 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126977
-               OpStore %40976 %118515
-               OpBranch %38458
-      %32529 = OpLabel
-      %32532 = OpLoad %uint %30040
-      %32533 = OpBitwiseAnd %uint %32532 %uint_32768
-      %32534 = OpUGreaterThan %bool %32533 %uint_0
-               OpSelectionMerge %40942 None
-               OpSwitch %uint_0 %40926
-      %40926 = OpLabel
-               OpSelectionMerge %40941 None
-               OpBranchConditional %32534 %40928 %40936
-      %40936 = OpLabel
-      %40938 = OpISub %uint %126031 %int_1
-      %40939 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %40938
-      %40940 = OpLoad %_arr_float_uint_2 %40939
-     %117184 = OpCompositeExtract %float %40940 0
-     %117185 = OpCompositeExtract %float %40940 1
-               OpBranch %40942
-      %40928 = OpLabel
-      %40930 = OpIAdd %uint %126033 %int_1
-      %40931 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %40932 = OpLoad %float %40931
-               OpBranch %40942
-      %40941 = OpLabel
-               OpUnreachable
-      %40942 = OpLabel
-     %128343 = OpPhi %uint %40930 %40928 %126033 %40936
-     %126980 = OpPhi %uint %126031 %40928 %40938 %40936
-     %126979 = OpPhi %float %40932 %40928 %117184 %40936
-     %126978 = OpPhi %float %40932 %40928 %117185 %40936
-      %32538 = OpExtInst %float %1 FAbs %126979
-      %32542 = OpExtInst %float %1 FAbs %126978
-      %32548 = OpExtInst %float %1 FMin %32538 %32542
-      %32554 = OpExtInst %float %1 FMax %32538 %32542
-     %118506 = OpCompositeConstruct %_arr_float_uint_2 %32548 %32554
-      %40946 = OpIAdd %uint %126980 %int_1
-      %40948 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126980
-               OpStore %40948 %118506
-               OpBranch %38458
-      %32465 = OpLabel
-      %32468 = OpLoad %uint %30040
-      %32469 = OpBitwiseAnd %uint %32468 %uint_32768
-      %32470 = OpUGreaterThan %bool %32469 %uint_0
-               OpSelectionMerge %40891 None
-               OpSwitch %uint_0 %40875
-      %40875 = OpLabel
-               OpSelectionMerge %40890 None
-               OpBranchConditional %32470 %40877 %40885
-      %40885 = OpLabel
-      %40887 = OpISub %uint %126050 %int_1
-               OpBranch %40891
-      %40877 = OpLabel
-      %40879 = OpIAdd %uint %126076 %int_1
-               OpBranch %40891
-      %40890 = OpLabel
-               OpUnreachable
-      %40891 = OpLabel
-     %126983 = OpPhi %uint %40879 %40877 %126076 %40885
-     %126982 = OpPhi %uint %126050 %40877 %40887 %40885
-      %32474 = OpLoad %uint %30040
-      %32475 = OpBitwiseAnd %uint %32474 %uint_16384
-      %32476 = OpUGreaterThan %bool %32475 %uint_0
-               OpSelectionMerge %40914 None
-               OpSwitch %uint_0 %40898
-      %40898 = OpLabel
-               OpSelectionMerge %40913 None
-               OpBranchConditional %32476 %40900 %40908
-      %40908 = OpLabel
-      %40910 = OpISub %uint %126982 %int_1
-               OpBranch %40914
-      %40900 = OpLabel
-      %40902 = OpIAdd %uint %126983 %int_1
-               OpBranch %40914
-      %40913 = OpLabel
-               OpUnreachable
-      %40914 = OpLabel
-     %189183 = OpPhi %uint %40902 %40900 %126983 %40908
-     %188692 = OpPhi %uint %126982 %40900 %40910 %40908
-     %118499 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %40918 = OpIAdd %uint %126031 %int_1
-      %40920 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %40920 %118499
-               OpBranch %38458
-      %32419 = OpLabel
-      %32422 = OpLoad %uint %30040
-      %32423 = OpBitwiseAnd %uint %32422 %uint_32768
-      %32424 = OpUGreaterThan %bool %32423 %uint_0
-               OpSelectionMerge %40840 None
-               OpSwitch %uint_0 %40824
-      %40824 = OpLabel
-               OpSelectionMerge %40839 None
-               OpBranchConditional %32424 %40826 %40834
-      %40834 = OpLabel
-      %40836 = OpISub %uint %126041 %int_1
-               OpBranch %40840
-      %40826 = OpLabel
-      %40828 = OpIAdd %uint %126044 %int_1
-               OpBranch %40840
-      %40839 = OpLabel
-               OpUnreachable
-      %40840 = OpLabel
-     %127002 = OpPhi %uint %40828 %40826 %126044 %40834
-     %127001 = OpPhi %uint %126041 %40826 %40836 %40834
-      %32428 = OpLoad %uint %30040
-      %32429 = OpBitwiseAnd %uint %32428 %uint_16384
-      %32430 = OpUGreaterThan %bool %32429 %uint_0
-               OpSelectionMerge %40863 None
-               OpSwitch %uint_0 %40847
-      %40847 = OpLabel
-               OpSelectionMerge %40862 None
-               OpBranchConditional %32430 %40849 %40857
-      %40857 = OpLabel
-      %40859 = OpISub %uint %127001 %int_1
-               OpBranch %40863
-      %40849 = OpLabel
-      %40851 = OpIAdd %uint %127002 %int_1
-               OpBranch %40863
-      %40862 = OpLabel
-               OpUnreachable
-      %40863 = OpLabel
-     %188407 = OpPhi %uint %40851 %40849 %127002 %40857
-     %188153 = OpPhi %uint %127001 %40849 %40859 %40857
-     %118494 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %40867 = OpIAdd %uint %126031 %int_1
-      %40869 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %40869 %118494
-               OpBranch %38458
-      %32355 = OpLabel
-      %32358 = OpLoad %uint %30040
-      %32359 = OpBitwiseAnd %uint %32358 %uint_32768
-      %32360 = OpUGreaterThan %bool %32359 %uint_0
-               OpSelectionMerge %40789 None
-               OpSwitch %uint_0 %40773
-      %40773 = OpLabel
-               OpSelectionMerge %40788 None
-               OpBranchConditional %32360 %40775 %40783
-      %40783 = OpLabel
-      %40785 = OpISub %uint %126052 %int_1
-               OpBranch %40789
-      %40775 = OpLabel
-      %40777 = OpIAdd %uint %126104 %int_1
-               OpBranch %40789
-      %40788 = OpLabel
-               OpUnreachable
-      %40789 = OpLabel
-     %127021 = OpPhi %uint %40777 %40775 %126104 %40783
-     %127020 = OpPhi %uint %126052 %40775 %40785 %40783
-      %32364 = OpLoad %uint %30040
-      %32365 = OpBitwiseAnd %uint %32364 %uint_16384
-      %32366 = OpUGreaterThan %bool %32365 %uint_0
-               OpSelectionMerge %40812 None
-               OpSwitch %uint_0 %40796
-      %40796 = OpLabel
-               OpSelectionMerge %40811 None
-               OpBranchConditional %32366 %40798 %40806
-      %40806 = OpLabel
-      %40808 = OpISub %uint %127020 %int_1
-               OpBranch %40812
-      %40798 = OpLabel
-      %40800 = OpIAdd %uint %127021 %int_1
-               OpBranch %40812
-      %40811 = OpLabel
-               OpUnreachable
-      %40812 = OpLabel
-     %190759 = OpPhi %uint %40800 %40798 %127021 %40806
-     %188921 = OpPhi %uint %127020 %40798 %40808 %40806
-     %118489 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %40816 = OpIAdd %uint %126031 %int_1
-      %40818 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %40818 %118489
-               OpBranch %38458
-      %32315 = OpLabel
-      %32318 = OpLoad %uint %30040
-      %32319 = OpBitwiseAnd %uint %32318 %uint_32768
-      %32320 = OpUGreaterThan %bool %32319 %uint_0
-               OpSelectionMerge %40761 None
-               OpSwitch %uint_0 %40745
-      %40745 = OpLabel
-               OpSelectionMerge %40760 None
-               OpBranchConditional %32320 %40747 %40755
-      %40755 = OpLabel
-      %40757 = OpISub %uint %126050 %int_1
-               OpBranch %40761
-      %40747 = OpLabel
-      %40749 = OpIAdd %uint %126076 %int_1
-               OpBranch %40761
-      %40760 = OpLabel
-               OpUnreachable
-      %40761 = OpLabel
-     %189178 = OpPhi %uint %40749 %40747 %126076 %40755
-     %188687 = OpPhi %uint %126050 %40747 %40757 %40755
-     %118484 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %40765 = OpIAdd %uint %126031 %int_1
-      %40767 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %40767 %118484
-               OpBranch %38458
-      %32275 = OpLabel
-      %32278 = OpLoad %uint %30040
-      %32279 = OpBitwiseAnd %uint %32278 %uint_32768
-      %32280 = OpUGreaterThan %bool %32279 %uint_0
-               OpSelectionMerge %40733 None
-               OpSwitch %uint_0 %40717
-      %40717 = OpLabel
-               OpSelectionMerge %40732 None
-               OpBranchConditional %32280 %40719 %40727
-      %40727 = OpLabel
-      %40729 = OpISub %uint %126041 %int_1
-               OpBranch %40733
-      %40719 = OpLabel
-      %40721 = OpIAdd %uint %126044 %int_1
-               OpBranch %40733
-      %40732 = OpLabel
-               OpUnreachable
-      %40733 = OpLabel
-     %188403 = OpPhi %uint %40721 %40719 %126044 %40727
-     %188149 = OpPhi %uint %126041 %40719 %40729 %40727
-     %118479 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %40737 = OpIAdd %uint %126031 %int_1
-      %40739 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %40739 %118479
-               OpBranch %38458
-      %32235 = OpLabel
-      %32238 = OpLoad %uint %30040
-      %32239 = OpBitwiseAnd %uint %32238 %uint_32768
-      %32240 = OpUGreaterThan %bool %32239 %uint_0
-               OpSelectionMerge %40705 None
-               OpSwitch %uint_0 %40689
-      %40689 = OpLabel
-               OpSelectionMerge %40704 None
-               OpBranchConditional %32240 %40691 %40699
-      %40699 = OpLabel
-      %40701 = OpISub %uint %126052 %int_1
-               OpBranch %40705
-      %40691 = OpLabel
-      %40693 = OpIAdd %uint %126104 %int_1
-               OpBranch %40705
-      %40704 = OpLabel
-               OpUnreachable
-      %40705 = OpLabel
-     %190756 = OpPhi %uint %40693 %40691 %126104 %40699
-     %188918 = OpPhi %uint %126052 %40691 %40701 %40699
-     %118474 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %40709 = OpIAdd %uint %126031 %int_1
-      %40711 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %40711 %118474
-               OpBranch %38458
-      %32184 = OpLabel
-      %32187 = OpLoad %uint %30040
-      %32188 = OpBitwiseAnd %uint %32187 %uint_32768
-      %32189 = OpUGreaterThan %bool %32188 %uint_0
-               OpSelectionMerge %40654 None
-               OpSwitch %uint_0 %40638
-      %40638 = OpLabel
-               OpSelectionMerge %40653 None
-               OpBranchConditional %32189 %40640 %40648
-      %40648 = OpLabel
-      %40650 = OpISub %uint %126050 %int_1
-               OpBranch %40654
-      %40640 = OpLabel
-      %40642 = OpIAdd %uint %126076 %int_1
-               OpBranch %40654
-      %40653 = OpLabel
-               OpUnreachable
-      %40654 = OpLabel
-     %127079 = OpPhi %uint %40642 %40640 %126076 %40648
-     %127078 = OpPhi %uint %126050 %40640 %40650 %40648
-      %32193 = OpLoad %uint %30040
-      %32194 = OpBitwiseAnd %uint %32193 %uint_16384
-      %32195 = OpUGreaterThan %bool %32194 %uint_0
-               OpSelectionMerge %40677 None
-               OpSwitch %uint_0 %40661
-      %40661 = OpLabel
-               OpSelectionMerge %40676 None
-               OpBranchConditional %32195 %40663 %40671
-      %40671 = OpLabel
-      %40673 = OpISub %uint %127078 %int_1
-               OpBranch %40677
-      %40663 = OpLabel
-      %40665 = OpIAdd %uint %127079 %int_1
-               OpBranch %40677
-      %40676 = OpLabel
-               OpUnreachable
-      %40677 = OpLabel
-     %189175 = OpPhi %uint %40665 %40663 %127079 %40671
-     %188684 = OpPhi %uint %127078 %40663 %40673 %40671
-     %118469 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %40681 = OpIAdd %uint %126031 %int_1
-      %40683 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %40683 %118469
-               OpBranch %38458
-      %32133 = OpLabel
-      %32136 = OpLoad %uint %30040
-      %32137 = OpBitwiseAnd %uint %32136 %uint_32768
-      %32138 = OpUGreaterThan %bool %32137 %uint_0
-               OpSelectionMerge %40603 None
-               OpSwitch %uint_0 %40587
-      %40587 = OpLabel
-               OpSelectionMerge %40602 None
-               OpBranchConditional %32138 %40589 %40597
-      %40597 = OpLabel
-      %40599 = OpISub %uint %126041 %int_1
-               OpBranch %40603
-      %40589 = OpLabel
-      %40591 = OpIAdd %uint %126044 %int_1
-               OpBranch %40603
-      %40602 = OpLabel
-               OpUnreachable
-      %40603 = OpLabel
-     %127098 = OpPhi %uint %40591 %40589 %126044 %40597
-     %127097 = OpPhi %uint %126041 %40589 %40599 %40597
-      %32142 = OpLoad %uint %30040
-      %32143 = OpBitwiseAnd %uint %32142 %uint_16384
-      %32144 = OpUGreaterThan %bool %32143 %uint_0
-               OpSelectionMerge %40626 None
-               OpSwitch %uint_0 %40610
-      %40610 = OpLabel
-               OpSelectionMerge %40625 None
-               OpBranchConditional %32144 %40612 %40620
-      %40620 = OpLabel
-      %40622 = OpISub %uint %127097 %int_1
-               OpBranch %40626
-      %40612 = OpLabel
-      %40614 = OpIAdd %uint %127098 %int_1
-               OpBranch %40626
-      %40625 = OpLabel
-               OpUnreachable
-      %40626 = OpLabel
-     %188399 = OpPhi %uint %40614 %40612 %127098 %40620
-     %188145 = OpPhi %uint %127097 %40612 %40622 %40620
-     %118464 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %40630 = OpIAdd %uint %126031 %int_1
-      %40632 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %40632 %118464
-               OpBranch %38458
-      %32082 = OpLabel
-      %32085 = OpLoad %uint %30040
-      %32086 = OpBitwiseAnd %uint %32085 %uint_32768
-      %32087 = OpUGreaterThan %bool %32086 %uint_0
-               OpSelectionMerge %40552 None
-               OpSwitch %uint_0 %40536
-      %40536 = OpLabel
-               OpSelectionMerge %40551 None
-               OpBranchConditional %32087 %40538 %40546
-      %40546 = OpLabel
-      %40548 = OpISub %uint %126052 %int_1
-               OpBranch %40552
-      %40538 = OpLabel
-      %40540 = OpIAdd %uint %126104 %int_1
-               OpBranch %40552
-      %40551 = OpLabel
-               OpUnreachable
-      %40552 = OpLabel
-     %127117 = OpPhi %uint %40540 %40538 %126104 %40546
-     %127116 = OpPhi %uint %126052 %40538 %40548 %40546
-      %32091 = OpLoad %uint %30040
-      %32092 = OpBitwiseAnd %uint %32091 %uint_16384
-      %32093 = OpUGreaterThan %bool %32092 %uint_0
-               OpSelectionMerge %40575 None
-               OpSwitch %uint_0 %40559
-      %40559 = OpLabel
-               OpSelectionMerge %40574 None
-               OpBranchConditional %32093 %40561 %40569
-      %40569 = OpLabel
-      %40571 = OpISub %uint %127116 %int_1
-               OpBranch %40575
-      %40561 = OpLabel
-      %40563 = OpIAdd %uint %127117 %int_1
-               OpBranch %40575
-      %40574 = OpLabel
-               OpUnreachable
-      %40575 = OpLabel
-     %190751 = OpPhi %uint %40563 %40561 %127117 %40569
-     %188913 = OpPhi %uint %127116 %40561 %40571 %40569
-     %118459 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %40579 = OpIAdd %uint %126031 %int_1
-      %40581 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %126031
-               OpStore %40581 %118459
-               OpBranch %38458
-      %32033 = OpLabel
-      %32036 = OpLoad %uint %30040
-      %32037 = OpBitwiseAnd %uint %32036 %uint_32768
-      %32038 = OpUGreaterThan %bool %32037 %uint_0
-               OpSelectionMerge %40501 None
-               OpSwitch %uint_0 %40485
-      %40485 = OpLabel
-               OpSelectionMerge %40500 None
-               OpBranchConditional %32038 %40487 %40495
-      %40495 = OpLabel
-      %40497 = OpISub %uint %126041 %int_1
-      %40498 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %40497
-      %40499 = OpLoad %_arr_v3float_uint_2 %40498
-     %117202 = OpCompositeExtract %v3float %40499 0
-     %117203 = OpCompositeExtract %v3float %40499 1
-               OpBranch %40501
-      %40487 = OpLabel
-      %40489 = OpIAdd %uint %126044 %int_1
-      %40490 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %40491 = OpLoad %v3float %40490
-               OpBranch %40501
-      %40500 = OpLabel
-               OpUnreachable
-      %40501 = OpLabel
-     %127138 = OpPhi %uint %40489 %40487 %126044 %40495
-     %127137 = OpPhi %uint %126041 %40487 %40497 %40495
-     %127135 = OpPhi %v3float %40491 %40487 %117202 %40495
-     %127134 = OpPhi %v3float %40491 %40487 %117203 %40495
-      %32042 = OpLoad %uint %30040
-      %32043 = OpBitwiseAnd %uint %32042 %uint_16384
-      %32044 = OpUGreaterThan %bool %32043 %uint_0
-               OpSelectionMerge %40524 None
-               OpSwitch %uint_0 %40508
-      %40508 = OpLabel
-               OpSelectionMerge %40523 None
-               OpBranchConditional %32044 %40510 %40518
-      %40518 = OpLabel
-      %40520 = OpISub %uint %127137 %int_1
-      %40521 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %40520
-      %40522 = OpLoad %_arr_v3float_uint_2 %40521
-     %117193 = OpCompositeExtract %v3float %40522 0
-     %117194 = OpCompositeExtract %v3float %40522 1
-               OpBranch %40524
-      %40510 = OpLabel
-      %40512 = OpIAdd %uint %127138 %int_1
-      %40513 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %127138
-      %40514 = OpLoad %v3float %40513
-               OpBranch %40524
-      %40523 = OpLabel
-               OpUnreachable
-      %40524 = OpLabel
-     %188396 = OpPhi %uint %40512 %40510 %127138 %40518
-     %127141 = OpPhi %uint %127137 %40510 %40520 %40518
-     %127140 = OpPhi %v3float %40514 %40510 %117193 %40518
-     %127139 = OpPhi %v3float %40514 %40510 %117194 %40518
-      %32050 = OpExtInst %v3float %1 Cross %127135 %127140
-      %32055 = OpExtInst %v3float %1 Cross %127135 %127139
-      %32060 = OpExtInst %v3float %1 Cross %127134 %127140
-      %32065 = OpExtInst %v3float %1 Cross %127134 %127139
-      %32070 = OpExtInst %v3float %1 FMin %32060 %32065
-      %32071 = OpExtInst %v3float %1 FMin %32055 %32070
-      %32072 = OpExtInst %v3float %1 FMin %32050 %32071
-      %32077 = OpExtInst %v3float %1 FMax %32060 %32065
-      %32078 = OpExtInst %v3float %1 FMax %32055 %32077
-      %32079 = OpExtInst %v3float %1 FMax %32050 %32078
-      %32080 = OpCompositeConstruct %_arr_v3float_uint_2 %32072 %32079
-      %40528 = OpIAdd %uint %127141 %int_1
-      %40530 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %127141
-               OpStore %40530 %32080
-               OpBranch %38458
-      %31966 = OpLabel
-      %31969 = OpLoad %uint %30040
-      %31970 = OpBitwiseAnd %uint %31969 %uint_32768
-      %31971 = OpUGreaterThan %bool %31970 %uint_0
-               OpSelectionMerge %40450 None
-               OpSwitch %uint_0 %40434
-      %40434 = OpLabel
-               OpSelectionMerge %40449 None
-               OpBranchConditional %31971 %40436 %40444
-      %40444 = OpLabel
-      %40446 = OpISub %uint %126050 %int_1
-      %40447 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %40446
-      %40448 = OpLoad %_arr_v4float_uint_2 %40447
-     %117220 = OpCompositeExtract %v4float %40448 0
-     %117221 = OpCompositeExtract %v4float %40448 1
-               OpBranch %40450
-      %40436 = OpLabel
-      %40438 = OpIAdd %uint %126076 %int_1
-      %40439 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %40440 = OpLoad %v4float %40439
-               OpBranch %40450
-      %40449 = OpLabel
-               OpUnreachable
-      %40450 = OpLabel
-     %189168 = OpPhi %uint %40438 %40436 %126076 %40444
-     %127152 = OpPhi %uint %126050 %40436 %40446 %40444
-     %127143 = OpPhi %v4float %40440 %40436 %117220 %40444
-     %127142 = OpPhi %v4float %40440 %40436 %117221 %40444
-      %31975 = OpLoad %uint %30040
-      %31976 = OpBitwiseAnd %uint %31975 %uint_16384
-      %31977 = OpUGreaterThan %bool %31976 %uint_0
-               OpSelectionMerge %40473 None
-               OpSwitch %uint_0 %40457
-      %40457 = OpLabel
-               OpSelectionMerge %40472 None
-               OpBranchConditional %31977 %40459 %40467
-      %40467 = OpLabel
-      %40469 = OpISub %uint %126031 %int_1
-      %40470 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %40469
-      %40471 = OpLoad %_arr_float_uint_2 %40470
-     %117211 = OpCompositeExtract %float %40471 0
-     %117212 = OpCompositeExtract %float %40471 1
-               OpBranch %40473
-      %40459 = OpLabel
-      %40461 = OpIAdd %uint %126033 %int_1
-      %40462 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %40463 = OpLoad %float %40462
-               OpBranch %40473
-      %40472 = OpLabel
-               OpUnreachable
-      %40473 = OpLabel
-     %128325 = OpPhi %uint %40461 %40459 %126033 %40467
-     %128123 = OpPhi %uint %126031 %40459 %40469 %40467
-     %127148 = OpPhi %float %40463 %40459 %117211 %40467
-     %127147 = OpPhi %float %40463 %40459 %117212 %40467
-      %31983 = OpCompositeConstruct %v4float %127148 %127148 %127148 %127148
-      %31984 = OpFMod %v4float %127143 %31983
-      %31990 = OpCompositeConstruct %v4float %127147 %127147 %127147 %127147
-      %31991 = OpFMod %v4float %127143 %31990
-      %31998 = OpFMod %v4float %127142 %31983
-      %32005 = OpFMod %v4float %127142 %31990
-      %32015 = OpExtInst %v4float %1 FMin %31998 %32005
-      %32016 = OpExtInst %v4float %1 FMin %31991 %32015
-      %32017 = OpExtInst %v4float %1 FMin %31984 %32016
-      %32027 = OpExtInst %v4float %1 FMax %31998 %32005
-      %32028 = OpExtInst %v4float %1 FMax %31991 %32027
-      %32029 = OpExtInst %v4float %1 FMax %31984 %32028
-     %118438 = OpCompositeConstruct %_arr_v4float_uint_2 %32017 %32029
-      %40477 = OpIAdd %uint %127152 %int_1
-      %40479 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %127152
-               OpStore %40479 %118438
-               OpBranch %38458
-      %31903 = OpLabel
-      %31906 = OpLoad %uint %30040
-      %31907 = OpBitwiseAnd %uint %31906 %uint_32768
-      %31908 = OpUGreaterThan %bool %31907 %uint_0
-               OpSelectionMerge %40399 None
-               OpSwitch %uint_0 %40383
-      %40383 = OpLabel
-               OpSelectionMerge %40398 None
-               OpBranchConditional %31908 %40385 %40393
-      %40393 = OpLabel
-      %40395 = OpISub %uint %126050 %int_1
-      %40396 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %40395
-      %40397 = OpLoad %_arr_v4float_uint_2 %40396
-     %117238 = OpCompositeExtract %v4float %40397 0
-     %117239 = OpCompositeExtract %v4float %40397 1
-               OpBranch %40399
-      %40385 = OpLabel
-      %40387 = OpIAdd %uint %126076 %int_1
-      %40388 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %40389 = OpLoad %v4float %40388
-               OpBranch %40399
-      %40398 = OpLabel
-               OpUnreachable
-      %40399 = OpLabel
-     %127157 = OpPhi %uint %40387 %40385 %126076 %40393
-     %127156 = OpPhi %uint %126050 %40385 %40395 %40393
-     %127154 = OpPhi %v4float %40389 %40385 %117238 %40393
-     %127153 = OpPhi %v4float %40389 %40385 %117239 %40393
-      %31912 = OpLoad %uint %30040
-      %31913 = OpBitwiseAnd %uint %31912 %uint_16384
-      %31914 = OpUGreaterThan %bool %31913 %uint_0
-               OpSelectionMerge %40422 None
-               OpSwitch %uint_0 %40406
-      %40406 = OpLabel
-               OpSelectionMerge %40421 None
-               OpBranchConditional %31914 %40408 %40416
-      %40416 = OpLabel
-      %40418 = OpISub %uint %127156 %int_1
-      %40419 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %40418
-      %40420 = OpLoad %_arr_v4float_uint_2 %40419
-     %117229 = OpCompositeExtract %v4float %40420 0
-     %117230 = OpCompositeExtract %v4float %40420 1
-               OpBranch %40422
-      %40408 = OpLabel
-      %40410 = OpIAdd %uint %127157 %int_1
-      %40411 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %127157
-      %40412 = OpLoad %v4float %40411
-               OpBranch %40422
-      %40421 = OpLabel
-               OpUnreachable
-      %40422 = OpLabel
-     %189166 = OpPhi %uint %40410 %40408 %127157 %40416
-     %127162 = OpPhi %uint %127156 %40408 %40418 %40416
-     %127159 = OpPhi %v4float %40412 %40408 %117229 %40416
-     %127158 = OpPhi %v4float %40412 %40408 %117230 %40416
-      %31920 = OpFMod %v4float %127154 %127159
-      %31926 = OpFMod %v4float %127154 %127158
-      %31932 = OpFMod %v4float %127153 %127159
-      %31938 = OpFMod %v4float %127153 %127158
-      %31948 = OpExtInst %v4float %1 FMin %31932 %31938
-      %31949 = OpExtInst %v4float %1 FMin %31926 %31948
-      %31950 = OpExtInst %v4float %1 FMin %31920 %31949
-      %31960 = OpExtInst %v4float %1 FMax %31932 %31938
-      %31961 = OpExtInst %v4float %1 FMax %31926 %31960
-      %31962 = OpExtInst %v4float %1 FMax %31920 %31961
-     %118423 = OpCompositeConstruct %_arr_v4float_uint_2 %31950 %31962
-      %40426 = OpIAdd %uint %127162 %int_1
-      %40428 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %127162
-               OpStore %40428 %118423
-               OpBranch %38458
-      %31836 = OpLabel
-      %31839 = OpLoad %uint %30040
-      %31840 = OpBitwiseAnd %uint %31839 %uint_32768
-      %31841 = OpUGreaterThan %bool %31840 %uint_0
-               OpSelectionMerge %40348 None
-               OpSwitch %uint_0 %40332
-      %40332 = OpLabel
-               OpSelectionMerge %40347 None
-               OpBranchConditional %31841 %40334 %40342
-      %40342 = OpLabel
-      %40344 = OpISub %uint %126041 %int_1
-      %40345 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %40344
-      %40346 = OpLoad %_arr_v3float_uint_2 %40345
-     %117256 = OpCompositeExtract %v3float %40346 0
-     %117257 = OpCompositeExtract %v3float %40346 1
-               OpBranch %40348
-      %40334 = OpLabel
-      %40336 = OpIAdd %uint %126044 %int_1
-      %40337 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %40338 = OpLoad %v3float %40337
-               OpBranch %40348
-      %40347 = OpLabel
-               OpUnreachable
-      %40348 = OpLabel
-     %188391 = OpPhi %uint %40336 %40334 %126044 %40342
-     %127173 = OpPhi %uint %126041 %40334 %40344 %40342
-     %127164 = OpPhi %v3float %40338 %40334 %117256 %40342
-     %127163 = OpPhi %v3float %40338 %40334 %117257 %40342
-      %31845 = OpLoad %uint %30040
-      %31846 = OpBitwiseAnd %uint %31845 %uint_16384
-      %31847 = OpUGreaterThan %bool %31846 %uint_0
-               OpSelectionMerge %40371 None
-               OpSwitch %uint_0 %40355
-      %40355 = OpLabel
-               OpSelectionMerge %40370 None
-               OpBranchConditional %31847 %40357 %40365
-      %40365 = OpLabel
-      %40367 = OpISub %uint %126031 %int_1
-      %40368 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %40367
-      %40369 = OpLoad %_arr_float_uint_2 %40368
-     %117247 = OpCompositeExtract %float %40369 0
-     %117248 = OpCompositeExtract %float %40369 1
-               OpBranch %40371
-      %40357 = OpLabel
-      %40359 = OpIAdd %uint %126033 %int_1
-      %40360 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %40361 = OpLoad %float %40360
-               OpBranch %40371
-      %40370 = OpLabel
-               OpUnreachable
-      %40371 = OpLabel
-     %128322 = OpPhi %uint %40359 %40357 %126033 %40365
-     %128120 = OpPhi %uint %126031 %40357 %40367 %40365
-     %127169 = OpPhi %float %40361 %40357 %117247 %40365
-     %127168 = OpPhi %float %40361 %40357 %117248 %40365
-      %31853 = OpCompositeConstruct %v3float %127169 %127169 %127169
-      %31854 = OpFMod %v3float %127164 %31853
-      %31860 = OpCompositeConstruct %v3float %127168 %127168 %127168
-      %31861 = OpFMod %v3float %127164 %31860
-      %31868 = OpFMod %v3float %127163 %31853
-      %31875 = OpFMod %v3float %127163 %31860
-      %31885 = OpExtInst %v3float %1 FMin %31868 %31875
-      %31886 = OpExtInst %v3float %1 FMin %31861 %31885
-      %31887 = OpExtInst %v3float %1 FMin %31854 %31886
-      %31897 = OpExtInst %v3float %1 FMax %31868 %31875
-      %31898 = OpExtInst %v3float %1 FMax %31861 %31897
-      %31899 = OpExtInst %v3float %1 FMax %31854 %31898
-     %118408 = OpCompositeConstruct %_arr_v3float_uint_2 %31887 %31899
-      %40375 = OpIAdd %uint %127173 %int_1
-      %40377 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %127173
-               OpStore %40377 %118408
-               OpBranch %38458
-      %31773 = OpLabel
-      %31776 = OpLoad %uint %30040
-      %31777 = OpBitwiseAnd %uint %31776 %uint_32768
-      %31778 = OpUGreaterThan %bool %31777 %uint_0
-               OpSelectionMerge %40297 None
-               OpSwitch %uint_0 %40281
-      %40281 = OpLabel
-               OpSelectionMerge %40296 None
-               OpBranchConditional %31778 %40283 %40291
-      %40291 = OpLabel
-      %40293 = OpISub %uint %126041 %int_1
-      %40294 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %40293
-      %40295 = OpLoad %_arr_v3float_uint_2 %40294
-     %117274 = OpCompositeExtract %v3float %40295 0
-     %117275 = OpCompositeExtract %v3float %40295 1
-               OpBranch %40297
-      %40283 = OpLabel
-      %40285 = OpIAdd %uint %126044 %int_1
-      %40286 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %40287 = OpLoad %v3float %40286
-               OpBranch %40297
-      %40296 = OpLabel
-               OpUnreachable
-      %40297 = OpLabel
-     %127178 = OpPhi %uint %40285 %40283 %126044 %40291
-     %127177 = OpPhi %uint %126041 %40283 %40293 %40291
-     %127175 = OpPhi %v3float %40287 %40283 %117274 %40291
-     %127174 = OpPhi %v3float %40287 %40283 %117275 %40291
-      %31782 = OpLoad %uint %30040
-      %31783 = OpBitwiseAnd %uint %31782 %uint_16384
-      %31784 = OpUGreaterThan %bool %31783 %uint_0
-               OpSelectionMerge %40320 None
-               OpSwitch %uint_0 %40304
-      %40304 = OpLabel
-               OpSelectionMerge %40319 None
-               OpBranchConditional %31784 %40306 %40314
-      %40314 = OpLabel
-      %40316 = OpISub %uint %127177 %int_1
-      %40317 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %40316
-      %40318 = OpLoad %_arr_v3float_uint_2 %40317
-     %117265 = OpCompositeExtract %v3float %40318 0
-     %117266 = OpCompositeExtract %v3float %40318 1
-               OpBranch %40320
-      %40306 = OpLabel
-      %40308 = OpIAdd %uint %127178 %int_1
-      %40309 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %127178
-      %40310 = OpLoad %v3float %40309
-               OpBranch %40320
-      %40319 = OpLabel
-               OpUnreachable
-      %40320 = OpLabel
-     %188389 = OpPhi %uint %40308 %40306 %127178 %40314
-     %127183 = OpPhi %uint %127177 %40306 %40316 %40314
-     %127180 = OpPhi %v3float %40310 %40306 %117265 %40314
-     %127179 = OpPhi %v3float %40310 %40306 %117266 %40314
-      %31790 = OpFMod %v3float %127175 %127180
-      %31796 = OpFMod %v3float %127175 %127179
-      %31802 = OpFMod %v3float %127174 %127180
-      %31808 = OpFMod %v3float %127174 %127179
-      %31818 = OpExtInst %v3float %1 FMin %31802 %31808
-      %31819 = OpExtInst %v3float %1 FMin %31796 %31818
-      %31820 = OpExtInst %v3float %1 FMin %31790 %31819
-      %31830 = OpExtInst %v3float %1 FMax %31802 %31808
-      %31831 = OpExtInst %v3float %1 FMax %31796 %31830
-      %31832 = OpExtInst %v3float %1 FMax %31790 %31831
-     %118393 = OpCompositeConstruct %_arr_v3float_uint_2 %31820 %31832
-      %40324 = OpIAdd %uint %127183 %int_1
-      %40326 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %127183
-               OpStore %40326 %118393
-               OpBranch %38458
-      %31706 = OpLabel
-      %31709 = OpLoad %uint %30040
-      %31710 = OpBitwiseAnd %uint %31709 %uint_32768
-      %31711 = OpUGreaterThan %bool %31710 %uint_0
-               OpSelectionMerge %40246 None
-               OpSwitch %uint_0 %40230
-      %40230 = OpLabel
-               OpSelectionMerge %40245 None
-               OpBranchConditional %31711 %40232 %40240
-      %40240 = OpLabel
-      %40242 = OpISub %uint %126052 %int_1
-      %40243 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %40242
-      %40244 = OpLoad %_arr_v2float_uint_2 %40243
-     %117292 = OpCompositeExtract %v2float %40244 0
-     %117293 = OpCompositeExtract %v2float %40244 1
-               OpBranch %40246
-      %40232 = OpLabel
-      %40234 = OpIAdd %uint %126104 %int_1
-      %40235 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %40236 = OpLoad %v2float %40235
-               OpBranch %40246
-      %40245 = OpLabel
-               OpUnreachable
-      %40246 = OpLabel
-     %190740 = OpPhi %uint %40234 %40232 %126104 %40240
-     %127194 = OpPhi %uint %126052 %40232 %40242 %40240
-     %127185 = OpPhi %v2float %40236 %40232 %117292 %40240
-     %127184 = OpPhi %v2float %40236 %40232 %117293 %40240
-      %31715 = OpLoad %uint %30040
-      %31716 = OpBitwiseAnd %uint %31715 %uint_16384
-      %31717 = OpUGreaterThan %bool %31716 %uint_0
-               OpSelectionMerge %40269 None
-               OpSwitch %uint_0 %40253
-      %40253 = OpLabel
-               OpSelectionMerge %40268 None
-               OpBranchConditional %31717 %40255 %40263
-      %40263 = OpLabel
-      %40265 = OpISub %uint %126031 %int_1
-      %40266 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %40265
-      %40267 = OpLoad %_arr_float_uint_2 %40266
-     %117283 = OpCompositeExtract %float %40267 0
-     %117284 = OpCompositeExtract %float %40267 1
-               OpBranch %40269
-      %40255 = OpLabel
-      %40257 = OpIAdd %uint %126033 %int_1
-      %40258 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %40259 = OpLoad %float %40258
-               OpBranch %40269
-      %40268 = OpLabel
-               OpUnreachable
-      %40269 = OpLabel
-     %128319 = OpPhi %uint %40257 %40255 %126033 %40263
-     %128117 = OpPhi %uint %126031 %40255 %40265 %40263
-     %127190 = OpPhi %float %40259 %40255 %117283 %40263
-     %127189 = OpPhi %float %40259 %40255 %117284 %40263
-      %31723 = OpCompositeConstruct %v2float %127190 %127190
-      %31724 = OpFMod %v2float %127185 %31723
-      %31730 = OpCompositeConstruct %v2float %127189 %127189
-      %31731 = OpFMod %v2float %127185 %31730
-      %31738 = OpFMod %v2float %127184 %31723
-      %31745 = OpFMod %v2float %127184 %31730
-      %31755 = OpExtInst %v2float %1 FMin %31738 %31745
-      %31756 = OpExtInst %v2float %1 FMin %31731 %31755
-      %31757 = OpExtInst %v2float %1 FMin %31724 %31756
-      %31767 = OpExtInst %v2float %1 FMax %31738 %31745
-      %31768 = OpExtInst %v2float %1 FMax %31731 %31767
-      %31769 = OpExtInst %v2float %1 FMax %31724 %31768
-     %118378 = OpCompositeConstruct %_arr_v2float_uint_2 %31757 %31769
-      %40273 = OpIAdd %uint %127194 %int_1
-      %40275 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %127194
-               OpStore %40275 %118378
-               OpBranch %38458
-      %31643 = OpLabel
-      %31646 = OpLoad %uint %30040
-      %31647 = OpBitwiseAnd %uint %31646 %uint_32768
-      %31648 = OpUGreaterThan %bool %31647 %uint_0
-               OpSelectionMerge %40195 None
-               OpSwitch %uint_0 %40179
-      %40179 = OpLabel
-               OpSelectionMerge %40194 None
-               OpBranchConditional %31648 %40181 %40189
-      %40189 = OpLabel
-      %40191 = OpISub %uint %126052 %int_1
-      %40192 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %40191
-      %40193 = OpLoad %_arr_v2float_uint_2 %40192
-     %117310 = OpCompositeExtract %v2float %40193 0
-     %117311 = OpCompositeExtract %v2float %40193 1
-               OpBranch %40195
-      %40181 = OpLabel
-      %40183 = OpIAdd %uint %126104 %int_1
-      %40184 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %40185 = OpLoad %v2float %40184
-               OpBranch %40195
-      %40194 = OpLabel
-               OpUnreachable
-      %40195 = OpLabel
-     %127199 = OpPhi %uint %40183 %40181 %126104 %40189
-     %127198 = OpPhi %uint %126052 %40181 %40191 %40189
-     %127196 = OpPhi %v2float %40185 %40181 %117310 %40189
-     %127195 = OpPhi %v2float %40185 %40181 %117311 %40189
-      %31652 = OpLoad %uint %30040
-      %31653 = OpBitwiseAnd %uint %31652 %uint_16384
-      %31654 = OpUGreaterThan %bool %31653 %uint_0
-               OpSelectionMerge %40218 None
-               OpSwitch %uint_0 %40202
-      %40202 = OpLabel
-               OpSelectionMerge %40217 None
-               OpBranchConditional %31654 %40204 %40212
-      %40212 = OpLabel
-      %40214 = OpISub %uint %127198 %int_1
-      %40215 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %40214
-      %40216 = OpLoad %_arr_v2float_uint_2 %40215
-     %117301 = OpCompositeExtract %v2float %40216 0
-     %117302 = OpCompositeExtract %v2float %40216 1
-               OpBranch %40218
-      %40204 = OpLabel
-      %40206 = OpIAdd %uint %127199 %int_1
-      %40207 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %127199
-      %40208 = OpLoad %v2float %40207
-               OpBranch %40218
-      %40217 = OpLabel
-               OpUnreachable
-      %40218 = OpLabel
-     %190738 = OpPhi %uint %40206 %40204 %127199 %40212
-     %127204 = OpPhi %uint %127198 %40204 %40214 %40212
-     %127201 = OpPhi %v2float %40208 %40204 %117301 %40212
-     %127200 = OpPhi %v2float %40208 %40204 %117302 %40212
-      %31660 = OpFMod %v2float %127196 %127201
-      %31666 = OpFMod %v2float %127196 %127200
-      %31672 = OpFMod %v2float %127195 %127201
-      %31678 = OpFMod %v2float %127195 %127200
-      %31688 = OpExtInst %v2float %1 FMin %31672 %31678
-      %31689 = OpExtInst %v2float %1 FMin %31666 %31688
-      %31690 = OpExtInst %v2float %1 FMin %31660 %31689
-      %31700 = OpExtInst %v2float %1 FMax %31672 %31678
-      %31701 = OpExtInst %v2float %1 FMax %31666 %31700
-      %31702 = OpExtInst %v2float %1 FMax %31660 %31701
-     %118363 = OpCompositeConstruct %_arr_v2float_uint_2 %31690 %31702
-      %40222 = OpIAdd %uint %127204 %int_1
-      %40224 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %127204
-               OpStore %40224 %118363
-               OpBranch %38458
-      %31580 = OpLabel
-      %31583 = OpLoad %uint %30040
-      %31584 = OpBitwiseAnd %uint %31583 %uint_32768
-      %31585 = OpUGreaterThan %bool %31584 %uint_0
-               OpSelectionMerge %40144 None
-               OpSwitch %uint_0 %40128
-      %40128 = OpLabel
-               OpSelectionMerge %40143 None
-               OpBranchConditional %31585 %40130 %40138
-      %40138 = OpLabel
-      %40140 = OpISub %uint %126031 %int_1
-      %40141 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %40140
-      %40142 = OpLoad %_arr_float_uint_2 %40141
-     %117328 = OpCompositeExtract %float %40142 0
-     %117329 = OpCompositeExtract %float %40142 1
-               OpBranch %40144
-      %40130 = OpLabel
-      %40132 = OpIAdd %uint %126033 %int_1
-      %40133 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %40134 = OpLoad %float %40133
-               OpBranch %40144
-      %40143 = OpLabel
-               OpUnreachable
-      %40144 = OpLabel
-     %127209 = OpPhi %uint %40132 %40130 %126033 %40138
-     %127208 = OpPhi %uint %126031 %40130 %40140 %40138
-     %127206 = OpPhi %float %40134 %40130 %117328 %40138
-     %127205 = OpPhi %float %40134 %40130 %117329 %40138
-      %31589 = OpLoad %uint %30040
-      %31590 = OpBitwiseAnd %uint %31589 %uint_16384
-      %31591 = OpUGreaterThan %bool %31590 %uint_0
-               OpSelectionMerge %40167 None
-               OpSwitch %uint_0 %40151
-      %40151 = OpLabel
-               OpSelectionMerge %40166 None
-               OpBranchConditional %31591 %40153 %40161
-      %40161 = OpLabel
-      %40163 = OpISub %uint %127208 %int_1
-      %40164 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %40163
-      %40165 = OpLoad %_arr_float_uint_2 %40164
-     %117319 = OpCompositeExtract %float %40165 0
-     %117320 = OpCompositeExtract %float %40165 1
-               OpBranch %40167
-      %40153 = OpLabel
-      %40155 = OpIAdd %uint %127209 %int_1
-      %40156 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %127209
-      %40157 = OpLoad %float %40156
-               OpBranch %40167
-      %40166 = OpLabel
-               OpUnreachable
-      %40167 = OpLabel
-     %128316 = OpPhi %uint %40155 %40153 %127209 %40161
-     %127214 = OpPhi %uint %127208 %40153 %40163 %40161
-     %127211 = OpPhi %float %40157 %40153 %117319 %40161
-     %127210 = OpPhi %float %40157 %40153 %117320 %40161
-      %31597 = OpFMod %float %127206 %127211
-      %31603 = OpFMod %float %127206 %127210
-      %31609 = OpFMod %float %127205 %127211
-      %31615 = OpFMod %float %127205 %127210
-      %31625 = OpExtInst %float %1 FMin %31609 %31615
-      %31626 = OpExtInst %float %1 FMin %31603 %31625
-      %31627 = OpExtInst %float %1 FMin %31597 %31626
-      %31637 = OpExtInst %float %1 FMax %31609 %31615
-      %31638 = OpExtInst %float %1 FMax %31603 %31637
-      %31639 = OpExtInst %float %1 FMax %31597 %31638
-     %118348 = OpCompositeConstruct %_arr_float_uint_2 %31627 %31639
-      %40171 = OpIAdd %uint %127214 %int_1
-      %40173 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %127214
-               OpStore %40173 %118348
-               OpBranch %38458
-      %31517 = OpLabel
-      %31520 = OpLoad %uint %30040
-      %31521 = OpBitwiseAnd %uint %31520 %uint_32768
-      %31522 = OpUGreaterThan %bool %31521 %uint_0
-               OpSelectionMerge %40093 None
-               OpSwitch %uint_0 %40077
-      %40077 = OpLabel
-               OpSelectionMerge %40092 None
-               OpBranchConditional %31522 %40079 %40087
-      %40087 = OpLabel
-      %40089 = OpISub %uint %126050 %int_1
-      %40090 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %40089
-      %40091 = OpLoad %_arr_v4float_uint_2 %40090
-     %117346 = OpCompositeExtract %v4float %40091 0
-     %117347 = OpCompositeExtract %v4float %40091 1
-               OpBranch %40093
-      %40079 = OpLabel
-      %40081 = OpIAdd %uint %126076 %int_1
-      %40082 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %40083 = OpLoad %v4float %40082
-               OpBranch %40093
-      %40092 = OpLabel
-               OpUnreachable
-      %40093 = OpLabel
-     %127219 = OpPhi %uint %40081 %40079 %126076 %40087
-     %127218 = OpPhi %uint %126050 %40079 %40089 %40087
-     %127216 = OpPhi %v4float %40083 %40079 %117346 %40087
-     %127215 = OpPhi %v4float %40083 %40079 %117347 %40087
-      %31526 = OpLoad %uint %30040
-      %31527 = OpBitwiseAnd %uint %31526 %uint_16384
-      %31528 = OpUGreaterThan %bool %31527 %uint_0
-               OpSelectionMerge %40116 None
-               OpSwitch %uint_0 %40100
-      %40100 = OpLabel
-               OpSelectionMerge %40115 None
-               OpBranchConditional %31528 %40102 %40110
-      %40110 = OpLabel
-      %40112 = OpISub %uint %127218 %int_1
-      %40113 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %40112
-      %40114 = OpLoad %_arr_v4float_uint_2 %40113
-     %117337 = OpCompositeExtract %v4float %40114 0
-     %117338 = OpCompositeExtract %v4float %40114 1
-               OpBranch %40116
-      %40102 = OpLabel
-      %40104 = OpIAdd %uint %127219 %int_1
-      %40105 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %127219
-      %40106 = OpLoad %v4float %40105
-               OpBranch %40116
-      %40115 = OpLabel
-               OpUnreachable
-      %40116 = OpLabel
-     %189155 = OpPhi %uint %40104 %40102 %127219 %40110
-     %127224 = OpPhi %uint %127218 %40102 %40112 %40110
-     %127221 = OpPhi %v4float %40106 %40102 %117337 %40110
-     %127220 = OpPhi %v4float %40106 %40102 %117338 %40110
-      %31534 = OpExtInst %v4float %1 Pow %127216 %127221
-      %31540 = OpExtInst %v4float %1 Pow %127216 %127220
-      %31546 = OpExtInst %v4float %1 Pow %127215 %127221
-      %31552 = OpExtInst %v4float %1 Pow %127215 %127220
-      %31562 = OpExtInst %v4float %1 FMin %31546 %31552
-      %31563 = OpExtInst %v4float %1 FMin %31540 %31562
-      %31564 = OpExtInst %v4float %1 FMin %31534 %31563
-      %31574 = OpExtInst %v4float %1 FMax %31546 %31552
-      %31575 = OpExtInst %v4float %1 FMax %31540 %31574
-      %31576 = OpExtInst %v4float %1 FMax %31534 %31575
-     %118333 = OpCompositeConstruct %_arr_v4float_uint_2 %31564 %31576
-      %40120 = OpIAdd %uint %127224 %int_1
-      %40122 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %127224
-               OpStore %40122 %118333
-               OpBranch %38458
-      %31454 = OpLabel
-      %31457 = OpLoad %uint %30040
-      %31458 = OpBitwiseAnd %uint %31457 %uint_32768
-      %31459 = OpUGreaterThan %bool %31458 %uint_0
-               OpSelectionMerge %40042 None
-               OpSwitch %uint_0 %40026
-      %40026 = OpLabel
-               OpSelectionMerge %40041 None
-               OpBranchConditional %31459 %40028 %40036
-      %40036 = OpLabel
-      %40038 = OpISub %uint %126041 %int_1
-      %40039 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %40038
-      %40040 = OpLoad %_arr_v3float_uint_2 %40039
-     %117364 = OpCompositeExtract %v3float %40040 0
-     %117365 = OpCompositeExtract %v3float %40040 1
-               OpBranch %40042
-      %40028 = OpLabel
-      %40030 = OpIAdd %uint %126044 %int_1
-      %40031 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %40032 = OpLoad %v3float %40031
-               OpBranch %40042
-      %40041 = OpLabel
-               OpUnreachable
-      %40042 = OpLabel
-     %127229 = OpPhi %uint %40030 %40028 %126044 %40036
-     %127228 = OpPhi %uint %126041 %40028 %40038 %40036
-     %127226 = OpPhi %v3float %40032 %40028 %117364 %40036
-     %127225 = OpPhi %v3float %40032 %40028 %117365 %40036
-      %31463 = OpLoad %uint %30040
-      %31464 = OpBitwiseAnd %uint %31463 %uint_16384
-      %31465 = OpUGreaterThan %bool %31464 %uint_0
-               OpSelectionMerge %40065 None
-               OpSwitch %uint_0 %40049
-      %40049 = OpLabel
-               OpSelectionMerge %40064 None
-               OpBranchConditional %31465 %40051 %40059
-      %40059 = OpLabel
-      %40061 = OpISub %uint %127228 %int_1
-      %40062 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %40061
-      %40063 = OpLoad %_arr_v3float_uint_2 %40062
-     %117355 = OpCompositeExtract %v3float %40063 0
-     %117356 = OpCompositeExtract %v3float %40063 1
-               OpBranch %40065
-      %40051 = OpLabel
-      %40053 = OpIAdd %uint %127229 %int_1
-      %40054 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %127229
-      %40055 = OpLoad %v3float %40054
-               OpBranch %40065
-      %40064 = OpLabel
-               OpUnreachable
-      %40065 = OpLabel
-     %188380 = OpPhi %uint %40053 %40051 %127229 %40059
-     %127234 = OpPhi %uint %127228 %40051 %40061 %40059
-     %127231 = OpPhi %v3float %40055 %40051 %117355 %40059
-     %127230 = OpPhi %v3float %40055 %40051 %117356 %40059
-      %31471 = OpExtInst %v3float %1 Pow %127226 %127231
-      %31477 = OpExtInst %v3float %1 Pow %127226 %127230
-      %31483 = OpExtInst %v3float %1 Pow %127225 %127231
-      %31489 = OpExtInst %v3float %1 Pow %127225 %127230
-      %31499 = OpExtInst %v3float %1 FMin %31483 %31489
-      %31500 = OpExtInst %v3float %1 FMin %31477 %31499
-      %31501 = OpExtInst %v3float %1 FMin %31471 %31500
-      %31511 = OpExtInst %v3float %1 FMax %31483 %31489
-      %31512 = OpExtInst %v3float %1 FMax %31477 %31511
-      %31513 = OpExtInst %v3float %1 FMax %31471 %31512
-     %118318 = OpCompositeConstruct %_arr_v3float_uint_2 %31501 %31513
-      %40069 = OpIAdd %uint %127234 %int_1
-      %40071 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %127234
-               OpStore %40071 %118318
-               OpBranch %38458
-      %31391 = OpLabel
-      %31394 = OpLoad %uint %30040
-      %31395 = OpBitwiseAnd %uint %31394 %uint_32768
-      %31396 = OpUGreaterThan %bool %31395 %uint_0
-               OpSelectionMerge %39991 None
-               OpSwitch %uint_0 %39975
-      %39975 = OpLabel
-               OpSelectionMerge %39990 None
-               OpBranchConditional %31396 %39977 %39985
-      %39985 = OpLabel
-      %39987 = OpISub %uint %126052 %int_1
-      %39988 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %39987
-      %39989 = OpLoad %_arr_v2float_uint_2 %39988
-     %117382 = OpCompositeExtract %v2float %39989 0
-     %117383 = OpCompositeExtract %v2float %39989 1
-               OpBranch %39991
-      %39977 = OpLabel
-      %39979 = OpIAdd %uint %126104 %int_1
-      %39980 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %39981 = OpLoad %v2float %39980
-               OpBranch %39991
-      %39990 = OpLabel
-               OpUnreachable
-      %39991 = OpLabel
-     %127239 = OpPhi %uint %39979 %39977 %126104 %39985
-     %127238 = OpPhi %uint %126052 %39977 %39987 %39985
-     %127236 = OpPhi %v2float %39981 %39977 %117382 %39985
-     %127235 = OpPhi %v2float %39981 %39977 %117383 %39985
-      %31400 = OpLoad %uint %30040
-      %31401 = OpBitwiseAnd %uint %31400 %uint_16384
-      %31402 = OpUGreaterThan %bool %31401 %uint_0
-               OpSelectionMerge %40014 None
-               OpSwitch %uint_0 %39998
-      %39998 = OpLabel
-               OpSelectionMerge %40013 None
-               OpBranchConditional %31402 %40000 %40008
-      %40008 = OpLabel
-      %40010 = OpISub %uint %127238 %int_1
-      %40011 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %40010
-      %40012 = OpLoad %_arr_v2float_uint_2 %40011
-     %117373 = OpCompositeExtract %v2float %40012 0
-     %117374 = OpCompositeExtract %v2float %40012 1
-               OpBranch %40014
-      %40000 = OpLabel
-      %40002 = OpIAdd %uint %127239 %int_1
-      %40003 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %127239
-      %40004 = OpLoad %v2float %40003
-               OpBranch %40014
-      %40013 = OpLabel
-               OpUnreachable
-      %40014 = OpLabel
-     %190731 = OpPhi %uint %40002 %40000 %127239 %40008
-     %127244 = OpPhi %uint %127238 %40000 %40010 %40008
-     %127241 = OpPhi %v2float %40004 %40000 %117373 %40008
-     %127240 = OpPhi %v2float %40004 %40000 %117374 %40008
-      %31408 = OpExtInst %v2float %1 Pow %127236 %127241
-      %31414 = OpExtInst %v2float %1 Pow %127236 %127240
-      %31420 = OpExtInst %v2float %1 Pow %127235 %127241
-      %31426 = OpExtInst %v2float %1 Pow %127235 %127240
-      %31436 = OpExtInst %v2float %1 FMin %31420 %31426
-      %31437 = OpExtInst %v2float %1 FMin %31414 %31436
-      %31438 = OpExtInst %v2float %1 FMin %31408 %31437
-      %31448 = OpExtInst %v2float %1 FMax %31420 %31426
-      %31449 = OpExtInst %v2float %1 FMax %31414 %31448
-      %31450 = OpExtInst %v2float %1 FMax %31408 %31449
-     %118303 = OpCompositeConstruct %_arr_v2float_uint_2 %31438 %31450
-      %40018 = OpIAdd %uint %127244 %int_1
-      %40020 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %127244
-               OpStore %40020 %118303
-               OpBranch %38458
-      %31328 = OpLabel
-      %31331 = OpLoad %uint %30040
-      %31332 = OpBitwiseAnd %uint %31331 %uint_32768
-      %31333 = OpUGreaterThan %bool %31332 %uint_0
-               OpSelectionMerge %39940 None
-               OpSwitch %uint_0 %39924
-      %39924 = OpLabel
-               OpSelectionMerge %39939 None
-               OpBranchConditional %31333 %39926 %39934
-      %39934 = OpLabel
-      %39936 = OpISub %uint %126031 %int_1
-      %39937 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39936
-      %39938 = OpLoad %_arr_float_uint_2 %39937
-     %117400 = OpCompositeExtract %float %39938 0
-     %117401 = OpCompositeExtract %float %39938 1
-               OpBranch %39940
-      %39926 = OpLabel
-      %39928 = OpIAdd %uint %126033 %int_1
-      %39929 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %39930 = OpLoad %float %39929
-               OpBranch %39940
-      %39939 = OpLabel
-               OpUnreachable
-      %39940 = OpLabel
-     %127249 = OpPhi %uint %39928 %39926 %126033 %39934
-     %127248 = OpPhi %uint %126031 %39926 %39936 %39934
-     %127246 = OpPhi %float %39930 %39926 %117400 %39934
-     %127245 = OpPhi %float %39930 %39926 %117401 %39934
-      %31337 = OpLoad %uint %30040
-      %31338 = OpBitwiseAnd %uint %31337 %uint_16384
-      %31339 = OpUGreaterThan %bool %31338 %uint_0
-               OpSelectionMerge %39963 None
-               OpSwitch %uint_0 %39947
-      %39947 = OpLabel
-               OpSelectionMerge %39962 None
-               OpBranchConditional %31339 %39949 %39957
-      %39957 = OpLabel
-      %39959 = OpISub %uint %127248 %int_1
-      %39960 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39959
-      %39961 = OpLoad %_arr_float_uint_2 %39960
-     %117391 = OpCompositeExtract %float %39961 0
-     %117392 = OpCompositeExtract %float %39961 1
-               OpBranch %39963
-      %39949 = OpLabel
-      %39951 = OpIAdd %uint %127249 %int_1
-      %39952 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %127249
-      %39953 = OpLoad %float %39952
-               OpBranch %39963
-      %39962 = OpLabel
-               OpUnreachable
-      %39963 = OpLabel
-     %128309 = OpPhi %uint %39951 %39949 %127249 %39957
-     %127254 = OpPhi %uint %127248 %39949 %39959 %39957
-     %127251 = OpPhi %float %39953 %39949 %117391 %39957
-     %127250 = OpPhi %float %39953 %39949 %117392 %39957
-      %31345 = OpExtInst %float %1 Pow %127246 %127251
-      %31351 = OpExtInst %float %1 Pow %127246 %127250
-      %31357 = OpExtInst %float %1 Pow %127245 %127251
-      %31363 = OpExtInst %float %1 Pow %127245 %127250
-      %31373 = OpExtInst %float %1 FMin %31357 %31363
-      %31374 = OpExtInst %float %1 FMin %31351 %31373
-      %31375 = OpExtInst %float %1 FMin %31345 %31374
-      %31385 = OpExtInst %float %1 FMax %31357 %31363
-      %31386 = OpExtInst %float %1 FMax %31351 %31385
-      %31387 = OpExtInst %float %1 FMax %31345 %31386
-     %118288 = OpCompositeConstruct %_arr_float_uint_2 %31375 %31387
-      %39967 = OpIAdd %uint %127254 %int_1
-      %39969 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %127254
-               OpStore %39969 %118288
-               OpBranch %38458
-      %31261 = OpLabel
-      %31264 = OpLoad %uint %30040
-      %31265 = OpBitwiseAnd %uint %31264 %uint_32768
-      %31266 = OpUGreaterThan %bool %31265 %uint_0
-               OpSelectionMerge %39889 None
-               OpSwitch %uint_0 %39873
-      %39873 = OpLabel
-               OpSelectionMerge %39888 None
-               OpBranchConditional %31266 %39875 %39883
-      %39883 = OpLabel
-      %39885 = OpISub %uint %126050 %int_1
-      %39886 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %39885
-      %39887 = OpLoad %_arr_v4float_uint_2 %39886
-     %117418 = OpCompositeExtract %v4float %39887 0
-     %117419 = OpCompositeExtract %v4float %39887 1
-               OpBranch %39889
-      %39875 = OpLabel
-      %39877 = OpIAdd %uint %126076 %int_1
-      %39878 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %39879 = OpLoad %v4float %39878
-               OpBranch %39889
-      %39888 = OpLabel
-               OpUnreachable
-      %39889 = OpLabel
-     %189148 = OpPhi %uint %39877 %39875 %126076 %39883
-     %127265 = OpPhi %uint %126050 %39875 %39885 %39883
-     %127256 = OpPhi %v4float %39879 %39875 %117418 %39883
-     %127255 = OpPhi %v4float %39879 %39875 %117419 %39883
-      %31270 = OpLoad %uint %30040
-      %31271 = OpBitwiseAnd %uint %31270 %uint_16384
-      %31272 = OpUGreaterThan %bool %31271 %uint_0
-               OpSelectionMerge %39912 None
-               OpSwitch %uint_0 %39896
-      %39896 = OpLabel
-               OpSelectionMerge %39911 None
-               OpBranchConditional %31272 %39898 %39906
-      %39906 = OpLabel
-      %39908 = OpISub %uint %126031 %int_1
-      %39909 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39908
-      %39910 = OpLoad %_arr_float_uint_2 %39909
-     %117409 = OpCompositeExtract %float %39910 0
-     %117410 = OpCompositeExtract %float %39910 1
-               OpBranch %39912
-      %39898 = OpLabel
-      %39900 = OpIAdd %uint %126033 %int_1
-      %39901 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %39902 = OpLoad %float %39901
-               OpBranch %39912
-      %39911 = OpLabel
-               OpUnreachable
-      %39912 = OpLabel
-     %128308 = OpPhi %uint %39900 %39898 %126033 %39906
-     %128108 = OpPhi %uint %126031 %39898 %39908 %39906
-     %127261 = OpPhi %float %39902 %39898 %117409 %39906
-     %127260 = OpPhi %float %39902 %39898 %117410 %39906
-      %31278 = OpCompositeConstruct %v4float %127261 %127261 %127261 %127261
-      %31279 = OpFDiv %v4float %127256 %31278
-      %31285 = OpCompositeConstruct %v4float %127260 %127260 %127260 %127260
-      %31286 = OpFDiv %v4float %127256 %31285
-      %31293 = OpFDiv %v4float %127255 %31278
-      %31300 = OpFDiv %v4float %127255 %31285
-      %31310 = OpExtInst %v4float %1 FMin %31293 %31300
-      %31311 = OpExtInst %v4float %1 FMin %31286 %31310
-      %31312 = OpExtInst %v4float %1 FMin %31279 %31311
-      %31322 = OpExtInst %v4float %1 FMax %31293 %31300
-      %31323 = OpExtInst %v4float %1 FMax %31286 %31322
-      %31324 = OpExtInst %v4float %1 FMax %31279 %31323
-     %118273 = OpCompositeConstruct %_arr_v4float_uint_2 %31312 %31324
-      %39916 = OpIAdd %uint %127265 %int_1
-      %39918 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %127265
-               OpStore %39918 %118273
-               OpBranch %38458
-      %31198 = OpLabel
-      %31201 = OpLoad %uint %30040
-      %31202 = OpBitwiseAnd %uint %31201 %uint_32768
-      %31203 = OpUGreaterThan %bool %31202 %uint_0
-               OpSelectionMerge %39838 None
-               OpSwitch %uint_0 %39822
-      %39822 = OpLabel
-               OpSelectionMerge %39837 None
-               OpBranchConditional %31203 %39824 %39832
-      %39832 = OpLabel
-      %39834 = OpISub %uint %126050 %int_1
-      %39835 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %39834
-      %39836 = OpLoad %_arr_v4float_uint_2 %39835
-     %117436 = OpCompositeExtract %v4float %39836 0
-     %117437 = OpCompositeExtract %v4float %39836 1
-               OpBranch %39838
-      %39824 = OpLabel
-      %39826 = OpIAdd %uint %126076 %int_1
-      %39827 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %39828 = OpLoad %v4float %39827
-               OpBranch %39838
-      %39837 = OpLabel
-               OpUnreachable
-      %39838 = OpLabel
-     %127270 = OpPhi %uint %39826 %39824 %126076 %39832
-     %127269 = OpPhi %uint %126050 %39824 %39834 %39832
-     %127267 = OpPhi %v4float %39828 %39824 %117436 %39832
-     %127266 = OpPhi %v4float %39828 %39824 %117437 %39832
-      %31207 = OpLoad %uint %30040
-      %31208 = OpBitwiseAnd %uint %31207 %uint_16384
-      %31209 = OpUGreaterThan %bool %31208 %uint_0
-               OpSelectionMerge %39861 None
-               OpSwitch %uint_0 %39845
-      %39845 = OpLabel
-               OpSelectionMerge %39860 None
-               OpBranchConditional %31209 %39847 %39855
-      %39855 = OpLabel
-      %39857 = OpISub %uint %127269 %int_1
-      %39858 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %39857
-      %39859 = OpLoad %_arr_v4float_uint_2 %39858
-     %117427 = OpCompositeExtract %v4float %39859 0
-     %117428 = OpCompositeExtract %v4float %39859 1
-               OpBranch %39861
-      %39847 = OpLabel
-      %39849 = OpIAdd %uint %127270 %int_1
-      %39850 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %127270
-      %39851 = OpLoad %v4float %39850
-               OpBranch %39861
-      %39860 = OpLabel
-               OpUnreachable
-      %39861 = OpLabel
-     %189146 = OpPhi %uint %39849 %39847 %127270 %39855
-     %127275 = OpPhi %uint %127269 %39847 %39857 %39855
-     %127272 = OpPhi %v4float %39851 %39847 %117427 %39855
-     %127271 = OpPhi %v4float %39851 %39847 %117428 %39855
-      %31215 = OpFDiv %v4float %127267 %127272
-      %31221 = OpFDiv %v4float %127267 %127271
-      %31227 = OpFDiv %v4float %127266 %127272
-      %31233 = OpFDiv %v4float %127266 %127271
-      %31243 = OpExtInst %v4float %1 FMin %31227 %31233
-      %31244 = OpExtInst %v4float %1 FMin %31221 %31243
-      %31245 = OpExtInst %v4float %1 FMin %31215 %31244
-      %31255 = OpExtInst %v4float %1 FMax %31227 %31233
-      %31256 = OpExtInst %v4float %1 FMax %31221 %31255
-      %31257 = OpExtInst %v4float %1 FMax %31215 %31256
-     %118258 = OpCompositeConstruct %_arr_v4float_uint_2 %31245 %31257
-      %39865 = OpIAdd %uint %127275 %int_1
-      %39867 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %127275
-               OpStore %39867 %118258
-               OpBranch %38458
-      %31131 = OpLabel
-      %31134 = OpLoad %uint %30040
-      %31135 = OpBitwiseAnd %uint %31134 %uint_32768
-      %31136 = OpUGreaterThan %bool %31135 %uint_0
-               OpSelectionMerge %39787 None
-               OpSwitch %uint_0 %39771
-      %39771 = OpLabel
-               OpSelectionMerge %39786 None
-               OpBranchConditional %31136 %39773 %39781
-      %39781 = OpLabel
-      %39783 = OpISub %uint %126041 %int_1
-      %39784 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %39783
-      %39785 = OpLoad %_arr_v3float_uint_2 %39784
-     %117454 = OpCompositeExtract %v3float %39785 0
-     %117455 = OpCompositeExtract %v3float %39785 1
-               OpBranch %39787
-      %39773 = OpLabel
-      %39775 = OpIAdd %uint %126044 %int_1
-      %39776 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %39777 = OpLoad %v3float %39776
-               OpBranch %39787
-      %39786 = OpLabel
-               OpUnreachable
-      %39787 = OpLabel
-     %188371 = OpPhi %uint %39775 %39773 %126044 %39781
-     %127286 = OpPhi %uint %126041 %39773 %39783 %39781
-     %127277 = OpPhi %v3float %39777 %39773 %117454 %39781
-     %127276 = OpPhi %v3float %39777 %39773 %117455 %39781
-      %31140 = OpLoad %uint %30040
-      %31141 = OpBitwiseAnd %uint %31140 %uint_16384
-      %31142 = OpUGreaterThan %bool %31141 %uint_0
-               OpSelectionMerge %39810 None
-               OpSwitch %uint_0 %39794
-      %39794 = OpLabel
-               OpSelectionMerge %39809 None
-               OpBranchConditional %31142 %39796 %39804
-      %39804 = OpLabel
-      %39806 = OpISub %uint %126031 %int_1
-      %39807 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39806
-      %39808 = OpLoad %_arr_float_uint_2 %39807
-     %117445 = OpCompositeExtract %float %39808 0
-     %117446 = OpCompositeExtract %float %39808 1
-               OpBranch %39810
-      %39796 = OpLabel
-      %39798 = OpIAdd %uint %126033 %int_1
-      %39799 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %39800 = OpLoad %float %39799
-               OpBranch %39810
-      %39809 = OpLabel
-               OpUnreachable
-      %39810 = OpLabel
-     %128305 = OpPhi %uint %39798 %39796 %126033 %39804
-     %128105 = OpPhi %uint %126031 %39796 %39806 %39804
-     %127282 = OpPhi %float %39800 %39796 %117445 %39804
-     %127281 = OpPhi %float %39800 %39796 %117446 %39804
-      %31148 = OpCompositeConstruct %v3float %127282 %127282 %127282
-      %31149 = OpFDiv %v3float %127277 %31148
-      %31155 = OpCompositeConstruct %v3float %127281 %127281 %127281
-      %31156 = OpFDiv %v3float %127277 %31155
-      %31163 = OpFDiv %v3float %127276 %31148
-      %31170 = OpFDiv %v3float %127276 %31155
-      %31180 = OpExtInst %v3float %1 FMin %31163 %31170
-      %31181 = OpExtInst %v3float %1 FMin %31156 %31180
-      %31182 = OpExtInst %v3float %1 FMin %31149 %31181
-      %31192 = OpExtInst %v3float %1 FMax %31163 %31170
-      %31193 = OpExtInst %v3float %1 FMax %31156 %31192
-      %31194 = OpExtInst %v3float %1 FMax %31149 %31193
-     %118243 = OpCompositeConstruct %_arr_v3float_uint_2 %31182 %31194
-      %39814 = OpIAdd %uint %127286 %int_1
-      %39816 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %127286
-               OpStore %39816 %118243
-               OpBranch %38458
-      %31068 = OpLabel
-      %31071 = OpLoad %uint %30040
-      %31072 = OpBitwiseAnd %uint %31071 %uint_32768
-      %31073 = OpUGreaterThan %bool %31072 %uint_0
-               OpSelectionMerge %39736 None
-               OpSwitch %uint_0 %39720
-      %39720 = OpLabel
-               OpSelectionMerge %39735 None
-               OpBranchConditional %31073 %39722 %39730
-      %39730 = OpLabel
-      %39732 = OpISub %uint %126041 %int_1
-      %39733 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %39732
-      %39734 = OpLoad %_arr_v3float_uint_2 %39733
-     %117472 = OpCompositeExtract %v3float %39734 0
-     %117473 = OpCompositeExtract %v3float %39734 1
-               OpBranch %39736
-      %39722 = OpLabel
-      %39724 = OpIAdd %uint %126044 %int_1
-      %39725 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %39726 = OpLoad %v3float %39725
-               OpBranch %39736
-      %39735 = OpLabel
-               OpUnreachable
-      %39736 = OpLabel
-     %127291 = OpPhi %uint %39724 %39722 %126044 %39730
-     %127290 = OpPhi %uint %126041 %39722 %39732 %39730
-     %127288 = OpPhi %v3float %39726 %39722 %117472 %39730
-     %127287 = OpPhi %v3float %39726 %39722 %117473 %39730
-      %31077 = OpLoad %uint %30040
-      %31078 = OpBitwiseAnd %uint %31077 %uint_16384
-      %31079 = OpUGreaterThan %bool %31078 %uint_0
-               OpSelectionMerge %39759 None
-               OpSwitch %uint_0 %39743
-      %39743 = OpLabel
-               OpSelectionMerge %39758 None
-               OpBranchConditional %31079 %39745 %39753
-      %39753 = OpLabel
-      %39755 = OpISub %uint %127290 %int_1
-      %39756 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %39755
-      %39757 = OpLoad %_arr_v3float_uint_2 %39756
-     %117463 = OpCompositeExtract %v3float %39757 0
-     %117464 = OpCompositeExtract %v3float %39757 1
-               OpBranch %39759
-      %39745 = OpLabel
-      %39747 = OpIAdd %uint %127291 %int_1
-      %39748 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %127291
-      %39749 = OpLoad %v3float %39748
-               OpBranch %39759
-      %39758 = OpLabel
-               OpUnreachable
-      %39759 = OpLabel
-     %188369 = OpPhi %uint %39747 %39745 %127291 %39753
-     %127296 = OpPhi %uint %127290 %39745 %39755 %39753
-     %127293 = OpPhi %v3float %39749 %39745 %117463 %39753
-     %127292 = OpPhi %v3float %39749 %39745 %117464 %39753
-      %31085 = OpFDiv %v3float %127288 %127293
-      %31091 = OpFDiv %v3float %127288 %127292
-      %31097 = OpFDiv %v3float %127287 %127293
-      %31103 = OpFDiv %v3float %127287 %127292
-      %31113 = OpExtInst %v3float %1 FMin %31097 %31103
-      %31114 = OpExtInst %v3float %1 FMin %31091 %31113
-      %31115 = OpExtInst %v3float %1 FMin %31085 %31114
-      %31125 = OpExtInst %v3float %1 FMax %31097 %31103
-      %31126 = OpExtInst %v3float %1 FMax %31091 %31125
-      %31127 = OpExtInst %v3float %1 FMax %31085 %31126
-     %118228 = OpCompositeConstruct %_arr_v3float_uint_2 %31115 %31127
-      %39763 = OpIAdd %uint %127296 %int_1
-      %39765 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %127296
-               OpStore %39765 %118228
-               OpBranch %38458
-      %31001 = OpLabel
-      %31004 = OpLoad %uint %30040
-      %31005 = OpBitwiseAnd %uint %31004 %uint_32768
-      %31006 = OpUGreaterThan %bool %31005 %uint_0
-               OpSelectionMerge %39685 None
-               OpSwitch %uint_0 %39669
-      %39669 = OpLabel
-               OpSelectionMerge %39684 None
-               OpBranchConditional %31006 %39671 %39679
-      %39679 = OpLabel
-      %39681 = OpISub %uint %126052 %int_1
-      %39682 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %39681
-      %39683 = OpLoad %_arr_v2float_uint_2 %39682
-     %117490 = OpCompositeExtract %v2float %39683 0
-     %117491 = OpCompositeExtract %v2float %39683 1
-               OpBranch %39685
-      %39671 = OpLabel
-      %39673 = OpIAdd %uint %126104 %int_1
-      %39674 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %39675 = OpLoad %v2float %39674
-               OpBranch %39685
-      %39684 = OpLabel
-               OpUnreachable
-      %39685 = OpLabel
-     %190720 = OpPhi %uint %39673 %39671 %126104 %39679
-     %127307 = OpPhi %uint %126052 %39671 %39681 %39679
-     %127298 = OpPhi %v2float %39675 %39671 %117490 %39679
-     %127297 = OpPhi %v2float %39675 %39671 %117491 %39679
-      %31010 = OpLoad %uint %30040
-      %31011 = OpBitwiseAnd %uint %31010 %uint_16384
-      %31012 = OpUGreaterThan %bool %31011 %uint_0
-               OpSelectionMerge %39708 None
-               OpSwitch %uint_0 %39692
-      %39692 = OpLabel
-               OpSelectionMerge %39707 None
-               OpBranchConditional %31012 %39694 %39702
-      %39702 = OpLabel
-      %39704 = OpISub %uint %126031 %int_1
-      %39705 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39704
-      %39706 = OpLoad %_arr_float_uint_2 %39705
-     %117481 = OpCompositeExtract %float %39706 0
-     %117482 = OpCompositeExtract %float %39706 1
-               OpBranch %39708
-      %39694 = OpLabel
-      %39696 = OpIAdd %uint %126033 %int_1
-      %39697 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %39698 = OpLoad %float %39697
-               OpBranch %39708
-      %39707 = OpLabel
-               OpUnreachable
-      %39708 = OpLabel
-     %128302 = OpPhi %uint %39696 %39694 %126033 %39702
-     %128102 = OpPhi %uint %126031 %39694 %39704 %39702
-     %127303 = OpPhi %float %39698 %39694 %117481 %39702
-     %127302 = OpPhi %float %39698 %39694 %117482 %39702
-      %31018 = OpCompositeConstruct %v2float %127303 %127303
-      %31019 = OpFDiv %v2float %127298 %31018
-      %31025 = OpCompositeConstruct %v2float %127302 %127302
-      %31026 = OpFDiv %v2float %127298 %31025
-      %31033 = OpFDiv %v2float %127297 %31018
-      %31040 = OpFDiv %v2float %127297 %31025
-      %31050 = OpExtInst %v2float %1 FMin %31033 %31040
-      %31051 = OpExtInst %v2float %1 FMin %31026 %31050
-      %31052 = OpExtInst %v2float %1 FMin %31019 %31051
-      %31062 = OpExtInst %v2float %1 FMax %31033 %31040
-      %31063 = OpExtInst %v2float %1 FMax %31026 %31062
-      %31064 = OpExtInst %v2float %1 FMax %31019 %31063
-     %118213 = OpCompositeConstruct %_arr_v2float_uint_2 %31052 %31064
-      %39712 = OpIAdd %uint %127307 %int_1
-      %39714 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %127307
-               OpStore %39714 %118213
-               OpBranch %38458
-      %30938 = OpLabel
-      %30941 = OpLoad %uint %30040
-      %30942 = OpBitwiseAnd %uint %30941 %uint_32768
-      %30943 = OpUGreaterThan %bool %30942 %uint_0
-               OpSelectionMerge %39634 None
-               OpSwitch %uint_0 %39618
-      %39618 = OpLabel
-               OpSelectionMerge %39633 None
-               OpBranchConditional %30943 %39620 %39628
-      %39628 = OpLabel
-      %39630 = OpISub %uint %126052 %int_1
-      %39631 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %39630
-      %39632 = OpLoad %_arr_v2float_uint_2 %39631
-     %117508 = OpCompositeExtract %v2float %39632 0
-     %117509 = OpCompositeExtract %v2float %39632 1
-               OpBranch %39634
-      %39620 = OpLabel
-      %39622 = OpIAdd %uint %126104 %int_1
-      %39623 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %39624 = OpLoad %v2float %39623
-               OpBranch %39634
-      %39633 = OpLabel
-               OpUnreachable
-      %39634 = OpLabel
-     %127312 = OpPhi %uint %39622 %39620 %126104 %39628
-     %127311 = OpPhi %uint %126052 %39620 %39630 %39628
-     %127309 = OpPhi %v2float %39624 %39620 %117508 %39628
-     %127308 = OpPhi %v2float %39624 %39620 %117509 %39628
-      %30947 = OpLoad %uint %30040
-      %30948 = OpBitwiseAnd %uint %30947 %uint_16384
-      %30949 = OpUGreaterThan %bool %30948 %uint_0
-               OpSelectionMerge %39657 None
-               OpSwitch %uint_0 %39641
-      %39641 = OpLabel
-               OpSelectionMerge %39656 None
-               OpBranchConditional %30949 %39643 %39651
-      %39651 = OpLabel
-      %39653 = OpISub %uint %127311 %int_1
-      %39654 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %39653
-      %39655 = OpLoad %_arr_v2float_uint_2 %39654
-     %117499 = OpCompositeExtract %v2float %39655 0
-     %117500 = OpCompositeExtract %v2float %39655 1
-               OpBranch %39657
-      %39643 = OpLabel
-      %39645 = OpIAdd %uint %127312 %int_1
-      %39646 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %127312
-      %39647 = OpLoad %v2float %39646
-               OpBranch %39657
-      %39656 = OpLabel
-               OpUnreachable
-      %39657 = OpLabel
-     %190718 = OpPhi %uint %39645 %39643 %127312 %39651
-     %127317 = OpPhi %uint %127311 %39643 %39653 %39651
-     %127314 = OpPhi %v2float %39647 %39643 %117499 %39651
-     %127313 = OpPhi %v2float %39647 %39643 %117500 %39651
-      %30955 = OpFDiv %v2float %127309 %127314
-      %30961 = OpFDiv %v2float %127309 %127313
-      %30967 = OpFDiv %v2float %127308 %127314
-      %30973 = OpFDiv %v2float %127308 %127313
-      %30983 = OpExtInst %v2float %1 FMin %30967 %30973
-      %30984 = OpExtInst %v2float %1 FMin %30961 %30983
-      %30985 = OpExtInst %v2float %1 FMin %30955 %30984
-      %30995 = OpExtInst %v2float %1 FMax %30967 %30973
-      %30996 = OpExtInst %v2float %1 FMax %30961 %30995
-      %30997 = OpExtInst %v2float %1 FMax %30955 %30996
-     %118198 = OpCompositeConstruct %_arr_v2float_uint_2 %30985 %30997
-      %39661 = OpIAdd %uint %127317 %int_1
-      %39663 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %127317
-               OpStore %39663 %118198
-               OpBranch %38458
-      %30875 = OpLabel
-      %30878 = OpLoad %uint %30040
-      %30879 = OpBitwiseAnd %uint %30878 %uint_32768
-      %30880 = OpUGreaterThan %bool %30879 %uint_0
-               OpSelectionMerge %39583 None
-               OpSwitch %uint_0 %39567
-      %39567 = OpLabel
-               OpSelectionMerge %39582 None
-               OpBranchConditional %30880 %39569 %39577
-      %39577 = OpLabel
-      %39579 = OpISub %uint %126031 %int_1
-      %39580 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39579
-      %39581 = OpLoad %_arr_float_uint_2 %39580
-     %117526 = OpCompositeExtract %float %39581 0
-     %117527 = OpCompositeExtract %float %39581 1
-               OpBranch %39583
-      %39569 = OpLabel
-      %39571 = OpIAdd %uint %126033 %int_1
-      %39572 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %39573 = OpLoad %float %39572
-               OpBranch %39583
-      %39582 = OpLabel
-               OpUnreachable
-      %39583 = OpLabel
-     %127322 = OpPhi %uint %39571 %39569 %126033 %39577
-     %127321 = OpPhi %uint %126031 %39569 %39579 %39577
-     %127319 = OpPhi %float %39573 %39569 %117526 %39577
-     %127318 = OpPhi %float %39573 %39569 %117527 %39577
-      %30884 = OpLoad %uint %30040
-      %30885 = OpBitwiseAnd %uint %30884 %uint_16384
-      %30886 = OpUGreaterThan %bool %30885 %uint_0
-               OpSelectionMerge %39606 None
-               OpSwitch %uint_0 %39590
-      %39590 = OpLabel
-               OpSelectionMerge %39605 None
-               OpBranchConditional %30886 %39592 %39600
-      %39600 = OpLabel
-      %39602 = OpISub %uint %127321 %int_1
-      %39603 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39602
-      %39604 = OpLoad %_arr_float_uint_2 %39603
-     %117517 = OpCompositeExtract %float %39604 0
-     %117518 = OpCompositeExtract %float %39604 1
-               OpBranch %39606
-      %39592 = OpLabel
-      %39594 = OpIAdd %uint %127322 %int_1
-      %39595 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %127322
-      %39596 = OpLoad %float %39595
-               OpBranch %39606
-      %39605 = OpLabel
-               OpUnreachable
-      %39606 = OpLabel
-     %128299 = OpPhi %uint %39594 %39592 %127322 %39600
-     %127327 = OpPhi %uint %127321 %39592 %39602 %39600
-     %127324 = OpPhi %float %39596 %39592 %117517 %39600
-     %127323 = OpPhi %float %39596 %39592 %117518 %39600
-      %30892 = OpFDiv %float %127319 %127324
-      %30898 = OpFDiv %float %127319 %127323
-      %30904 = OpFDiv %float %127318 %127324
-      %30910 = OpFDiv %float %127318 %127323
-      %30920 = OpExtInst %float %1 FMin %30904 %30910
-      %30921 = OpExtInst %float %1 FMin %30898 %30920
-      %30922 = OpExtInst %float %1 FMin %30892 %30921
-      %30932 = OpExtInst %float %1 FMax %30904 %30910
-      %30933 = OpExtInst %float %1 FMax %30898 %30932
-      %30934 = OpExtInst %float %1 FMax %30892 %30933
-     %118183 = OpCompositeConstruct %_arr_float_uint_2 %30922 %30934
-      %39610 = OpIAdd %uint %127327 %int_1
-      %39612 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %127327
-               OpStore %39612 %118183
-               OpBranch %38458
-      %30812 = OpLabel
-      %30815 = OpLoad %uint %30040
-      %30816 = OpBitwiseAnd %uint %30815 %uint_32768
-      %30817 = OpUGreaterThan %bool %30816 %uint_0
-               OpSelectionMerge %39532 None
-               OpSwitch %uint_0 %39516
-      %39516 = OpLabel
-               OpSelectionMerge %39531 None
-               OpBranchConditional %30817 %39518 %39526
-      %39526 = OpLabel
-      %39528 = OpISub %uint %126050 %int_1
-      %39529 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %39528
-      %39530 = OpLoad %_arr_v4float_uint_2 %39529
-     %117544 = OpCompositeExtract %v4float %39530 0
-     %117545 = OpCompositeExtract %v4float %39530 1
-               OpBranch %39532
-      %39518 = OpLabel
-      %39520 = OpIAdd %uint %126076 %int_1
-      %39521 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %39522 = OpLoad %v4float %39521
-               OpBranch %39532
-      %39531 = OpLabel
-               OpUnreachable
-      %39532 = OpLabel
-     %189135 = OpPhi %uint %39520 %39518 %126076 %39526
-     %127338 = OpPhi %uint %126050 %39518 %39528 %39526
-     %127329 = OpPhi %v4float %39522 %39518 %117544 %39526
-     %127328 = OpPhi %v4float %39522 %39518 %117545 %39526
-      %30821 = OpLoad %uint %30040
-      %30822 = OpBitwiseAnd %uint %30821 %uint_16384
-      %30823 = OpUGreaterThan %bool %30822 %uint_0
-               OpSelectionMerge %39555 None
-               OpSwitch %uint_0 %39539
-      %39539 = OpLabel
-               OpSelectionMerge %39554 None
-               OpBranchConditional %30823 %39541 %39549
-      %39549 = OpLabel
-      %39551 = OpISub %uint %126031 %int_1
-      %39552 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39551
-      %39553 = OpLoad %_arr_float_uint_2 %39552
-     %117535 = OpCompositeExtract %float %39553 0
-     %117536 = OpCompositeExtract %float %39553 1
-               OpBranch %39555
-      %39541 = OpLabel
-      %39543 = OpIAdd %uint %126033 %int_1
-      %39544 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %39545 = OpLoad %float %39544
-               OpBranch %39555
-      %39554 = OpLabel
-               OpUnreachable
-      %39555 = OpLabel
-     %128298 = OpPhi %uint %39543 %39541 %126033 %39549
-     %128099 = OpPhi %uint %126031 %39541 %39551 %39549
-     %127334 = OpPhi %float %39545 %39541 %117535 %39549
-     %127333 = OpPhi %float %39545 %39541 %117536 %39549
-      %30829 = OpVectorTimesScalar %v4float %127329 %127334
-      %30835 = OpVectorTimesScalar %v4float %127329 %127333
-      %30841 = OpVectorTimesScalar %v4float %127328 %127334
-      %30847 = OpVectorTimesScalar %v4float %127328 %127333
-      %30857 = OpExtInst %v4float %1 FMin %30841 %30847
-      %30858 = OpExtInst %v4float %1 FMin %30835 %30857
-      %30859 = OpExtInst %v4float %1 FMin %30829 %30858
-      %30869 = OpExtInst %v4float %1 FMax %30841 %30847
-      %30870 = OpExtInst %v4float %1 FMax %30835 %30869
-      %30871 = OpExtInst %v4float %1 FMax %30829 %30870
-     %118168 = OpCompositeConstruct %_arr_v4float_uint_2 %30859 %30871
-      %39559 = OpIAdd %uint %127338 %int_1
-      %39561 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %127338
-               OpStore %39561 %118168
-               OpBranch %38458
-      %30749 = OpLabel
-      %30752 = OpLoad %uint %30040
-      %30753 = OpBitwiseAnd %uint %30752 %uint_32768
-      %30754 = OpUGreaterThan %bool %30753 %uint_0
-               OpSelectionMerge %39481 None
-               OpSwitch %uint_0 %39465
-      %39465 = OpLabel
-               OpSelectionMerge %39480 None
-               OpBranchConditional %30754 %39467 %39475
-      %39475 = OpLabel
-      %39477 = OpISub %uint %126050 %int_1
-      %39478 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %39477
-      %39479 = OpLoad %_arr_v4float_uint_2 %39478
-     %117562 = OpCompositeExtract %v4float %39479 0
-     %117563 = OpCompositeExtract %v4float %39479 1
-               OpBranch %39481
-      %39467 = OpLabel
-      %39469 = OpIAdd %uint %126076 %int_1
-      %39470 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %39471 = OpLoad %v4float %39470
-               OpBranch %39481
-      %39480 = OpLabel
-               OpUnreachable
-      %39481 = OpLabel
-     %127343 = OpPhi %uint %39469 %39467 %126076 %39475
-     %127342 = OpPhi %uint %126050 %39467 %39477 %39475
-     %127340 = OpPhi %v4float %39471 %39467 %117562 %39475
-     %127339 = OpPhi %v4float %39471 %39467 %117563 %39475
-      %30758 = OpLoad %uint %30040
-      %30759 = OpBitwiseAnd %uint %30758 %uint_16384
-      %30760 = OpUGreaterThan %bool %30759 %uint_0
-               OpSelectionMerge %39504 None
-               OpSwitch %uint_0 %39488
-      %39488 = OpLabel
-               OpSelectionMerge %39503 None
-               OpBranchConditional %30760 %39490 %39498
-      %39498 = OpLabel
-      %39500 = OpISub %uint %127342 %int_1
-      %39501 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %39500
-      %39502 = OpLoad %_arr_v4float_uint_2 %39501
-     %117553 = OpCompositeExtract %v4float %39502 0
-     %117554 = OpCompositeExtract %v4float %39502 1
-               OpBranch %39504
-      %39490 = OpLabel
-      %39492 = OpIAdd %uint %127343 %int_1
-      %39493 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %127343
-      %39494 = OpLoad %v4float %39493
-               OpBranch %39504
-      %39503 = OpLabel
-               OpUnreachable
-      %39504 = OpLabel
-     %189133 = OpPhi %uint %39492 %39490 %127343 %39498
-     %127348 = OpPhi %uint %127342 %39490 %39500 %39498
-     %127345 = OpPhi %v4float %39494 %39490 %117553 %39498
-     %127344 = OpPhi %v4float %39494 %39490 %117554 %39498
-      %30766 = OpFMul %v4float %127340 %127345
-      %30772 = OpFMul %v4float %127340 %127344
-      %30778 = OpFMul %v4float %127339 %127345
-      %30784 = OpFMul %v4float %127339 %127344
-      %30794 = OpExtInst %v4float %1 FMin %30778 %30784
-      %30795 = OpExtInst %v4float %1 FMin %30772 %30794
-      %30796 = OpExtInst %v4float %1 FMin %30766 %30795
-      %30806 = OpExtInst %v4float %1 FMax %30778 %30784
-      %30807 = OpExtInst %v4float %1 FMax %30772 %30806
-      %30808 = OpExtInst %v4float %1 FMax %30766 %30807
-     %118153 = OpCompositeConstruct %_arr_v4float_uint_2 %30796 %30808
-      %39508 = OpIAdd %uint %127348 %int_1
-      %39510 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %127348
-               OpStore %39510 %118153
-               OpBranch %38458
-      %30686 = OpLabel
-      %30689 = OpLoad %uint %30040
-      %30690 = OpBitwiseAnd %uint %30689 %uint_32768
-      %30691 = OpUGreaterThan %bool %30690 %uint_0
-               OpSelectionMerge %39430 None
-               OpSwitch %uint_0 %39414
-      %39414 = OpLabel
-               OpSelectionMerge %39429 None
-               OpBranchConditional %30691 %39416 %39424
-      %39424 = OpLabel
-      %39426 = OpISub %uint %126041 %int_1
-      %39427 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %39426
-      %39428 = OpLoad %_arr_v3float_uint_2 %39427
-     %117580 = OpCompositeExtract %v3float %39428 0
-     %117581 = OpCompositeExtract %v3float %39428 1
-               OpBranch %39430
-      %39416 = OpLabel
-      %39418 = OpIAdd %uint %126044 %int_1
-      %39419 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %39420 = OpLoad %v3float %39419
-               OpBranch %39430
-      %39429 = OpLabel
-               OpUnreachable
-      %39430 = OpLabel
-     %188358 = OpPhi %uint %39418 %39416 %126044 %39424
-     %127359 = OpPhi %uint %126041 %39416 %39426 %39424
-     %127350 = OpPhi %v3float %39420 %39416 %117580 %39424
-     %127349 = OpPhi %v3float %39420 %39416 %117581 %39424
-      %30695 = OpLoad %uint %30040
-      %30696 = OpBitwiseAnd %uint %30695 %uint_16384
-      %30697 = OpUGreaterThan %bool %30696 %uint_0
-               OpSelectionMerge %39453 None
-               OpSwitch %uint_0 %39437
-      %39437 = OpLabel
-               OpSelectionMerge %39452 None
-               OpBranchConditional %30697 %39439 %39447
-      %39447 = OpLabel
-      %39449 = OpISub %uint %126031 %int_1
-      %39450 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39449
-      %39451 = OpLoad %_arr_float_uint_2 %39450
-     %117571 = OpCompositeExtract %float %39451 0
-     %117572 = OpCompositeExtract %float %39451 1
-               OpBranch %39453
-      %39439 = OpLabel
-      %39441 = OpIAdd %uint %126033 %int_1
-      %39442 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %39443 = OpLoad %float %39442
-               OpBranch %39453
-      %39452 = OpLabel
-               OpUnreachable
-      %39453 = OpLabel
-     %128295 = OpPhi %uint %39441 %39439 %126033 %39447
-     %128096 = OpPhi %uint %126031 %39439 %39449 %39447
-     %127355 = OpPhi %float %39443 %39439 %117571 %39447
-     %127354 = OpPhi %float %39443 %39439 %117572 %39447
-      %30703 = OpVectorTimesScalar %v3float %127350 %127355
-      %30709 = OpVectorTimesScalar %v3float %127350 %127354
-      %30715 = OpVectorTimesScalar %v3float %127349 %127355
-      %30721 = OpVectorTimesScalar %v3float %127349 %127354
-      %30731 = OpExtInst %v3float %1 FMin %30715 %30721
-      %30732 = OpExtInst %v3float %1 FMin %30709 %30731
-      %30733 = OpExtInst %v3float %1 FMin %30703 %30732
-      %30743 = OpExtInst %v3float %1 FMax %30715 %30721
-      %30744 = OpExtInst %v3float %1 FMax %30709 %30743
-      %30745 = OpExtInst %v3float %1 FMax %30703 %30744
-     %118138 = OpCompositeConstruct %_arr_v3float_uint_2 %30733 %30745
-      %39457 = OpIAdd %uint %127359 %int_1
-      %39459 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %127359
-               OpStore %39459 %118138
-               OpBranch %38458
-      %30623 = OpLabel
-      %30626 = OpLoad %uint %30040
-      %30627 = OpBitwiseAnd %uint %30626 %uint_32768
-      %30628 = OpUGreaterThan %bool %30627 %uint_0
-               OpSelectionMerge %39379 None
-               OpSwitch %uint_0 %39363
-      %39363 = OpLabel
-               OpSelectionMerge %39378 None
-               OpBranchConditional %30628 %39365 %39373
-      %39373 = OpLabel
-      %39375 = OpISub %uint %126041 %int_1
-      %39376 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %39375
-      %39377 = OpLoad %_arr_v3float_uint_2 %39376
-     %117598 = OpCompositeExtract %v3float %39377 0
-     %117599 = OpCompositeExtract %v3float %39377 1
-               OpBranch %39379
-      %39365 = OpLabel
-      %39367 = OpIAdd %uint %126044 %int_1
-      %39368 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %39369 = OpLoad %v3float %39368
-               OpBranch %39379
-      %39378 = OpLabel
-               OpUnreachable
-      %39379 = OpLabel
-     %127364 = OpPhi %uint %39367 %39365 %126044 %39373
-     %127363 = OpPhi %uint %126041 %39365 %39375 %39373
-     %127361 = OpPhi %v3float %39369 %39365 %117598 %39373
-     %127360 = OpPhi %v3float %39369 %39365 %117599 %39373
-      %30632 = OpLoad %uint %30040
-      %30633 = OpBitwiseAnd %uint %30632 %uint_16384
-      %30634 = OpUGreaterThan %bool %30633 %uint_0
-               OpSelectionMerge %39402 None
-               OpSwitch %uint_0 %39386
-      %39386 = OpLabel
-               OpSelectionMerge %39401 None
-               OpBranchConditional %30634 %39388 %39396
-      %39396 = OpLabel
-      %39398 = OpISub %uint %127363 %int_1
-      %39399 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %39398
-      %39400 = OpLoad %_arr_v3float_uint_2 %39399
-     %117589 = OpCompositeExtract %v3float %39400 0
-     %117590 = OpCompositeExtract %v3float %39400 1
-               OpBranch %39402
-      %39388 = OpLabel
-      %39390 = OpIAdd %uint %127364 %int_1
-      %39391 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %127364
-      %39392 = OpLoad %v3float %39391
-               OpBranch %39402
-      %39401 = OpLabel
-               OpUnreachable
-      %39402 = OpLabel
-     %188356 = OpPhi %uint %39390 %39388 %127364 %39396
-     %127369 = OpPhi %uint %127363 %39388 %39398 %39396
-     %127366 = OpPhi %v3float %39392 %39388 %117589 %39396
-     %127365 = OpPhi %v3float %39392 %39388 %117590 %39396
-      %30640 = OpFMul %v3float %127361 %127366
-      %30646 = OpFMul %v3float %127361 %127365
-      %30652 = OpFMul %v3float %127360 %127366
-      %30658 = OpFMul %v3float %127360 %127365
-      %30668 = OpExtInst %v3float %1 FMin %30652 %30658
-      %30669 = OpExtInst %v3float %1 FMin %30646 %30668
-      %30670 = OpExtInst %v3float %1 FMin %30640 %30669
-      %30680 = OpExtInst %v3float %1 FMax %30652 %30658
-      %30681 = OpExtInst %v3float %1 FMax %30646 %30680
-      %30682 = OpExtInst %v3float %1 FMax %30640 %30681
-     %118123 = OpCompositeConstruct %_arr_v3float_uint_2 %30670 %30682
-      %39406 = OpIAdd %uint %127369 %int_1
-      %39408 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %127369
-               OpStore %39408 %118123
-               OpBranch %38458
-      %30560 = OpLabel
-      %30563 = OpLoad %uint %30040
-      %30564 = OpBitwiseAnd %uint %30563 %uint_32768
-      %30565 = OpUGreaterThan %bool %30564 %uint_0
-               OpSelectionMerge %39328 None
-               OpSwitch %uint_0 %39312
-      %39312 = OpLabel
-               OpSelectionMerge %39327 None
-               OpBranchConditional %30565 %39314 %39322
-      %39322 = OpLabel
-      %39324 = OpISub %uint %126052 %int_1
-      %39325 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %39324
-      %39326 = OpLoad %_arr_v2float_uint_2 %39325
-     %117616 = OpCompositeExtract %v2float %39326 0
-     %117617 = OpCompositeExtract %v2float %39326 1
-               OpBranch %39328
-      %39314 = OpLabel
-      %39316 = OpIAdd %uint %126104 %int_1
-      %39317 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %39318 = OpLoad %v2float %39317
-               OpBranch %39328
-      %39327 = OpLabel
-               OpUnreachable
-      %39328 = OpLabel
-     %190707 = OpPhi %uint %39316 %39314 %126104 %39322
-     %127380 = OpPhi %uint %126052 %39314 %39324 %39322
-     %127371 = OpPhi %v2float %39318 %39314 %117616 %39322
-     %127370 = OpPhi %v2float %39318 %39314 %117617 %39322
-      %30569 = OpLoad %uint %30040
-      %30570 = OpBitwiseAnd %uint %30569 %uint_16384
-      %30571 = OpUGreaterThan %bool %30570 %uint_0
-               OpSelectionMerge %39351 None
-               OpSwitch %uint_0 %39335
-      %39335 = OpLabel
-               OpSelectionMerge %39350 None
-               OpBranchConditional %30571 %39337 %39345
-      %39345 = OpLabel
-      %39347 = OpISub %uint %126031 %int_1
-      %39348 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39347
-      %39349 = OpLoad %_arr_float_uint_2 %39348
-     %117607 = OpCompositeExtract %float %39349 0
-     %117608 = OpCompositeExtract %float %39349 1
-               OpBranch %39351
-      %39337 = OpLabel
-      %39339 = OpIAdd %uint %126033 %int_1
-      %39340 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %39341 = OpLoad %float %39340
-               OpBranch %39351
-      %39350 = OpLabel
-               OpUnreachable
-      %39351 = OpLabel
-     %128292 = OpPhi %uint %39339 %39337 %126033 %39345
-     %128093 = OpPhi %uint %126031 %39337 %39347 %39345
-     %127376 = OpPhi %float %39341 %39337 %117607 %39345
-     %127375 = OpPhi %float %39341 %39337 %117608 %39345
-      %30577 = OpVectorTimesScalar %v2float %127371 %127376
-      %30583 = OpVectorTimesScalar %v2float %127371 %127375
-      %30589 = OpVectorTimesScalar %v2float %127370 %127376
-      %30595 = OpVectorTimesScalar %v2float %127370 %127375
-      %30605 = OpExtInst %v2float %1 FMin %30589 %30595
-      %30606 = OpExtInst %v2float %1 FMin %30583 %30605
-      %30607 = OpExtInst %v2float %1 FMin %30577 %30606
-      %30617 = OpExtInst %v2float %1 FMax %30589 %30595
-      %30618 = OpExtInst %v2float %1 FMax %30583 %30617
-      %30619 = OpExtInst %v2float %1 FMax %30577 %30618
-     %118108 = OpCompositeConstruct %_arr_v2float_uint_2 %30607 %30619
-      %39355 = OpIAdd %uint %127380 %int_1
-      %39357 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %127380
-               OpStore %39357 %118108
-               OpBranch %38458
-      %30497 = OpLabel
-      %30500 = OpLoad %uint %30040
-      %30501 = OpBitwiseAnd %uint %30500 %uint_32768
-      %30502 = OpUGreaterThan %bool %30501 %uint_0
-               OpSelectionMerge %39277 None
-               OpSwitch %uint_0 %39261
-      %39261 = OpLabel
-               OpSelectionMerge %39276 None
-               OpBranchConditional %30502 %39263 %39271
-      %39271 = OpLabel
-      %39273 = OpISub %uint %126052 %int_1
-      %39274 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %39273
-      %39275 = OpLoad %_arr_v2float_uint_2 %39274
-     %117634 = OpCompositeExtract %v2float %39275 0
-     %117635 = OpCompositeExtract %v2float %39275 1
-               OpBranch %39277
-      %39263 = OpLabel
-      %39265 = OpIAdd %uint %126104 %int_1
-      %39266 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %39267 = OpLoad %v2float %39266
-               OpBranch %39277
-      %39276 = OpLabel
-               OpUnreachable
-      %39277 = OpLabel
-     %127385 = OpPhi %uint %39265 %39263 %126104 %39271
-     %127384 = OpPhi %uint %126052 %39263 %39273 %39271
-     %127382 = OpPhi %v2float %39267 %39263 %117634 %39271
-     %127381 = OpPhi %v2float %39267 %39263 %117635 %39271
-      %30506 = OpLoad %uint %30040
-      %30507 = OpBitwiseAnd %uint %30506 %uint_16384
-      %30508 = OpUGreaterThan %bool %30507 %uint_0
-               OpSelectionMerge %39300 None
-               OpSwitch %uint_0 %39284
-      %39284 = OpLabel
-               OpSelectionMerge %39299 None
-               OpBranchConditional %30508 %39286 %39294
-      %39294 = OpLabel
-      %39296 = OpISub %uint %127384 %int_1
-      %39297 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %39296
-      %39298 = OpLoad %_arr_v2float_uint_2 %39297
-     %117625 = OpCompositeExtract %v2float %39298 0
-     %117626 = OpCompositeExtract %v2float %39298 1
-               OpBranch %39300
-      %39286 = OpLabel
-      %39288 = OpIAdd %uint %127385 %int_1
-      %39289 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %127385
-      %39290 = OpLoad %v2float %39289
-               OpBranch %39300
-      %39299 = OpLabel
-               OpUnreachable
-      %39300 = OpLabel
-     %190705 = OpPhi %uint %39288 %39286 %127385 %39294
-     %127390 = OpPhi %uint %127384 %39286 %39296 %39294
-     %127387 = OpPhi %v2float %39290 %39286 %117625 %39294
-     %127386 = OpPhi %v2float %39290 %39286 %117626 %39294
-      %30514 = OpFMul %v2float %127382 %127387
-      %30520 = OpFMul %v2float %127382 %127386
-      %30526 = OpFMul %v2float %127381 %127387
-      %30532 = OpFMul %v2float %127381 %127386
-      %30542 = OpExtInst %v2float %1 FMin %30526 %30532
-      %30543 = OpExtInst %v2float %1 FMin %30520 %30542
-      %30544 = OpExtInst %v2float %1 FMin %30514 %30543
-      %30554 = OpExtInst %v2float %1 FMax %30526 %30532
-      %30555 = OpExtInst %v2float %1 FMax %30520 %30554
-      %30556 = OpExtInst %v2float %1 FMax %30514 %30555
-     %118093 = OpCompositeConstruct %_arr_v2float_uint_2 %30544 %30556
-      %39304 = OpIAdd %uint %127390 %int_1
-      %39306 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %127390
-               OpStore %39306 %118093
-               OpBranch %38458
-      %30434 = OpLabel
-      %30437 = OpLoad %uint %30040
-      %30438 = OpBitwiseAnd %uint %30437 %uint_32768
-      %30439 = OpUGreaterThan %bool %30438 %uint_0
-               OpSelectionMerge %39226 None
-               OpSwitch %uint_0 %39210
-      %39210 = OpLabel
-               OpSelectionMerge %39225 None
-               OpBranchConditional %30439 %39212 %39220
-      %39220 = OpLabel
-      %39222 = OpISub %uint %126031 %int_1
-      %39223 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39222
-      %39224 = OpLoad %_arr_float_uint_2 %39223
-     %117652 = OpCompositeExtract %float %39224 0
-     %117653 = OpCompositeExtract %float %39224 1
-               OpBranch %39226
-      %39212 = OpLabel
-      %39214 = OpIAdd %uint %126033 %int_1
-      %39215 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %39216 = OpLoad %float %39215
-               OpBranch %39226
-      %39225 = OpLabel
-               OpUnreachable
-      %39226 = OpLabel
-     %127395 = OpPhi %uint %39214 %39212 %126033 %39220
-     %127394 = OpPhi %uint %126031 %39212 %39222 %39220
-     %127392 = OpPhi %float %39216 %39212 %117652 %39220
-     %127391 = OpPhi %float %39216 %39212 %117653 %39220
-      %30443 = OpLoad %uint %30040
-      %30444 = OpBitwiseAnd %uint %30443 %uint_16384
-      %30445 = OpUGreaterThan %bool %30444 %uint_0
-               OpSelectionMerge %39249 None
-               OpSwitch %uint_0 %39233
-      %39233 = OpLabel
-               OpSelectionMerge %39248 None
-               OpBranchConditional %30445 %39235 %39243
-      %39243 = OpLabel
-      %39245 = OpISub %uint %127394 %int_1
-      %39246 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39245
-      %39247 = OpLoad %_arr_float_uint_2 %39246
-     %117643 = OpCompositeExtract %float %39247 0
-     %117644 = OpCompositeExtract %float %39247 1
-               OpBranch %39249
-      %39235 = OpLabel
-      %39237 = OpIAdd %uint %127395 %int_1
-      %39238 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %127395
-      %39239 = OpLoad %float %39238
-               OpBranch %39249
-      %39248 = OpLabel
-               OpUnreachable
-      %39249 = OpLabel
-     %128289 = OpPhi %uint %39237 %39235 %127395 %39243
-     %127400 = OpPhi %uint %127394 %39235 %39245 %39243
-     %127397 = OpPhi %float %39239 %39235 %117643 %39243
-     %127396 = OpPhi %float %39239 %39235 %117644 %39243
-      %30451 = OpFMul %float %127392 %127397
-      %30457 = OpFMul %float %127392 %127396
-      %30463 = OpFMul %float %127391 %127397
-      %30469 = OpFMul %float %127391 %127396
-      %30479 = OpExtInst %float %1 FMin %30463 %30469
-      %30480 = OpExtInst %float %1 FMin %30457 %30479
-      %30481 = OpExtInst %float %1 FMin %30451 %30480
-      %30491 = OpExtInst %float %1 FMax %30463 %30469
-      %30492 = OpExtInst %float %1 FMax %30457 %30491
-      %30493 = OpExtInst %float %1 FMax %30451 %30492
-     %118078 = OpCompositeConstruct %_arr_float_uint_2 %30481 %30493
-      %39253 = OpIAdd %uint %127400 %int_1
-      %39255 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %127400
-               OpStore %39255 %118078
-               OpBranch %38458
-      %30405 = OpLabel
-      %30408 = OpLoad %uint %30040
-      %30409 = OpBitwiseAnd %uint %30408 %uint_32768
-      %30410 = OpUGreaterThan %bool %30409 %uint_0
-               OpSelectionMerge %39175 None
-               OpSwitch %uint_0 %39159
-      %39159 = OpLabel
-               OpSelectionMerge %39174 None
-               OpBranchConditional %30410 %39161 %39169
-      %39169 = OpLabel
-      %39171 = OpISub %uint %126050 %int_1
-      %39172 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %39171
-      %39173 = OpLoad %_arr_v4float_uint_2 %39172
-     %117670 = OpCompositeExtract %v4float %39173 0
-     %117671 = OpCompositeExtract %v4float %39173 1
-               OpBranch %39175
-      %39161 = OpLabel
-      %39163 = OpIAdd %uint %126076 %int_1
-      %39164 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %39165 = OpLoad %v4float %39164
-               OpBranch %39175
-      %39174 = OpLabel
-               OpUnreachable
-      %39175 = OpLabel
-     %189122 = OpPhi %uint %39163 %39161 %126076 %39169
-     %127411 = OpPhi %uint %126050 %39161 %39171 %39169
-     %127402 = OpPhi %v4float %39165 %39161 %117670 %39169
-     %127401 = OpPhi %v4float %39165 %39161 %117671 %39169
-      %30414 = OpLoad %uint %30040
-      %30415 = OpBitwiseAnd %uint %30414 %uint_16384
-      %30416 = OpUGreaterThan %bool %30415 %uint_0
-               OpSelectionMerge %39198 None
-               OpSwitch %uint_0 %39182
-      %39182 = OpLabel
-               OpSelectionMerge %39197 None
-               OpBranchConditional %30416 %39184 %39192
-      %39192 = OpLabel
-      %39194 = OpISub %uint %126031 %int_1
-      %39195 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39194
-      %39196 = OpLoad %_arr_float_uint_2 %39195
-     %117661 = OpCompositeExtract %float %39196 0
-     %117662 = OpCompositeExtract %float %39196 1
-               OpBranch %39198
-      %39184 = OpLabel
-      %39186 = OpIAdd %uint %126033 %int_1
-      %39187 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %39188 = OpLoad %float %39187
-               OpBranch %39198
-      %39197 = OpLabel
-               OpUnreachable
-      %39198 = OpLabel
-     %128288 = OpPhi %uint %39186 %39184 %126033 %39192
-     %128090 = OpPhi %uint %126031 %39184 %39194 %39192
-     %127407 = OpPhi %float %39188 %39184 %117661 %39192
-     %127406 = OpPhi %float %39188 %39184 %117662 %39192
-      %30422 = OpCompositeConstruct %v4float %127406 %127406 %127406 %127406
-      %30423 = OpFSub %v4float %127402 %30422
-      %30429 = OpCompositeConstruct %v4float %127407 %127407 %127407 %127407
-      %30430 = OpFSub %v4float %127401 %30429
-     %118067 = OpCompositeConstruct %_arr_v4float_uint_2 %30423 %30430
-      %39202 = OpIAdd %uint %127411 %int_1
-      %39204 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %127411
-               OpStore %39204 %118067
-               OpBranch %38458
-      %30378 = OpLabel
-      %30381 = OpLoad %uint %30040
-      %30382 = OpBitwiseAnd %uint %30381 %uint_32768
-      %30383 = OpUGreaterThan %bool %30382 %uint_0
-               OpSelectionMerge %39124 None
-               OpSwitch %uint_0 %39108
-      %39108 = OpLabel
-               OpSelectionMerge %39123 None
-               OpBranchConditional %30383 %39110 %39118
-      %39118 = OpLabel
-      %39120 = OpISub %uint %126050 %int_1
-      %39121 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %39120
-      %39122 = OpLoad %_arr_v4float_uint_2 %39121
-     %117688 = OpCompositeExtract %v4float %39122 0
-     %117689 = OpCompositeExtract %v4float %39122 1
-               OpBranch %39124
-      %39110 = OpLabel
-      %39112 = OpIAdd %uint %126076 %int_1
-      %39113 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %39114 = OpLoad %v4float %39113
-               OpBranch %39124
-      %39123 = OpLabel
-               OpUnreachable
-      %39124 = OpLabel
-     %127416 = OpPhi %uint %39112 %39110 %126076 %39118
-     %127415 = OpPhi %uint %126050 %39110 %39120 %39118
-     %127413 = OpPhi %v4float %39114 %39110 %117688 %39118
-     %127412 = OpPhi %v4float %39114 %39110 %117689 %39118
-      %30387 = OpLoad %uint %30040
-      %30388 = OpBitwiseAnd %uint %30387 %uint_16384
-      %30389 = OpUGreaterThan %bool %30388 %uint_0
-               OpSelectionMerge %39147 None
-               OpSwitch %uint_0 %39131
-      %39131 = OpLabel
-               OpSelectionMerge %39146 None
-               OpBranchConditional %30389 %39133 %39141
-      %39141 = OpLabel
-      %39143 = OpISub %uint %127415 %int_1
-      %39144 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %39143
-      %39145 = OpLoad %_arr_v4float_uint_2 %39144
-     %117679 = OpCompositeExtract %v4float %39145 0
-     %117680 = OpCompositeExtract %v4float %39145 1
-               OpBranch %39147
-      %39133 = OpLabel
-      %39135 = OpIAdd %uint %127416 %int_1
-      %39136 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %127416
-      %39137 = OpLoad %v4float %39136
-               OpBranch %39147
-      %39146 = OpLabel
-               OpUnreachable
-      %39147 = OpLabel
-     %189120 = OpPhi %uint %39135 %39133 %127416 %39141
-     %127421 = OpPhi %uint %127415 %39133 %39143 %39141
-     %127418 = OpPhi %v4float %39137 %39133 %117679 %39141
-     %127417 = OpPhi %v4float %39137 %39133 %117680 %39141
-      %30395 = OpFSub %v4float %127413 %127417
-      %30401 = OpFSub %v4float %127412 %127418
-     %118056 = OpCompositeConstruct %_arr_v4float_uint_2 %30395 %30401
-      %39151 = OpIAdd %uint %127421 %int_1
-      %39153 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %127421
-               OpStore %39153 %118056
-               OpBranch %38458
-      %30349 = OpLabel
-      %30352 = OpLoad %uint %30040
-      %30353 = OpBitwiseAnd %uint %30352 %uint_32768
-      %30354 = OpUGreaterThan %bool %30353 %uint_0
-               OpSelectionMerge %39073 None
-               OpSwitch %uint_0 %39057
-      %39057 = OpLabel
-               OpSelectionMerge %39072 None
-               OpBranchConditional %30354 %39059 %39067
-      %39067 = OpLabel
-      %39069 = OpISub %uint %126041 %int_1
-      %39070 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %39069
-      %39071 = OpLoad %_arr_v3float_uint_2 %39070
-     %117706 = OpCompositeExtract %v3float %39071 0
-     %117707 = OpCompositeExtract %v3float %39071 1
-               OpBranch %39073
-      %39059 = OpLabel
-      %39061 = OpIAdd %uint %126044 %int_1
-      %39062 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %39063 = OpLoad %v3float %39062
-               OpBranch %39073
-      %39072 = OpLabel
-               OpUnreachable
-      %39073 = OpLabel
-     %188345 = OpPhi %uint %39061 %39059 %126044 %39067
-     %127432 = OpPhi %uint %126041 %39059 %39069 %39067
-     %127423 = OpPhi %v3float %39063 %39059 %117706 %39067
-     %127422 = OpPhi %v3float %39063 %39059 %117707 %39067
-      %30358 = OpLoad %uint %30040
-      %30359 = OpBitwiseAnd %uint %30358 %uint_16384
-      %30360 = OpUGreaterThan %bool %30359 %uint_0
-               OpSelectionMerge %39096 None
-               OpSwitch %uint_0 %39080
-      %39080 = OpLabel
-               OpSelectionMerge %39095 None
-               OpBranchConditional %30360 %39082 %39090
-      %39090 = OpLabel
-      %39092 = OpISub %uint %126031 %int_1
-      %39093 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %39092
-      %39094 = OpLoad %_arr_float_uint_2 %39093
-     %117697 = OpCompositeExtract %float %39094 0
-     %117698 = OpCompositeExtract %float %39094 1
-               OpBranch %39096
-      %39082 = OpLabel
-      %39084 = OpIAdd %uint %126033 %int_1
-      %39085 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %39086 = OpLoad %float %39085
-               OpBranch %39096
-      %39095 = OpLabel
-               OpUnreachable
-      %39096 = OpLabel
-     %128285 = OpPhi %uint %39084 %39082 %126033 %39090
-     %128087 = OpPhi %uint %126031 %39082 %39092 %39090
-     %127428 = OpPhi %float %39086 %39082 %117697 %39090
-     %127427 = OpPhi %float %39086 %39082 %117698 %39090
-      %30366 = OpCompositeConstruct %v3float %127427 %127427 %127427
-      %30367 = OpFSub %v3float %127423 %30366
-      %30373 = OpCompositeConstruct %v3float %127428 %127428 %127428
-      %30374 = OpFSub %v3float %127422 %30373
-     %118045 = OpCompositeConstruct %_arr_v3float_uint_2 %30367 %30374
-      %39100 = OpIAdd %uint %127432 %int_1
-      %39102 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %127432
-               OpStore %39102 %118045
-               OpBranch %38458
-      %30322 = OpLabel
-      %30325 = OpLoad %uint %30040
-      %30326 = OpBitwiseAnd %uint %30325 %uint_32768
-      %30327 = OpUGreaterThan %bool %30326 %uint_0
-               OpSelectionMerge %39022 None
-               OpSwitch %uint_0 %39006
-      %39006 = OpLabel
-               OpSelectionMerge %39021 None
-               OpBranchConditional %30327 %39008 %39016
-      %39016 = OpLabel
-      %39018 = OpISub %uint %126041 %int_1
-      %39019 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %39018
-      %39020 = OpLoad %_arr_v3float_uint_2 %39019
-     %117724 = OpCompositeExtract %v3float %39020 0
-     %117725 = OpCompositeExtract %v3float %39020 1
-               OpBranch %39022
-      %39008 = OpLabel
-      %39010 = OpIAdd %uint %126044 %int_1
-      %39011 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %39012 = OpLoad %v3float %39011
-               OpBranch %39022
-      %39021 = OpLabel
-               OpUnreachable
-      %39022 = OpLabel
-     %127437 = OpPhi %uint %39010 %39008 %126044 %39016
-     %127436 = OpPhi %uint %126041 %39008 %39018 %39016
-     %127434 = OpPhi %v3float %39012 %39008 %117724 %39016
-     %127433 = OpPhi %v3float %39012 %39008 %117725 %39016
-      %30331 = OpLoad %uint %30040
-      %30332 = OpBitwiseAnd %uint %30331 %uint_16384
-      %30333 = OpUGreaterThan %bool %30332 %uint_0
-               OpSelectionMerge %39045 None
-               OpSwitch %uint_0 %39029
-      %39029 = OpLabel
-               OpSelectionMerge %39044 None
-               OpBranchConditional %30333 %39031 %39039
-      %39039 = OpLabel
-      %39041 = OpISub %uint %127436 %int_1
-      %39042 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %39041
-      %39043 = OpLoad %_arr_v3float_uint_2 %39042
-     %117715 = OpCompositeExtract %v3float %39043 0
-     %117716 = OpCompositeExtract %v3float %39043 1
-               OpBranch %39045
-      %39031 = OpLabel
-      %39033 = OpIAdd %uint %127437 %int_1
-      %39034 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %127437
-      %39035 = OpLoad %v3float %39034
-               OpBranch %39045
-      %39044 = OpLabel
-               OpUnreachable
-      %39045 = OpLabel
-     %188343 = OpPhi %uint %39033 %39031 %127437 %39039
-     %127442 = OpPhi %uint %127436 %39031 %39041 %39039
-     %127439 = OpPhi %v3float %39035 %39031 %117715 %39039
-     %127438 = OpPhi %v3float %39035 %39031 %117716 %39039
-      %30339 = OpFSub %v3float %127434 %127438
-      %30345 = OpFSub %v3float %127433 %127439
-     %118034 = OpCompositeConstruct %_arr_v3float_uint_2 %30339 %30345
-      %39049 = OpIAdd %uint %127442 %int_1
-      %39051 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %127442
-               OpStore %39051 %118034
-               OpBranch %38458
-      %30293 = OpLabel
-      %30296 = OpLoad %uint %30040
-      %30297 = OpBitwiseAnd %uint %30296 %uint_32768
-      %30298 = OpUGreaterThan %bool %30297 %uint_0
-               OpSelectionMerge %38971 None
-               OpSwitch %uint_0 %38955
-      %38955 = OpLabel
-               OpSelectionMerge %38970 None
-               OpBranchConditional %30298 %38957 %38965
-      %38965 = OpLabel
-      %38967 = OpISub %uint %126052 %int_1
-      %38968 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38967
-      %38969 = OpLoad %_arr_v2float_uint_2 %38968
-     %117742 = OpCompositeExtract %v2float %38969 0
-     %117743 = OpCompositeExtract %v2float %38969 1
-               OpBranch %38971
-      %38957 = OpLabel
-      %38959 = OpIAdd %uint %126104 %int_1
-      %38960 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %38961 = OpLoad %v2float %38960
-               OpBranch %38971
-      %38970 = OpLabel
-               OpUnreachable
-      %38971 = OpLabel
-     %190694 = OpPhi %uint %38959 %38957 %126104 %38965
-     %127453 = OpPhi %uint %126052 %38957 %38967 %38965
-     %127444 = OpPhi %v2float %38961 %38957 %117742 %38965
-     %127443 = OpPhi %v2float %38961 %38957 %117743 %38965
-      %30302 = OpLoad %uint %30040
-      %30303 = OpBitwiseAnd %uint %30302 %uint_16384
-      %30304 = OpUGreaterThan %bool %30303 %uint_0
-               OpSelectionMerge %38994 None
-               OpSwitch %uint_0 %38978
-      %38978 = OpLabel
-               OpSelectionMerge %38993 None
-               OpBranchConditional %30304 %38980 %38988
-      %38988 = OpLabel
-      %38990 = OpISub %uint %126031 %int_1
-      %38991 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %38990
-      %38992 = OpLoad %_arr_float_uint_2 %38991
-     %117733 = OpCompositeExtract %float %38992 0
-     %117734 = OpCompositeExtract %float %38992 1
-               OpBranch %38994
-      %38980 = OpLabel
-      %38982 = OpIAdd %uint %126033 %int_1
-      %38983 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %38984 = OpLoad %float %38983
-               OpBranch %38994
-      %38993 = OpLabel
-               OpUnreachable
-      %38994 = OpLabel
-     %128282 = OpPhi %uint %38982 %38980 %126033 %38988
-     %128084 = OpPhi %uint %126031 %38980 %38990 %38988
-     %127449 = OpPhi %float %38984 %38980 %117733 %38988
-     %127448 = OpPhi %float %38984 %38980 %117734 %38988
-      %30310 = OpCompositeConstruct %v2float %127448 %127448
-      %30311 = OpFSub %v2float %127444 %30310
-      %30317 = OpCompositeConstruct %v2float %127449 %127449
-      %30318 = OpFSub %v2float %127443 %30317
-     %118023 = OpCompositeConstruct %_arr_v2float_uint_2 %30311 %30318
-      %38998 = OpIAdd %uint %127453 %int_1
-      %39000 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %127453
-               OpStore %39000 %118023
-               OpBranch %38458
-      %30266 = OpLabel
-      %30269 = OpLoad %uint %30040
-      %30270 = OpBitwiseAnd %uint %30269 %uint_32768
-      %30271 = OpUGreaterThan %bool %30270 %uint_0
-               OpSelectionMerge %38920 None
-               OpSwitch %uint_0 %38904
-      %38904 = OpLabel
-               OpSelectionMerge %38919 None
-               OpBranchConditional %30271 %38906 %38914
-      %38914 = OpLabel
-      %38916 = OpISub %uint %126052 %int_1
-      %38917 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38916
-      %38918 = OpLoad %_arr_v2float_uint_2 %38917
-     %117760 = OpCompositeExtract %v2float %38918 0
-     %117761 = OpCompositeExtract %v2float %38918 1
-               OpBranch %38920
-      %38906 = OpLabel
-      %38908 = OpIAdd %uint %126104 %int_1
-      %38909 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %38910 = OpLoad %v2float %38909
-               OpBranch %38920
-      %38919 = OpLabel
-               OpUnreachable
-      %38920 = OpLabel
-     %127458 = OpPhi %uint %38908 %38906 %126104 %38914
-     %127457 = OpPhi %uint %126052 %38906 %38916 %38914
-     %127455 = OpPhi %v2float %38910 %38906 %117760 %38914
-     %127454 = OpPhi %v2float %38910 %38906 %117761 %38914
-      %30275 = OpLoad %uint %30040
-      %30276 = OpBitwiseAnd %uint %30275 %uint_16384
-      %30277 = OpUGreaterThan %bool %30276 %uint_0
-               OpSelectionMerge %38943 None
-               OpSwitch %uint_0 %38927
-      %38927 = OpLabel
-               OpSelectionMerge %38942 None
-               OpBranchConditional %30277 %38929 %38937
-      %38937 = OpLabel
-      %38939 = OpISub %uint %127457 %int_1
-      %38940 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38939
-      %38941 = OpLoad %_arr_v2float_uint_2 %38940
-     %117751 = OpCompositeExtract %v2float %38941 0
-     %117752 = OpCompositeExtract %v2float %38941 1
-               OpBranch %38943
-      %38929 = OpLabel
-      %38931 = OpIAdd %uint %127458 %int_1
-      %38932 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %127458
-      %38933 = OpLoad %v2float %38932
-               OpBranch %38943
-      %38942 = OpLabel
-               OpUnreachable
-      %38943 = OpLabel
-     %190692 = OpPhi %uint %38931 %38929 %127458 %38937
-     %127463 = OpPhi %uint %127457 %38929 %38939 %38937
-     %127460 = OpPhi %v2float %38933 %38929 %117751 %38937
-     %127459 = OpPhi %v2float %38933 %38929 %117752 %38937
-      %30283 = OpFSub %v2float %127455 %127459
-      %30289 = OpFSub %v2float %127454 %127460
-     %118012 = OpCompositeConstruct %_arr_v2float_uint_2 %30283 %30289
-      %38947 = OpIAdd %uint %127463 %int_1
-      %38949 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %127463
-               OpStore %38949 %118012
-               OpBranch %38458
-      %30239 = OpLabel
-      %30242 = OpLoad %uint %30040
-      %30243 = OpBitwiseAnd %uint %30242 %uint_32768
-      %30244 = OpUGreaterThan %bool %30243 %uint_0
-               OpSelectionMerge %38869 None
-               OpSwitch %uint_0 %38853
-      %38853 = OpLabel
-               OpSelectionMerge %38868 None
-               OpBranchConditional %30244 %38855 %38863
-      %38863 = OpLabel
-      %38865 = OpISub %uint %126031 %int_1
-      %38866 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %38865
-      %38867 = OpLoad %_arr_float_uint_2 %38866
-     %117778 = OpCompositeExtract %float %38867 0
-     %117779 = OpCompositeExtract %float %38867 1
-               OpBranch %38869
-      %38855 = OpLabel
-      %38857 = OpIAdd %uint %126033 %int_1
-      %38858 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %38859 = OpLoad %float %38858
-               OpBranch %38869
-      %38868 = OpLabel
-               OpUnreachable
-      %38869 = OpLabel
-     %127468 = OpPhi %uint %38857 %38855 %126033 %38863
-     %127467 = OpPhi %uint %126031 %38855 %38865 %38863
-     %127465 = OpPhi %float %38859 %38855 %117778 %38863
-     %127464 = OpPhi %float %38859 %38855 %117779 %38863
-      %30248 = OpLoad %uint %30040
-      %30249 = OpBitwiseAnd %uint %30248 %uint_16384
-      %30250 = OpUGreaterThan %bool %30249 %uint_0
-               OpSelectionMerge %38892 None
-               OpSwitch %uint_0 %38876
-      %38876 = OpLabel
-               OpSelectionMerge %38891 None
-               OpBranchConditional %30250 %38878 %38886
-      %38886 = OpLabel
-      %38888 = OpISub %uint %127467 %int_1
-      %38889 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %38888
-      %38890 = OpLoad %_arr_float_uint_2 %38889
-     %117769 = OpCompositeExtract %float %38890 0
-     %117770 = OpCompositeExtract %float %38890 1
-               OpBranch %38892
-      %38878 = OpLabel
-      %38880 = OpIAdd %uint %127468 %int_1
-      %38881 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %127468
-      %38882 = OpLoad %float %38881
-               OpBranch %38892
-      %38891 = OpLabel
-               OpUnreachable
-      %38892 = OpLabel
-     %128279 = OpPhi %uint %38880 %38878 %127468 %38886
-     %127473 = OpPhi %uint %127467 %38878 %38888 %38886
-     %127470 = OpPhi %float %38882 %38878 %117769 %38886
-     %127469 = OpPhi %float %38882 %38878 %117770 %38886
-      %30256 = OpFSub %float %127465 %127469
-      %30262 = OpFSub %float %127464 %127470
-     %118001 = OpCompositeConstruct %_arr_float_uint_2 %30256 %30262
-      %38896 = OpIAdd %uint %127473 %int_1
-      %38898 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %127473
-               OpStore %38898 %118001
-               OpBranch %38458
-      %30210 = OpLabel
-      %30213 = OpLoad %uint %30040
-      %30214 = OpBitwiseAnd %uint %30213 %uint_32768
-      %30215 = OpUGreaterThan %bool %30214 %uint_0
-               OpSelectionMerge %38818 None
-               OpSwitch %uint_0 %38802
-      %38802 = OpLabel
-               OpSelectionMerge %38817 None
-               OpBranchConditional %30215 %38804 %38812
-      %38812 = OpLabel
-      %38814 = OpISub %uint %126050 %int_1
-      %38815 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38814
-      %38816 = OpLoad %_arr_v4float_uint_2 %38815
-     %117796 = OpCompositeExtract %v4float %38816 0
-     %117797 = OpCompositeExtract %v4float %38816 1
-               OpBranch %38818
-      %38804 = OpLabel
-      %38806 = OpIAdd %uint %126076 %int_1
-      %38807 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %38808 = OpLoad %v4float %38807
-               OpBranch %38818
-      %38817 = OpLabel
-               OpUnreachable
-      %38818 = OpLabel
-     %189109 = OpPhi %uint %38806 %38804 %126076 %38812
-     %127484 = OpPhi %uint %126050 %38804 %38814 %38812
-     %127475 = OpPhi %v4float %38808 %38804 %117796 %38812
-     %127474 = OpPhi %v4float %38808 %38804 %117797 %38812
-      %30219 = OpLoad %uint %30040
-      %30220 = OpBitwiseAnd %uint %30219 %uint_16384
-      %30221 = OpUGreaterThan %bool %30220 %uint_0
-               OpSelectionMerge %38841 None
-               OpSwitch %uint_0 %38825
-      %38825 = OpLabel
-               OpSelectionMerge %38840 None
-               OpBranchConditional %30221 %38827 %38835
-      %38835 = OpLabel
-      %38837 = OpISub %uint %126031 %int_1
-      %38838 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %38837
-      %38839 = OpLoad %_arr_float_uint_2 %38838
-     %117787 = OpCompositeExtract %float %38839 0
-     %117788 = OpCompositeExtract %float %38839 1
-               OpBranch %38841
-      %38827 = OpLabel
-      %38829 = OpIAdd %uint %126033 %int_1
-      %38830 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %38831 = OpLoad %float %38830
-               OpBranch %38841
-      %38840 = OpLabel
-               OpUnreachable
-      %38841 = OpLabel
-     %128278 = OpPhi %uint %38829 %38827 %126033 %38835
-     %128081 = OpPhi %uint %126031 %38827 %38837 %38835
-     %127480 = OpPhi %float %38831 %38827 %117787 %38835
-     %127479 = OpPhi %float %38831 %38827 %117788 %38835
-      %30227 = OpCompositeConstruct %v4float %127480 %127480 %127480 %127480
-      %30228 = OpFAdd %v4float %127475 %30227
-      %30234 = OpCompositeConstruct %v4float %127479 %127479 %127479 %127479
-      %30235 = OpFAdd %v4float %127474 %30234
-     %117990 = OpCompositeConstruct %_arr_v4float_uint_2 %30228 %30235
-      %38845 = OpIAdd %uint %127484 %int_1
-      %38847 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %127484
-               OpStore %38847 %117990
-               OpBranch %38458
-      %30183 = OpLabel
-      %30186 = OpLoad %uint %30040
-      %30187 = OpBitwiseAnd %uint %30186 %uint_32768
-      %30188 = OpUGreaterThan %bool %30187 %uint_0
-               OpSelectionMerge %38767 None
-               OpSwitch %uint_0 %38751
-      %38751 = OpLabel
-               OpSelectionMerge %38766 None
-               OpBranchConditional %30188 %38753 %38761
-      %38761 = OpLabel
-      %38763 = OpISub %uint %126050 %int_1
-      %38764 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38763
-      %38765 = OpLoad %_arr_v4float_uint_2 %38764
-     %117814 = OpCompositeExtract %v4float %38765 0
-     %117815 = OpCompositeExtract %v4float %38765 1
-               OpBranch %38767
-      %38753 = OpLabel
-      %38755 = OpIAdd %uint %126076 %int_1
-      %38756 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %126076
-      %38757 = OpLoad %v4float %38756
-               OpBranch %38767
-      %38766 = OpLabel
-               OpUnreachable
-      %38767 = OpLabel
-     %127489 = OpPhi %uint %38755 %38753 %126076 %38761
-     %127488 = OpPhi %uint %126050 %38753 %38763 %38761
-     %127486 = OpPhi %v4float %38757 %38753 %117814 %38761
-     %127485 = OpPhi %v4float %38757 %38753 %117815 %38761
-      %30192 = OpLoad %uint %30040
-      %30193 = OpBitwiseAnd %uint %30192 %uint_16384
-      %30194 = OpUGreaterThan %bool %30193 %uint_0
-               OpSelectionMerge %38790 None
-               OpSwitch %uint_0 %38774
-      %38774 = OpLabel
-               OpSelectionMerge %38789 None
-               OpBranchConditional %30194 %38776 %38784
-      %38784 = OpLabel
-      %38786 = OpISub %uint %127488 %int_1
-      %38787 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %38786
-      %38788 = OpLoad %_arr_v4float_uint_2 %38787
-     %117805 = OpCompositeExtract %v4float %38788 0
-     %117806 = OpCompositeExtract %v4float %38788 1
-               OpBranch %38790
-      %38776 = OpLabel
-      %38778 = OpIAdd %uint %127489 %int_1
-      %38779 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %127489
-      %38780 = OpLoad %v4float %38779
-               OpBranch %38790
-      %38789 = OpLabel
-               OpUnreachable
-      %38790 = OpLabel
-     %189107 = OpPhi %uint %38778 %38776 %127489 %38784
-     %127494 = OpPhi %uint %127488 %38776 %38786 %38784
-     %127491 = OpPhi %v4float %38780 %38776 %117805 %38784
-     %127490 = OpPhi %v4float %38780 %38776 %117806 %38784
-      %30200 = OpFAdd %v4float %127486 %127491
-      %30206 = OpFAdd %v4float %127485 %127490
-     %117979 = OpCompositeConstruct %_arr_v4float_uint_2 %30200 %30206
-      %38794 = OpIAdd %uint %127494 %int_1
-      %38796 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %127494
-               OpStore %38796 %117979
-               OpBranch %38458
-      %30154 = OpLabel
-      %30157 = OpLoad %uint %30040
-      %30158 = OpBitwiseAnd %uint %30157 %uint_32768
-      %30159 = OpUGreaterThan %bool %30158 %uint_0
-               OpSelectionMerge %38716 None
-               OpSwitch %uint_0 %38700
-      %38700 = OpLabel
-               OpSelectionMerge %38715 None
-               OpBranchConditional %30159 %38702 %38710
-      %38710 = OpLabel
-      %38712 = OpISub %uint %126041 %int_1
-      %38713 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38712
-      %38714 = OpLoad %_arr_v3float_uint_2 %38713
-     %117832 = OpCompositeExtract %v3float %38714 0
-     %117833 = OpCompositeExtract %v3float %38714 1
-               OpBranch %38716
-      %38702 = OpLabel
-      %38704 = OpIAdd %uint %126044 %int_1
-      %38705 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %38706 = OpLoad %v3float %38705
-               OpBranch %38716
-      %38715 = OpLabel
-               OpUnreachable
-      %38716 = OpLabel
-     %188332 = OpPhi %uint %38704 %38702 %126044 %38710
-     %127505 = OpPhi %uint %126041 %38702 %38712 %38710
-     %127496 = OpPhi %v3float %38706 %38702 %117832 %38710
-     %127495 = OpPhi %v3float %38706 %38702 %117833 %38710
-      %30163 = OpLoad %uint %30040
-      %30164 = OpBitwiseAnd %uint %30163 %uint_16384
-      %30165 = OpUGreaterThan %bool %30164 %uint_0
-               OpSelectionMerge %38739 None
-               OpSwitch %uint_0 %38723
-      %38723 = OpLabel
-               OpSelectionMerge %38738 None
-               OpBranchConditional %30165 %38725 %38733
-      %38733 = OpLabel
-      %38735 = OpISub %uint %126031 %int_1
-      %38736 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %38735
-      %38737 = OpLoad %_arr_float_uint_2 %38736
-     %117823 = OpCompositeExtract %float %38737 0
-     %117824 = OpCompositeExtract %float %38737 1
-               OpBranch %38739
-      %38725 = OpLabel
-      %38727 = OpIAdd %uint %126033 %int_1
-      %38728 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %38729 = OpLoad %float %38728
-               OpBranch %38739
-      %38738 = OpLabel
-               OpUnreachable
-      %38739 = OpLabel
-     %128275 = OpPhi %uint %38727 %38725 %126033 %38733
-     %128078 = OpPhi %uint %126031 %38725 %38735 %38733
-     %127501 = OpPhi %float %38729 %38725 %117823 %38733
-     %127500 = OpPhi %float %38729 %38725 %117824 %38733
-      %30171 = OpCompositeConstruct %v3float %127501 %127501 %127501
-      %30172 = OpFAdd %v3float %127496 %30171
-      %30178 = OpCompositeConstruct %v3float %127500 %127500 %127500
-      %30179 = OpFAdd %v3float %127495 %30178
-     %117968 = OpCompositeConstruct %_arr_v3float_uint_2 %30172 %30179
-      %38743 = OpIAdd %uint %127505 %int_1
-      %38745 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %127505
-               OpStore %38745 %117968
-               OpBranch %38458
-      %30127 = OpLabel
-      %30130 = OpLoad %uint %30040
-      %30131 = OpBitwiseAnd %uint %30130 %uint_32768
-      %30132 = OpUGreaterThan %bool %30131 %uint_0
-               OpSelectionMerge %38665 None
-               OpSwitch %uint_0 %38649
-      %38649 = OpLabel
-               OpSelectionMerge %38664 None
-               OpBranchConditional %30132 %38651 %38659
-      %38659 = OpLabel
-      %38661 = OpISub %uint %126041 %int_1
-      %38662 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38661
-      %38663 = OpLoad %_arr_v3float_uint_2 %38662
-     %117850 = OpCompositeExtract %v3float %38663 0
-     %117851 = OpCompositeExtract %v3float %38663 1
-               OpBranch %38665
-      %38651 = OpLabel
-      %38653 = OpIAdd %uint %126044 %int_1
-      %38654 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %126044
-      %38655 = OpLoad %v3float %38654
-               OpBranch %38665
-      %38664 = OpLabel
-               OpUnreachable
-      %38665 = OpLabel
-     %127510 = OpPhi %uint %38653 %38651 %126044 %38659
-     %127509 = OpPhi %uint %126041 %38651 %38661 %38659
-     %127507 = OpPhi %v3float %38655 %38651 %117850 %38659
-     %127506 = OpPhi %v3float %38655 %38651 %117851 %38659
-      %30136 = OpLoad %uint %30040
-      %30137 = OpBitwiseAnd %uint %30136 %uint_16384
-      %30138 = OpUGreaterThan %bool %30137 %uint_0
-               OpSelectionMerge %38688 None
-               OpSwitch %uint_0 %38672
-      %38672 = OpLabel
-               OpSelectionMerge %38687 None
-               OpBranchConditional %30138 %38674 %38682
-      %38682 = OpLabel
-      %38684 = OpISub %uint %127509 %int_1
-      %38685 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %38684
-      %38686 = OpLoad %_arr_v3float_uint_2 %38685
-     %117841 = OpCompositeExtract %v3float %38686 0
-     %117842 = OpCompositeExtract %v3float %38686 1
-               OpBranch %38688
-      %38674 = OpLabel
-      %38676 = OpIAdd %uint %127510 %int_1
-      %38677 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %127510
-      %38678 = OpLoad %v3float %38677
-               OpBranch %38688
-      %38687 = OpLabel
-               OpUnreachable
-      %38688 = OpLabel
-     %188330 = OpPhi %uint %38676 %38674 %127510 %38682
-     %127515 = OpPhi %uint %127509 %38674 %38684 %38682
-     %127512 = OpPhi %v3float %38678 %38674 %117841 %38682
-     %127511 = OpPhi %v3float %38678 %38674 %117842 %38682
-      %30144 = OpFAdd %v3float %127507 %127512
-      %30150 = OpFAdd %v3float %127506 %127511
-     %117957 = OpCompositeConstruct %_arr_v3float_uint_2 %30144 %30150
-      %38692 = OpIAdd %uint %127515 %int_1
-      %38694 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %127515
-               OpStore %38694 %117957
-               OpBranch %38458
-      %30098 = OpLabel
-      %30101 = OpLoad %uint %30040
-      %30102 = OpBitwiseAnd %uint %30101 %uint_32768
-      %30103 = OpUGreaterThan %bool %30102 %uint_0
-               OpSelectionMerge %38614 None
-               OpSwitch %uint_0 %38598
-      %38598 = OpLabel
-               OpSelectionMerge %38613 None
-               OpBranchConditional %30103 %38600 %38608
-      %38608 = OpLabel
-      %38610 = OpISub %uint %126052 %int_1
-      %38611 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38610
-      %38612 = OpLoad %_arr_v2float_uint_2 %38611
-     %117868 = OpCompositeExtract %v2float %38612 0
-     %117869 = OpCompositeExtract %v2float %38612 1
-               OpBranch %38614
-      %38600 = OpLabel
-      %38602 = OpIAdd %uint %126104 %int_1
-      %38603 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %38604 = OpLoad %v2float %38603
-               OpBranch %38614
-      %38613 = OpLabel
-               OpUnreachable
-      %38614 = OpLabel
-     %190681 = OpPhi %uint %38602 %38600 %126104 %38608
-     %127526 = OpPhi %uint %126052 %38600 %38610 %38608
-     %127517 = OpPhi %v2float %38604 %38600 %117868 %38608
-     %127516 = OpPhi %v2float %38604 %38600 %117869 %38608
-      %30107 = OpLoad %uint %30040
-      %30108 = OpBitwiseAnd %uint %30107 %uint_16384
-      %30109 = OpUGreaterThan %bool %30108 %uint_0
-               OpSelectionMerge %38637 None
-               OpSwitch %uint_0 %38621
-      %38621 = OpLabel
-               OpSelectionMerge %38636 None
-               OpBranchConditional %30109 %38623 %38631
-      %38631 = OpLabel
-      %38633 = OpISub %uint %126031 %int_1
-      %38634 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %38633
-      %38635 = OpLoad %_arr_float_uint_2 %38634
-     %117859 = OpCompositeExtract %float %38635 0
-     %117860 = OpCompositeExtract %float %38635 1
-               OpBranch %38637
-      %38623 = OpLabel
-      %38625 = OpIAdd %uint %126033 %int_1
-      %38626 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %38627 = OpLoad %float %38626
-               OpBranch %38637
-      %38636 = OpLabel
-               OpUnreachable
-      %38637 = OpLabel
-     %128272 = OpPhi %uint %38625 %38623 %126033 %38631
-     %128075 = OpPhi %uint %126031 %38623 %38633 %38631
-     %127522 = OpPhi %float %38627 %38623 %117859 %38631
-     %127521 = OpPhi %float %38627 %38623 %117860 %38631
-      %30115 = OpCompositeConstruct %v2float %127522 %127522
-      %30116 = OpFAdd %v2float %127517 %30115
-      %30122 = OpCompositeConstruct %v2float %127521 %127521
-      %30123 = OpFAdd %v2float %127516 %30122
-     %117946 = OpCompositeConstruct %_arr_v2float_uint_2 %30116 %30123
-      %38641 = OpIAdd %uint %127526 %int_1
-      %38643 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %127526
-               OpStore %38643 %117946
-               OpBranch %38458
-      %30071 = OpLabel
-      %30074 = OpLoad %uint %30040
-      %30075 = OpBitwiseAnd %uint %30074 %uint_32768
-      %30076 = OpUGreaterThan %bool %30075 %uint_0
-               OpSelectionMerge %38563 None
-               OpSwitch %uint_0 %38547
-      %38547 = OpLabel
-               OpSelectionMerge %38562 None
-               OpBranchConditional %30076 %38549 %38557
-      %38557 = OpLabel
-      %38559 = OpISub %uint %126052 %int_1
-      %38560 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38559
-      %38561 = OpLoad %_arr_v2float_uint_2 %38560
-     %117886 = OpCompositeExtract %v2float %38561 0
-     %117887 = OpCompositeExtract %v2float %38561 1
-               OpBranch %38563
-      %38549 = OpLabel
-      %38551 = OpIAdd %uint %126104 %int_1
-      %38552 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %126104
-      %38553 = OpLoad %v2float %38552
-               OpBranch %38563
-      %38562 = OpLabel
-               OpUnreachable
-      %38563 = OpLabel
-     %127531 = OpPhi %uint %38551 %38549 %126104 %38557
-     %127530 = OpPhi %uint %126052 %38549 %38559 %38557
-     %127528 = OpPhi %v2float %38553 %38549 %117886 %38557
-     %127527 = OpPhi %v2float %38553 %38549 %117887 %38557
-      %30080 = OpLoad %uint %30040
-      %30081 = OpBitwiseAnd %uint %30080 %uint_16384
-      %30082 = OpUGreaterThan %bool %30081 %uint_0
-               OpSelectionMerge %38586 None
-               OpSwitch %uint_0 %38570
-      %38570 = OpLabel
-               OpSelectionMerge %38585 None
-               OpBranchConditional %30082 %38572 %38580
-      %38580 = OpLabel
-      %38582 = OpISub %uint %127530 %int_1
-      %38583 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %38582
-      %38584 = OpLoad %_arr_v2float_uint_2 %38583
-     %117877 = OpCompositeExtract %v2float %38584 0
-     %117878 = OpCompositeExtract %v2float %38584 1
-               OpBranch %38586
-      %38572 = OpLabel
-      %38574 = OpIAdd %uint %127531 %int_1
-      %38575 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %127531
-      %38576 = OpLoad %v2float %38575
-               OpBranch %38586
-      %38585 = OpLabel
-               OpUnreachable
-      %38586 = OpLabel
-     %190679 = OpPhi %uint %38574 %38572 %127531 %38580
-     %127536 = OpPhi %uint %127530 %38572 %38582 %38580
-     %127533 = OpPhi %v2float %38576 %38572 %117877 %38580
-     %127532 = OpPhi %v2float %38576 %38572 %117878 %38580
-      %30088 = OpFAdd %v2float %127528 %127533
-      %30094 = OpFAdd %v2float %127527 %127532
-     %117935 = OpCompositeConstruct %_arr_v2float_uint_2 %30088 %30094
-      %38590 = OpIAdd %uint %127536 %int_1
-      %38592 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %127536
-               OpStore %38592 %117935
-               OpBranch %38458
-      %30044 = OpLabel
-      %30047 = OpLoad %uint %30040
-      %30048 = OpBitwiseAnd %uint %30047 %uint_32768
-      %30049 = OpUGreaterThan %bool %30048 %uint_0
-               OpSelectionMerge %38512 None
-               OpSwitch %uint_0 %38496
-      %38496 = OpLabel
-               OpSelectionMerge %38511 None
-               OpBranchConditional %30049 %38498 %38506
-      %38506 = OpLabel
-      %38508 = OpISub %uint %126031 %int_1
-      %38509 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %38508
-      %38510 = OpLoad %_arr_float_uint_2 %38509
-     %117904 = OpCompositeExtract %float %38510 0
-     %117905 = OpCompositeExtract %float %38510 1
-               OpBranch %38512
-      %38498 = OpLabel
-      %38500 = OpIAdd %uint %126033 %int_1
-      %38501 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %126033
-      %38502 = OpLoad %float %38501
-               OpBranch %38512
-      %38511 = OpLabel
-               OpUnreachable
-      %38512 = OpLabel
-     %127541 = OpPhi %uint %38500 %38498 %126033 %38506
-     %127540 = OpPhi %uint %126031 %38498 %38508 %38506
-     %127538 = OpPhi %float %38502 %38498 %117904 %38506
-     %127537 = OpPhi %float %38502 %38498 %117905 %38506
-      %30053 = OpLoad %uint %30040
-      %30054 = OpBitwiseAnd %uint %30053 %uint_16384
-      %30055 = OpUGreaterThan %bool %30054 %uint_0
-               OpSelectionMerge %38535 None
-               OpSwitch %uint_0 %38519
-      %38519 = OpLabel
-               OpSelectionMerge %38534 None
-               OpBranchConditional %30055 %38521 %38529
-      %38529 = OpLabel
-      %38531 = OpISub %uint %127540 %int_1
-      %38532 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %38531
-      %38533 = OpLoad %_arr_float_uint_2 %38532
-     %117895 = OpCompositeExtract %float %38533 0
-     %117896 = OpCompositeExtract %float %38533 1
-               OpBranch %38535
-      %38521 = OpLabel
-      %38523 = OpIAdd %uint %127541 %int_1
-      %38524 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %127541
-      %38525 = OpLoad %float %38524
-               OpBranch %38535
-      %38534 = OpLabel
-               OpUnreachable
-      %38535 = OpLabel
-     %128269 = OpPhi %uint %38523 %38521 %127541 %38529
-     %127546 = OpPhi %uint %127540 %38521 %38531 %38529
-     %127543 = OpPhi %float %38525 %38521 %117895 %38529
-     %127542 = OpPhi %float %38525 %38521 %117896 %38529
-      %30061 = OpFAdd %float %127538 %127543
-      %30067 = OpFAdd %float %127537 %127542
-     %117924 = OpCompositeConstruct %_arr_float_uint_2 %30061 %30067
-      %38539 = OpIAdd %uint %127546 %int_1
-      %38541 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %127546
-               OpStore %38541 %117924
-               OpBranch %38458
-      %30043 = OpLabel
-               OpBranch %38479
-      %38458 = OpLabel
-     %193842 = OpPhi %uint %126160 %38535 %126160 %38586 %126160 %38637 %126160 %38688 %126160 %38739 %126160 %38790 %126160 %38841 %126160 %38892 %126160 %38943 %126160 %38994 %126160 %39045 %126160 %39096 %126160 %39147 %126160 %39198 %126160 %39249 %126160 %39300 %126160 %39351 %126160 %39402 %126160 %39453 %126160 %39504 %126160 %39555 %126160 %39606 %126160 %39657 %126160 %39708 %126160 %39759 %126160 %39810 %126160 %39861 %126160 %39912 %126160 %39963 %126160 %40014 %126160 %40065 %126160 %40116 %126160 %40167 %126160 %40218 %126160 %40269 %126160 %40320 %126160 %40371 %126160 %40422 %126160 %40473 %126160 %40524 %126160 %40575 %126160 %40626 %126160 %40677 %126160 %40705 %126160 %40733 %126160 %40761 %126160 %40812 %126160 %40863 %126160 %40914 %126160 %40942 %126160 %40970 %126160 %40998 %126160 %41026 %126160 %41054 %126160 %41082 %126160 %41110 %126160 %41138 %126160 %41166 %126160 %41194 %126160 %41222 %126160 %41250 %126160 %41278 %126160 %41306 %126160 %41334 %126160 %41362 %126160 %41390 %126160 %41418 %126160 %41446 %126160 %41474 %126160 %41502 %126160 %41530 %126160 %41558 %126160 %41586 %126160 %41614 %126160 %41665 %126160 %41716 %126160 %41790 %126160 %41818 %126160 %41846 %126160 %41874 %126160 %41902 %126160 %41930 %126160 %41958 %126160 %41986 %126160 %42014 %126160 %42042 %126160 %42070 %126160 %42098 %126160 %42126 %126160 %42154 %126160 %42182 %126160 %42210 %126160 %42238 %126160 %42266 %126160 %42294 %126160 %42322 %126160 %42350 %126160 %42378 %126160 %42406 %126160 %42434 %126160 %42462 %126160 %42490 %126160 %42541 %126160 %42592 %126160 %42666 %126160 %42694 %126160 %42722 %126160 %42750 %126160 %42778 %126160 %42806 %126160 %42834 %126160 %42862 %126160 %42890 %126160 %42918 %126160 %42946 %126160 %42974 %126160 %43002 %126160 %43030 %126160 %43058 %126160 %43086 %126160 %43114 %126160 %43142 %126160 %43170 %126160 %43198 %126160 %43226 %126160 %43254 %126160 %43282 %126160 %43310 %126160 %43338 %126160 %43366 %126160 %43417 %126160 %43468 %126160 %43542 %126160 %43570 %126160 %43598 %126160 %43626 %126160 %43654 %126160 %43682 %126160 %43710 %126160 %43738 %126160 %43766 %126160 %43794 %126160 %43822 %126160 %43850 %126160 %43878 %126160 %43906 %126160 %43934 %126160 %43962 %126160 %43990 %126160 %44018 %126160 %44046 %126160 %44074 %126160 %44102 %126160 %44130 %126160 %44158 %126160 %44186 %126160 %44214 %126160 %44242 %126160 %44293 %126160 %44344 %126160 %44418 %126160 %44492 %126160 %44566 %126160 %44640 %126160 %44714 %126160 %44788 %126160 %44862 %126160 %44936 %126160 %45010 %126160 %45084 %126160 %45158 %126160 %45232 %126160 %45306 %126160 %45380 %126160 %45454 %126160 %45482 %126160 %45510 %126160 %45538 %126160 %45589 %126160 %45663 %126160 %45714 %126160 %45811 %126160 %45885 %126160 %45936 %126160 %45987 %126160 %46015 %126160 %46058 %194133 %46091 %126160 %46129 %126160 %46172 %126160 %46200 %126160 %46233 %126160 %46271 %126160 %37517 %126160 %46342 %126160 %46370 %126160 %46398 %126160 %46426 %126160 %46454 %126160 %46482 %126160 %46510 %126160 %46567 %126160 %46624 %126160 %37898 %126160 %37914 %126160 %37930 %126160 %37946 %126160 %37952 %126160 %37958 %126160 %37964 %126160 %37970 %126160 %37973 %126160 %37983 %126160 %38000 %126160 %38024 %126160 %38040 %126160 %38056 %126160 %38072 %126160 %38078 %126160 %38084 %126160 %38090 %126160 %38096 %126160 %38099 %126160 %38109 %126160 %38126 %126160 %38150 %126160 %38166 %126160 %38182 %126160 %38198 %126160 %38204 %126160 %38210 %126160 %38216 %126160 %38222 %126160 %38225 %126160 %38235 %126160 %38252 %126160 %38276 %126160 %38292 %126160 %38308 %126160 %38324 %126160 %38330 %126160 %38336 %126160 %38342 %126160 %38348 %126160 %38351 %126160 %38361 %126160 %38378 %126160 %46755 %126160 %38450
-     %193525 = OpPhi %uint %126158 %38535 %126158 %38586 %126158 %38637 %126158 %38688 %126158 %38739 %126158 %38790 %126158 %38841 %126158 %38892 %126158 %38943 %126158 %38994 %126158 %39045 %126158 %39096 %126158 %39147 %126158 %39198 %126158 %39249 %126158 %39300 %126158 %39351 %126158 %39402 %126158 %39453 %126158 %39504 %126158 %39555 %126158 %39606 %126158 %39657 %126158 %39708 %126158 %39759 %126158 %39810 %126158 %39861 %126158 %39912 %126158 %39963 %126158 %40014 %126158 %40065 %126158 %40116 %126158 %40167 %126158 %40218 %126158 %40269 %126158 %40320 %126158 %40371 %126158 %40422 %126158 %40473 %126158 %40524 %126158 %40575 %126158 %40626 %126158 %40677 %126158 %40705 %126158 %40733 %126158 %40761 %126158 %40812 %126158 %40863 %126158 %40914 %126158 %40942 %126158 %40970 %126158 %40998 %126158 %41026 %126158 %41054 %126158 %41082 %126158 %41110 %126158 %41138 %126158 %41166 %126158 %41194 %126158 %41222 %126158 %41250 %126158 %41278 %126158 %41306 %126158 %41334 %126158 %41362 %126158 %41390 %126158 %41418 %126158 %41446 %126158 %41474 %126158 %41502 %126158 %41530 %126158 %41558 %126158 %41586 %126158 %41614 %126158 %41665 %126158 %41716 %126158 %41790 %126158 %41818 %126158 %41846 %126158 %41874 %126158 %41902 %126158 %41930 %126158 %41958 %126158 %41986 %126158 %42014 %126158 %42042 %126158 %42070 %126158 %42098 %126158 %42126 %126158 %42154 %126158 %42182 %126158 %42210 %126158 %42238 %126158 %42266 %126158 %42294 %126158 %42322 %126158 %42350 %126158 %42378 %126158 %42406 %126158 %42434 %126158 %42462 %126158 %42490 %126158 %42541 %126158 %42592 %126158 %42666 %126158 %42694 %126158 %42722 %126158 %42750 %126158 %42778 %126158 %42806 %126158 %42834 %126158 %42862 %126158 %42890 %126158 %42918 %126158 %42946 %126158 %42974 %126158 %43002 %126158 %43030 %126158 %43058 %126158 %43086 %126158 %43114 %126158 %43142 %126158 %43170 %126158 %43198 %126158 %43226 %126158 %43254 %126158 %43282 %126158 %43310 %126158 %43338 %126158 %43366 %126158 %43417 %126158 %43468 %126158 %43542 %126158 %43570 %126158 %43598 %126158 %43626 %126158 %43654 %126158 %43682 %126158 %43710 %126158 %43738 %126158 %43766 %126158 %43794 %126158 %43822 %126158 %43850 %126158 %43878 %126158 %43906 %126158 %43934 %126158 %43962 %126158 %43990 %126158 %44018 %126158 %44046 %126158 %44074 %126158 %44102 %126158 %44130 %126158 %44158 %126158 %44186 %126158 %44214 %126158 %44242 %126158 %44293 %126158 %44344 %126158 %44418 %126158 %44492 %126158 %44566 %126158 %44640 %126158 %44714 %126158 %44788 %126158 %44862 %126158 %44936 %126158 %45010 %126158 %45084 %126158 %45158 %126158 %45232 %126158 %45306 %126158 %45380 %126158 %45454 %126158 %45482 %126158 %45510 %126158 %45538 %126158 %45589 %126158 %45663 %126158 %45714 %126158 %45811 %126158 %45885 %126158 %45936 %126158 %45987 %126158 %46015 %126158 %46058 %193816 %46091 %126158 %46129 %126158 %46172 %126158 %46200 %126158 %46233 %126158 %46271 %126158 %37517 %126158 %46342 %126158 %46370 %126158 %46398 %126158 %46426 %126158 %46454 %126158 %46482 %126158 %46510 %126158 %46567 %126158 %46624 %126158 %37898 %126158 %37914 %126158 %37930 %126158 %37946 %126158 %37952 %126158 %37958 %126158 %37964 %126158 %37970 %126158 %37973 %126158 %37983 %126158 %38000 %126158 %38024 %126158 %38040 %126158 %38056 %126158 %38072 %126158 %38078 %126158 %38084 %126158 %38090 %126158 %38096 %126158 %38099 %126158 %38109 %126158 %38126 %126158 %38150 %126158 %38166 %126158 %38182 %126158 %38198 %126158 %38204 %126158 %38210 %126158 %38216 %126158 %38222 %126158 %38225 %126158 %38235 %126158 %38252 %126158 %38276 %126158 %38292 %126158 %38308 %126158 %38324 %126158 %38330 %126158 %38336 %126158 %38342 %126158 %38348 %126158 %38351 %126158 %38361 %126158 %38378 %126158 %46755 %126158 %38450
-     %193207 = OpPhi %uint %126153 %38535 %126153 %38586 %126153 %38637 %126153 %38688 %126153 %38739 %126153 %38790 %126153 %38841 %126153 %38892 %126153 %38943 %126153 %38994 %126153 %39045 %126153 %39096 %126153 %39147 %126153 %39198 %126153 %39249 %126153 %39300 %126153 %39351 %126153 %39402 %126153 %39453 %126153 %39504 %126153 %39555 %126153 %39606 %126153 %39657 %126153 %39708 %126153 %39759 %126153 %39810 %126153 %39861 %126153 %39912 %126153 %39963 %126153 %40014 %126153 %40065 %126153 %40116 %126153 %40167 %126153 %40218 %126153 %40269 %126153 %40320 %126153 %40371 %126153 %40422 %126153 %40473 %126153 %40524 %126153 %40575 %126153 %40626 %126153 %40677 %126153 %40705 %126153 %40733 %126153 %40761 %126153 %40812 %126153 %40863 %126153 %40914 %126153 %40942 %126153 %40970 %126153 %40998 %126153 %41026 %126153 %41054 %126153 %41082 %126153 %41110 %126153 %41138 %126153 %41166 %126153 %41194 %126153 %41222 %126153 %41250 %126153 %41278 %126153 %41306 %126153 %41334 %126153 %41362 %126153 %41390 %126153 %41418 %126153 %41446 %126153 %41474 %126153 %41502 %126153 %41530 %126153 %41558 %126153 %41586 %126153 %41614 %126153 %41665 %126153 %41716 %126153 %41790 %126153 %41818 %126153 %41846 %126153 %41874 %126153 %41902 %126153 %41930 %126153 %41958 %126153 %41986 %126153 %42014 %126153 %42042 %126153 %42070 %126153 %42098 %126153 %42126 %126153 %42154 %126153 %42182 %126153 %42210 %126153 %42238 %126153 %42266 %126153 %42294 %126153 %42322 %126153 %42350 %126153 %42378 %126153 %42406 %126153 %42434 %126153 %42462 %126153 %42490 %126153 %42541 %126153 %42592 %126153 %42666 %126153 %42694 %126153 %42722 %126153 %42750 %126153 %42778 %126153 %42806 %126153 %42834 %126153 %42862 %126153 %42890 %126153 %42918 %126153 %42946 %126153 %42974 %126153 %43002 %126153 %43030 %126153 %43058 %126153 %43086 %126153 %43114 %126153 %43142 %126153 %43170 %126153 %43198 %126153 %43226 %126153 %43254 %126153 %43282 %126153 %43310 %126153 %43338 %126153 %43366 %126153 %43417 %126153 %43468 %126153 %43542 %126153 %43570 %126153 %43598 %126153 %43626 %126153 %43654 %126153 %43682 %126153 %43710 %126153 %43738 %126153 %43766 %126153 %43794 %126153 %43822 %126153 %43850 %126153 %43878 %126153 %43906 %126153 %43934 %126153 %43962 %126153 %43990 %126153 %44018 %126153 %44046 %126153 %44074 %126153 %44102 %126153 %44130 %126153 %44158 %126153 %44186 %126153 %44214 %126153 %44242 %126153 %44293 %126153 %44344 %126153 %44418 %126153 %44492 %126153 %44566 %126153 %44640 %126153 %44714 %126153 %44788 %126153 %44862 %126153 %44936 %126153 %45010 %126153 %45084 %126153 %45158 %126153 %45232 %126153 %45306 %126153 %45380 %126153 %45454 %126153 %45482 %126153 %45510 %126153 %45538 %126153 %45589 %126153 %45663 %126153 %45714 %126153 %45811 %126153 %45885 %126153 %45936 %126153 %45987 %126153 %46015 %126153 %46058 %126153 %46091 %193499 %46129 %126153 %46172 %126153 %46200 %126153 %46233 %126153 %46271 %126153 %37517 %126153 %46342 %126153 %46370 %126153 %46398 %126153 %46426 %126153 %46454 %126153 %46482 %126153 %46510 %126153 %46567 %126153 %46624 %126153 %37898 %126153 %37914 %126153 %37930 %126153 %37946 %126153 %37952 %126153 %37958 %126153 %37964 %126153 %37970 %126153 %37973 %126153 %37983 %126153 %38000 %126153 %38024 %126153 %38040 %126153 %38056 %126153 %38072 %126153 %38078 %126153 %38084 %126153 %38090 %126153 %38096 %126153 %38099 %126153 %38109 %126153 %38126 %126153 %38150 %126153 %38166 %126153 %38182 %126153 %38198 %126153 %38204 %126153 %38210 %126153 %38216 %126153 %38222 %126153 %38225 %126153 %38235 %126153 %38252 %126153 %38276 %126153 %38292 %126153 %38308 %126153 %38324 %126153 %38330 %126153 %38336 %126153 %38342 %126153 %38348 %126153 %38351 %126153 %38361 %126153 %38378 %126153 %46755 %126153 %38450
-     %192890 = OpPhi %uint %126151 %38535 %126151 %38586 %126151 %38637 %126151 %38688 %126151 %38739 %126151 %38790 %126151 %38841 %126151 %38892 %126151 %38943 %126151 %38994 %126151 %39045 %126151 %39096 %126151 %39147 %126151 %39198 %126151 %39249 %126151 %39300 %126151 %39351 %126151 %39402 %126151 %39453 %126151 %39504 %126151 %39555 %126151 %39606 %126151 %39657 %126151 %39708 %126151 %39759 %126151 %39810 %126151 %39861 %126151 %39912 %126151 %39963 %126151 %40014 %126151 %40065 %126151 %40116 %126151 %40167 %126151 %40218 %126151 %40269 %126151 %40320 %126151 %40371 %126151 %40422 %126151 %40473 %126151 %40524 %126151 %40575 %126151 %40626 %126151 %40677 %126151 %40705 %126151 %40733 %126151 %40761 %126151 %40812 %126151 %40863 %126151 %40914 %126151 %40942 %126151 %40970 %126151 %40998 %126151 %41026 %126151 %41054 %126151 %41082 %126151 %41110 %126151 %41138 %126151 %41166 %126151 %41194 %126151 %41222 %126151 %41250 %126151 %41278 %126151 %41306 %126151 %41334 %126151 %41362 %126151 %41390 %126151 %41418 %126151 %41446 %126151 %41474 %126151 %41502 %126151 %41530 %126151 %41558 %126151 %41586 %126151 %41614 %126151 %41665 %126151 %41716 %126151 %41790 %126151 %41818 %126151 %41846 %126151 %41874 %126151 %41902 %126151 %41930 %126151 %41958 %126151 %41986 %126151 %42014 %126151 %42042 %126151 %42070 %126151 %42098 %126151 %42126 %126151 %42154 %126151 %42182 %126151 %42210 %126151 %42238 %126151 %42266 %126151 %42294 %126151 %42322 %126151 %42350 %126151 %42378 %126151 %42406 %126151 %42434 %126151 %42462 %126151 %42490 %126151 %42541 %126151 %42592 %126151 %42666 %126151 %42694 %126151 %42722 %126151 %42750 %126151 %42778 %126151 %42806 %126151 %42834 %126151 %42862 %126151 %42890 %126151 %42918 %126151 %42946 %126151 %42974 %126151 %43002 %126151 %43030 %126151 %43058 %126151 %43086 %126151 %43114 %126151 %43142 %126151 %43170 %126151 %43198 %126151 %43226 %126151 %43254 %126151 %43282 %126151 %43310 %126151 %43338 %126151 %43366 %126151 %43417 %126151 %43468 %126151 %43542 %126151 %43570 %126151 %43598 %126151 %43626 %126151 %43654 %126151 %43682 %126151 %43710 %126151 %43738 %126151 %43766 %126151 %43794 %126151 %43822 %126151 %43850 %126151 %43878 %126151 %43906 %126151 %43934 %126151 %43962 %126151 %43990 %126151 %44018 %126151 %44046 %126151 %44074 %126151 %44102 %126151 %44130 %126151 %44158 %126151 %44186 %126151 %44214 %126151 %44242 %126151 %44293 %126151 %44344 %126151 %44418 %126151 %44492 %126151 %44566 %126151 %44640 %126151 %44714 %126151 %44788 %126151 %44862 %126151 %44936 %126151 %45010 %126151 %45084 %126151 %45158 %126151 %45232 %126151 %45306 %126151 %45380 %126151 %45454 %126151 %45482 %126151 %45510 %126151 %45538 %126151 %45589 %126151 %45663 %126151 %45714 %126151 %45811 %126151 %45885 %126151 %45936 %126151 %45987 %126151 %46015 %126151 %46058 %126151 %46091 %193182 %46129 %126151 %46172 %126151 %46200 %126151 %46233 %126151 %46271 %126151 %37517 %126151 %46342 %126151 %46370 %126151 %46398 %126151 %46426 %126151 %46454 %126151 %46482 %126151 %46510 %126151 %46567 %126151 %46624 %126151 %37898 %126151 %37914 %126151 %37930 %126151 %37946 %126151 %37952 %126151 %37958 %126151 %37964 %126151 %37970 %126151 %37973 %126151 %37983 %126151 %38000 %126151 %38024 %126151 %38040 %126151 %38056 %126151 %38072 %126151 %38078 %126151 %38084 %126151 %38090 %126151 %38096 %126151 %38099 %126151 %38109 %126151 %38126 %126151 %38150 %126151 %38166 %126151 %38182 %126151 %38198 %126151 %38204 %126151 %38210 %126151 %38216 %126151 %38222 %126151 %38225 %126151 %38235 %126151 %38252 %126151 %38276 %126151 %38292 %126151 %38308 %126151 %38324 %126151 %38330 %126151 %38336 %126151 %38342 %126151 %38348 %126151 %38351 %126151 %38361 %126151 %38378 %126151 %46755 %126151 %38450
-     %192572 = OpPhi %uint %126146 %38535 %126146 %38586 %126146 %38637 %126146 %38688 %126146 %38739 %126146 %38790 %126146 %38841 %126146 %38892 %126146 %38943 %126146 %38994 %126146 %39045 %126146 %39096 %126146 %39147 %126146 %39198 %126146 %39249 %126146 %39300 %126146 %39351 %126146 %39402 %126146 %39453 %126146 %39504 %126146 %39555 %126146 %39606 %126146 %39657 %126146 %39708 %126146 %39759 %126146 %39810 %126146 %39861 %126146 %39912 %126146 %39963 %126146 %40014 %126146 %40065 %126146 %40116 %126146 %40167 %126146 %40218 %126146 %40269 %126146 %40320 %126146 %40371 %126146 %40422 %126146 %40473 %126146 %40524 %126146 %40575 %126146 %40626 %126146 %40677 %126146 %40705 %126146 %40733 %126146 %40761 %126146 %40812 %126146 %40863 %126146 %40914 %126146 %40942 %126146 %40970 %126146 %40998 %126146 %41026 %126146 %41054 %126146 %41082 %126146 %41110 %126146 %41138 %126146 %41166 %126146 %41194 %126146 %41222 %126146 %41250 %126146 %41278 %126146 %41306 %126146 %41334 %126146 %41362 %126146 %41390 %126146 %41418 %126146 %41446 %126146 %41474 %126146 %41502 %126146 %41530 %126146 %41558 %126146 %41586 %126146 %41614 %126146 %41665 %126146 %41716 %126146 %41790 %126146 %41818 %126146 %41846 %126146 %41874 %126146 %41902 %126146 %41930 %126146 %41958 %126146 %41986 %126146 %42014 %126146 %42042 %126146 %42070 %126146 %42098 %126146 %42126 %126146 %42154 %126146 %42182 %126146 %42210 %126146 %42238 %126146 %42266 %126146 %42294 %126146 %42322 %126146 %42350 %126146 %42378 %126146 %42406 %126146 %42434 %126146 %42462 %126146 %42490 %126146 %42541 %126146 %42592 %126146 %42666 %126146 %42694 %126146 %42722 %126146 %42750 %126146 %42778 %126146 %42806 %126146 %42834 %126146 %42862 %126146 %42890 %126146 %42918 %126146 %42946 %126146 %42974 %126146 %43002 %126146 %43030 %126146 %43058 %126146 %43086 %126146 %43114 %126146 %43142 %126146 %43170 %126146 %43198 %126146 %43226 %126146 %43254 %126146 %43282 %126146 %43310 %126146 %43338 %126146 %43366 %126146 %43417 %126146 %43468 %126146 %43542 %126146 %43570 %126146 %43598 %126146 %43626 %126146 %43654 %126146 %43682 %126146 %43710 %126146 %43738 %126146 %43766 %126146 %43794 %126146 %43822 %126146 %43850 %126146 %43878 %126146 %43906 %126146 %43934 %126146 %43962 %126146 %43990 %126146 %44018 %126146 %44046 %126146 %44074 %126146 %44102 %126146 %44130 %126146 %44158 %126146 %44186 %126146 %44214 %126146 %44242 %126146 %44293 %126146 %44344 %126146 %44418 %126146 %44492 %126146 %44566 %126146 %44640 %126146 %44714 %126146 %44788 %126146 %44862 %126146 %44936 %126146 %45010 %126146 %45084 %126146 %45158 %126146 %45232 %126146 %45306 %126146 %45380 %126146 %45454 %126146 %45482 %126146 %45510 %126146 %45538 %126146 %45589 %126146 %45663 %126146 %45714 %126146 %45811 %126146 %45885 %126146 %45936 %126146 %45987 %192861 %46015 %192862 %46058 %126146 %46091 %126146 %46129 %192865 %46172 %126146 %46200 %126146 %46233 %126146 %46271 %126146 %37517 %126146 %46342 %126146 %46370 %126146 %46398 %126146 %46426 %126146 %46454 %126146 %46482 %126146 %46510 %126146 %46567 %126146 %46624 %126146 %37898 %126146 %37914 %126146 %37930 %126146 %37946 %126146 %37952 %126146 %37958 %126146 %37964 %126146 %37970 %126146 %37973 %126146 %37983 %126146 %38000 %126146 %38024 %126146 %38040 %126146 %38056 %126146 %38072 %126146 %38078 %126146 %38084 %126146 %38090 %126146 %38096 %126146 %38099 %126146 %38109 %126146 %38126 %126146 %38150 %126146 %38166 %126146 %38182 %126146 %38198 %126146 %38204 %126146 %38210 %126146 %38216 %126146 %38222 %126146 %38225 %126146 %38235 %126146 %38252 %126146 %38276 %126146 %38292 %126146 %38308 %126146 %38324 %126146 %38330 %126146 %38336 %126146 %38342 %126146 %38348 %126146 %38351 %126146 %38361 %126146 %38378 %126146 %46755 %126146 %38450
-     %192255 = OpPhi %uint %126144 %38535 %126144 %38586 %126144 %38637 %126144 %38688 %126144 %38739 %126144 %38790 %126144 %38841 %126144 %38892 %126144 %38943 %126144 %38994 %126144 %39045 %126144 %39096 %126144 %39147 %126144 %39198 %126144 %39249 %126144 %39300 %126144 %39351 %126144 %39402 %126144 %39453 %126144 %39504 %126144 %39555 %126144 %39606 %126144 %39657 %126144 %39708 %126144 %39759 %126144 %39810 %126144 %39861 %126144 %39912 %126144 %39963 %126144 %40014 %126144 %40065 %126144 %40116 %126144 %40167 %126144 %40218 %126144 %40269 %126144 %40320 %126144 %40371 %126144 %40422 %126144 %40473 %126144 %40524 %126144 %40575 %126144 %40626 %126144 %40677 %126144 %40705 %126144 %40733 %126144 %40761 %126144 %40812 %126144 %40863 %126144 %40914 %126144 %40942 %126144 %40970 %126144 %40998 %126144 %41026 %126144 %41054 %126144 %41082 %126144 %41110 %126144 %41138 %126144 %41166 %126144 %41194 %126144 %41222 %126144 %41250 %126144 %41278 %126144 %41306 %126144 %41334 %126144 %41362 %126144 %41390 %126144 %41418 %126144 %41446 %126144 %41474 %126144 %41502 %126144 %41530 %126144 %41558 %126144 %41586 %126144 %41614 %126144 %41665 %126144 %41716 %126144 %41790 %126144 %41818 %126144 %41846 %126144 %41874 %126144 %41902 %126144 %41930 %126144 %41958 %126144 %41986 %126144 %42014 %126144 %42042 %126144 %42070 %126144 %42098 %126144 %42126 %126144 %42154 %126144 %42182 %126144 %42210 %126144 %42238 %126144 %42266 %126144 %42294 %126144 %42322 %126144 %42350 %126144 %42378 %126144 %42406 %126144 %42434 %126144 %42462 %126144 %42490 %126144 %42541 %126144 %42592 %126144 %42666 %126144 %42694 %126144 %42722 %126144 %42750 %126144 %42778 %126144 %42806 %126144 %42834 %126144 %42862 %126144 %42890 %126144 %42918 %126144 %42946 %126144 %42974 %126144 %43002 %126144 %43030 %126144 %43058 %126144 %43086 %126144 %43114 %126144 %43142 %126144 %43170 %126144 %43198 %126144 %43226 %126144 %43254 %126144 %43282 %126144 %43310 %126144 %43338 %126144 %43366 %126144 %43417 %126144 %43468 %126144 %43542 %126144 %43570 %126144 %43598 %126144 %43626 %126144 %43654 %126144 %43682 %126144 %43710 %126144 %43738 %126144 %43766 %126144 %43794 %126144 %43822 %126144 %43850 %126144 %43878 %126144 %43906 %126144 %43934 %126144 %43962 %126144 %43990 %126144 %44018 %126144 %44046 %126144 %44074 %126144 %44102 %126144 %44130 %126144 %44158 %126144 %44186 %126144 %44214 %126144 %44242 %126144 %44293 %126144 %44344 %126144 %44418 %126144 %44492 %126144 %44566 %126144 %44640 %126144 %44714 %126144 %44788 %126144 %44862 %126144 %44936 %126144 %45010 %126144 %45084 %126144 %45158 %126144 %45232 %126144 %45306 %126144 %45380 %126144 %45454 %126144 %45482 %126144 %45510 %126144 %45538 %126144 %45589 %126144 %45663 %126144 %45714 %126144 %45811 %126144 %45885 %126144 %45936 %126144 %45987 %192544 %46015 %192545 %46058 %126144 %46091 %126144 %46129 %192548 %46172 %126144 %46200 %126144 %46233 %126144 %46271 %126144 %37517 %126144 %46342 %126144 %46370 %126144 %46398 %126144 %46426 %126144 %46454 %126144 %46482 %126144 %46510 %126144 %46567 %126144 %46624 %126144 %37898 %126144 %37914 %126144 %37930 %126144 %37946 %126144 %37952 %126144 %37958 %126144 %37964 %126144 %37970 %126144 %37973 %126144 %37983 %126144 %38000 %126144 %38024 %126144 %38040 %126144 %38056 %126144 %38072 %126144 %38078 %126144 %38084 %126144 %38090 %126144 %38096 %126144 %38099 %126144 %38109 %126144 %38126 %126144 %38150 %126144 %38166 %126144 %38182 %126144 %38198 %126144 %38204 %126144 %38210 %126144 %38216 %126144 %38222 %126144 %38225 %126144 %38235 %126144 %38252 %126144 %38276 %126144 %38292 %126144 %38308 %126144 %38324 %126144 %38330 %126144 %38336 %126144 %38342 %126144 %38348 %126144 %38351 %126144 %38361 %126144 %38378 %126144 %46755 %126144 %38450
-     %190676 = OpPhi %uint %126104 %38535 %190679 %38586 %190681 %38637 %126104 %38688 %126104 %38739 %126104 %38790 %126104 %38841 %126104 %38892 %190692 %38943 %190694 %38994 %126104 %39045 %126104 %39096 %126104 %39147 %126104 %39198 %126104 %39249 %190705 %39300 %190707 %39351 %126104 %39402 %126104 %39453 %126104 %39504 %126104 %39555 %126104 %39606 %190718 %39657 %190720 %39708 %126104 %39759 %126104 %39810 %126104 %39861 %126104 %39912 %126104 %39963 %190731 %40014 %126104 %40065 %126104 %40116 %126104 %40167 %190738 %40218 %190740 %40269 %126104 %40320 %126104 %40371 %126104 %40422 %126104 %40473 %126104 %40524 %190751 %40575 %126104 %40626 %126104 %40677 %190756 %40705 %126104 %40733 %126104 %40761 %190759 %40812 %126104 %40863 %126104 %40914 %126104 %40942 %126104 %40970 %126104 %40998 %126104 %41026 %126104 %41054 %126104 %41082 %126104 %41110 %126104 %41138 %126104 %41166 %126104 %41194 %126104 %41222 %126104 %41250 %126104 %41278 %126104 %41306 %126104 %41334 %126104 %41362 %126104 %41390 %126104 %41418 %126104 %41446 %126104 %41474 %126104 %41502 %126104 %41530 %126104 %41558 %126104 %41586 %126104 %41614 %126104 %41665 %126104 %41716 %126104 %41790 %190798 %41818 %190799 %41846 %190800 %41874 %190801 %41902 %190802 %41930 %190803 %41958 %190804 %41986 %190805 %42014 %190806 %42042 %190807 %42070 %190808 %42098 %190809 %42126 %190810 %42154 %190811 %42182 %190812 %42210 %190813 %42238 %190814 %42266 %190815 %42294 %190816 %42322 %190817 %42350 %190818 %42378 %190819 %42406 %190820 %42434 %190821 %42462 %190822 %42490 %190823 %42541 %190824 %42592 %190825 %42666 %126104 %42694 %126104 %42722 %126104 %42750 %126104 %42778 %126104 %42806 %126104 %42834 %126104 %42862 %126104 %42890 %126104 %42918 %126104 %42946 %126104 %42974 %126104 %43002 %126104 %43030 %126104 %43058 %126104 %43086 %126104 %43114 %126104 %43142 %126104 %43170 %126104 %43198 %126104 %43226 %126104 %43254 %126104 %43282 %126104 %43310 %126104 %43338 %126104 %43366 %126104 %43417 %126104 %43468 %126104 %43542 %126104 %43570 %126104 %43598 %126104 %43626 %126104 %43654 %126104 %43682 %126104 %43710 %126104 %43738 %126104 %43766 %126104 %43794 %126104 %43822 %126104 %43850 %126104 %43878 %126104 %43906 %126104 %43934 %126104 %43962 %126104 %43990 %126104 %44018 %126104 %44046 %126104 %44074 %126104 %44102 %126104 %44130 %126104 %44158 %126104 %44186 %126104 %44214 %126104 %44242 %126104 %44293 %126104 %44344 %126104 %44418 %126104 %44492 %126104 %44566 %190896 %44640 %190897 %44714 %190900 %44788 %190902 %44862 %126104 %44936 %126104 %45010 %126104 %45084 %126104 %45158 %126104 %45232 %126104 %45306 %126104 %45380 %126104 %45454 %190927 %45482 %126104 %45510 %126104 %45538 %126104 %45589 %126104 %45663 %190936 %45714 %126104 %45811 %190943 %45885 %126104 %45936 %190946 %45987 %126104 %46015 %126104 %46058 %126104 %46091 %126104 %46129 %126104 %46172 %190952 %46200 %126104 %46233 %126104 %46271 %126104 %37517 %126104 %46342 %190959 %46370 %190960 %46398 %126104 %46426 %126104 %46454 %126104 %46482 %126104 %46510 %126104 %46567 %126104 %46624 %126104 %37898 %126104 %37914 %126104 %37930 %126104 %37946 %126104 %37952 %126104 %37958 %126104 %37964 %126104 %37970 %126104 %37973 %126104 %37983 %126104 %38000 %126104 %38024 %126104 %38040 %126104 %38056 %126104 %38072 %126104 %38078 %126104 %38084 %126104 %38090 %126104 %38096 %126104 %38099 %126104 %38109 %126104 %38126 %126104 %38150 %126104 %38166 %126104 %38182 %126104 %38198 %126104 %38204 %126104 %38210 %126104 %38216 %126104 %38222 %126104 %38225 %126104 %38235 %126104 %38252 %126104 %38276 %126104 %38292 %126104 %38308 %126104 %38324 %126104 %38330 %126104 %38336 %126104 %38342 %126104 %38348 %126104 %38351 %126104 %38361 %126104 %38378 %126104 %46755 %126104 %38450
-     %189096 = OpPhi %uint %126076 %38535 %126076 %38586 %126076 %38637 %126076 %38688 %126076 %38739 %189107 %38790 %189109 %38841 %126076 %38892 %126076 %38943 %126076 %38994 %126076 %39045 %126076 %39096 %189120 %39147 %189122 %39198 %126076 %39249 %126076 %39300 %126076 %39351 %126076 %39402 %126076 %39453 %189133 %39504 %189135 %39555 %126076 %39606 %126076 %39657 %126076 %39708 %126076 %39759 %126076 %39810 %189146 %39861 %189148 %39912 %126076 %39963 %126076 %40014 %126076 %40065 %189155 %40116 %126076 %40167 %126076 %40218 %126076 %40269 %126076 %40320 %126076 %40371 %189166 %40422 %189168 %40473 %126076 %40524 %126076 %40575 %126076 %40626 %189175 %40677 %126076 %40705 %126076 %40733 %189178 %40761 %126076 %40812 %126076 %40863 %189183 %40914 %126076 %40942 %126076 %40970 %126076 %40998 %126076 %41026 %126076 %41054 %126076 %41082 %126076 %41110 %126076 %41138 %126076 %41166 %126076 %41194 %126076 %41222 %126076 %41250 %126076 %41278 %126076 %41306 %126076 %41334 %126076 %41362 %126076 %41390 %126076 %41418 %126076 %41446 %126076 %41474 %126076 %41502 %126076 %41530 %126076 %41558 %126076 %41586 %126076 %41614 %126076 %41665 %126076 %41716 %126076 %41790 %126076 %41818 %126076 %41846 %126076 %41874 %126076 %41902 %126076 %41930 %126076 %41958 %126076 %41986 %126076 %42014 %126076 %42042 %126076 %42070 %126076 %42098 %126076 %42126 %126076 %42154 %126076 %42182 %126076 %42210 %126076 %42238 %126076 %42266 %126076 %42294 %126076 %42322 %126076 %42350 %126076 %42378 %126076 %42406 %126076 %42434 %126076 %42462 %126076 %42490 %126076 %42541 %126076 %42592 %126076 %42666 %126076 %42694 %126076 %42722 %126076 %42750 %126076 %42778 %126076 %42806 %126076 %42834 %126076 %42862 %126076 %42890 %126076 %42918 %126076 %42946 %126076 %42974 %126076 %43002 %126076 %43030 %126076 %43058 %126076 %43086 %126076 %43114 %126076 %43142 %126076 %43170 %126076 %43198 %126076 %43226 %126076 %43254 %126076 %43282 %126076 %43310 %126076 %43338 %126076 %43366 %126076 %43417 %126076 %43468 %126076 %43542 %189282 %43570 %189283 %43598 %189284 %43626 %189285 %43654 %189286 %43682 %189287 %43710 %189288 %43738 %189289 %43766 %189290 %43794 %189291 %43822 %189292 %43850 %189293 %43878 %189294 %43906 %189295 %43934 %189296 %43962 %189297 %43990 %189298 %44018 %189299 %44046 %189300 %44074 %189301 %44102 %189302 %44130 %189303 %44158 %189304 %44186 %189305 %44214 %189306 %44242 %189307 %44293 %189308 %44344 %189309 %44418 %126076 %44492 %126076 %44566 %126076 %44640 %126076 %44714 %126076 %44788 %126076 %44862 %126076 %44936 %126076 %45010 %126076 %45084 %126076 %45158 %189340 %45232 %189341 %45306 %189344 %45380 %189346 %45454 %126076 %45482 %126076 %45510 %189349 %45538 %126076 %45589 %126076 %45663 %126076 %45714 %126076 %45811 %126076 %45885 %126076 %45936 %126076 %45987 %126076 %46015 %126076 %46058 %126076 %46091 %126076 %46129 %126076 %46172 %126076 %46200 %126076 %46233 %189375 %46271 %126076 %37517 %126076 %46342 %126076 %46370 %126076 %46398 %126076 %46426 %126076 %46454 %189384 %46482 %189385 %46510 %126076 %46567 %126076 %46624 %126076 %37898 %126076 %37914 %126076 %37930 %126076 %37946 %126076 %37952 %126076 %37958 %126076 %37964 %126076 %37970 %126076 %37973 %126076 %37983 %126076 %38000 %126076 %38024 %126076 %38040 %126076 %38056 %126076 %38072 %126076 %38078 %126076 %38084 %126076 %38090 %126076 %38096 %126076 %38099 %126076 %38109 %126076 %38126 %126076 %38150 %126076 %38166 %126076 %38182 %126076 %38198 %126076 %38204 %126076 %38210 %126076 %38216 %126076 %38222 %126076 %38225 %126076 %38235 %126076 %38252 %126076 %38276 %126076 %38292 %126076 %38308 %126076 %38324 %126076 %38330 %126076 %38336 %126076 %38342 %126076 %38348 %126076 %38351 %126076 %38361 %126076 %38378 %126076 %46755 %126076 %38450
-     %188854 = OpPhi %uint %126052 %38535 %38590 %38586 %38641 %38637 %126052 %38688 %126052 %38739 %126052 %38790 %126052 %38841 %126052 %38892 %38947 %38943 %38998 %38994 %126052 %39045 %126052 %39096 %126052 %39147 %126052 %39198 %126052 %39249 %39304 %39300 %39355 %39351 %126052 %39402 %126052 %39453 %126052 %39504 %126052 %39555 %126052 %39606 %39661 %39657 %39712 %39708 %126052 %39759 %126052 %39810 %126052 %39861 %126052 %39912 %126052 %39963 %40018 %40014 %126052 %40065 %126052 %40116 %126052 %40167 %40222 %40218 %40273 %40269 %126052 %40320 %126052 %40371 %126052 %40422 %126052 %40473 %126052 %40524 %188913 %40575 %126052 %40626 %126052 %40677 %188918 %40705 %126052 %40733 %126052 %40761 %188921 %40812 %126052 %40863 %126052 %40914 %126052 %40942 %126052 %40970 %126052 %40998 %126052 %41026 %126052 %41054 %126052 %41082 %126052 %41110 %126052 %41138 %126052 %41166 %126052 %41194 %126052 %41222 %126052 %41250 %126052 %41278 %126052 %41306 %126052 %41334 %126052 %41362 %126052 %41390 %126052 %41418 %126052 %41446 %126052 %41474 %126052 %41502 %126052 %41530 %126052 %41558 %126052 %41586 %126052 %41614 %126052 %41665 %126052 %41716 %126052 %41790 %41822 %41818 %41850 %41846 %41878 %41874 %41906 %41902 %41934 %41930 %41962 %41958 %41990 %41986 %42018 %42014 %42046 %42042 %42074 %42070 %42102 %42098 %42130 %42126 %42158 %42154 %42186 %42182 %42214 %42210 %42242 %42238 %42270 %42266 %42298 %42294 %42326 %42322 %42354 %42350 %42382 %42378 %42410 %42406 %42438 %42434 %42466 %42462 %42494 %42490 %42545 %42541 %42596 %42592 %42670 %42666 %126052 %42694 %126052 %42722 %126052 %42750 %126052 %42778 %126052 %42806 %126052 %42834 %126052 %42862 %126052 %42890 %126052 %42918 %126052 %42946 %126052 %42974 %126052 %43002 %126052 %43030 %126052 %43058 %126052 %43086 %126052 %43114 %126052 %43142 %126052 %43170 %126052 %43198 %126052 %43226 %126052 %43254 %126052 %43282 %126052 %43310 %126052 %43338 %126052 %43366 %126052 %43417 %126052 %43468 %126052 %43542 %126052 %43570 %126052 %43598 %126052 %43626 %126052 %43654 %126052 %43682 %126052 %43710 %126052 %43738 %126052 %43766 %126052 %43794 %126052 %43822 %126052 %43850 %126052 %43878 %126052 %43906 %126052 %43934 %126052 %43962 %126052 %43990 %126052 %44018 %126052 %44046 %126052 %44074 %126052 %44102 %126052 %44130 %126052 %44158 %126052 %44186 %126052 %44214 %126052 %44242 %126052 %44293 %126052 %44344 %126052 %44418 %126052 %44492 %126052 %44566 %44644 %44640 %44718 %44714 %44792 %44788 %44866 %44862 %126052 %44936 %126052 %45010 %126052 %45084 %126052 %45158 %126052 %45232 %126052 %45306 %126052 %45380 %126052 %45454 %45486 %45482 %126052 %45510 %126052 %45538 %45593 %45589 %126052 %45663 %189060 %45714 %126052 %45811 %189067 %45885 %126052 %45936 %189070 %45987 %126052 %46015 %46067 %46058 %126052 %46091 %126052 %46129 %126052 %46172 %189075 %46200 %126052 %46233 %126052 %46271 %126052 %37517 %126052 %46342 %46374 %46370 %46402 %46398 %126052 %46426 %126052 %46454 %126052 %46482 %126052 %46510 %126052 %46567 %126052 %46624 %126052 %37898 %126052 %37914 %126052 %37930 %126052 %37946 %126052 %37952 %126052 %37958 %126052 %37964 %126052 %37970 %126052 %37973 %126052 %37983 %126052 %38000 %126052 %38024 %126052 %38040 %126052 %38056 %46653 %38072 %46658 %38078 %46663 %38084 %46668 %38090 %38098 %38096 %38108 %38099 %38125 %38109 %38149 %38126 %126052 %38150 %126052 %38166 %126052 %38182 %126052 %38198 %126052 %38204 %126052 %38210 %126052 %38216 %126052 %38222 %126052 %38225 %126052 %38235 %126052 %38252 %126052 %38276 %126052 %38292 %126052 %38308 %126052 %38324 %126052 %38330 %126052 %38336 %126052 %38342 %126052 %38348 %126052 %38351 %126052 %38361 %126052 %38378 %126052 %46755 %126052 %38450
-     %188621 = OpPhi %uint %126050 %38535 %126050 %38586 %126050 %38637 %126050 %38688 %126050 %38739 %38794 %38790 %38845 %38841 %126050 %38892 %126050 %38943 %126050 %38994 %126050 %39045 %126050 %39096 %39151 %39147 %39202 %39198 %126050 %39249 %126050 %39300 %126050 %39351 %126050 %39402 %126050 %39453 %39508 %39504 %39559 %39555 %126050 %39606 %126050 %39657 %126050 %39708 %126050 %39759 %126050 %39810 %39865 %39861 %39916 %39912 %126050 %39963 %126050 %40014 %126050 %40065 %40120 %40116 %126050 %40167 %126050 %40218 %126050 %40269 %126050 %40320 %126050 %40371 %40426 %40422 %40477 %40473 %126050 %40524 %126050 %40575 %126050 %40626 %188684 %40677 %126050 %40705 %126050 %40733 %188687 %40761 %126050 %40812 %126050 %40863 %188692 %40914 %126050 %40942 %126050 %40970 %126050 %40998 %126050 %41026 %126050 %41054 %126050 %41082 %126050 %41110 %126050 %41138 %126050 %41166 %126050 %41194 %126050 %41222 %126050 %41250 %126050 %41278 %126050 %41306 %126050 %41334 %126050 %41362 %126050 %41390 %126050 %41418 %126050 %41446 %126050 %41474 %126050 %41502 %126050 %41530 %126050 %41558 %126050 %41586 %126050 %41614 %126050 %41665 %126050 %41716 %126050 %41790 %126050 %41818 %126050 %41846 %126050 %41874 %126050 %41902 %126050 %41930 %126050 %41958 %126050 %41986 %126050 %42014 %126050 %42042 %126050 %42070 %126050 %42098 %126050 %42126 %126050 %42154 %126050 %42182 %126050 %42210 %126050 %42238 %126050 %42266 %126050 %42294 %126050 %42322 %126050 %42350 %126050 %42378 %126050 %42406 %126050 %42434 %126050 %42462 %126050 %42490 %126050 %42541 %126050 %42592 %126050 %42666 %126050 %42694 %126050 %42722 %126050 %42750 %126050 %42778 %126050 %42806 %126050 %42834 %126050 %42862 %126050 %42890 %126050 %42918 %126050 %42946 %126050 %42974 %126050 %43002 %126050 %43030 %126050 %43058 %126050 %43086 %126050 %43114 %126050 %43142 %126050 %43170 %126050 %43198 %126050 %43226 %126050 %43254 %126050 %43282 %126050 %43310 %126050 %43338 %126050 %43366 %126050 %43417 %126050 %43468 %126050 %43542 %43574 %43570 %43602 %43598 %43630 %43626 %43658 %43654 %43686 %43682 %43714 %43710 %43742 %43738 %43770 %43766 %43798 %43794 %43826 %43822 %43854 %43850 %43882 %43878 %43910 %43906 %43938 %43934 %43966 %43962 %43994 %43990 %44022 %44018 %44050 %44046 %44078 %44074 %44106 %44102 %44134 %44130 %44162 %44158 %44190 %44186 %44218 %44214 %44246 %44242 %44297 %44293 %44348 %44344 %44422 %44418 %126050 %44492 %126050 %44566 %126050 %44640 %126050 %44714 %126050 %44788 %126050 %44862 %126050 %44936 %126050 %45010 %126050 %45084 %126050 %45158 %45236 %45232 %45310 %45306 %45384 %45380 %45458 %45454 %126050 %45482 %126050 %45510 %45542 %45538 %126050 %45589 %126050 %45663 %126050 %45714 %45815 %45811 %45889 %45885 %45940 %45936 %45991 %45987 %126050 %46015 %126050 %46058 %126050 %46091 %46148 %46129 %46176 %46172 %126050 %46200 %126050 %46233 %188835 %46271 %126050 %37517 %126050 %46342 %126050 %46370 %126050 %46398 %126050 %46426 %126050 %46454 %46486 %46482 %46514 %46510 %126050 %46567 %126050 %46624 %126050 %37898 %126050 %37914 %126050 %37930 %126050 %37946 %126050 %37952 %126050 %37958 %126050 %37964 %126050 %37970 %126050 %37973 %126050 %37983 %126050 %38000 %126050 %38024 %126050 %38040 %126050 %38056 %126050 %38072 %126050 %38078 %126050 %38084 %126050 %38090 %126050 %38096 %126050 %38099 %126050 %38109 %126050 %38126 %126050 %38150 %126050 %38166 %126050 %38182 %126050 %38198 %126050 %38204 %126050 %38210 %126050 %38216 %126050 %38222 %126050 %38225 %126050 %38235 %126050 %38252 %126050 %38276 %126050 %38292 %126050 %38308 %46693 %38324 %46698 %38330 %46703 %38336 %46708 %38342 %38350 %38348 %38360 %38351 %38377 %38361 %38401 %38378 %126050 %46755 %126050 %38450
-     %188323 = OpPhi %uint %126044 %38535 %126044 %38586 %126044 %38637 %188330 %38688 %188332 %38739 %126044 %38790 %126044 %38841 %126044 %38892 %126044 %38943 %126044 %38994 %188343 %39045 %188345 %39096 %126044 %39147 %126044 %39198 %126044 %39249 %126044 %39300 %126044 %39351 %188356 %39402 %188358 %39453 %126044 %39504 %126044 %39555 %126044 %39606 %126044 %39657 %126044 %39708 %188369 %39759 %188371 %39810 %126044 %39861 %126044 %39912 %126044 %39963 %126044 %40014 %188380 %40065 %126044 %40116 %126044 %40167 %126044 %40218 %126044 %40269 %188389 %40320 %188391 %40371 %126044 %40422 %126044 %40473 %188396 %40524 %126044 %40575 %188399 %40626 %126044 %40677 %126044 %40705 %188403 %40733 %126044 %40761 %126044 %40812 %188407 %40863 %126044 %40914 %126044 %40942 %126044 %40970 %126044 %40998 %126044 %41026 %126044 %41054 %126044 %41082 %126044 %41110 %126044 %41138 %126044 %41166 %126044 %41194 %126044 %41222 %126044 %41250 %126044 %41278 %126044 %41306 %126044 %41334 %126044 %41362 %126044 %41390 %126044 %41418 %126044 %41446 %126044 %41474 %126044 %41502 %126044 %41530 %126044 %41558 %126044 %41586 %126044 %41614 %126044 %41665 %126044 %41716 %126044 %41790 %126044 %41818 %126044 %41846 %126044 %41874 %126044 %41902 %126044 %41930 %126044 %41958 %126044 %41986 %126044 %42014 %126044 %42042 %126044 %42070 %126044 %42098 %126044 %42126 %126044 %42154 %126044 %42182 %126044 %42210 %126044 %42238 %126044 %42266 %126044 %42294 %126044 %42322 %126044 %42350 %126044 %42378 %126044 %42406 %126044 %42434 %126044 %42462 %126044 %42490 %126044 %42541 %126044 %42592 %126044 %42666 %188476 %42694 %188477 %42722 %188478 %42750 %188479 %42778 %188480 %42806 %188481 %42834 %188482 %42862 %188483 %42890 %188484 %42918 %188485 %42946 %188486 %42974 %188487 %43002 %188488 %43030 %188489 %43058 %188490 %43086 %188491 %43114 %188492 %43142 %188493 %43170 %188494 %43198 %188495 %43226 %188496 %43254 %188497 %43282 %188498 %43310 %188499 %43338 %188500 %43366 %188501 %43417 %188502 %43468 %188503 %43542 %126044 %43570 %126044 %43598 %126044 %43626 %126044 %43654 %126044 %43682 %126044 %43710 %126044 %43738 %126044 %43766 %126044 %43794 %126044 %43822 %126044 %43850 %126044 %43878 %126044 %43906 %126044 %43934 %126044 %43962 %126044 %43990 %126044 %44018 %126044 %44046 %126044 %44074 %126044 %44102 %126044 %44130 %126044 %44158 %126044 %44186 %126044 %44214 %126044 %44242 %126044 %44293 %126044 %44344 %126044 %44418 %126044 %44492 %126044 %44566 %126044 %44640 %126044 %44714 %126044 %44788 %126044 %44862 %188554 %44936 %188555 %45010 %188558 %45084 %188560 %45158 %126044 %45232 %126044 %45306 %126044 %45380 %126044 %45454 %126044 %45482 %188574 %45510 %126044 %45538 %126044 %45589 %126044 %45663 %126044 %45714 %126044 %45811 %126044 %45885 %188591 %45936 %126044 %45987 %126044 %46015 %126044 %46058 %126044 %46091 %126044 %46129 %126044 %46172 %126044 %46200 %188600 %46233 %126044 %46271 %126044 %37517 %126044 %46342 %126044 %46370 %126044 %46398 %188608 %46426 %188609 %46454 %126044 %46482 %126044 %46510 %126044 %46567 %126044 %46624 %126044 %37898 %126044 %37914 %126044 %37930 %126044 %37946 %126044 %37952 %126044 %37958 %126044 %37964 %126044 %37970 %126044 %37973 %126044 %37983 %126044 %38000 %126044 %38024 %126044 %38040 %126044 %38056 %126044 %38072 %126044 %38078 %126044 %38084 %126044 %38090 %126044 %38096 %126044 %38099 %126044 %38109 %126044 %38126 %126044 %38150 %126044 %38166 %126044 %38182 %126044 %38198 %126044 %38204 %126044 %38210 %126044 %38216 %126044 %38222 %126044 %38225 %126044 %38235 %126044 %38252 %126044 %38276 %126044 %38292 %126044 %38308 %126044 %38324 %126044 %38330 %126044 %38336 %126044 %38342 %126044 %38348 %126044 %38351 %126044 %38361 %126044 %38378 %188618 %46755 %126044 %38450
-     %188086 = OpPhi %uint %126041 %38535 %126041 %38586 %126041 %38637 %38692 %38688 %38743 %38739 %126041 %38790 %126041 %38841 %126041 %38892 %126041 %38943 %126041 %38994 %39049 %39045 %39100 %39096 %126041 %39147 %126041 %39198 %126041 %39249 %126041 %39300 %126041 %39351 %39406 %39402 %39457 %39453 %126041 %39504 %126041 %39555 %126041 %39606 %126041 %39657 %126041 %39708 %39763 %39759 %39814 %39810 %126041 %39861 %126041 %39912 %126041 %39963 %126041 %40014 %40069 %40065 %126041 %40116 %126041 %40167 %126041 %40218 %126041 %40269 %40324 %40320 %40375 %40371 %126041 %40422 %126041 %40473 %40528 %40524 %126041 %40575 %188145 %40626 %126041 %40677 %126041 %40705 %188149 %40733 %126041 %40761 %126041 %40812 %188153 %40863 %126041 %40914 %126041 %40942 %126041 %40970 %126041 %40998 %126041 %41026 %126041 %41054 %126041 %41082 %126041 %41110 %126041 %41138 %126041 %41166 %126041 %41194 %126041 %41222 %126041 %41250 %126041 %41278 %126041 %41306 %126041 %41334 %126041 %41362 %126041 %41390 %126041 %41418 %126041 %41446 %126041 %41474 %126041 %41502 %126041 %41530 %126041 %41558 %126041 %41586 %126041 %41614 %126041 %41665 %126041 %41716 %126041 %41790 %126041 %41818 %126041 %41846 %126041 %41874 %126041 %41902 %126041 %41930 %126041 %41958 %126041 %41986 %126041 %42014 %126041 %42042 %126041 %42070 %126041 %42098 %126041 %42126 %126041 %42154 %126041 %42182 %126041 %42210 %126041 %42238 %126041 %42266 %126041 %42294 %126041 %42322 %126041 %42350 %126041 %42378 %126041 %42406 %126041 %42434 %126041 %42462 %126041 %42490 %126041 %42541 %126041 %42592 %126041 %42666 %42698 %42694 %42726 %42722 %42754 %42750 %42782 %42778 %42810 %42806 %42838 %42834 %42866 %42862 %42894 %42890 %42922 %42918 %42950 %42946 %42978 %42974 %43006 %43002 %43034 %43030 %43062 %43058 %43090 %43086 %43118 %43114 %43146 %43142 %43174 %43170 %43202 %43198 %43230 %43226 %43258 %43254 %43286 %43282 %43314 %43310 %43342 %43338 %43370 %43366 %43421 %43417 %43472 %43468 %43546 %43542 %126041 %43570 %126041 %43598 %126041 %43626 %126041 %43654 %126041 %43682 %126041 %43710 %126041 %43738 %126041 %43766 %126041 %43794 %126041 %43822 %126041 %43850 %126041 %43878 %126041 %43906 %126041 %43934 %126041 %43962 %126041 %43990 %126041 %44018 %126041 %44046 %126041 %44074 %126041 %44102 %126041 %44130 %126041 %44158 %126041 %44186 %126041 %44214 %126041 %44242 %126041 %44293 %126041 %44344 %126041 %44418 %126041 %44492 %126041 %44566 %126041 %44640 %126041 %44714 %126041 %44788 %126041 %44862 %44940 %44936 %45014 %45010 %45088 %45084 %45162 %45158 %126041 %45232 %126041 %45306 %126041 %45380 %126041 %45454 %126041 %45482 %45514 %45510 %126041 %45538 %126041 %45589 %45667 %45663 %45718 %45714 %126041 %45811 %126041 %45885 %188296 %45936 %126041 %45987 %126041 %46015 %126041 %46058 %46105 %46091 %126041 %46129 %126041 %46172 %126041 %46200 %188304 %46233 %126041 %46271 %126041 %37517 %126041 %46342 %126041 %46370 %126041 %46398 %46430 %46426 %46458 %46454 %126041 %46482 %126041 %46510 %126041 %46567 %126041 %46624 %126041 %37898 %126041 %37914 %126041 %37930 %126041 %37946 %126041 %37952 %126041 %37958 %126041 %37964 %126041 %37970 %126041 %37973 %126041 %37983 %126041 %38000 %126041 %38024 %126041 %38040 %126041 %38056 %126041 %38072 %126041 %38078 %126041 %38084 %126041 %38090 %126041 %38096 %126041 %38099 %126041 %38109 %126041 %38126 %126041 %38150 %126041 %38166 %126041 %38182 %46673 %38198 %46678 %38204 %46683 %38210 %46688 %38216 %38224 %38222 %38234 %38225 %38251 %38235 %38275 %38252 %126041 %38276 %126041 %38292 %126041 %38308 %126041 %38324 %126041 %38330 %126041 %38336 %126041 %38342 %126041 %38348 %126041 %38351 %126041 %38361 %126041 %38378 %188320 %46755 %126041 %38450
-     %128268 = OpPhi %uint %128269 %38535 %126033 %38586 %128272 %38637 %126033 %38688 %128275 %38739 %126033 %38790 %128278 %38841 %128279 %38892 %126033 %38943 %128282 %38994 %126033 %39045 %128285 %39096 %126033 %39147 %128288 %39198 %128289 %39249 %126033 %39300 %128292 %39351 %126033 %39402 %128295 %39453 %126033 %39504 %128298 %39555 %128299 %39606 %126033 %39657 %128302 %39708 %126033 %39759 %128305 %39810 %126033 %39861 %128308 %39912 %128309 %39963 %126033 %40014 %126033 %40065 %126033 %40116 %128316 %40167 %126033 %40218 %128319 %40269 %126033 %40320 %128322 %40371 %126033 %40422 %128325 %40473 %126033 %40524 %126033 %40575 %126033 %40626 %126033 %40677 %126033 %40705 %126033 %40733 %126033 %40761 %126033 %40812 %126033 %40863 %126033 %40914 %128343 %40942 %128344 %40970 %128345 %40998 %128346 %41026 %128347 %41054 %128348 %41082 %128349 %41110 %128350 %41138 %128351 %41166 %128352 %41194 %128353 %41222 %128354 %41250 %128355 %41278 %128356 %41306 %128357 %41334 %128358 %41362 %128359 %41390 %128360 %41418 %128361 %41446 %128362 %41474 %128363 %41502 %128364 %41530 %128365 %41558 %128366 %41586 %128367 %41614 %128368 %41665 %128369 %41716 %128370 %41790 %126033 %41818 %126033 %41846 %126033 %41874 %126033 %41902 %126033 %41930 %126033 %41958 %126033 %41986 %126033 %42014 %126033 %42042 %126033 %42070 %126033 %42098 %126033 %42126 %126033 %42154 %126033 %42182 %126033 %42210 %126033 %42238 %126033 %42266 %126033 %42294 %126033 %42322 %126033 %42350 %126033 %42378 %126033 %42406 %126033 %42434 %126033 %42462 %126033 %42490 %126033 %42541 %126033 %42592 %126033 %42666 %126033 %42694 %126033 %42722 %126033 %42750 %126033 %42778 %126033 %42806 %126033 %42834 %126033 %42862 %126033 %42890 %126033 %42918 %126033 %42946 %126033 %42974 %126033 %43002 %126033 %43030 %126033 %43058 %126033 %43086 %126033 %43114 %126033 %43142 %126033 %43170 %126033 %43198 %126033 %43226 %126033 %43254 %126033 %43282 %126033 %43310 %126033 %43338 %126033 %43366 %126033 %43417 %126033 %43468 %126033 %43542 %126033 %43570 %126033 %43598 %126033 %43626 %126033 %43654 %126033 %43682 %126033 %43710 %126033 %43738 %126033 %43766 %126033 %43794 %126033 %43822 %126033 %43850 %126033 %43878 %126033 %43906 %126033 %43934 %126033 %43962 %126033 %43990 %126033 %44018 %126033 %44046 %126033 %44074 %126033 %44102 %126033 %44130 %126033 %44158 %126033 %44186 %126033 %44214 %126033 %44242 %126033 %44293 %126033 %44344 %126033 %44418 %128467 %44492 %128468 %44566 %126033 %44640 %126033 %44714 %128475 %44788 %128476 %44862 %126033 %44936 %126033 %45010 %128483 %45084 %128484 %45158 %126033 %45232 %126033 %45306 %128491 %45380 %128492 %45454 %126033 %45482 %126033 %45510 %126033 %45538 %128496 %45589 %128497 %45663 %128498 %45714 %128499 %45811 %128500 %45885 %128501 %45936 %126033 %45987 %126033 %46015 %126033 %46058 %126033 %46091 %126033 %46129 %126033 %46172 %126033 %46200 %126033 %46233 %126033 %46271 %128514 %37517 %128515 %46342 %126033 %46370 %126033 %46398 %126033 %46426 %126033 %46454 %126033 %46482 %126033 %46510 %128522 %46567 %128523 %46624 %126033 %37898 %126033 %37914 %126033 %37930 %126033 %37946 %126033 %37952 %126033 %37958 %126033 %37964 %126033 %37970 %126033 %37973 %126033 %37983 %126033 %38000 %126033 %38024 %126033 %38040 %126033 %38056 %126033 %38072 %126033 %38078 %126033 %38084 %126033 %38090 %126033 %38096 %126033 %38099 %126033 %38109 %126033 %38126 %126033 %38150 %126033 %38166 %126033 %38182 %126033 %38198 %126033 %38204 %126033 %38210 %126033 %38216 %126033 %38222 %126033 %38225 %126033 %38235 %126033 %38252 %126033 %38276 %126033 %38292 %126033 %38308 %126033 %38324 %126033 %38330 %126033 %38336 %126033 %38342 %126033 %38348 %126033 %38351 %126033 %38361 %126033 %38378 %128525 %46755 %126033 %38450
-     %128072 = OpPhi %uint %38539 %38535 %126031 %38586 %128075 %38637 %126031 %38688 %128078 %38739 %126031 %38790 %128081 %38841 %38896 %38892 %126031 %38943 %128084 %38994 %126031 %39045 %128087 %39096 %126031 %39147 %128090 %39198 %39253 %39249 %126031 %39300 %128093 %39351 %126031 %39402 %128096 %39453 %126031 %39504 %128099 %39555 %39610 %39606 %126031 %39657 %128102 %39708 %126031 %39759 %128105 %39810 %126031 %39861 %128108 %39912 %39967 %39963 %126031 %40014 %126031 %40065 %126031 %40116 %40171 %40167 %126031 %40218 %128117 %40269 %126031 %40320 %128120 %40371 %126031 %40422 %128123 %40473 %126031 %40524 %40579 %40575 %40630 %40626 %40681 %40677 %40709 %40705 %40737 %40733 %40765 %40761 %40816 %40812 %40867 %40863 %40918 %40914 %40946 %40942 %40974 %40970 %41002 %40998 %41030 %41026 %41058 %41054 %41086 %41082 %41114 %41110 %41142 %41138 %41170 %41166 %41198 %41194 %41226 %41222 %41254 %41250 %41282 %41278 %41310 %41306 %41338 %41334 %41366 %41362 %41394 %41390 %41422 %41418 %41450 %41446 %41478 %41474 %41506 %41502 %41534 %41530 %41562 %41558 %41590 %41586 %41618 %41614 %41669 %41665 %41720 %41716 %41794 %41790 %126031 %41818 %126031 %41846 %126031 %41874 %126031 %41902 %126031 %41930 %126031 %41958 %126031 %41986 %126031 %42014 %126031 %42042 %126031 %42070 %126031 %42098 %126031 %42126 %126031 %42154 %126031 %42182 %126031 %42210 %126031 %42238 %126031 %42266 %126031 %42294 %126031 %42322 %126031 %42350 %126031 %42378 %126031 %42406 %126031 %42434 %126031 %42462 %126031 %42490 %126031 %42541 %126031 %42592 %126031 %42666 %126031 %42694 %126031 %42722 %126031 %42750 %126031 %42778 %126031 %42806 %126031 %42834 %126031 %42862 %126031 %42890 %126031 %42918 %126031 %42946 %126031 %42974 %126031 %43002 %126031 %43030 %126031 %43058 %126031 %43086 %126031 %43114 %126031 %43142 %126031 %43170 %126031 %43198 %126031 %43226 %126031 %43254 %126031 %43282 %126031 %43310 %126031 %43338 %126031 %43366 %126031 %43417 %126031 %43468 %126031 %43542 %126031 %43570 %126031 %43598 %126031 %43626 %126031 %43654 %126031 %43682 %126031 %43710 %126031 %43738 %126031 %43766 %126031 %43794 %126031 %43822 %126031 %43850 %126031 %43878 %126031 %43906 %126031 %43934 %126031 %43962 %126031 %43990 %126031 %44018 %126031 %44046 %126031 %44074 %126031 %44102 %126031 %44130 %126031 %44158 %126031 %44186 %126031 %44214 %126031 %44242 %126031 %44293 %126031 %44344 %126031 %44418 %44496 %44492 %44570 %44566 %126031 %44640 %126031 %44714 %128228 %44788 %128229 %44862 %126031 %44936 %126031 %45010 %128236 %45084 %128237 %45158 %126031 %45232 %126031 %45306 %128244 %45380 %128245 %45454 %126031 %45482 %126031 %45510 %126031 %45538 %128249 %45589 %128250 %45663 %128251 %45714 %128252 %45811 %128253 %45885 %128254 %45936 %126031 %45987 %46034 %46015 %126031 %46058 %126031 %46091 %126031 %46129 %126031 %46172 %46209 %46200 %46247 %46233 %46290 %46271 %46318 %37517 %46346 %46342 %126031 %46370 %126031 %46398 %126031 %46426 %126031 %46454 %126031 %46482 %126031 %46510 %46571 %46567 %46628 %46624 %126031 %37898 %126031 %37914 %126031 %37930 %46633 %37946 %46638 %37952 %46643 %37958 %46648 %37964 %37972 %37970 %37982 %37973 %37999 %37983 %38023 %38000 %126031 %38024 %126031 %38040 %126031 %38056 %126031 %38072 %126031 %38078 %126031 %38084 %126031 %38090 %126031 %38096 %126031 %38099 %126031 %38109 %126031 %38126 %126031 %38150 %126031 %38166 %126031 %38182 %126031 %38198 %126031 %38204 %126031 %38210 %126031 %38216 %126031 %38222 %126031 %38225 %126031 %38235 %126031 %38252 %126031 %38276 %126031 %38292 %126031 %38308 %126031 %38324 %126031 %38330 %126031 %38336 %126031 %38342 %126031 %38348 %126031 %38351 %126031 %38361 %126031 %38378 %46759 %46755 %126031 %38450
-               OpBranch %38459
-      %38459 = OpLabel
-     %193841 = OpPhi %uint %126160 %30028 %193842 %38458
-     %193524 = OpPhi %uint %126158 %30028 %193525 %38458
-     %193206 = OpPhi %uint %126153 %30028 %193207 %38458
-     %192889 = OpPhi %uint %126151 %30028 %192890 %38458
-     %192571 = OpPhi %uint %126146 %30028 %192572 %38458
-     %192254 = OpPhi %uint %126144 %30028 %192255 %38458
-     %190675 = OpPhi %uint %126104 %30028 %190676 %38458
-     %189095 = OpPhi %uint %126076 %30028 %189096 %38458
-     %188853 = OpPhi %uint %126052 %30028 %188854 %38458
-     %188620 = OpPhi %uint %126050 %30028 %188621 %38458
-     %188322 = OpPhi %uint %126044 %30028 %188323 %38458
-     %188085 = OpPhi %uint %126041 %30028 %188086 %38458
-     %128267 = OpPhi %uint %126033 %30028 %128268 %38458
-     %128071 = OpPhi %uint %126031 %30028 %128072 %38458
-      %38461 = OpIAdd %uint %126026 %int_1
-      %38463 = OpIEqual %bool %38461 %uint_8
-               OpSelectionMerge %38477 None
-               OpBranchConditional %38463 %38464 %38477
-      %38464 = OpLabel
-      %38466 = OpIAdd %uint %126027 %int_1
-      %38468 = OpIEqual %bool %38466 %uint_13
-               OpSelectionMerge %38476 None
-               OpBranchConditional %38468 %38469 %38476
-      %38469 = OpLabel
-      %38471 = OpAccessChain %_ptr_Function_uint %28884 %uint_0
-      %38472 = OpLoad %uint %38471
-      %38473 = OpBitwiseAnd %uint %38472 %uint_32768
-      %38474 = OpUGreaterThan %bool %38473 %uint_0
-               OpSelectionMerge %46806 None
-               OpSwitch %uint_0 %46790
-      %46790 = OpLabel
-               OpSelectionMerge %46805 None
-               OpBranchConditional %38474 %46792 %46800
-      %46800 = OpLabel
-      %46802 = OpISub %uint %128071 %int_1
-      %46803 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %46802
-      %46804 = OpLoad %_arr_float_uint_2 %46803
-     %115258 = OpCompositeExtract %float %46804 0
-               OpBranch %46806
-      %46792 = OpLabel
-      %46795 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %128267
-      %46796 = OpLoad %float %46795
-               OpBranch %46806
-      %46805 = OpLabel
-               OpUnreachable
-      %46806 = OpLabel
-     %128527 = OpPhi %float %46796 %46792 %115258 %46800
-               OpBranch %38479
-      %38476 = OpLabel
-               OpBranch %38477
-      %38477 = OpLabel
-     %188080 = OpPhi %uint %126027 %38459 %38466 %38476
-     %270610 = OpSelect %uint %38463 %uint_0 %38461
-               OpBranch %38478
-      %38478 = OpLabel
-               OpBranch %29983
-      %38479 = OpLabel
-     %128849 = OpPhi %float %float_0 %30043 %126035 %46783 %128527 %46806
-      %28846 = OpFAdd %float %28836 %float_9_99999975en05
-      %28849 = OpCompositeConstruct %v3float %28833 %28846 %28838
-      %46813 = OpCompositeConstruct %_arr_v3float_uint_2 %28849 %28849
-      %47918 = OpLoad %_struct_446 %29977
-      %47919 = OpCopyLogical %_struct_443 %47918
-     %113068 = OpCompositeExtract %uint %47919 0
-               OpStore %38490 %46813
-               OpBranch %47923
-      %47923 = OpLabel
-     %130925 = OpPhi %uint %uint_0 %38479 %212074 %56418
-     %130923 = OpPhi %uint %uint_0 %38479 %211757 %56418
-     %130918 = OpPhi %uint %uint_0 %38479 %211440 %56418
-     %130916 = OpPhi %uint %uint_0 %38479 %211123 %56418
-     %130911 = OpPhi %uint %uint_0 %38479 %210806 %56418
-     %130909 = OpPhi %uint %uint_0 %38479 %210489 %56418
-     %130223 = OpPhi %uint %uint_0 %38479 %208910 %56418
-     %129549 = OpPhi %uint %uint_0 %38479 %207330 %56418
-     %129525 = OpPhi %uint %uint_0 %38479 %207088 %56418
-     %129523 = OpPhi %uint %uint_0 %38479 %206855 %56418
-     %129517 = OpPhi %uint %uint_0 %38479 %206557 %56418
-     %129514 = OpPhi %uint %uint_1 %38479 %206320 %56418
-     %129506 = OpPhi %uint %uint_0 %38479 %138864 %56418
-     %129504 = OpPhi %uint %uint_0 %38479 %138668 %56418
-     %129500 = OpPhi %uint %uint_0 %38479 %206316 %56418
-     %129499 = OpPhi %uint %uint_0 %38479 %270611 %56418
-               OpLoopMerge %56419 %56418 None
-               OpBranch %47926
-      %47926 = OpLabel
-      %47928 = OpIEqual %bool %129499 %uint_0
-               OpSelectionMerge %47968 None
-               OpBranchConditional %47928 %47929 %47968
-      %47929 = OpLabel
-      %47933 = OpIAdd %uint %129500 %113068
-      %47934 = OpAccessChain %_ptr_StorageBuffer_v4uint %477 %int_0 %47933
-      %47935 = OpLoad %v4uint %47934
-      %47937 = OpCompositeExtract %uint %47935 0
-      %47938 = OpBitwiseAnd %uint %47937 %uint_65535
-      %47939 = OpAccessChain %_ptr_Function_uint %46824 %int_0
-               OpStore %47939 %47938
-      %47942 = OpShiftRightLogical %uint %47937 %int_16
-      %47943 = OpAccessChain %_ptr_Function_uint %46824 %int_1
-               OpStore %47943 %47942
-      %47945 = OpCompositeExtract %uint %47935 1
-      %47946 = OpBitwiseAnd %uint %47945 %uint_65535
-      %47947 = OpAccessChain %_ptr_Function_uint %46824 %int_2
-               OpStore %47947 %47946
-      %47950 = OpShiftRightLogical %uint %47945 %int_16
-      %47951 = OpAccessChain %_ptr_Function_uint %46824 %int_3
-               OpStore %47951 %47950
-      %47953 = OpCompositeExtract %uint %47935 2
-      %47954 = OpBitwiseAnd %uint %47953 %uint_65535
-      %47955 = OpAccessChain %_ptr_Function_uint %46824 %int_4
-               OpStore %47955 %47954
-      %47958 = OpShiftRightLogical %uint %47953 %int_16
-      %47959 = OpAccessChain %_ptr_Function_uint %46824 %int_5
-               OpStore %47959 %47958
-      %47961 = OpCompositeExtract %uint %47935 3
-      %47962 = OpBitwiseAnd %uint %47961 %uint_65535
-      %47963 = OpAccessChain %_ptr_Function_uint %46824 %int_6
-               OpStore %47963 %47962
-      %47966 = OpShiftRightLogical %uint %47961 %int_16
-      %47967 = OpAccessChain %_ptr_Function_uint %46824 %int_7
-               OpStore %47967 %47966
-               OpBranch %47968
-      %47968 = OpLabel
-      %47970 = OpAccessChain %_ptr_Function_uchar %437 %129500
-      %47971 = OpLoad %uchar %47970
-      %47972 = OpUConvert %uint %47971
-      %47973 = OpBitcast %int %47972
-      %47975 = OpShiftLeftLogical %int %int_1 %129499
-      %47976 = OpBitwiseAnd %int %47973 %47975
-      %47977 = OpSGreaterThan %bool %47976 %int_0
-               OpSelectionMerge %56399 None
-               OpBranchConditional %47977 %47978 %56399
-      %47978 = OpLabel
-      %47980 = OpAccessChain %_ptr_Function_uint %46824 %129499
-      %47981 = OpLoad %uint %47980
-      %47982 = OpBitwiseAnd %uint %47981 %uint_1023
-               OpSelectionMerge %56398 None
-               OpSwitch %47982 %47983 2 %47984 3 %48011 4 %48038 5 %48067 6 %48094 7 %48123 8 %48150 9 %48179 10 %48206 11 %48233 12 %48262 13 %48289 14 %48318 15 %48345 16 %48374 17 %48437 18 %48500 19 %48563 20 %48626 21 %48689 22 %48752 23 %48815 24 %48878 25 %48941 26 %49008 27 %49071 28 %49138 29 %49201 37 %49268 38 %49331 39 %49394 40 %49457 30 %49520 31 %49583 32 %49646 33 %49713 34 %49776 35 %49843 36 %49906 41 %49973 42 %50022 43 %50073 44 %50124 45 %50175 46 %50215 47 %50255 48 %50295 49 %50359 50 %50405 54 %50469 55 %50498 56 %50527 57 %50556 58 %50585 59 %50614 60 %50643 61 %50672 62 %50701 63 %50730 64 %50759 65 %50788 66 %50817 67 %50846 68 %50875 69 %50904 70 %50933 195 %50962 199 %50991 203 %51020 207 %51049 211 %51078 215 %51107 223 %51136 227 %51165 75 %51194 71 %51194 76 %51221 72 %51221 219 %51248 90 %51330 91 %51359 92 %51388 93 %51417 94 %51446 95 %51475 96 %51504 97 %51533 98 %51562 99 %51591 100 %51620 101 %51649 102 %51678 103 %51707 104 %51736 105 %51765 106 %51794 196 %51823 200 %51852 204 %51881 208 %51910 212 %51939 216 %51968 224 %51997 228 %52026 107 %52055 108 %52082 220 %52109 120 %52191 121 %52220 122 %52249 123 %52278 124 %52307 125 %52336 126 %52365 127 %52394 128 %52423 129 %52452 130 %52481 131 %52510 132 %52539 133 %52568 134 %52597 135 %52626 136 %52655 197 %52684 201 %52713 205 %52742 209 %52771 213 %52800 217 %52829 225 %52858 229 %52887 137 %52916 138 %52943 221 %52970 150 %53052 151 %53081 152 %53110 153 %53139 154 %53168 155 %53197 156 %53226 157 %53255 158 %53284 159 %53313 160 %53342 161 %53371 162 %53400 163 %53429 164 %53458 165 %53487 166 %53516 198 %53545 202 %53574 206 %53603 210 %53632 214 %53661 218 %53690 226 %53719 230 %53748 167 %53777 168 %53804 222 %53831 231 %53913 238 %53950 232 %53987 239 %54024 233 %54061 240 %54102 234 %54141 241 %54178 235 %54215 242 %54256 236 %54295 243 %54332 237 %54369 244 %54410 51 %54449 52 %54561 53 %54733 180 %54981 181 %55006 183 %55041 182 %55070 184 %55115 186 %55154 185 %55185 190 %55218 191 %55249 192 %55268 193 %55293 194 %55324 187 %55351 188 %55370 189 %55395 245 %55426 246 %55472 247 %55499 248 %55545 249 %55572 250 %55618 251 %55645 252 %55691 77 %55718 73 %55718 78 %55778 74 %55778 79 %55838 80 %55854 81 %55870 82 %55886 83 %55892 84 %55898 85 %55904 86 %55910 87 %55913 88 %55923 89 %55940 109 %55964 110 %55980 111 %55996 112 %56012 113 %56018 114 %56024 115 %56030 116 %56036 117 %56039 118 %56049 119 %56066 139 %56090 140 %56106 141 %56122 142 %56138 143 %56144 144 %56150 145 %56156 146 %56162 147 %56165 148 %56175 149 %56192 169 %56216 170 %56232 171 %56248 172 %56264 173 %56270 174 %56276 175 %56282 176 %56288 177 %56291 178 %56301 179 %56318 253 %56342 0 %56390 1 %56391 254 %47983
-      %56391 = OpLabel
-      %56394 = OpLoad %uint %47980
-      %56395 = OpBitwiseAnd %uint %56394 %uint_32768
-      %56396 = OpUGreaterThan %bool %56395 %uint_0
-               OpSelectionMerge %64723 None
-               OpSwitch %uint_0 %64707
-      %64707 = OpLabel
-               OpSelectionMerge %64722 None
-               OpBranchConditional %56396 %64709 %64717
-      %64717 = OpLabel
-      %64719 = OpISub %uint %129504 %int_1
-      %64720 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64719
-      %64721 = OpLoad %_arr_float_uint_2 %64720
-     %110418 = OpCompositeExtract %float %64721 0
-               OpBranch %64723
-      %64709 = OpLabel
-      %64712 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %64713 = OpLoad %float %64712
-               OpBranch %64723
-      %64722 = OpLabel
-               OpUnreachable
-      %64723 = OpLabel
-     %129508 = OpPhi %float %64713 %64709 %110418 %64717
-               OpBranch %56419
-      %56390 = OpLabel
-               OpBranch %56398
-      %56342 = OpLabel
-      %56345 = OpLoad %uint %47980
-      %56346 = OpBitwiseAnd %uint %56345 %uint_32768
-      %56347 = OpUGreaterThan %bool %56346 %uint_0
-               OpSelectionMerge %64672 None
-               OpSwitch %uint_0 %64656
-      %64656 = OpLabel
-               OpSelectionMerge %64671 None
-               OpBranchConditional %56347 %64658 %64666
-      %64666 = OpLabel
-      %64668 = OpISub %uint %129504 %int_1
-      %64669 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64668
-      %64670 = OpLoad %_arr_float_uint_2 %64669
-     %110436 = OpCompositeExtract %float %64670 0
-     %110437 = OpCompositeExtract %float %64670 1
-               OpBranch %64672
-      %64658 = OpLabel
-      %64660 = OpIAdd %uint %129506 %int_1
-      %64661 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %64662 = OpLoad %float %64661
-               OpBranch %64672
-      %64671 = OpLabel
-               OpUnreachable
-      %64672 = OpLabel
-     %139122 = OpPhi %uint %64660 %64658 %129506 %64666
-     %129521 = OpPhi %uint %129504 %64658 %64668 %64666
-     %129510 = OpPhi %float %64662 %64658 %110436 %64666
-     %129509 = OpPhi %float %64662 %64658 %110437 %64666
-      %56351 = OpLoad %uint %47980
-      %56352 = OpBitwiseAnd %uint %56351 %uint_16384
-      %56353 = OpUGreaterThan %bool %56352 %uint_0
-               OpSelectionMerge %64695 None
-               OpSwitch %uint_0 %64679
-      %64679 = OpLabel
-               OpSelectionMerge %64694 None
-               OpBranchConditional %56353 %64681 %64689
-      %64689 = OpLabel
-      %64691 = OpISub %uint %129514 %int_1
-      %64692 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %64691
-      %64693 = OpLoad %_arr_v3float_uint_2 %64692
-     %110427 = OpCompositeExtract %v3float %64693 0
-     %110428 = OpCompositeExtract %v3float %64693 1
-               OpBranch %64695
-      %64681 = OpLabel
-      %64683 = OpIAdd %uint %129517 %int_1
-      %64684 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %64685 = OpLoad %v3float %64684
-               OpBranch %64695
-      %64694 = OpLabel
-               OpUnreachable
-      %64695 = OpLabel
-     %206853 = OpPhi %uint %64683 %64681 %129517 %64689
-     %206555 = OpPhi %uint %129514 %64681 %64691 %64689
-     %129519 = OpPhi %v3float %64685 %64681 %110427 %64689
-     %129518 = OpPhi %v3float %64685 %64681 %110428 %64689
-      %56357 = OpFOrdGreaterThan %v3bool %129518 %123
-      %56360 = OpFOrdLessThan %v3bool %129519 %123
-      %56361 = OpSelect %v3bool %56360 %56357 %3323
-      %56364 = OpExtInst %v3float %1 FAbs %129519
-      %56367 = OpExtInst %v3float %1 FAbs %129518
-      %56368 = OpExtInst %v3float %1 FMin %56364 %56367
-      %56370 = OpSelect %v3float %56361 %123 %56368
-      %56371 = OpExtInst %float %1 Length %56370
-      %56374 = OpFSub %float %56371 %129509
-      %56382 = OpExtInst %v3float %1 FMax %56364 %56367
-      %56383 = OpExtInst %float %1 Length %56382
-      %56386 = OpFSub %float %56383 %129510
-     %115253 = OpCompositeConstruct %_arr_float_uint_2 %56374 %56386
-      %64699 = OpIAdd %uint %129521 %int_1
-      %64701 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129521
-               OpStore %64701 %115253
-               OpBranch %56398
-      %56318 = OpLabel
-      %56320 = OpISub %uint %129523 %uint_4
-      %56322 = OpISub %uint %129523 %uint_3
-      %56323 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56322
-      %56324 = OpLoad %_arr_v4float_uint_2 %56323
-      %56325 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56320
-               OpStore %56325 %56324
-      %56329 = OpISub %uint %129523 %uint_2
-      %56330 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56329
-      %56331 = OpLoad %_arr_v4float_uint_2 %56330
-               OpStore %56323 %56331
-      %56336 = OpISub %uint %129523 %uint_1
-      %56337 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56336
-      %56338 = OpLoad %_arr_v4float_uint_2 %56337
-               OpStore %56330 %56338
-      %56341 = OpISub %uint %129523 %int_1
-               OpBranch %56398
-      %56301 = OpLabel
-      %56303 = OpISub %uint %129523 %uint_3
-      %56305 = OpISub %uint %129523 %uint_2
-      %56306 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56305
-      %56307 = OpLoad %_arr_v4float_uint_2 %56306
-      %56308 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56303
-               OpStore %56308 %56307
-      %56312 = OpISub %uint %129523 %uint_1
-      %56313 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56312
-      %56314 = OpLoad %_arr_v4float_uint_2 %56313
-               OpStore %56306 %56314
-      %56317 = OpISub %uint %129523 %int_1
-               OpBranch %56398
-      %56291 = OpLabel
-      %56293 = OpISub %uint %129523 %uint_2
-      %56295 = OpISub %uint %129523 %uint_1
-      %56296 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56295
-      %56297 = OpLoad %_arr_v4float_uint_2 %56296
-      %56298 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56293
-               OpStore %56298 %56297
-      %56300 = OpISub %uint %129523 %int_1
-               OpBranch %56398
-      %56288 = OpLabel
-      %56290 = OpISub %uint %129523 %int_1
-               OpBranch %56398
-      %56282 = OpLabel
-      %56284 = OpISub %uint %129523 %uint_4
-      %56285 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56284
-      %56286 = OpLoad %_arr_v4float_uint_2 %56285
-      %64648 = OpIAdd %uint %129523 %int_1
-      %64650 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %129523
-               OpStore %64650 %56286
-               OpBranch %56398
-      %56276 = OpLabel
-      %56278 = OpISub %uint %129523 %uint_3
-      %56279 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56278
-      %56280 = OpLoad %_arr_v4float_uint_2 %56279
-      %64643 = OpIAdd %uint %129523 %int_1
-      %64645 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %129523
-               OpStore %64645 %56280
-               OpBranch %56398
-      %56270 = OpLabel
-      %56272 = OpISub %uint %129523 %uint_2
-      %56273 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56272
-      %56274 = OpLoad %_arr_v4float_uint_2 %56273
-      %64638 = OpIAdd %uint %129523 %int_1
-      %64640 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %129523
-               OpStore %64640 %56274
-               OpBranch %56398
-      %56264 = OpLabel
-      %56266 = OpISub %uint %129523 %uint_1
-      %56267 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56266
-      %56268 = OpLoad %_arr_v4float_uint_2 %56267
-      %64633 = OpIAdd %uint %129523 %int_1
-      %64635 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %129523
-               OpStore %64635 %56268
-               OpBranch %56398
-      %56248 = OpLabel
-      %56250 = OpISub %uint %129523 %uint_1
-      %56251 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56250
-      %56252 = OpLoad %_arr_v4float_uint_2 %56251
-      %56256 = OpISub %uint %129523 %uint_4
-      %56257 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56256
-      %56258 = OpLoad %_arr_v4float_uint_2 %56257
-               OpStore %56251 %56258
-               OpStore %56257 %56252
-               OpBranch %56398
-      %56232 = OpLabel
-      %56234 = OpISub %uint %129523 %uint_1
-      %56235 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56234
-      %56236 = OpLoad %_arr_v4float_uint_2 %56235
-      %56240 = OpISub %uint %129523 %uint_3
-      %56241 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56240
-      %56242 = OpLoad %_arr_v4float_uint_2 %56241
-               OpStore %56235 %56242
-               OpStore %56241 %56236
-               OpBranch %56398
-      %56216 = OpLabel
-      %56218 = OpISub %uint %129523 %uint_1
-      %56219 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56218
-      %56220 = OpLoad %_arr_v4float_uint_2 %56219
-      %56224 = OpISub %uint %129523 %uint_2
-      %56225 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56224
-      %56226 = OpLoad %_arr_v4float_uint_2 %56225
-               OpStore %56219 %56226
-               OpStore %56225 %56220
-               OpBranch %56398
-      %56192 = OpLabel
-      %56194 = OpISub %uint %129514 %uint_4
-      %56196 = OpISub %uint %129514 %uint_3
-      %56197 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56196
-      %56198 = OpLoad %_arr_v3float_uint_2 %56197
-      %56199 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56194
-               OpStore %56199 %56198
-      %56203 = OpISub %uint %129514 %uint_2
-      %56204 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56203
-      %56205 = OpLoad %_arr_v3float_uint_2 %56204
-               OpStore %56197 %56205
-      %56210 = OpISub %uint %129514 %uint_1
-      %56211 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56210
-      %56212 = OpLoad %_arr_v3float_uint_2 %56211
-               OpStore %56204 %56212
-      %56215 = OpISub %uint %129514 %int_1
-               OpBranch %56398
-      %56175 = OpLabel
-      %56177 = OpISub %uint %129514 %uint_3
-      %56179 = OpISub %uint %129514 %uint_2
-      %56180 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56179
-      %56181 = OpLoad %_arr_v3float_uint_2 %56180
-      %56182 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56177
-               OpStore %56182 %56181
-      %56186 = OpISub %uint %129514 %uint_1
-      %56187 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56186
-      %56188 = OpLoad %_arr_v3float_uint_2 %56187
-               OpStore %56180 %56188
-      %56191 = OpISub %uint %129514 %int_1
-               OpBranch %56398
-      %56165 = OpLabel
-      %56167 = OpISub %uint %129514 %uint_2
-      %56169 = OpISub %uint %129514 %uint_1
-      %56170 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56169
-      %56171 = OpLoad %_arr_v3float_uint_2 %56170
-      %56172 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56167
-               OpStore %56172 %56171
-      %56174 = OpISub %uint %129514 %int_1
-               OpBranch %56398
-      %56162 = OpLabel
-      %56164 = OpISub %uint %129514 %int_1
-               OpBranch %56398
-      %56156 = OpLabel
-      %56158 = OpISub %uint %129514 %uint_4
-      %56159 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56158
-      %56160 = OpLoad %_arr_v3float_uint_2 %56159
-      %64628 = OpIAdd %uint %129514 %int_1
-      %64630 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %129514
-               OpStore %64630 %56160
-               OpBranch %56398
-      %56150 = OpLabel
-      %56152 = OpISub %uint %129514 %uint_3
-      %56153 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56152
-      %56154 = OpLoad %_arr_v3float_uint_2 %56153
-      %64623 = OpIAdd %uint %129514 %int_1
-      %64625 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %129514
-               OpStore %64625 %56154
-               OpBranch %56398
-      %56144 = OpLabel
-      %56146 = OpISub %uint %129514 %uint_2
-      %56147 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56146
-      %56148 = OpLoad %_arr_v3float_uint_2 %56147
-      %64618 = OpIAdd %uint %129514 %int_1
-      %64620 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %129514
-               OpStore %64620 %56148
-               OpBranch %56398
-      %56138 = OpLabel
-      %56140 = OpISub %uint %129514 %uint_1
-      %56141 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56140
-      %56142 = OpLoad %_arr_v3float_uint_2 %56141
-      %64613 = OpIAdd %uint %129514 %int_1
-      %64615 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %129514
-               OpStore %64615 %56142
-               OpBranch %56398
-      %56122 = OpLabel
-      %56124 = OpISub %uint %129514 %uint_1
-      %56125 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56124
-      %56126 = OpLoad %_arr_v3float_uint_2 %56125
-      %56130 = OpISub %uint %129514 %uint_4
-      %56131 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56130
-      %56132 = OpLoad %_arr_v3float_uint_2 %56131
-               OpStore %56125 %56132
-               OpStore %56131 %56126
-               OpBranch %56398
-      %56106 = OpLabel
-      %56108 = OpISub %uint %129514 %uint_1
-      %56109 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56108
-      %56110 = OpLoad %_arr_v3float_uint_2 %56109
-      %56114 = OpISub %uint %129514 %uint_3
-      %56115 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56114
-      %56116 = OpLoad %_arr_v3float_uint_2 %56115
-               OpStore %56109 %56116
-               OpStore %56115 %56110
-               OpBranch %56398
-      %56090 = OpLabel
-      %56092 = OpISub %uint %129514 %uint_1
-      %56093 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56092
-      %56094 = OpLoad %_arr_v3float_uint_2 %56093
-      %56098 = OpISub %uint %129514 %uint_2
-      %56099 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56098
-      %56100 = OpLoad %_arr_v3float_uint_2 %56099
-               OpStore %56093 %56100
-               OpStore %56099 %56094
-               OpBranch %56398
-      %56066 = OpLabel
-      %56068 = OpISub %uint %129525 %uint_4
-      %56070 = OpISub %uint %129525 %uint_3
-      %56071 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56070
-      %56072 = OpLoad %_arr_v2float_uint_2 %56071
-      %56073 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56068
-               OpStore %56073 %56072
-      %56077 = OpISub %uint %129525 %uint_2
-      %56078 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56077
-      %56079 = OpLoad %_arr_v2float_uint_2 %56078
-               OpStore %56071 %56079
-      %56084 = OpISub %uint %129525 %uint_1
-      %56085 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56084
-      %56086 = OpLoad %_arr_v2float_uint_2 %56085
-               OpStore %56078 %56086
-      %56089 = OpISub %uint %129525 %int_1
-               OpBranch %56398
-      %56049 = OpLabel
-      %56051 = OpISub %uint %129525 %uint_3
-      %56053 = OpISub %uint %129525 %uint_2
-      %56054 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56053
-      %56055 = OpLoad %_arr_v2float_uint_2 %56054
-      %56056 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56051
-               OpStore %56056 %56055
-      %56060 = OpISub %uint %129525 %uint_1
-      %56061 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56060
-      %56062 = OpLoad %_arr_v2float_uint_2 %56061
-               OpStore %56054 %56062
-      %56065 = OpISub %uint %129525 %int_1
-               OpBranch %56398
-      %56039 = OpLabel
-      %56041 = OpISub %uint %129525 %uint_2
-      %56043 = OpISub %uint %129525 %uint_1
-      %56044 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56043
-      %56045 = OpLoad %_arr_v2float_uint_2 %56044
-      %56046 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56041
-               OpStore %56046 %56045
-      %56048 = OpISub %uint %129525 %int_1
-               OpBranch %56398
-      %56036 = OpLabel
-      %56038 = OpISub %uint %129525 %int_1
-               OpBranch %56398
-      %56030 = OpLabel
-      %56032 = OpISub %uint %129525 %uint_4
-      %56033 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56032
-      %56034 = OpLoad %_arr_v2float_uint_2 %56033
-      %64608 = OpIAdd %uint %129525 %int_1
-      %64610 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %129525
-               OpStore %64610 %56034
-               OpBranch %56398
-      %56024 = OpLabel
-      %56026 = OpISub %uint %129525 %uint_3
-      %56027 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56026
-      %56028 = OpLoad %_arr_v2float_uint_2 %56027
-      %64603 = OpIAdd %uint %129525 %int_1
-      %64605 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %129525
-               OpStore %64605 %56028
-               OpBranch %56398
-      %56018 = OpLabel
-      %56020 = OpISub %uint %129525 %uint_2
-      %56021 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56020
-      %56022 = OpLoad %_arr_v2float_uint_2 %56021
-      %64598 = OpIAdd %uint %129525 %int_1
-      %64600 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %129525
-               OpStore %64600 %56022
-               OpBranch %56398
-      %56012 = OpLabel
-      %56014 = OpISub %uint %129525 %uint_1
-      %56015 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56014
-      %56016 = OpLoad %_arr_v2float_uint_2 %56015
-      %64593 = OpIAdd %uint %129525 %int_1
-      %64595 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %129525
-               OpStore %64595 %56016
-               OpBranch %56398
-      %55996 = OpLabel
-      %55998 = OpISub %uint %129525 %uint_1
-      %55999 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %55998
-      %56000 = OpLoad %_arr_v2float_uint_2 %55999
-      %56004 = OpISub %uint %129525 %uint_4
-      %56005 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56004
-      %56006 = OpLoad %_arr_v2float_uint_2 %56005
-               OpStore %55999 %56006
-               OpStore %56005 %56000
-               OpBranch %56398
-      %55980 = OpLabel
-      %55982 = OpISub %uint %129525 %uint_1
-      %55983 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %55982
-      %55984 = OpLoad %_arr_v2float_uint_2 %55983
-      %55988 = OpISub %uint %129525 %uint_3
-      %55989 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %55988
-      %55990 = OpLoad %_arr_v2float_uint_2 %55989
-               OpStore %55983 %55990
-               OpStore %55989 %55984
-               OpBranch %56398
-      %55964 = OpLabel
-      %55966 = OpISub %uint %129525 %uint_1
-      %55967 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %55966
-      %55968 = OpLoad %_arr_v2float_uint_2 %55967
-      %55972 = OpISub %uint %129525 %uint_2
-      %55973 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %55972
-      %55974 = OpLoad %_arr_v2float_uint_2 %55973
-               OpStore %55967 %55974
-               OpStore %55973 %55968
-               OpBranch %56398
-      %55940 = OpLabel
-      %55942 = OpISub %uint %129504 %uint_4
-      %55944 = OpISub %uint %129504 %uint_3
-      %55945 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55944
-      %55946 = OpLoad %_arr_float_uint_2 %55945
-      %55947 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55942
-               OpStore %55947 %55946
-      %55951 = OpISub %uint %129504 %uint_2
-      %55952 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55951
-      %55953 = OpLoad %_arr_float_uint_2 %55952
-               OpStore %55945 %55953
-      %55958 = OpISub %uint %129504 %uint_1
-      %55959 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55958
-      %55960 = OpLoad %_arr_float_uint_2 %55959
-               OpStore %55952 %55960
-      %55963 = OpISub %uint %129504 %int_1
-               OpBranch %56398
-      %55923 = OpLabel
-      %55925 = OpISub %uint %129504 %uint_3
-      %55927 = OpISub %uint %129504 %uint_2
-      %55928 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55927
-      %55929 = OpLoad %_arr_float_uint_2 %55928
-      %55930 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55925
-               OpStore %55930 %55929
-      %55934 = OpISub %uint %129504 %uint_1
-      %55935 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55934
-      %55936 = OpLoad %_arr_float_uint_2 %55935
-               OpStore %55928 %55936
-      %55939 = OpISub %uint %129504 %int_1
-               OpBranch %56398
-      %55913 = OpLabel
-      %55915 = OpISub %uint %129504 %uint_2
-      %55917 = OpISub %uint %129504 %uint_1
-      %55918 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55917
-      %55919 = OpLoad %_arr_float_uint_2 %55918
-      %55920 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55915
-               OpStore %55920 %55919
-      %55922 = OpISub %uint %129504 %int_1
-               OpBranch %56398
-      %55910 = OpLabel
-      %55912 = OpISub %uint %129504 %int_1
-               OpBranch %56398
-      %55904 = OpLabel
-      %55906 = OpISub %uint %129504 %uint_4
-      %55907 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55906
-      %55908 = OpLoad %_arr_float_uint_2 %55907
-      %64588 = OpIAdd %uint %129504 %int_1
-      %64590 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %64590 %55908
-               OpBranch %56398
-      %55898 = OpLabel
-      %55900 = OpISub %uint %129504 %uint_3
-      %55901 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55900
-      %55902 = OpLoad %_arr_float_uint_2 %55901
-      %64583 = OpIAdd %uint %129504 %int_1
-      %64585 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %64585 %55902
-               OpBranch %56398
-      %55892 = OpLabel
-      %55894 = OpISub %uint %129504 %uint_2
-      %55895 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55894
-      %55896 = OpLoad %_arr_float_uint_2 %55895
-      %64578 = OpIAdd %uint %129504 %int_1
-      %64580 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %64580 %55896
-               OpBranch %56398
-      %55886 = OpLabel
-      %55888 = OpISub %uint %129504 %uint_1
-      %55889 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55888
-      %55890 = OpLoad %_arr_float_uint_2 %55889
-      %64573 = OpIAdd %uint %129504 %int_1
-      %64575 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %64575 %55890
-               OpBranch %56398
-      %55870 = OpLabel
-      %55872 = OpISub %uint %129504 %uint_1
-      %55873 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55872
-      %55874 = OpLoad %_arr_float_uint_2 %55873
-      %55878 = OpISub %uint %129504 %uint_4
-      %55879 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55878
-      %55880 = OpLoad %_arr_float_uint_2 %55879
-               OpStore %55873 %55880
-               OpStore %55879 %55874
-               OpBranch %56398
-      %55854 = OpLabel
-      %55856 = OpISub %uint %129504 %uint_1
-      %55857 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55856
-      %55858 = OpLoad %_arr_float_uint_2 %55857
-      %55862 = OpISub %uint %129504 %uint_3
-      %55863 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55862
-      %55864 = OpLoad %_arr_float_uint_2 %55863
-               OpStore %55857 %55864
-               OpStore %55863 %55858
-               OpBranch %56398
-      %55838 = OpLabel
-      %55840 = OpISub %uint %129504 %uint_1
-      %55841 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55840
-      %55842 = OpLoad %_arr_float_uint_2 %55841
-      %55846 = OpISub %uint %129504 %uint_2
-      %55847 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %55846
-      %55848 = OpLoad %_arr_float_uint_2 %55847
-               OpStore %55841 %55848
-               OpStore %55847 %55842
-               OpBranch %56398
-      %55778 = OpLabel
-      %64517 = OpIAdd %uint %129506 %int_1
-      %64518 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %64519 = OpLoad %float %64518
-      %55782 = OpLoad %uint %47980
-      %55783 = OpBitwiseAnd %uint %55782 %uint_32768
-      %55784 = OpUGreaterThan %bool %55783 %uint_0
-               OpSelectionMerge %64541 None
-               OpSwitch %uint_0 %64525
-      %64525 = OpLabel
-               OpSelectionMerge %64540 None
-               OpBranchConditional %55784 %64527 %64535
-      %64535 = OpLabel
-      %64537 = OpISub %uint %129504 %int_1
-      %64538 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64537
-      %64539 = OpLoad %_arr_float_uint_2 %64538
-     %110454 = OpCompositeExtract %float %64539 0
-     %110455 = OpCompositeExtract %float %64539 1
-               OpBranch %64541
-      %64527 = OpLabel
-      %64529 = OpIAdd %uint %129506 %int_2
-      %64530 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %64517
-      %64531 = OpLoad %float %64530
-               OpBranch %64541
-      %64540 = OpLabel
-               OpUnreachable
-      %64541 = OpLabel
-     %129533 = OpPhi %uint %64529 %64527 %64517 %64535
-     %129532 = OpPhi %uint %129504 %64527 %64537 %64535
-     %129530 = OpPhi %float %64531 %64527 %110454 %64535
-     %129529 = OpPhi %float %64531 %64527 %110455 %64535
-      %55788 = OpLoad %uint %47980
-      %55789 = OpBitwiseAnd %uint %55788 %uint_16384
-      %55790 = OpUGreaterThan %bool %55789 %uint_0
-               OpSelectionMerge %64564 None
-               OpSwitch %uint_0 %64548
-      %64548 = OpLabel
-               OpSelectionMerge %64563 None
-               OpBranchConditional %55790 %64550 %64558
-      %64558 = OpLabel
-      %64560 = OpISub %uint %129532 %int_1
-      %64561 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64560
-      %64562 = OpLoad %_arr_float_uint_2 %64561
-     %110445 = OpCompositeExtract %float %64562 0
-     %110446 = OpCompositeExtract %float %64562 1
-               OpBranch %64564
-      %64550 = OpLabel
-      %64552 = OpIAdd %uint %129533 %int_1
-      %64553 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129533
-      %64554 = OpLoad %float %64553
-               OpBranch %64564
-      %64563 = OpLabel
-               OpUnreachable
-      %64564 = OpLabel
-     %139120 = OpPhi %uint %64552 %64550 %129533 %64558
-     %129536 = OpPhi %uint %129532 %64550 %64560 %64558
-     %129535 = OpPhi %float %64554 %64550 %110445 %64558
-     %129534 = OpPhi %float %64554 %64550 %110446 %64558
-      %55797 = OpFSub %float %129530 %129535
-      %55798 = OpExtInst %float %1 FAbs %55797
-      %55799 = OpFSub %float %64519 %55798
-      %55800 = OpExtInst %float %1 FMax %55799 %float_0
-      %55806 = OpFSub %float %129529 %129534
-      %55807 = OpExtInst %float %1 FAbs %55806
-      %55808 = OpFSub %float %64519 %55807
-      %55809 = OpExtInst %float %1 FMax %55808 %float_0
-      %55814 = OpExtInst %float %1 FMax %129530 %129535
-      %55817 = OpFMul %float %55800 %55800
-      %55818 = OpFMul %float %55817 %float_0_25
-      %55820 = OpFDiv %float %55818 %64519
-      %55821 = OpFAdd %float %55814 %55820
-      %55826 = OpExtInst %float %1 FMax %129529 %129534
-      %55829 = OpFMul %float %55809 %55809
-      %55830 = OpFMul %float %55829 %float_0_25
-      %55832 = OpFDiv %float %55830 %64519
-      %55833 = OpFAdd %float %55826 %55832
-      %55836 = OpCompositeConstruct %_arr_float_uint_2 %55821 %55833
-      %64568 = OpIAdd %uint %129536 %int_1
-      %64570 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129536
-               OpStore %64570 %55836
-               OpBranch %56398
-      %55718 = OpLabel
-      %64460 = OpIAdd %uint %129506 %int_1
-      %64461 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %64462 = OpLoad %float %64461
-      %55722 = OpLoad %uint %47980
-      %55723 = OpBitwiseAnd %uint %55722 %uint_32768
-      %55724 = OpUGreaterThan %bool %55723 %uint_0
-               OpSelectionMerge %64484 None
-               OpSwitch %uint_0 %64468
-      %64468 = OpLabel
-               OpSelectionMerge %64483 None
-               OpBranchConditional %55724 %64470 %64478
-      %64478 = OpLabel
-      %64480 = OpISub %uint %129504 %int_1
-      %64481 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64480
-      %64482 = OpLoad %_arr_float_uint_2 %64481
-     %110472 = OpCompositeExtract %float %64482 0
-     %110473 = OpCompositeExtract %float %64482 1
-               OpBranch %64484
-      %64470 = OpLabel
-      %64472 = OpIAdd %uint %129506 %int_2
-      %64473 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %64460
-      %64474 = OpLoad %float %64473
-               OpBranch %64484
-      %64483 = OpLabel
-               OpUnreachable
-      %64484 = OpLabel
-     %129544 = OpPhi %uint %64472 %64470 %64460 %64478
-     %129543 = OpPhi %uint %129504 %64470 %64480 %64478
-     %129541 = OpPhi %float %64474 %64470 %110472 %64478
-     %129540 = OpPhi %float %64474 %64470 %110473 %64478
-      %55728 = OpLoad %uint %47980
-      %55729 = OpBitwiseAnd %uint %55728 %uint_16384
-      %55730 = OpUGreaterThan %bool %55729 %uint_0
-               OpSelectionMerge %64507 None
-               OpSwitch %uint_0 %64491
-      %64491 = OpLabel
-               OpSelectionMerge %64506 None
-               OpBranchConditional %55730 %64493 %64501
-      %64501 = OpLabel
-      %64503 = OpISub %uint %129543 %int_1
-      %64504 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64503
-      %64505 = OpLoad %_arr_float_uint_2 %64504
-     %110463 = OpCompositeExtract %float %64505 0
-     %110464 = OpCompositeExtract %float %64505 1
-               OpBranch %64507
-      %64493 = OpLabel
-      %64495 = OpIAdd %uint %129544 %int_1
-      %64496 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129544
-      %64497 = OpLoad %float %64496
-               OpBranch %64507
-      %64506 = OpLabel
-               OpUnreachable
-      %64507 = OpLabel
-     %139119 = OpPhi %uint %64495 %64493 %129544 %64501
-     %129547 = OpPhi %uint %129543 %64493 %64503 %64501
-     %129546 = OpPhi %float %64497 %64493 %110463 %64501
-     %129545 = OpPhi %float %64497 %64493 %110464 %64501
-      %55737 = OpFSub %float %129541 %129546
-      %55738 = OpExtInst %float %1 FAbs %55737
-      %55739 = OpFSub %float %64462 %55738
-      %55740 = OpExtInst %float %1 FMax %55739 %float_0
-      %55746 = OpFSub %float %129540 %129545
-      %55747 = OpExtInst %float %1 FAbs %55746
-      %55748 = OpFSub %float %64462 %55747
-      %55749 = OpExtInst %float %1 FMax %55748 %float_0
-      %55754 = OpExtInst %float %1 FMin %129541 %129546
-      %55757 = OpFMul %float %55740 %55740
-      %55758 = OpFMul %float %55757 %float_0_25
-      %55760 = OpFDiv %float %55758 %64462
-      %55761 = OpFSub %float %55754 %55760
-      %55766 = OpExtInst %float %1 FMin %129540 %129545
-      %55769 = OpFMul %float %55749 %55749
-      %55770 = OpFMul %float %55769 %float_0_25
-      %55772 = OpFDiv %float %55770 %64462
-      %55773 = OpFSub %float %55766 %55772
-      %55776 = OpCompositeConstruct %_arr_float_uint_2 %55761 %55773
-      %64511 = OpIAdd %uint %129547 %int_1
-      %64513 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129547
-               OpStore %64513 %55776
-               OpBranch %56398
-      %55691 = OpLabel
-      %55694 = OpLoad %uint %47980
-      %55695 = OpBitwiseAnd %uint %55694 %uint_32768
-      %55696 = OpUGreaterThan %bool %55695 %uint_0
-               OpSelectionMerge %64450 None
-               OpSwitch %uint_0 %64434
-      %64434 = OpLabel
-               OpSelectionMerge %64449 None
-               OpBranchConditional %55696 %64436 %64444
-      %64444 = OpLabel
-      %64446 = OpISub %uint %129523 %int_1
-      %64447 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %64446
-      %64448 = OpLoad %_arr_v4float_uint_2 %64447
-     %110482 = OpCompositeExtract %v4float %64448 1
-               OpBranch %64450
-      %64436 = OpLabel
-      %64438 = OpIAdd %uint %129549 %int_1
-      %64439 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %64440 = OpLoad %v4float %64439
-               OpBranch %64450
-      %64449 = OpLabel
-               OpUnreachable
-      %64450 = OpLabel
-     %207620 = OpPhi %uint %64438 %64436 %129549 %64444
-     %129882 = OpPhi %uint %129523 %64436 %64446 %64444
-     %129550 = OpPhi %v4float %64440 %64436 %110482 %64444
-      %55711 = OpFMul %v4float %129550 %129550
-      %55714 = OpFMul %v4float %55711 %129550
-     %115224 = OpCompositeConstruct %_arr_v4float_uint_2 %55714 %126085
-      %64454 = OpIAdd %uint %129882 %int_1
-      %64456 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %129882
-               OpStore %64456 %115224
-               OpBranch %56398
-      %55645 = OpLabel
-      %55648 = OpLoad %uint %47980
-      %55649 = OpBitwiseAnd %uint %55648 %uint_32768
-      %55650 = OpUGreaterThan %bool %55649 %uint_0
-               OpSelectionMerge %64422 None
-               OpSwitch %uint_0 %64406
-      %64406 = OpLabel
-               OpSelectionMerge %64421 None
-               OpBranchConditional %55650 %64408 %64416
-      %64416 = OpLabel
-      %64418 = OpISub %uint %129523 %int_1
-      %64419 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %64418
-      %64420 = OpLoad %_arr_v4float_uint_2 %64419
-     %110490 = OpCompositeExtract %v4float %64420 0
-     %110491 = OpCompositeExtract %v4float %64420 1
-               OpBranch %64422
-      %64408 = OpLabel
-      %64410 = OpIAdd %uint %129549 %int_1
-      %64411 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %64412 = OpLoad %v4float %64411
-               OpBranch %64422
-      %64421 = OpLabel
-               OpUnreachable
-      %64422 = OpLabel
-     %207619 = OpPhi %uint %64410 %64408 %129549 %64416
-     %129885 = OpPhi %uint %129523 %64408 %64418 %64416
-     %129884 = OpPhi %v4float %64412 %64408 %110490 %64416
-     %129883 = OpPhi %v4float %64412 %64408 %110491 %64416
-      %55656 = OpFOrdGreaterThan %v4bool %129883 %3375
-      %55660 = OpFOrdLessThan %v4bool %129884 %3375
-      %55661 = OpSelect %v4bool %55660 %55656 %3373
-      %55666 = OpFMul %v4float %129884 %129884
-      %55671 = OpFMul %v4float %129883 %129883
-      %55672 = OpExtInst %v4float %1 FMin %55666 %55671
-      %55675 = OpSelect %v4float %55661 %3375 %55672
-      %55687 = OpExtInst %v4float %1 FMax %55666 %55671
-     %115215 = OpCompositeConstruct %_arr_v4float_uint_2 %55675 %55687
-      %64426 = OpIAdd %uint %129885 %int_1
-      %64428 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %129885
-               OpStore %64428 %115215
-               OpBranch %56398
-      %55618 = OpLabel
-      %55621 = OpLoad %uint %47980
-      %55622 = OpBitwiseAnd %uint %55621 %uint_32768
-      %55623 = OpUGreaterThan %bool %55622 %uint_0
-               OpSelectionMerge %64394 None
-               OpSwitch %uint_0 %64378
-      %64378 = OpLabel
-               OpSelectionMerge %64393 None
-               OpBranchConditional %55623 %64380 %64388
-      %64388 = OpLabel
-      %64390 = OpISub %uint %129514 %int_1
-      %64391 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %64390
-      %64392 = OpLoad %_arr_v3float_uint_2 %64391
-     %110500 = OpCompositeExtract %v3float %64392 1
-               OpBranch %64394
-      %64380 = OpLabel
-      %64382 = OpIAdd %uint %129517 %int_1
-      %64383 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %64384 = OpLoad %v3float %64383
-               OpBranch %64394
-      %64393 = OpLabel
-               OpUnreachable
-      %64394 = OpLabel
-     %206844 = OpPhi %uint %64382 %64380 %129517 %64388
-     %130218 = OpPhi %uint %129514 %64380 %64390 %64388
-     %129886 = OpPhi %v3float %64384 %64380 %110500 %64388
-      %55638 = OpFMul %v3float %129886 %129886
-      %55641 = OpFMul %v3float %55638 %129886
-     %115206 = OpCompositeConstruct %_arr_v3float_uint_2 %55641 %126098
-      %64398 = OpIAdd %uint %130218 %int_1
-      %64400 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %130218
-               OpStore %64400 %115206
-               OpBranch %56398
-      %55572 = OpLabel
-      %55575 = OpLoad %uint %47980
-      %55576 = OpBitwiseAnd %uint %55575 %uint_32768
-      %55577 = OpUGreaterThan %bool %55576 %uint_0
-               OpSelectionMerge %64366 None
-               OpSwitch %uint_0 %64350
-      %64350 = OpLabel
-               OpSelectionMerge %64365 None
-               OpBranchConditional %55577 %64352 %64360
-      %64360 = OpLabel
-      %64362 = OpISub %uint %129514 %int_1
-      %64363 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %64362
-      %64364 = OpLoad %_arr_v3float_uint_2 %64363
-     %110508 = OpCompositeExtract %v3float %64364 0
-     %110509 = OpCompositeExtract %v3float %64364 1
-               OpBranch %64366
-      %64352 = OpLabel
-      %64354 = OpIAdd %uint %129517 %int_1
-      %64355 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %64356 = OpLoad %v3float %64355
-               OpBranch %64366
-      %64365 = OpLabel
-               OpUnreachable
-      %64366 = OpLabel
-     %206843 = OpPhi %uint %64354 %64352 %129517 %64360
-     %130221 = OpPhi %uint %129514 %64352 %64362 %64360
-     %130220 = OpPhi %v3float %64356 %64352 %110508 %64360
-     %130219 = OpPhi %v3float %64356 %64352 %110509 %64360
-      %55583 = OpFOrdGreaterThan %v3bool %130219 %123
-      %55587 = OpFOrdLessThan %v3bool %130220 %123
-      %55588 = OpSelect %v3bool %55587 %55583 %3323
-      %55593 = OpFMul %v3float %130220 %130220
-      %55598 = OpFMul %v3float %130219 %130219
-      %55599 = OpExtInst %v3float %1 FMin %55593 %55598
-      %55602 = OpSelect %v3float %55588 %123 %55599
-      %55614 = OpExtInst %v3float %1 FMax %55593 %55598
-     %115197 = OpCompositeConstruct %_arr_v3float_uint_2 %55602 %55614
-      %64370 = OpIAdd %uint %130221 %int_1
-      %64372 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %130221
-               OpStore %64372 %115197
-               OpBranch %56398
-      %55545 = OpLabel
-      %55548 = OpLoad %uint %47980
-      %55549 = OpBitwiseAnd %uint %55548 %uint_32768
-      %55550 = OpUGreaterThan %bool %55549 %uint_0
-               OpSelectionMerge %64338 None
-               OpSwitch %uint_0 %64322
-      %64322 = OpLabel
-               OpSelectionMerge %64337 None
-               OpBranchConditional %55550 %64324 %64332
-      %64332 = OpLabel
-      %64334 = OpISub %uint %129525 %int_1
-      %64335 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %64334
-      %64336 = OpLoad %_arr_v2float_uint_2 %64335
-     %110518 = OpCompositeExtract %v2float %64336 1
-               OpBranch %64338
-      %64324 = OpLabel
-      %64326 = OpIAdd %uint %130223 %int_1
-      %64327 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %64328 = OpLoad %v2float %64327
-               OpBranch %64338
-      %64337 = OpLabel
-               OpUnreachable
-      %64338 = OpLabel
-     %209195 = OpPhi %uint %64326 %64324 %130223 %64332
-     %130556 = OpPhi %uint %129525 %64324 %64334 %64332
-     %130224 = OpPhi %v2float %64328 %64324 %110518 %64332
-      %55565 = OpFMul %v2float %130224 %130224
-      %55568 = OpFMul %v2float %55565 %130224
-     %115188 = OpCompositeConstruct %_arr_v2float_uint_2 %55568 %126113
-      %64342 = OpIAdd %uint %130556 %int_1
-      %64344 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %130556
-               OpStore %64344 %115188
-               OpBranch %56398
-      %55499 = OpLabel
-      %55502 = OpLoad %uint %47980
-      %55503 = OpBitwiseAnd %uint %55502 %uint_32768
-      %55504 = OpUGreaterThan %bool %55503 %uint_0
-               OpSelectionMerge %64310 None
-               OpSwitch %uint_0 %64294
-      %64294 = OpLabel
-               OpSelectionMerge %64309 None
-               OpBranchConditional %55504 %64296 %64304
-      %64304 = OpLabel
-      %64306 = OpISub %uint %129525 %int_1
-      %64307 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %64306
-      %64308 = OpLoad %_arr_v2float_uint_2 %64307
-     %110526 = OpCompositeExtract %v2float %64308 0
-     %110527 = OpCompositeExtract %v2float %64308 1
-               OpBranch %64310
-      %64296 = OpLabel
-      %64298 = OpIAdd %uint %130223 %int_1
-      %64299 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %64300 = OpLoad %v2float %64299
-               OpBranch %64310
-      %64309 = OpLabel
-               OpUnreachable
-      %64310 = OpLabel
-     %209194 = OpPhi %uint %64298 %64296 %130223 %64304
-     %130559 = OpPhi %uint %129525 %64296 %64306 %64304
-     %130558 = OpPhi %v2float %64300 %64296 %110526 %64304
-     %130557 = OpPhi %v2float %64300 %64296 %110527 %64304
-      %55510 = OpFOrdGreaterThan %v2bool %130557 %3274
-      %55514 = OpFOrdLessThan %v2bool %130558 %3274
-      %55515 = OpSelect %v2bool %55514 %55510 %3272
-      %55520 = OpFMul %v2float %130558 %130558
-      %55525 = OpFMul %v2float %130557 %130557
-      %55526 = OpExtInst %v2float %1 FMin %55520 %55525
-      %55529 = OpSelect %v2float %55515 %3274 %55526
-      %55541 = OpExtInst %v2float %1 FMax %55520 %55525
-     %115179 = OpCompositeConstruct %_arr_v2float_uint_2 %55529 %55541
-      %64314 = OpIAdd %uint %130559 %int_1
-      %64316 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %130559
-               OpStore %64316 %115179
-               OpBranch %56398
-      %55472 = OpLabel
-      %55475 = OpLoad %uint %47980
-      %55476 = OpBitwiseAnd %uint %55475 %uint_32768
-      %55477 = OpUGreaterThan %bool %55476 %uint_0
-               OpSelectionMerge %64282 None
-               OpSwitch %uint_0 %64266
-      %64266 = OpLabel
-               OpSelectionMerge %64281 None
-               OpBranchConditional %55477 %64268 %64276
-      %64276 = OpLabel
-      %64278 = OpISub %uint %129504 %int_1
-      %64279 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64278
-      %64280 = OpLoad %_arr_float_uint_2 %64279
-     %110536 = OpCompositeExtract %float %64280 1
-               OpBranch %64282
-      %64268 = OpLabel
-      %64270 = OpIAdd %uint %129506 %int_1
-      %64271 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %64272 = OpLoad %float %64271
-               OpBranch %64282
-      %64281 = OpLabel
-               OpUnreachable
-      %64282 = OpLabel
-     %139112 = OpPhi %uint %64270 %64268 %129506 %64276
-     %130892 = OpPhi %uint %129504 %64268 %64278 %64276
-     %130560 = OpPhi %float %64272 %64268 %110536 %64276
-      %55492 = OpFMul %float %130560 %130560
-      %55495 = OpFMul %float %55492 %130560
-     %115170 = OpCompositeConstruct %_arr_float_uint_2 %55495 %126126
-      %64286 = OpIAdd %uint %130892 %int_1
-      %64288 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %130892
-               OpStore %64288 %115170
-               OpBranch %56398
-      %55426 = OpLabel
-      %55429 = OpLoad %uint %47980
-      %55430 = OpBitwiseAnd %uint %55429 %uint_32768
-      %55431 = OpUGreaterThan %bool %55430 %uint_0
-               OpSelectionMerge %64254 None
-               OpSwitch %uint_0 %64238
-      %64238 = OpLabel
-               OpSelectionMerge %64253 None
-               OpBranchConditional %55431 %64240 %64248
-      %64248 = OpLabel
-      %64250 = OpISub %uint %129504 %int_1
-      %64251 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64250
-      %64252 = OpLoad %_arr_float_uint_2 %64251
-     %110544 = OpCompositeExtract %float %64252 0
-     %110545 = OpCompositeExtract %float %64252 1
-               OpBranch %64254
-      %64240 = OpLabel
-      %64242 = OpIAdd %uint %129506 %int_1
-      %64243 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %64244 = OpLoad %float %64243
-               OpBranch %64254
-      %64253 = OpLabel
-               OpUnreachable
-      %64254 = OpLabel
-     %139111 = OpPhi %uint %64242 %64240 %129506 %64248
-     %130898 = OpPhi %uint %129504 %64240 %64250 %64248
-     %130894 = OpPhi %float %64244 %64240 %110544 %64248
-     %130893 = OpPhi %float %64244 %64240 %110545 %64248
-      %55435 = OpFOrdGreaterThan %bool %130893 %float_0
-               OpSelectionMerge %55440 None
-               OpBranchConditional %55435 %55436 %55440
-      %55436 = OpLabel
-      %55439 = OpFOrdLessThan %bool %130894 %float_0
-               OpBranch %55440
-      %55440 = OpLabel
-      %55441 = OpPhi %bool %55435 %64254 %55439 %55436
-               OpSelectionMerge %55457 None
-               OpBranchConditional %55441 %55442 %55444
-      %55444 = OpLabel
-      %55449 = OpFMul %float %130894 %130894
-      %55454 = OpFMul %float %130893 %130893
-      %55455 = OpExtInst %float %1 FMin %55449 %55454
-               OpBranch %55457
-      %55442 = OpLabel
-               OpBranch %55457
-      %55457 = OpLabel
-     %130895 = OpPhi %float %float_0 %55442 %55455 %55444
-      %55462 = OpFMul %float %130894 %130894
-      %55467 = OpFMul %float %130893 %130893
-      %55468 = OpExtInst %float %1 FMax %55462 %55467
-     %115161 = OpCompositeConstruct %_arr_float_uint_2 %130895 %55468
-      %64258 = OpIAdd %uint %130898 %int_1
-      %64260 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %130898
-               OpStore %64260 %115161
-               OpBranch %56398
-      %55395 = OpLabel
-      %55398 = OpLoad %uint %47980
-      %55399 = OpBitwiseAnd %uint %55398 %uint_32768
-      %55400 = OpUGreaterThan %bool %55399 %uint_0
-               OpSelectionMerge %64211 None
-               OpSwitch %uint_0 %64195
-      %64195 = OpLabel
-               OpSelectionMerge %64210 None
-               OpBranchConditional %55400 %64197 %64205
-      %64205 = OpLabel
-      %64207 = OpISub %uint %129523 %int_1
-      %64208 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %64207
-      %64209 = OpLoad %_arr_v4float_uint_2 %64208
-     %110553 = OpCompositeExtract %v4float %64209 0
-     %110554 = OpCompositeExtract %v4float %64209 1
-               OpBranch %64211
-      %64197 = OpLabel
-      %64199 = OpIAdd %uint %129549 %int_1
-      %64200 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %64201 = OpLoad %v4float %64200
-               OpBranch %64211
-      %64210 = OpLabel
-               OpUnreachable
-      %64211 = OpLabel
-     %207610 = OpPhi %uint %64199 %64197 %129549 %64205
-     %207070 = OpPhi %uint %129523 %64197 %64207 %64205
-     %130900 = OpPhi %v4float %64201 %64197 %110553 %64205
-     %130899 = OpPhi %v4float %64201 %64197 %110554 %64205
-      %55403 = OpCompositeExtract %float %130900 3
-      %55405 = OpCompositeExtract %float %130899 3
-      %55406 = OpCompositeConstruct %_arr_float_uint_2 %55403 %55405
-      %64215 = OpIAdd %uint %129504 %int_1
-      %64217 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %64217 %55406
-      %55409 = OpCompositeExtract %float %130900 2
-      %55411 = OpCompositeExtract %float %130899 2
-      %55412 = OpCompositeConstruct %_arr_float_uint_2 %55409 %55411
-      %64220 = OpIAdd %uint %129504 %int_2
-      %64222 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64215
-               OpStore %64222 %55412
-      %55415 = OpCompositeExtract %float %130900 1
-      %55417 = OpCompositeExtract %float %130899 1
-      %55418 = OpCompositeConstruct %_arr_float_uint_2 %55415 %55417
-      %64225 = OpIAdd %uint %129504 %int_3
-      %64227 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64220
-               OpStore %64227 %55418
-      %55421 = OpCompositeExtract %float %130900 0
-      %55423 = OpCompositeExtract %float %130899 0
-      %55424 = OpCompositeConstruct %_arr_float_uint_2 %55421 %55423
-      %64230 = OpIAdd %uint %129504 %int_4
-      %64232 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64225
-               OpStore %64232 %55424
-               OpBranch %56398
-      %55370 = OpLabel
-      %55373 = OpLoad %uint %47980
-      %55374 = OpBitwiseAnd %uint %55373 %uint_32768
-      %55375 = OpUGreaterThan %bool %55374 %uint_0
-               OpSelectionMerge %64173 None
-               OpSwitch %uint_0 %64157
-      %64157 = OpLabel
-               OpSelectionMerge %64172 None
-               OpBranchConditional %55375 %64159 %64167
-      %64167 = OpLabel
-      %64169 = OpISub %uint %129514 %int_1
-      %64170 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %64169
-      %64171 = OpLoad %_arr_v3float_uint_2 %64170
-     %110562 = OpCompositeExtract %v3float %64171 0
-     %110563 = OpCompositeExtract %v3float %64171 1
-               OpBranch %64173
-      %64159 = OpLabel
-      %64161 = OpIAdd %uint %129517 %int_1
-      %64162 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %64163 = OpLoad %v3float %64162
-               OpBranch %64173
-      %64172 = OpLabel
-               OpUnreachable
-      %64173 = OpLabel
-     %206835 = OpPhi %uint %64161 %64159 %129517 %64167
-     %206539 = OpPhi %uint %129514 %64159 %64169 %64167
-     %130903 = OpPhi %v3float %64163 %64159 %110562 %64167
-     %130902 = OpPhi %v3float %64163 %64159 %110563 %64167
-      %55378 = OpCompositeExtract %float %130903 2
-      %55380 = OpCompositeExtract %float %130902 2
-      %55381 = OpCompositeConstruct %_arr_float_uint_2 %55378 %55380
-      %64177 = OpIAdd %uint %129504 %int_1
-      %64179 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %64179 %55381
-      %55384 = OpCompositeExtract %float %130903 1
-      %55386 = OpCompositeExtract %float %130902 1
-      %55387 = OpCompositeConstruct %_arr_float_uint_2 %55384 %55386
-      %64182 = OpIAdd %uint %129504 %int_2
-      %64184 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64177
-               OpStore %64184 %55387
-      %55390 = OpCompositeExtract %float %130903 0
-      %55392 = OpCompositeExtract %float %130902 0
-      %55393 = OpCompositeConstruct %_arr_float_uint_2 %55390 %55392
-      %64187 = OpIAdd %uint %129504 %int_3
-      %64189 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64182
-               OpStore %64189 %55393
-               OpBranch %56398
-      %55351 = OpLabel
-      %55354 = OpLoad %uint %47980
-      %55355 = OpBitwiseAnd %uint %55354 %uint_32768
-      %55356 = OpUGreaterThan %bool %55355 %uint_0
-               OpSelectionMerge %64140 None
-               OpSwitch %uint_0 %64124
-      %64124 = OpLabel
-               OpSelectionMerge %64139 None
-               OpBranchConditional %55356 %64126 %64134
-      %64134 = OpLabel
-      %64136 = OpISub %uint %129525 %int_1
-      %64137 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %64136
-      %64138 = OpLoad %_arr_v2float_uint_2 %64137
-     %110571 = OpCompositeExtract %v2float %64138 0
-     %110572 = OpCompositeExtract %v2float %64138 1
-               OpBranch %64140
-      %64126 = OpLabel
-      %64128 = OpIAdd %uint %130223 %int_1
-      %64129 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %64130 = OpLoad %v2float %64129
-               OpBranch %64140
-      %64139 = OpLabel
-               OpUnreachable
-      %64140 = OpLabel
-     %209187 = OpPhi %uint %64128 %64126 %130223 %64134
-     %207310 = OpPhi %uint %129525 %64126 %64136 %64134
-     %130906 = OpPhi %v2float %64130 %64126 %110571 %64134
-     %130905 = OpPhi %v2float %64130 %64126 %110572 %64134
-      %55359 = OpCompositeExtract %float %130906 1
-      %55361 = OpCompositeExtract %float %130905 1
-      %55362 = OpCompositeConstruct %_arr_float_uint_2 %55359 %55361
-      %64144 = OpIAdd %uint %129504 %int_1
-      %64146 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %64146 %55362
-      %55365 = OpCompositeExtract %float %130906 0
-      %55367 = OpCompositeExtract %float %130905 0
-      %55368 = OpCompositeConstruct %_arr_float_uint_2 %55365 %55367
-      %64149 = OpIAdd %uint %129504 %int_2
-      %64151 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64144
-               OpStore %64151 %55368
-               OpBranch %56398
-      %55324 = OpLabel
-      %55327 = OpLoad %uint %47980
-      %55328 = OpBitwiseAnd %uint %55327 %uint_32768
-      %55329 = OpUGreaterThan %bool %55328 %uint_0
-               OpSelectionMerge %64112 None
-               OpSwitch %uint_0 %64096
-      %64096 = OpLabel
-               OpSelectionMerge %64111 None
-               OpBranchConditional %55329 %64098 %64106
-      %64106 = OpLabel
-      %64108 = OpISub %uint %130909 %int_1
-      %64109 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %64108
-      %64110 = OpLoad %_arr_mat2v2float_uint_2 %64109
-     %110580 = OpCompositeExtract %mat2v2float %64110 0
-     %110581 = OpCompositeExtract %mat2v2float %64110 1
-               OpBranch %64112
-      %64098 = OpLabel
-      %64100 = OpIAdd %uint %130911 %int_1
-      %64101 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %130911
-      %64102 = OpLoad %mat2v2float %64101
-               OpBranch %64112
-      %64111 = OpLabel
-               OpUnreachable
-      %64112 = OpLabel
-     %211100 = OpPhi %uint %64100 %64098 %130911 %64106
-     %210783 = OpPhi %uint %130909 %64098 %64108 %64106
-     %130913 = OpPhi %mat2v2float %64102 %64098 %110580 %64106
-     %130912 = OpPhi %mat2v2float %64102 %64098 %110581 %64106
-      %55332 = OpCompositeExtract %v2float %130913 0
-      %55334 = OpCompositeExtract %v2float %130913 1
-      %55335 = OpCompositeExtract %float %55332 0
-      %55336 = OpCompositeExtract %float %55332 1
-      %55337 = OpCompositeExtract %float %55334 0
-      %55338 = OpCompositeExtract %float %55334 1
-      %55339 = OpCompositeConstruct %v4float %55335 %55336 %55337 %55338
-      %55341 = OpCompositeExtract %v2float %130912 0
-      %55343 = OpCompositeExtract %v2float %130912 1
-      %55344 = OpCompositeExtract %float %55341 0
-      %55345 = OpCompositeExtract %float %55341 1
-      %55346 = OpCompositeExtract %float %55343 0
-      %55347 = OpCompositeExtract %float %55343 1
-      %55348 = OpCompositeConstruct %v4float %55344 %55345 %55346 %55347
-      %55349 = OpCompositeConstruct %_arr_v4float_uint_2 %55339 %55348
-      %64116 = OpIAdd %uint %129523 %int_1
-      %64118 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %129523
-               OpStore %64118 %55349
-               OpBranch %56398
-      %55293 = OpLabel
-      %55296 = OpLoad %uint %47980
-      %55297 = OpBitwiseAnd %uint %55296 %uint_32768
-      %55298 = OpUGreaterThan %bool %55297 %uint_0
-               OpSelectionMerge %64069 None
-               OpSwitch %uint_0 %64053
-      %64053 = OpLabel
-               OpSelectionMerge %64068 None
-               OpBranchConditional %55298 %64055 %64063
-      %64063 = OpLabel
-      %64065 = OpISub %uint %130916 %int_1
-      %64066 = OpAccessChain %_ptr_Function__arr_mat4v4float_uint_2 %425 %64065
-      %64067 = OpLoad %_arr_mat4v4float_uint_2 %64066
-     %110589 = OpCompositeExtract %mat4v4float %64067 0
-     %110590 = OpCompositeExtract %mat4v4float %64067 1
-               OpBranch %64069
-      %64055 = OpLabel
-      %64057 = OpIAdd %uint %130918 %int_1
-      %64058 = OpAccessChain %_ptr_StorageBuffer_mat4v4float %412 %int_0 %130918
-      %64059 = OpLoad %mat4v4float %64058
-               OpBranch %64069
-      %64068 = OpLabel
-               OpUnreachable
-      %64069 = OpLabel
-     %211733 = OpPhi %uint %64057 %64055 %130918 %64063
-     %211416 = OpPhi %uint %130916 %64055 %64065 %64063
-     %130920 = OpPhi %mat4v4float %64059 %64055 %110589 %64063
-     %130919 = OpPhi %mat4v4float %64059 %64055 %110590 %64063
-      %55301 = OpCompositeExtract %v4float %130920 3
-      %55303 = OpCompositeExtract %v4float %130919 3
-      %55304 = OpCompositeConstruct %_arr_v4float_uint_2 %55301 %55303
-      %64073 = OpIAdd %uint %129523 %int_1
-      %64075 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %129523
-               OpStore %64075 %55304
-      %55307 = OpCompositeExtract %v4float %130920 2
-      %55309 = OpCompositeExtract %v4float %130919 2
-      %55310 = OpCompositeConstruct %_arr_v4float_uint_2 %55307 %55309
-      %64078 = OpIAdd %uint %129523 %int_2
-      %64080 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %64073
-               OpStore %64080 %55310
-      %55313 = OpCompositeExtract %v4float %130920 1
-      %55315 = OpCompositeExtract %v4float %130919 1
-      %55316 = OpCompositeConstruct %_arr_v4float_uint_2 %55313 %55315
-      %64083 = OpIAdd %uint %129523 %int_3
-      %64085 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %64078
-               OpStore %64085 %55316
-      %55319 = OpCompositeExtract %v4float %130920 0
-      %55321 = OpCompositeExtract %v4float %130919 0
-      %55322 = OpCompositeConstruct %_arr_v4float_uint_2 %55319 %55321
-      %64088 = OpIAdd %uint %129523 %int_4
-      %64090 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %64083
-               OpStore %64090 %55322
-               OpBranch %56398
-      %55268 = OpLabel
-      %55271 = OpLoad %uint %47980
-      %55272 = OpBitwiseAnd %uint %55271 %uint_32768
-      %55273 = OpUGreaterThan %bool %55272 %uint_0
-               OpSelectionMerge %64031 None
-               OpSwitch %uint_0 %64015
-      %64015 = OpLabel
-               OpSelectionMerge %64030 None
-               OpBranchConditional %55273 %64017 %64025
-      %64025 = OpLabel
-      %64027 = OpISub %uint %130923 %int_1
-      %64028 = OpAccessChain %_ptr_Function__arr_mat3v3float_uint_2 %396 %64027
-      %64029 = OpLoad %_arr_mat3v3float_uint_2 %64028
-     %110598 = OpCompositeExtract %mat3v3float %64029 0
-     %110599 = OpCompositeExtract %mat3v3float %64029 1
-               OpBranch %64031
-      %64017 = OpLabel
-      %64019 = OpIAdd %uint %130925 %int_1
-      %64020 = OpAccessChain %_ptr_StorageBuffer_mat3v3float %383 %int_0 %130925
-      %64021 = OpLoad %mat3v3float %64020
-               OpBranch %64031
-      %64030 = OpLabel
-               OpUnreachable
-      %64031 = OpLabel
-     %212366 = OpPhi %uint %64019 %64017 %130925 %64025
-     %212049 = OpPhi %uint %130923 %64017 %64027 %64025
-     %130927 = OpPhi %mat3v3float %64021 %64017 %110598 %64025
-     %130926 = OpPhi %mat3v3float %64021 %64017 %110599 %64025
-      %55276 = OpCompositeExtract %v3float %130927 2
-      %55278 = OpCompositeExtract %v3float %130926 2
-      %55279 = OpCompositeConstruct %_arr_v3float_uint_2 %55276 %55278
-      %64035 = OpIAdd %uint %129514 %int_1
-      %64037 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %129514
-               OpStore %64037 %55279
-      %55282 = OpCompositeExtract %v3float %130927 1
-      %55284 = OpCompositeExtract %v3float %130926 1
-      %55285 = OpCompositeConstruct %_arr_v3float_uint_2 %55282 %55284
-      %64040 = OpIAdd %uint %129514 %int_2
-      %64042 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %64035
-               OpStore %64042 %55285
-      %55288 = OpCompositeExtract %v3float %130927 0
-      %55290 = OpCompositeExtract %v3float %130926 0
-      %55291 = OpCompositeConstruct %_arr_v3float_uint_2 %55288 %55290
-      %64045 = OpIAdd %uint %129514 %int_3
-      %64047 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %64040
-               OpStore %64047 %55291
-               OpBranch %56398
-      %55249 = OpLabel
-      %55252 = OpLoad %uint %47980
-      %55253 = OpBitwiseAnd %uint %55252 %uint_32768
-      %55254 = OpUGreaterThan %bool %55253 %uint_0
-               OpSelectionMerge %63998 None
-               OpSwitch %uint_0 %63982
-      %63982 = OpLabel
-               OpSelectionMerge %63997 None
-               OpBranchConditional %55254 %63984 %63992
-      %63992 = OpLabel
-      %63994 = OpISub %uint %130909 %int_1
-      %63995 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %63994
-      %63996 = OpLoad %_arr_mat2v2float_uint_2 %63995
-     %110607 = OpCompositeExtract %mat2v2float %63996 0
-     %110608 = OpCompositeExtract %mat2v2float %63996 1
-               OpBranch %63998
-      %63984 = OpLabel
-      %63986 = OpIAdd %uint %130911 %int_1
-      %63987 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %130911
-      %63988 = OpLoad %mat2v2float %63987
-               OpBranch %63998
-      %63997 = OpLabel
-               OpUnreachable
-      %63998 = OpLabel
-     %211097 = OpPhi %uint %63986 %63984 %130911 %63992
-     %210780 = OpPhi %uint %130909 %63984 %63994 %63992
-     %130930 = OpPhi %mat2v2float %63988 %63984 %110607 %63992
-     %130929 = OpPhi %mat2v2float %63988 %63984 %110608 %63992
-      %55257 = OpCompositeExtract %v2float %130930 1
-      %55259 = OpCompositeExtract %v2float %130929 1
-      %55260 = OpCompositeConstruct %_arr_v2float_uint_2 %55257 %55259
-      %64002 = OpIAdd %uint %129525 %int_1
-      %64004 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %129525
-               OpStore %64004 %55260
-      %55263 = OpCompositeExtract %v2float %130930 0
-      %55265 = OpCompositeExtract %v2float %130929 0
-      %55266 = OpCompositeConstruct %_arr_v2float_uint_2 %55263 %55265
-      %64007 = OpIAdd %uint %129525 %int_2
-      %64009 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %64002
-               OpStore %64009 %55266
-               OpBranch %56398
-      %55218 = OpLabel
-      %55221 = OpLoad %uint %47980
-      %55222 = OpBitwiseAnd %uint %55221 %uint_32768
-      %55223 = OpUGreaterThan %bool %55222 %uint_0
-               OpSelectionMerge %63955 None
-               OpSwitch %uint_0 %63939
-      %63939 = OpLabel
-               OpSelectionMerge %63954 None
-               OpBranchConditional %55223 %63941 %63949
-      %63949 = OpLabel
-      %63951 = OpISub %uint %130909 %int_1
-      %63952 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %63951
-      %63953 = OpLoad %_arr_mat2v2float_uint_2 %63952
-     %110616 = OpCompositeExtract %mat2v2float %63953 0
-     %110617 = OpCompositeExtract %mat2v2float %63953 1
-               OpBranch %63955
-      %63941 = OpLabel
-      %63943 = OpIAdd %uint %130911 %int_1
-      %63944 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %130911
-      %63945 = OpLoad %mat2v2float %63944
-               OpBranch %63955
-      %63954 = OpLabel
-               OpUnreachable
-      %63955 = OpLabel
-     %211096 = OpPhi %uint %63943 %63941 %130911 %63949
-     %210779 = OpPhi %uint %130909 %63941 %63951 %63949
-     %130933 = OpPhi %mat2v2float %63945 %63941 %110616 %63949
-     %130932 = OpPhi %mat2v2float %63945 %63941 %110617 %63949
-      %55226 = OpCompositeExtract %float %130933 1 1
-      %55228 = OpCompositeExtract %float %130932 1 1
-      %55229 = OpCompositeConstruct %_arr_float_uint_2 %55226 %55228
-      %63959 = OpIAdd %uint %129504 %int_1
-      %63961 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %63961 %55229
-      %55232 = OpCompositeExtract %float %130933 1 0
-      %55234 = OpCompositeExtract %float %130932 1 0
-      %55235 = OpCompositeConstruct %_arr_float_uint_2 %55232 %55234
-      %63964 = OpIAdd %uint %129504 %int_2
-      %63966 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63959
-               OpStore %63966 %55235
-      %55238 = OpCompositeExtract %float %130933 0 1
-      %55240 = OpCompositeExtract %float %130932 0 1
-      %55241 = OpCompositeConstruct %_arr_float_uint_2 %55238 %55240
-      %63969 = OpIAdd %uint %129504 %int_3
-      %63971 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63964
-               OpStore %63971 %55241
-      %55244 = OpCompositeExtract %float %130933 0 0
-      %55246 = OpCompositeExtract %float %130932 0 0
-      %55247 = OpCompositeConstruct %_arr_float_uint_2 %55244 %55246
-      %63974 = OpIAdd %uint %129504 %int_4
-      %63976 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63969
-               OpStore %63976 %55247
-               OpBranch %56398
-      %55185 = OpLabel
-      %55188 = OpLoad %uint %47980
-      %55189 = OpBitwiseAnd %uint %55188 %uint_32768
-      %55190 = OpUGreaterThan %bool %55189 %uint_0
-               OpSelectionMerge %63904 None
-               OpSwitch %uint_0 %63888
-      %63888 = OpLabel
-               OpSelectionMerge %63903 None
-               OpBranchConditional %55190 %63890 %63898
-      %63898 = OpLabel
-      %63900 = OpISub %uint %129525 %int_1
-      %63901 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %63900
-      %63902 = OpLoad %_arr_v2float_uint_2 %63901
-     %110634 = OpCompositeExtract %v2float %63902 0
-     %110635 = OpCompositeExtract %v2float %63902 1
-               OpBranch %63904
-      %63890 = OpLabel
-      %63892 = OpIAdd %uint %130223 %int_1
-      %63893 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %63894 = OpLoad %v2float %63893
-               OpBranch %63904
-      %63903 = OpLabel
-               OpUnreachable
-      %63904 = OpLabel
-     %130939 = OpPhi %uint %63892 %63890 %130223 %63898
-     %130938 = OpPhi %uint %129525 %63890 %63900 %63898
-     %130936 = OpPhi %v2float %63894 %63890 %110634 %63898
-     %130935 = OpPhi %v2float %63894 %63890 %110635 %63898
-      %55194 = OpLoad %uint %47980
-      %55195 = OpBitwiseAnd %uint %55194 %uint_16384
-      %55196 = OpUGreaterThan %bool %55195 %uint_0
-               OpSelectionMerge %63927 None
-               OpSwitch %uint_0 %63911
-      %63911 = OpLabel
-               OpSelectionMerge %63926 None
-               OpBranchConditional %55196 %63913 %63921
-      %63921 = OpLabel
-      %63923 = OpISub %uint %130938 %int_1
-      %63924 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %63923
-      %63925 = OpLoad %_arr_v2float_uint_2 %63924
-     %110625 = OpCompositeExtract %v2float %63925 0
-     %110626 = OpCompositeExtract %v2float %63925 1
-               OpBranch %63927
-      %63913 = OpLabel
-      %63915 = OpIAdd %uint %130939 %int_1
-      %63916 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130939
-      %63917 = OpLoad %v2float %63916
-               OpBranch %63927
-      %63926 = OpLabel
-               OpUnreachable
-      %63927 = OpLabel
-     %209181 = OpPhi %uint %63915 %63913 %130939 %63921
-     %207305 = OpPhi %uint %130938 %63913 %63923 %63921
-     %130941 = OpPhi %v2float %63917 %63913 %110625 %63921
-     %130940 = OpPhi %v2float %63917 %63913 %110626 %63921
-      %55202 = OpCompositeExtract %float %130936 0
-      %55203 = OpCompositeExtract %float %130936 1
-      %55204 = OpCompositeExtract %float %130941 0
-      %55205 = OpCompositeExtract %float %130941 1
-      %55206 = OpCompositeConstruct %v4float %55202 %55203 %55204 %55205
-      %55211 = OpCompositeExtract %float %130935 0
-      %55212 = OpCompositeExtract %float %130935 1
-      %55213 = OpCompositeExtract %float %130940 0
-      %55214 = OpCompositeExtract %float %130940 1
-      %55215 = OpCompositeConstruct %v4float %55211 %55212 %55213 %55214
-      %55216 = OpCompositeConstruct %_arr_v4float_uint_2 %55206 %55215
-      %63931 = OpIAdd %uint %129523 %int_1
-      %63933 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %129523
-               OpStore %63933 %55216
-               OpBranch %56398
-      %55154 = OpLabel
-      %55157 = OpLoad %uint %47980
-      %55158 = OpBitwiseAnd %uint %55157 %uint_32768
-      %55159 = OpUGreaterThan %bool %55158 %uint_0
-               OpSelectionMerge %63853 None
-               OpSwitch %uint_0 %63837
-      %63837 = OpLabel
-               OpSelectionMerge %63852 None
-               OpBranchConditional %55159 %63839 %63847
-      %63847 = OpLabel
-      %63849 = OpISub %uint %129514 %int_1
-      %63850 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %63849
-      %63851 = OpLoad %_arr_v3float_uint_2 %63850
-     %110652 = OpCompositeExtract %v3float %63851 0
-     %110653 = OpCompositeExtract %v3float %63851 1
-               OpBranch %63853
-      %63839 = OpLabel
-      %63841 = OpIAdd %uint %129517 %int_1
-      %63842 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %63843 = OpLoad %v3float %63842
-               OpBranch %63853
-      %63852 = OpLabel
-               OpUnreachable
-      %63853 = OpLabel
-     %206826 = OpPhi %uint %63841 %63839 %129517 %63847
-     %206531 = OpPhi %uint %129514 %63839 %63849 %63847
-     %130945 = OpPhi %v3float %63843 %63839 %110652 %63847
-     %130944 = OpPhi %v3float %63843 %63839 %110653 %63847
-      %55163 = OpLoad %uint %47980
-      %55164 = OpBitwiseAnd %uint %55163 %uint_16384
-      %55165 = OpUGreaterThan %bool %55164 %uint_0
-               OpSelectionMerge %63876 None
-               OpSwitch %uint_0 %63860
-      %63860 = OpLabel
-               OpSelectionMerge %63875 None
-               OpBranchConditional %55165 %63862 %63870
-      %63870 = OpLabel
-      %63872 = OpISub %uint %129504 %int_1
-      %63873 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63872
-      %63874 = OpLoad %_arr_float_uint_2 %63873
-     %110643 = OpCompositeExtract %float %63874 0
-     %110644 = OpCompositeExtract %float %63874 1
-               OpBranch %63876
-      %63862 = OpLabel
-      %63864 = OpIAdd %uint %129506 %int_1
-      %63865 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %63866 = OpLoad %float %63865
-               OpBranch %63876
-      %63875 = OpLabel
-               OpUnreachable
-      %63876 = OpLabel
-     %139098 = OpPhi %uint %63864 %63862 %129506 %63870
-     %138851 = OpPhi %uint %129504 %63862 %63872 %63870
-     %130950 = OpPhi %float %63866 %63862 %110643 %63870
-     %130949 = OpPhi %float %63866 %63862 %110644 %63870
-      %55171 = OpCompositeExtract %float %130945 0
-      %55172 = OpCompositeExtract %float %130945 1
-      %55173 = OpCompositeExtract %float %130945 2
-      %55174 = OpCompositeConstruct %v4float %55171 %55172 %55173 %130950
-      %55179 = OpCompositeExtract %float %130944 0
-      %55180 = OpCompositeExtract %float %130944 1
-      %55181 = OpCompositeExtract %float %130944 2
-      %55182 = OpCompositeConstruct %v4float %55179 %55180 %55181 %130949
-      %55183 = OpCompositeConstruct %_arr_v4float_uint_2 %55174 %55182
-      %63880 = OpIAdd %uint %129523 %int_1
-      %63882 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %129523
-               OpStore %63882 %55183
-               OpBranch %56398
-      %55115 = OpLabel
-      %55118 = OpLoad %uint %47980
-      %55119 = OpBitwiseAnd %uint %55118 %uint_32768
-      %55120 = OpUGreaterThan %bool %55119 %uint_0
-               OpSelectionMerge %63779 None
-               OpSwitch %uint_0 %63763
-      %63763 = OpLabel
-               OpSelectionMerge %63778 None
-               OpBranchConditional %55120 %63765 %63773
-      %63773 = OpLabel
-      %63775 = OpISub %uint %129525 %int_1
-      %63776 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %63775
-      %63777 = OpLoad %_arr_v2float_uint_2 %63776
-     %110679 = OpCompositeExtract %v2float %63777 0
-     %110680 = OpCompositeExtract %v2float %63777 1
-               OpBranch %63779
-      %63765 = OpLabel
-      %63767 = OpIAdd %uint %130223 %int_1
-      %63768 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %63769 = OpLoad %v2float %63768
-               OpBranch %63779
-      %63778 = OpLabel
-               OpUnreachable
-      %63779 = OpLabel
-     %209178 = OpPhi %uint %63767 %63765 %130223 %63773
-     %207302 = OpPhi %uint %129525 %63765 %63775 %63773
-     %130954 = OpPhi %v2float %63769 %63765 %110679 %63773
-     %130953 = OpPhi %v2float %63769 %63765 %110680 %63773
-      %55124 = OpLoad %uint %47980
-      %55125 = OpBitwiseAnd %uint %55124 %uint_16384
-      %55126 = OpUGreaterThan %bool %55125 %uint_0
-               OpSelectionMerge %63802 None
-               OpSwitch %uint_0 %63786
-      %63786 = OpLabel
-               OpSelectionMerge %63801 None
-               OpBranchConditional %55126 %63788 %63796
-      %63796 = OpLabel
-      %63798 = OpISub %uint %129504 %int_1
-      %63799 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63798
-      %63800 = OpLoad %_arr_float_uint_2 %63799
-     %110670 = OpCompositeExtract %float %63800 0
-     %110671 = OpCompositeExtract %float %63800 1
-               OpBranch %63802
-      %63788 = OpLabel
-      %63790 = OpIAdd %uint %129506 %int_1
-      %63791 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %63792 = OpLoad %float %63791
-               OpBranch %63802
-      %63801 = OpLabel
-               OpUnreachable
-      %63802 = OpLabel
-     %130962 = OpPhi %uint %63790 %63788 %129506 %63796
-     %130961 = OpPhi %uint %129504 %63788 %63798 %63796
-     %130959 = OpPhi %float %63792 %63788 %110670 %63796
-     %130958 = OpPhi %float %63792 %63788 %110671 %63796
-      %55130 = OpLoad %uint %47980
-      %55131 = OpBitwiseAnd %uint %55130 %uint_8192
-      %55132 = OpUGreaterThan %bool %55131 %uint_0
-               OpSelectionMerge %63825 None
-               OpSwitch %uint_0 %63809
-      %63809 = OpLabel
-               OpSelectionMerge %63824 None
-               OpBranchConditional %55132 %63811 %63819
-      %63819 = OpLabel
-      %63821 = OpISub %uint %130961 %int_1
-      %63822 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63821
-      %63823 = OpLoad %_arr_float_uint_2 %63822
-     %110661 = OpCompositeExtract %float %63823 0
-     %110662 = OpCompositeExtract %float %63823 1
-               OpBranch %63825
-      %63811 = OpLabel
-      %63813 = OpIAdd %uint %130962 %int_1
-      %63814 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %130962
-      %63815 = OpLoad %float %63814
-               OpBranch %63825
-      %63824 = OpLabel
-               OpUnreachable
-      %63825 = OpLabel
-     %139097 = OpPhi %uint %63813 %63811 %130962 %63819
-     %138850 = OpPhi %uint %130961 %63811 %63821 %63819
-     %130964 = OpPhi %float %63815 %63811 %110661 %63819
-     %130963 = OpPhi %float %63815 %63811 %110662 %63819
-      %55140 = OpCompositeExtract %float %130954 0
-      %55141 = OpCompositeExtract %float %130954 1
-      %55142 = OpCompositeConstruct %v4float %55140 %55141 %130959 %130964
-      %55149 = OpCompositeExtract %float %130953 0
-      %55150 = OpCompositeExtract %float %130953 1
-      %55151 = OpCompositeConstruct %v4float %55149 %55150 %130958 %130963
-      %55152 = OpCompositeConstruct %_arr_v4float_uint_2 %55142 %55151
-      %63829 = OpIAdd %uint %129523 %int_1
-      %63831 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %129523
-               OpStore %63831 %55152
-               OpBranch %56398
-      %55070 = OpLabel
-      %55073 = OpLoad %uint %47980
-      %55074 = OpBitwiseAnd %uint %55073 %uint_32768
-      %55075 = OpUGreaterThan %bool %55074 %uint_0
-               OpSelectionMerge %63682 None
-               OpSwitch %uint_0 %63666
-      %63666 = OpLabel
-               OpSelectionMerge %63681 None
-               OpBranchConditional %55075 %63668 %63676
-      %63676 = OpLabel
-      %63678 = OpISub %uint %129504 %int_1
-      %63679 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63678
-      %63680 = OpLoad %_arr_float_uint_2 %63679
-     %110715 = OpCompositeExtract %float %63680 0
-     %110716 = OpCompositeExtract %float %63680 1
-               OpBranch %63682
-      %63668 = OpLabel
-      %63670 = OpIAdd %uint %129506 %int_1
-      %63671 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %63672 = OpLoad %float %63671
-               OpBranch %63682
-      %63681 = OpLabel
-               OpUnreachable
-      %63682 = OpLabel
-     %130972 = OpPhi %uint %63670 %63668 %129506 %63676
-     %130971 = OpPhi %uint %129504 %63668 %63678 %63676
-     %130969 = OpPhi %float %63672 %63668 %110715 %63676
-     %130968 = OpPhi %float %63672 %63668 %110716 %63676
-      %55079 = OpLoad %uint %47980
-      %55080 = OpBitwiseAnd %uint %55079 %uint_16384
-      %55081 = OpUGreaterThan %bool %55080 %uint_0
-               OpSelectionMerge %63705 None
-               OpSwitch %uint_0 %63689
-      %63689 = OpLabel
-               OpSelectionMerge %63704 None
-               OpBranchConditional %55081 %63691 %63699
-      %63699 = OpLabel
-      %63701 = OpISub %uint %130971 %int_1
-      %63702 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63701
-      %63703 = OpLoad %_arr_float_uint_2 %63702
-     %110706 = OpCompositeExtract %float %63703 0
-     %110707 = OpCompositeExtract %float %63703 1
-               OpBranch %63705
-      %63691 = OpLabel
-      %63693 = OpIAdd %uint %130972 %int_1
-      %63694 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %130972
-      %63695 = OpLoad %float %63694
-               OpBranch %63705
-      %63704 = OpLabel
-               OpUnreachable
-      %63705 = OpLabel
-     %130977 = OpPhi %uint %63693 %63691 %130972 %63699
-     %130976 = OpPhi %uint %130971 %63691 %63701 %63699
-     %130974 = OpPhi %float %63695 %63691 %110706 %63699
-     %130973 = OpPhi %float %63695 %63691 %110707 %63699
-      %55085 = OpLoad %uint %47980
-      %55086 = OpBitwiseAnd %uint %55085 %uint_8192
-      %55087 = OpUGreaterThan %bool %55086 %uint_0
-               OpSelectionMerge %63728 None
-               OpSwitch %uint_0 %63712
-      %63712 = OpLabel
-               OpSelectionMerge %63727 None
-               OpBranchConditional %55087 %63714 %63722
-      %63722 = OpLabel
-      %63724 = OpISub %uint %130976 %int_1
-      %63725 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63724
-      %63726 = OpLoad %_arr_float_uint_2 %63725
-     %110697 = OpCompositeExtract %float %63726 0
-     %110698 = OpCompositeExtract %float %63726 1
-               OpBranch %63728
-      %63714 = OpLabel
-      %63716 = OpIAdd %uint %130977 %int_1
-      %63717 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %130977
-      %63718 = OpLoad %float %63717
-               OpBranch %63728
-      %63727 = OpLabel
-               OpUnreachable
-      %63728 = OpLabel
-     %130982 = OpPhi %uint %63716 %63714 %130977 %63722
-     %130981 = OpPhi %uint %130976 %63714 %63724 %63722
-     %130979 = OpPhi %float %63718 %63714 %110697 %63722
-     %130978 = OpPhi %float %63718 %63714 %110698 %63722
-      %55091 = OpLoad %uint %47980
-      %55092 = OpBitwiseAnd %uint %55091 %uint_4096
-      %55093 = OpUGreaterThan %bool %55092 %uint_0
-               OpSelectionMerge %63751 None
-               OpSwitch %uint_0 %63735
-      %63735 = OpLabel
-               OpSelectionMerge %63750 None
-               OpBranchConditional %55093 %63737 %63745
-      %63745 = OpLabel
-      %63747 = OpISub %uint %130981 %int_1
-      %63748 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63747
-      %63749 = OpLoad %_arr_float_uint_2 %63748
-     %110688 = OpCompositeExtract %float %63749 0
-     %110689 = OpCompositeExtract %float %63749 1
-               OpBranch %63751
-      %63737 = OpLabel
-      %63739 = OpIAdd %uint %130982 %int_1
-      %63740 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %130982
-      %63741 = OpLoad %float %63740
-               OpBranch %63751
-      %63750 = OpLabel
-               OpUnreachable
-      %63751 = OpLabel
-     %139096 = OpPhi %uint %63739 %63737 %130982 %63745
-     %138849 = OpPhi %uint %130981 %63737 %63747 %63745
-     %130984 = OpPhi %float %63741 %63737 %110688 %63745
-     %130983 = OpPhi %float %63741 %63737 %110689 %63745
-      %55103 = OpCompositeConstruct %v4float %130969 %130974 %130979 %130984
-      %55112 = OpCompositeConstruct %v4float %130968 %130973 %130978 %130983
-      %55113 = OpCompositeConstruct %_arr_v4float_uint_2 %55103 %55112
-      %63755 = OpIAdd %uint %129523 %int_1
-      %63757 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %129523
-               OpStore %63757 %55113
-               OpBranch %56398
-      %55041 = OpLabel
-      %55044 = OpLoad %uint %47980
-      %55045 = OpBitwiseAnd %uint %55044 %uint_32768
-      %55046 = OpUGreaterThan %bool %55045 %uint_0
-               OpSelectionMerge %63631 None
-               OpSwitch %uint_0 %63615
-      %63615 = OpLabel
-               OpSelectionMerge %63630 None
-               OpBranchConditional %55046 %63617 %63625
-      %63625 = OpLabel
-      %63627 = OpISub %uint %129525 %int_1
-      %63628 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %63627
-      %63629 = OpLoad %_arr_v2float_uint_2 %63628
-     %110733 = OpCompositeExtract %v2float %63629 0
-     %110734 = OpCompositeExtract %v2float %63629 1
-               OpBranch %63631
-      %63617 = OpLabel
-      %63619 = OpIAdd %uint %130223 %int_1
-      %63620 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %63621 = OpLoad %v2float %63620
-               OpBranch %63631
-      %63630 = OpLabel
-               OpUnreachable
-      %63631 = OpLabel
-     %209171 = OpPhi %uint %63619 %63617 %130223 %63625
-     %207295 = OpPhi %uint %129525 %63617 %63627 %63625
-     %130990 = OpPhi %v2float %63621 %63617 %110733 %63625
-     %130989 = OpPhi %v2float %63621 %63617 %110734 %63625
-      %55050 = OpLoad %uint %47980
-      %55051 = OpBitwiseAnd %uint %55050 %uint_16384
-      %55052 = OpUGreaterThan %bool %55051 %uint_0
-               OpSelectionMerge %63654 None
-               OpSwitch %uint_0 %63638
-      %63638 = OpLabel
-               OpSelectionMerge %63653 None
-               OpBranchConditional %55052 %63640 %63648
-      %63648 = OpLabel
-      %63650 = OpISub %uint %129504 %int_1
-      %63651 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63650
-      %63652 = OpLoad %_arr_float_uint_2 %63651
-     %110724 = OpCompositeExtract %float %63652 0
-     %110725 = OpCompositeExtract %float %63652 1
-               OpBranch %63654
-      %63640 = OpLabel
-      %63642 = OpIAdd %uint %129506 %int_1
-      %63643 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %63644 = OpLoad %float %63643
-               OpBranch %63654
-      %63653 = OpLabel
-               OpUnreachable
-      %63654 = OpLabel
-     %139095 = OpPhi %uint %63642 %63640 %129506 %63648
-     %138848 = OpPhi %uint %129504 %63640 %63650 %63648
-     %130995 = OpPhi %float %63644 %63640 %110724 %63648
-     %130994 = OpPhi %float %63644 %63640 %110725 %63648
-      %55058 = OpCompositeExtract %float %130990 0
-      %55059 = OpCompositeExtract %float %130990 1
-      %55060 = OpCompositeConstruct %v3float %55058 %55059 %130995
-      %55065 = OpCompositeExtract %float %130989 0
-      %55066 = OpCompositeExtract %float %130989 1
-      %55067 = OpCompositeConstruct %v3float %55065 %55066 %130994
-      %55068 = OpCompositeConstruct %_arr_v3float_uint_2 %55060 %55067
-      %63658 = OpIAdd %uint %129514 %int_1
-      %63660 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %129514
-               OpStore %63660 %55068
-               OpBranch %56398
-      %55006 = OpLabel
-      %55009 = OpLoad %uint %47980
-      %55010 = OpBitwiseAnd %uint %55009 %uint_32768
-      %55011 = OpUGreaterThan %bool %55010 %uint_0
-               OpSelectionMerge %63557 None
-               OpSwitch %uint_0 %63541
-      %63541 = OpLabel
-               OpSelectionMerge %63556 None
-               OpBranchConditional %55011 %63543 %63551
-      %63551 = OpLabel
-      %63553 = OpISub %uint %129504 %int_1
-      %63554 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63553
-      %63555 = OpLoad %_arr_float_uint_2 %63554
-     %110760 = OpCompositeExtract %float %63555 0
-     %110761 = OpCompositeExtract %float %63555 1
-               OpBranch %63557
-      %63543 = OpLabel
-      %63545 = OpIAdd %uint %129506 %int_1
-      %63546 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %63547 = OpLoad %float %63546
-               OpBranch %63557
-      %63556 = OpLabel
-               OpUnreachable
-      %63557 = OpLabel
-     %131002 = OpPhi %uint %63545 %63543 %129506 %63551
-     %131001 = OpPhi %uint %129504 %63543 %63553 %63551
-     %130999 = OpPhi %float %63547 %63543 %110760 %63551
-     %130998 = OpPhi %float %63547 %63543 %110761 %63551
-      %55015 = OpLoad %uint %47980
-      %55016 = OpBitwiseAnd %uint %55015 %uint_16384
-      %55017 = OpUGreaterThan %bool %55016 %uint_0
-               OpSelectionMerge %63580 None
-               OpSwitch %uint_0 %63564
-      %63564 = OpLabel
-               OpSelectionMerge %63579 None
-               OpBranchConditional %55017 %63566 %63574
-      %63574 = OpLabel
-      %63576 = OpISub %uint %131001 %int_1
-      %63577 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63576
-      %63578 = OpLoad %_arr_float_uint_2 %63577
-     %110751 = OpCompositeExtract %float %63578 0
-     %110752 = OpCompositeExtract %float %63578 1
-               OpBranch %63580
-      %63566 = OpLabel
-      %63568 = OpIAdd %uint %131002 %int_1
-      %63569 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131002
-      %63570 = OpLoad %float %63569
-               OpBranch %63580
-      %63579 = OpLabel
-               OpUnreachable
-      %63580 = OpLabel
-     %131007 = OpPhi %uint %63568 %63566 %131002 %63574
-     %131006 = OpPhi %uint %131001 %63566 %63576 %63574
-     %131004 = OpPhi %float %63570 %63566 %110751 %63574
-     %131003 = OpPhi %float %63570 %63566 %110752 %63574
-      %55021 = OpLoad %uint %47980
-      %55022 = OpBitwiseAnd %uint %55021 %uint_8192
-      %55023 = OpUGreaterThan %bool %55022 %uint_0
-               OpSelectionMerge %63603 None
-               OpSwitch %uint_0 %63587
-      %63587 = OpLabel
-               OpSelectionMerge %63602 None
-               OpBranchConditional %55023 %63589 %63597
-      %63597 = OpLabel
-      %63599 = OpISub %uint %131006 %int_1
-      %63600 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63599
-      %63601 = OpLoad %_arr_float_uint_2 %63600
-     %110742 = OpCompositeExtract %float %63601 0
-     %110743 = OpCompositeExtract %float %63601 1
-               OpBranch %63603
-      %63589 = OpLabel
-      %63591 = OpIAdd %uint %131007 %int_1
-      %63592 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131007
-      %63593 = OpLoad %float %63592
-               OpBranch %63603
-      %63602 = OpLabel
-               OpUnreachable
-      %63603 = OpLabel
-     %139094 = OpPhi %uint %63591 %63589 %131007 %63597
-     %138847 = OpPhi %uint %131006 %63589 %63599 %63597
-     %131009 = OpPhi %float %63593 %63589 %110742 %63597
-     %131008 = OpPhi %float %63593 %63589 %110743 %63597
-      %55031 = OpCompositeConstruct %v3float %130999 %131004 %131009
-      %55038 = OpCompositeConstruct %v3float %130998 %131003 %131008
-      %55039 = OpCompositeConstruct %_arr_v3float_uint_2 %55031 %55038
-      %63607 = OpIAdd %uint %129514 %int_1
-      %63609 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %129514
-               OpStore %63609 %55039
-               OpBranch %56398
-      %54981 = OpLabel
-      %54984 = OpLoad %uint %47980
-      %54985 = OpBitwiseAnd %uint %54984 %uint_32768
-      %54986 = OpUGreaterThan %bool %54985 %uint_0
-               OpSelectionMerge %63506 None
-               OpSwitch %uint_0 %63490
-      %63490 = OpLabel
-               OpSelectionMerge %63505 None
-               OpBranchConditional %54986 %63492 %63500
-      %63500 = OpLabel
-      %63502 = OpISub %uint %129504 %int_1
-      %63503 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63502
-      %63504 = OpLoad %_arr_float_uint_2 %63503
-     %110778 = OpCompositeExtract %float %63504 0
-     %110779 = OpCompositeExtract %float %63504 1
-               OpBranch %63506
-      %63492 = OpLabel
-      %63494 = OpIAdd %uint %129506 %int_1
-      %63495 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %63496 = OpLoad %float %63495
-               OpBranch %63506
-      %63505 = OpLabel
-               OpUnreachable
-      %63506 = OpLabel
-     %131017 = OpPhi %uint %63494 %63492 %129506 %63500
-     %131016 = OpPhi %uint %129504 %63492 %63502 %63500
-     %131014 = OpPhi %float %63496 %63492 %110778 %63500
-     %131013 = OpPhi %float %63496 %63492 %110779 %63500
-      %54990 = OpLoad %uint %47980
-      %54991 = OpBitwiseAnd %uint %54990 %uint_16384
-      %54992 = OpUGreaterThan %bool %54991 %uint_0
-               OpSelectionMerge %63529 None
-               OpSwitch %uint_0 %63513
-      %63513 = OpLabel
-               OpSelectionMerge %63528 None
-               OpBranchConditional %54992 %63515 %63523
-      %63523 = OpLabel
-      %63525 = OpISub %uint %131016 %int_1
-      %63526 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63525
-      %63527 = OpLoad %_arr_float_uint_2 %63526
-     %110769 = OpCompositeExtract %float %63527 0
-     %110770 = OpCompositeExtract %float %63527 1
-               OpBranch %63529
-      %63515 = OpLabel
-      %63517 = OpIAdd %uint %131017 %int_1
-      %63518 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131017
-      %63519 = OpLoad %float %63518
-               OpBranch %63529
-      %63528 = OpLabel
-               OpUnreachable
-      %63529 = OpLabel
-     %139093 = OpPhi %uint %63517 %63515 %131017 %63523
-     %138846 = OpPhi %uint %131016 %63515 %63525 %63523
-     %131019 = OpPhi %float %63519 %63515 %110769 %63523
-     %131018 = OpPhi %float %63519 %63515 %110770 %63523
-      %54998 = OpCompositeConstruct %v2float %131014 %131019
-      %55003 = OpCompositeConstruct %v2float %131013 %131018
-      %55004 = OpCompositeConstruct %_arr_v2float_uint_2 %54998 %55003
-      %63533 = OpIAdd %uint %129525 %int_1
-      %63535 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %129525
-               OpStore %63535 %55004
-               OpBranch %56398
-      %54733 = OpLabel
-      %54736 = OpLoad %uint %47980
-      %54737 = OpBitwiseAnd %uint %54736 %uint_32768
-      %54738 = OpUGreaterThan %bool %54737 %uint_0
-               OpSelectionMerge %63478 None
-               OpSwitch %uint_0 %63462
-      %63462 = OpLabel
-               OpSelectionMerge %63477 None
-               OpBranchConditional %54738 %63464 %63472
-      %63472 = OpLabel
-      %63474 = OpISub %uint %129523 %int_1
-      %63475 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %63474
-      %63476 = OpLoad %_arr_v4float_uint_2 %63475
-     %110787 = OpCompositeExtract %v4float %63476 0
-     %110788 = OpCompositeExtract %v4float %63476 1
-               OpBranch %63478
-      %63464 = OpLabel
-      %63466 = OpIAdd %uint %129549 %int_1
-      %63467 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %63468 = OpLoad %v4float %63467
-               OpBranch %63478
-      %63477 = OpLabel
-               OpUnreachable
-      %63478 = OpLabel
-     %207584 = OpPhi %uint %63466 %63464 %129549 %63472
-     %131024 = OpPhi %uint %129523 %63464 %63474 %63472
-     %131023 = OpPhi %v4float %63468 %63464 %110787 %63472
-     %131022 = OpPhi %v4float %63468 %63464 %110788 %63472
-      %54742 = OpFOrdGreaterThan %v4bool %131022 %3375
-      %54745 = OpFOrdLessThan %v4bool %131023 %3375
-      %54746 = OpSelect %v4bool %54745 %54742 %3373
-      %54749 = OpExtInst %v4float %1 FAbs %131023
-      %54752 = OpExtInst %v4float %1 FAbs %131022
-      %54753 = OpExtInst %v4float %1 FMin %54749 %54752
-      %54755 = OpSelect %v4float %54746 %3375 %54753
-      %54762 = OpExtInst %v4float %1 FMax %54749 %54752
-      %54764 = OpCompositeExtract %float %131022 0
-      %54768 = OpCompositeExtract %float %54755 1
-      %54770 = OpCompositeExtract %float %54755 2
-      %54772 = OpCompositeExtract %float %54755 3
-      %54773 = OpCompositeConstruct %v4float %54764 %54768 %54770 %54772
-      %54774 = OpExtInst %float %1 Length %54773
-      %54775 = OpFDiv %float %54764 %54774
-      %54777 = OpCompositeExtract %float %131022 1
-      %54779 = OpCompositeExtract %float %54755 0
-      %54786 = OpCompositeConstruct %v4float %54779 %54777 %54770 %54772
-      %54787 = OpExtInst %float %1 Length %54786
-      %54788 = OpFDiv %float %54777 %54787
-      %54790 = OpCompositeExtract %float %131022 2
-      %54799 = OpCompositeConstruct %v4float %54779 %54768 %54790 %54772
-      %54800 = OpExtInst %float %1 Length %54799
-      %54801 = OpFDiv %float %54790 %54800
-      %54803 = OpCompositeExtract %float %131022 3
-      %54812 = OpCompositeConstruct %v4float %54779 %54768 %54770 %54803
-      %54813 = OpExtInst %float %1 Length %54812
-      %54814 = OpFDiv %float %54803 %54813
-      %54815 = OpCompositeConstruct %v4float %54775 %54788 %54801 %54814
-      %54821 = OpCompositeExtract %float %54762 1
-      %54823 = OpCompositeExtract %float %54762 2
-      %54825 = OpCompositeExtract %float %54762 3
-      %54826 = OpCompositeConstruct %v4float %54764 %54821 %54823 %54825
-      %54827 = OpExtInst %float %1 Length %54826
-      %54828 = OpFDiv %float %54764 %54827
-      %54832 = OpCompositeExtract %float %54762 0
-      %54839 = OpCompositeConstruct %v4float %54832 %54777 %54823 %54825
-      %54840 = OpExtInst %float %1 Length %54839
-      %54841 = OpFDiv %float %54777 %54840
-      %54852 = OpCompositeConstruct %v4float %54832 %54821 %54790 %54825
-      %54853 = OpExtInst %float %1 Length %54852
-      %54854 = OpFDiv %float %54790 %54853
-      %54865 = OpCompositeConstruct %v4float %54832 %54821 %54823 %54803
-      %54866 = OpExtInst %float %1 Length %54865
-      %54867 = OpFDiv %float %54803 %54866
-      %54868 = OpCompositeConstruct %v4float %54828 %54841 %54854 %54867
-      %54869 = OpExtInst %v4float %1 FMax %54815 %54868
-      %54871 = OpCompositeExtract %float %131023 0
-      %54880 = OpCompositeConstruct %v4float %54871 %54768 %54770 %54772
-      %54881 = OpExtInst %float %1 Length %54880
-      %54882 = OpFDiv %float %54871 %54881
-      %54884 = OpCompositeExtract %float %131023 1
-      %54893 = OpCompositeConstruct %v4float %54779 %54884 %54770 %54772
-      %54894 = OpExtInst %float %1 Length %54893
-      %54895 = OpFDiv %float %54884 %54894
-      %54897 = OpCompositeExtract %float %131023 2
-      %54906 = OpCompositeConstruct %v4float %54779 %54768 %54897 %54772
-      %54907 = OpExtInst %float %1 Length %54906
-      %54908 = OpFDiv %float %54897 %54907
-      %54910 = OpCompositeExtract %float %131023 3
-      %54919 = OpCompositeConstruct %v4float %54779 %54768 %54770 %54910
-      %54920 = OpExtInst %float %1 Length %54919
-      %54921 = OpFDiv %float %54910 %54920
-      %54922 = OpCompositeConstruct %v4float %54882 %54895 %54908 %54921
-      %54933 = OpCompositeConstruct %v4float %54871 %54821 %54823 %54825
-      %54934 = OpExtInst %float %1 Length %54933
-      %54935 = OpFDiv %float %54871 %54934
-      %54946 = OpCompositeConstruct %v4float %54832 %54884 %54823 %54825
-      %54947 = OpExtInst %float %1 Length %54946
-      %54948 = OpFDiv %float %54884 %54947
-      %54959 = OpCompositeConstruct %v4float %54832 %54821 %54897 %54825
-      %54960 = OpExtInst %float %1 Length %54959
-      %54961 = OpFDiv %float %54897 %54960
-      %54972 = OpCompositeConstruct %v4float %54832 %54821 %54823 %54910
-      %54973 = OpExtInst %float %1 Length %54972
-      %54974 = OpFDiv %float %54910 %54973
-      %54975 = OpCompositeConstruct %v4float %54935 %54948 %54961 %54974
-      %54976 = OpExtInst %v4float %1 FMin %54922 %54975
-      %54979 = OpCompositeConstruct %_arr_v4float_uint_2 %54976 %54869
-      %63482 = OpIAdd %uint %131024 %int_1
-      %63484 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131024
-               OpStore %63484 %54979
-               OpBranch %56398
-      %54561 = OpLabel
-      %54564 = OpLoad %uint %47980
-      %54565 = OpBitwiseAnd %uint %54564 %uint_32768
-      %54566 = OpUGreaterThan %bool %54565 %uint_0
-               OpSelectionMerge %63450 None
-               OpSwitch %uint_0 %63434
-      %63434 = OpLabel
-               OpSelectionMerge %63449 None
-               OpBranchConditional %54566 %63436 %63444
-      %63444 = OpLabel
-      %63446 = OpISub %uint %129514 %int_1
-      %63447 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %63446
-      %63448 = OpLoad %_arr_v3float_uint_2 %63447
-     %110796 = OpCompositeExtract %v3float %63448 0
-     %110797 = OpCompositeExtract %v3float %63448 1
-               OpBranch %63450
-      %63436 = OpLabel
-      %63438 = OpIAdd %uint %129517 %int_1
-      %63439 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %63440 = OpLoad %v3float %63439
-               OpBranch %63450
-      %63449 = OpLabel
-               OpUnreachable
-      %63450 = OpLabel
-     %206809 = OpPhi %uint %63438 %63436 %129517 %63444
-     %131027 = OpPhi %uint %129514 %63436 %63446 %63444
-     %131026 = OpPhi %v3float %63440 %63436 %110796 %63444
-     %131025 = OpPhi %v3float %63440 %63436 %110797 %63444
-      %54570 = OpFOrdGreaterThan %v3bool %131025 %123
-      %54573 = OpFOrdLessThan %v3bool %131026 %123
-      %54574 = OpSelect %v3bool %54573 %54570 %3323
-      %54577 = OpExtInst %v3float %1 FAbs %131026
-      %54580 = OpExtInst %v3float %1 FAbs %131025
-      %54581 = OpExtInst %v3float %1 FMin %54577 %54580
-      %54583 = OpSelect %v3float %54574 %123 %54581
-      %54590 = OpExtInst %v3float %1 FMax %54577 %54580
-      %54592 = OpCompositeExtract %float %131025 0
-      %54596 = OpCompositeExtract %float %54583 1
-      %54598 = OpCompositeExtract %float %54583 2
-      %54599 = OpCompositeConstruct %v3float %54592 %54596 %54598
-      %54600 = OpExtInst %float %1 Length %54599
-      %54601 = OpFDiv %float %54592 %54600
-      %54603 = OpCompositeExtract %float %131025 1
-      %54605 = OpCompositeExtract %float %54583 0
-      %54610 = OpCompositeConstruct %v3float %54605 %54603 %54598
-      %54611 = OpExtInst %float %1 Length %54610
-      %54612 = OpFDiv %float %54603 %54611
-      %54614 = OpCompositeExtract %float %131025 2
-      %54621 = OpCompositeConstruct %v3float %54605 %54596 %54614
-      %54622 = OpExtInst %float %1 Length %54621
-      %54623 = OpFDiv %float %54614 %54622
-      %54624 = OpCompositeConstruct %v3float %54601 %54612 %54623
-      %54630 = OpCompositeExtract %float %54590 1
-      %54632 = OpCompositeExtract %float %54590 2
-      %54633 = OpCompositeConstruct %v3float %54592 %54630 %54632
-      %54634 = OpExtInst %float %1 Length %54633
-      %54635 = OpFDiv %float %54592 %54634
-      %54639 = OpCompositeExtract %float %54590 0
-      %54644 = OpCompositeConstruct %v3float %54639 %54603 %54632
-      %54645 = OpExtInst %float %1 Length %54644
-      %54646 = OpFDiv %float %54603 %54645
-      %54655 = OpCompositeConstruct %v3float %54639 %54630 %54614
-      %54656 = OpExtInst %float %1 Length %54655
-      %54657 = OpFDiv %float %54614 %54656
-      %54658 = OpCompositeConstruct %v3float %54635 %54646 %54657
-      %54659 = OpExtInst %v3float %1 FMax %54624 %54658
-      %54661 = OpCompositeExtract %float %131026 0
-      %54668 = OpCompositeConstruct %v3float %54661 %54596 %54598
-      %54669 = OpExtInst %float %1 Length %54668
-      %54670 = OpFDiv %float %54661 %54669
-      %54672 = OpCompositeExtract %float %131026 1
-      %54679 = OpCompositeConstruct %v3float %54605 %54672 %54598
-      %54680 = OpExtInst %float %1 Length %54679
-      %54681 = OpFDiv %float %54672 %54680
-      %54683 = OpCompositeExtract %float %131026 2
-      %54690 = OpCompositeConstruct %v3float %54605 %54596 %54683
-      %54691 = OpExtInst %float %1 Length %54690
-      %54692 = OpFDiv %float %54683 %54691
-      %54693 = OpCompositeConstruct %v3float %54670 %54681 %54692
-      %54702 = OpCompositeConstruct %v3float %54661 %54630 %54632
-      %54703 = OpExtInst %float %1 Length %54702
-      %54704 = OpFDiv %float %54661 %54703
-      %54713 = OpCompositeConstruct %v3float %54639 %54672 %54632
-      %54714 = OpExtInst %float %1 Length %54713
-      %54715 = OpFDiv %float %54672 %54714
-      %54724 = OpCompositeConstruct %v3float %54639 %54630 %54683
-      %54725 = OpExtInst %float %1 Length %54724
-      %54726 = OpFDiv %float %54683 %54725
-      %54727 = OpCompositeConstruct %v3float %54704 %54715 %54726
-      %54728 = OpExtInst %v3float %1 FMin %54693 %54727
-      %54731 = OpCompositeConstruct %_arr_v3float_uint_2 %54728 %54659
-      %63454 = OpIAdd %uint %131027 %int_1
-      %63456 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131027
-               OpStore %63456 %54731
-               OpBranch %56398
-      %54449 = OpLabel
-      %54452 = OpLoad %uint %47980
-      %54453 = OpBitwiseAnd %uint %54452 %uint_32768
-      %54454 = OpUGreaterThan %bool %54453 %uint_0
-               OpSelectionMerge %63422 None
-               OpSwitch %uint_0 %63406
-      %63406 = OpLabel
-               OpSelectionMerge %63421 None
-               OpBranchConditional %54454 %63408 %63416
-      %63416 = OpLabel
-      %63418 = OpISub %uint %129525 %int_1
-      %63419 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %63418
-      %63420 = OpLoad %_arr_v2float_uint_2 %63419
-     %110805 = OpCompositeExtract %v2float %63420 0
-     %110806 = OpCompositeExtract %v2float %63420 1
-               OpBranch %63422
-      %63408 = OpLabel
-      %63410 = OpIAdd %uint %130223 %int_1
-      %63411 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %63412 = OpLoad %v2float %63411
-               OpBranch %63422
-      %63421 = OpLabel
-               OpUnreachable
-      %63422 = OpLabel
-     %209162 = OpPhi %uint %63410 %63408 %130223 %63416
-     %131030 = OpPhi %uint %129525 %63408 %63418 %63416
-     %131029 = OpPhi %v2float %63412 %63408 %110805 %63416
-     %131028 = OpPhi %v2float %63412 %63408 %110806 %63416
-      %54458 = OpFOrdGreaterThan %v2bool %131028 %3274
-      %54461 = OpFOrdLessThan %v2bool %131029 %3274
-      %54462 = OpSelect %v2bool %54461 %54458 %3272
-      %54465 = OpExtInst %v2float %1 FAbs %131029
-      %54468 = OpExtInst %v2float %1 FAbs %131028
-      %54469 = OpExtInst %v2float %1 FMin %54465 %54468
-      %54471 = OpSelect %v2float %54462 %3274 %54469
-      %54478 = OpExtInst %v2float %1 FMax %54465 %54468
-      %54480 = OpCompositeExtract %float %131028 0
-      %54484 = OpCompositeExtract %float %54471 1
-      %54485 = OpCompositeConstruct %v2float %54480 %54484
-      %54486 = OpExtInst %float %1 Length %54485
-      %54487 = OpFDiv %float %54480 %54486
-      %54489 = OpCompositeExtract %float %131028 1
-      %54491 = OpCompositeExtract %float %54471 0
-      %54494 = OpCompositeConstruct %v2float %54491 %54489
-      %54495 = OpExtInst %float %1 Length %54494
-      %54496 = OpFDiv %float %54489 %54495
-      %54497 = OpCompositeConstruct %v2float %54487 %54496
-      %54503 = OpCompositeExtract %float %54478 1
-      %54504 = OpCompositeConstruct %v2float %54480 %54503
-      %54505 = OpExtInst %float %1 Length %54504
-      %54506 = OpFDiv %float %54480 %54505
-      %54510 = OpCompositeExtract %float %54478 0
-      %54513 = OpCompositeConstruct %v2float %54510 %54489
-      %54514 = OpExtInst %float %1 Length %54513
-      %54515 = OpFDiv %float %54489 %54514
-      %54516 = OpCompositeConstruct %v2float %54506 %54515
-      %54517 = OpExtInst %v2float %1 FMax %54497 %54516
-      %54519 = OpCompositeExtract %float %131029 0
-      %54524 = OpCompositeConstruct %v2float %54519 %54484
-      %54525 = OpExtInst %float %1 Length %54524
-      %54526 = OpFDiv %float %54519 %54525
-      %54528 = OpCompositeExtract %float %131029 1
-      %54533 = OpCompositeConstruct %v2float %54491 %54528
-      %54534 = OpExtInst %float %1 Length %54533
-      %54535 = OpFDiv %float %54528 %54534
-      %54536 = OpCompositeConstruct %v2float %54526 %54535
-      %54543 = OpCompositeConstruct %v2float %54519 %54503
-      %54544 = OpExtInst %float %1 Length %54543
-      %54545 = OpFDiv %float %54519 %54544
-      %54552 = OpCompositeConstruct %v2float %54510 %54528
-      %54553 = OpExtInst %float %1 Length %54552
-      %54554 = OpFDiv %float %54528 %54553
-      %54555 = OpCompositeConstruct %v2float %54545 %54554
-      %54556 = OpExtInst %v2float %1 FMin %54536 %54555
-      %54559 = OpCompositeConstruct %_arr_v2float_uint_2 %54556 %54517
-      %63426 = OpIAdd %uint %131030 %int_1
-      %63428 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131030
-               OpStore %63428 %54559
-               OpBranch %56398
-      %54410 = OpLabel
-      %54413 = OpLoad %uint %47980
-      %54414 = OpBitwiseAnd %uint %54413 %uint_32768
-      %54415 = OpUGreaterThan %bool %54414 %uint_0
-               OpSelectionMerge %63348 None
-               OpSwitch %uint_0 %63332
-      %63332 = OpLabel
-               OpSelectionMerge %63347 None
-               OpBranchConditional %54415 %63334 %63342
-      %63342 = OpLabel
-      %63344 = OpISub %uint %129523 %int_1
-      %63345 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %63344
-      %63346 = OpLoad %_arr_v4float_uint_2 %63345
-     %110832 = OpCompositeExtract %v4float %63346 0
-     %110833 = OpCompositeExtract %v4float %63346 1
-               OpBranch %63348
-      %63334 = OpLabel
-      %63336 = OpIAdd %uint %129549 %int_1
-      %63337 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %63338 = OpLoad %v4float %63337
-               OpBranch %63348
-      %63347 = OpLabel
-               OpUnreachable
-      %63348 = OpLabel
-     %131035 = OpPhi %uint %63336 %63334 %129549 %63342
-     %131034 = OpPhi %uint %129523 %63334 %63344 %63342
-     %131032 = OpPhi %v4float %63338 %63334 %110832 %63342
-     %131031 = OpPhi %v4float %63338 %63334 %110833 %63342
-      %54419 = OpLoad %uint %47980
-      %54420 = OpBitwiseAnd %uint %54419 %uint_16384
-      %54421 = OpUGreaterThan %bool %54420 %uint_0
-               OpSelectionMerge %63371 None
-               OpSwitch %uint_0 %63355
-      %63355 = OpLabel
-               OpSelectionMerge %63370 None
-               OpBranchConditional %54421 %63357 %63365
-      %63365 = OpLabel
-      %63367 = OpISub %uint %131034 %int_1
-      %63368 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %63367
-      %63369 = OpLoad %_arr_v4float_uint_2 %63368
-     %110823 = OpCompositeExtract %v4float %63369 0
-     %110824 = OpCompositeExtract %v4float %63369 1
-               OpBranch %63371
-      %63357 = OpLabel
-      %63359 = OpIAdd %uint %131035 %int_1
-      %63360 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %131035
-      %63361 = OpLoad %v4float %63360
-               OpBranch %63371
-      %63370 = OpLabel
-               OpUnreachable
-      %63371 = OpLabel
-     %207581 = OpPhi %uint %63359 %63357 %131035 %63365
-     %131050 = OpPhi %uint %131034 %63357 %63367 %63365
-     %131037 = OpPhi %v4float %63361 %63357 %110823 %63365
-     %131036 = OpPhi %v4float %63361 %63357 %110824 %63365
-      %54425 = OpLoad %uint %47980
-      %54426 = OpBitwiseAnd %uint %54425 %uint_8192
-      %54427 = OpUGreaterThan %bool %54426 %uint_0
-               OpSelectionMerge %63394 None
-               OpSwitch %uint_0 %63378
-      %63378 = OpLabel
-               OpSelectionMerge %63393 None
-               OpBranchConditional %54427 %63380 %63388
-      %63388 = OpLabel
-      %63390 = OpISub %uint %129504 %int_1
-      %63391 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63390
-      %63392 = OpLoad %_arr_float_uint_2 %63391
-     %110814 = OpCompositeExtract %float %63392 0
-     %110815 = OpCompositeExtract %float %63392 1
-               OpBranch %63394
-      %63380 = OpLabel
-      %63382 = OpIAdd %uint %129506 %int_1
-      %63383 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %63384 = OpLoad %float %63383
-               OpBranch %63394
-      %63393 = OpLabel
-               OpUnreachable
-      %63394 = OpLabel
-     %139089 = OpPhi %uint %63382 %63380 %129506 %63388
-     %138842 = OpPhi %uint %129504 %63380 %63390 %63388
-     %131044 = OpPhi %float %63384 %63380 %110814 %63388
-     %131043 = OpPhi %float %63384 %63380 %110815 %63388
-      %54435 = OpCompositeConstruct %v4float %131044 %131044 %131044 %131044
-      %54436 = OpExtInst %v4float %1 FMix %131032 %131037 %54435
-      %54444 = OpCompositeConstruct %v4float %131043 %131043 %131043 %131043
-      %54445 = OpExtInst %v4float %1 FMix %131031 %131036 %54444
-     %114908 = OpCompositeConstruct %_arr_v4float_uint_2 %54436 %54445
-      %63398 = OpIAdd %uint %131050 %int_1
-      %63400 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131050
-               OpStore %63400 %114908
-               OpBranch %56398
-      %54369 = OpLabel
-      %54372 = OpLoad %uint %47980
-      %54373 = OpBitwiseAnd %uint %54372 %uint_32768
-      %54374 = OpUGreaterThan %bool %54373 %uint_0
-               OpSelectionMerge %63274 None
-               OpSwitch %uint_0 %63258
-      %63258 = OpLabel
-               OpSelectionMerge %63273 None
-               OpBranchConditional %54374 %63260 %63268
-      %63268 = OpLabel
-      %63270 = OpISub %uint %129523 %int_1
-      %63271 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %63270
-      %63272 = OpLoad %_arr_v4float_uint_2 %63271
-     %110859 = OpCompositeExtract %v4float %63272 0
-     %110860 = OpCompositeExtract %v4float %63272 1
-               OpBranch %63274
-      %63260 = OpLabel
-      %63262 = OpIAdd %uint %129549 %int_1
-      %63263 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %63264 = OpLoad %v4float %63263
-               OpBranch %63274
-      %63273 = OpLabel
-               OpUnreachable
-      %63274 = OpLabel
-     %207579 = OpPhi %uint %63262 %63260 %129549 %63268
-     %131069 = OpPhi %uint %129523 %63260 %63270 %63268
-     %131052 = OpPhi %v4float %63264 %63260 %110859 %63268
-     %131051 = OpPhi %v4float %63264 %63260 %110860 %63268
-      %54378 = OpLoad %uint %47980
-      %54379 = OpBitwiseAnd %uint %54378 %uint_16384
-      %54380 = OpUGreaterThan %bool %54379 %uint_0
-               OpSelectionMerge %63297 None
-               OpSwitch %uint_0 %63281
-      %63281 = OpLabel
-               OpSelectionMerge %63296 None
-               OpBranchConditional %54380 %63283 %63291
-      %63291 = OpLabel
-      %63293 = OpISub %uint %129504 %int_1
-      %63294 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63293
-      %63295 = OpLoad %_arr_float_uint_2 %63294
-     %110850 = OpCompositeExtract %float %63295 0
-     %110851 = OpCompositeExtract %float %63295 1
-               OpBranch %63297
-      %63283 = OpLabel
-      %63285 = OpIAdd %uint %129506 %int_1
-      %63286 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %63287 = OpLoad %float %63286
-               OpBranch %63297
-      %63296 = OpLabel
-               OpUnreachable
-      %63297 = OpLabel
-     %131060 = OpPhi %uint %63285 %63283 %129506 %63291
-     %131059 = OpPhi %uint %129504 %63283 %63293 %63291
-     %131057 = OpPhi %float %63287 %63283 %110850 %63291
-     %131056 = OpPhi %float %63287 %63283 %110851 %63291
-      %54384 = OpLoad %uint %47980
-      %54385 = OpBitwiseAnd %uint %54384 %uint_8192
-      %54386 = OpUGreaterThan %bool %54385 %uint_0
-               OpSelectionMerge %63320 None
-               OpSwitch %uint_0 %63304
-      %63304 = OpLabel
-               OpSelectionMerge %63319 None
-               OpBranchConditional %54386 %63306 %63314
-      %63314 = OpLabel
-      %63316 = OpISub %uint %131059 %int_1
-      %63317 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63316
-      %63318 = OpLoad %_arr_float_uint_2 %63317
-     %110841 = OpCompositeExtract %float %63318 0
-     %110842 = OpCompositeExtract %float %63318 1
-               OpBranch %63320
-      %63306 = OpLabel
-      %63308 = OpIAdd %uint %131060 %int_1
-      %63309 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131060
-      %63310 = OpLoad %float %63309
-               OpBranch %63320
-      %63319 = OpLabel
-               OpUnreachable
-      %63320 = OpLabel
-     %139088 = OpPhi %uint %63308 %63306 %131060 %63314
-     %138841 = OpPhi %uint %131059 %63306 %63316 %63314
-     %131062 = OpPhi %float %63310 %63306 %110841 %63314
-     %131061 = OpPhi %float %63310 %63306 %110842 %63314
-      %54394 = OpCompositeConstruct %v4float %131057 %131057 %131057 %131057
-      %54395 = OpCompositeConstruct %v4float %131062 %131062 %131062 %131062
-      %54396 = OpExtInst %v4float %1 FClamp %131052 %54394 %54395
-      %54404 = OpCompositeConstruct %v4float %131056 %131056 %131056 %131056
-      %54405 = OpCompositeConstruct %v4float %131061 %131061 %131061 %131061
-      %54406 = OpExtInst %v4float %1 FClamp %131051 %54404 %54405
-     %114893 = OpCompositeConstruct %_arr_v4float_uint_2 %54396 %54406
-      %63324 = OpIAdd %uint %131069 %int_1
-      %63326 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131069
-               OpStore %63326 %114893
-               OpBranch %56398
-      %54332 = OpLabel
-      %54335 = OpLoad %uint %47980
-      %54336 = OpBitwiseAnd %uint %54335 %uint_32768
-      %54337 = OpUGreaterThan %bool %54336 %uint_0
-               OpSelectionMerge %63200 None
-               OpSwitch %uint_0 %63184
-      %63184 = OpLabel
-               OpSelectionMerge %63199 None
-               OpBranchConditional %54337 %63186 %63194
-      %63194 = OpLabel
-      %63196 = OpISub %uint %129523 %int_1
-      %63197 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %63196
-      %63198 = OpLoad %_arr_v4float_uint_2 %63197
-     %110886 = OpCompositeExtract %v4float %63198 0
-     %110887 = OpCompositeExtract %v4float %63198 1
-               OpBranch %63200
-      %63186 = OpLabel
-      %63188 = OpIAdd %uint %129549 %int_1
-      %63189 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %63190 = OpLoad %v4float %63189
-               OpBranch %63200
-      %63199 = OpLabel
-               OpUnreachable
-      %63200 = OpLabel
-     %131074 = OpPhi %uint %63188 %63186 %129549 %63194
-     %131073 = OpPhi %uint %129523 %63186 %63196 %63194
-     %131071 = OpPhi %v4float %63190 %63186 %110886 %63194
-     %131070 = OpPhi %v4float %63190 %63186 %110887 %63194
-      %54341 = OpLoad %uint %47980
-      %54342 = OpBitwiseAnd %uint %54341 %uint_16384
-      %54343 = OpUGreaterThan %bool %54342 %uint_0
-               OpSelectionMerge %63223 None
-               OpSwitch %uint_0 %63207
-      %63207 = OpLabel
-               OpSelectionMerge %63222 None
-               OpBranchConditional %54343 %63209 %63217
-      %63217 = OpLabel
-      %63219 = OpISub %uint %131073 %int_1
-      %63220 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %63219
-      %63221 = OpLoad %_arr_v4float_uint_2 %63220
-     %110877 = OpCompositeExtract %v4float %63221 0
-     %110878 = OpCompositeExtract %v4float %63221 1
-               OpBranch %63223
-      %63209 = OpLabel
-      %63211 = OpIAdd %uint %131074 %int_1
-      %63212 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %131074
-      %63213 = OpLoad %v4float %63212
-               OpBranch %63223
-      %63222 = OpLabel
-               OpUnreachable
-      %63223 = OpLabel
-     %131079 = OpPhi %uint %63211 %63209 %131074 %63217
-     %131078 = OpPhi %uint %131073 %63209 %63219 %63217
-     %131076 = OpPhi %v4float %63213 %63209 %110877 %63217
-     %131075 = OpPhi %v4float %63213 %63209 %110878 %63217
-      %54347 = OpLoad %uint %47980
-      %54348 = OpBitwiseAnd %uint %54347 %uint_8192
-      %54349 = OpUGreaterThan %bool %54348 %uint_0
-               OpSelectionMerge %63246 None
-               OpSwitch %uint_0 %63230
-      %63230 = OpLabel
-               OpSelectionMerge %63245 None
-               OpBranchConditional %54349 %63232 %63240
-      %63240 = OpLabel
-      %63242 = OpISub %uint %131078 %int_1
-      %63243 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %63242
-      %63244 = OpLoad %_arr_v4float_uint_2 %63243
-     %110868 = OpCompositeExtract %v4float %63244 0
-     %110869 = OpCompositeExtract %v4float %63244 1
-               OpBranch %63246
-      %63232 = OpLabel
-      %63234 = OpIAdd %uint %131079 %int_1
-      %63235 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %131079
-      %63236 = OpLoad %v4float %63235
-               OpBranch %63246
-      %63245 = OpLabel
-               OpUnreachable
-      %63246 = OpLabel
-     %207576 = OpPhi %uint %63234 %63232 %131079 %63240
-     %131086 = OpPhi %uint %131078 %63232 %63242 %63240
-     %131081 = OpPhi %v4float %63236 %63232 %110868 %63240
-     %131080 = OpPhi %v4float %63236 %63232 %110869 %63240
-      %54357 = OpExtInst %v4float %1 FMix %131071 %131076 %131081
-      %54365 = OpExtInst %v4float %1 FMix %131070 %131075 %131080
-     %114878 = OpCompositeConstruct %_arr_v4float_uint_2 %54357 %54365
-      %63250 = OpIAdd %uint %131086 %int_1
-      %63252 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131086
-               OpStore %63252 %114878
-               OpBranch %56398
-      %54295 = OpLabel
-      %54298 = OpLoad %uint %47980
-      %54299 = OpBitwiseAnd %uint %54298 %uint_32768
-      %54300 = OpUGreaterThan %bool %54299 %uint_0
-               OpSelectionMerge %63126 None
-               OpSwitch %uint_0 %63110
-      %63110 = OpLabel
-               OpSelectionMerge %63125 None
-               OpBranchConditional %54300 %63112 %63120
-      %63120 = OpLabel
-      %63122 = OpISub %uint %129523 %int_1
-      %63123 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %63122
-      %63124 = OpLoad %_arr_v4float_uint_2 %63123
-     %110913 = OpCompositeExtract %v4float %63124 0
-     %110914 = OpCompositeExtract %v4float %63124 1
-               OpBranch %63126
-      %63112 = OpLabel
-      %63114 = OpIAdd %uint %129549 %int_1
-      %63115 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %63116 = OpLoad %v4float %63115
-               OpBranch %63126
-      %63125 = OpLabel
-               OpUnreachable
-      %63126 = OpLabel
-     %131091 = OpPhi %uint %63114 %63112 %129549 %63120
-     %131090 = OpPhi %uint %129523 %63112 %63122 %63120
-     %131088 = OpPhi %v4float %63116 %63112 %110913 %63120
-     %131087 = OpPhi %v4float %63116 %63112 %110914 %63120
-      %54304 = OpLoad %uint %47980
-      %54305 = OpBitwiseAnd %uint %54304 %uint_16384
-      %54306 = OpUGreaterThan %bool %54305 %uint_0
-               OpSelectionMerge %63149 None
-               OpSwitch %uint_0 %63133
-      %63133 = OpLabel
-               OpSelectionMerge %63148 None
-               OpBranchConditional %54306 %63135 %63143
-      %63143 = OpLabel
-      %63145 = OpISub %uint %131090 %int_1
-      %63146 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %63145
-      %63147 = OpLoad %_arr_v4float_uint_2 %63146
-     %110904 = OpCompositeExtract %v4float %63147 0
-     %110905 = OpCompositeExtract %v4float %63147 1
-               OpBranch %63149
-      %63135 = OpLabel
-      %63137 = OpIAdd %uint %131091 %int_1
-      %63138 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %131091
-      %63139 = OpLoad %v4float %63138
-               OpBranch %63149
-      %63148 = OpLabel
-               OpUnreachable
-      %63149 = OpLabel
-     %131096 = OpPhi %uint %63137 %63135 %131091 %63143
-     %131095 = OpPhi %uint %131090 %63135 %63145 %63143
-     %131093 = OpPhi %v4float %63139 %63135 %110904 %63143
-     %131092 = OpPhi %v4float %63139 %63135 %110905 %63143
-      %54310 = OpLoad %uint %47980
-      %54311 = OpBitwiseAnd %uint %54310 %uint_8192
-      %54312 = OpUGreaterThan %bool %54311 %uint_0
-               OpSelectionMerge %63172 None
-               OpSwitch %uint_0 %63156
-      %63156 = OpLabel
-               OpSelectionMerge %63171 None
-               OpBranchConditional %54312 %63158 %63166
-      %63166 = OpLabel
-      %63168 = OpISub %uint %131095 %int_1
-      %63169 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %63168
-      %63170 = OpLoad %_arr_v4float_uint_2 %63169
-     %110895 = OpCompositeExtract %v4float %63170 0
-     %110896 = OpCompositeExtract %v4float %63170 1
-               OpBranch %63172
-      %63158 = OpLabel
-      %63160 = OpIAdd %uint %131096 %int_1
-      %63161 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %131096
-      %63162 = OpLoad %v4float %63161
-               OpBranch %63172
-      %63171 = OpLabel
-               OpUnreachable
-      %63172 = OpLabel
-     %207575 = OpPhi %uint %63160 %63158 %131096 %63166
-     %131103 = OpPhi %uint %131095 %63158 %63168 %63166
-     %131098 = OpPhi %v4float %63162 %63158 %110895 %63166
-     %131097 = OpPhi %v4float %63162 %63158 %110896 %63166
-      %54320 = OpExtInst %v4float %1 FClamp %131088 %131093 %131098
-      %54328 = OpExtInst %v4float %1 FClamp %131087 %131092 %131097
-     %114863 = OpCompositeConstruct %_arr_v4float_uint_2 %54320 %54328
-      %63176 = OpIAdd %uint %131103 %int_1
-      %63178 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131103
-               OpStore %63178 %114863
-               OpBranch %56398
-      %54256 = OpLabel
-      %54259 = OpLoad %uint %47980
-      %54260 = OpBitwiseAnd %uint %54259 %uint_32768
-      %54261 = OpUGreaterThan %bool %54260 %uint_0
-               OpSelectionMerge %63052 None
-               OpSwitch %uint_0 %63036
-      %63036 = OpLabel
-               OpSelectionMerge %63051 None
-               OpBranchConditional %54261 %63038 %63046
-      %63046 = OpLabel
-      %63048 = OpISub %uint %129514 %int_1
-      %63049 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %63048
-      %63050 = OpLoad %_arr_v3float_uint_2 %63049
-     %110940 = OpCompositeExtract %v3float %63050 0
-     %110941 = OpCompositeExtract %v3float %63050 1
-               OpBranch %63052
-      %63038 = OpLabel
-      %63040 = OpIAdd %uint %129517 %int_1
-      %63041 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %63042 = OpLoad %v3float %63041
-               OpBranch %63052
-      %63051 = OpLabel
-               OpUnreachable
-      %63052 = OpLabel
-     %131108 = OpPhi %uint %63040 %63038 %129517 %63046
-     %131107 = OpPhi %uint %129514 %63038 %63048 %63046
-     %131105 = OpPhi %v3float %63042 %63038 %110940 %63046
-     %131104 = OpPhi %v3float %63042 %63038 %110941 %63046
-      %54265 = OpLoad %uint %47980
-      %54266 = OpBitwiseAnd %uint %54265 %uint_16384
-      %54267 = OpUGreaterThan %bool %54266 %uint_0
-               OpSelectionMerge %63075 None
-               OpSwitch %uint_0 %63059
-      %63059 = OpLabel
-               OpSelectionMerge %63074 None
-               OpBranchConditional %54267 %63061 %63069
-      %63069 = OpLabel
-      %63071 = OpISub %uint %131107 %int_1
-      %63072 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %63071
-      %63073 = OpLoad %_arr_v3float_uint_2 %63072
-     %110931 = OpCompositeExtract %v3float %63073 0
-     %110932 = OpCompositeExtract %v3float %63073 1
-               OpBranch %63075
-      %63061 = OpLabel
-      %63063 = OpIAdd %uint %131108 %int_1
-      %63064 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %131108
-      %63065 = OpLoad %v3float %63064
-               OpBranch %63075
-      %63074 = OpLabel
-               OpUnreachable
-      %63075 = OpLabel
-     %206795 = OpPhi %uint %63063 %63061 %131108 %63069
-     %131123 = OpPhi %uint %131107 %63061 %63071 %63069
-     %131110 = OpPhi %v3float %63065 %63061 %110931 %63069
-     %131109 = OpPhi %v3float %63065 %63061 %110932 %63069
-      %54271 = OpLoad %uint %47980
-      %54272 = OpBitwiseAnd %uint %54271 %uint_8192
-      %54273 = OpUGreaterThan %bool %54272 %uint_0
-               OpSelectionMerge %63098 None
-               OpSwitch %uint_0 %63082
-      %63082 = OpLabel
-               OpSelectionMerge %63097 None
-               OpBranchConditional %54273 %63084 %63092
-      %63092 = OpLabel
-      %63094 = OpISub %uint %129504 %int_1
-      %63095 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63094
-      %63096 = OpLoad %_arr_float_uint_2 %63095
-     %110922 = OpCompositeExtract %float %63096 0
-     %110923 = OpCompositeExtract %float %63096 1
-               OpBranch %63098
-      %63084 = OpLabel
-      %63086 = OpIAdd %uint %129506 %int_1
-      %63087 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %63088 = OpLoad %float %63087
-               OpBranch %63098
-      %63097 = OpLabel
-               OpUnreachable
-      %63098 = OpLabel
-     %139081 = OpPhi %uint %63086 %63084 %129506 %63092
-     %138834 = OpPhi %uint %129504 %63084 %63094 %63092
-     %131117 = OpPhi %float %63088 %63084 %110922 %63092
-     %131116 = OpPhi %float %63088 %63084 %110923 %63092
-      %54281 = OpCompositeConstruct %v3float %131117 %131117 %131117
-      %54282 = OpExtInst %v3float %1 FMix %131105 %131110 %54281
-      %54290 = OpCompositeConstruct %v3float %131116 %131116 %131116
-      %54291 = OpExtInst %v3float %1 FMix %131104 %131109 %54290
-     %114848 = OpCompositeConstruct %_arr_v3float_uint_2 %54282 %54291
-      %63102 = OpIAdd %uint %131123 %int_1
-      %63104 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131123
-               OpStore %63104 %114848
-               OpBranch %56398
-      %54215 = OpLabel
-      %54218 = OpLoad %uint %47980
-      %54219 = OpBitwiseAnd %uint %54218 %uint_32768
-      %54220 = OpUGreaterThan %bool %54219 %uint_0
-               OpSelectionMerge %62978 None
-               OpSwitch %uint_0 %62962
-      %62962 = OpLabel
-               OpSelectionMerge %62977 None
-               OpBranchConditional %54220 %62964 %62972
-      %62972 = OpLabel
-      %62974 = OpISub %uint %129514 %int_1
-      %62975 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %62974
-      %62976 = OpLoad %_arr_v3float_uint_2 %62975
-     %110967 = OpCompositeExtract %v3float %62976 0
-     %110968 = OpCompositeExtract %v3float %62976 1
-               OpBranch %62978
-      %62964 = OpLabel
-      %62966 = OpIAdd %uint %129517 %int_1
-      %62967 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %62968 = OpLoad %v3float %62967
-               OpBranch %62978
-      %62977 = OpLabel
-               OpUnreachable
-      %62978 = OpLabel
-     %206793 = OpPhi %uint %62966 %62964 %129517 %62972
-     %131142 = OpPhi %uint %129514 %62964 %62974 %62972
-     %131125 = OpPhi %v3float %62968 %62964 %110967 %62972
-     %131124 = OpPhi %v3float %62968 %62964 %110968 %62972
-      %54224 = OpLoad %uint %47980
-      %54225 = OpBitwiseAnd %uint %54224 %uint_16384
-      %54226 = OpUGreaterThan %bool %54225 %uint_0
-               OpSelectionMerge %63001 None
-               OpSwitch %uint_0 %62985
-      %62985 = OpLabel
-               OpSelectionMerge %63000 None
-               OpBranchConditional %54226 %62987 %62995
-      %62995 = OpLabel
-      %62997 = OpISub %uint %129504 %int_1
-      %62998 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %62997
-      %62999 = OpLoad %_arr_float_uint_2 %62998
-     %110958 = OpCompositeExtract %float %62999 0
-     %110959 = OpCompositeExtract %float %62999 1
-               OpBranch %63001
-      %62987 = OpLabel
-      %62989 = OpIAdd %uint %129506 %int_1
-      %62990 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %62991 = OpLoad %float %62990
-               OpBranch %63001
-      %63000 = OpLabel
-               OpUnreachable
-      %63001 = OpLabel
-     %131133 = OpPhi %uint %62989 %62987 %129506 %62995
-     %131132 = OpPhi %uint %129504 %62987 %62997 %62995
-     %131130 = OpPhi %float %62991 %62987 %110958 %62995
-     %131129 = OpPhi %float %62991 %62987 %110959 %62995
-      %54230 = OpLoad %uint %47980
-      %54231 = OpBitwiseAnd %uint %54230 %uint_8192
-      %54232 = OpUGreaterThan %bool %54231 %uint_0
-               OpSelectionMerge %63024 None
-               OpSwitch %uint_0 %63008
-      %63008 = OpLabel
-               OpSelectionMerge %63023 None
-               OpBranchConditional %54232 %63010 %63018
-      %63018 = OpLabel
-      %63020 = OpISub %uint %131132 %int_1
-      %63021 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %63020
-      %63022 = OpLoad %_arr_float_uint_2 %63021
-     %110949 = OpCompositeExtract %float %63022 0
-     %110950 = OpCompositeExtract %float %63022 1
-               OpBranch %63024
-      %63010 = OpLabel
-      %63012 = OpIAdd %uint %131133 %int_1
-      %63013 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131133
-      %63014 = OpLoad %float %63013
-               OpBranch %63024
-      %63023 = OpLabel
-               OpUnreachable
-      %63024 = OpLabel
-     %139080 = OpPhi %uint %63012 %63010 %131133 %63018
-     %138833 = OpPhi %uint %131132 %63010 %63020 %63018
-     %131135 = OpPhi %float %63014 %63010 %110949 %63018
-     %131134 = OpPhi %float %63014 %63010 %110950 %63018
-      %54240 = OpCompositeConstruct %v3float %131130 %131130 %131130
-      %54241 = OpCompositeConstruct %v3float %131135 %131135 %131135
-      %54242 = OpExtInst %v3float %1 FClamp %131125 %54240 %54241
-      %54250 = OpCompositeConstruct %v3float %131129 %131129 %131129
-      %54251 = OpCompositeConstruct %v3float %131134 %131134 %131134
-      %54252 = OpExtInst %v3float %1 FClamp %131124 %54250 %54251
-     %114833 = OpCompositeConstruct %_arr_v3float_uint_2 %54242 %54252
-      %63028 = OpIAdd %uint %131142 %int_1
-      %63030 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131142
-               OpStore %63030 %114833
-               OpBranch %56398
-      %54178 = OpLabel
-      %54181 = OpLoad %uint %47980
-      %54182 = OpBitwiseAnd %uint %54181 %uint_32768
-      %54183 = OpUGreaterThan %bool %54182 %uint_0
-               OpSelectionMerge %62904 None
-               OpSwitch %uint_0 %62888
-      %62888 = OpLabel
-               OpSelectionMerge %62903 None
-               OpBranchConditional %54183 %62890 %62898
-      %62898 = OpLabel
-      %62900 = OpISub %uint %129514 %int_1
-      %62901 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %62900
-      %62902 = OpLoad %_arr_v3float_uint_2 %62901
-     %110994 = OpCompositeExtract %v3float %62902 0
-     %110995 = OpCompositeExtract %v3float %62902 1
-               OpBranch %62904
-      %62890 = OpLabel
-      %62892 = OpIAdd %uint %129517 %int_1
-      %62893 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %62894 = OpLoad %v3float %62893
-               OpBranch %62904
-      %62903 = OpLabel
-               OpUnreachable
-      %62904 = OpLabel
-     %131147 = OpPhi %uint %62892 %62890 %129517 %62898
-     %131146 = OpPhi %uint %129514 %62890 %62900 %62898
-     %131144 = OpPhi %v3float %62894 %62890 %110994 %62898
-     %131143 = OpPhi %v3float %62894 %62890 %110995 %62898
-      %54187 = OpLoad %uint %47980
-      %54188 = OpBitwiseAnd %uint %54187 %uint_16384
-      %54189 = OpUGreaterThan %bool %54188 %uint_0
-               OpSelectionMerge %62927 None
-               OpSwitch %uint_0 %62911
-      %62911 = OpLabel
-               OpSelectionMerge %62926 None
-               OpBranchConditional %54189 %62913 %62921
-      %62921 = OpLabel
-      %62923 = OpISub %uint %131146 %int_1
-      %62924 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %62923
-      %62925 = OpLoad %_arr_v3float_uint_2 %62924
-     %110985 = OpCompositeExtract %v3float %62925 0
-     %110986 = OpCompositeExtract %v3float %62925 1
-               OpBranch %62927
-      %62913 = OpLabel
-      %62915 = OpIAdd %uint %131147 %int_1
-      %62916 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %131147
-      %62917 = OpLoad %v3float %62916
-               OpBranch %62927
-      %62926 = OpLabel
-               OpUnreachable
-      %62927 = OpLabel
-     %131152 = OpPhi %uint %62915 %62913 %131147 %62921
-     %131151 = OpPhi %uint %131146 %62913 %62923 %62921
-     %131149 = OpPhi %v3float %62917 %62913 %110985 %62921
-     %131148 = OpPhi %v3float %62917 %62913 %110986 %62921
-      %54193 = OpLoad %uint %47980
-      %54194 = OpBitwiseAnd %uint %54193 %uint_8192
-      %54195 = OpUGreaterThan %bool %54194 %uint_0
-               OpSelectionMerge %62950 None
-               OpSwitch %uint_0 %62934
-      %62934 = OpLabel
-               OpSelectionMerge %62949 None
-               OpBranchConditional %54195 %62936 %62944
-      %62944 = OpLabel
-      %62946 = OpISub %uint %131151 %int_1
-      %62947 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %62946
-      %62948 = OpLoad %_arr_v3float_uint_2 %62947
-     %110976 = OpCompositeExtract %v3float %62948 0
-     %110977 = OpCompositeExtract %v3float %62948 1
-               OpBranch %62950
-      %62936 = OpLabel
-      %62938 = OpIAdd %uint %131152 %int_1
-      %62939 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %131152
-      %62940 = OpLoad %v3float %62939
-               OpBranch %62950
-      %62949 = OpLabel
-               OpUnreachable
-      %62950 = OpLabel
-     %206790 = OpPhi %uint %62938 %62936 %131152 %62944
-     %131159 = OpPhi %uint %131151 %62936 %62946 %62944
-     %131154 = OpPhi %v3float %62940 %62936 %110976 %62944
-     %131153 = OpPhi %v3float %62940 %62936 %110977 %62944
-      %54203 = OpExtInst %v3float %1 FMix %131144 %131149 %131154
-      %54211 = OpExtInst %v3float %1 FMix %131143 %131148 %131153
-     %114818 = OpCompositeConstruct %_arr_v3float_uint_2 %54203 %54211
-      %62954 = OpIAdd %uint %131159 %int_1
-      %62956 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131159
-               OpStore %62956 %114818
-               OpBranch %56398
-      %54141 = OpLabel
-      %54144 = OpLoad %uint %47980
-      %54145 = OpBitwiseAnd %uint %54144 %uint_32768
-      %54146 = OpUGreaterThan %bool %54145 %uint_0
-               OpSelectionMerge %62830 None
-               OpSwitch %uint_0 %62814
-      %62814 = OpLabel
-               OpSelectionMerge %62829 None
-               OpBranchConditional %54146 %62816 %62824
-      %62824 = OpLabel
-      %62826 = OpISub %uint %129514 %int_1
-      %62827 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %62826
-      %62828 = OpLoad %_arr_v3float_uint_2 %62827
-     %111021 = OpCompositeExtract %v3float %62828 0
-     %111022 = OpCompositeExtract %v3float %62828 1
-               OpBranch %62830
-      %62816 = OpLabel
-      %62818 = OpIAdd %uint %129517 %int_1
-      %62819 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %62820 = OpLoad %v3float %62819
-               OpBranch %62830
-      %62829 = OpLabel
-               OpUnreachable
-      %62830 = OpLabel
-     %131164 = OpPhi %uint %62818 %62816 %129517 %62824
-     %131163 = OpPhi %uint %129514 %62816 %62826 %62824
-     %131161 = OpPhi %v3float %62820 %62816 %111021 %62824
-     %131160 = OpPhi %v3float %62820 %62816 %111022 %62824
-      %54150 = OpLoad %uint %47980
-      %54151 = OpBitwiseAnd %uint %54150 %uint_16384
-      %54152 = OpUGreaterThan %bool %54151 %uint_0
-               OpSelectionMerge %62853 None
-               OpSwitch %uint_0 %62837
-      %62837 = OpLabel
-               OpSelectionMerge %62852 None
-               OpBranchConditional %54152 %62839 %62847
-      %62847 = OpLabel
-      %62849 = OpISub %uint %131163 %int_1
-      %62850 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %62849
-      %62851 = OpLoad %_arr_v3float_uint_2 %62850
-     %111012 = OpCompositeExtract %v3float %62851 0
-     %111013 = OpCompositeExtract %v3float %62851 1
-               OpBranch %62853
-      %62839 = OpLabel
-      %62841 = OpIAdd %uint %131164 %int_1
-      %62842 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %131164
-      %62843 = OpLoad %v3float %62842
-               OpBranch %62853
-      %62852 = OpLabel
-               OpUnreachable
-      %62853 = OpLabel
-     %131169 = OpPhi %uint %62841 %62839 %131164 %62847
-     %131168 = OpPhi %uint %131163 %62839 %62849 %62847
-     %131166 = OpPhi %v3float %62843 %62839 %111012 %62847
-     %131165 = OpPhi %v3float %62843 %62839 %111013 %62847
-      %54156 = OpLoad %uint %47980
-      %54157 = OpBitwiseAnd %uint %54156 %uint_8192
-      %54158 = OpUGreaterThan %bool %54157 %uint_0
-               OpSelectionMerge %62876 None
-               OpSwitch %uint_0 %62860
-      %62860 = OpLabel
-               OpSelectionMerge %62875 None
-               OpBranchConditional %54158 %62862 %62870
-      %62870 = OpLabel
-      %62872 = OpISub %uint %131168 %int_1
-      %62873 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %62872
-      %62874 = OpLoad %_arr_v3float_uint_2 %62873
-     %111003 = OpCompositeExtract %v3float %62874 0
-     %111004 = OpCompositeExtract %v3float %62874 1
-               OpBranch %62876
-      %62862 = OpLabel
-      %62864 = OpIAdd %uint %131169 %int_1
-      %62865 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %131169
-      %62866 = OpLoad %v3float %62865
-               OpBranch %62876
-      %62875 = OpLabel
-               OpUnreachable
-      %62876 = OpLabel
-     %206789 = OpPhi %uint %62864 %62862 %131169 %62870
-     %131176 = OpPhi %uint %131168 %62862 %62872 %62870
-     %131171 = OpPhi %v3float %62866 %62862 %111003 %62870
-     %131170 = OpPhi %v3float %62866 %62862 %111004 %62870
-      %54166 = OpExtInst %v3float %1 FClamp %131161 %131166 %131171
-      %54174 = OpExtInst %v3float %1 FClamp %131160 %131165 %131170
-     %114803 = OpCompositeConstruct %_arr_v3float_uint_2 %54166 %54174
-      %62880 = OpIAdd %uint %131176 %int_1
-      %62882 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131176
-               OpStore %62882 %114803
-               OpBranch %56398
-      %54102 = OpLabel
-      %54105 = OpLoad %uint %47980
-      %54106 = OpBitwiseAnd %uint %54105 %uint_32768
-      %54107 = OpUGreaterThan %bool %54106 %uint_0
-               OpSelectionMerge %62756 None
-               OpSwitch %uint_0 %62740
-      %62740 = OpLabel
-               OpSelectionMerge %62755 None
-               OpBranchConditional %54107 %62742 %62750
-      %62750 = OpLabel
-      %62752 = OpISub %uint %129525 %int_1
-      %62753 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %62752
-      %62754 = OpLoad %_arr_v2float_uint_2 %62753
-     %111048 = OpCompositeExtract %v2float %62754 0
-     %111049 = OpCompositeExtract %v2float %62754 1
-               OpBranch %62756
-      %62742 = OpLabel
-      %62744 = OpIAdd %uint %130223 %int_1
-      %62745 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %62746 = OpLoad %v2float %62745
-               OpBranch %62756
-      %62755 = OpLabel
-               OpUnreachable
-      %62756 = OpLabel
-     %131181 = OpPhi %uint %62744 %62742 %130223 %62750
-     %131180 = OpPhi %uint %129525 %62742 %62752 %62750
-     %131178 = OpPhi %v2float %62746 %62742 %111048 %62750
-     %131177 = OpPhi %v2float %62746 %62742 %111049 %62750
-      %54111 = OpLoad %uint %47980
-      %54112 = OpBitwiseAnd %uint %54111 %uint_16384
-      %54113 = OpUGreaterThan %bool %54112 %uint_0
-               OpSelectionMerge %62779 None
-               OpSwitch %uint_0 %62763
-      %62763 = OpLabel
-               OpSelectionMerge %62778 None
-               OpBranchConditional %54113 %62765 %62773
-      %62773 = OpLabel
-      %62775 = OpISub %uint %131180 %int_1
-      %62776 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %62775
-      %62777 = OpLoad %_arr_v2float_uint_2 %62776
-     %111039 = OpCompositeExtract %v2float %62777 0
-     %111040 = OpCompositeExtract %v2float %62777 1
-               OpBranch %62779
-      %62765 = OpLabel
-      %62767 = OpIAdd %uint %131181 %int_1
-      %62768 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %131181
-      %62769 = OpLoad %v2float %62768
-               OpBranch %62779
-      %62778 = OpLabel
-               OpUnreachable
-      %62779 = OpLabel
-     %209137 = OpPhi %uint %62767 %62765 %131181 %62773
-     %131196 = OpPhi %uint %131180 %62765 %62775 %62773
-     %131183 = OpPhi %v2float %62769 %62765 %111039 %62773
-     %131182 = OpPhi %v2float %62769 %62765 %111040 %62773
-      %54117 = OpLoad %uint %47980
-      %54118 = OpBitwiseAnd %uint %54117 %uint_8192
-      %54119 = OpUGreaterThan %bool %54118 %uint_0
-               OpSelectionMerge %62802 None
-               OpSwitch %uint_0 %62786
-      %62786 = OpLabel
-               OpSelectionMerge %62801 None
-               OpBranchConditional %54119 %62788 %62796
-      %62796 = OpLabel
-      %62798 = OpISub %uint %129504 %int_1
-      %62799 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %62798
-      %62800 = OpLoad %_arr_float_uint_2 %62799
-     %111030 = OpCompositeExtract %float %62800 0
-     %111031 = OpCompositeExtract %float %62800 1
-               OpBranch %62802
-      %62788 = OpLabel
-      %62790 = OpIAdd %uint %129506 %int_1
-      %62791 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %62792 = OpLoad %float %62791
-               OpBranch %62802
-      %62801 = OpLabel
-               OpUnreachable
-      %62802 = OpLabel
-     %139073 = OpPhi %uint %62790 %62788 %129506 %62796
-     %138826 = OpPhi %uint %129504 %62788 %62798 %62796
-     %131190 = OpPhi %float %62792 %62788 %111030 %62796
-     %131189 = OpPhi %float %62792 %62788 %111031 %62796
-      %54127 = OpCompositeConstruct %v2float %131190 %131190
-      %54128 = OpExtInst %v2float %1 FMix %131178 %131183 %54127
-      %54136 = OpCompositeConstruct %v2float %131189 %131189
-      %54137 = OpExtInst %v2float %1 FMix %131177 %131182 %54136
-     %114788 = OpCompositeConstruct %_arr_v2float_uint_2 %54128 %54137
-      %62806 = OpIAdd %uint %131196 %int_1
-      %62808 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131196
-               OpStore %62808 %114788
-               OpBranch %56398
-      %54061 = OpLabel
-      %54064 = OpLoad %uint %47980
-      %54065 = OpBitwiseAnd %uint %54064 %uint_32768
-      %54066 = OpUGreaterThan %bool %54065 %uint_0
-               OpSelectionMerge %62682 None
-               OpSwitch %uint_0 %62666
-      %62666 = OpLabel
-               OpSelectionMerge %62681 None
-               OpBranchConditional %54066 %62668 %62676
-      %62676 = OpLabel
-      %62678 = OpISub %uint %129525 %int_1
-      %62679 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %62678
-      %62680 = OpLoad %_arr_v2float_uint_2 %62679
-     %111075 = OpCompositeExtract %v2float %62680 0
-     %111076 = OpCompositeExtract %v2float %62680 1
-               OpBranch %62682
-      %62668 = OpLabel
-      %62670 = OpIAdd %uint %130223 %int_1
-      %62671 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %62672 = OpLoad %v2float %62671
-               OpBranch %62682
-      %62681 = OpLabel
-               OpUnreachable
-      %62682 = OpLabel
-     %209135 = OpPhi %uint %62670 %62668 %130223 %62676
-     %131215 = OpPhi %uint %129525 %62668 %62678 %62676
-     %131198 = OpPhi %v2float %62672 %62668 %111075 %62676
-     %131197 = OpPhi %v2float %62672 %62668 %111076 %62676
-      %54070 = OpLoad %uint %47980
-      %54071 = OpBitwiseAnd %uint %54070 %uint_16384
-      %54072 = OpUGreaterThan %bool %54071 %uint_0
-               OpSelectionMerge %62705 None
-               OpSwitch %uint_0 %62689
-      %62689 = OpLabel
-               OpSelectionMerge %62704 None
-               OpBranchConditional %54072 %62691 %62699
-      %62699 = OpLabel
-      %62701 = OpISub %uint %129504 %int_1
-      %62702 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %62701
-      %62703 = OpLoad %_arr_float_uint_2 %62702
-     %111066 = OpCompositeExtract %float %62703 0
-     %111067 = OpCompositeExtract %float %62703 1
-               OpBranch %62705
-      %62691 = OpLabel
-      %62693 = OpIAdd %uint %129506 %int_1
-      %62694 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %62695 = OpLoad %float %62694
-               OpBranch %62705
-      %62704 = OpLabel
-               OpUnreachable
-      %62705 = OpLabel
-     %131206 = OpPhi %uint %62693 %62691 %129506 %62699
-     %131205 = OpPhi %uint %129504 %62691 %62701 %62699
-     %131203 = OpPhi %float %62695 %62691 %111066 %62699
-     %131202 = OpPhi %float %62695 %62691 %111067 %62699
-      %54076 = OpLoad %uint %47980
-      %54077 = OpBitwiseAnd %uint %54076 %uint_8192
-      %54078 = OpUGreaterThan %bool %54077 %uint_0
-               OpSelectionMerge %62728 None
-               OpSwitch %uint_0 %62712
-      %62712 = OpLabel
-               OpSelectionMerge %62727 None
-               OpBranchConditional %54078 %62714 %62722
-      %62722 = OpLabel
-      %62724 = OpISub %uint %131205 %int_1
-      %62725 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %62724
-      %62726 = OpLoad %_arr_float_uint_2 %62725
-     %111057 = OpCompositeExtract %float %62726 0
-     %111058 = OpCompositeExtract %float %62726 1
-               OpBranch %62728
-      %62714 = OpLabel
-      %62716 = OpIAdd %uint %131206 %int_1
-      %62717 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131206
-      %62718 = OpLoad %float %62717
-               OpBranch %62728
-      %62727 = OpLabel
-               OpUnreachable
-      %62728 = OpLabel
-     %139072 = OpPhi %uint %62716 %62714 %131206 %62722
-     %138825 = OpPhi %uint %131205 %62714 %62724 %62722
-     %131208 = OpPhi %float %62718 %62714 %111057 %62722
-     %131207 = OpPhi %float %62718 %62714 %111058 %62722
-      %54086 = OpCompositeConstruct %v2float %131203 %131203
-      %54087 = OpCompositeConstruct %v2float %131208 %131208
-      %54088 = OpExtInst %v2float %1 FClamp %131198 %54086 %54087
-      %54096 = OpCompositeConstruct %v2float %131202 %131202
-      %54097 = OpCompositeConstruct %v2float %131207 %131207
-      %54098 = OpExtInst %v2float %1 FClamp %131197 %54096 %54097
-     %114773 = OpCompositeConstruct %_arr_v2float_uint_2 %54088 %54098
-      %62732 = OpIAdd %uint %131215 %int_1
-      %62734 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131215
-               OpStore %62734 %114773
-               OpBranch %56398
-      %54024 = OpLabel
-      %54027 = OpLoad %uint %47980
-      %54028 = OpBitwiseAnd %uint %54027 %uint_32768
-      %54029 = OpUGreaterThan %bool %54028 %uint_0
-               OpSelectionMerge %62608 None
-               OpSwitch %uint_0 %62592
-      %62592 = OpLabel
-               OpSelectionMerge %62607 None
-               OpBranchConditional %54029 %62594 %62602
-      %62602 = OpLabel
-      %62604 = OpISub %uint %129525 %int_1
-      %62605 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %62604
-      %62606 = OpLoad %_arr_v2float_uint_2 %62605
-     %111102 = OpCompositeExtract %v2float %62606 0
-     %111103 = OpCompositeExtract %v2float %62606 1
-               OpBranch %62608
-      %62594 = OpLabel
-      %62596 = OpIAdd %uint %130223 %int_1
-      %62597 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %62598 = OpLoad %v2float %62597
-               OpBranch %62608
-      %62607 = OpLabel
-               OpUnreachable
-      %62608 = OpLabel
-     %131220 = OpPhi %uint %62596 %62594 %130223 %62602
-     %131219 = OpPhi %uint %129525 %62594 %62604 %62602
-     %131217 = OpPhi %v2float %62598 %62594 %111102 %62602
-     %131216 = OpPhi %v2float %62598 %62594 %111103 %62602
-      %54033 = OpLoad %uint %47980
-      %54034 = OpBitwiseAnd %uint %54033 %uint_16384
-      %54035 = OpUGreaterThan %bool %54034 %uint_0
-               OpSelectionMerge %62631 None
-               OpSwitch %uint_0 %62615
-      %62615 = OpLabel
-               OpSelectionMerge %62630 None
-               OpBranchConditional %54035 %62617 %62625
-      %62625 = OpLabel
-      %62627 = OpISub %uint %131219 %int_1
-      %62628 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %62627
-      %62629 = OpLoad %_arr_v2float_uint_2 %62628
-     %111093 = OpCompositeExtract %v2float %62629 0
-     %111094 = OpCompositeExtract %v2float %62629 1
-               OpBranch %62631
-      %62617 = OpLabel
-      %62619 = OpIAdd %uint %131220 %int_1
-      %62620 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %131220
-      %62621 = OpLoad %v2float %62620
-               OpBranch %62631
-      %62630 = OpLabel
-               OpUnreachable
-      %62631 = OpLabel
-     %131225 = OpPhi %uint %62619 %62617 %131220 %62625
-     %131224 = OpPhi %uint %131219 %62617 %62627 %62625
-     %131222 = OpPhi %v2float %62621 %62617 %111093 %62625
-     %131221 = OpPhi %v2float %62621 %62617 %111094 %62625
-      %54039 = OpLoad %uint %47980
-      %54040 = OpBitwiseAnd %uint %54039 %uint_8192
-      %54041 = OpUGreaterThan %bool %54040 %uint_0
-               OpSelectionMerge %62654 None
-               OpSwitch %uint_0 %62638
-      %62638 = OpLabel
-               OpSelectionMerge %62653 None
-               OpBranchConditional %54041 %62640 %62648
-      %62648 = OpLabel
-      %62650 = OpISub %uint %131224 %int_1
-      %62651 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %62650
-      %62652 = OpLoad %_arr_v2float_uint_2 %62651
-     %111084 = OpCompositeExtract %v2float %62652 0
-     %111085 = OpCompositeExtract %v2float %62652 1
-               OpBranch %62654
-      %62640 = OpLabel
-      %62642 = OpIAdd %uint %131225 %int_1
-      %62643 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %131225
-      %62644 = OpLoad %v2float %62643
-               OpBranch %62654
-      %62653 = OpLabel
-               OpUnreachable
-      %62654 = OpLabel
-     %209132 = OpPhi %uint %62642 %62640 %131225 %62648
-     %131232 = OpPhi %uint %131224 %62640 %62650 %62648
-     %131227 = OpPhi %v2float %62644 %62640 %111084 %62648
-     %131226 = OpPhi %v2float %62644 %62640 %111085 %62648
-      %54049 = OpExtInst %v2float %1 FMix %131217 %131222 %131227
-      %54057 = OpExtInst %v2float %1 FMix %131216 %131221 %131226
-     %114758 = OpCompositeConstruct %_arr_v2float_uint_2 %54049 %54057
-      %62658 = OpIAdd %uint %131232 %int_1
-      %62660 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131232
-               OpStore %62660 %114758
-               OpBranch %56398
-      %53987 = OpLabel
-      %53990 = OpLoad %uint %47980
-      %53991 = OpBitwiseAnd %uint %53990 %uint_32768
-      %53992 = OpUGreaterThan %bool %53991 %uint_0
-               OpSelectionMerge %62534 None
-               OpSwitch %uint_0 %62518
-      %62518 = OpLabel
-               OpSelectionMerge %62533 None
-               OpBranchConditional %53992 %62520 %62528
-      %62528 = OpLabel
-      %62530 = OpISub %uint %129525 %int_1
-      %62531 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %62530
-      %62532 = OpLoad %_arr_v2float_uint_2 %62531
-     %111129 = OpCompositeExtract %v2float %62532 0
-     %111130 = OpCompositeExtract %v2float %62532 1
-               OpBranch %62534
-      %62520 = OpLabel
-      %62522 = OpIAdd %uint %130223 %int_1
-      %62523 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %62524 = OpLoad %v2float %62523
-               OpBranch %62534
-      %62533 = OpLabel
-               OpUnreachable
-      %62534 = OpLabel
-     %131237 = OpPhi %uint %62522 %62520 %130223 %62528
-     %131236 = OpPhi %uint %129525 %62520 %62530 %62528
-     %131234 = OpPhi %v2float %62524 %62520 %111129 %62528
-     %131233 = OpPhi %v2float %62524 %62520 %111130 %62528
-      %53996 = OpLoad %uint %47980
-      %53997 = OpBitwiseAnd %uint %53996 %uint_16384
-      %53998 = OpUGreaterThan %bool %53997 %uint_0
-               OpSelectionMerge %62557 None
-               OpSwitch %uint_0 %62541
-      %62541 = OpLabel
-               OpSelectionMerge %62556 None
-               OpBranchConditional %53998 %62543 %62551
-      %62551 = OpLabel
-      %62553 = OpISub %uint %131236 %int_1
-      %62554 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %62553
-      %62555 = OpLoad %_arr_v2float_uint_2 %62554
-     %111120 = OpCompositeExtract %v2float %62555 0
-     %111121 = OpCompositeExtract %v2float %62555 1
-               OpBranch %62557
-      %62543 = OpLabel
-      %62545 = OpIAdd %uint %131237 %int_1
-      %62546 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %131237
-      %62547 = OpLoad %v2float %62546
-               OpBranch %62557
-      %62556 = OpLabel
-               OpUnreachable
-      %62557 = OpLabel
-     %131242 = OpPhi %uint %62545 %62543 %131237 %62551
-     %131241 = OpPhi %uint %131236 %62543 %62553 %62551
-     %131239 = OpPhi %v2float %62547 %62543 %111120 %62551
-     %131238 = OpPhi %v2float %62547 %62543 %111121 %62551
-      %54002 = OpLoad %uint %47980
-      %54003 = OpBitwiseAnd %uint %54002 %uint_8192
-      %54004 = OpUGreaterThan %bool %54003 %uint_0
-               OpSelectionMerge %62580 None
-               OpSwitch %uint_0 %62564
-      %62564 = OpLabel
-               OpSelectionMerge %62579 None
-               OpBranchConditional %54004 %62566 %62574
-      %62574 = OpLabel
-      %62576 = OpISub %uint %131241 %int_1
-      %62577 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %62576
-      %62578 = OpLoad %_arr_v2float_uint_2 %62577
-     %111111 = OpCompositeExtract %v2float %62578 0
-     %111112 = OpCompositeExtract %v2float %62578 1
-               OpBranch %62580
-      %62566 = OpLabel
-      %62568 = OpIAdd %uint %131242 %int_1
-      %62569 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %131242
-      %62570 = OpLoad %v2float %62569
-               OpBranch %62580
-      %62579 = OpLabel
-               OpUnreachable
-      %62580 = OpLabel
-     %209131 = OpPhi %uint %62568 %62566 %131242 %62574
-     %131249 = OpPhi %uint %131241 %62566 %62576 %62574
-     %131244 = OpPhi %v2float %62570 %62566 %111111 %62574
-     %131243 = OpPhi %v2float %62570 %62566 %111112 %62574
-      %54012 = OpExtInst %v2float %1 FClamp %131234 %131239 %131244
-      %54020 = OpExtInst %v2float %1 FClamp %131233 %131238 %131243
-     %114743 = OpCompositeConstruct %_arr_v2float_uint_2 %54012 %54020
-      %62584 = OpIAdd %uint %131249 %int_1
-      %62586 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131249
-               OpStore %62586 %114743
-               OpBranch %56398
-      %53950 = OpLabel
-      %53953 = OpLoad %uint %47980
-      %53954 = OpBitwiseAnd %uint %53953 %uint_32768
-      %53955 = OpUGreaterThan %bool %53954 %uint_0
-               OpSelectionMerge %62460 None
-               OpSwitch %uint_0 %62444
-      %62444 = OpLabel
-               OpSelectionMerge %62459 None
-               OpBranchConditional %53955 %62446 %62454
-      %62454 = OpLabel
-      %62456 = OpISub %uint %129504 %int_1
-      %62457 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %62456
-      %62458 = OpLoad %_arr_float_uint_2 %62457
-     %111156 = OpCompositeExtract %float %62458 0
-     %111157 = OpCompositeExtract %float %62458 1
-               OpBranch %62460
-      %62446 = OpLabel
-      %62448 = OpIAdd %uint %129506 %int_1
-      %62449 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %62450 = OpLoad %float %62449
-               OpBranch %62460
-      %62459 = OpLabel
-               OpUnreachable
-      %62460 = OpLabel
-     %131254 = OpPhi %uint %62448 %62446 %129506 %62454
-     %131253 = OpPhi %uint %129504 %62446 %62456 %62454
-     %131251 = OpPhi %float %62450 %62446 %111156 %62454
-     %131250 = OpPhi %float %62450 %62446 %111157 %62454
-      %53959 = OpLoad %uint %47980
-      %53960 = OpBitwiseAnd %uint %53959 %uint_16384
-      %53961 = OpUGreaterThan %bool %53960 %uint_0
-               OpSelectionMerge %62483 None
-               OpSwitch %uint_0 %62467
-      %62467 = OpLabel
-               OpSelectionMerge %62482 None
-               OpBranchConditional %53961 %62469 %62477
-      %62477 = OpLabel
-      %62479 = OpISub %uint %131253 %int_1
-      %62480 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %62479
-      %62481 = OpLoad %_arr_float_uint_2 %62480
-     %111147 = OpCompositeExtract %float %62481 0
-     %111148 = OpCompositeExtract %float %62481 1
-               OpBranch %62483
-      %62469 = OpLabel
-      %62471 = OpIAdd %uint %131254 %int_1
-      %62472 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131254
-      %62473 = OpLoad %float %62472
-               OpBranch %62483
-      %62482 = OpLabel
-               OpUnreachable
-      %62483 = OpLabel
-     %131259 = OpPhi %uint %62471 %62469 %131254 %62477
-     %131258 = OpPhi %uint %131253 %62469 %62479 %62477
-     %131256 = OpPhi %float %62473 %62469 %111147 %62477
-     %131255 = OpPhi %float %62473 %62469 %111148 %62477
-      %53965 = OpLoad %uint %47980
-      %53966 = OpBitwiseAnd %uint %53965 %uint_8192
-      %53967 = OpUGreaterThan %bool %53966 %uint_0
-               OpSelectionMerge %62506 None
-               OpSwitch %uint_0 %62490
-      %62490 = OpLabel
-               OpSelectionMerge %62505 None
-               OpBranchConditional %53967 %62492 %62500
-      %62500 = OpLabel
-      %62502 = OpISub %uint %131258 %int_1
-      %62503 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %62502
-      %62504 = OpLoad %_arr_float_uint_2 %62503
-     %111138 = OpCompositeExtract %float %62504 0
-     %111139 = OpCompositeExtract %float %62504 1
-               OpBranch %62506
-      %62492 = OpLabel
-      %62494 = OpIAdd %uint %131259 %int_1
-      %62495 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131259
-      %62496 = OpLoad %float %62495
-               OpBranch %62506
-      %62505 = OpLabel
-               OpUnreachable
-      %62506 = OpLabel
-     %139065 = OpPhi %uint %62494 %62492 %131259 %62500
-     %131266 = OpPhi %uint %131258 %62492 %62502 %62500
-     %131261 = OpPhi %float %62496 %62492 %111138 %62500
-     %131260 = OpPhi %float %62496 %62492 %111139 %62500
-      %53975 = OpExtInst %float %1 FMix %131251 %131256 %131261
-      %53983 = OpExtInst %float %1 FMix %131250 %131255 %131260
-     %114728 = OpCompositeConstruct %_arr_float_uint_2 %53975 %53983
-      %62510 = OpIAdd %uint %131266 %int_1
-      %62512 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131266
-               OpStore %62512 %114728
-               OpBranch %56398
-      %53913 = OpLabel
-      %53916 = OpLoad %uint %47980
-      %53917 = OpBitwiseAnd %uint %53916 %uint_32768
-      %53918 = OpUGreaterThan %bool %53917 %uint_0
-               OpSelectionMerge %62386 None
-               OpSwitch %uint_0 %62370
-      %62370 = OpLabel
-               OpSelectionMerge %62385 None
-               OpBranchConditional %53918 %62372 %62380
-      %62380 = OpLabel
-      %62382 = OpISub %uint %129504 %int_1
-      %62383 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %62382
-      %62384 = OpLoad %_arr_float_uint_2 %62383
-     %111183 = OpCompositeExtract %float %62384 0
-     %111184 = OpCompositeExtract %float %62384 1
-               OpBranch %62386
-      %62372 = OpLabel
-      %62374 = OpIAdd %uint %129506 %int_1
-      %62375 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %62376 = OpLoad %float %62375
-               OpBranch %62386
-      %62385 = OpLabel
-               OpUnreachable
-      %62386 = OpLabel
-     %131271 = OpPhi %uint %62374 %62372 %129506 %62380
-     %131270 = OpPhi %uint %129504 %62372 %62382 %62380
-     %131268 = OpPhi %float %62376 %62372 %111183 %62380
-     %131267 = OpPhi %float %62376 %62372 %111184 %62380
-      %53922 = OpLoad %uint %47980
-      %53923 = OpBitwiseAnd %uint %53922 %uint_16384
-      %53924 = OpUGreaterThan %bool %53923 %uint_0
-               OpSelectionMerge %62409 None
-               OpSwitch %uint_0 %62393
-      %62393 = OpLabel
-               OpSelectionMerge %62408 None
-               OpBranchConditional %53924 %62395 %62403
-      %62403 = OpLabel
-      %62405 = OpISub %uint %131270 %int_1
-      %62406 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %62405
-      %62407 = OpLoad %_arr_float_uint_2 %62406
-     %111174 = OpCompositeExtract %float %62407 0
-     %111175 = OpCompositeExtract %float %62407 1
-               OpBranch %62409
-      %62395 = OpLabel
-      %62397 = OpIAdd %uint %131271 %int_1
-      %62398 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131271
-      %62399 = OpLoad %float %62398
-               OpBranch %62409
-      %62408 = OpLabel
-               OpUnreachable
-      %62409 = OpLabel
-     %131276 = OpPhi %uint %62397 %62395 %131271 %62403
-     %131275 = OpPhi %uint %131270 %62395 %62405 %62403
-     %131273 = OpPhi %float %62399 %62395 %111174 %62403
-     %131272 = OpPhi %float %62399 %62395 %111175 %62403
-      %53928 = OpLoad %uint %47980
-      %53929 = OpBitwiseAnd %uint %53928 %uint_8192
-      %53930 = OpUGreaterThan %bool %53929 %uint_0
-               OpSelectionMerge %62432 None
-               OpSwitch %uint_0 %62416
-      %62416 = OpLabel
-               OpSelectionMerge %62431 None
-               OpBranchConditional %53930 %62418 %62426
-      %62426 = OpLabel
-      %62428 = OpISub %uint %131275 %int_1
-      %62429 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %62428
-      %62430 = OpLoad %_arr_float_uint_2 %62429
-     %111165 = OpCompositeExtract %float %62430 0
-     %111166 = OpCompositeExtract %float %62430 1
-               OpBranch %62432
-      %62418 = OpLabel
-      %62420 = OpIAdd %uint %131276 %int_1
-      %62421 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131276
-      %62422 = OpLoad %float %62421
-               OpBranch %62432
-      %62431 = OpLabel
-               OpUnreachable
-      %62432 = OpLabel
-     %139064 = OpPhi %uint %62420 %62418 %131276 %62426
-     %131283 = OpPhi %uint %131275 %62418 %62428 %62426
-     %131278 = OpPhi %float %62422 %62418 %111165 %62426
-     %131277 = OpPhi %float %62422 %62418 %111166 %62426
-      %53938 = OpExtInst %float %1 FClamp %131268 %131273 %131278
-      %53946 = OpExtInst %float %1 FClamp %131267 %131272 %131277
-     %114713 = OpCompositeConstruct %_arr_float_uint_2 %53938 %53946
-      %62436 = OpIAdd %uint %131283 %int_1
-      %62438 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131283
-               OpStore %62438 %114713
-               OpBranch %56398
-      %53831 = OpLabel
-      %53834 = OpLoad %uint %47980
-      %53835 = OpBitwiseAnd %uint %53834 %uint_32768
-      %53836 = OpUGreaterThan %bool %53835 %uint_0
-               OpSelectionMerge %62312 None
-               OpSwitch %uint_0 %62296
-      %62296 = OpLabel
-               OpSelectionMerge %62311 None
-               OpBranchConditional %53836 %62298 %62306
-      %62306 = OpLabel
-      %62308 = OpISub %uint %129523 %int_1
-      %62309 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62308
-      %62310 = OpLoad %_arr_v4float_uint_2 %62309
-     %111210 = OpCompositeExtract %v4float %62310 0
-     %111211 = OpCompositeExtract %v4float %62310 1
-               OpBranch %62312
-      %62298 = OpLabel
-      %62300 = OpIAdd %uint %129549 %int_1
-      %62301 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %62302 = OpLoad %v4float %62301
-               OpBranch %62312
-      %62311 = OpLabel
-               OpUnreachable
-      %62312 = OpLabel
-     %131288 = OpPhi %uint %62300 %62298 %129549 %62306
-     %131287 = OpPhi %uint %129523 %62298 %62308 %62306
-     %131285 = OpPhi %v4float %62302 %62298 %111210 %62306
-     %131284 = OpPhi %v4float %62302 %62298 %111211 %62306
-      %53840 = OpLoad %uint %47980
-      %53841 = OpBitwiseAnd %uint %53840 %uint_16384
-      %53842 = OpUGreaterThan %bool %53841 %uint_0
-               OpSelectionMerge %62335 None
-               OpSwitch %uint_0 %62319
-      %62319 = OpLabel
-               OpSelectionMerge %62334 None
-               OpBranchConditional %53842 %62321 %62329
-      %62329 = OpLabel
-      %62331 = OpISub %uint %131287 %int_1
-      %62332 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62331
-      %62333 = OpLoad %_arr_v4float_uint_2 %62332
-     %111201 = OpCompositeExtract %v4float %62333 0
-     %111202 = OpCompositeExtract %v4float %62333 1
-               OpBranch %62335
-      %62321 = OpLabel
-      %62323 = OpIAdd %uint %131288 %int_1
-      %62324 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %131288
-      %62325 = OpLoad %v4float %62324
-               OpBranch %62335
-      %62334 = OpLabel
-               OpUnreachable
-      %62335 = OpLabel
-     %131293 = OpPhi %uint %62323 %62321 %131288 %62329
-     %131292 = OpPhi %uint %131287 %62321 %62331 %62329
-     %131290 = OpPhi %v4float %62325 %62321 %111201 %62329
-     %131289 = OpPhi %v4float %62325 %62321 %111202 %62329
-      %53846 = OpLoad %uint %47980
-      %53847 = OpBitwiseAnd %uint %53846 %uint_8192
-      %53848 = OpUGreaterThan %bool %53847 %uint_0
-               OpSelectionMerge %62358 None
-               OpSwitch %uint_0 %62342
-      %62342 = OpLabel
-               OpSelectionMerge %62357 None
-               OpBranchConditional %53848 %62344 %62352
-      %62352 = OpLabel
-      %62354 = OpISub %uint %131292 %int_1
-      %62355 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62354
-      %62356 = OpLoad %_arr_v4float_uint_2 %62355
-     %111192 = OpCompositeExtract %v4float %62356 0
-     %111193 = OpCompositeExtract %v4float %62356 1
-               OpBranch %62358
-      %62344 = OpLabel
-      %62346 = OpIAdd %uint %131293 %int_1
-      %62347 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %131293
-      %62348 = OpLoad %v4float %62347
-               OpBranch %62358
-      %62357 = OpLabel
-               OpUnreachable
-      %62358 = OpLabel
-     %207544 = OpPhi %uint %62346 %62344 %131293 %62352
-     %131302 = OpPhi %uint %131292 %62344 %62354 %62352
-     %131295 = OpPhi %v4float %62348 %62344 %111192 %62352
-     %131294 = OpPhi %v4float %62348 %62344 %111193 %62352
-      %53854 = OpFMul %v4float %131285 %131290
-      %53860 = OpFMul %v4float %131285 %131289
-      %53866 = OpFMul %v4float %131284 %131290
-      %53872 = OpFMul %v4float %131284 %131289
-      %53882 = OpExtInst %v4float %1 FMin %53866 %53872
-      %53883 = OpExtInst %v4float %1 FMin %53860 %53882
-      %53884 = OpExtInst %v4float %1 FMin %53854 %53883
-      %53894 = OpExtInst %v4float %1 FMax %53866 %53872
-      %53895 = OpExtInst %v4float %1 FMax %53860 %53894
-      %53896 = OpExtInst %v4float %1 FMax %53854 %53895
-      %53903 = OpFAdd %v4float %53884 %131295
-      %53909 = OpFAdd %v4float %53896 %131294
-     %114696 = OpCompositeConstruct %_arr_v4float_uint_2 %53903 %53909
-      %62362 = OpIAdd %uint %131302 %int_1
-      %62364 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131302
-               OpStore %62364 %114696
-               OpBranch %56398
-      %53804 = OpLabel
-      %53807 = OpLoad %uint %47980
-      %53808 = OpBitwiseAnd %uint %53807 %uint_32768
-      %53809 = OpUGreaterThan %bool %53808 %uint_0
-               OpSelectionMerge %62261 None
-               OpSwitch %uint_0 %62245
-      %62245 = OpLabel
-               OpSelectionMerge %62260 None
-               OpBranchConditional %53809 %62247 %62255
-      %62255 = OpLabel
-      %62257 = OpISub %uint %129523 %int_1
-      %62258 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62257
-      %62259 = OpLoad %_arr_v4float_uint_2 %62258
-     %111228 = OpCompositeExtract %v4float %62259 0
-     %111229 = OpCompositeExtract %v4float %62259 1
-               OpBranch %62261
-      %62247 = OpLabel
-      %62249 = OpIAdd %uint %129549 %int_1
-      %62250 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %62251 = OpLoad %v4float %62250
-               OpBranch %62261
-      %62260 = OpLabel
-               OpUnreachable
-      %62261 = OpLabel
-     %131307 = OpPhi %uint %62249 %62247 %129549 %62255
-     %131306 = OpPhi %uint %129523 %62247 %62257 %62255
-     %131304 = OpPhi %v4float %62251 %62247 %111228 %62255
-     %131303 = OpPhi %v4float %62251 %62247 %111229 %62255
-      %53813 = OpLoad %uint %47980
-      %53814 = OpBitwiseAnd %uint %53813 %uint_16384
-      %53815 = OpUGreaterThan %bool %53814 %uint_0
-               OpSelectionMerge %62284 None
-               OpSwitch %uint_0 %62268
-      %62268 = OpLabel
-               OpSelectionMerge %62283 None
-               OpBranchConditional %53815 %62270 %62278
-      %62278 = OpLabel
-      %62280 = OpISub %uint %131306 %int_1
-      %62281 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62280
-      %62282 = OpLoad %_arr_v4float_uint_2 %62281
-     %111219 = OpCompositeExtract %v4float %62282 0
-     %111220 = OpCompositeExtract %v4float %62282 1
-               OpBranch %62284
-      %62270 = OpLabel
-      %62272 = OpIAdd %uint %131307 %int_1
-      %62273 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %131307
-      %62274 = OpLoad %v4float %62273
-               OpBranch %62284
-      %62283 = OpLabel
-               OpUnreachable
-      %62284 = OpLabel
-     %207543 = OpPhi %uint %62272 %62270 %131307 %62278
-     %131312 = OpPhi %uint %131306 %62270 %62280 %62278
-     %131309 = OpPhi %v4float %62274 %62270 %111219 %62278
-     %131308 = OpPhi %v4float %62274 %62270 %111220 %62278
-      %53821 = OpExtInst %v4float %1 FMax %131304 %131309
-      %53827 = OpExtInst %v4float %1 FMax %131303 %131308
-     %114685 = OpCompositeConstruct %_arr_v4float_uint_2 %53821 %53827
-      %62288 = OpIAdd %uint %131312 %int_1
-      %62290 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131312
-               OpStore %62290 %114685
-               OpBranch %56398
-      %53777 = OpLabel
-      %53780 = OpLoad %uint %47980
-      %53781 = OpBitwiseAnd %uint %53780 %uint_32768
-      %53782 = OpUGreaterThan %bool %53781 %uint_0
-               OpSelectionMerge %62210 None
-               OpSwitch %uint_0 %62194
-      %62194 = OpLabel
-               OpSelectionMerge %62209 None
-               OpBranchConditional %53782 %62196 %62204
-      %62204 = OpLabel
-      %62206 = OpISub %uint %129523 %int_1
-      %62207 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62206
-      %62208 = OpLoad %_arr_v4float_uint_2 %62207
-     %111246 = OpCompositeExtract %v4float %62208 0
-     %111247 = OpCompositeExtract %v4float %62208 1
-               OpBranch %62210
-      %62196 = OpLabel
-      %62198 = OpIAdd %uint %129549 %int_1
-      %62199 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %62200 = OpLoad %v4float %62199
-               OpBranch %62210
-      %62209 = OpLabel
-               OpUnreachable
-      %62210 = OpLabel
-     %131317 = OpPhi %uint %62198 %62196 %129549 %62204
-     %131316 = OpPhi %uint %129523 %62196 %62206 %62204
-     %131314 = OpPhi %v4float %62200 %62196 %111246 %62204
-     %131313 = OpPhi %v4float %62200 %62196 %111247 %62204
-      %53786 = OpLoad %uint %47980
-      %53787 = OpBitwiseAnd %uint %53786 %uint_16384
-      %53788 = OpUGreaterThan %bool %53787 %uint_0
-               OpSelectionMerge %62233 None
-               OpSwitch %uint_0 %62217
-      %62217 = OpLabel
-               OpSelectionMerge %62232 None
-               OpBranchConditional %53788 %62219 %62227
-      %62227 = OpLabel
-      %62229 = OpISub %uint %131316 %int_1
-      %62230 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62229
-      %62231 = OpLoad %_arr_v4float_uint_2 %62230
-     %111237 = OpCompositeExtract %v4float %62231 0
-     %111238 = OpCompositeExtract %v4float %62231 1
-               OpBranch %62233
-      %62219 = OpLabel
-      %62221 = OpIAdd %uint %131317 %int_1
-      %62222 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %131317
-      %62223 = OpLoad %v4float %62222
-               OpBranch %62233
-      %62232 = OpLabel
-               OpUnreachable
-      %62233 = OpLabel
-     %207542 = OpPhi %uint %62221 %62219 %131317 %62227
-     %131322 = OpPhi %uint %131316 %62219 %62229 %62227
-     %131319 = OpPhi %v4float %62223 %62219 %111237 %62227
-     %131318 = OpPhi %v4float %62223 %62219 %111238 %62227
-      %53794 = OpExtInst %v4float %1 FMin %131314 %131319
-      %53800 = OpExtInst %v4float %1 FMin %131313 %131318
-     %114674 = OpCompositeConstruct %_arr_v4float_uint_2 %53794 %53800
-      %62237 = OpIAdd %uint %131322 %int_1
-      %62239 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131322
-               OpStore %62239 %114674
-               OpBranch %56398
-      %53748 = OpLabel
-      %53751 = OpLoad %uint %47980
-      %53752 = OpBitwiseAnd %uint %53751 %uint_32768
-      %53753 = OpUGreaterThan %bool %53752 %uint_0
-               OpSelectionMerge %62182 None
-               OpSwitch %uint_0 %62166
-      %62166 = OpLabel
-               OpSelectionMerge %62181 None
-               OpBranchConditional %53753 %62168 %62176
-      %62176 = OpLabel
-      %62178 = OpISub %uint %129523 %int_1
-      %62179 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62178
-      %62180 = OpLoad %_arr_v4float_uint_2 %62179
-     %111255 = OpCompositeExtract %v4float %62180 0
-     %111256 = OpCompositeExtract %v4float %62180 1
-               OpBranch %62182
-      %62168 = OpLabel
-      %62170 = OpIAdd %uint %129549 %int_1
-      %62171 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %62172 = OpLoad %v4float %62171
-               OpBranch %62182
-      %62181 = OpLabel
-               OpUnreachable
-      %62182 = OpLabel
-     %207541 = OpPhi %uint %62170 %62168 %129549 %62176
-     %131325 = OpPhi %uint %129523 %62168 %62178 %62176
-     %131324 = OpPhi %v4float %62172 %62168 %111255 %62176
-     %131323 = OpPhi %v4float %62172 %62168 %111256 %62176
-      %53757 = OpExtInst %v4float %1 Trunc %131324
-      %53761 = OpExtInst %v4float %1 Trunc %131323
-      %53767 = OpExtInst %v4float %1 FMin %53757 %53761
-      %53773 = OpExtInst %v4float %1 FMax %53757 %53761
-     %114665 = OpCompositeConstruct %_arr_v4float_uint_2 %53767 %53773
-      %62186 = OpIAdd %uint %131325 %int_1
-      %62188 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131325
-               OpStore %62188 %114665
-               OpBranch %56398
-      %53719 = OpLabel
-      %53722 = OpLoad %uint %47980
-      %53723 = OpBitwiseAnd %uint %53722 %uint_32768
-      %53724 = OpUGreaterThan %bool %53723 %uint_0
-               OpSelectionMerge %62154 None
-               OpSwitch %uint_0 %62138
-      %62138 = OpLabel
-               OpSelectionMerge %62153 None
-               OpBranchConditional %53724 %62140 %62148
-      %62148 = OpLabel
-      %62150 = OpISub %uint %129523 %int_1
-      %62151 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62150
-      %62152 = OpLoad %_arr_v4float_uint_2 %62151
-     %111264 = OpCompositeExtract %v4float %62152 0
-     %111265 = OpCompositeExtract %v4float %62152 1
-               OpBranch %62154
-      %62140 = OpLabel
-      %62142 = OpIAdd %uint %129549 %int_1
-      %62143 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %62144 = OpLoad %v4float %62143
-               OpBranch %62154
-      %62153 = OpLabel
-               OpUnreachable
-      %62154 = OpLabel
-     %207540 = OpPhi %uint %62142 %62140 %129549 %62148
-     %131328 = OpPhi %uint %129523 %62140 %62150 %62148
-     %131327 = OpPhi %v4float %62144 %62140 %111264 %62148
-     %131326 = OpPhi %v4float %62144 %62140 %111265 %62148
-      %53728 = OpExtInst %v4float %1 Round %131327
-      %53732 = OpExtInst %v4float %1 Round %131326
-      %53738 = OpExtInst %v4float %1 FMin %53728 %53732
-      %53744 = OpExtInst %v4float %1 FMax %53728 %53732
-     %114656 = OpCompositeConstruct %_arr_v4float_uint_2 %53738 %53744
-      %62158 = OpIAdd %uint %131328 %int_1
-      %62160 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131328
-               OpStore %62160 %114656
-               OpBranch %56398
-      %53690 = OpLabel
-      %53693 = OpLoad %uint %47980
-      %53694 = OpBitwiseAnd %uint %53693 %uint_32768
-      %53695 = OpUGreaterThan %bool %53694 %uint_0
-               OpSelectionMerge %62126 None
-               OpSwitch %uint_0 %62110
-      %62110 = OpLabel
-               OpSelectionMerge %62125 None
-               OpBranchConditional %53695 %62112 %62120
-      %62120 = OpLabel
-      %62122 = OpISub %uint %129523 %int_1
-      %62123 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62122
-      %62124 = OpLoad %_arr_v4float_uint_2 %62123
-     %111273 = OpCompositeExtract %v4float %62124 0
-     %111274 = OpCompositeExtract %v4float %62124 1
-               OpBranch %62126
-      %62112 = OpLabel
-      %62114 = OpIAdd %uint %129549 %int_1
-      %62115 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %62116 = OpLoad %v4float %62115
-               OpBranch %62126
-      %62125 = OpLabel
-               OpUnreachable
-      %62126 = OpLabel
-     %207539 = OpPhi %uint %62114 %62112 %129549 %62120
-     %131331 = OpPhi %uint %129523 %62112 %62122 %62120
-     %131330 = OpPhi %v4float %62116 %62112 %111273 %62120
-     %131329 = OpPhi %v4float %62116 %62112 %111274 %62120
-      %53699 = OpExtInst %v4float %1 Tanh %131330
-      %53703 = OpExtInst %v4float %1 Tanh %131329
-      %53709 = OpExtInst %v4float %1 FMin %53699 %53703
-      %53715 = OpExtInst %v4float %1 FMax %53699 %53703
-     %114647 = OpCompositeConstruct %_arr_v4float_uint_2 %53709 %53715
-      %62130 = OpIAdd %uint %131331 %int_1
-      %62132 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131331
-               OpStore %62132 %114647
-               OpBranch %56398
-      %53661 = OpLabel
-      %53664 = OpLoad %uint %47980
-      %53665 = OpBitwiseAnd %uint %53664 %uint_32768
-      %53666 = OpUGreaterThan %bool %53665 %uint_0
-               OpSelectionMerge %62098 None
-               OpSwitch %uint_0 %62082
-      %62082 = OpLabel
-               OpSelectionMerge %62097 None
-               OpBranchConditional %53666 %62084 %62092
-      %62092 = OpLabel
-      %62094 = OpISub %uint %129523 %int_1
-      %62095 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62094
-      %62096 = OpLoad %_arr_v4float_uint_2 %62095
-     %111282 = OpCompositeExtract %v4float %62096 0
-     %111283 = OpCompositeExtract %v4float %62096 1
-               OpBranch %62098
-      %62084 = OpLabel
-      %62086 = OpIAdd %uint %129549 %int_1
-      %62087 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %62088 = OpLoad %v4float %62087
-               OpBranch %62098
-      %62097 = OpLabel
-               OpUnreachable
-      %62098 = OpLabel
-     %207538 = OpPhi %uint %62086 %62084 %129549 %62092
-     %131334 = OpPhi %uint %129523 %62084 %62094 %62092
-     %131333 = OpPhi %v4float %62088 %62084 %111282 %62092
-     %131332 = OpPhi %v4float %62088 %62084 %111283 %62092
-      %53670 = OpExtInst %v4float %1 Sinh %131333
-      %53674 = OpExtInst %v4float %1 Sinh %131332
-      %53680 = OpExtInst %v4float %1 FMin %53670 %53674
-      %53686 = OpExtInst %v4float %1 FMax %53670 %53674
-     %114638 = OpCompositeConstruct %_arr_v4float_uint_2 %53680 %53686
-      %62102 = OpIAdd %uint %131334 %int_1
-      %62104 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131334
-               OpStore %62104 %114638
-               OpBranch %56398
-      %53632 = OpLabel
-      %53635 = OpLoad %uint %47980
-      %53636 = OpBitwiseAnd %uint %53635 %uint_32768
-      %53637 = OpUGreaterThan %bool %53636 %uint_0
-               OpSelectionMerge %62070 None
-               OpSwitch %uint_0 %62054
-      %62054 = OpLabel
-               OpSelectionMerge %62069 None
-               OpBranchConditional %53637 %62056 %62064
-      %62064 = OpLabel
-      %62066 = OpISub %uint %129523 %int_1
-      %62067 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62066
-      %62068 = OpLoad %_arr_v4float_uint_2 %62067
-     %111291 = OpCompositeExtract %v4float %62068 0
-     %111292 = OpCompositeExtract %v4float %62068 1
-               OpBranch %62070
-      %62056 = OpLabel
-      %62058 = OpIAdd %uint %129549 %int_1
-      %62059 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %62060 = OpLoad %v4float %62059
-               OpBranch %62070
-      %62069 = OpLabel
-               OpUnreachable
-      %62070 = OpLabel
-     %207537 = OpPhi %uint %62058 %62056 %129549 %62064
-     %131337 = OpPhi %uint %129523 %62056 %62066 %62064
-     %131336 = OpPhi %v4float %62060 %62056 %111291 %62064
-     %131335 = OpPhi %v4float %62060 %62056 %111292 %62064
-      %53641 = OpExtInst %v4float %1 Cosh %131336
-      %53645 = OpExtInst %v4float %1 Cosh %131335
-      %53651 = OpExtInst %v4float %1 FMin %53641 %53645
-      %53657 = OpExtInst %v4float %1 FMax %53641 %53645
-     %114629 = OpCompositeConstruct %_arr_v4float_uint_2 %53651 %53657
-      %62074 = OpIAdd %uint %131337 %int_1
-      %62076 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131337
-               OpStore %62076 %114629
-               OpBranch %56398
-      %53603 = OpLabel
-      %53606 = OpLoad %uint %47980
-      %53607 = OpBitwiseAnd %uint %53606 %uint_32768
-      %53608 = OpUGreaterThan %bool %53607 %uint_0
-               OpSelectionMerge %62042 None
-               OpSwitch %uint_0 %62026
-      %62026 = OpLabel
-               OpSelectionMerge %62041 None
-               OpBranchConditional %53608 %62028 %62036
-      %62036 = OpLabel
-      %62038 = OpISub %uint %129523 %int_1
-      %62039 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62038
-      %62040 = OpLoad %_arr_v4float_uint_2 %62039
-     %111300 = OpCompositeExtract %v4float %62040 0
-     %111301 = OpCompositeExtract %v4float %62040 1
-               OpBranch %62042
-      %62028 = OpLabel
-      %62030 = OpIAdd %uint %129549 %int_1
-      %62031 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %62032 = OpLoad %v4float %62031
-               OpBranch %62042
-      %62041 = OpLabel
-               OpUnreachable
-      %62042 = OpLabel
-     %207536 = OpPhi %uint %62030 %62028 %129549 %62036
-     %131340 = OpPhi %uint %129523 %62028 %62038 %62036
-     %131339 = OpPhi %v4float %62032 %62028 %111300 %62036
-     %131338 = OpPhi %v4float %62032 %62028 %111301 %62036
-      %53612 = OpExtInst %v4float %1 Atanh %131339
-      %53616 = OpExtInst %v4float %1 Atanh %131338
-      %53622 = OpExtInst %v4float %1 FMin %53612 %53616
-      %53628 = OpExtInst %v4float %1 FMax %53612 %53616
-     %114620 = OpCompositeConstruct %_arr_v4float_uint_2 %53622 %53628
-      %62046 = OpIAdd %uint %131340 %int_1
-      %62048 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131340
-               OpStore %62048 %114620
-               OpBranch %56398
-      %53574 = OpLabel
-      %53577 = OpLoad %uint %47980
-      %53578 = OpBitwiseAnd %uint %53577 %uint_32768
-      %53579 = OpUGreaterThan %bool %53578 %uint_0
-               OpSelectionMerge %62014 None
-               OpSwitch %uint_0 %61998
-      %61998 = OpLabel
-               OpSelectionMerge %62013 None
-               OpBranchConditional %53579 %62000 %62008
-      %62008 = OpLabel
-      %62010 = OpISub %uint %129523 %int_1
-      %62011 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %62010
-      %62012 = OpLoad %_arr_v4float_uint_2 %62011
-     %111309 = OpCompositeExtract %v4float %62012 0
-     %111310 = OpCompositeExtract %v4float %62012 1
-               OpBranch %62014
-      %62000 = OpLabel
-      %62002 = OpIAdd %uint %129549 %int_1
-      %62003 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %62004 = OpLoad %v4float %62003
-               OpBranch %62014
-      %62013 = OpLabel
-               OpUnreachable
-      %62014 = OpLabel
-     %207535 = OpPhi %uint %62002 %62000 %129549 %62008
-     %131343 = OpPhi %uint %129523 %62000 %62010 %62008
-     %131342 = OpPhi %v4float %62004 %62000 %111309 %62008
-     %131341 = OpPhi %v4float %62004 %62000 %111310 %62008
-      %53583 = OpExtInst %v4float %1 Asinh %131342
-      %53587 = OpExtInst %v4float %1 Asinh %131341
-      %53593 = OpExtInst %v4float %1 FMin %53583 %53587
-      %53599 = OpExtInst %v4float %1 FMax %53583 %53587
-     %114611 = OpCompositeConstruct %_arr_v4float_uint_2 %53593 %53599
-      %62018 = OpIAdd %uint %131343 %int_1
-      %62020 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131343
-               OpStore %62020 %114611
-               OpBranch %56398
-      %53545 = OpLabel
-      %53548 = OpLoad %uint %47980
-      %53549 = OpBitwiseAnd %uint %53548 %uint_32768
-      %53550 = OpUGreaterThan %bool %53549 %uint_0
-               OpSelectionMerge %61986 None
-               OpSwitch %uint_0 %61970
-      %61970 = OpLabel
-               OpSelectionMerge %61985 None
-               OpBranchConditional %53550 %61972 %61980
-      %61980 = OpLabel
-      %61982 = OpISub %uint %129523 %int_1
-      %61983 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61982
-      %61984 = OpLoad %_arr_v4float_uint_2 %61983
-     %111318 = OpCompositeExtract %v4float %61984 0
-     %111319 = OpCompositeExtract %v4float %61984 1
-               OpBranch %61986
-      %61972 = OpLabel
-      %61974 = OpIAdd %uint %129549 %int_1
-      %61975 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61976 = OpLoad %v4float %61975
-               OpBranch %61986
-      %61985 = OpLabel
-               OpUnreachable
-      %61986 = OpLabel
-     %207534 = OpPhi %uint %61974 %61972 %129549 %61980
-     %131346 = OpPhi %uint %129523 %61972 %61982 %61980
-     %131345 = OpPhi %v4float %61976 %61972 %111318 %61980
-     %131344 = OpPhi %v4float %61976 %61972 %111319 %61980
-      %53554 = OpExtInst %v4float %1 Acosh %131345
-      %53558 = OpExtInst %v4float %1 Acosh %131344
-      %53564 = OpExtInst %v4float %1 FMin %53554 %53558
-      %53570 = OpExtInst %v4float %1 FMax %53554 %53558
-     %114602 = OpCompositeConstruct %_arr_v4float_uint_2 %53564 %53570
-      %61990 = OpIAdd %uint %131346 %int_1
-      %61992 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131346
-               OpStore %61992 %114602
-               OpBranch %56398
-      %53516 = OpLabel
-      %53519 = OpLoad %uint %47980
-      %53520 = OpBitwiseAnd %uint %53519 %uint_32768
-      %53521 = OpUGreaterThan %bool %53520 %uint_0
-               OpSelectionMerge %61958 None
-               OpSwitch %uint_0 %61942
-      %61942 = OpLabel
-               OpSelectionMerge %61957 None
-               OpBranchConditional %53521 %61944 %61952
-      %61952 = OpLabel
-      %61954 = OpISub %uint %129523 %int_1
-      %61955 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61954
-      %61956 = OpLoad %_arr_v4float_uint_2 %61955
-     %111327 = OpCompositeExtract %v4float %61956 0
-     %111328 = OpCompositeExtract %v4float %61956 1
-               OpBranch %61958
-      %61944 = OpLabel
-      %61946 = OpIAdd %uint %129549 %int_1
-      %61947 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61948 = OpLoad %v4float %61947
-               OpBranch %61958
-      %61957 = OpLabel
-               OpUnreachable
-      %61958 = OpLabel
-     %207533 = OpPhi %uint %61946 %61944 %129549 %61952
-     %131349 = OpPhi %uint %129523 %61944 %61954 %61952
-     %131348 = OpPhi %v4float %61948 %61944 %111327 %61952
-     %131347 = OpPhi %v4float %61948 %61944 %111328 %61952
-      %53525 = OpExtInst %v4float %1 Atan %131348
-      %53529 = OpExtInst %v4float %1 Atan %131347
-      %53535 = OpExtInst %v4float %1 FMin %53525 %53529
-      %53541 = OpExtInst %v4float %1 FMax %53525 %53529
-     %114593 = OpCompositeConstruct %_arr_v4float_uint_2 %53535 %53541
-      %61962 = OpIAdd %uint %131349 %int_1
-      %61964 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131349
-               OpStore %61964 %114593
-               OpBranch %56398
-      %53487 = OpLabel
-      %53490 = OpLoad %uint %47980
-      %53491 = OpBitwiseAnd %uint %53490 %uint_32768
-      %53492 = OpUGreaterThan %bool %53491 %uint_0
-               OpSelectionMerge %61930 None
-               OpSwitch %uint_0 %61914
-      %61914 = OpLabel
-               OpSelectionMerge %61929 None
-               OpBranchConditional %53492 %61916 %61924
-      %61924 = OpLabel
-      %61926 = OpISub %uint %129523 %int_1
-      %61927 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61926
-      %61928 = OpLoad %_arr_v4float_uint_2 %61927
-     %111336 = OpCompositeExtract %v4float %61928 0
-     %111337 = OpCompositeExtract %v4float %61928 1
-               OpBranch %61930
-      %61916 = OpLabel
-      %61918 = OpIAdd %uint %129549 %int_1
-      %61919 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61920 = OpLoad %v4float %61919
-               OpBranch %61930
-      %61929 = OpLabel
-               OpUnreachable
-      %61930 = OpLabel
-     %207532 = OpPhi %uint %61918 %61916 %129549 %61924
-     %131352 = OpPhi %uint %129523 %61916 %61926 %61924
-     %131351 = OpPhi %v4float %61920 %61916 %111336 %61924
-     %131350 = OpPhi %v4float %61920 %61916 %111337 %61924
-      %53496 = OpExtInst %v4float %1 Acos %131351
-      %53500 = OpExtInst %v4float %1 Acos %131350
-      %53506 = OpExtInst %v4float %1 FMin %53496 %53500
-      %53512 = OpExtInst %v4float %1 FMax %53496 %53500
-     %114584 = OpCompositeConstruct %_arr_v4float_uint_2 %53506 %53512
-      %61934 = OpIAdd %uint %131352 %int_1
-      %61936 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131352
-               OpStore %61936 %114584
-               OpBranch %56398
-      %53458 = OpLabel
-      %53461 = OpLoad %uint %47980
-      %53462 = OpBitwiseAnd %uint %53461 %uint_32768
-      %53463 = OpUGreaterThan %bool %53462 %uint_0
-               OpSelectionMerge %61902 None
-               OpSwitch %uint_0 %61886
-      %61886 = OpLabel
-               OpSelectionMerge %61901 None
-               OpBranchConditional %53463 %61888 %61896
-      %61896 = OpLabel
-      %61898 = OpISub %uint %129523 %int_1
-      %61899 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61898
-      %61900 = OpLoad %_arr_v4float_uint_2 %61899
-     %111345 = OpCompositeExtract %v4float %61900 0
-     %111346 = OpCompositeExtract %v4float %61900 1
-               OpBranch %61902
-      %61888 = OpLabel
-      %61890 = OpIAdd %uint %129549 %int_1
-      %61891 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61892 = OpLoad %v4float %61891
-               OpBranch %61902
-      %61901 = OpLabel
-               OpUnreachable
-      %61902 = OpLabel
-     %207531 = OpPhi %uint %61890 %61888 %129549 %61896
-     %131355 = OpPhi %uint %129523 %61888 %61898 %61896
-     %131354 = OpPhi %v4float %61892 %61888 %111345 %61896
-     %131353 = OpPhi %v4float %61892 %61888 %111346 %61896
-      %53467 = OpExtInst %v4float %1 Asin %131354
-      %53471 = OpExtInst %v4float %1 Asin %131353
-      %53477 = OpExtInst %v4float %1 FMin %53467 %53471
-      %53483 = OpExtInst %v4float %1 FMax %53467 %53471
-     %114575 = OpCompositeConstruct %_arr_v4float_uint_2 %53477 %53483
-      %61906 = OpIAdd %uint %131355 %int_1
-      %61908 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131355
-               OpStore %61908 %114575
-               OpBranch %56398
-      %53429 = OpLabel
-      %53432 = OpLoad %uint %47980
-      %53433 = OpBitwiseAnd %uint %53432 %uint_32768
-      %53434 = OpUGreaterThan %bool %53433 %uint_0
-               OpSelectionMerge %61874 None
-               OpSwitch %uint_0 %61858
-      %61858 = OpLabel
-               OpSelectionMerge %61873 None
-               OpBranchConditional %53434 %61860 %61868
-      %61868 = OpLabel
-      %61870 = OpISub %uint %129523 %int_1
-      %61871 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61870
-      %61872 = OpLoad %_arr_v4float_uint_2 %61871
-     %111354 = OpCompositeExtract %v4float %61872 0
-     %111355 = OpCompositeExtract %v4float %61872 1
-               OpBranch %61874
-      %61860 = OpLabel
-      %61862 = OpIAdd %uint %129549 %int_1
-      %61863 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61864 = OpLoad %v4float %61863
-               OpBranch %61874
-      %61873 = OpLabel
-               OpUnreachable
-      %61874 = OpLabel
-     %207530 = OpPhi %uint %61862 %61860 %129549 %61868
-     %131358 = OpPhi %uint %129523 %61860 %61870 %61868
-     %131357 = OpPhi %v4float %61864 %61860 %111354 %61868
-     %131356 = OpPhi %v4float %61864 %61860 %111355 %61868
-      %53438 = OpExtInst %v4float %1 Tan %131357
-      %53442 = OpExtInst %v4float %1 Tan %131356
-      %53448 = OpExtInst %v4float %1 FMin %53438 %53442
-      %53454 = OpExtInst %v4float %1 FMax %53438 %53442
-     %114566 = OpCompositeConstruct %_arr_v4float_uint_2 %53448 %53454
-      %61878 = OpIAdd %uint %131358 %int_1
-      %61880 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131358
-               OpStore %61880 %114566
-               OpBranch %56398
-      %53400 = OpLabel
-      %53403 = OpLoad %uint %47980
-      %53404 = OpBitwiseAnd %uint %53403 %uint_32768
-      %53405 = OpUGreaterThan %bool %53404 %uint_0
-               OpSelectionMerge %61846 None
-               OpSwitch %uint_0 %61830
-      %61830 = OpLabel
-               OpSelectionMerge %61845 None
-               OpBranchConditional %53405 %61832 %61840
-      %61840 = OpLabel
-      %61842 = OpISub %uint %129523 %int_1
-      %61843 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61842
-      %61844 = OpLoad %_arr_v4float_uint_2 %61843
-     %111363 = OpCompositeExtract %v4float %61844 0
-     %111364 = OpCompositeExtract %v4float %61844 1
-               OpBranch %61846
-      %61832 = OpLabel
-      %61834 = OpIAdd %uint %129549 %int_1
-      %61835 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61836 = OpLoad %v4float %61835
-               OpBranch %61846
-      %61845 = OpLabel
-               OpUnreachable
-      %61846 = OpLabel
-     %207529 = OpPhi %uint %61834 %61832 %129549 %61840
-     %131361 = OpPhi %uint %129523 %61832 %61842 %61840
-     %131360 = OpPhi %v4float %61836 %61832 %111363 %61840
-     %131359 = OpPhi %v4float %61836 %61832 %111364 %61840
-      %53409 = OpExtInst %v4float %1 Cos %131360
-      %53413 = OpExtInst %v4float %1 Cos %131359
-      %53419 = OpExtInst %v4float %1 FMin %53409 %53413
-      %53425 = OpExtInst %v4float %1 FMax %53409 %53413
-     %114557 = OpCompositeConstruct %_arr_v4float_uint_2 %53419 %53425
-      %61850 = OpIAdd %uint %131361 %int_1
-      %61852 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131361
-               OpStore %61852 %114557
-               OpBranch %56398
-      %53371 = OpLabel
-      %53374 = OpLoad %uint %47980
-      %53375 = OpBitwiseAnd %uint %53374 %uint_32768
-      %53376 = OpUGreaterThan %bool %53375 %uint_0
-               OpSelectionMerge %61818 None
-               OpSwitch %uint_0 %61802
-      %61802 = OpLabel
-               OpSelectionMerge %61817 None
-               OpBranchConditional %53376 %61804 %61812
-      %61812 = OpLabel
-      %61814 = OpISub %uint %129523 %int_1
-      %61815 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61814
-      %61816 = OpLoad %_arr_v4float_uint_2 %61815
-     %111372 = OpCompositeExtract %v4float %61816 0
-     %111373 = OpCompositeExtract %v4float %61816 1
-               OpBranch %61818
-      %61804 = OpLabel
-      %61806 = OpIAdd %uint %129549 %int_1
-      %61807 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61808 = OpLoad %v4float %61807
-               OpBranch %61818
-      %61817 = OpLabel
-               OpUnreachable
-      %61818 = OpLabel
-     %207528 = OpPhi %uint %61806 %61804 %129549 %61812
-     %131364 = OpPhi %uint %129523 %61804 %61814 %61812
-     %131363 = OpPhi %v4float %61808 %61804 %111372 %61812
-     %131362 = OpPhi %v4float %61808 %61804 %111373 %61812
-      %53380 = OpExtInst %v4float %1 Sin %131363
-      %53384 = OpExtInst %v4float %1 Sin %131362
-      %53390 = OpExtInst %v4float %1 FMin %53380 %53384
-      %53396 = OpExtInst %v4float %1 FMax %53380 %53384
-     %114548 = OpCompositeConstruct %_arr_v4float_uint_2 %53390 %53396
-      %61822 = OpIAdd %uint %131364 %int_1
-      %61824 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131364
-               OpStore %61824 %114548
-               OpBranch %56398
-      %53342 = OpLabel
-      %53345 = OpLoad %uint %47980
-      %53346 = OpBitwiseAnd %uint %53345 %uint_32768
-      %53347 = OpUGreaterThan %bool %53346 %uint_0
-               OpSelectionMerge %61790 None
-               OpSwitch %uint_0 %61774
-      %61774 = OpLabel
-               OpSelectionMerge %61789 None
-               OpBranchConditional %53347 %61776 %61784
-      %61784 = OpLabel
-      %61786 = OpISub %uint %129523 %int_1
-      %61787 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61786
-      %61788 = OpLoad %_arr_v4float_uint_2 %61787
-     %111381 = OpCompositeExtract %v4float %61788 0
-     %111382 = OpCompositeExtract %v4float %61788 1
-               OpBranch %61790
-      %61776 = OpLabel
-      %61778 = OpIAdd %uint %129549 %int_1
-      %61779 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61780 = OpLoad %v4float %61779
-               OpBranch %61790
-      %61789 = OpLabel
-               OpUnreachable
-      %61790 = OpLabel
-     %207527 = OpPhi %uint %61778 %61776 %129549 %61784
-     %131367 = OpPhi %uint %129523 %61776 %61786 %61784
-     %131366 = OpPhi %v4float %61780 %61776 %111381 %61784
-     %131365 = OpPhi %v4float %61780 %61776 %111382 %61784
-      %53351 = OpExtInst %v4float %1 Log2 %131366
-      %53355 = OpExtInst %v4float %1 Log2 %131365
-      %53361 = OpExtInst %v4float %1 FMin %53351 %53355
-      %53367 = OpExtInst %v4float %1 FMax %53351 %53355
-     %114539 = OpCompositeConstruct %_arr_v4float_uint_2 %53361 %53367
-      %61794 = OpIAdd %uint %131367 %int_1
-      %61796 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131367
-               OpStore %61796 %114539
-               OpBranch %56398
-      %53313 = OpLabel
-      %53316 = OpLoad %uint %47980
-      %53317 = OpBitwiseAnd %uint %53316 %uint_32768
-      %53318 = OpUGreaterThan %bool %53317 %uint_0
-               OpSelectionMerge %61762 None
-               OpSwitch %uint_0 %61746
-      %61746 = OpLabel
-               OpSelectionMerge %61761 None
-               OpBranchConditional %53318 %61748 %61756
-      %61756 = OpLabel
-      %61758 = OpISub %uint %129523 %int_1
-      %61759 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61758
-      %61760 = OpLoad %_arr_v4float_uint_2 %61759
-     %111390 = OpCompositeExtract %v4float %61760 0
-     %111391 = OpCompositeExtract %v4float %61760 1
-               OpBranch %61762
-      %61748 = OpLabel
-      %61750 = OpIAdd %uint %129549 %int_1
-      %61751 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61752 = OpLoad %v4float %61751
-               OpBranch %61762
-      %61761 = OpLabel
-               OpUnreachable
-      %61762 = OpLabel
-     %207526 = OpPhi %uint %61750 %61748 %129549 %61756
-     %131370 = OpPhi %uint %129523 %61748 %61758 %61756
-     %131369 = OpPhi %v4float %61752 %61748 %111390 %61756
-     %131368 = OpPhi %v4float %61752 %61748 %111391 %61756
-      %53322 = OpExtInst %v4float %1 Log %131369
-      %53326 = OpExtInst %v4float %1 Log %131368
-      %53332 = OpExtInst %v4float %1 FMin %53322 %53326
-      %53338 = OpExtInst %v4float %1 FMax %53322 %53326
-     %114530 = OpCompositeConstruct %_arr_v4float_uint_2 %53332 %53338
-      %61766 = OpIAdd %uint %131370 %int_1
-      %61768 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131370
-               OpStore %61768 %114530
-               OpBranch %56398
-      %53284 = OpLabel
-      %53287 = OpLoad %uint %47980
-      %53288 = OpBitwiseAnd %uint %53287 %uint_32768
-      %53289 = OpUGreaterThan %bool %53288 %uint_0
-               OpSelectionMerge %61734 None
-               OpSwitch %uint_0 %61718
-      %61718 = OpLabel
-               OpSelectionMerge %61733 None
-               OpBranchConditional %53289 %61720 %61728
-      %61728 = OpLabel
-      %61730 = OpISub %uint %129523 %int_1
-      %61731 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61730
-      %61732 = OpLoad %_arr_v4float_uint_2 %61731
-     %111399 = OpCompositeExtract %v4float %61732 0
-     %111400 = OpCompositeExtract %v4float %61732 1
-               OpBranch %61734
-      %61720 = OpLabel
-      %61722 = OpIAdd %uint %129549 %int_1
-      %61723 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61724 = OpLoad %v4float %61723
-               OpBranch %61734
-      %61733 = OpLabel
-               OpUnreachable
-      %61734 = OpLabel
-     %207525 = OpPhi %uint %61722 %61720 %129549 %61728
-     %131373 = OpPhi %uint %129523 %61720 %61730 %61728
-     %131372 = OpPhi %v4float %61724 %61720 %111399 %61728
-     %131371 = OpPhi %v4float %61724 %61720 %111400 %61728
-      %53293 = OpExtInst %v4float %1 Exp2 %131372
-      %53297 = OpExtInst %v4float %1 Exp2 %131371
-      %53303 = OpExtInst %v4float %1 FMin %53293 %53297
-      %53309 = OpExtInst %v4float %1 FMax %53293 %53297
-     %114521 = OpCompositeConstruct %_arr_v4float_uint_2 %53303 %53309
-      %61738 = OpIAdd %uint %131373 %int_1
-      %61740 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131373
-               OpStore %61740 %114521
-               OpBranch %56398
-      %53255 = OpLabel
-      %53258 = OpLoad %uint %47980
-      %53259 = OpBitwiseAnd %uint %53258 %uint_32768
-      %53260 = OpUGreaterThan %bool %53259 %uint_0
-               OpSelectionMerge %61706 None
-               OpSwitch %uint_0 %61690
-      %61690 = OpLabel
-               OpSelectionMerge %61705 None
-               OpBranchConditional %53260 %61692 %61700
-      %61700 = OpLabel
-      %61702 = OpISub %uint %129523 %int_1
-      %61703 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61702
-      %61704 = OpLoad %_arr_v4float_uint_2 %61703
-     %111408 = OpCompositeExtract %v4float %61704 0
-     %111409 = OpCompositeExtract %v4float %61704 1
-               OpBranch %61706
-      %61692 = OpLabel
-      %61694 = OpIAdd %uint %129549 %int_1
-      %61695 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61696 = OpLoad %v4float %61695
-               OpBranch %61706
-      %61705 = OpLabel
-               OpUnreachable
-      %61706 = OpLabel
-     %207524 = OpPhi %uint %61694 %61692 %129549 %61700
-     %131376 = OpPhi %uint %129523 %61692 %61702 %61700
-     %131375 = OpPhi %v4float %61696 %61692 %111408 %61700
-     %131374 = OpPhi %v4float %61696 %61692 %111409 %61700
-      %53264 = OpExtInst %v4float %1 Exp %131375
-      %53268 = OpExtInst %v4float %1 Exp %131374
-      %53274 = OpExtInst %v4float %1 FMin %53264 %53268
-      %53280 = OpExtInst %v4float %1 FMax %53264 %53268
-     %114512 = OpCompositeConstruct %_arr_v4float_uint_2 %53274 %53280
-      %61710 = OpIAdd %uint %131376 %int_1
-      %61712 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131376
-               OpStore %61712 %114512
-               OpBranch %56398
-      %53226 = OpLabel
-      %53229 = OpLoad %uint %47980
-      %53230 = OpBitwiseAnd %uint %53229 %uint_32768
-      %53231 = OpUGreaterThan %bool %53230 %uint_0
-               OpSelectionMerge %61678 None
-               OpSwitch %uint_0 %61662
-      %61662 = OpLabel
-               OpSelectionMerge %61677 None
-               OpBranchConditional %53231 %61664 %61672
-      %61672 = OpLabel
-      %61674 = OpISub %uint %129523 %int_1
-      %61675 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61674
-      %61676 = OpLoad %_arr_v4float_uint_2 %61675
-     %111417 = OpCompositeExtract %v4float %61676 0
-     %111418 = OpCompositeExtract %v4float %61676 1
-               OpBranch %61678
-      %61664 = OpLabel
-      %61666 = OpIAdd %uint %129549 %int_1
-      %61667 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61668 = OpLoad %v4float %61667
-               OpBranch %61678
-      %61677 = OpLabel
-               OpUnreachable
-      %61678 = OpLabel
-     %207523 = OpPhi %uint %61666 %61664 %129549 %61672
-     %131379 = OpPhi %uint %129523 %61664 %61674 %61672
-     %131378 = OpPhi %v4float %61668 %61664 %111417 %61672
-     %131377 = OpPhi %v4float %61668 %61664 %111418 %61672
-      %53235 = OpExtInst %v4float %1 InverseSqrt %131378
-      %53239 = OpExtInst %v4float %1 InverseSqrt %131377
-      %53245 = OpExtInst %v4float %1 FMin %53235 %53239
-      %53251 = OpExtInst %v4float %1 FMax %53235 %53239
-     %114503 = OpCompositeConstruct %_arr_v4float_uint_2 %53245 %53251
-      %61682 = OpIAdd %uint %131379 %int_1
-      %61684 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131379
-               OpStore %61684 %114503
-               OpBranch %56398
-      %53197 = OpLabel
-      %53200 = OpLoad %uint %47980
-      %53201 = OpBitwiseAnd %uint %53200 %uint_32768
-      %53202 = OpUGreaterThan %bool %53201 %uint_0
-               OpSelectionMerge %61650 None
-               OpSwitch %uint_0 %61634
-      %61634 = OpLabel
-               OpSelectionMerge %61649 None
-               OpBranchConditional %53202 %61636 %61644
-      %61644 = OpLabel
-      %61646 = OpISub %uint %129523 %int_1
-      %61647 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61646
-      %61648 = OpLoad %_arr_v4float_uint_2 %61647
-     %111426 = OpCompositeExtract %v4float %61648 0
-     %111427 = OpCompositeExtract %v4float %61648 1
-               OpBranch %61650
-      %61636 = OpLabel
-      %61638 = OpIAdd %uint %129549 %int_1
-      %61639 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61640 = OpLoad %v4float %61639
-               OpBranch %61650
-      %61649 = OpLabel
-               OpUnreachable
-      %61650 = OpLabel
-     %207522 = OpPhi %uint %61638 %61636 %129549 %61644
-     %131382 = OpPhi %uint %129523 %61636 %61646 %61644
-     %131381 = OpPhi %v4float %61640 %61636 %111426 %61644
-     %131380 = OpPhi %v4float %61640 %61636 %111427 %61644
-      %53206 = OpExtInst %v4float %1 Sqrt %131381
-      %53210 = OpExtInst %v4float %1 Sqrt %131380
-      %53216 = OpExtInst %v4float %1 FMin %53206 %53210
-      %53222 = OpExtInst %v4float %1 FMax %53206 %53210
-     %114494 = OpCompositeConstruct %_arr_v4float_uint_2 %53216 %53222
-      %61654 = OpIAdd %uint %131382 %int_1
-      %61656 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131382
-               OpStore %61656 %114494
-               OpBranch %56398
-      %53168 = OpLabel
-      %53171 = OpLoad %uint %47980
-      %53172 = OpBitwiseAnd %uint %53171 %uint_32768
-      %53173 = OpUGreaterThan %bool %53172 %uint_0
-               OpSelectionMerge %61622 None
-               OpSwitch %uint_0 %61606
-      %61606 = OpLabel
-               OpSelectionMerge %61621 None
-               OpBranchConditional %53173 %61608 %61616
-      %61616 = OpLabel
-      %61618 = OpISub %uint %129523 %int_1
-      %61619 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61618
-      %61620 = OpLoad %_arr_v4float_uint_2 %61619
-     %111435 = OpCompositeExtract %v4float %61620 0
-     %111436 = OpCompositeExtract %v4float %61620 1
-               OpBranch %61622
-      %61608 = OpLabel
-      %61610 = OpIAdd %uint %129549 %int_1
-      %61611 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61612 = OpLoad %v4float %61611
-               OpBranch %61622
-      %61621 = OpLabel
-               OpUnreachable
-      %61622 = OpLabel
-     %207521 = OpPhi %uint %61610 %61608 %129549 %61616
-     %131385 = OpPhi %uint %129523 %61608 %61618 %61616
-     %131384 = OpPhi %v4float %61612 %61608 %111435 %61616
-     %131383 = OpPhi %v4float %61612 %61608 %111436 %61616
-      %53177 = OpExtInst %v4float %1 Fract %131384
-      %53181 = OpExtInst %v4float %1 Fract %131383
-      %53187 = OpExtInst %v4float %1 FMin %53177 %53181
-      %53193 = OpExtInst %v4float %1 FMax %53177 %53181
-     %114485 = OpCompositeConstruct %_arr_v4float_uint_2 %53187 %53193
-      %61626 = OpIAdd %uint %131385 %int_1
-      %61628 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131385
-               OpStore %61628 %114485
-               OpBranch %56398
-      %53139 = OpLabel
-      %53142 = OpLoad %uint %47980
-      %53143 = OpBitwiseAnd %uint %53142 %uint_32768
-      %53144 = OpUGreaterThan %bool %53143 %uint_0
-               OpSelectionMerge %61594 None
-               OpSwitch %uint_0 %61578
-      %61578 = OpLabel
-               OpSelectionMerge %61593 None
-               OpBranchConditional %53144 %61580 %61588
-      %61588 = OpLabel
-      %61590 = OpISub %uint %129523 %int_1
-      %61591 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61590
-      %61592 = OpLoad %_arr_v4float_uint_2 %61591
-     %111444 = OpCompositeExtract %v4float %61592 0
-     %111445 = OpCompositeExtract %v4float %61592 1
-               OpBranch %61594
-      %61580 = OpLabel
-      %61582 = OpIAdd %uint %129549 %int_1
-      %61583 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61584 = OpLoad %v4float %61583
-               OpBranch %61594
-      %61593 = OpLabel
-               OpUnreachable
-      %61594 = OpLabel
-     %207520 = OpPhi %uint %61582 %61580 %129549 %61588
-     %131388 = OpPhi %uint %129523 %61580 %61590 %61588
-     %131387 = OpPhi %v4float %61584 %61580 %111444 %61588
-     %131386 = OpPhi %v4float %61584 %61580 %111445 %61588
-      %53148 = OpExtInst %v4float %1 Ceil %131387
-      %53152 = OpExtInst %v4float %1 Ceil %131386
-      %53158 = OpExtInst %v4float %1 FMin %53148 %53152
-      %53164 = OpExtInst %v4float %1 FMax %53148 %53152
-     %114476 = OpCompositeConstruct %_arr_v4float_uint_2 %53158 %53164
-      %61598 = OpIAdd %uint %131388 %int_1
-      %61600 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131388
-               OpStore %61600 %114476
-               OpBranch %56398
-      %53110 = OpLabel
-      %53113 = OpLoad %uint %47980
-      %53114 = OpBitwiseAnd %uint %53113 %uint_32768
-      %53115 = OpUGreaterThan %bool %53114 %uint_0
-               OpSelectionMerge %61566 None
-               OpSwitch %uint_0 %61550
-      %61550 = OpLabel
-               OpSelectionMerge %61565 None
-               OpBranchConditional %53115 %61552 %61560
-      %61560 = OpLabel
-      %61562 = OpISub %uint %129523 %int_1
-      %61563 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61562
-      %61564 = OpLoad %_arr_v4float_uint_2 %61563
-     %111453 = OpCompositeExtract %v4float %61564 0
-     %111454 = OpCompositeExtract %v4float %61564 1
-               OpBranch %61566
-      %61552 = OpLabel
-      %61554 = OpIAdd %uint %129549 %int_1
-      %61555 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61556 = OpLoad %v4float %61555
-               OpBranch %61566
-      %61565 = OpLabel
-               OpUnreachable
-      %61566 = OpLabel
-     %207519 = OpPhi %uint %61554 %61552 %129549 %61560
-     %131391 = OpPhi %uint %129523 %61552 %61562 %61560
-     %131390 = OpPhi %v4float %61556 %61552 %111453 %61560
-     %131389 = OpPhi %v4float %61556 %61552 %111454 %61560
-      %53119 = OpExtInst %v4float %1 Floor %131390
-      %53123 = OpExtInst %v4float %1 Floor %131389
-      %53129 = OpExtInst %v4float %1 FMin %53119 %53123
-      %53135 = OpExtInst %v4float %1 FMax %53119 %53123
-     %114467 = OpCompositeConstruct %_arr_v4float_uint_2 %53129 %53135
-      %61570 = OpIAdd %uint %131391 %int_1
-      %61572 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131391
-               OpStore %61572 %114467
-               OpBranch %56398
-      %53081 = OpLabel
-      %53084 = OpLoad %uint %47980
-      %53085 = OpBitwiseAnd %uint %53084 %uint_32768
-      %53086 = OpUGreaterThan %bool %53085 %uint_0
-               OpSelectionMerge %61538 None
-               OpSwitch %uint_0 %61522
-      %61522 = OpLabel
-               OpSelectionMerge %61537 None
-               OpBranchConditional %53086 %61524 %61532
-      %61532 = OpLabel
-      %61534 = OpISub %uint %129523 %int_1
-      %61535 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61534
-      %61536 = OpLoad %_arr_v4float_uint_2 %61535
-     %111462 = OpCompositeExtract %v4float %61536 0
-     %111463 = OpCompositeExtract %v4float %61536 1
-               OpBranch %61538
-      %61524 = OpLabel
-      %61526 = OpIAdd %uint %129549 %int_1
-      %61527 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61528 = OpLoad %v4float %61527
-               OpBranch %61538
-      %61537 = OpLabel
-               OpUnreachable
-      %61538 = OpLabel
-     %207518 = OpPhi %uint %61526 %61524 %129549 %61532
-     %131394 = OpPhi %uint %129523 %61524 %61534 %61532
-     %131393 = OpPhi %v4float %61528 %61524 %111462 %61532
-     %131392 = OpPhi %v4float %61528 %61524 %111463 %61532
-      %53090 = OpExtInst %v4float %1 FSign %131393
-      %53094 = OpExtInst %v4float %1 FSign %131392
-      %53100 = OpExtInst %v4float %1 FMin %53090 %53094
-      %53106 = OpExtInst %v4float %1 FMax %53090 %53094
-     %114458 = OpCompositeConstruct %_arr_v4float_uint_2 %53100 %53106
-      %61542 = OpIAdd %uint %131394 %int_1
-      %61544 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131394
-               OpStore %61544 %114458
-               OpBranch %56398
-      %53052 = OpLabel
-      %53055 = OpLoad %uint %47980
-      %53056 = OpBitwiseAnd %uint %53055 %uint_32768
-      %53057 = OpUGreaterThan %bool %53056 %uint_0
-               OpSelectionMerge %61510 None
-               OpSwitch %uint_0 %61494
-      %61494 = OpLabel
-               OpSelectionMerge %61509 None
-               OpBranchConditional %53057 %61496 %61504
-      %61504 = OpLabel
-      %61506 = OpISub %uint %129523 %int_1
-      %61507 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %61506
-      %61508 = OpLoad %_arr_v4float_uint_2 %61507
-     %111471 = OpCompositeExtract %v4float %61508 0
-     %111472 = OpCompositeExtract %v4float %61508 1
-               OpBranch %61510
-      %61496 = OpLabel
-      %61498 = OpIAdd %uint %129549 %int_1
-      %61499 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %61500 = OpLoad %v4float %61499
-               OpBranch %61510
-      %61509 = OpLabel
-               OpUnreachable
-      %61510 = OpLabel
-     %207517 = OpPhi %uint %61498 %61496 %129549 %61504
-     %131397 = OpPhi %uint %129523 %61496 %61506 %61504
-     %131396 = OpPhi %v4float %61500 %61496 %111471 %61504
-     %131395 = OpPhi %v4float %61500 %61496 %111472 %61504
-      %53061 = OpExtInst %v4float %1 FAbs %131396
-      %53065 = OpExtInst %v4float %1 FAbs %131395
-      %53071 = OpExtInst %v4float %1 FMin %53061 %53065
-      %53077 = OpExtInst %v4float %1 FMax %53061 %53065
-     %114449 = OpCompositeConstruct %_arr_v4float_uint_2 %53071 %53077
-      %61514 = OpIAdd %uint %131397 %int_1
-      %61516 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %131397
-               OpStore %61516 %114449
-               OpBranch %56398
-      %52970 = OpLabel
-      %52973 = OpLoad %uint %47980
-      %52974 = OpBitwiseAnd %uint %52973 %uint_32768
-      %52975 = OpUGreaterThan %bool %52974 %uint_0
-               OpSelectionMerge %61436 None
-               OpSwitch %uint_0 %61420
-      %61420 = OpLabel
-               OpSelectionMerge %61435 None
-               OpBranchConditional %52975 %61422 %61430
-      %61430 = OpLabel
-      %61432 = OpISub %uint %129514 %int_1
-      %61433 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61432
-      %61434 = OpLoad %_arr_v3float_uint_2 %61433
-     %111498 = OpCompositeExtract %v3float %61434 0
-     %111499 = OpCompositeExtract %v3float %61434 1
-               OpBranch %61436
-      %61422 = OpLabel
-      %61424 = OpIAdd %uint %129517 %int_1
-      %61425 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61426 = OpLoad %v3float %61425
-               OpBranch %61436
-      %61435 = OpLabel
-               OpUnreachable
-      %61436 = OpLabel
-     %131402 = OpPhi %uint %61424 %61422 %129517 %61430
-     %131401 = OpPhi %uint %129514 %61422 %61432 %61430
-     %131399 = OpPhi %v3float %61426 %61422 %111498 %61430
-     %131398 = OpPhi %v3float %61426 %61422 %111499 %61430
-      %52979 = OpLoad %uint %47980
-      %52980 = OpBitwiseAnd %uint %52979 %uint_16384
-      %52981 = OpUGreaterThan %bool %52980 %uint_0
-               OpSelectionMerge %61459 None
-               OpSwitch %uint_0 %61443
-      %61443 = OpLabel
-               OpSelectionMerge %61458 None
-               OpBranchConditional %52981 %61445 %61453
-      %61453 = OpLabel
-      %61455 = OpISub %uint %131401 %int_1
-      %61456 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61455
-      %61457 = OpLoad %_arr_v3float_uint_2 %61456
-     %111489 = OpCompositeExtract %v3float %61457 0
-     %111490 = OpCompositeExtract %v3float %61457 1
-               OpBranch %61459
-      %61445 = OpLabel
-      %61447 = OpIAdd %uint %131402 %int_1
-      %61448 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %131402
-      %61449 = OpLoad %v3float %61448
-               OpBranch %61459
-      %61458 = OpLabel
-               OpUnreachable
-      %61459 = OpLabel
-     %131407 = OpPhi %uint %61447 %61445 %131402 %61453
-     %131406 = OpPhi %uint %131401 %61445 %61455 %61453
-     %131404 = OpPhi %v3float %61449 %61445 %111489 %61453
-     %131403 = OpPhi %v3float %61449 %61445 %111490 %61453
-      %52985 = OpLoad %uint %47980
-      %52986 = OpBitwiseAnd %uint %52985 %uint_8192
-      %52987 = OpUGreaterThan %bool %52986 %uint_0
-               OpSelectionMerge %61482 None
-               OpSwitch %uint_0 %61466
-      %61466 = OpLabel
-               OpSelectionMerge %61481 None
-               OpBranchConditional %52987 %61468 %61476
-      %61476 = OpLabel
-      %61478 = OpISub %uint %131406 %int_1
-      %61479 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61478
-      %61480 = OpLoad %_arr_v3float_uint_2 %61479
-     %111480 = OpCompositeExtract %v3float %61480 0
-     %111481 = OpCompositeExtract %v3float %61480 1
-               OpBranch %61482
-      %61468 = OpLabel
-      %61470 = OpIAdd %uint %131407 %int_1
-      %61471 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %131407
-      %61472 = OpLoad %v3float %61471
-               OpBranch %61482
-      %61481 = OpLabel
-               OpUnreachable
-      %61482 = OpLabel
-     %206738 = OpPhi %uint %61470 %61468 %131407 %61476
-     %131416 = OpPhi %uint %131406 %61468 %61478 %61476
-     %131409 = OpPhi %v3float %61472 %61468 %111480 %61476
-     %131408 = OpPhi %v3float %61472 %61468 %111481 %61476
-      %52993 = OpFMul %v3float %131399 %131404
-      %52999 = OpFMul %v3float %131399 %131403
-      %53005 = OpFMul %v3float %131398 %131404
-      %53011 = OpFMul %v3float %131398 %131403
-      %53021 = OpExtInst %v3float %1 FMin %53005 %53011
-      %53022 = OpExtInst %v3float %1 FMin %52999 %53021
-      %53023 = OpExtInst %v3float %1 FMin %52993 %53022
-      %53033 = OpExtInst %v3float %1 FMax %53005 %53011
-      %53034 = OpExtInst %v3float %1 FMax %52999 %53033
-      %53035 = OpExtInst %v3float %1 FMax %52993 %53034
-      %53042 = OpFAdd %v3float %53023 %131409
-      %53048 = OpFAdd %v3float %53035 %131408
-     %114432 = OpCompositeConstruct %_arr_v3float_uint_2 %53042 %53048
-      %61486 = OpIAdd %uint %131416 %int_1
-      %61488 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131416
-               OpStore %61488 %114432
-               OpBranch %56398
-      %52943 = OpLabel
-      %52946 = OpLoad %uint %47980
-      %52947 = OpBitwiseAnd %uint %52946 %uint_32768
-      %52948 = OpUGreaterThan %bool %52947 %uint_0
-               OpSelectionMerge %61385 None
-               OpSwitch %uint_0 %61369
-      %61369 = OpLabel
-               OpSelectionMerge %61384 None
-               OpBranchConditional %52948 %61371 %61379
-      %61379 = OpLabel
-      %61381 = OpISub %uint %129514 %int_1
-      %61382 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61381
-      %61383 = OpLoad %_arr_v3float_uint_2 %61382
-     %111516 = OpCompositeExtract %v3float %61383 0
-     %111517 = OpCompositeExtract %v3float %61383 1
-               OpBranch %61385
-      %61371 = OpLabel
-      %61373 = OpIAdd %uint %129517 %int_1
-      %61374 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61375 = OpLoad %v3float %61374
-               OpBranch %61385
-      %61384 = OpLabel
-               OpUnreachable
-      %61385 = OpLabel
-     %131421 = OpPhi %uint %61373 %61371 %129517 %61379
-     %131420 = OpPhi %uint %129514 %61371 %61381 %61379
-     %131418 = OpPhi %v3float %61375 %61371 %111516 %61379
-     %131417 = OpPhi %v3float %61375 %61371 %111517 %61379
-      %52952 = OpLoad %uint %47980
-      %52953 = OpBitwiseAnd %uint %52952 %uint_16384
-      %52954 = OpUGreaterThan %bool %52953 %uint_0
-               OpSelectionMerge %61408 None
-               OpSwitch %uint_0 %61392
-      %61392 = OpLabel
-               OpSelectionMerge %61407 None
-               OpBranchConditional %52954 %61394 %61402
-      %61402 = OpLabel
-      %61404 = OpISub %uint %131420 %int_1
-      %61405 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61404
-      %61406 = OpLoad %_arr_v3float_uint_2 %61405
-     %111507 = OpCompositeExtract %v3float %61406 0
-     %111508 = OpCompositeExtract %v3float %61406 1
-               OpBranch %61408
-      %61394 = OpLabel
-      %61396 = OpIAdd %uint %131421 %int_1
-      %61397 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %131421
-      %61398 = OpLoad %v3float %61397
-               OpBranch %61408
-      %61407 = OpLabel
-               OpUnreachable
-      %61408 = OpLabel
-     %206737 = OpPhi %uint %61396 %61394 %131421 %61402
-     %131426 = OpPhi %uint %131420 %61394 %61404 %61402
-     %131423 = OpPhi %v3float %61398 %61394 %111507 %61402
-     %131422 = OpPhi %v3float %61398 %61394 %111508 %61402
-      %52960 = OpExtInst %v3float %1 FMax %131418 %131423
-      %52966 = OpExtInst %v3float %1 FMax %131417 %131422
-     %114421 = OpCompositeConstruct %_arr_v3float_uint_2 %52960 %52966
-      %61412 = OpIAdd %uint %131426 %int_1
-      %61414 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131426
-               OpStore %61414 %114421
-               OpBranch %56398
-      %52916 = OpLabel
-      %52919 = OpLoad %uint %47980
-      %52920 = OpBitwiseAnd %uint %52919 %uint_32768
-      %52921 = OpUGreaterThan %bool %52920 %uint_0
-               OpSelectionMerge %61334 None
-               OpSwitch %uint_0 %61318
-      %61318 = OpLabel
-               OpSelectionMerge %61333 None
-               OpBranchConditional %52921 %61320 %61328
-      %61328 = OpLabel
-      %61330 = OpISub %uint %129514 %int_1
-      %61331 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61330
-      %61332 = OpLoad %_arr_v3float_uint_2 %61331
-     %111534 = OpCompositeExtract %v3float %61332 0
-     %111535 = OpCompositeExtract %v3float %61332 1
-               OpBranch %61334
-      %61320 = OpLabel
-      %61322 = OpIAdd %uint %129517 %int_1
-      %61323 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61324 = OpLoad %v3float %61323
-               OpBranch %61334
-      %61333 = OpLabel
-               OpUnreachable
-      %61334 = OpLabel
-     %131431 = OpPhi %uint %61322 %61320 %129517 %61328
-     %131430 = OpPhi %uint %129514 %61320 %61330 %61328
-     %131428 = OpPhi %v3float %61324 %61320 %111534 %61328
-     %131427 = OpPhi %v3float %61324 %61320 %111535 %61328
-      %52925 = OpLoad %uint %47980
-      %52926 = OpBitwiseAnd %uint %52925 %uint_16384
-      %52927 = OpUGreaterThan %bool %52926 %uint_0
-               OpSelectionMerge %61357 None
-               OpSwitch %uint_0 %61341
-      %61341 = OpLabel
-               OpSelectionMerge %61356 None
-               OpBranchConditional %52927 %61343 %61351
-      %61351 = OpLabel
-      %61353 = OpISub %uint %131430 %int_1
-      %61354 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61353
-      %61355 = OpLoad %_arr_v3float_uint_2 %61354
-     %111525 = OpCompositeExtract %v3float %61355 0
-     %111526 = OpCompositeExtract %v3float %61355 1
-               OpBranch %61357
-      %61343 = OpLabel
-      %61345 = OpIAdd %uint %131431 %int_1
-      %61346 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %131431
-      %61347 = OpLoad %v3float %61346
-               OpBranch %61357
-      %61356 = OpLabel
-               OpUnreachable
-      %61357 = OpLabel
-     %206736 = OpPhi %uint %61345 %61343 %131431 %61351
-     %131436 = OpPhi %uint %131430 %61343 %61353 %61351
-     %131433 = OpPhi %v3float %61347 %61343 %111525 %61351
-     %131432 = OpPhi %v3float %61347 %61343 %111526 %61351
-      %52933 = OpExtInst %v3float %1 FMin %131428 %131433
-      %52939 = OpExtInst %v3float %1 FMin %131427 %131432
-     %114410 = OpCompositeConstruct %_arr_v3float_uint_2 %52933 %52939
-      %61361 = OpIAdd %uint %131436 %int_1
-      %61363 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131436
-               OpStore %61363 %114410
-               OpBranch %56398
-      %52887 = OpLabel
-      %52890 = OpLoad %uint %47980
-      %52891 = OpBitwiseAnd %uint %52890 %uint_32768
-      %52892 = OpUGreaterThan %bool %52891 %uint_0
-               OpSelectionMerge %61306 None
-               OpSwitch %uint_0 %61290
-      %61290 = OpLabel
-               OpSelectionMerge %61305 None
-               OpBranchConditional %52892 %61292 %61300
-      %61300 = OpLabel
-      %61302 = OpISub %uint %129514 %int_1
-      %61303 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61302
-      %61304 = OpLoad %_arr_v3float_uint_2 %61303
-     %111543 = OpCompositeExtract %v3float %61304 0
-     %111544 = OpCompositeExtract %v3float %61304 1
-               OpBranch %61306
-      %61292 = OpLabel
-      %61294 = OpIAdd %uint %129517 %int_1
-      %61295 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61296 = OpLoad %v3float %61295
-               OpBranch %61306
-      %61305 = OpLabel
-               OpUnreachable
-      %61306 = OpLabel
-     %206735 = OpPhi %uint %61294 %61292 %129517 %61300
-     %131439 = OpPhi %uint %129514 %61292 %61302 %61300
-     %131438 = OpPhi %v3float %61296 %61292 %111543 %61300
-     %131437 = OpPhi %v3float %61296 %61292 %111544 %61300
-      %52896 = OpExtInst %v3float %1 Trunc %131438
-      %52900 = OpExtInst %v3float %1 Trunc %131437
-      %52906 = OpExtInst %v3float %1 FMin %52896 %52900
-      %52912 = OpExtInst %v3float %1 FMax %52896 %52900
-     %114401 = OpCompositeConstruct %_arr_v3float_uint_2 %52906 %52912
-      %61310 = OpIAdd %uint %131439 %int_1
-      %61312 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131439
-               OpStore %61312 %114401
-               OpBranch %56398
-      %52858 = OpLabel
-      %52861 = OpLoad %uint %47980
-      %52862 = OpBitwiseAnd %uint %52861 %uint_32768
-      %52863 = OpUGreaterThan %bool %52862 %uint_0
-               OpSelectionMerge %61278 None
-               OpSwitch %uint_0 %61262
-      %61262 = OpLabel
-               OpSelectionMerge %61277 None
-               OpBranchConditional %52863 %61264 %61272
-      %61272 = OpLabel
-      %61274 = OpISub %uint %129514 %int_1
-      %61275 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61274
-      %61276 = OpLoad %_arr_v3float_uint_2 %61275
-     %111552 = OpCompositeExtract %v3float %61276 0
-     %111553 = OpCompositeExtract %v3float %61276 1
-               OpBranch %61278
-      %61264 = OpLabel
-      %61266 = OpIAdd %uint %129517 %int_1
-      %61267 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61268 = OpLoad %v3float %61267
-               OpBranch %61278
-      %61277 = OpLabel
-               OpUnreachable
-      %61278 = OpLabel
-     %206734 = OpPhi %uint %61266 %61264 %129517 %61272
-     %131442 = OpPhi %uint %129514 %61264 %61274 %61272
-     %131441 = OpPhi %v3float %61268 %61264 %111552 %61272
-     %131440 = OpPhi %v3float %61268 %61264 %111553 %61272
-      %52867 = OpExtInst %v3float %1 Round %131441
-      %52871 = OpExtInst %v3float %1 Round %131440
-      %52877 = OpExtInst %v3float %1 FMin %52867 %52871
-      %52883 = OpExtInst %v3float %1 FMax %52867 %52871
-     %114392 = OpCompositeConstruct %_arr_v3float_uint_2 %52877 %52883
-      %61282 = OpIAdd %uint %131442 %int_1
-      %61284 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131442
-               OpStore %61284 %114392
-               OpBranch %56398
-      %52829 = OpLabel
-      %52832 = OpLoad %uint %47980
-      %52833 = OpBitwiseAnd %uint %52832 %uint_32768
-      %52834 = OpUGreaterThan %bool %52833 %uint_0
-               OpSelectionMerge %61250 None
-               OpSwitch %uint_0 %61234
-      %61234 = OpLabel
-               OpSelectionMerge %61249 None
-               OpBranchConditional %52834 %61236 %61244
-      %61244 = OpLabel
-      %61246 = OpISub %uint %129514 %int_1
-      %61247 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61246
-      %61248 = OpLoad %_arr_v3float_uint_2 %61247
-     %111561 = OpCompositeExtract %v3float %61248 0
-     %111562 = OpCompositeExtract %v3float %61248 1
-               OpBranch %61250
-      %61236 = OpLabel
-      %61238 = OpIAdd %uint %129517 %int_1
-      %61239 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61240 = OpLoad %v3float %61239
-               OpBranch %61250
-      %61249 = OpLabel
-               OpUnreachable
-      %61250 = OpLabel
-     %206733 = OpPhi %uint %61238 %61236 %129517 %61244
-     %131445 = OpPhi %uint %129514 %61236 %61246 %61244
-     %131444 = OpPhi %v3float %61240 %61236 %111561 %61244
-     %131443 = OpPhi %v3float %61240 %61236 %111562 %61244
-      %52838 = OpExtInst %v3float %1 Tanh %131444
-      %52842 = OpExtInst %v3float %1 Tanh %131443
-      %52848 = OpExtInst %v3float %1 FMin %52838 %52842
-      %52854 = OpExtInst %v3float %1 FMax %52838 %52842
-     %114383 = OpCompositeConstruct %_arr_v3float_uint_2 %52848 %52854
-      %61254 = OpIAdd %uint %131445 %int_1
-      %61256 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131445
-               OpStore %61256 %114383
-               OpBranch %56398
-      %52800 = OpLabel
-      %52803 = OpLoad %uint %47980
-      %52804 = OpBitwiseAnd %uint %52803 %uint_32768
-      %52805 = OpUGreaterThan %bool %52804 %uint_0
-               OpSelectionMerge %61222 None
-               OpSwitch %uint_0 %61206
-      %61206 = OpLabel
-               OpSelectionMerge %61221 None
-               OpBranchConditional %52805 %61208 %61216
-      %61216 = OpLabel
-      %61218 = OpISub %uint %129514 %int_1
-      %61219 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61218
-      %61220 = OpLoad %_arr_v3float_uint_2 %61219
-     %111570 = OpCompositeExtract %v3float %61220 0
-     %111571 = OpCompositeExtract %v3float %61220 1
-               OpBranch %61222
-      %61208 = OpLabel
-      %61210 = OpIAdd %uint %129517 %int_1
-      %61211 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61212 = OpLoad %v3float %61211
-               OpBranch %61222
-      %61221 = OpLabel
-               OpUnreachable
-      %61222 = OpLabel
-     %206732 = OpPhi %uint %61210 %61208 %129517 %61216
-     %131448 = OpPhi %uint %129514 %61208 %61218 %61216
-     %131447 = OpPhi %v3float %61212 %61208 %111570 %61216
-     %131446 = OpPhi %v3float %61212 %61208 %111571 %61216
-      %52809 = OpExtInst %v3float %1 Sinh %131447
-      %52813 = OpExtInst %v3float %1 Sinh %131446
-      %52819 = OpExtInst %v3float %1 FMin %52809 %52813
-      %52825 = OpExtInst %v3float %1 FMax %52809 %52813
-     %114374 = OpCompositeConstruct %_arr_v3float_uint_2 %52819 %52825
-      %61226 = OpIAdd %uint %131448 %int_1
-      %61228 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131448
-               OpStore %61228 %114374
-               OpBranch %56398
-      %52771 = OpLabel
-      %52774 = OpLoad %uint %47980
-      %52775 = OpBitwiseAnd %uint %52774 %uint_32768
-      %52776 = OpUGreaterThan %bool %52775 %uint_0
-               OpSelectionMerge %61194 None
-               OpSwitch %uint_0 %61178
-      %61178 = OpLabel
-               OpSelectionMerge %61193 None
-               OpBranchConditional %52776 %61180 %61188
-      %61188 = OpLabel
-      %61190 = OpISub %uint %129514 %int_1
-      %61191 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61190
-      %61192 = OpLoad %_arr_v3float_uint_2 %61191
-     %111579 = OpCompositeExtract %v3float %61192 0
-     %111580 = OpCompositeExtract %v3float %61192 1
-               OpBranch %61194
-      %61180 = OpLabel
-      %61182 = OpIAdd %uint %129517 %int_1
-      %61183 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61184 = OpLoad %v3float %61183
-               OpBranch %61194
-      %61193 = OpLabel
-               OpUnreachable
-      %61194 = OpLabel
-     %206731 = OpPhi %uint %61182 %61180 %129517 %61188
-     %131451 = OpPhi %uint %129514 %61180 %61190 %61188
-     %131450 = OpPhi %v3float %61184 %61180 %111579 %61188
-     %131449 = OpPhi %v3float %61184 %61180 %111580 %61188
-      %52780 = OpExtInst %v3float %1 Cosh %131450
-      %52784 = OpExtInst %v3float %1 Cosh %131449
-      %52790 = OpExtInst %v3float %1 FMin %52780 %52784
-      %52796 = OpExtInst %v3float %1 FMax %52780 %52784
-     %114365 = OpCompositeConstruct %_arr_v3float_uint_2 %52790 %52796
-      %61198 = OpIAdd %uint %131451 %int_1
-      %61200 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131451
-               OpStore %61200 %114365
-               OpBranch %56398
-      %52742 = OpLabel
-      %52745 = OpLoad %uint %47980
-      %52746 = OpBitwiseAnd %uint %52745 %uint_32768
-      %52747 = OpUGreaterThan %bool %52746 %uint_0
-               OpSelectionMerge %61166 None
-               OpSwitch %uint_0 %61150
-      %61150 = OpLabel
-               OpSelectionMerge %61165 None
-               OpBranchConditional %52747 %61152 %61160
-      %61160 = OpLabel
-      %61162 = OpISub %uint %129514 %int_1
-      %61163 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61162
-      %61164 = OpLoad %_arr_v3float_uint_2 %61163
-     %111588 = OpCompositeExtract %v3float %61164 0
-     %111589 = OpCompositeExtract %v3float %61164 1
-               OpBranch %61166
-      %61152 = OpLabel
-      %61154 = OpIAdd %uint %129517 %int_1
-      %61155 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61156 = OpLoad %v3float %61155
-               OpBranch %61166
-      %61165 = OpLabel
-               OpUnreachable
-      %61166 = OpLabel
-     %206730 = OpPhi %uint %61154 %61152 %129517 %61160
-     %131454 = OpPhi %uint %129514 %61152 %61162 %61160
-     %131453 = OpPhi %v3float %61156 %61152 %111588 %61160
-     %131452 = OpPhi %v3float %61156 %61152 %111589 %61160
-      %52751 = OpExtInst %v3float %1 Atanh %131453
-      %52755 = OpExtInst %v3float %1 Atanh %131452
-      %52761 = OpExtInst %v3float %1 FMin %52751 %52755
-      %52767 = OpExtInst %v3float %1 FMax %52751 %52755
-     %114356 = OpCompositeConstruct %_arr_v3float_uint_2 %52761 %52767
-      %61170 = OpIAdd %uint %131454 %int_1
-      %61172 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131454
-               OpStore %61172 %114356
-               OpBranch %56398
-      %52713 = OpLabel
-      %52716 = OpLoad %uint %47980
-      %52717 = OpBitwiseAnd %uint %52716 %uint_32768
-      %52718 = OpUGreaterThan %bool %52717 %uint_0
-               OpSelectionMerge %61138 None
-               OpSwitch %uint_0 %61122
-      %61122 = OpLabel
-               OpSelectionMerge %61137 None
-               OpBranchConditional %52718 %61124 %61132
-      %61132 = OpLabel
-      %61134 = OpISub %uint %129514 %int_1
-      %61135 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61134
-      %61136 = OpLoad %_arr_v3float_uint_2 %61135
-     %111597 = OpCompositeExtract %v3float %61136 0
-     %111598 = OpCompositeExtract %v3float %61136 1
-               OpBranch %61138
-      %61124 = OpLabel
-      %61126 = OpIAdd %uint %129517 %int_1
-      %61127 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61128 = OpLoad %v3float %61127
-               OpBranch %61138
-      %61137 = OpLabel
-               OpUnreachable
-      %61138 = OpLabel
-     %206729 = OpPhi %uint %61126 %61124 %129517 %61132
-     %131457 = OpPhi %uint %129514 %61124 %61134 %61132
-     %131456 = OpPhi %v3float %61128 %61124 %111597 %61132
-     %131455 = OpPhi %v3float %61128 %61124 %111598 %61132
-      %52722 = OpExtInst %v3float %1 Asinh %131456
-      %52726 = OpExtInst %v3float %1 Asinh %131455
-      %52732 = OpExtInst %v3float %1 FMin %52722 %52726
-      %52738 = OpExtInst %v3float %1 FMax %52722 %52726
-     %114347 = OpCompositeConstruct %_arr_v3float_uint_2 %52732 %52738
-      %61142 = OpIAdd %uint %131457 %int_1
-      %61144 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131457
-               OpStore %61144 %114347
-               OpBranch %56398
-      %52684 = OpLabel
-      %52687 = OpLoad %uint %47980
-      %52688 = OpBitwiseAnd %uint %52687 %uint_32768
-      %52689 = OpUGreaterThan %bool %52688 %uint_0
-               OpSelectionMerge %61110 None
-               OpSwitch %uint_0 %61094
-      %61094 = OpLabel
-               OpSelectionMerge %61109 None
-               OpBranchConditional %52689 %61096 %61104
-      %61104 = OpLabel
-      %61106 = OpISub %uint %129514 %int_1
-      %61107 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61106
-      %61108 = OpLoad %_arr_v3float_uint_2 %61107
-     %111606 = OpCompositeExtract %v3float %61108 0
-     %111607 = OpCompositeExtract %v3float %61108 1
-               OpBranch %61110
-      %61096 = OpLabel
-      %61098 = OpIAdd %uint %129517 %int_1
-      %61099 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61100 = OpLoad %v3float %61099
-               OpBranch %61110
-      %61109 = OpLabel
-               OpUnreachable
-      %61110 = OpLabel
-     %206728 = OpPhi %uint %61098 %61096 %129517 %61104
-     %131460 = OpPhi %uint %129514 %61096 %61106 %61104
-     %131459 = OpPhi %v3float %61100 %61096 %111606 %61104
-     %131458 = OpPhi %v3float %61100 %61096 %111607 %61104
-      %52693 = OpExtInst %v3float %1 Acosh %131459
-      %52697 = OpExtInst %v3float %1 Acosh %131458
-      %52703 = OpExtInst %v3float %1 FMin %52693 %52697
-      %52709 = OpExtInst %v3float %1 FMax %52693 %52697
-     %114338 = OpCompositeConstruct %_arr_v3float_uint_2 %52703 %52709
-      %61114 = OpIAdd %uint %131460 %int_1
-      %61116 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131460
-               OpStore %61116 %114338
-               OpBranch %56398
-      %52655 = OpLabel
-      %52658 = OpLoad %uint %47980
-      %52659 = OpBitwiseAnd %uint %52658 %uint_32768
-      %52660 = OpUGreaterThan %bool %52659 %uint_0
-               OpSelectionMerge %61082 None
-               OpSwitch %uint_0 %61066
-      %61066 = OpLabel
-               OpSelectionMerge %61081 None
-               OpBranchConditional %52660 %61068 %61076
-      %61076 = OpLabel
-      %61078 = OpISub %uint %129514 %int_1
-      %61079 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61078
-      %61080 = OpLoad %_arr_v3float_uint_2 %61079
-     %111615 = OpCompositeExtract %v3float %61080 0
-     %111616 = OpCompositeExtract %v3float %61080 1
-               OpBranch %61082
-      %61068 = OpLabel
-      %61070 = OpIAdd %uint %129517 %int_1
-      %61071 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61072 = OpLoad %v3float %61071
-               OpBranch %61082
-      %61081 = OpLabel
-               OpUnreachable
-      %61082 = OpLabel
-     %206727 = OpPhi %uint %61070 %61068 %129517 %61076
-     %131463 = OpPhi %uint %129514 %61068 %61078 %61076
-     %131462 = OpPhi %v3float %61072 %61068 %111615 %61076
-     %131461 = OpPhi %v3float %61072 %61068 %111616 %61076
-      %52664 = OpExtInst %v3float %1 Atan %131462
-      %52668 = OpExtInst %v3float %1 Atan %131461
-      %52674 = OpExtInst %v3float %1 FMin %52664 %52668
-      %52680 = OpExtInst %v3float %1 FMax %52664 %52668
-     %114329 = OpCompositeConstruct %_arr_v3float_uint_2 %52674 %52680
-      %61086 = OpIAdd %uint %131463 %int_1
-      %61088 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131463
-               OpStore %61088 %114329
-               OpBranch %56398
-      %52626 = OpLabel
-      %52629 = OpLoad %uint %47980
-      %52630 = OpBitwiseAnd %uint %52629 %uint_32768
-      %52631 = OpUGreaterThan %bool %52630 %uint_0
-               OpSelectionMerge %61054 None
-               OpSwitch %uint_0 %61038
-      %61038 = OpLabel
-               OpSelectionMerge %61053 None
-               OpBranchConditional %52631 %61040 %61048
-      %61048 = OpLabel
-      %61050 = OpISub %uint %129514 %int_1
-      %61051 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61050
-      %61052 = OpLoad %_arr_v3float_uint_2 %61051
-     %111624 = OpCompositeExtract %v3float %61052 0
-     %111625 = OpCompositeExtract %v3float %61052 1
-               OpBranch %61054
-      %61040 = OpLabel
-      %61042 = OpIAdd %uint %129517 %int_1
-      %61043 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61044 = OpLoad %v3float %61043
-               OpBranch %61054
-      %61053 = OpLabel
-               OpUnreachable
-      %61054 = OpLabel
-     %206726 = OpPhi %uint %61042 %61040 %129517 %61048
-     %131466 = OpPhi %uint %129514 %61040 %61050 %61048
-     %131465 = OpPhi %v3float %61044 %61040 %111624 %61048
-     %131464 = OpPhi %v3float %61044 %61040 %111625 %61048
-      %52635 = OpExtInst %v3float %1 Acos %131465
-      %52639 = OpExtInst %v3float %1 Acos %131464
-      %52645 = OpExtInst %v3float %1 FMin %52635 %52639
-      %52651 = OpExtInst %v3float %1 FMax %52635 %52639
-     %114320 = OpCompositeConstruct %_arr_v3float_uint_2 %52645 %52651
-      %61058 = OpIAdd %uint %131466 %int_1
-      %61060 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131466
-               OpStore %61060 %114320
-               OpBranch %56398
-      %52597 = OpLabel
-      %52600 = OpLoad %uint %47980
-      %52601 = OpBitwiseAnd %uint %52600 %uint_32768
-      %52602 = OpUGreaterThan %bool %52601 %uint_0
-               OpSelectionMerge %61026 None
-               OpSwitch %uint_0 %61010
-      %61010 = OpLabel
-               OpSelectionMerge %61025 None
-               OpBranchConditional %52602 %61012 %61020
-      %61020 = OpLabel
-      %61022 = OpISub %uint %129514 %int_1
-      %61023 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %61022
-      %61024 = OpLoad %_arr_v3float_uint_2 %61023
-     %111633 = OpCompositeExtract %v3float %61024 0
-     %111634 = OpCompositeExtract %v3float %61024 1
-               OpBranch %61026
-      %61012 = OpLabel
-      %61014 = OpIAdd %uint %129517 %int_1
-      %61015 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %61016 = OpLoad %v3float %61015
-               OpBranch %61026
-      %61025 = OpLabel
-               OpUnreachable
-      %61026 = OpLabel
-     %206725 = OpPhi %uint %61014 %61012 %129517 %61020
-     %131469 = OpPhi %uint %129514 %61012 %61022 %61020
-     %131468 = OpPhi %v3float %61016 %61012 %111633 %61020
-     %131467 = OpPhi %v3float %61016 %61012 %111634 %61020
-      %52606 = OpExtInst %v3float %1 Asin %131468
-      %52610 = OpExtInst %v3float %1 Asin %131467
-      %52616 = OpExtInst %v3float %1 FMin %52606 %52610
-      %52622 = OpExtInst %v3float %1 FMax %52606 %52610
-     %114311 = OpCompositeConstruct %_arr_v3float_uint_2 %52616 %52622
-      %61030 = OpIAdd %uint %131469 %int_1
-      %61032 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131469
-               OpStore %61032 %114311
-               OpBranch %56398
-      %52568 = OpLabel
-      %52571 = OpLoad %uint %47980
-      %52572 = OpBitwiseAnd %uint %52571 %uint_32768
-      %52573 = OpUGreaterThan %bool %52572 %uint_0
-               OpSelectionMerge %60998 None
-               OpSwitch %uint_0 %60982
-      %60982 = OpLabel
-               OpSelectionMerge %60997 None
-               OpBranchConditional %52573 %60984 %60992
-      %60992 = OpLabel
-      %60994 = OpISub %uint %129514 %int_1
-      %60995 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60994
-      %60996 = OpLoad %_arr_v3float_uint_2 %60995
-     %111642 = OpCompositeExtract %v3float %60996 0
-     %111643 = OpCompositeExtract %v3float %60996 1
-               OpBranch %60998
-      %60984 = OpLabel
-      %60986 = OpIAdd %uint %129517 %int_1
-      %60987 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60988 = OpLoad %v3float %60987
-               OpBranch %60998
-      %60997 = OpLabel
-               OpUnreachable
-      %60998 = OpLabel
-     %206724 = OpPhi %uint %60986 %60984 %129517 %60992
-     %131472 = OpPhi %uint %129514 %60984 %60994 %60992
-     %131471 = OpPhi %v3float %60988 %60984 %111642 %60992
-     %131470 = OpPhi %v3float %60988 %60984 %111643 %60992
-      %52577 = OpExtInst %v3float %1 Tan %131471
-      %52581 = OpExtInst %v3float %1 Tan %131470
-      %52587 = OpExtInst %v3float %1 FMin %52577 %52581
-      %52593 = OpExtInst %v3float %1 FMax %52577 %52581
-     %114302 = OpCompositeConstruct %_arr_v3float_uint_2 %52587 %52593
-      %61002 = OpIAdd %uint %131472 %int_1
-      %61004 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131472
-               OpStore %61004 %114302
-               OpBranch %56398
-      %52539 = OpLabel
-      %52542 = OpLoad %uint %47980
-      %52543 = OpBitwiseAnd %uint %52542 %uint_32768
-      %52544 = OpUGreaterThan %bool %52543 %uint_0
-               OpSelectionMerge %60970 None
-               OpSwitch %uint_0 %60954
-      %60954 = OpLabel
-               OpSelectionMerge %60969 None
-               OpBranchConditional %52544 %60956 %60964
-      %60964 = OpLabel
-      %60966 = OpISub %uint %129514 %int_1
-      %60967 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60966
-      %60968 = OpLoad %_arr_v3float_uint_2 %60967
-     %111651 = OpCompositeExtract %v3float %60968 0
-     %111652 = OpCompositeExtract %v3float %60968 1
-               OpBranch %60970
-      %60956 = OpLabel
-      %60958 = OpIAdd %uint %129517 %int_1
-      %60959 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60960 = OpLoad %v3float %60959
-               OpBranch %60970
-      %60969 = OpLabel
-               OpUnreachable
-      %60970 = OpLabel
-     %206723 = OpPhi %uint %60958 %60956 %129517 %60964
-     %131475 = OpPhi %uint %129514 %60956 %60966 %60964
-     %131474 = OpPhi %v3float %60960 %60956 %111651 %60964
-     %131473 = OpPhi %v3float %60960 %60956 %111652 %60964
-      %52548 = OpExtInst %v3float %1 Cos %131474
-      %52552 = OpExtInst %v3float %1 Cos %131473
-      %52558 = OpExtInst %v3float %1 FMin %52548 %52552
-      %52564 = OpExtInst %v3float %1 FMax %52548 %52552
-     %114293 = OpCompositeConstruct %_arr_v3float_uint_2 %52558 %52564
-      %60974 = OpIAdd %uint %131475 %int_1
-      %60976 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131475
-               OpStore %60976 %114293
-               OpBranch %56398
-      %52510 = OpLabel
-      %52513 = OpLoad %uint %47980
-      %52514 = OpBitwiseAnd %uint %52513 %uint_32768
-      %52515 = OpUGreaterThan %bool %52514 %uint_0
-               OpSelectionMerge %60942 None
-               OpSwitch %uint_0 %60926
-      %60926 = OpLabel
-               OpSelectionMerge %60941 None
-               OpBranchConditional %52515 %60928 %60936
-      %60936 = OpLabel
-      %60938 = OpISub %uint %129514 %int_1
-      %60939 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60938
-      %60940 = OpLoad %_arr_v3float_uint_2 %60939
-     %111660 = OpCompositeExtract %v3float %60940 0
-     %111661 = OpCompositeExtract %v3float %60940 1
-               OpBranch %60942
-      %60928 = OpLabel
-      %60930 = OpIAdd %uint %129517 %int_1
-      %60931 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60932 = OpLoad %v3float %60931
-               OpBranch %60942
-      %60941 = OpLabel
-               OpUnreachable
-      %60942 = OpLabel
-     %206722 = OpPhi %uint %60930 %60928 %129517 %60936
-     %131478 = OpPhi %uint %129514 %60928 %60938 %60936
-     %131477 = OpPhi %v3float %60932 %60928 %111660 %60936
-     %131476 = OpPhi %v3float %60932 %60928 %111661 %60936
-      %52519 = OpExtInst %v3float %1 Sin %131477
-      %52523 = OpExtInst %v3float %1 Sin %131476
-      %52529 = OpExtInst %v3float %1 FMin %52519 %52523
-      %52535 = OpExtInst %v3float %1 FMax %52519 %52523
-     %114284 = OpCompositeConstruct %_arr_v3float_uint_2 %52529 %52535
-      %60946 = OpIAdd %uint %131478 %int_1
-      %60948 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131478
-               OpStore %60948 %114284
-               OpBranch %56398
-      %52481 = OpLabel
-      %52484 = OpLoad %uint %47980
-      %52485 = OpBitwiseAnd %uint %52484 %uint_32768
-      %52486 = OpUGreaterThan %bool %52485 %uint_0
-               OpSelectionMerge %60914 None
-               OpSwitch %uint_0 %60898
-      %60898 = OpLabel
-               OpSelectionMerge %60913 None
-               OpBranchConditional %52486 %60900 %60908
-      %60908 = OpLabel
-      %60910 = OpISub %uint %129514 %int_1
-      %60911 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60910
-      %60912 = OpLoad %_arr_v3float_uint_2 %60911
-     %111669 = OpCompositeExtract %v3float %60912 0
-     %111670 = OpCompositeExtract %v3float %60912 1
-               OpBranch %60914
-      %60900 = OpLabel
-      %60902 = OpIAdd %uint %129517 %int_1
-      %60903 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60904 = OpLoad %v3float %60903
-               OpBranch %60914
-      %60913 = OpLabel
-               OpUnreachable
-      %60914 = OpLabel
-     %206721 = OpPhi %uint %60902 %60900 %129517 %60908
-     %131481 = OpPhi %uint %129514 %60900 %60910 %60908
-     %131480 = OpPhi %v3float %60904 %60900 %111669 %60908
-     %131479 = OpPhi %v3float %60904 %60900 %111670 %60908
-      %52490 = OpExtInst %v3float %1 Log2 %131480
-      %52494 = OpExtInst %v3float %1 Log2 %131479
-      %52500 = OpExtInst %v3float %1 FMin %52490 %52494
-      %52506 = OpExtInst %v3float %1 FMax %52490 %52494
-     %114275 = OpCompositeConstruct %_arr_v3float_uint_2 %52500 %52506
-      %60918 = OpIAdd %uint %131481 %int_1
-      %60920 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131481
-               OpStore %60920 %114275
-               OpBranch %56398
-      %52452 = OpLabel
-      %52455 = OpLoad %uint %47980
-      %52456 = OpBitwiseAnd %uint %52455 %uint_32768
-      %52457 = OpUGreaterThan %bool %52456 %uint_0
-               OpSelectionMerge %60886 None
-               OpSwitch %uint_0 %60870
-      %60870 = OpLabel
-               OpSelectionMerge %60885 None
-               OpBranchConditional %52457 %60872 %60880
-      %60880 = OpLabel
-      %60882 = OpISub %uint %129514 %int_1
-      %60883 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60882
-      %60884 = OpLoad %_arr_v3float_uint_2 %60883
-     %111678 = OpCompositeExtract %v3float %60884 0
-     %111679 = OpCompositeExtract %v3float %60884 1
-               OpBranch %60886
-      %60872 = OpLabel
-      %60874 = OpIAdd %uint %129517 %int_1
-      %60875 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60876 = OpLoad %v3float %60875
-               OpBranch %60886
-      %60885 = OpLabel
-               OpUnreachable
-      %60886 = OpLabel
-     %206720 = OpPhi %uint %60874 %60872 %129517 %60880
-     %131484 = OpPhi %uint %129514 %60872 %60882 %60880
-     %131483 = OpPhi %v3float %60876 %60872 %111678 %60880
-     %131482 = OpPhi %v3float %60876 %60872 %111679 %60880
-      %52461 = OpExtInst %v3float %1 Log %131483
-      %52465 = OpExtInst %v3float %1 Log %131482
-      %52471 = OpExtInst %v3float %1 FMin %52461 %52465
-      %52477 = OpExtInst %v3float %1 FMax %52461 %52465
-     %114266 = OpCompositeConstruct %_arr_v3float_uint_2 %52471 %52477
-      %60890 = OpIAdd %uint %131484 %int_1
-      %60892 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131484
-               OpStore %60892 %114266
-               OpBranch %56398
-      %52423 = OpLabel
-      %52426 = OpLoad %uint %47980
-      %52427 = OpBitwiseAnd %uint %52426 %uint_32768
-      %52428 = OpUGreaterThan %bool %52427 %uint_0
-               OpSelectionMerge %60858 None
-               OpSwitch %uint_0 %60842
-      %60842 = OpLabel
-               OpSelectionMerge %60857 None
-               OpBranchConditional %52428 %60844 %60852
-      %60852 = OpLabel
-      %60854 = OpISub %uint %129514 %int_1
-      %60855 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60854
-      %60856 = OpLoad %_arr_v3float_uint_2 %60855
-     %111687 = OpCompositeExtract %v3float %60856 0
-     %111688 = OpCompositeExtract %v3float %60856 1
-               OpBranch %60858
-      %60844 = OpLabel
-      %60846 = OpIAdd %uint %129517 %int_1
-      %60847 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60848 = OpLoad %v3float %60847
-               OpBranch %60858
-      %60857 = OpLabel
-               OpUnreachable
-      %60858 = OpLabel
-     %206719 = OpPhi %uint %60846 %60844 %129517 %60852
-     %131487 = OpPhi %uint %129514 %60844 %60854 %60852
-     %131486 = OpPhi %v3float %60848 %60844 %111687 %60852
-     %131485 = OpPhi %v3float %60848 %60844 %111688 %60852
-      %52432 = OpExtInst %v3float %1 Exp2 %131486
-      %52436 = OpExtInst %v3float %1 Exp2 %131485
-      %52442 = OpExtInst %v3float %1 FMin %52432 %52436
-      %52448 = OpExtInst %v3float %1 FMax %52432 %52436
-     %114257 = OpCompositeConstruct %_arr_v3float_uint_2 %52442 %52448
-      %60862 = OpIAdd %uint %131487 %int_1
-      %60864 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131487
-               OpStore %60864 %114257
-               OpBranch %56398
-      %52394 = OpLabel
-      %52397 = OpLoad %uint %47980
-      %52398 = OpBitwiseAnd %uint %52397 %uint_32768
-      %52399 = OpUGreaterThan %bool %52398 %uint_0
-               OpSelectionMerge %60830 None
-               OpSwitch %uint_0 %60814
-      %60814 = OpLabel
-               OpSelectionMerge %60829 None
-               OpBranchConditional %52399 %60816 %60824
-      %60824 = OpLabel
-      %60826 = OpISub %uint %129514 %int_1
-      %60827 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60826
-      %60828 = OpLoad %_arr_v3float_uint_2 %60827
-     %111696 = OpCompositeExtract %v3float %60828 0
-     %111697 = OpCompositeExtract %v3float %60828 1
-               OpBranch %60830
-      %60816 = OpLabel
-      %60818 = OpIAdd %uint %129517 %int_1
-      %60819 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60820 = OpLoad %v3float %60819
-               OpBranch %60830
-      %60829 = OpLabel
-               OpUnreachable
-      %60830 = OpLabel
-     %206718 = OpPhi %uint %60818 %60816 %129517 %60824
-     %131490 = OpPhi %uint %129514 %60816 %60826 %60824
-     %131489 = OpPhi %v3float %60820 %60816 %111696 %60824
-     %131488 = OpPhi %v3float %60820 %60816 %111697 %60824
-      %52403 = OpExtInst %v3float %1 Exp %131489
-      %52407 = OpExtInst %v3float %1 Exp %131488
-      %52413 = OpExtInst %v3float %1 FMin %52403 %52407
-      %52419 = OpExtInst %v3float %1 FMax %52403 %52407
-     %114248 = OpCompositeConstruct %_arr_v3float_uint_2 %52413 %52419
-      %60834 = OpIAdd %uint %131490 %int_1
-      %60836 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131490
-               OpStore %60836 %114248
-               OpBranch %56398
-      %52365 = OpLabel
-      %52368 = OpLoad %uint %47980
-      %52369 = OpBitwiseAnd %uint %52368 %uint_32768
-      %52370 = OpUGreaterThan %bool %52369 %uint_0
-               OpSelectionMerge %60802 None
-               OpSwitch %uint_0 %60786
-      %60786 = OpLabel
-               OpSelectionMerge %60801 None
-               OpBranchConditional %52370 %60788 %60796
-      %60796 = OpLabel
-      %60798 = OpISub %uint %129514 %int_1
-      %60799 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60798
-      %60800 = OpLoad %_arr_v3float_uint_2 %60799
-     %111705 = OpCompositeExtract %v3float %60800 0
-     %111706 = OpCompositeExtract %v3float %60800 1
-               OpBranch %60802
-      %60788 = OpLabel
-      %60790 = OpIAdd %uint %129517 %int_1
-      %60791 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60792 = OpLoad %v3float %60791
-               OpBranch %60802
-      %60801 = OpLabel
-               OpUnreachable
-      %60802 = OpLabel
-     %206717 = OpPhi %uint %60790 %60788 %129517 %60796
-     %131493 = OpPhi %uint %129514 %60788 %60798 %60796
-     %131492 = OpPhi %v3float %60792 %60788 %111705 %60796
-     %131491 = OpPhi %v3float %60792 %60788 %111706 %60796
-      %52374 = OpExtInst %v3float %1 InverseSqrt %131492
-      %52378 = OpExtInst %v3float %1 InverseSqrt %131491
-      %52384 = OpExtInst %v3float %1 FMin %52374 %52378
-      %52390 = OpExtInst %v3float %1 FMax %52374 %52378
-     %114239 = OpCompositeConstruct %_arr_v3float_uint_2 %52384 %52390
-      %60806 = OpIAdd %uint %131493 %int_1
-      %60808 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131493
-               OpStore %60808 %114239
-               OpBranch %56398
-      %52336 = OpLabel
-      %52339 = OpLoad %uint %47980
-      %52340 = OpBitwiseAnd %uint %52339 %uint_32768
-      %52341 = OpUGreaterThan %bool %52340 %uint_0
-               OpSelectionMerge %60774 None
-               OpSwitch %uint_0 %60758
-      %60758 = OpLabel
-               OpSelectionMerge %60773 None
-               OpBranchConditional %52341 %60760 %60768
-      %60768 = OpLabel
-      %60770 = OpISub %uint %129514 %int_1
-      %60771 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60770
-      %60772 = OpLoad %_arr_v3float_uint_2 %60771
-     %111714 = OpCompositeExtract %v3float %60772 0
-     %111715 = OpCompositeExtract %v3float %60772 1
-               OpBranch %60774
-      %60760 = OpLabel
-      %60762 = OpIAdd %uint %129517 %int_1
-      %60763 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60764 = OpLoad %v3float %60763
-               OpBranch %60774
-      %60773 = OpLabel
-               OpUnreachable
-      %60774 = OpLabel
-     %206716 = OpPhi %uint %60762 %60760 %129517 %60768
-     %131496 = OpPhi %uint %129514 %60760 %60770 %60768
-     %131495 = OpPhi %v3float %60764 %60760 %111714 %60768
-     %131494 = OpPhi %v3float %60764 %60760 %111715 %60768
-      %52345 = OpExtInst %v3float %1 Sqrt %131495
-      %52349 = OpExtInst %v3float %1 Sqrt %131494
-      %52355 = OpExtInst %v3float %1 FMin %52345 %52349
-      %52361 = OpExtInst %v3float %1 FMax %52345 %52349
-     %114230 = OpCompositeConstruct %_arr_v3float_uint_2 %52355 %52361
-      %60778 = OpIAdd %uint %131496 %int_1
-      %60780 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131496
-               OpStore %60780 %114230
-               OpBranch %56398
-      %52307 = OpLabel
-      %52310 = OpLoad %uint %47980
-      %52311 = OpBitwiseAnd %uint %52310 %uint_32768
-      %52312 = OpUGreaterThan %bool %52311 %uint_0
-               OpSelectionMerge %60746 None
-               OpSwitch %uint_0 %60730
-      %60730 = OpLabel
-               OpSelectionMerge %60745 None
-               OpBranchConditional %52312 %60732 %60740
-      %60740 = OpLabel
-      %60742 = OpISub %uint %129514 %int_1
-      %60743 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60742
-      %60744 = OpLoad %_arr_v3float_uint_2 %60743
-     %111723 = OpCompositeExtract %v3float %60744 0
-     %111724 = OpCompositeExtract %v3float %60744 1
-               OpBranch %60746
-      %60732 = OpLabel
-      %60734 = OpIAdd %uint %129517 %int_1
-      %60735 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60736 = OpLoad %v3float %60735
-               OpBranch %60746
-      %60745 = OpLabel
-               OpUnreachable
-      %60746 = OpLabel
-     %206715 = OpPhi %uint %60734 %60732 %129517 %60740
-     %131499 = OpPhi %uint %129514 %60732 %60742 %60740
-     %131498 = OpPhi %v3float %60736 %60732 %111723 %60740
-     %131497 = OpPhi %v3float %60736 %60732 %111724 %60740
-      %52316 = OpExtInst %v3float %1 Fract %131498
-      %52320 = OpExtInst %v3float %1 Fract %131497
-      %52326 = OpExtInst %v3float %1 FMin %52316 %52320
-      %52332 = OpExtInst %v3float %1 FMax %52316 %52320
-     %114221 = OpCompositeConstruct %_arr_v3float_uint_2 %52326 %52332
-      %60750 = OpIAdd %uint %131499 %int_1
-      %60752 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131499
-               OpStore %60752 %114221
-               OpBranch %56398
-      %52278 = OpLabel
-      %52281 = OpLoad %uint %47980
-      %52282 = OpBitwiseAnd %uint %52281 %uint_32768
-      %52283 = OpUGreaterThan %bool %52282 %uint_0
-               OpSelectionMerge %60718 None
-               OpSwitch %uint_0 %60702
-      %60702 = OpLabel
-               OpSelectionMerge %60717 None
-               OpBranchConditional %52283 %60704 %60712
-      %60712 = OpLabel
-      %60714 = OpISub %uint %129514 %int_1
-      %60715 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60714
-      %60716 = OpLoad %_arr_v3float_uint_2 %60715
-     %111732 = OpCompositeExtract %v3float %60716 0
-     %111733 = OpCompositeExtract %v3float %60716 1
-               OpBranch %60718
-      %60704 = OpLabel
-      %60706 = OpIAdd %uint %129517 %int_1
-      %60707 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60708 = OpLoad %v3float %60707
-               OpBranch %60718
-      %60717 = OpLabel
-               OpUnreachable
-      %60718 = OpLabel
-     %206714 = OpPhi %uint %60706 %60704 %129517 %60712
-     %131502 = OpPhi %uint %129514 %60704 %60714 %60712
-     %131501 = OpPhi %v3float %60708 %60704 %111732 %60712
-     %131500 = OpPhi %v3float %60708 %60704 %111733 %60712
-      %52287 = OpExtInst %v3float %1 Ceil %131501
-      %52291 = OpExtInst %v3float %1 Ceil %131500
-      %52297 = OpExtInst %v3float %1 FMin %52287 %52291
-      %52303 = OpExtInst %v3float %1 FMax %52287 %52291
-     %114212 = OpCompositeConstruct %_arr_v3float_uint_2 %52297 %52303
-      %60722 = OpIAdd %uint %131502 %int_1
-      %60724 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131502
-               OpStore %60724 %114212
-               OpBranch %56398
-      %52249 = OpLabel
-      %52252 = OpLoad %uint %47980
-      %52253 = OpBitwiseAnd %uint %52252 %uint_32768
-      %52254 = OpUGreaterThan %bool %52253 %uint_0
-               OpSelectionMerge %60690 None
-               OpSwitch %uint_0 %60674
-      %60674 = OpLabel
-               OpSelectionMerge %60689 None
-               OpBranchConditional %52254 %60676 %60684
-      %60684 = OpLabel
-      %60686 = OpISub %uint %129514 %int_1
-      %60687 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60686
-      %60688 = OpLoad %_arr_v3float_uint_2 %60687
-     %111741 = OpCompositeExtract %v3float %60688 0
-     %111742 = OpCompositeExtract %v3float %60688 1
-               OpBranch %60690
-      %60676 = OpLabel
-      %60678 = OpIAdd %uint %129517 %int_1
-      %60679 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60680 = OpLoad %v3float %60679
-               OpBranch %60690
-      %60689 = OpLabel
-               OpUnreachable
-      %60690 = OpLabel
-     %206713 = OpPhi %uint %60678 %60676 %129517 %60684
-     %131505 = OpPhi %uint %129514 %60676 %60686 %60684
-     %131504 = OpPhi %v3float %60680 %60676 %111741 %60684
-     %131503 = OpPhi %v3float %60680 %60676 %111742 %60684
-      %52258 = OpExtInst %v3float %1 Floor %131504
-      %52262 = OpExtInst %v3float %1 Floor %131503
-      %52268 = OpExtInst %v3float %1 FMin %52258 %52262
-      %52274 = OpExtInst %v3float %1 FMax %52258 %52262
-     %114203 = OpCompositeConstruct %_arr_v3float_uint_2 %52268 %52274
-      %60694 = OpIAdd %uint %131505 %int_1
-      %60696 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131505
-               OpStore %60696 %114203
-               OpBranch %56398
-      %52220 = OpLabel
-      %52223 = OpLoad %uint %47980
-      %52224 = OpBitwiseAnd %uint %52223 %uint_32768
-      %52225 = OpUGreaterThan %bool %52224 %uint_0
-               OpSelectionMerge %60662 None
-               OpSwitch %uint_0 %60646
-      %60646 = OpLabel
-               OpSelectionMerge %60661 None
-               OpBranchConditional %52225 %60648 %60656
-      %60656 = OpLabel
-      %60658 = OpISub %uint %129514 %int_1
-      %60659 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60658
-      %60660 = OpLoad %_arr_v3float_uint_2 %60659
-     %111750 = OpCompositeExtract %v3float %60660 0
-     %111751 = OpCompositeExtract %v3float %60660 1
-               OpBranch %60662
-      %60648 = OpLabel
-      %60650 = OpIAdd %uint %129517 %int_1
-      %60651 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60652 = OpLoad %v3float %60651
-               OpBranch %60662
-      %60661 = OpLabel
-               OpUnreachable
-      %60662 = OpLabel
-     %206712 = OpPhi %uint %60650 %60648 %129517 %60656
-     %131508 = OpPhi %uint %129514 %60648 %60658 %60656
-     %131507 = OpPhi %v3float %60652 %60648 %111750 %60656
-     %131506 = OpPhi %v3float %60652 %60648 %111751 %60656
-      %52229 = OpExtInst %v3float %1 FSign %131507
-      %52233 = OpExtInst %v3float %1 FSign %131506
-      %52239 = OpExtInst %v3float %1 FMin %52229 %52233
-      %52245 = OpExtInst %v3float %1 FMax %52229 %52233
-     %114194 = OpCompositeConstruct %_arr_v3float_uint_2 %52239 %52245
-      %60666 = OpIAdd %uint %131508 %int_1
-      %60668 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131508
-               OpStore %60668 %114194
-               OpBranch %56398
-      %52191 = OpLabel
-      %52194 = OpLoad %uint %47980
-      %52195 = OpBitwiseAnd %uint %52194 %uint_32768
-      %52196 = OpUGreaterThan %bool %52195 %uint_0
-               OpSelectionMerge %60634 None
-               OpSwitch %uint_0 %60618
-      %60618 = OpLabel
-               OpSelectionMerge %60633 None
-               OpBranchConditional %52196 %60620 %60628
-      %60628 = OpLabel
-      %60630 = OpISub %uint %129514 %int_1
-      %60631 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %60630
-      %60632 = OpLoad %_arr_v3float_uint_2 %60631
-     %111759 = OpCompositeExtract %v3float %60632 0
-     %111760 = OpCompositeExtract %v3float %60632 1
-               OpBranch %60634
-      %60620 = OpLabel
-      %60622 = OpIAdd %uint %129517 %int_1
-      %60623 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %60624 = OpLoad %v3float %60623
-               OpBranch %60634
-      %60633 = OpLabel
-               OpUnreachable
-      %60634 = OpLabel
-     %206711 = OpPhi %uint %60622 %60620 %129517 %60628
-     %131511 = OpPhi %uint %129514 %60620 %60630 %60628
-     %131510 = OpPhi %v3float %60624 %60620 %111759 %60628
-     %131509 = OpPhi %v3float %60624 %60620 %111760 %60628
-      %52200 = OpExtInst %v3float %1 FAbs %131510
-      %52204 = OpExtInst %v3float %1 FAbs %131509
-      %52210 = OpExtInst %v3float %1 FMin %52200 %52204
-      %52216 = OpExtInst %v3float %1 FMax %52200 %52204
-     %114185 = OpCompositeConstruct %_arr_v3float_uint_2 %52210 %52216
-      %60638 = OpIAdd %uint %131511 %int_1
-      %60640 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %131511
-               OpStore %60640 %114185
-               OpBranch %56398
-      %52109 = OpLabel
-      %52112 = OpLoad %uint %47980
-      %52113 = OpBitwiseAnd %uint %52112 %uint_32768
-      %52114 = OpUGreaterThan %bool %52113 %uint_0
-               OpSelectionMerge %60560 None
-               OpSwitch %uint_0 %60544
-      %60544 = OpLabel
-               OpSelectionMerge %60559 None
-               OpBranchConditional %52114 %60546 %60554
-      %60554 = OpLabel
-      %60556 = OpISub %uint %129525 %int_1
-      %60557 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60556
-      %60558 = OpLoad %_arr_v2float_uint_2 %60557
-     %111786 = OpCompositeExtract %v2float %60558 0
-     %111787 = OpCompositeExtract %v2float %60558 1
-               OpBranch %60560
-      %60546 = OpLabel
-      %60548 = OpIAdd %uint %130223 %int_1
-      %60549 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60550 = OpLoad %v2float %60549
-               OpBranch %60560
-      %60559 = OpLabel
-               OpUnreachable
-      %60560 = OpLabel
-     %131516 = OpPhi %uint %60548 %60546 %130223 %60554
-     %131515 = OpPhi %uint %129525 %60546 %60556 %60554
-     %131513 = OpPhi %v2float %60550 %60546 %111786 %60554
-     %131512 = OpPhi %v2float %60550 %60546 %111787 %60554
-      %52118 = OpLoad %uint %47980
-      %52119 = OpBitwiseAnd %uint %52118 %uint_16384
-      %52120 = OpUGreaterThan %bool %52119 %uint_0
-               OpSelectionMerge %60583 None
-               OpSwitch %uint_0 %60567
-      %60567 = OpLabel
-               OpSelectionMerge %60582 None
-               OpBranchConditional %52120 %60569 %60577
-      %60577 = OpLabel
-      %60579 = OpISub %uint %131515 %int_1
-      %60580 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60579
-      %60581 = OpLoad %_arr_v2float_uint_2 %60580
-     %111777 = OpCompositeExtract %v2float %60581 0
-     %111778 = OpCompositeExtract %v2float %60581 1
-               OpBranch %60583
-      %60569 = OpLabel
-      %60571 = OpIAdd %uint %131516 %int_1
-      %60572 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %131516
-      %60573 = OpLoad %v2float %60572
-               OpBranch %60583
-      %60582 = OpLabel
-               OpUnreachable
-      %60583 = OpLabel
-     %131521 = OpPhi %uint %60571 %60569 %131516 %60577
-     %131520 = OpPhi %uint %131515 %60569 %60579 %60577
-     %131518 = OpPhi %v2float %60573 %60569 %111777 %60577
-     %131517 = OpPhi %v2float %60573 %60569 %111778 %60577
-      %52124 = OpLoad %uint %47980
-      %52125 = OpBitwiseAnd %uint %52124 %uint_8192
-      %52126 = OpUGreaterThan %bool %52125 %uint_0
-               OpSelectionMerge %60606 None
-               OpSwitch %uint_0 %60590
-      %60590 = OpLabel
-               OpSelectionMerge %60605 None
-               OpBranchConditional %52126 %60592 %60600
-      %60600 = OpLabel
-      %60602 = OpISub %uint %131520 %int_1
-      %60603 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60602
-      %60604 = OpLoad %_arr_v2float_uint_2 %60603
-     %111768 = OpCompositeExtract %v2float %60604 0
-     %111769 = OpCompositeExtract %v2float %60604 1
-               OpBranch %60606
-      %60592 = OpLabel
-      %60594 = OpIAdd %uint %131521 %int_1
-      %60595 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %131521
-      %60596 = OpLoad %v2float %60595
-               OpBranch %60606
-      %60605 = OpLabel
-               OpUnreachable
-      %60606 = OpLabel
-     %209060 = OpPhi %uint %60594 %60592 %131521 %60600
-     %131530 = OpPhi %uint %131520 %60592 %60602 %60600
-     %131523 = OpPhi %v2float %60596 %60592 %111768 %60600
-     %131522 = OpPhi %v2float %60596 %60592 %111769 %60600
-      %52132 = OpFMul %v2float %131513 %131518
-      %52138 = OpFMul %v2float %131513 %131517
-      %52144 = OpFMul %v2float %131512 %131518
-      %52150 = OpFMul %v2float %131512 %131517
-      %52160 = OpExtInst %v2float %1 FMin %52144 %52150
-      %52161 = OpExtInst %v2float %1 FMin %52138 %52160
-      %52162 = OpExtInst %v2float %1 FMin %52132 %52161
-      %52172 = OpExtInst %v2float %1 FMax %52144 %52150
-      %52173 = OpExtInst %v2float %1 FMax %52138 %52172
-      %52174 = OpExtInst %v2float %1 FMax %52132 %52173
-      %52181 = OpFAdd %v2float %52162 %131523
-      %52187 = OpFAdd %v2float %52174 %131522
-     %114168 = OpCompositeConstruct %_arr_v2float_uint_2 %52181 %52187
-      %60610 = OpIAdd %uint %131530 %int_1
-      %60612 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131530
-               OpStore %60612 %114168
-               OpBranch %56398
-      %52082 = OpLabel
-      %52085 = OpLoad %uint %47980
-      %52086 = OpBitwiseAnd %uint %52085 %uint_32768
-      %52087 = OpUGreaterThan %bool %52086 %uint_0
-               OpSelectionMerge %60509 None
-               OpSwitch %uint_0 %60493
-      %60493 = OpLabel
-               OpSelectionMerge %60508 None
-               OpBranchConditional %52087 %60495 %60503
-      %60503 = OpLabel
-      %60505 = OpISub %uint %129525 %int_1
-      %60506 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60505
-      %60507 = OpLoad %_arr_v2float_uint_2 %60506
-     %111804 = OpCompositeExtract %v2float %60507 0
-     %111805 = OpCompositeExtract %v2float %60507 1
-               OpBranch %60509
-      %60495 = OpLabel
-      %60497 = OpIAdd %uint %130223 %int_1
-      %60498 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60499 = OpLoad %v2float %60498
-               OpBranch %60509
-      %60508 = OpLabel
-               OpUnreachable
-      %60509 = OpLabel
-     %131535 = OpPhi %uint %60497 %60495 %130223 %60503
-     %131534 = OpPhi %uint %129525 %60495 %60505 %60503
-     %131532 = OpPhi %v2float %60499 %60495 %111804 %60503
-     %131531 = OpPhi %v2float %60499 %60495 %111805 %60503
-      %52091 = OpLoad %uint %47980
-      %52092 = OpBitwiseAnd %uint %52091 %uint_16384
-      %52093 = OpUGreaterThan %bool %52092 %uint_0
-               OpSelectionMerge %60532 None
-               OpSwitch %uint_0 %60516
-      %60516 = OpLabel
-               OpSelectionMerge %60531 None
-               OpBranchConditional %52093 %60518 %60526
-      %60526 = OpLabel
-      %60528 = OpISub %uint %131534 %int_1
-      %60529 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60528
-      %60530 = OpLoad %_arr_v2float_uint_2 %60529
-     %111795 = OpCompositeExtract %v2float %60530 0
-     %111796 = OpCompositeExtract %v2float %60530 1
-               OpBranch %60532
-      %60518 = OpLabel
-      %60520 = OpIAdd %uint %131535 %int_1
-      %60521 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %131535
-      %60522 = OpLoad %v2float %60521
-               OpBranch %60532
-      %60531 = OpLabel
-               OpUnreachable
-      %60532 = OpLabel
-     %209059 = OpPhi %uint %60520 %60518 %131535 %60526
-     %131540 = OpPhi %uint %131534 %60518 %60528 %60526
-     %131537 = OpPhi %v2float %60522 %60518 %111795 %60526
-     %131536 = OpPhi %v2float %60522 %60518 %111796 %60526
-      %52099 = OpExtInst %v2float %1 FMax %131532 %131537
-      %52105 = OpExtInst %v2float %1 FMax %131531 %131536
-     %114157 = OpCompositeConstruct %_arr_v2float_uint_2 %52099 %52105
-      %60536 = OpIAdd %uint %131540 %int_1
-      %60538 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131540
-               OpStore %60538 %114157
-               OpBranch %56398
-      %52055 = OpLabel
-      %52058 = OpLoad %uint %47980
-      %52059 = OpBitwiseAnd %uint %52058 %uint_32768
-      %52060 = OpUGreaterThan %bool %52059 %uint_0
-               OpSelectionMerge %60458 None
-               OpSwitch %uint_0 %60442
-      %60442 = OpLabel
-               OpSelectionMerge %60457 None
-               OpBranchConditional %52060 %60444 %60452
-      %60452 = OpLabel
-      %60454 = OpISub %uint %129525 %int_1
-      %60455 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60454
-      %60456 = OpLoad %_arr_v2float_uint_2 %60455
-     %111822 = OpCompositeExtract %v2float %60456 0
-     %111823 = OpCompositeExtract %v2float %60456 1
-               OpBranch %60458
-      %60444 = OpLabel
-      %60446 = OpIAdd %uint %130223 %int_1
-      %60447 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60448 = OpLoad %v2float %60447
-               OpBranch %60458
-      %60457 = OpLabel
-               OpUnreachable
-      %60458 = OpLabel
-     %131545 = OpPhi %uint %60446 %60444 %130223 %60452
-     %131544 = OpPhi %uint %129525 %60444 %60454 %60452
-     %131542 = OpPhi %v2float %60448 %60444 %111822 %60452
-     %131541 = OpPhi %v2float %60448 %60444 %111823 %60452
-      %52064 = OpLoad %uint %47980
-      %52065 = OpBitwiseAnd %uint %52064 %uint_16384
-      %52066 = OpUGreaterThan %bool %52065 %uint_0
-               OpSelectionMerge %60481 None
-               OpSwitch %uint_0 %60465
-      %60465 = OpLabel
-               OpSelectionMerge %60480 None
-               OpBranchConditional %52066 %60467 %60475
-      %60475 = OpLabel
-      %60477 = OpISub %uint %131544 %int_1
-      %60478 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60477
-      %60479 = OpLoad %_arr_v2float_uint_2 %60478
-     %111813 = OpCompositeExtract %v2float %60479 0
-     %111814 = OpCompositeExtract %v2float %60479 1
-               OpBranch %60481
-      %60467 = OpLabel
-      %60469 = OpIAdd %uint %131545 %int_1
-      %60470 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %131545
-      %60471 = OpLoad %v2float %60470
-               OpBranch %60481
-      %60480 = OpLabel
-               OpUnreachable
-      %60481 = OpLabel
-     %209058 = OpPhi %uint %60469 %60467 %131545 %60475
-     %131550 = OpPhi %uint %131544 %60467 %60477 %60475
-     %131547 = OpPhi %v2float %60471 %60467 %111813 %60475
-     %131546 = OpPhi %v2float %60471 %60467 %111814 %60475
-      %52072 = OpExtInst %v2float %1 FMin %131542 %131547
-      %52078 = OpExtInst %v2float %1 FMin %131541 %131546
-     %114146 = OpCompositeConstruct %_arr_v2float_uint_2 %52072 %52078
-      %60485 = OpIAdd %uint %131550 %int_1
-      %60487 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131550
-               OpStore %60487 %114146
-               OpBranch %56398
-      %52026 = OpLabel
-      %52029 = OpLoad %uint %47980
-      %52030 = OpBitwiseAnd %uint %52029 %uint_32768
-      %52031 = OpUGreaterThan %bool %52030 %uint_0
-               OpSelectionMerge %60430 None
-               OpSwitch %uint_0 %60414
-      %60414 = OpLabel
-               OpSelectionMerge %60429 None
-               OpBranchConditional %52031 %60416 %60424
-      %60424 = OpLabel
-      %60426 = OpISub %uint %129525 %int_1
-      %60427 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60426
-      %60428 = OpLoad %_arr_v2float_uint_2 %60427
-     %111831 = OpCompositeExtract %v2float %60428 0
-     %111832 = OpCompositeExtract %v2float %60428 1
-               OpBranch %60430
-      %60416 = OpLabel
-      %60418 = OpIAdd %uint %130223 %int_1
-      %60419 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60420 = OpLoad %v2float %60419
-               OpBranch %60430
-      %60429 = OpLabel
-               OpUnreachable
-      %60430 = OpLabel
-     %209057 = OpPhi %uint %60418 %60416 %130223 %60424
-     %131553 = OpPhi %uint %129525 %60416 %60426 %60424
-     %131552 = OpPhi %v2float %60420 %60416 %111831 %60424
-     %131551 = OpPhi %v2float %60420 %60416 %111832 %60424
-      %52035 = OpExtInst %v2float %1 Trunc %131552
-      %52039 = OpExtInst %v2float %1 Trunc %131551
-      %52045 = OpExtInst %v2float %1 FMin %52035 %52039
-      %52051 = OpExtInst %v2float %1 FMax %52035 %52039
-     %114137 = OpCompositeConstruct %_arr_v2float_uint_2 %52045 %52051
-      %60434 = OpIAdd %uint %131553 %int_1
-      %60436 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131553
-               OpStore %60436 %114137
-               OpBranch %56398
-      %51997 = OpLabel
-      %52000 = OpLoad %uint %47980
-      %52001 = OpBitwiseAnd %uint %52000 %uint_32768
-      %52002 = OpUGreaterThan %bool %52001 %uint_0
-               OpSelectionMerge %60402 None
-               OpSwitch %uint_0 %60386
-      %60386 = OpLabel
-               OpSelectionMerge %60401 None
-               OpBranchConditional %52002 %60388 %60396
-      %60396 = OpLabel
-      %60398 = OpISub %uint %129525 %int_1
-      %60399 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60398
-      %60400 = OpLoad %_arr_v2float_uint_2 %60399
-     %111840 = OpCompositeExtract %v2float %60400 0
-     %111841 = OpCompositeExtract %v2float %60400 1
-               OpBranch %60402
-      %60388 = OpLabel
-      %60390 = OpIAdd %uint %130223 %int_1
-      %60391 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60392 = OpLoad %v2float %60391
-               OpBranch %60402
-      %60401 = OpLabel
-               OpUnreachable
-      %60402 = OpLabel
-     %209056 = OpPhi %uint %60390 %60388 %130223 %60396
-     %131556 = OpPhi %uint %129525 %60388 %60398 %60396
-     %131555 = OpPhi %v2float %60392 %60388 %111840 %60396
-     %131554 = OpPhi %v2float %60392 %60388 %111841 %60396
-      %52006 = OpExtInst %v2float %1 Round %131555
-      %52010 = OpExtInst %v2float %1 Round %131554
-      %52016 = OpExtInst %v2float %1 FMin %52006 %52010
-      %52022 = OpExtInst %v2float %1 FMax %52006 %52010
-     %114128 = OpCompositeConstruct %_arr_v2float_uint_2 %52016 %52022
-      %60406 = OpIAdd %uint %131556 %int_1
-      %60408 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131556
-               OpStore %60408 %114128
-               OpBranch %56398
-      %51968 = OpLabel
-      %51971 = OpLoad %uint %47980
-      %51972 = OpBitwiseAnd %uint %51971 %uint_32768
-      %51973 = OpUGreaterThan %bool %51972 %uint_0
-               OpSelectionMerge %60374 None
-               OpSwitch %uint_0 %60358
-      %60358 = OpLabel
-               OpSelectionMerge %60373 None
-               OpBranchConditional %51973 %60360 %60368
-      %60368 = OpLabel
-      %60370 = OpISub %uint %129525 %int_1
-      %60371 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60370
-      %60372 = OpLoad %_arr_v2float_uint_2 %60371
-     %111849 = OpCompositeExtract %v2float %60372 0
-     %111850 = OpCompositeExtract %v2float %60372 1
-               OpBranch %60374
-      %60360 = OpLabel
-      %60362 = OpIAdd %uint %130223 %int_1
-      %60363 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60364 = OpLoad %v2float %60363
-               OpBranch %60374
-      %60373 = OpLabel
-               OpUnreachable
-      %60374 = OpLabel
-     %209055 = OpPhi %uint %60362 %60360 %130223 %60368
-     %131559 = OpPhi %uint %129525 %60360 %60370 %60368
-     %131558 = OpPhi %v2float %60364 %60360 %111849 %60368
-     %131557 = OpPhi %v2float %60364 %60360 %111850 %60368
-      %51977 = OpExtInst %v2float %1 Tanh %131558
-      %51981 = OpExtInst %v2float %1 Tanh %131557
-      %51987 = OpExtInst %v2float %1 FMin %51977 %51981
-      %51993 = OpExtInst %v2float %1 FMax %51977 %51981
-     %114119 = OpCompositeConstruct %_arr_v2float_uint_2 %51987 %51993
-      %60378 = OpIAdd %uint %131559 %int_1
-      %60380 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131559
-               OpStore %60380 %114119
-               OpBranch %56398
-      %51939 = OpLabel
-      %51942 = OpLoad %uint %47980
-      %51943 = OpBitwiseAnd %uint %51942 %uint_32768
-      %51944 = OpUGreaterThan %bool %51943 %uint_0
-               OpSelectionMerge %60346 None
-               OpSwitch %uint_0 %60330
-      %60330 = OpLabel
-               OpSelectionMerge %60345 None
-               OpBranchConditional %51944 %60332 %60340
-      %60340 = OpLabel
-      %60342 = OpISub %uint %129525 %int_1
-      %60343 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60342
-      %60344 = OpLoad %_arr_v2float_uint_2 %60343
-     %111858 = OpCompositeExtract %v2float %60344 0
-     %111859 = OpCompositeExtract %v2float %60344 1
-               OpBranch %60346
-      %60332 = OpLabel
-      %60334 = OpIAdd %uint %130223 %int_1
-      %60335 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60336 = OpLoad %v2float %60335
-               OpBranch %60346
-      %60345 = OpLabel
-               OpUnreachable
-      %60346 = OpLabel
-     %209054 = OpPhi %uint %60334 %60332 %130223 %60340
-     %131562 = OpPhi %uint %129525 %60332 %60342 %60340
-     %131561 = OpPhi %v2float %60336 %60332 %111858 %60340
-     %131560 = OpPhi %v2float %60336 %60332 %111859 %60340
-      %51948 = OpExtInst %v2float %1 Sinh %131561
-      %51952 = OpExtInst %v2float %1 Sinh %131560
-      %51958 = OpExtInst %v2float %1 FMin %51948 %51952
-      %51964 = OpExtInst %v2float %1 FMax %51948 %51952
-     %114110 = OpCompositeConstruct %_arr_v2float_uint_2 %51958 %51964
-      %60350 = OpIAdd %uint %131562 %int_1
-      %60352 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131562
-               OpStore %60352 %114110
-               OpBranch %56398
-      %51910 = OpLabel
-      %51913 = OpLoad %uint %47980
-      %51914 = OpBitwiseAnd %uint %51913 %uint_32768
-      %51915 = OpUGreaterThan %bool %51914 %uint_0
-               OpSelectionMerge %60318 None
-               OpSwitch %uint_0 %60302
-      %60302 = OpLabel
-               OpSelectionMerge %60317 None
-               OpBranchConditional %51915 %60304 %60312
-      %60312 = OpLabel
-      %60314 = OpISub %uint %129525 %int_1
-      %60315 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60314
-      %60316 = OpLoad %_arr_v2float_uint_2 %60315
-     %111867 = OpCompositeExtract %v2float %60316 0
-     %111868 = OpCompositeExtract %v2float %60316 1
-               OpBranch %60318
-      %60304 = OpLabel
-      %60306 = OpIAdd %uint %130223 %int_1
-      %60307 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60308 = OpLoad %v2float %60307
-               OpBranch %60318
-      %60317 = OpLabel
-               OpUnreachable
-      %60318 = OpLabel
-     %209053 = OpPhi %uint %60306 %60304 %130223 %60312
-     %131565 = OpPhi %uint %129525 %60304 %60314 %60312
-     %131564 = OpPhi %v2float %60308 %60304 %111867 %60312
-     %131563 = OpPhi %v2float %60308 %60304 %111868 %60312
-      %51919 = OpExtInst %v2float %1 Cosh %131564
-      %51923 = OpExtInst %v2float %1 Cosh %131563
-      %51929 = OpExtInst %v2float %1 FMin %51919 %51923
-      %51935 = OpExtInst %v2float %1 FMax %51919 %51923
-     %114101 = OpCompositeConstruct %_arr_v2float_uint_2 %51929 %51935
-      %60322 = OpIAdd %uint %131565 %int_1
-      %60324 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131565
-               OpStore %60324 %114101
-               OpBranch %56398
-      %51881 = OpLabel
-      %51884 = OpLoad %uint %47980
-      %51885 = OpBitwiseAnd %uint %51884 %uint_32768
-      %51886 = OpUGreaterThan %bool %51885 %uint_0
-               OpSelectionMerge %60290 None
-               OpSwitch %uint_0 %60274
-      %60274 = OpLabel
-               OpSelectionMerge %60289 None
-               OpBranchConditional %51886 %60276 %60284
-      %60284 = OpLabel
-      %60286 = OpISub %uint %129525 %int_1
-      %60287 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60286
-      %60288 = OpLoad %_arr_v2float_uint_2 %60287
-     %111876 = OpCompositeExtract %v2float %60288 0
-     %111877 = OpCompositeExtract %v2float %60288 1
-               OpBranch %60290
-      %60276 = OpLabel
-      %60278 = OpIAdd %uint %130223 %int_1
-      %60279 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60280 = OpLoad %v2float %60279
-               OpBranch %60290
-      %60289 = OpLabel
-               OpUnreachable
-      %60290 = OpLabel
-     %209052 = OpPhi %uint %60278 %60276 %130223 %60284
-     %131568 = OpPhi %uint %129525 %60276 %60286 %60284
-     %131567 = OpPhi %v2float %60280 %60276 %111876 %60284
-     %131566 = OpPhi %v2float %60280 %60276 %111877 %60284
-      %51890 = OpExtInst %v2float %1 Atanh %131567
-      %51894 = OpExtInst %v2float %1 Atanh %131566
-      %51900 = OpExtInst %v2float %1 FMin %51890 %51894
-      %51906 = OpExtInst %v2float %1 FMax %51890 %51894
-     %114092 = OpCompositeConstruct %_arr_v2float_uint_2 %51900 %51906
-      %60294 = OpIAdd %uint %131568 %int_1
-      %60296 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131568
-               OpStore %60296 %114092
-               OpBranch %56398
-      %51852 = OpLabel
-      %51855 = OpLoad %uint %47980
-      %51856 = OpBitwiseAnd %uint %51855 %uint_32768
-      %51857 = OpUGreaterThan %bool %51856 %uint_0
-               OpSelectionMerge %60262 None
-               OpSwitch %uint_0 %60246
-      %60246 = OpLabel
-               OpSelectionMerge %60261 None
-               OpBranchConditional %51857 %60248 %60256
-      %60256 = OpLabel
-      %60258 = OpISub %uint %129525 %int_1
-      %60259 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60258
-      %60260 = OpLoad %_arr_v2float_uint_2 %60259
-     %111885 = OpCompositeExtract %v2float %60260 0
-     %111886 = OpCompositeExtract %v2float %60260 1
-               OpBranch %60262
-      %60248 = OpLabel
-      %60250 = OpIAdd %uint %130223 %int_1
-      %60251 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60252 = OpLoad %v2float %60251
-               OpBranch %60262
-      %60261 = OpLabel
-               OpUnreachable
-      %60262 = OpLabel
-     %209051 = OpPhi %uint %60250 %60248 %130223 %60256
-     %131571 = OpPhi %uint %129525 %60248 %60258 %60256
-     %131570 = OpPhi %v2float %60252 %60248 %111885 %60256
-     %131569 = OpPhi %v2float %60252 %60248 %111886 %60256
-      %51861 = OpExtInst %v2float %1 Asinh %131570
-      %51865 = OpExtInst %v2float %1 Asinh %131569
-      %51871 = OpExtInst %v2float %1 FMin %51861 %51865
-      %51877 = OpExtInst %v2float %1 FMax %51861 %51865
-     %114083 = OpCompositeConstruct %_arr_v2float_uint_2 %51871 %51877
-      %60266 = OpIAdd %uint %131571 %int_1
-      %60268 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131571
-               OpStore %60268 %114083
-               OpBranch %56398
-      %51823 = OpLabel
-      %51826 = OpLoad %uint %47980
-      %51827 = OpBitwiseAnd %uint %51826 %uint_32768
-      %51828 = OpUGreaterThan %bool %51827 %uint_0
-               OpSelectionMerge %60234 None
-               OpSwitch %uint_0 %60218
-      %60218 = OpLabel
-               OpSelectionMerge %60233 None
-               OpBranchConditional %51828 %60220 %60228
-      %60228 = OpLabel
-      %60230 = OpISub %uint %129525 %int_1
-      %60231 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60230
-      %60232 = OpLoad %_arr_v2float_uint_2 %60231
-     %111894 = OpCompositeExtract %v2float %60232 0
-     %111895 = OpCompositeExtract %v2float %60232 1
-               OpBranch %60234
-      %60220 = OpLabel
-      %60222 = OpIAdd %uint %130223 %int_1
-      %60223 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60224 = OpLoad %v2float %60223
-               OpBranch %60234
-      %60233 = OpLabel
-               OpUnreachable
-      %60234 = OpLabel
-     %209050 = OpPhi %uint %60222 %60220 %130223 %60228
-     %131574 = OpPhi %uint %129525 %60220 %60230 %60228
-     %131573 = OpPhi %v2float %60224 %60220 %111894 %60228
-     %131572 = OpPhi %v2float %60224 %60220 %111895 %60228
-      %51832 = OpExtInst %v2float %1 Acosh %131573
-      %51836 = OpExtInst %v2float %1 Acosh %131572
-      %51842 = OpExtInst %v2float %1 FMin %51832 %51836
-      %51848 = OpExtInst %v2float %1 FMax %51832 %51836
-     %114074 = OpCompositeConstruct %_arr_v2float_uint_2 %51842 %51848
-      %60238 = OpIAdd %uint %131574 %int_1
-      %60240 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131574
-               OpStore %60240 %114074
-               OpBranch %56398
-      %51794 = OpLabel
-      %51797 = OpLoad %uint %47980
-      %51798 = OpBitwiseAnd %uint %51797 %uint_32768
-      %51799 = OpUGreaterThan %bool %51798 %uint_0
-               OpSelectionMerge %60206 None
-               OpSwitch %uint_0 %60190
-      %60190 = OpLabel
-               OpSelectionMerge %60205 None
-               OpBranchConditional %51799 %60192 %60200
-      %60200 = OpLabel
-      %60202 = OpISub %uint %129525 %int_1
-      %60203 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60202
-      %60204 = OpLoad %_arr_v2float_uint_2 %60203
-     %111903 = OpCompositeExtract %v2float %60204 0
-     %111904 = OpCompositeExtract %v2float %60204 1
-               OpBranch %60206
-      %60192 = OpLabel
-      %60194 = OpIAdd %uint %130223 %int_1
-      %60195 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60196 = OpLoad %v2float %60195
-               OpBranch %60206
-      %60205 = OpLabel
-               OpUnreachable
-      %60206 = OpLabel
-     %209049 = OpPhi %uint %60194 %60192 %130223 %60200
-     %131577 = OpPhi %uint %129525 %60192 %60202 %60200
-     %131576 = OpPhi %v2float %60196 %60192 %111903 %60200
-     %131575 = OpPhi %v2float %60196 %60192 %111904 %60200
-      %51803 = OpExtInst %v2float %1 Atan %131576
-      %51807 = OpExtInst %v2float %1 Atan %131575
-      %51813 = OpExtInst %v2float %1 FMin %51803 %51807
-      %51819 = OpExtInst %v2float %1 FMax %51803 %51807
-     %114065 = OpCompositeConstruct %_arr_v2float_uint_2 %51813 %51819
-      %60210 = OpIAdd %uint %131577 %int_1
-      %60212 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131577
-               OpStore %60212 %114065
-               OpBranch %56398
-      %51765 = OpLabel
-      %51768 = OpLoad %uint %47980
-      %51769 = OpBitwiseAnd %uint %51768 %uint_32768
-      %51770 = OpUGreaterThan %bool %51769 %uint_0
-               OpSelectionMerge %60178 None
-               OpSwitch %uint_0 %60162
-      %60162 = OpLabel
-               OpSelectionMerge %60177 None
-               OpBranchConditional %51770 %60164 %60172
-      %60172 = OpLabel
-      %60174 = OpISub %uint %129525 %int_1
-      %60175 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60174
-      %60176 = OpLoad %_arr_v2float_uint_2 %60175
-     %111912 = OpCompositeExtract %v2float %60176 0
-     %111913 = OpCompositeExtract %v2float %60176 1
-               OpBranch %60178
-      %60164 = OpLabel
-      %60166 = OpIAdd %uint %130223 %int_1
-      %60167 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60168 = OpLoad %v2float %60167
-               OpBranch %60178
-      %60177 = OpLabel
-               OpUnreachable
-      %60178 = OpLabel
-     %209048 = OpPhi %uint %60166 %60164 %130223 %60172
-     %131580 = OpPhi %uint %129525 %60164 %60174 %60172
-     %131579 = OpPhi %v2float %60168 %60164 %111912 %60172
-     %131578 = OpPhi %v2float %60168 %60164 %111913 %60172
-      %51774 = OpExtInst %v2float %1 Acos %131579
-      %51778 = OpExtInst %v2float %1 Acos %131578
-      %51784 = OpExtInst %v2float %1 FMin %51774 %51778
-      %51790 = OpExtInst %v2float %1 FMax %51774 %51778
-     %114056 = OpCompositeConstruct %_arr_v2float_uint_2 %51784 %51790
-      %60182 = OpIAdd %uint %131580 %int_1
-      %60184 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131580
-               OpStore %60184 %114056
-               OpBranch %56398
-      %51736 = OpLabel
-      %51739 = OpLoad %uint %47980
-      %51740 = OpBitwiseAnd %uint %51739 %uint_32768
-      %51741 = OpUGreaterThan %bool %51740 %uint_0
-               OpSelectionMerge %60150 None
-               OpSwitch %uint_0 %60134
-      %60134 = OpLabel
-               OpSelectionMerge %60149 None
-               OpBranchConditional %51741 %60136 %60144
-      %60144 = OpLabel
-      %60146 = OpISub %uint %129525 %int_1
-      %60147 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60146
-      %60148 = OpLoad %_arr_v2float_uint_2 %60147
-     %111921 = OpCompositeExtract %v2float %60148 0
-     %111922 = OpCompositeExtract %v2float %60148 1
-               OpBranch %60150
-      %60136 = OpLabel
-      %60138 = OpIAdd %uint %130223 %int_1
-      %60139 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60140 = OpLoad %v2float %60139
-               OpBranch %60150
-      %60149 = OpLabel
-               OpUnreachable
-      %60150 = OpLabel
-     %209047 = OpPhi %uint %60138 %60136 %130223 %60144
-     %131583 = OpPhi %uint %129525 %60136 %60146 %60144
-     %131582 = OpPhi %v2float %60140 %60136 %111921 %60144
-     %131581 = OpPhi %v2float %60140 %60136 %111922 %60144
-      %51745 = OpExtInst %v2float %1 Asin %131582
-      %51749 = OpExtInst %v2float %1 Asin %131581
-      %51755 = OpExtInst %v2float %1 FMin %51745 %51749
-      %51761 = OpExtInst %v2float %1 FMax %51745 %51749
-     %114047 = OpCompositeConstruct %_arr_v2float_uint_2 %51755 %51761
-      %60154 = OpIAdd %uint %131583 %int_1
-      %60156 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131583
-               OpStore %60156 %114047
-               OpBranch %56398
-      %51707 = OpLabel
-      %51710 = OpLoad %uint %47980
-      %51711 = OpBitwiseAnd %uint %51710 %uint_32768
-      %51712 = OpUGreaterThan %bool %51711 %uint_0
-               OpSelectionMerge %60122 None
-               OpSwitch %uint_0 %60106
-      %60106 = OpLabel
-               OpSelectionMerge %60121 None
-               OpBranchConditional %51712 %60108 %60116
-      %60116 = OpLabel
-      %60118 = OpISub %uint %129525 %int_1
-      %60119 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60118
-      %60120 = OpLoad %_arr_v2float_uint_2 %60119
-     %111930 = OpCompositeExtract %v2float %60120 0
-     %111931 = OpCompositeExtract %v2float %60120 1
-               OpBranch %60122
-      %60108 = OpLabel
-      %60110 = OpIAdd %uint %130223 %int_1
-      %60111 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60112 = OpLoad %v2float %60111
-               OpBranch %60122
-      %60121 = OpLabel
-               OpUnreachable
-      %60122 = OpLabel
-     %209046 = OpPhi %uint %60110 %60108 %130223 %60116
-     %131586 = OpPhi %uint %129525 %60108 %60118 %60116
-     %131585 = OpPhi %v2float %60112 %60108 %111930 %60116
-     %131584 = OpPhi %v2float %60112 %60108 %111931 %60116
-      %51716 = OpExtInst %v2float %1 Tan %131585
-      %51720 = OpExtInst %v2float %1 Tan %131584
-      %51726 = OpExtInst %v2float %1 FMin %51716 %51720
-      %51732 = OpExtInst %v2float %1 FMax %51716 %51720
-     %114038 = OpCompositeConstruct %_arr_v2float_uint_2 %51726 %51732
-      %60126 = OpIAdd %uint %131586 %int_1
-      %60128 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131586
-               OpStore %60128 %114038
-               OpBranch %56398
-      %51678 = OpLabel
-      %51681 = OpLoad %uint %47980
-      %51682 = OpBitwiseAnd %uint %51681 %uint_32768
-      %51683 = OpUGreaterThan %bool %51682 %uint_0
-               OpSelectionMerge %60094 None
-               OpSwitch %uint_0 %60078
-      %60078 = OpLabel
-               OpSelectionMerge %60093 None
-               OpBranchConditional %51683 %60080 %60088
-      %60088 = OpLabel
-      %60090 = OpISub %uint %129525 %int_1
-      %60091 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60090
-      %60092 = OpLoad %_arr_v2float_uint_2 %60091
-     %111939 = OpCompositeExtract %v2float %60092 0
-     %111940 = OpCompositeExtract %v2float %60092 1
-               OpBranch %60094
-      %60080 = OpLabel
-      %60082 = OpIAdd %uint %130223 %int_1
-      %60083 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60084 = OpLoad %v2float %60083
-               OpBranch %60094
-      %60093 = OpLabel
-               OpUnreachable
-      %60094 = OpLabel
-     %209045 = OpPhi %uint %60082 %60080 %130223 %60088
-     %131589 = OpPhi %uint %129525 %60080 %60090 %60088
-     %131588 = OpPhi %v2float %60084 %60080 %111939 %60088
-     %131587 = OpPhi %v2float %60084 %60080 %111940 %60088
-      %51687 = OpExtInst %v2float %1 Cos %131588
-      %51691 = OpExtInst %v2float %1 Cos %131587
-      %51697 = OpExtInst %v2float %1 FMin %51687 %51691
-      %51703 = OpExtInst %v2float %1 FMax %51687 %51691
-     %114029 = OpCompositeConstruct %_arr_v2float_uint_2 %51697 %51703
-      %60098 = OpIAdd %uint %131589 %int_1
-      %60100 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131589
-               OpStore %60100 %114029
-               OpBranch %56398
-      %51649 = OpLabel
-      %51652 = OpLoad %uint %47980
-      %51653 = OpBitwiseAnd %uint %51652 %uint_32768
-      %51654 = OpUGreaterThan %bool %51653 %uint_0
-               OpSelectionMerge %60066 None
-               OpSwitch %uint_0 %60050
-      %60050 = OpLabel
-               OpSelectionMerge %60065 None
-               OpBranchConditional %51654 %60052 %60060
-      %60060 = OpLabel
-      %60062 = OpISub %uint %129525 %int_1
-      %60063 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60062
-      %60064 = OpLoad %_arr_v2float_uint_2 %60063
-     %111948 = OpCompositeExtract %v2float %60064 0
-     %111949 = OpCompositeExtract %v2float %60064 1
-               OpBranch %60066
-      %60052 = OpLabel
-      %60054 = OpIAdd %uint %130223 %int_1
-      %60055 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60056 = OpLoad %v2float %60055
-               OpBranch %60066
-      %60065 = OpLabel
-               OpUnreachable
-      %60066 = OpLabel
-     %209044 = OpPhi %uint %60054 %60052 %130223 %60060
-     %131592 = OpPhi %uint %129525 %60052 %60062 %60060
-     %131591 = OpPhi %v2float %60056 %60052 %111948 %60060
-     %131590 = OpPhi %v2float %60056 %60052 %111949 %60060
-      %51658 = OpExtInst %v2float %1 Sin %131591
-      %51662 = OpExtInst %v2float %1 Sin %131590
-      %51668 = OpExtInst %v2float %1 FMin %51658 %51662
-      %51674 = OpExtInst %v2float %1 FMax %51658 %51662
-     %114020 = OpCompositeConstruct %_arr_v2float_uint_2 %51668 %51674
-      %60070 = OpIAdd %uint %131592 %int_1
-      %60072 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131592
-               OpStore %60072 %114020
-               OpBranch %56398
-      %51620 = OpLabel
-      %51623 = OpLoad %uint %47980
-      %51624 = OpBitwiseAnd %uint %51623 %uint_32768
-      %51625 = OpUGreaterThan %bool %51624 %uint_0
-               OpSelectionMerge %60038 None
-               OpSwitch %uint_0 %60022
-      %60022 = OpLabel
-               OpSelectionMerge %60037 None
-               OpBranchConditional %51625 %60024 %60032
-      %60032 = OpLabel
-      %60034 = OpISub %uint %129525 %int_1
-      %60035 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60034
-      %60036 = OpLoad %_arr_v2float_uint_2 %60035
-     %111957 = OpCompositeExtract %v2float %60036 0
-     %111958 = OpCompositeExtract %v2float %60036 1
-               OpBranch %60038
-      %60024 = OpLabel
-      %60026 = OpIAdd %uint %130223 %int_1
-      %60027 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60028 = OpLoad %v2float %60027
-               OpBranch %60038
-      %60037 = OpLabel
-               OpUnreachable
-      %60038 = OpLabel
-     %209043 = OpPhi %uint %60026 %60024 %130223 %60032
-     %131595 = OpPhi %uint %129525 %60024 %60034 %60032
-     %131594 = OpPhi %v2float %60028 %60024 %111957 %60032
-     %131593 = OpPhi %v2float %60028 %60024 %111958 %60032
-      %51629 = OpExtInst %v2float %1 Log2 %131594
-      %51633 = OpExtInst %v2float %1 Log2 %131593
-      %51639 = OpExtInst %v2float %1 FMin %51629 %51633
-      %51645 = OpExtInst %v2float %1 FMax %51629 %51633
-     %114011 = OpCompositeConstruct %_arr_v2float_uint_2 %51639 %51645
-      %60042 = OpIAdd %uint %131595 %int_1
-      %60044 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131595
-               OpStore %60044 %114011
-               OpBranch %56398
-      %51591 = OpLabel
-      %51594 = OpLoad %uint %47980
-      %51595 = OpBitwiseAnd %uint %51594 %uint_32768
-      %51596 = OpUGreaterThan %bool %51595 %uint_0
-               OpSelectionMerge %60010 None
-               OpSwitch %uint_0 %59994
-      %59994 = OpLabel
-               OpSelectionMerge %60009 None
-               OpBranchConditional %51596 %59996 %60004
-      %60004 = OpLabel
-      %60006 = OpISub %uint %129525 %int_1
-      %60007 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %60006
-      %60008 = OpLoad %_arr_v2float_uint_2 %60007
-     %111966 = OpCompositeExtract %v2float %60008 0
-     %111967 = OpCompositeExtract %v2float %60008 1
-               OpBranch %60010
-      %59996 = OpLabel
-      %59998 = OpIAdd %uint %130223 %int_1
-      %59999 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %60000 = OpLoad %v2float %59999
-               OpBranch %60010
-      %60009 = OpLabel
-               OpUnreachable
-      %60010 = OpLabel
-     %209042 = OpPhi %uint %59998 %59996 %130223 %60004
-     %131598 = OpPhi %uint %129525 %59996 %60006 %60004
-     %131597 = OpPhi %v2float %60000 %59996 %111966 %60004
-     %131596 = OpPhi %v2float %60000 %59996 %111967 %60004
-      %51600 = OpExtInst %v2float %1 Log %131597
-      %51604 = OpExtInst %v2float %1 Log %131596
-      %51610 = OpExtInst %v2float %1 FMin %51600 %51604
-      %51616 = OpExtInst %v2float %1 FMax %51600 %51604
-     %114002 = OpCompositeConstruct %_arr_v2float_uint_2 %51610 %51616
-      %60014 = OpIAdd %uint %131598 %int_1
-      %60016 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131598
-               OpStore %60016 %114002
-               OpBranch %56398
-      %51562 = OpLabel
-      %51565 = OpLoad %uint %47980
-      %51566 = OpBitwiseAnd %uint %51565 %uint_32768
-      %51567 = OpUGreaterThan %bool %51566 %uint_0
-               OpSelectionMerge %59982 None
-               OpSwitch %uint_0 %59966
-      %59966 = OpLabel
-               OpSelectionMerge %59981 None
-               OpBranchConditional %51567 %59968 %59976
-      %59976 = OpLabel
-      %59978 = OpISub %uint %129525 %int_1
-      %59979 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %59978
-      %59980 = OpLoad %_arr_v2float_uint_2 %59979
-     %111975 = OpCompositeExtract %v2float %59980 0
-     %111976 = OpCompositeExtract %v2float %59980 1
-               OpBranch %59982
-      %59968 = OpLabel
-      %59970 = OpIAdd %uint %130223 %int_1
-      %59971 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %59972 = OpLoad %v2float %59971
-               OpBranch %59982
-      %59981 = OpLabel
-               OpUnreachable
-      %59982 = OpLabel
-     %209041 = OpPhi %uint %59970 %59968 %130223 %59976
-     %131601 = OpPhi %uint %129525 %59968 %59978 %59976
-     %131600 = OpPhi %v2float %59972 %59968 %111975 %59976
-     %131599 = OpPhi %v2float %59972 %59968 %111976 %59976
-      %51571 = OpExtInst %v2float %1 Exp2 %131600
-      %51575 = OpExtInst %v2float %1 Exp2 %131599
-      %51581 = OpExtInst %v2float %1 FMin %51571 %51575
-      %51587 = OpExtInst %v2float %1 FMax %51571 %51575
-     %113993 = OpCompositeConstruct %_arr_v2float_uint_2 %51581 %51587
-      %59986 = OpIAdd %uint %131601 %int_1
-      %59988 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131601
-               OpStore %59988 %113993
-               OpBranch %56398
-      %51533 = OpLabel
-      %51536 = OpLoad %uint %47980
-      %51537 = OpBitwiseAnd %uint %51536 %uint_32768
-      %51538 = OpUGreaterThan %bool %51537 %uint_0
-               OpSelectionMerge %59954 None
-               OpSwitch %uint_0 %59938
-      %59938 = OpLabel
-               OpSelectionMerge %59953 None
-               OpBranchConditional %51538 %59940 %59948
-      %59948 = OpLabel
-      %59950 = OpISub %uint %129525 %int_1
-      %59951 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %59950
-      %59952 = OpLoad %_arr_v2float_uint_2 %59951
-     %111984 = OpCompositeExtract %v2float %59952 0
-     %111985 = OpCompositeExtract %v2float %59952 1
-               OpBranch %59954
-      %59940 = OpLabel
-      %59942 = OpIAdd %uint %130223 %int_1
-      %59943 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %59944 = OpLoad %v2float %59943
-               OpBranch %59954
-      %59953 = OpLabel
-               OpUnreachable
-      %59954 = OpLabel
-     %209040 = OpPhi %uint %59942 %59940 %130223 %59948
-     %131604 = OpPhi %uint %129525 %59940 %59950 %59948
-     %131603 = OpPhi %v2float %59944 %59940 %111984 %59948
-     %131602 = OpPhi %v2float %59944 %59940 %111985 %59948
-      %51542 = OpExtInst %v2float %1 Exp %131603
-      %51546 = OpExtInst %v2float %1 Exp %131602
-      %51552 = OpExtInst %v2float %1 FMin %51542 %51546
-      %51558 = OpExtInst %v2float %1 FMax %51542 %51546
-     %113984 = OpCompositeConstruct %_arr_v2float_uint_2 %51552 %51558
-      %59958 = OpIAdd %uint %131604 %int_1
-      %59960 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131604
-               OpStore %59960 %113984
-               OpBranch %56398
-      %51504 = OpLabel
-      %51507 = OpLoad %uint %47980
-      %51508 = OpBitwiseAnd %uint %51507 %uint_32768
-      %51509 = OpUGreaterThan %bool %51508 %uint_0
-               OpSelectionMerge %59926 None
-               OpSwitch %uint_0 %59910
-      %59910 = OpLabel
-               OpSelectionMerge %59925 None
-               OpBranchConditional %51509 %59912 %59920
-      %59920 = OpLabel
-      %59922 = OpISub %uint %129525 %int_1
-      %59923 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %59922
-      %59924 = OpLoad %_arr_v2float_uint_2 %59923
-     %111993 = OpCompositeExtract %v2float %59924 0
-     %111994 = OpCompositeExtract %v2float %59924 1
-               OpBranch %59926
-      %59912 = OpLabel
-      %59914 = OpIAdd %uint %130223 %int_1
-      %59915 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %59916 = OpLoad %v2float %59915
-               OpBranch %59926
-      %59925 = OpLabel
-               OpUnreachable
-      %59926 = OpLabel
-     %209039 = OpPhi %uint %59914 %59912 %130223 %59920
-     %131607 = OpPhi %uint %129525 %59912 %59922 %59920
-     %131606 = OpPhi %v2float %59916 %59912 %111993 %59920
-     %131605 = OpPhi %v2float %59916 %59912 %111994 %59920
-      %51513 = OpExtInst %v2float %1 InverseSqrt %131606
-      %51517 = OpExtInst %v2float %1 InverseSqrt %131605
-      %51523 = OpExtInst %v2float %1 FMin %51513 %51517
-      %51529 = OpExtInst %v2float %1 FMax %51513 %51517
-     %113975 = OpCompositeConstruct %_arr_v2float_uint_2 %51523 %51529
-      %59930 = OpIAdd %uint %131607 %int_1
-      %59932 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131607
-               OpStore %59932 %113975
-               OpBranch %56398
-      %51475 = OpLabel
-      %51478 = OpLoad %uint %47980
-      %51479 = OpBitwiseAnd %uint %51478 %uint_32768
-      %51480 = OpUGreaterThan %bool %51479 %uint_0
-               OpSelectionMerge %59898 None
-               OpSwitch %uint_0 %59882
-      %59882 = OpLabel
-               OpSelectionMerge %59897 None
-               OpBranchConditional %51480 %59884 %59892
-      %59892 = OpLabel
-      %59894 = OpISub %uint %129525 %int_1
-      %59895 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %59894
-      %59896 = OpLoad %_arr_v2float_uint_2 %59895
-     %112002 = OpCompositeExtract %v2float %59896 0
-     %112003 = OpCompositeExtract %v2float %59896 1
-               OpBranch %59898
-      %59884 = OpLabel
-      %59886 = OpIAdd %uint %130223 %int_1
-      %59887 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %59888 = OpLoad %v2float %59887
-               OpBranch %59898
-      %59897 = OpLabel
-               OpUnreachable
-      %59898 = OpLabel
-     %209038 = OpPhi %uint %59886 %59884 %130223 %59892
-     %131610 = OpPhi %uint %129525 %59884 %59894 %59892
-     %131609 = OpPhi %v2float %59888 %59884 %112002 %59892
-     %131608 = OpPhi %v2float %59888 %59884 %112003 %59892
-      %51484 = OpExtInst %v2float %1 Sqrt %131609
-      %51488 = OpExtInst %v2float %1 Sqrt %131608
-      %51494 = OpExtInst %v2float %1 FMin %51484 %51488
-      %51500 = OpExtInst %v2float %1 FMax %51484 %51488
-     %113966 = OpCompositeConstruct %_arr_v2float_uint_2 %51494 %51500
-      %59902 = OpIAdd %uint %131610 %int_1
-      %59904 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131610
-               OpStore %59904 %113966
-               OpBranch %56398
-      %51446 = OpLabel
-      %51449 = OpLoad %uint %47980
-      %51450 = OpBitwiseAnd %uint %51449 %uint_32768
-      %51451 = OpUGreaterThan %bool %51450 %uint_0
-               OpSelectionMerge %59870 None
-               OpSwitch %uint_0 %59854
-      %59854 = OpLabel
-               OpSelectionMerge %59869 None
-               OpBranchConditional %51451 %59856 %59864
-      %59864 = OpLabel
-      %59866 = OpISub %uint %129525 %int_1
-      %59867 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %59866
-      %59868 = OpLoad %_arr_v2float_uint_2 %59867
-     %112011 = OpCompositeExtract %v2float %59868 0
-     %112012 = OpCompositeExtract %v2float %59868 1
-               OpBranch %59870
-      %59856 = OpLabel
-      %59858 = OpIAdd %uint %130223 %int_1
-      %59859 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %59860 = OpLoad %v2float %59859
-               OpBranch %59870
-      %59869 = OpLabel
-               OpUnreachable
-      %59870 = OpLabel
-     %209037 = OpPhi %uint %59858 %59856 %130223 %59864
-     %131613 = OpPhi %uint %129525 %59856 %59866 %59864
-     %131612 = OpPhi %v2float %59860 %59856 %112011 %59864
-     %131611 = OpPhi %v2float %59860 %59856 %112012 %59864
-      %51455 = OpExtInst %v2float %1 Fract %131612
-      %51459 = OpExtInst %v2float %1 Fract %131611
-      %51465 = OpExtInst %v2float %1 FMin %51455 %51459
-      %51471 = OpExtInst %v2float %1 FMax %51455 %51459
-     %113957 = OpCompositeConstruct %_arr_v2float_uint_2 %51465 %51471
-      %59874 = OpIAdd %uint %131613 %int_1
-      %59876 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131613
-               OpStore %59876 %113957
-               OpBranch %56398
-      %51417 = OpLabel
-      %51420 = OpLoad %uint %47980
-      %51421 = OpBitwiseAnd %uint %51420 %uint_32768
-      %51422 = OpUGreaterThan %bool %51421 %uint_0
-               OpSelectionMerge %59842 None
-               OpSwitch %uint_0 %59826
-      %59826 = OpLabel
-               OpSelectionMerge %59841 None
-               OpBranchConditional %51422 %59828 %59836
-      %59836 = OpLabel
-      %59838 = OpISub %uint %129525 %int_1
-      %59839 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %59838
-      %59840 = OpLoad %_arr_v2float_uint_2 %59839
-     %112020 = OpCompositeExtract %v2float %59840 0
-     %112021 = OpCompositeExtract %v2float %59840 1
-               OpBranch %59842
-      %59828 = OpLabel
-      %59830 = OpIAdd %uint %130223 %int_1
-      %59831 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %59832 = OpLoad %v2float %59831
-               OpBranch %59842
-      %59841 = OpLabel
-               OpUnreachable
-      %59842 = OpLabel
-     %209036 = OpPhi %uint %59830 %59828 %130223 %59836
-     %131616 = OpPhi %uint %129525 %59828 %59838 %59836
-     %131615 = OpPhi %v2float %59832 %59828 %112020 %59836
-     %131614 = OpPhi %v2float %59832 %59828 %112021 %59836
-      %51426 = OpExtInst %v2float %1 Ceil %131615
-      %51430 = OpExtInst %v2float %1 Ceil %131614
-      %51436 = OpExtInst %v2float %1 FMin %51426 %51430
-      %51442 = OpExtInst %v2float %1 FMax %51426 %51430
-     %113948 = OpCompositeConstruct %_arr_v2float_uint_2 %51436 %51442
-      %59846 = OpIAdd %uint %131616 %int_1
-      %59848 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131616
-               OpStore %59848 %113948
-               OpBranch %56398
-      %51388 = OpLabel
-      %51391 = OpLoad %uint %47980
-      %51392 = OpBitwiseAnd %uint %51391 %uint_32768
-      %51393 = OpUGreaterThan %bool %51392 %uint_0
-               OpSelectionMerge %59814 None
-               OpSwitch %uint_0 %59798
-      %59798 = OpLabel
-               OpSelectionMerge %59813 None
-               OpBranchConditional %51393 %59800 %59808
-      %59808 = OpLabel
-      %59810 = OpISub %uint %129525 %int_1
-      %59811 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %59810
-      %59812 = OpLoad %_arr_v2float_uint_2 %59811
-     %112029 = OpCompositeExtract %v2float %59812 0
-     %112030 = OpCompositeExtract %v2float %59812 1
-               OpBranch %59814
-      %59800 = OpLabel
-      %59802 = OpIAdd %uint %130223 %int_1
-      %59803 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %59804 = OpLoad %v2float %59803
-               OpBranch %59814
-      %59813 = OpLabel
-               OpUnreachable
-      %59814 = OpLabel
-     %209035 = OpPhi %uint %59802 %59800 %130223 %59808
-     %131619 = OpPhi %uint %129525 %59800 %59810 %59808
-     %131618 = OpPhi %v2float %59804 %59800 %112029 %59808
-     %131617 = OpPhi %v2float %59804 %59800 %112030 %59808
-      %51397 = OpExtInst %v2float %1 Floor %131618
-      %51401 = OpExtInst %v2float %1 Floor %131617
-      %51407 = OpExtInst %v2float %1 FMin %51397 %51401
-      %51413 = OpExtInst %v2float %1 FMax %51397 %51401
-     %113939 = OpCompositeConstruct %_arr_v2float_uint_2 %51407 %51413
-      %59818 = OpIAdd %uint %131619 %int_1
-      %59820 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131619
-               OpStore %59820 %113939
-               OpBranch %56398
-      %51359 = OpLabel
-      %51362 = OpLoad %uint %47980
-      %51363 = OpBitwiseAnd %uint %51362 %uint_32768
-      %51364 = OpUGreaterThan %bool %51363 %uint_0
-               OpSelectionMerge %59786 None
-               OpSwitch %uint_0 %59770
-      %59770 = OpLabel
-               OpSelectionMerge %59785 None
-               OpBranchConditional %51364 %59772 %59780
-      %59780 = OpLabel
-      %59782 = OpISub %uint %129525 %int_1
-      %59783 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %59782
-      %59784 = OpLoad %_arr_v2float_uint_2 %59783
-     %112038 = OpCompositeExtract %v2float %59784 0
-     %112039 = OpCompositeExtract %v2float %59784 1
-               OpBranch %59786
-      %59772 = OpLabel
-      %59774 = OpIAdd %uint %130223 %int_1
-      %59775 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %59776 = OpLoad %v2float %59775
-               OpBranch %59786
-      %59785 = OpLabel
-               OpUnreachable
-      %59786 = OpLabel
-     %209034 = OpPhi %uint %59774 %59772 %130223 %59780
-     %131622 = OpPhi %uint %129525 %59772 %59782 %59780
-     %131621 = OpPhi %v2float %59776 %59772 %112038 %59780
-     %131620 = OpPhi %v2float %59776 %59772 %112039 %59780
-      %51368 = OpExtInst %v2float %1 FSign %131621
-      %51372 = OpExtInst %v2float %1 FSign %131620
-      %51378 = OpExtInst %v2float %1 FMin %51368 %51372
-      %51384 = OpExtInst %v2float %1 FMax %51368 %51372
-     %113930 = OpCompositeConstruct %_arr_v2float_uint_2 %51378 %51384
-      %59790 = OpIAdd %uint %131622 %int_1
-      %59792 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131622
-               OpStore %59792 %113930
-               OpBranch %56398
-      %51330 = OpLabel
-      %51333 = OpLoad %uint %47980
-      %51334 = OpBitwiseAnd %uint %51333 %uint_32768
-      %51335 = OpUGreaterThan %bool %51334 %uint_0
-               OpSelectionMerge %59758 None
-               OpSwitch %uint_0 %59742
-      %59742 = OpLabel
-               OpSelectionMerge %59757 None
-               OpBranchConditional %51335 %59744 %59752
-      %59752 = OpLabel
-      %59754 = OpISub %uint %129525 %int_1
-      %59755 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %59754
-      %59756 = OpLoad %_arr_v2float_uint_2 %59755
-     %112047 = OpCompositeExtract %v2float %59756 0
-     %112048 = OpCompositeExtract %v2float %59756 1
-               OpBranch %59758
-      %59744 = OpLabel
-      %59746 = OpIAdd %uint %130223 %int_1
-      %59747 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %59748 = OpLoad %v2float %59747
-               OpBranch %59758
-      %59757 = OpLabel
-               OpUnreachable
-      %59758 = OpLabel
-     %209033 = OpPhi %uint %59746 %59744 %130223 %59752
-     %131625 = OpPhi %uint %129525 %59744 %59754 %59752
-     %131624 = OpPhi %v2float %59748 %59744 %112047 %59752
-     %131623 = OpPhi %v2float %59748 %59744 %112048 %59752
-      %51339 = OpExtInst %v2float %1 FAbs %131624
-      %51343 = OpExtInst %v2float %1 FAbs %131623
-      %51349 = OpExtInst %v2float %1 FMin %51339 %51343
-      %51355 = OpExtInst %v2float %1 FMax %51339 %51343
-     %113921 = OpCompositeConstruct %_arr_v2float_uint_2 %51349 %51355
-      %59762 = OpIAdd %uint %131625 %int_1
-      %59764 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %131625
-               OpStore %59764 %113921
-               OpBranch %56398
-      %51248 = OpLabel
-      %51251 = OpLoad %uint %47980
-      %51252 = OpBitwiseAnd %uint %51251 %uint_32768
-      %51253 = OpUGreaterThan %bool %51252 %uint_0
-               OpSelectionMerge %59684 None
-               OpSwitch %uint_0 %59668
-      %59668 = OpLabel
-               OpSelectionMerge %59683 None
-               OpBranchConditional %51253 %59670 %59678
-      %59678 = OpLabel
-      %59680 = OpISub %uint %129504 %int_1
-      %59681 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59680
-      %59682 = OpLoad %_arr_float_uint_2 %59681
-     %112074 = OpCompositeExtract %float %59682 0
-     %112075 = OpCompositeExtract %float %59682 1
-               OpBranch %59684
-      %59670 = OpLabel
-      %59672 = OpIAdd %uint %129506 %int_1
-      %59673 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59674 = OpLoad %float %59673
-               OpBranch %59684
-      %59683 = OpLabel
-               OpUnreachable
-      %59684 = OpLabel
-     %131630 = OpPhi %uint %59672 %59670 %129506 %59678
-     %131629 = OpPhi %uint %129504 %59670 %59680 %59678
-     %131627 = OpPhi %float %59674 %59670 %112074 %59678
-     %131626 = OpPhi %float %59674 %59670 %112075 %59678
-      %51257 = OpLoad %uint %47980
-      %51258 = OpBitwiseAnd %uint %51257 %uint_16384
-      %51259 = OpUGreaterThan %bool %51258 %uint_0
-               OpSelectionMerge %59707 None
-               OpSwitch %uint_0 %59691
-      %59691 = OpLabel
-               OpSelectionMerge %59706 None
-               OpBranchConditional %51259 %59693 %59701
-      %59701 = OpLabel
-      %59703 = OpISub %uint %131629 %int_1
-      %59704 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59703
-      %59705 = OpLoad %_arr_float_uint_2 %59704
-     %112065 = OpCompositeExtract %float %59705 0
-     %112066 = OpCompositeExtract %float %59705 1
-               OpBranch %59707
-      %59693 = OpLabel
-      %59695 = OpIAdd %uint %131630 %int_1
-      %59696 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131630
-      %59697 = OpLoad %float %59696
-               OpBranch %59707
-      %59706 = OpLabel
-               OpUnreachable
-      %59707 = OpLabel
-     %131635 = OpPhi %uint %59695 %59693 %131630 %59701
-     %131634 = OpPhi %uint %131629 %59693 %59703 %59701
-     %131632 = OpPhi %float %59697 %59693 %112065 %59701
-     %131631 = OpPhi %float %59697 %59693 %112066 %59701
-      %51263 = OpLoad %uint %47980
-      %51264 = OpBitwiseAnd %uint %51263 %uint_8192
-      %51265 = OpUGreaterThan %bool %51264 %uint_0
-               OpSelectionMerge %59730 None
-               OpSwitch %uint_0 %59714
-      %59714 = OpLabel
-               OpSelectionMerge %59729 None
-               OpBranchConditional %51265 %59716 %59724
-      %59724 = OpLabel
-      %59726 = OpISub %uint %131634 %int_1
-      %59727 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59726
-      %59728 = OpLoad %_arr_float_uint_2 %59727
-     %112056 = OpCompositeExtract %float %59728 0
-     %112057 = OpCompositeExtract %float %59728 1
-               OpBranch %59730
-      %59716 = OpLabel
-      %59718 = OpIAdd %uint %131635 %int_1
-      %59719 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131635
-      %59720 = OpLoad %float %59719
-               OpBranch %59730
-      %59729 = OpLabel
-               OpUnreachable
-      %59730 = OpLabel
-     %138967 = OpPhi %uint %59718 %59716 %131635 %59724
-     %131644 = OpPhi %uint %131634 %59716 %59726 %59724
-     %131637 = OpPhi %float %59720 %59716 %112056 %59724
-     %131636 = OpPhi %float %59720 %59716 %112057 %59724
-      %51271 = OpFMul %float %131627 %131632
-      %51277 = OpFMul %float %131627 %131631
-      %51283 = OpFMul %float %131626 %131632
-      %51289 = OpFMul %float %131626 %131631
-      %51299 = OpExtInst %float %1 FMin %51283 %51289
-      %51300 = OpExtInst %float %1 FMin %51277 %51299
-      %51301 = OpExtInst %float %1 FMin %51271 %51300
-      %51311 = OpExtInst %float %1 FMax %51283 %51289
-      %51312 = OpExtInst %float %1 FMax %51277 %51311
-      %51313 = OpExtInst %float %1 FMax %51271 %51312
-      %51320 = OpFAdd %float %51301 %131637
-      %51326 = OpFAdd %float %51313 %131636
-     %113904 = OpCompositeConstruct %_arr_float_uint_2 %51320 %51326
-      %59734 = OpIAdd %uint %131644 %int_1
-      %59736 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131644
-               OpStore %59736 %113904
-               OpBranch %56398
-      %51221 = OpLabel
-      %51224 = OpLoad %uint %47980
-      %51225 = OpBitwiseAnd %uint %51224 %uint_32768
-      %51226 = OpUGreaterThan %bool %51225 %uint_0
-               OpSelectionMerge %59633 None
-               OpSwitch %uint_0 %59617
-      %59617 = OpLabel
-               OpSelectionMerge %59632 None
-               OpBranchConditional %51226 %59619 %59627
-      %59627 = OpLabel
-      %59629 = OpISub %uint %129504 %int_1
-      %59630 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59629
-      %59631 = OpLoad %_arr_float_uint_2 %59630
-     %112092 = OpCompositeExtract %float %59631 0
-     %112093 = OpCompositeExtract %float %59631 1
-               OpBranch %59633
-      %59619 = OpLabel
-      %59621 = OpIAdd %uint %129506 %int_1
-      %59622 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59623 = OpLoad %float %59622
-               OpBranch %59633
-      %59632 = OpLabel
-               OpUnreachable
-      %59633 = OpLabel
-     %131652 = OpPhi %uint %59621 %59619 %129506 %59627
-     %131651 = OpPhi %uint %129504 %59619 %59629 %59627
-     %131649 = OpPhi %float %59623 %59619 %112092 %59627
-     %131648 = OpPhi %float %59623 %59619 %112093 %59627
-      %51230 = OpLoad %uint %47980
-      %51231 = OpBitwiseAnd %uint %51230 %uint_16384
-      %51232 = OpUGreaterThan %bool %51231 %uint_0
-               OpSelectionMerge %59656 None
-               OpSwitch %uint_0 %59640
-      %59640 = OpLabel
-               OpSelectionMerge %59655 None
-               OpBranchConditional %51232 %59642 %59650
-      %59650 = OpLabel
-      %59652 = OpISub %uint %131651 %int_1
-      %59653 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59652
-      %59654 = OpLoad %_arr_float_uint_2 %59653
-     %112083 = OpCompositeExtract %float %59654 0
-     %112084 = OpCompositeExtract %float %59654 1
-               OpBranch %59656
-      %59642 = OpLabel
-      %59644 = OpIAdd %uint %131652 %int_1
-      %59645 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131652
-      %59646 = OpLoad %float %59645
-               OpBranch %59656
-      %59655 = OpLabel
-               OpUnreachable
-      %59656 = OpLabel
-     %138966 = OpPhi %uint %59644 %59642 %131652 %59650
-     %131657 = OpPhi %uint %131651 %59642 %59652 %59650
-     %131654 = OpPhi %float %59646 %59642 %112083 %59650
-     %131653 = OpPhi %float %59646 %59642 %112084 %59650
-      %51238 = OpExtInst %float %1 FMax %131649 %131654
-      %51244 = OpExtInst %float %1 FMax %131648 %131653
-     %113893 = OpCompositeConstruct %_arr_float_uint_2 %51238 %51244
-      %59660 = OpIAdd %uint %131657 %int_1
-      %59662 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131657
-               OpStore %59662 %113893
-               OpBranch %56398
-      %51194 = OpLabel
-      %51197 = OpLoad %uint %47980
-      %51198 = OpBitwiseAnd %uint %51197 %uint_32768
-      %51199 = OpUGreaterThan %bool %51198 %uint_0
-               OpSelectionMerge %59582 None
-               OpSwitch %uint_0 %59566
-      %59566 = OpLabel
-               OpSelectionMerge %59581 None
-               OpBranchConditional %51199 %59568 %59576
-      %59576 = OpLabel
-      %59578 = OpISub %uint %129504 %int_1
-      %59579 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59578
-      %59580 = OpLoad %_arr_float_uint_2 %59579
-     %112110 = OpCompositeExtract %float %59580 0
-     %112111 = OpCompositeExtract %float %59580 1
-               OpBranch %59582
-      %59568 = OpLabel
-      %59570 = OpIAdd %uint %129506 %int_1
-      %59571 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59572 = OpLoad %float %59571
-               OpBranch %59582
-      %59581 = OpLabel
-               OpUnreachable
-      %59582 = OpLabel
-     %131665 = OpPhi %uint %59570 %59568 %129506 %59576
-     %131664 = OpPhi %uint %129504 %59568 %59578 %59576
-     %131662 = OpPhi %float %59572 %59568 %112110 %59576
-     %131661 = OpPhi %float %59572 %59568 %112111 %59576
-      %51203 = OpLoad %uint %47980
-      %51204 = OpBitwiseAnd %uint %51203 %uint_16384
-      %51205 = OpUGreaterThan %bool %51204 %uint_0
-               OpSelectionMerge %59605 None
-               OpSwitch %uint_0 %59589
-      %59589 = OpLabel
-               OpSelectionMerge %59604 None
-               OpBranchConditional %51205 %59591 %59599
-      %59599 = OpLabel
-      %59601 = OpISub %uint %131664 %int_1
-      %59602 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59601
-      %59603 = OpLoad %_arr_float_uint_2 %59602
-     %112101 = OpCompositeExtract %float %59603 0
-     %112102 = OpCompositeExtract %float %59603 1
-               OpBranch %59605
-      %59591 = OpLabel
-      %59593 = OpIAdd %uint %131665 %int_1
-      %59594 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %131665
-      %59595 = OpLoad %float %59594
-               OpBranch %59605
-      %59604 = OpLabel
-               OpUnreachable
-      %59605 = OpLabel
-     %138965 = OpPhi %uint %59593 %59591 %131665 %59599
-     %131670 = OpPhi %uint %131664 %59591 %59601 %59599
-     %131667 = OpPhi %float %59595 %59591 %112101 %59599
-     %131666 = OpPhi %float %59595 %59591 %112102 %59599
-      %51211 = OpExtInst %float %1 FMin %131662 %131667
-      %51217 = OpExtInst %float %1 FMin %131661 %131666
-     %113882 = OpCompositeConstruct %_arr_float_uint_2 %51211 %51217
-      %59609 = OpIAdd %uint %131670 %int_1
-      %59611 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131670
-               OpStore %59611 %113882
-               OpBranch %56398
-      %51165 = OpLabel
-      %51168 = OpLoad %uint %47980
-      %51169 = OpBitwiseAnd %uint %51168 %uint_32768
-      %51170 = OpUGreaterThan %bool %51169 %uint_0
-               OpSelectionMerge %59554 None
-               OpSwitch %uint_0 %59538
-      %59538 = OpLabel
-               OpSelectionMerge %59553 None
-               OpBranchConditional %51170 %59540 %59548
-      %59548 = OpLabel
-      %59550 = OpISub %uint %129504 %int_1
-      %59551 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59550
-      %59552 = OpLoad %_arr_float_uint_2 %59551
-     %112119 = OpCompositeExtract %float %59552 0
-     %112120 = OpCompositeExtract %float %59552 1
-               OpBranch %59554
-      %59540 = OpLabel
-      %59542 = OpIAdd %uint %129506 %int_1
-      %59543 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59544 = OpLoad %float %59543
-               OpBranch %59554
-      %59553 = OpLabel
-               OpUnreachable
-      %59554 = OpLabel
-     %138964 = OpPhi %uint %59542 %59540 %129506 %59548
-     %131673 = OpPhi %uint %129504 %59540 %59550 %59548
-     %131672 = OpPhi %float %59544 %59540 %112119 %59548
-     %131671 = OpPhi %float %59544 %59540 %112120 %59548
-      %51174 = OpExtInst %float %1 Trunc %131672
-      %51178 = OpExtInst %float %1 Trunc %131671
-      %51184 = OpExtInst %float %1 FMin %51174 %51178
-      %51190 = OpExtInst %float %1 FMax %51174 %51178
-     %113873 = OpCompositeConstruct %_arr_float_uint_2 %51184 %51190
-      %59558 = OpIAdd %uint %131673 %int_1
-      %59560 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131673
-               OpStore %59560 %113873
-               OpBranch %56398
-      %51136 = OpLabel
-      %51139 = OpLoad %uint %47980
-      %51140 = OpBitwiseAnd %uint %51139 %uint_32768
-      %51141 = OpUGreaterThan %bool %51140 %uint_0
-               OpSelectionMerge %59526 None
-               OpSwitch %uint_0 %59510
-      %59510 = OpLabel
-               OpSelectionMerge %59525 None
-               OpBranchConditional %51141 %59512 %59520
-      %59520 = OpLabel
-      %59522 = OpISub %uint %129504 %int_1
-      %59523 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59522
-      %59524 = OpLoad %_arr_float_uint_2 %59523
-     %112128 = OpCompositeExtract %float %59524 0
-     %112129 = OpCompositeExtract %float %59524 1
-               OpBranch %59526
-      %59512 = OpLabel
-      %59514 = OpIAdd %uint %129506 %int_1
-      %59515 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59516 = OpLoad %float %59515
-               OpBranch %59526
-      %59525 = OpLabel
-               OpUnreachable
-      %59526 = OpLabel
-     %138963 = OpPhi %uint %59514 %59512 %129506 %59520
-     %131676 = OpPhi %uint %129504 %59512 %59522 %59520
-     %131675 = OpPhi %float %59516 %59512 %112128 %59520
-     %131674 = OpPhi %float %59516 %59512 %112129 %59520
-      %51145 = OpExtInst %float %1 Round %131675
-      %51149 = OpExtInst %float %1 Round %131674
-      %51155 = OpExtInst %float %1 FMin %51145 %51149
-      %51161 = OpExtInst %float %1 FMax %51145 %51149
-     %113864 = OpCompositeConstruct %_arr_float_uint_2 %51155 %51161
-      %59530 = OpIAdd %uint %131676 %int_1
-      %59532 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131676
-               OpStore %59532 %113864
-               OpBranch %56398
-      %51107 = OpLabel
-      %51110 = OpLoad %uint %47980
-      %51111 = OpBitwiseAnd %uint %51110 %uint_32768
-      %51112 = OpUGreaterThan %bool %51111 %uint_0
-               OpSelectionMerge %59498 None
-               OpSwitch %uint_0 %59482
-      %59482 = OpLabel
-               OpSelectionMerge %59497 None
-               OpBranchConditional %51112 %59484 %59492
-      %59492 = OpLabel
-      %59494 = OpISub %uint %129504 %int_1
-      %59495 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59494
-      %59496 = OpLoad %_arr_float_uint_2 %59495
-     %112137 = OpCompositeExtract %float %59496 0
-     %112138 = OpCompositeExtract %float %59496 1
-               OpBranch %59498
-      %59484 = OpLabel
-      %59486 = OpIAdd %uint %129506 %int_1
-      %59487 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59488 = OpLoad %float %59487
-               OpBranch %59498
-      %59497 = OpLabel
-               OpUnreachable
-      %59498 = OpLabel
-     %138962 = OpPhi %uint %59486 %59484 %129506 %59492
-     %131679 = OpPhi %uint %129504 %59484 %59494 %59492
-     %131678 = OpPhi %float %59488 %59484 %112137 %59492
-     %131677 = OpPhi %float %59488 %59484 %112138 %59492
-      %51116 = OpExtInst %float %1 Tanh %131678
-      %51120 = OpExtInst %float %1 Tanh %131677
-      %51126 = OpExtInst %float %1 FMin %51116 %51120
-      %51132 = OpExtInst %float %1 FMax %51116 %51120
-     %113855 = OpCompositeConstruct %_arr_float_uint_2 %51126 %51132
-      %59502 = OpIAdd %uint %131679 %int_1
-      %59504 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131679
-               OpStore %59504 %113855
-               OpBranch %56398
-      %51078 = OpLabel
-      %51081 = OpLoad %uint %47980
-      %51082 = OpBitwiseAnd %uint %51081 %uint_32768
-      %51083 = OpUGreaterThan %bool %51082 %uint_0
-               OpSelectionMerge %59470 None
-               OpSwitch %uint_0 %59454
-      %59454 = OpLabel
-               OpSelectionMerge %59469 None
-               OpBranchConditional %51083 %59456 %59464
-      %59464 = OpLabel
-      %59466 = OpISub %uint %129504 %int_1
-      %59467 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59466
-      %59468 = OpLoad %_arr_float_uint_2 %59467
-     %112146 = OpCompositeExtract %float %59468 0
-     %112147 = OpCompositeExtract %float %59468 1
-               OpBranch %59470
-      %59456 = OpLabel
-      %59458 = OpIAdd %uint %129506 %int_1
-      %59459 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59460 = OpLoad %float %59459
-               OpBranch %59470
-      %59469 = OpLabel
-               OpUnreachable
-      %59470 = OpLabel
-     %138961 = OpPhi %uint %59458 %59456 %129506 %59464
-     %131682 = OpPhi %uint %129504 %59456 %59466 %59464
-     %131681 = OpPhi %float %59460 %59456 %112146 %59464
-     %131680 = OpPhi %float %59460 %59456 %112147 %59464
-      %51087 = OpExtInst %float %1 Sinh %131681
-      %51091 = OpExtInst %float %1 Sinh %131680
-      %51097 = OpExtInst %float %1 FMin %51087 %51091
-      %51103 = OpExtInst %float %1 FMax %51087 %51091
-     %113846 = OpCompositeConstruct %_arr_float_uint_2 %51097 %51103
-      %59474 = OpIAdd %uint %131682 %int_1
-      %59476 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131682
-               OpStore %59476 %113846
-               OpBranch %56398
-      %51049 = OpLabel
-      %51052 = OpLoad %uint %47980
-      %51053 = OpBitwiseAnd %uint %51052 %uint_32768
-      %51054 = OpUGreaterThan %bool %51053 %uint_0
-               OpSelectionMerge %59442 None
-               OpSwitch %uint_0 %59426
-      %59426 = OpLabel
-               OpSelectionMerge %59441 None
-               OpBranchConditional %51054 %59428 %59436
-      %59436 = OpLabel
-      %59438 = OpISub %uint %129504 %int_1
-      %59439 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59438
-      %59440 = OpLoad %_arr_float_uint_2 %59439
-     %112155 = OpCompositeExtract %float %59440 0
-     %112156 = OpCompositeExtract %float %59440 1
-               OpBranch %59442
-      %59428 = OpLabel
-      %59430 = OpIAdd %uint %129506 %int_1
-      %59431 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59432 = OpLoad %float %59431
-               OpBranch %59442
-      %59441 = OpLabel
-               OpUnreachable
-      %59442 = OpLabel
-     %138960 = OpPhi %uint %59430 %59428 %129506 %59436
-     %131685 = OpPhi %uint %129504 %59428 %59438 %59436
-     %131684 = OpPhi %float %59432 %59428 %112155 %59436
-     %131683 = OpPhi %float %59432 %59428 %112156 %59436
-      %51058 = OpExtInst %float %1 Cosh %131684
-      %51062 = OpExtInst %float %1 Cosh %131683
-      %51068 = OpExtInst %float %1 FMin %51058 %51062
-      %51074 = OpExtInst %float %1 FMax %51058 %51062
-     %113837 = OpCompositeConstruct %_arr_float_uint_2 %51068 %51074
-      %59446 = OpIAdd %uint %131685 %int_1
-      %59448 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131685
-               OpStore %59448 %113837
-               OpBranch %56398
-      %51020 = OpLabel
-      %51023 = OpLoad %uint %47980
-      %51024 = OpBitwiseAnd %uint %51023 %uint_32768
-      %51025 = OpUGreaterThan %bool %51024 %uint_0
-               OpSelectionMerge %59414 None
-               OpSwitch %uint_0 %59398
-      %59398 = OpLabel
-               OpSelectionMerge %59413 None
-               OpBranchConditional %51025 %59400 %59408
-      %59408 = OpLabel
-      %59410 = OpISub %uint %129504 %int_1
-      %59411 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59410
-      %59412 = OpLoad %_arr_float_uint_2 %59411
-     %112164 = OpCompositeExtract %float %59412 0
-     %112165 = OpCompositeExtract %float %59412 1
-               OpBranch %59414
-      %59400 = OpLabel
-      %59402 = OpIAdd %uint %129506 %int_1
-      %59403 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59404 = OpLoad %float %59403
-               OpBranch %59414
-      %59413 = OpLabel
-               OpUnreachable
-      %59414 = OpLabel
-     %138959 = OpPhi %uint %59402 %59400 %129506 %59408
-     %131688 = OpPhi %uint %129504 %59400 %59410 %59408
-     %131687 = OpPhi %float %59404 %59400 %112164 %59408
-     %131686 = OpPhi %float %59404 %59400 %112165 %59408
-      %51029 = OpExtInst %float %1 Atanh %131687
-      %51033 = OpExtInst %float %1 Atanh %131686
-      %51039 = OpExtInst %float %1 FMin %51029 %51033
-      %51045 = OpExtInst %float %1 FMax %51029 %51033
-     %113828 = OpCompositeConstruct %_arr_float_uint_2 %51039 %51045
-      %59418 = OpIAdd %uint %131688 %int_1
-      %59420 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131688
-               OpStore %59420 %113828
-               OpBranch %56398
-      %50991 = OpLabel
-      %50994 = OpLoad %uint %47980
-      %50995 = OpBitwiseAnd %uint %50994 %uint_32768
-      %50996 = OpUGreaterThan %bool %50995 %uint_0
-               OpSelectionMerge %59386 None
-               OpSwitch %uint_0 %59370
-      %59370 = OpLabel
-               OpSelectionMerge %59385 None
-               OpBranchConditional %50996 %59372 %59380
-      %59380 = OpLabel
-      %59382 = OpISub %uint %129504 %int_1
-      %59383 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59382
-      %59384 = OpLoad %_arr_float_uint_2 %59383
-     %112173 = OpCompositeExtract %float %59384 0
-     %112174 = OpCompositeExtract %float %59384 1
-               OpBranch %59386
-      %59372 = OpLabel
-      %59374 = OpIAdd %uint %129506 %int_1
-      %59375 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59376 = OpLoad %float %59375
-               OpBranch %59386
-      %59385 = OpLabel
-               OpUnreachable
-      %59386 = OpLabel
-     %138958 = OpPhi %uint %59374 %59372 %129506 %59380
-     %131691 = OpPhi %uint %129504 %59372 %59382 %59380
-     %131690 = OpPhi %float %59376 %59372 %112173 %59380
-     %131689 = OpPhi %float %59376 %59372 %112174 %59380
-      %51000 = OpExtInst %float %1 Asinh %131690
-      %51004 = OpExtInst %float %1 Asinh %131689
-      %51010 = OpExtInst %float %1 FMin %51000 %51004
-      %51016 = OpExtInst %float %1 FMax %51000 %51004
-     %113819 = OpCompositeConstruct %_arr_float_uint_2 %51010 %51016
-      %59390 = OpIAdd %uint %131691 %int_1
-      %59392 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131691
-               OpStore %59392 %113819
-               OpBranch %56398
-      %50962 = OpLabel
-      %50965 = OpLoad %uint %47980
-      %50966 = OpBitwiseAnd %uint %50965 %uint_32768
-      %50967 = OpUGreaterThan %bool %50966 %uint_0
-               OpSelectionMerge %59358 None
-               OpSwitch %uint_0 %59342
-      %59342 = OpLabel
-               OpSelectionMerge %59357 None
-               OpBranchConditional %50967 %59344 %59352
-      %59352 = OpLabel
-      %59354 = OpISub %uint %129504 %int_1
-      %59355 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59354
-      %59356 = OpLoad %_arr_float_uint_2 %59355
-     %112182 = OpCompositeExtract %float %59356 0
-     %112183 = OpCompositeExtract %float %59356 1
-               OpBranch %59358
-      %59344 = OpLabel
-      %59346 = OpIAdd %uint %129506 %int_1
-      %59347 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59348 = OpLoad %float %59347
-               OpBranch %59358
-      %59357 = OpLabel
-               OpUnreachable
-      %59358 = OpLabel
-     %138957 = OpPhi %uint %59346 %59344 %129506 %59352
-     %131694 = OpPhi %uint %129504 %59344 %59354 %59352
-     %131693 = OpPhi %float %59348 %59344 %112182 %59352
-     %131692 = OpPhi %float %59348 %59344 %112183 %59352
-      %50971 = OpExtInst %float %1 Acosh %131693
-      %50975 = OpExtInst %float %1 Acosh %131692
-      %50981 = OpExtInst %float %1 FMin %50971 %50975
-      %50987 = OpExtInst %float %1 FMax %50971 %50975
-     %113810 = OpCompositeConstruct %_arr_float_uint_2 %50981 %50987
-      %59362 = OpIAdd %uint %131694 %int_1
-      %59364 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131694
-               OpStore %59364 %113810
-               OpBranch %56398
-      %50933 = OpLabel
-      %50936 = OpLoad %uint %47980
-      %50937 = OpBitwiseAnd %uint %50936 %uint_32768
-      %50938 = OpUGreaterThan %bool %50937 %uint_0
-               OpSelectionMerge %59330 None
-               OpSwitch %uint_0 %59314
-      %59314 = OpLabel
-               OpSelectionMerge %59329 None
-               OpBranchConditional %50938 %59316 %59324
-      %59324 = OpLabel
-      %59326 = OpISub %uint %129504 %int_1
-      %59327 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59326
-      %59328 = OpLoad %_arr_float_uint_2 %59327
-     %112191 = OpCompositeExtract %float %59328 0
-     %112192 = OpCompositeExtract %float %59328 1
-               OpBranch %59330
-      %59316 = OpLabel
-      %59318 = OpIAdd %uint %129506 %int_1
-      %59319 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59320 = OpLoad %float %59319
-               OpBranch %59330
-      %59329 = OpLabel
-               OpUnreachable
-      %59330 = OpLabel
-     %138956 = OpPhi %uint %59318 %59316 %129506 %59324
-     %131697 = OpPhi %uint %129504 %59316 %59326 %59324
-     %131696 = OpPhi %float %59320 %59316 %112191 %59324
-     %131695 = OpPhi %float %59320 %59316 %112192 %59324
-      %50942 = OpExtInst %float %1 Atan %131696
-      %50946 = OpExtInst %float %1 Atan %131695
-      %50952 = OpExtInst %float %1 FMin %50942 %50946
-      %50958 = OpExtInst %float %1 FMax %50942 %50946
-     %113801 = OpCompositeConstruct %_arr_float_uint_2 %50952 %50958
-      %59334 = OpIAdd %uint %131697 %int_1
-      %59336 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131697
-               OpStore %59336 %113801
-               OpBranch %56398
-      %50904 = OpLabel
-      %50907 = OpLoad %uint %47980
-      %50908 = OpBitwiseAnd %uint %50907 %uint_32768
-      %50909 = OpUGreaterThan %bool %50908 %uint_0
-               OpSelectionMerge %59302 None
-               OpSwitch %uint_0 %59286
-      %59286 = OpLabel
-               OpSelectionMerge %59301 None
-               OpBranchConditional %50909 %59288 %59296
-      %59296 = OpLabel
-      %59298 = OpISub %uint %129504 %int_1
-      %59299 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59298
-      %59300 = OpLoad %_arr_float_uint_2 %59299
-     %112200 = OpCompositeExtract %float %59300 0
-     %112201 = OpCompositeExtract %float %59300 1
-               OpBranch %59302
-      %59288 = OpLabel
-      %59290 = OpIAdd %uint %129506 %int_1
-      %59291 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59292 = OpLoad %float %59291
-               OpBranch %59302
-      %59301 = OpLabel
-               OpUnreachable
-      %59302 = OpLabel
-     %138955 = OpPhi %uint %59290 %59288 %129506 %59296
-     %131700 = OpPhi %uint %129504 %59288 %59298 %59296
-     %131699 = OpPhi %float %59292 %59288 %112200 %59296
-     %131698 = OpPhi %float %59292 %59288 %112201 %59296
-      %50913 = OpExtInst %float %1 Acos %131699
-      %50917 = OpExtInst %float %1 Acos %131698
-      %50923 = OpExtInst %float %1 FMin %50913 %50917
-      %50929 = OpExtInst %float %1 FMax %50913 %50917
-     %113792 = OpCompositeConstruct %_arr_float_uint_2 %50923 %50929
-      %59306 = OpIAdd %uint %131700 %int_1
-      %59308 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131700
-               OpStore %59308 %113792
-               OpBranch %56398
-      %50875 = OpLabel
-      %50878 = OpLoad %uint %47980
-      %50879 = OpBitwiseAnd %uint %50878 %uint_32768
-      %50880 = OpUGreaterThan %bool %50879 %uint_0
-               OpSelectionMerge %59274 None
-               OpSwitch %uint_0 %59258
-      %59258 = OpLabel
-               OpSelectionMerge %59273 None
-               OpBranchConditional %50880 %59260 %59268
-      %59268 = OpLabel
-      %59270 = OpISub %uint %129504 %int_1
-      %59271 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59270
-      %59272 = OpLoad %_arr_float_uint_2 %59271
-     %112209 = OpCompositeExtract %float %59272 0
-     %112210 = OpCompositeExtract %float %59272 1
-               OpBranch %59274
-      %59260 = OpLabel
-      %59262 = OpIAdd %uint %129506 %int_1
-      %59263 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59264 = OpLoad %float %59263
-               OpBranch %59274
-      %59273 = OpLabel
-               OpUnreachable
-      %59274 = OpLabel
-     %138954 = OpPhi %uint %59262 %59260 %129506 %59268
-     %131703 = OpPhi %uint %129504 %59260 %59270 %59268
-     %131702 = OpPhi %float %59264 %59260 %112209 %59268
-     %131701 = OpPhi %float %59264 %59260 %112210 %59268
-      %50884 = OpExtInst %float %1 Asin %131702
-      %50888 = OpExtInst %float %1 Asin %131701
-      %50894 = OpExtInst %float %1 FMin %50884 %50888
-      %50900 = OpExtInst %float %1 FMax %50884 %50888
-     %113783 = OpCompositeConstruct %_arr_float_uint_2 %50894 %50900
-      %59278 = OpIAdd %uint %131703 %int_1
-      %59280 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131703
-               OpStore %59280 %113783
-               OpBranch %56398
-      %50846 = OpLabel
-      %50849 = OpLoad %uint %47980
-      %50850 = OpBitwiseAnd %uint %50849 %uint_32768
-      %50851 = OpUGreaterThan %bool %50850 %uint_0
-               OpSelectionMerge %59246 None
-               OpSwitch %uint_0 %59230
-      %59230 = OpLabel
-               OpSelectionMerge %59245 None
-               OpBranchConditional %50851 %59232 %59240
-      %59240 = OpLabel
-      %59242 = OpISub %uint %129504 %int_1
-      %59243 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59242
-      %59244 = OpLoad %_arr_float_uint_2 %59243
-     %112218 = OpCompositeExtract %float %59244 0
-     %112219 = OpCompositeExtract %float %59244 1
-               OpBranch %59246
-      %59232 = OpLabel
-      %59234 = OpIAdd %uint %129506 %int_1
-      %59235 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59236 = OpLoad %float %59235
-               OpBranch %59246
-      %59245 = OpLabel
-               OpUnreachable
-      %59246 = OpLabel
-     %138953 = OpPhi %uint %59234 %59232 %129506 %59240
-     %131706 = OpPhi %uint %129504 %59232 %59242 %59240
-     %131705 = OpPhi %float %59236 %59232 %112218 %59240
-     %131704 = OpPhi %float %59236 %59232 %112219 %59240
-      %50855 = OpExtInst %float %1 Tan %131705
-      %50859 = OpExtInst %float %1 Tan %131704
-      %50865 = OpExtInst %float %1 FMin %50855 %50859
-      %50871 = OpExtInst %float %1 FMax %50855 %50859
-     %113774 = OpCompositeConstruct %_arr_float_uint_2 %50865 %50871
-      %59250 = OpIAdd %uint %131706 %int_1
-      %59252 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131706
-               OpStore %59252 %113774
-               OpBranch %56398
-      %50817 = OpLabel
-      %50820 = OpLoad %uint %47980
-      %50821 = OpBitwiseAnd %uint %50820 %uint_32768
-      %50822 = OpUGreaterThan %bool %50821 %uint_0
-               OpSelectionMerge %59218 None
-               OpSwitch %uint_0 %59202
-      %59202 = OpLabel
-               OpSelectionMerge %59217 None
-               OpBranchConditional %50822 %59204 %59212
-      %59212 = OpLabel
-      %59214 = OpISub %uint %129504 %int_1
-      %59215 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59214
-      %59216 = OpLoad %_arr_float_uint_2 %59215
-     %112227 = OpCompositeExtract %float %59216 0
-     %112228 = OpCompositeExtract %float %59216 1
-               OpBranch %59218
-      %59204 = OpLabel
-      %59206 = OpIAdd %uint %129506 %int_1
-      %59207 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59208 = OpLoad %float %59207
-               OpBranch %59218
-      %59217 = OpLabel
-               OpUnreachable
-      %59218 = OpLabel
-     %138952 = OpPhi %uint %59206 %59204 %129506 %59212
-     %131709 = OpPhi %uint %129504 %59204 %59214 %59212
-     %131708 = OpPhi %float %59208 %59204 %112227 %59212
-     %131707 = OpPhi %float %59208 %59204 %112228 %59212
-      %50826 = OpExtInst %float %1 Cos %131708
-      %50830 = OpExtInst %float %1 Cos %131707
-      %50836 = OpExtInst %float %1 FMin %50826 %50830
-      %50842 = OpExtInst %float %1 FMax %50826 %50830
-     %113765 = OpCompositeConstruct %_arr_float_uint_2 %50836 %50842
-      %59222 = OpIAdd %uint %131709 %int_1
-      %59224 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131709
-               OpStore %59224 %113765
-               OpBranch %56398
-      %50788 = OpLabel
-      %50791 = OpLoad %uint %47980
-      %50792 = OpBitwiseAnd %uint %50791 %uint_32768
-      %50793 = OpUGreaterThan %bool %50792 %uint_0
-               OpSelectionMerge %59190 None
-               OpSwitch %uint_0 %59174
-      %59174 = OpLabel
-               OpSelectionMerge %59189 None
-               OpBranchConditional %50793 %59176 %59184
-      %59184 = OpLabel
-      %59186 = OpISub %uint %129504 %int_1
-      %59187 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59186
-      %59188 = OpLoad %_arr_float_uint_2 %59187
-     %112236 = OpCompositeExtract %float %59188 0
-     %112237 = OpCompositeExtract %float %59188 1
-               OpBranch %59190
-      %59176 = OpLabel
-      %59178 = OpIAdd %uint %129506 %int_1
-      %59179 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59180 = OpLoad %float %59179
-               OpBranch %59190
-      %59189 = OpLabel
-               OpUnreachable
-      %59190 = OpLabel
-     %138951 = OpPhi %uint %59178 %59176 %129506 %59184
-     %131712 = OpPhi %uint %129504 %59176 %59186 %59184
-     %131711 = OpPhi %float %59180 %59176 %112236 %59184
-     %131710 = OpPhi %float %59180 %59176 %112237 %59184
-      %50797 = OpExtInst %float %1 Sin %131711
-      %50801 = OpExtInst %float %1 Sin %131710
-      %50807 = OpExtInst %float %1 FMin %50797 %50801
-      %50813 = OpExtInst %float %1 FMax %50797 %50801
-     %113756 = OpCompositeConstruct %_arr_float_uint_2 %50807 %50813
-      %59194 = OpIAdd %uint %131712 %int_1
-      %59196 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131712
-               OpStore %59196 %113756
-               OpBranch %56398
-      %50759 = OpLabel
-      %50762 = OpLoad %uint %47980
-      %50763 = OpBitwiseAnd %uint %50762 %uint_32768
-      %50764 = OpUGreaterThan %bool %50763 %uint_0
-               OpSelectionMerge %59162 None
-               OpSwitch %uint_0 %59146
-      %59146 = OpLabel
-               OpSelectionMerge %59161 None
-               OpBranchConditional %50764 %59148 %59156
-      %59156 = OpLabel
-      %59158 = OpISub %uint %129504 %int_1
-      %59159 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59158
-      %59160 = OpLoad %_arr_float_uint_2 %59159
-     %112245 = OpCompositeExtract %float %59160 0
-     %112246 = OpCompositeExtract %float %59160 1
-               OpBranch %59162
-      %59148 = OpLabel
-      %59150 = OpIAdd %uint %129506 %int_1
-      %59151 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59152 = OpLoad %float %59151
-               OpBranch %59162
-      %59161 = OpLabel
-               OpUnreachable
-      %59162 = OpLabel
-     %138950 = OpPhi %uint %59150 %59148 %129506 %59156
-     %131715 = OpPhi %uint %129504 %59148 %59158 %59156
-     %131714 = OpPhi %float %59152 %59148 %112245 %59156
-     %131713 = OpPhi %float %59152 %59148 %112246 %59156
-      %50768 = OpExtInst %float %1 Log2 %131714
-      %50772 = OpExtInst %float %1 Log2 %131713
-      %50778 = OpExtInst %float %1 FMin %50768 %50772
-      %50784 = OpExtInst %float %1 FMax %50768 %50772
-     %113747 = OpCompositeConstruct %_arr_float_uint_2 %50778 %50784
-      %59166 = OpIAdd %uint %131715 %int_1
-      %59168 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131715
-               OpStore %59168 %113747
-               OpBranch %56398
-      %50730 = OpLabel
-      %50733 = OpLoad %uint %47980
-      %50734 = OpBitwiseAnd %uint %50733 %uint_32768
-      %50735 = OpUGreaterThan %bool %50734 %uint_0
-               OpSelectionMerge %59134 None
-               OpSwitch %uint_0 %59118
-      %59118 = OpLabel
-               OpSelectionMerge %59133 None
-               OpBranchConditional %50735 %59120 %59128
-      %59128 = OpLabel
-      %59130 = OpISub %uint %129504 %int_1
-      %59131 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59130
-      %59132 = OpLoad %_arr_float_uint_2 %59131
-     %112254 = OpCompositeExtract %float %59132 0
-     %112255 = OpCompositeExtract %float %59132 1
-               OpBranch %59134
-      %59120 = OpLabel
-      %59122 = OpIAdd %uint %129506 %int_1
-      %59123 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59124 = OpLoad %float %59123
-               OpBranch %59134
-      %59133 = OpLabel
-               OpUnreachable
-      %59134 = OpLabel
-     %138949 = OpPhi %uint %59122 %59120 %129506 %59128
-     %131718 = OpPhi %uint %129504 %59120 %59130 %59128
-     %131717 = OpPhi %float %59124 %59120 %112254 %59128
-     %131716 = OpPhi %float %59124 %59120 %112255 %59128
-      %50739 = OpExtInst %float %1 Log %131717
-      %50743 = OpExtInst %float %1 Log %131716
-      %50749 = OpExtInst %float %1 FMin %50739 %50743
-      %50755 = OpExtInst %float %1 FMax %50739 %50743
-     %113738 = OpCompositeConstruct %_arr_float_uint_2 %50749 %50755
-      %59138 = OpIAdd %uint %131718 %int_1
-      %59140 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131718
-               OpStore %59140 %113738
-               OpBranch %56398
-      %50701 = OpLabel
-      %50704 = OpLoad %uint %47980
-      %50705 = OpBitwiseAnd %uint %50704 %uint_32768
-      %50706 = OpUGreaterThan %bool %50705 %uint_0
-               OpSelectionMerge %59106 None
-               OpSwitch %uint_0 %59090
-      %59090 = OpLabel
-               OpSelectionMerge %59105 None
-               OpBranchConditional %50706 %59092 %59100
-      %59100 = OpLabel
-      %59102 = OpISub %uint %129504 %int_1
-      %59103 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59102
-      %59104 = OpLoad %_arr_float_uint_2 %59103
-     %112263 = OpCompositeExtract %float %59104 0
-     %112264 = OpCompositeExtract %float %59104 1
-               OpBranch %59106
-      %59092 = OpLabel
-      %59094 = OpIAdd %uint %129506 %int_1
-      %59095 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59096 = OpLoad %float %59095
-               OpBranch %59106
-      %59105 = OpLabel
-               OpUnreachable
-      %59106 = OpLabel
-     %138948 = OpPhi %uint %59094 %59092 %129506 %59100
-     %131721 = OpPhi %uint %129504 %59092 %59102 %59100
-     %131720 = OpPhi %float %59096 %59092 %112263 %59100
-     %131719 = OpPhi %float %59096 %59092 %112264 %59100
-      %50710 = OpExtInst %float %1 Exp2 %131720
-      %50714 = OpExtInst %float %1 Exp2 %131719
-      %50720 = OpExtInst %float %1 FMin %50710 %50714
-      %50726 = OpExtInst %float %1 FMax %50710 %50714
-     %113729 = OpCompositeConstruct %_arr_float_uint_2 %50720 %50726
-      %59110 = OpIAdd %uint %131721 %int_1
-      %59112 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131721
-               OpStore %59112 %113729
-               OpBranch %56398
-      %50672 = OpLabel
-      %50675 = OpLoad %uint %47980
-      %50676 = OpBitwiseAnd %uint %50675 %uint_32768
-      %50677 = OpUGreaterThan %bool %50676 %uint_0
-               OpSelectionMerge %59078 None
-               OpSwitch %uint_0 %59062
-      %59062 = OpLabel
-               OpSelectionMerge %59077 None
-               OpBranchConditional %50677 %59064 %59072
-      %59072 = OpLabel
-      %59074 = OpISub %uint %129504 %int_1
-      %59075 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59074
-      %59076 = OpLoad %_arr_float_uint_2 %59075
-     %112272 = OpCompositeExtract %float %59076 0
-     %112273 = OpCompositeExtract %float %59076 1
-               OpBranch %59078
-      %59064 = OpLabel
-      %59066 = OpIAdd %uint %129506 %int_1
-      %59067 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59068 = OpLoad %float %59067
-               OpBranch %59078
-      %59077 = OpLabel
-               OpUnreachable
-      %59078 = OpLabel
-     %138947 = OpPhi %uint %59066 %59064 %129506 %59072
-     %131724 = OpPhi %uint %129504 %59064 %59074 %59072
-     %131723 = OpPhi %float %59068 %59064 %112272 %59072
-     %131722 = OpPhi %float %59068 %59064 %112273 %59072
-      %50681 = OpExtInst %float %1 Exp %131723
-      %50685 = OpExtInst %float %1 Exp %131722
-      %50691 = OpExtInst %float %1 FMin %50681 %50685
-      %50697 = OpExtInst %float %1 FMax %50681 %50685
-     %113720 = OpCompositeConstruct %_arr_float_uint_2 %50691 %50697
-      %59082 = OpIAdd %uint %131724 %int_1
-      %59084 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131724
-               OpStore %59084 %113720
-               OpBranch %56398
-      %50643 = OpLabel
-      %50646 = OpLoad %uint %47980
-      %50647 = OpBitwiseAnd %uint %50646 %uint_32768
-      %50648 = OpUGreaterThan %bool %50647 %uint_0
-               OpSelectionMerge %59050 None
-               OpSwitch %uint_0 %59034
-      %59034 = OpLabel
-               OpSelectionMerge %59049 None
-               OpBranchConditional %50648 %59036 %59044
-      %59044 = OpLabel
-      %59046 = OpISub %uint %129504 %int_1
-      %59047 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59046
-      %59048 = OpLoad %_arr_float_uint_2 %59047
-     %112281 = OpCompositeExtract %float %59048 0
-     %112282 = OpCompositeExtract %float %59048 1
-               OpBranch %59050
-      %59036 = OpLabel
-      %59038 = OpIAdd %uint %129506 %int_1
-      %59039 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59040 = OpLoad %float %59039
-               OpBranch %59050
-      %59049 = OpLabel
-               OpUnreachable
-      %59050 = OpLabel
-     %138946 = OpPhi %uint %59038 %59036 %129506 %59044
-     %131727 = OpPhi %uint %129504 %59036 %59046 %59044
-     %131726 = OpPhi %float %59040 %59036 %112281 %59044
-     %131725 = OpPhi %float %59040 %59036 %112282 %59044
-      %50652 = OpExtInst %float %1 InverseSqrt %131726
-      %50656 = OpExtInst %float %1 InverseSqrt %131725
-      %50662 = OpExtInst %float %1 FMin %50652 %50656
-      %50668 = OpExtInst %float %1 FMax %50652 %50656
-     %113711 = OpCompositeConstruct %_arr_float_uint_2 %50662 %50668
-      %59054 = OpIAdd %uint %131727 %int_1
-      %59056 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131727
-               OpStore %59056 %113711
-               OpBranch %56398
-      %50614 = OpLabel
-      %50617 = OpLoad %uint %47980
-      %50618 = OpBitwiseAnd %uint %50617 %uint_32768
-      %50619 = OpUGreaterThan %bool %50618 %uint_0
-               OpSelectionMerge %59022 None
-               OpSwitch %uint_0 %59006
-      %59006 = OpLabel
-               OpSelectionMerge %59021 None
-               OpBranchConditional %50619 %59008 %59016
-      %59016 = OpLabel
-      %59018 = OpISub %uint %129504 %int_1
-      %59019 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %59018
-      %59020 = OpLoad %_arr_float_uint_2 %59019
-     %112290 = OpCompositeExtract %float %59020 0
-     %112291 = OpCompositeExtract %float %59020 1
-               OpBranch %59022
-      %59008 = OpLabel
-      %59010 = OpIAdd %uint %129506 %int_1
-      %59011 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %59012 = OpLoad %float %59011
-               OpBranch %59022
-      %59021 = OpLabel
-               OpUnreachable
-      %59022 = OpLabel
-     %138945 = OpPhi %uint %59010 %59008 %129506 %59016
-     %131730 = OpPhi %uint %129504 %59008 %59018 %59016
-     %131729 = OpPhi %float %59012 %59008 %112290 %59016
-     %131728 = OpPhi %float %59012 %59008 %112291 %59016
-      %50623 = OpExtInst %float %1 Sqrt %131729
-      %50627 = OpExtInst %float %1 Sqrt %131728
-      %50633 = OpExtInst %float %1 FMin %50623 %50627
-      %50639 = OpExtInst %float %1 FMax %50623 %50627
-     %113702 = OpCompositeConstruct %_arr_float_uint_2 %50633 %50639
-      %59026 = OpIAdd %uint %131730 %int_1
-      %59028 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131730
-               OpStore %59028 %113702
-               OpBranch %56398
-      %50585 = OpLabel
-      %50588 = OpLoad %uint %47980
-      %50589 = OpBitwiseAnd %uint %50588 %uint_32768
-      %50590 = OpUGreaterThan %bool %50589 %uint_0
-               OpSelectionMerge %58994 None
-               OpSwitch %uint_0 %58978
-      %58978 = OpLabel
-               OpSelectionMerge %58993 None
-               OpBranchConditional %50590 %58980 %58988
-      %58988 = OpLabel
-      %58990 = OpISub %uint %129504 %int_1
-      %58991 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %58990
-      %58992 = OpLoad %_arr_float_uint_2 %58991
-     %112299 = OpCompositeExtract %float %58992 0
-     %112300 = OpCompositeExtract %float %58992 1
-               OpBranch %58994
-      %58980 = OpLabel
-      %58982 = OpIAdd %uint %129506 %int_1
-      %58983 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %58984 = OpLoad %float %58983
-               OpBranch %58994
-      %58993 = OpLabel
-               OpUnreachable
-      %58994 = OpLabel
-     %138944 = OpPhi %uint %58982 %58980 %129506 %58988
-     %131733 = OpPhi %uint %129504 %58980 %58990 %58988
-     %131732 = OpPhi %float %58984 %58980 %112299 %58988
-     %131731 = OpPhi %float %58984 %58980 %112300 %58988
-      %50594 = OpExtInst %float %1 Fract %131732
-      %50598 = OpExtInst %float %1 Fract %131731
-      %50604 = OpExtInst %float %1 FMin %50594 %50598
-      %50610 = OpExtInst %float %1 FMax %50594 %50598
-     %113693 = OpCompositeConstruct %_arr_float_uint_2 %50604 %50610
-      %58998 = OpIAdd %uint %131733 %int_1
-      %59000 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131733
-               OpStore %59000 %113693
-               OpBranch %56398
-      %50556 = OpLabel
-      %50559 = OpLoad %uint %47980
-      %50560 = OpBitwiseAnd %uint %50559 %uint_32768
-      %50561 = OpUGreaterThan %bool %50560 %uint_0
-               OpSelectionMerge %58966 None
-               OpSwitch %uint_0 %58950
-      %58950 = OpLabel
-               OpSelectionMerge %58965 None
-               OpBranchConditional %50561 %58952 %58960
-      %58960 = OpLabel
-      %58962 = OpISub %uint %129504 %int_1
-      %58963 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %58962
-      %58964 = OpLoad %_arr_float_uint_2 %58963
-     %112308 = OpCompositeExtract %float %58964 0
-     %112309 = OpCompositeExtract %float %58964 1
-               OpBranch %58966
-      %58952 = OpLabel
-      %58954 = OpIAdd %uint %129506 %int_1
-      %58955 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %58956 = OpLoad %float %58955
-               OpBranch %58966
-      %58965 = OpLabel
-               OpUnreachable
-      %58966 = OpLabel
-     %138943 = OpPhi %uint %58954 %58952 %129506 %58960
-     %131736 = OpPhi %uint %129504 %58952 %58962 %58960
-     %131735 = OpPhi %float %58956 %58952 %112308 %58960
-     %131734 = OpPhi %float %58956 %58952 %112309 %58960
-      %50565 = OpExtInst %float %1 Ceil %131735
-      %50569 = OpExtInst %float %1 Ceil %131734
-      %50575 = OpExtInst %float %1 FMin %50565 %50569
-      %50581 = OpExtInst %float %1 FMax %50565 %50569
-     %113684 = OpCompositeConstruct %_arr_float_uint_2 %50575 %50581
-      %58970 = OpIAdd %uint %131736 %int_1
-      %58972 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131736
-               OpStore %58972 %113684
-               OpBranch %56398
-      %50527 = OpLabel
-      %50530 = OpLoad %uint %47980
-      %50531 = OpBitwiseAnd %uint %50530 %uint_32768
-      %50532 = OpUGreaterThan %bool %50531 %uint_0
-               OpSelectionMerge %58938 None
-               OpSwitch %uint_0 %58922
-      %58922 = OpLabel
-               OpSelectionMerge %58937 None
-               OpBranchConditional %50532 %58924 %58932
-      %58932 = OpLabel
-      %58934 = OpISub %uint %129504 %int_1
-      %58935 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %58934
-      %58936 = OpLoad %_arr_float_uint_2 %58935
-     %112317 = OpCompositeExtract %float %58936 0
-     %112318 = OpCompositeExtract %float %58936 1
-               OpBranch %58938
-      %58924 = OpLabel
-      %58926 = OpIAdd %uint %129506 %int_1
-      %58927 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %58928 = OpLoad %float %58927
-               OpBranch %58938
-      %58937 = OpLabel
-               OpUnreachable
-      %58938 = OpLabel
-     %138942 = OpPhi %uint %58926 %58924 %129506 %58932
-     %131739 = OpPhi %uint %129504 %58924 %58934 %58932
-     %131738 = OpPhi %float %58928 %58924 %112317 %58932
-     %131737 = OpPhi %float %58928 %58924 %112318 %58932
-      %50536 = OpExtInst %float %1 Floor %131738
-      %50540 = OpExtInst %float %1 Floor %131737
-      %50546 = OpExtInst %float %1 FMin %50536 %50540
-      %50552 = OpExtInst %float %1 FMax %50536 %50540
-     %113675 = OpCompositeConstruct %_arr_float_uint_2 %50546 %50552
-      %58942 = OpIAdd %uint %131739 %int_1
-      %58944 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131739
-               OpStore %58944 %113675
-               OpBranch %56398
-      %50498 = OpLabel
-      %50501 = OpLoad %uint %47980
-      %50502 = OpBitwiseAnd %uint %50501 %uint_32768
-      %50503 = OpUGreaterThan %bool %50502 %uint_0
-               OpSelectionMerge %58910 None
-               OpSwitch %uint_0 %58894
-      %58894 = OpLabel
-               OpSelectionMerge %58909 None
-               OpBranchConditional %50503 %58896 %58904
-      %58904 = OpLabel
-      %58906 = OpISub %uint %129504 %int_1
-      %58907 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %58906
-      %58908 = OpLoad %_arr_float_uint_2 %58907
-     %112326 = OpCompositeExtract %float %58908 0
-     %112327 = OpCompositeExtract %float %58908 1
-               OpBranch %58910
-      %58896 = OpLabel
-      %58898 = OpIAdd %uint %129506 %int_1
-      %58899 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %58900 = OpLoad %float %58899
-               OpBranch %58910
-      %58909 = OpLabel
-               OpUnreachable
-      %58910 = OpLabel
-     %138941 = OpPhi %uint %58898 %58896 %129506 %58904
-     %131742 = OpPhi %uint %129504 %58896 %58906 %58904
-     %131741 = OpPhi %float %58900 %58896 %112326 %58904
-     %131740 = OpPhi %float %58900 %58896 %112327 %58904
-      %50507 = OpExtInst %float %1 FSign %131741
-      %50511 = OpExtInst %float %1 FSign %131740
-      %50517 = OpExtInst %float %1 FMin %50507 %50511
-      %50523 = OpExtInst %float %1 FMax %50507 %50511
-     %113666 = OpCompositeConstruct %_arr_float_uint_2 %50517 %50523
-      %58914 = OpIAdd %uint %131742 %int_1
-      %58916 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131742
-               OpStore %58916 %113666
-               OpBranch %56398
-      %50469 = OpLabel
-      %50472 = OpLoad %uint %47980
-      %50473 = OpBitwiseAnd %uint %50472 %uint_32768
-      %50474 = OpUGreaterThan %bool %50473 %uint_0
-               OpSelectionMerge %58882 None
-               OpSwitch %uint_0 %58866
-      %58866 = OpLabel
-               OpSelectionMerge %58881 None
-               OpBranchConditional %50474 %58868 %58876
-      %58876 = OpLabel
-      %58878 = OpISub %uint %129504 %int_1
-      %58879 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %58878
-      %58880 = OpLoad %_arr_float_uint_2 %58879
-     %112335 = OpCompositeExtract %float %58880 0
-     %112336 = OpCompositeExtract %float %58880 1
-               OpBranch %58882
-      %58868 = OpLabel
-      %58870 = OpIAdd %uint %129506 %int_1
-      %58871 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %58872 = OpLoad %float %58871
-               OpBranch %58882
-      %58881 = OpLabel
-               OpUnreachable
-      %58882 = OpLabel
-     %138940 = OpPhi %uint %58870 %58868 %129506 %58876
-     %131745 = OpPhi %uint %129504 %58868 %58878 %58876
-     %131744 = OpPhi %float %58872 %58868 %112335 %58876
-     %131743 = OpPhi %float %58872 %58868 %112336 %58876
-      %50478 = OpExtInst %float %1 FAbs %131744
-      %50482 = OpExtInst %float %1 FAbs %131743
-      %50488 = OpExtInst %float %1 FMin %50478 %50482
-      %50494 = OpExtInst %float %1 FMax %50478 %50482
-     %113657 = OpCompositeConstruct %_arr_float_uint_2 %50488 %50494
-      %58886 = OpIAdd %uint %131745 %int_1
-      %58888 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %131745
-               OpStore %58888 %113657
-               OpBranch %56398
-      %50405 = OpLabel
-      %50408 = OpLoad %uint %47980
-      %50409 = OpBitwiseAnd %uint %50408 %uint_32768
-      %50410 = OpUGreaterThan %bool %50409 %uint_0
-               OpSelectionMerge %58831 None
-               OpSwitch %uint_0 %58815
-      %58815 = OpLabel
-               OpSelectionMerge %58830 None
-               OpBranchConditional %50410 %58817 %58825
-      %58825 = OpLabel
-      %58827 = OpISub %uint %129523 %int_1
-               OpBranch %58831
-      %58817 = OpLabel
-      %58819 = OpIAdd %uint %129549 %int_1
-               OpBranch %58831
-      %58830 = OpLabel
-               OpUnreachable
-      %58831 = OpLabel
-     %131748 = OpPhi %uint %58819 %58817 %129549 %58825
-     %131747 = OpPhi %uint %129523 %58817 %58827 %58825
-      %50414 = OpLoad %uint %47980
-      %50415 = OpBitwiseAnd %uint %50414 %uint_16384
-      %50416 = OpUGreaterThan %bool %50415 %uint_0
-               OpSelectionMerge %58854 None
-               OpSwitch %uint_0 %58838
-      %58838 = OpLabel
-               OpSelectionMerge %58853 None
-               OpBranchConditional %50416 %58840 %58848
-      %58848 = OpLabel
-      %58850 = OpISub %uint %131747 %int_1
-               OpBranch %58854
-      %58840 = OpLabel
-      %58842 = OpIAdd %uint %131748 %int_1
-               OpBranch %58854
-      %58853 = OpLabel
-               OpUnreachable
-      %58854 = OpLabel
-     %207418 = OpPhi %uint %58842 %58840 %131748 %58848
-     %206927 = OpPhi %uint %131747 %58840 %58850 %58848
-     %113650 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %58858 = OpIAdd %uint %129504 %int_1
-      %58860 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %58860 %113650
-               OpBranch %56398
-      %50359 = OpLabel
-      %50362 = OpLoad %uint %47980
-      %50363 = OpBitwiseAnd %uint %50362 %uint_32768
-      %50364 = OpUGreaterThan %bool %50363 %uint_0
-               OpSelectionMerge %58780 None
-               OpSwitch %uint_0 %58764
-      %58764 = OpLabel
-               OpSelectionMerge %58779 None
-               OpBranchConditional %50364 %58766 %58774
-      %58774 = OpLabel
-      %58776 = OpISub %uint %129514 %int_1
-               OpBranch %58780
-      %58766 = OpLabel
-      %58768 = OpIAdd %uint %129517 %int_1
-               OpBranch %58780
-      %58779 = OpLabel
-               OpUnreachable
-      %58780 = OpLabel
-     %132415 = OpPhi %uint %58768 %58766 %129517 %58774
-     %132414 = OpPhi %uint %129514 %58766 %58776 %58774
-      %50368 = OpLoad %uint %47980
-      %50369 = OpBitwiseAnd %uint %50368 %uint_16384
-      %50370 = OpUGreaterThan %bool %50369 %uint_0
-               OpSelectionMerge %58803 None
-               OpSwitch %uint_0 %58787
-      %58787 = OpLabel
-               OpSelectionMerge %58802 None
-               OpBranchConditional %50370 %58789 %58797
-      %58797 = OpLabel
-      %58799 = OpISub %uint %132414 %int_1
-               OpBranch %58803
-      %58789 = OpLabel
-      %58791 = OpIAdd %uint %132415 %int_1
-               OpBranch %58803
-      %58802 = OpLabel
-               OpUnreachable
-      %58803 = OpLabel
-     %206642 = OpPhi %uint %58791 %58789 %132415 %58797
-     %206388 = OpPhi %uint %132414 %58789 %58799 %58797
-     %113645 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %58807 = OpIAdd %uint %129504 %int_1
-      %58809 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %58809 %113645
-               OpBranch %56398
-      %50295 = OpLabel
-      %50298 = OpLoad %uint %47980
-      %50299 = OpBitwiseAnd %uint %50298 %uint_32768
-      %50300 = OpUGreaterThan %bool %50299 %uint_0
-               OpSelectionMerge %58729 None
-               OpSwitch %uint_0 %58713
-      %58713 = OpLabel
-               OpSelectionMerge %58728 None
-               OpBranchConditional %50300 %58715 %58723
-      %58723 = OpLabel
-      %58725 = OpISub %uint %129525 %int_1
-               OpBranch %58729
-      %58715 = OpLabel
-      %58717 = OpIAdd %uint %130223 %int_1
-               OpBranch %58729
-      %58728 = OpLabel
-               OpUnreachable
-      %58729 = OpLabel
-     %133082 = OpPhi %uint %58717 %58715 %130223 %58723
-     %133081 = OpPhi %uint %129525 %58715 %58725 %58723
-      %50304 = OpLoad %uint %47980
-      %50305 = OpBitwiseAnd %uint %50304 %uint_16384
-      %50306 = OpUGreaterThan %bool %50305 %uint_0
-               OpSelectionMerge %58752 None
-               OpSwitch %uint_0 %58736
-      %58736 = OpLabel
-               OpSelectionMerge %58751 None
-               OpBranchConditional %50306 %58738 %58746
-      %58746 = OpLabel
-      %58748 = OpISub %uint %133081 %int_1
-               OpBranch %58752
-      %58738 = OpLabel
-      %58740 = OpIAdd %uint %133082 %int_1
-               OpBranch %58752
-      %58751 = OpLabel
-               OpUnreachable
-      %58752 = OpLabel
-     %208994 = OpPhi %uint %58740 %58738 %133082 %58746
-     %207156 = OpPhi %uint %133081 %58738 %58748 %58746
-     %113640 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %58756 = OpIAdd %uint %129504 %int_1
-      %58758 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %58758 %113640
-               OpBranch %56398
-      %50255 = OpLabel
-      %50258 = OpLoad %uint %47980
-      %50259 = OpBitwiseAnd %uint %50258 %uint_32768
-      %50260 = OpUGreaterThan %bool %50259 %uint_0
-               OpSelectionMerge %58701 None
-               OpSwitch %uint_0 %58685
-      %58685 = OpLabel
-               OpSelectionMerge %58700 None
-               OpBranchConditional %50260 %58687 %58695
-      %58695 = OpLabel
-      %58697 = OpISub %uint %129523 %int_1
-               OpBranch %58701
-      %58687 = OpLabel
-      %58689 = OpIAdd %uint %129549 %int_1
-               OpBranch %58701
-      %58700 = OpLabel
-               OpUnreachable
-      %58701 = OpLabel
-     %207413 = OpPhi %uint %58689 %58687 %129549 %58695
-     %206922 = OpPhi %uint %129523 %58687 %58697 %58695
-     %113635 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %58705 = OpIAdd %uint %129504 %int_1
-      %58707 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %58707 %113635
-               OpBranch %56398
-      %50215 = OpLabel
-      %50218 = OpLoad %uint %47980
-      %50219 = OpBitwiseAnd %uint %50218 %uint_32768
-      %50220 = OpUGreaterThan %bool %50219 %uint_0
-               OpSelectionMerge %58673 None
-               OpSwitch %uint_0 %58657
-      %58657 = OpLabel
-               OpSelectionMerge %58672 None
-               OpBranchConditional %50220 %58659 %58667
-      %58667 = OpLabel
-      %58669 = OpISub %uint %129514 %int_1
-               OpBranch %58673
-      %58659 = OpLabel
-      %58661 = OpIAdd %uint %129517 %int_1
-               OpBranch %58673
-      %58672 = OpLabel
-               OpUnreachable
-      %58673 = OpLabel
-     %206638 = OpPhi %uint %58661 %58659 %129517 %58667
-     %206384 = OpPhi %uint %129514 %58659 %58669 %58667
-     %113630 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %58677 = OpIAdd %uint %129504 %int_1
-      %58679 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %58679 %113630
-               OpBranch %56398
-      %50175 = OpLabel
-      %50178 = OpLoad %uint %47980
-      %50179 = OpBitwiseAnd %uint %50178 %uint_32768
-      %50180 = OpUGreaterThan %bool %50179 %uint_0
-               OpSelectionMerge %58645 None
-               OpSwitch %uint_0 %58629
-      %58629 = OpLabel
-               OpSelectionMerge %58644 None
-               OpBranchConditional %50180 %58631 %58639
-      %58639 = OpLabel
-      %58641 = OpISub %uint %129525 %int_1
-               OpBranch %58645
-      %58631 = OpLabel
-      %58633 = OpIAdd %uint %130223 %int_1
-               OpBranch %58645
-      %58644 = OpLabel
-               OpUnreachable
-      %58645 = OpLabel
-     %208991 = OpPhi %uint %58633 %58631 %130223 %58639
-     %207153 = OpPhi %uint %129525 %58631 %58641 %58639
-     %113625 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %58649 = OpIAdd %uint %129504 %int_1
-      %58651 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %58651 %113625
-               OpBranch %56398
-      %50124 = OpLabel
-      %50127 = OpLoad %uint %47980
-      %50128 = OpBitwiseAnd %uint %50127 %uint_32768
-      %50129 = OpUGreaterThan %bool %50128 %uint_0
-               OpSelectionMerge %58594 None
-               OpSwitch %uint_0 %58578
-      %58578 = OpLabel
-               OpSelectionMerge %58593 None
-               OpBranchConditional %50129 %58580 %58588
-      %58588 = OpLabel
-      %58590 = OpISub %uint %129523 %int_1
-               OpBranch %58594
-      %58580 = OpLabel
-      %58582 = OpIAdd %uint %129549 %int_1
-               OpBranch %58594
-      %58593 = OpLabel
-               OpUnreachable
-      %58594 = OpLabel
-     %135732 = OpPhi %uint %58582 %58580 %129549 %58588
-     %135731 = OpPhi %uint %129523 %58580 %58590 %58588
-      %50133 = OpLoad %uint %47980
-      %50134 = OpBitwiseAnd %uint %50133 %uint_16384
-      %50135 = OpUGreaterThan %bool %50134 %uint_0
-               OpSelectionMerge %58617 None
-               OpSwitch %uint_0 %58601
-      %58601 = OpLabel
-               OpSelectionMerge %58616 None
-               OpBranchConditional %50135 %58603 %58611
-      %58611 = OpLabel
-      %58613 = OpISub %uint %135731 %int_1
-               OpBranch %58617
-      %58603 = OpLabel
-      %58605 = OpIAdd %uint %135732 %int_1
-               OpBranch %58617
-      %58616 = OpLabel
-               OpUnreachable
-      %58617 = OpLabel
-     %207410 = OpPhi %uint %58605 %58603 %135732 %58611
-     %206919 = OpPhi %uint %135731 %58603 %58613 %58611
-     %113620 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %58621 = OpIAdd %uint %129504 %int_1
-      %58623 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %58623 %113620
-               OpBranch %56398
-      %50073 = OpLabel
-      %50076 = OpLoad %uint %47980
-      %50077 = OpBitwiseAnd %uint %50076 %uint_32768
-      %50078 = OpUGreaterThan %bool %50077 %uint_0
-               OpSelectionMerge %58543 None
-               OpSwitch %uint_0 %58527
-      %58527 = OpLabel
-               OpSelectionMerge %58542 None
-               OpBranchConditional %50078 %58529 %58537
-      %58537 = OpLabel
-      %58539 = OpISub %uint %129514 %int_1
-               OpBranch %58543
-      %58529 = OpLabel
-      %58531 = OpIAdd %uint %129517 %int_1
-               OpBranch %58543
-      %58542 = OpLabel
-               OpUnreachable
-      %58543 = OpLabel
-     %136399 = OpPhi %uint %58531 %58529 %129517 %58537
-     %136398 = OpPhi %uint %129514 %58529 %58539 %58537
-      %50082 = OpLoad %uint %47980
-      %50083 = OpBitwiseAnd %uint %50082 %uint_16384
-      %50084 = OpUGreaterThan %bool %50083 %uint_0
-               OpSelectionMerge %58566 None
-               OpSwitch %uint_0 %58550
-      %58550 = OpLabel
-               OpSelectionMerge %58565 None
-               OpBranchConditional %50084 %58552 %58560
-      %58560 = OpLabel
-      %58562 = OpISub %uint %136398 %int_1
-               OpBranch %58566
-      %58552 = OpLabel
-      %58554 = OpIAdd %uint %136399 %int_1
-               OpBranch %58566
-      %58565 = OpLabel
-               OpUnreachable
-      %58566 = OpLabel
-     %206634 = OpPhi %uint %58554 %58552 %136399 %58560
-     %206380 = OpPhi %uint %136398 %58552 %58562 %58560
-     %113615 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %58570 = OpIAdd %uint %129504 %int_1
-      %58572 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %58572 %113615
-               OpBranch %56398
-      %50022 = OpLabel
-      %50025 = OpLoad %uint %47980
-      %50026 = OpBitwiseAnd %uint %50025 %uint_32768
-      %50027 = OpUGreaterThan %bool %50026 %uint_0
-               OpSelectionMerge %58492 None
-               OpSwitch %uint_0 %58476
-      %58476 = OpLabel
-               OpSelectionMerge %58491 None
-               OpBranchConditional %50027 %58478 %58486
-      %58486 = OpLabel
-      %58488 = OpISub %uint %129525 %int_1
-               OpBranch %58492
-      %58478 = OpLabel
-      %58480 = OpIAdd %uint %130223 %int_1
-               OpBranch %58492
-      %58491 = OpLabel
-               OpUnreachable
-      %58492 = OpLabel
-     %137066 = OpPhi %uint %58480 %58478 %130223 %58486
-     %137065 = OpPhi %uint %129525 %58478 %58488 %58486
-      %50031 = OpLoad %uint %47980
-      %50032 = OpBitwiseAnd %uint %50031 %uint_16384
-      %50033 = OpUGreaterThan %bool %50032 %uint_0
-               OpSelectionMerge %58515 None
-               OpSwitch %uint_0 %58499
-      %58499 = OpLabel
-               OpSelectionMerge %58514 None
-               OpBranchConditional %50033 %58501 %58509
-      %58509 = OpLabel
-      %58511 = OpISub %uint %137065 %int_1
-               OpBranch %58515
-      %58501 = OpLabel
-      %58503 = OpIAdd %uint %137066 %int_1
-               OpBranch %58515
-      %58514 = OpLabel
-               OpUnreachable
-      %58515 = OpLabel
-     %208986 = OpPhi %uint %58503 %58501 %137066 %58509
-     %207148 = OpPhi %uint %137065 %58501 %58511 %58509
-     %113610 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %58519 = OpIAdd %uint %129504 %int_1
-      %58521 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %129504
-               OpStore %58521 %113610
-               OpBranch %56398
-      %49973 = OpLabel
-      %49976 = OpLoad %uint %47980
-      %49977 = OpBitwiseAnd %uint %49976 %uint_32768
-      %49978 = OpUGreaterThan %bool %49977 %uint_0
-               OpSelectionMerge %58441 None
-               OpSwitch %uint_0 %58425
-      %58425 = OpLabel
-               OpSelectionMerge %58440 None
-               OpBranchConditional %49978 %58427 %58435
-      %58435 = OpLabel
-      %58437 = OpISub %uint %129514 %int_1
-      %58438 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %58437
-      %58439 = OpLoad %_arr_v3float_uint_2 %58438
-     %112353 = OpCompositeExtract %v3float %58439 0
-     %112354 = OpCompositeExtract %v3float %58439 1
-               OpBranch %58441
-      %58427 = OpLabel
-      %58429 = OpIAdd %uint %129517 %int_1
-      %58430 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %58431 = OpLoad %v3float %58430
-               OpBranch %58441
-      %58440 = OpLabel
-               OpUnreachable
-      %58441 = OpLabel
-     %137735 = OpPhi %uint %58429 %58427 %129517 %58435
-     %137734 = OpPhi %uint %129514 %58427 %58437 %58435
-     %137732 = OpPhi %v3float %58431 %58427 %112353 %58435
-     %137731 = OpPhi %v3float %58431 %58427 %112354 %58435
-      %49982 = OpLoad %uint %47980
-      %49983 = OpBitwiseAnd %uint %49982 %uint_16384
-      %49984 = OpUGreaterThan %bool %49983 %uint_0
-               OpSelectionMerge %58464 None
-               OpSwitch %uint_0 %58448
-      %58448 = OpLabel
-               OpSelectionMerge %58463 None
-               OpBranchConditional %49984 %58450 %58458
-      %58458 = OpLabel
-      %58460 = OpISub %uint %137734 %int_1
-      %58461 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %58460
-      %58462 = OpLoad %_arr_v3float_uint_2 %58461
-     %112344 = OpCompositeExtract %v3float %58462 0
-     %112345 = OpCompositeExtract %v3float %58462 1
-               OpBranch %58464
-      %58450 = OpLabel
-      %58452 = OpIAdd %uint %137735 %int_1
-      %58453 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %137735
-      %58454 = OpLoad %v3float %58453
-               OpBranch %58464
-      %58463 = OpLabel
-               OpUnreachable
-      %58464 = OpLabel
-     %206631 = OpPhi %uint %58452 %58450 %137735 %58458
-     %137738 = OpPhi %uint %137734 %58450 %58460 %58458
-     %137737 = OpPhi %v3float %58454 %58450 %112344 %58458
-     %137736 = OpPhi %v3float %58454 %58450 %112345 %58458
-      %49990 = OpExtInst %v3float %1 Cross %137732 %137737
-      %49995 = OpExtInst %v3float %1 Cross %137732 %137736
-      %50000 = OpExtInst %v3float %1 Cross %137731 %137737
-      %50005 = OpExtInst %v3float %1 Cross %137731 %137736
-      %50010 = OpExtInst %v3float %1 FMin %50000 %50005
-      %50011 = OpExtInst %v3float %1 FMin %49995 %50010
-      %50012 = OpExtInst %v3float %1 FMin %49990 %50011
-      %50017 = OpExtInst %v3float %1 FMax %50000 %50005
-      %50018 = OpExtInst %v3float %1 FMax %49995 %50017
-      %50019 = OpExtInst %v3float %1 FMax %49990 %50018
-      %50020 = OpCompositeConstruct %_arr_v3float_uint_2 %50012 %50019
-      %58468 = OpIAdd %uint %137738 %int_1
-      %58470 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %137738
-               OpStore %58470 %50020
-               OpBranch %56398
-      %49906 = OpLabel
-      %49909 = OpLoad %uint %47980
-      %49910 = OpBitwiseAnd %uint %49909 %uint_32768
-      %49911 = OpUGreaterThan %bool %49910 %uint_0
-               OpSelectionMerge %58390 None
-               OpSwitch %uint_0 %58374
-      %58374 = OpLabel
-               OpSelectionMerge %58389 None
-               OpBranchConditional %49911 %58376 %58384
-      %58384 = OpLabel
-      %58386 = OpISub %uint %129523 %int_1
-      %58387 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %58386
-      %58388 = OpLoad %_arr_v4float_uint_2 %58387
-     %112371 = OpCompositeExtract %v4float %58388 0
-     %112372 = OpCompositeExtract %v4float %58388 1
-               OpBranch %58390
-      %58376 = OpLabel
-      %58378 = OpIAdd %uint %129549 %int_1
-      %58379 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %58380 = OpLoad %v4float %58379
-               OpBranch %58390
-      %58389 = OpLabel
-               OpUnreachable
-      %58390 = OpLabel
-     %207403 = OpPhi %uint %58378 %58376 %129549 %58384
-     %137749 = OpPhi %uint %129523 %58376 %58386 %58384
-     %137740 = OpPhi %v4float %58380 %58376 %112371 %58384
-     %137739 = OpPhi %v4float %58380 %58376 %112372 %58384
-      %49915 = OpLoad %uint %47980
-      %49916 = OpBitwiseAnd %uint %49915 %uint_16384
-      %49917 = OpUGreaterThan %bool %49916 %uint_0
-               OpSelectionMerge %58413 None
-               OpSwitch %uint_0 %58397
-      %58397 = OpLabel
-               OpSelectionMerge %58412 None
-               OpBranchConditional %49917 %58399 %58407
-      %58407 = OpLabel
-      %58409 = OpISub %uint %129504 %int_1
-      %58410 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %58409
-      %58411 = OpLoad %_arr_float_uint_2 %58410
-     %112362 = OpCompositeExtract %float %58411 0
-     %112363 = OpCompositeExtract %float %58411 1
-               OpBranch %58413
-      %58399 = OpLabel
-      %58401 = OpIAdd %uint %129506 %int_1
-      %58402 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %58403 = OpLoad %float %58402
-               OpBranch %58413
-      %58412 = OpLabel
-               OpUnreachable
-      %58413 = OpLabel
-     %138922 = OpPhi %uint %58401 %58399 %129506 %58407
-     %138720 = OpPhi %uint %129504 %58399 %58409 %58407
-     %137745 = OpPhi %float %58403 %58399 %112362 %58407
-     %137744 = OpPhi %float %58403 %58399 %112363 %58407
-      %49923 = OpCompositeConstruct %v4float %137745 %137745 %137745 %137745
-      %49924 = OpFMod %v4float %137740 %49923
-      %49930 = OpCompositeConstruct %v4float %137744 %137744 %137744 %137744
-      %49931 = OpFMod %v4float %137740 %49930
-      %49938 = OpFMod %v4float %137739 %49923
-      %49945 = OpFMod %v4float %137739 %49930
-      %49955 = OpExtInst %v4float %1 FMin %49938 %49945
-      %49956 = OpExtInst %v4float %1 FMin %49931 %49955
-      %49957 = OpExtInst %v4float %1 FMin %49924 %49956
-      %49967 = OpExtInst %v4float %1 FMax %49938 %49945
-      %49968 = OpExtInst %v4float %1 FMax %49931 %49967
-      %49969 = OpExtInst %v4float %1 FMax %49924 %49968
-     %113589 = OpCompositeConstruct %_arr_v4float_uint_2 %49957 %49969
-      %58417 = OpIAdd %uint %137749 %int_1
-      %58419 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %137749
-               OpStore %58419 %113589
-               OpBranch %56398
-      %49843 = OpLabel
-      %49846 = OpLoad %uint %47980
-      %49847 = OpBitwiseAnd %uint %49846 %uint_32768
-      %49848 = OpUGreaterThan %bool %49847 %uint_0
-               OpSelectionMerge %58339 None
-               OpSwitch %uint_0 %58323
-      %58323 = OpLabel
-               OpSelectionMerge %58338 None
-               OpBranchConditional %49848 %58325 %58333
-      %58333 = OpLabel
-      %58335 = OpISub %uint %129523 %int_1
-      %58336 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %58335
-      %58337 = OpLoad %_arr_v4float_uint_2 %58336
-     %112389 = OpCompositeExtract %v4float %58337 0
-     %112390 = OpCompositeExtract %v4float %58337 1
-               OpBranch %58339
-      %58325 = OpLabel
-      %58327 = OpIAdd %uint %129549 %int_1
-      %58328 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %58329 = OpLoad %v4float %58328
-               OpBranch %58339
-      %58338 = OpLabel
-               OpUnreachable
-      %58339 = OpLabel
-     %137754 = OpPhi %uint %58327 %58325 %129549 %58333
-     %137753 = OpPhi %uint %129523 %58325 %58335 %58333
-     %137751 = OpPhi %v4float %58329 %58325 %112389 %58333
-     %137750 = OpPhi %v4float %58329 %58325 %112390 %58333
-      %49852 = OpLoad %uint %47980
-      %49853 = OpBitwiseAnd %uint %49852 %uint_16384
-      %49854 = OpUGreaterThan %bool %49853 %uint_0
-               OpSelectionMerge %58362 None
-               OpSwitch %uint_0 %58346
-      %58346 = OpLabel
-               OpSelectionMerge %58361 None
-               OpBranchConditional %49854 %58348 %58356
-      %58356 = OpLabel
-      %58358 = OpISub %uint %137753 %int_1
-      %58359 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %58358
-      %58360 = OpLoad %_arr_v4float_uint_2 %58359
-     %112380 = OpCompositeExtract %v4float %58360 0
-     %112381 = OpCompositeExtract %v4float %58360 1
-               OpBranch %58362
-      %58348 = OpLabel
-      %58350 = OpIAdd %uint %137754 %int_1
-      %58351 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %137754
-      %58352 = OpLoad %v4float %58351
-               OpBranch %58362
-      %58361 = OpLabel
-               OpUnreachable
-      %58362 = OpLabel
-     %207401 = OpPhi %uint %58350 %58348 %137754 %58356
-     %137759 = OpPhi %uint %137753 %58348 %58358 %58356
-     %137756 = OpPhi %v4float %58352 %58348 %112380 %58356
-     %137755 = OpPhi %v4float %58352 %58348 %112381 %58356
-      %49860 = OpFMod %v4float %137751 %137756
-      %49866 = OpFMod %v4float %137751 %137755
-      %49872 = OpFMod %v4float %137750 %137756
-      %49878 = OpFMod %v4float %137750 %137755
-      %49888 = OpExtInst %v4float %1 FMin %49872 %49878
-      %49889 = OpExtInst %v4float %1 FMin %49866 %49888
-      %49890 = OpExtInst %v4float %1 FMin %49860 %49889
-      %49900 = OpExtInst %v4float %1 FMax %49872 %49878
-      %49901 = OpExtInst %v4float %1 FMax %49866 %49900
-      %49902 = OpExtInst %v4float %1 FMax %49860 %49901
-     %113574 = OpCompositeConstruct %_arr_v4float_uint_2 %49890 %49902
-      %58366 = OpIAdd %uint %137759 %int_1
-      %58368 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %137759
-               OpStore %58368 %113574
-               OpBranch %56398
-      %49776 = OpLabel
-      %49779 = OpLoad %uint %47980
-      %49780 = OpBitwiseAnd %uint %49779 %uint_32768
-      %49781 = OpUGreaterThan %bool %49780 %uint_0
-               OpSelectionMerge %58288 None
-               OpSwitch %uint_0 %58272
-      %58272 = OpLabel
-               OpSelectionMerge %58287 None
-               OpBranchConditional %49781 %58274 %58282
-      %58282 = OpLabel
-      %58284 = OpISub %uint %129514 %int_1
-      %58285 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %58284
-      %58286 = OpLoad %_arr_v3float_uint_2 %58285
-     %112407 = OpCompositeExtract %v3float %58286 0
-     %112408 = OpCompositeExtract %v3float %58286 1
-               OpBranch %58288
-      %58274 = OpLabel
-      %58276 = OpIAdd %uint %129517 %int_1
-      %58277 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %58278 = OpLoad %v3float %58277
-               OpBranch %58288
-      %58287 = OpLabel
-               OpUnreachable
-      %58288 = OpLabel
-     %206626 = OpPhi %uint %58276 %58274 %129517 %58282
-     %137770 = OpPhi %uint %129514 %58274 %58284 %58282
-     %137761 = OpPhi %v3float %58278 %58274 %112407 %58282
-     %137760 = OpPhi %v3float %58278 %58274 %112408 %58282
-      %49785 = OpLoad %uint %47980
-      %49786 = OpBitwiseAnd %uint %49785 %uint_16384
-      %49787 = OpUGreaterThan %bool %49786 %uint_0
-               OpSelectionMerge %58311 None
-               OpSwitch %uint_0 %58295
-      %58295 = OpLabel
-               OpSelectionMerge %58310 None
-               OpBranchConditional %49787 %58297 %58305
-      %58305 = OpLabel
-      %58307 = OpISub %uint %129504 %int_1
-      %58308 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %58307
-      %58309 = OpLoad %_arr_float_uint_2 %58308
-     %112398 = OpCompositeExtract %float %58309 0
-     %112399 = OpCompositeExtract %float %58309 1
-               OpBranch %58311
-      %58297 = OpLabel
-      %58299 = OpIAdd %uint %129506 %int_1
-      %58300 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %58301 = OpLoad %float %58300
-               OpBranch %58311
-      %58310 = OpLabel
-               OpUnreachable
-      %58311 = OpLabel
-     %138919 = OpPhi %uint %58299 %58297 %129506 %58305
-     %138717 = OpPhi %uint %129504 %58297 %58307 %58305
-     %137766 = OpPhi %float %58301 %58297 %112398 %58305
-     %137765 = OpPhi %float %58301 %58297 %112399 %58305
-      %49793 = OpCompositeConstruct %v3float %137766 %137766 %137766
-      %49794 = OpFMod %v3float %137761 %49793
-      %49800 = OpCompositeConstruct %v3float %137765 %137765 %137765
-      %49801 = OpFMod %v3float %137761 %49800
-      %49808 = OpFMod %v3float %137760 %49793
-      %49815 = OpFMod %v3float %137760 %49800
-      %49825 = OpExtInst %v3float %1 FMin %49808 %49815
-      %49826 = OpExtInst %v3float %1 FMin %49801 %49825
-      %49827 = OpExtInst %v3float %1 FMin %49794 %49826
-      %49837 = OpExtInst %v3float %1 FMax %49808 %49815
-      %49838 = OpExtInst %v3float %1 FMax %49801 %49837
-      %49839 = OpExtInst %v3float %1 FMax %49794 %49838
-     %113559 = OpCompositeConstruct %_arr_v3float_uint_2 %49827 %49839
-      %58315 = OpIAdd %uint %137770 %int_1
-      %58317 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %137770
-               OpStore %58317 %113559
-               OpBranch %56398
-      %49713 = OpLabel
-      %49716 = OpLoad %uint %47980
-      %49717 = OpBitwiseAnd %uint %49716 %uint_32768
-      %49718 = OpUGreaterThan %bool %49717 %uint_0
-               OpSelectionMerge %58237 None
-               OpSwitch %uint_0 %58221
-      %58221 = OpLabel
-               OpSelectionMerge %58236 None
-               OpBranchConditional %49718 %58223 %58231
-      %58231 = OpLabel
-      %58233 = OpISub %uint %129514 %int_1
-      %58234 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %58233
-      %58235 = OpLoad %_arr_v3float_uint_2 %58234
-     %112425 = OpCompositeExtract %v3float %58235 0
-     %112426 = OpCompositeExtract %v3float %58235 1
-               OpBranch %58237
-      %58223 = OpLabel
-      %58225 = OpIAdd %uint %129517 %int_1
-      %58226 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %58227 = OpLoad %v3float %58226
-               OpBranch %58237
-      %58236 = OpLabel
-               OpUnreachable
-      %58237 = OpLabel
-     %137775 = OpPhi %uint %58225 %58223 %129517 %58231
-     %137774 = OpPhi %uint %129514 %58223 %58233 %58231
-     %137772 = OpPhi %v3float %58227 %58223 %112425 %58231
-     %137771 = OpPhi %v3float %58227 %58223 %112426 %58231
-      %49722 = OpLoad %uint %47980
-      %49723 = OpBitwiseAnd %uint %49722 %uint_16384
-      %49724 = OpUGreaterThan %bool %49723 %uint_0
-               OpSelectionMerge %58260 None
-               OpSwitch %uint_0 %58244
-      %58244 = OpLabel
-               OpSelectionMerge %58259 None
-               OpBranchConditional %49724 %58246 %58254
-      %58254 = OpLabel
-      %58256 = OpISub %uint %137774 %int_1
-      %58257 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %58256
-      %58258 = OpLoad %_arr_v3float_uint_2 %58257
-     %112416 = OpCompositeExtract %v3float %58258 0
-     %112417 = OpCompositeExtract %v3float %58258 1
-               OpBranch %58260
-      %58246 = OpLabel
-      %58248 = OpIAdd %uint %137775 %int_1
-      %58249 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %137775
-      %58250 = OpLoad %v3float %58249
-               OpBranch %58260
-      %58259 = OpLabel
-               OpUnreachable
-      %58260 = OpLabel
-     %206624 = OpPhi %uint %58248 %58246 %137775 %58254
-     %137780 = OpPhi %uint %137774 %58246 %58256 %58254
-     %137777 = OpPhi %v3float %58250 %58246 %112416 %58254
-     %137776 = OpPhi %v3float %58250 %58246 %112417 %58254
-      %49730 = OpFMod %v3float %137772 %137777
-      %49736 = OpFMod %v3float %137772 %137776
-      %49742 = OpFMod %v3float %137771 %137777
-      %49748 = OpFMod %v3float %137771 %137776
-      %49758 = OpExtInst %v3float %1 FMin %49742 %49748
-      %49759 = OpExtInst %v3float %1 FMin %49736 %49758
-      %49760 = OpExtInst %v3float %1 FMin %49730 %49759
-      %49770 = OpExtInst %v3float %1 FMax %49742 %49748
-      %49771 = OpExtInst %v3float %1 FMax %49736 %49770
-      %49772 = OpExtInst %v3float %1 FMax %49730 %49771
-     %113544 = OpCompositeConstruct %_arr_v3float_uint_2 %49760 %49772
-      %58264 = OpIAdd %uint %137780 %int_1
-      %58266 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %137780
-               OpStore %58266 %113544
-               OpBranch %56398
-      %49646 = OpLabel
-      %49649 = OpLoad %uint %47980
-      %49650 = OpBitwiseAnd %uint %49649 %uint_32768
-      %49651 = OpUGreaterThan %bool %49650 %uint_0
-               OpSelectionMerge %58186 None
-               OpSwitch %uint_0 %58170
-      %58170 = OpLabel
-               OpSelectionMerge %58185 None
-               OpBranchConditional %49651 %58172 %58180
-      %58180 = OpLabel
-      %58182 = OpISub %uint %129525 %int_1
-      %58183 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %58182
-      %58184 = OpLoad %_arr_v2float_uint_2 %58183
-     %112443 = OpCompositeExtract %v2float %58184 0
-     %112444 = OpCompositeExtract %v2float %58184 1
-               OpBranch %58186
-      %58172 = OpLabel
-      %58174 = OpIAdd %uint %130223 %int_1
-      %58175 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %58176 = OpLoad %v2float %58175
-               OpBranch %58186
-      %58185 = OpLabel
-               OpUnreachable
-      %58186 = OpLabel
-     %208975 = OpPhi %uint %58174 %58172 %130223 %58180
-     %137791 = OpPhi %uint %129525 %58172 %58182 %58180
-     %137782 = OpPhi %v2float %58176 %58172 %112443 %58180
-     %137781 = OpPhi %v2float %58176 %58172 %112444 %58180
-      %49655 = OpLoad %uint %47980
-      %49656 = OpBitwiseAnd %uint %49655 %uint_16384
-      %49657 = OpUGreaterThan %bool %49656 %uint_0
-               OpSelectionMerge %58209 None
-               OpSwitch %uint_0 %58193
-      %58193 = OpLabel
-               OpSelectionMerge %58208 None
-               OpBranchConditional %49657 %58195 %58203
-      %58203 = OpLabel
-      %58205 = OpISub %uint %129504 %int_1
-      %58206 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %58205
-      %58207 = OpLoad %_arr_float_uint_2 %58206
-     %112434 = OpCompositeExtract %float %58207 0
-     %112435 = OpCompositeExtract %float %58207 1
-               OpBranch %58209
-      %58195 = OpLabel
-      %58197 = OpIAdd %uint %129506 %int_1
-      %58198 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %58199 = OpLoad %float %58198
-               OpBranch %58209
-      %58208 = OpLabel
-               OpUnreachable
-      %58209 = OpLabel
-     %138916 = OpPhi %uint %58197 %58195 %129506 %58203
-     %138714 = OpPhi %uint %129504 %58195 %58205 %58203
-     %137787 = OpPhi %float %58199 %58195 %112434 %58203
-     %137786 = OpPhi %float %58199 %58195 %112435 %58203
-      %49663 = OpCompositeConstruct %v2float %137787 %137787
-      %49664 = OpFMod %v2float %137782 %49663
-      %49670 = OpCompositeConstruct %v2float %137786 %137786
-      %49671 = OpFMod %v2float %137782 %49670
-      %49678 = OpFMod %v2float %137781 %49663
-      %49685 = OpFMod %v2float %137781 %49670
-      %49695 = OpExtInst %v2float %1 FMin %49678 %49685
-      %49696 = OpExtInst %v2float %1 FMin %49671 %49695
-      %49697 = OpExtInst %v2float %1 FMin %49664 %49696
-      %49707 = OpExtInst %v2float %1 FMax %49678 %49685
-      %49708 = OpExtInst %v2float %1 FMax %49671 %49707
-      %49709 = OpExtInst %v2float %1 FMax %49664 %49708
-     %113529 = OpCompositeConstruct %_arr_v2float_uint_2 %49697 %49709
-      %58213 = OpIAdd %uint %137791 %int_1
-      %58215 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %137791
-               OpStore %58215 %113529
-               OpBranch %56398
-      %49583 = OpLabel
-      %49586 = OpLoad %uint %47980
-      %49587 = OpBitwiseAnd %uint %49586 %uint_32768
-      %49588 = OpUGreaterThan %bool %49587 %uint_0
-               OpSelectionMerge %58135 None
-               OpSwitch %uint_0 %58119
-      %58119 = OpLabel
-               OpSelectionMerge %58134 None
-               OpBranchConditional %49588 %58121 %58129
-      %58129 = OpLabel
-      %58131 = OpISub %uint %129525 %int_1
-      %58132 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %58131
-      %58133 = OpLoad %_arr_v2float_uint_2 %58132
-     %112461 = OpCompositeExtract %v2float %58133 0
-     %112462 = OpCompositeExtract %v2float %58133 1
-               OpBranch %58135
-      %58121 = OpLabel
-      %58123 = OpIAdd %uint %130223 %int_1
-      %58124 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %58125 = OpLoad %v2float %58124
-               OpBranch %58135
-      %58134 = OpLabel
-               OpUnreachable
-      %58135 = OpLabel
-     %137796 = OpPhi %uint %58123 %58121 %130223 %58129
-     %137795 = OpPhi %uint %129525 %58121 %58131 %58129
-     %137793 = OpPhi %v2float %58125 %58121 %112461 %58129
-     %137792 = OpPhi %v2float %58125 %58121 %112462 %58129
-      %49592 = OpLoad %uint %47980
-      %49593 = OpBitwiseAnd %uint %49592 %uint_16384
-      %49594 = OpUGreaterThan %bool %49593 %uint_0
-               OpSelectionMerge %58158 None
-               OpSwitch %uint_0 %58142
-      %58142 = OpLabel
-               OpSelectionMerge %58157 None
-               OpBranchConditional %49594 %58144 %58152
-      %58152 = OpLabel
-      %58154 = OpISub %uint %137795 %int_1
-      %58155 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %58154
-      %58156 = OpLoad %_arr_v2float_uint_2 %58155
-     %112452 = OpCompositeExtract %v2float %58156 0
-     %112453 = OpCompositeExtract %v2float %58156 1
-               OpBranch %58158
-      %58144 = OpLabel
-      %58146 = OpIAdd %uint %137796 %int_1
-      %58147 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %137796
-      %58148 = OpLoad %v2float %58147
-               OpBranch %58158
-      %58157 = OpLabel
-               OpUnreachable
-      %58158 = OpLabel
-     %208973 = OpPhi %uint %58146 %58144 %137796 %58152
-     %137801 = OpPhi %uint %137795 %58144 %58154 %58152
-     %137798 = OpPhi %v2float %58148 %58144 %112452 %58152
-     %137797 = OpPhi %v2float %58148 %58144 %112453 %58152
-      %49600 = OpFMod %v2float %137793 %137798
-      %49606 = OpFMod %v2float %137793 %137797
-      %49612 = OpFMod %v2float %137792 %137798
-      %49618 = OpFMod %v2float %137792 %137797
-      %49628 = OpExtInst %v2float %1 FMin %49612 %49618
-      %49629 = OpExtInst %v2float %1 FMin %49606 %49628
-      %49630 = OpExtInst %v2float %1 FMin %49600 %49629
-      %49640 = OpExtInst %v2float %1 FMax %49612 %49618
-      %49641 = OpExtInst %v2float %1 FMax %49606 %49640
-      %49642 = OpExtInst %v2float %1 FMax %49600 %49641
-     %113514 = OpCompositeConstruct %_arr_v2float_uint_2 %49630 %49642
-      %58162 = OpIAdd %uint %137801 %int_1
-      %58164 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %137801
-               OpStore %58164 %113514
-               OpBranch %56398
-      %49520 = OpLabel
-      %49523 = OpLoad %uint %47980
-      %49524 = OpBitwiseAnd %uint %49523 %uint_32768
-      %49525 = OpUGreaterThan %bool %49524 %uint_0
-               OpSelectionMerge %58084 None
-               OpSwitch %uint_0 %58068
-      %58068 = OpLabel
-               OpSelectionMerge %58083 None
-               OpBranchConditional %49525 %58070 %58078
-      %58078 = OpLabel
-      %58080 = OpISub %uint %129504 %int_1
-      %58081 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %58080
-      %58082 = OpLoad %_arr_float_uint_2 %58081
-     %112479 = OpCompositeExtract %float %58082 0
-     %112480 = OpCompositeExtract %float %58082 1
-               OpBranch %58084
-      %58070 = OpLabel
-      %58072 = OpIAdd %uint %129506 %int_1
-      %58073 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %58074 = OpLoad %float %58073
-               OpBranch %58084
-      %58083 = OpLabel
-               OpUnreachable
-      %58084 = OpLabel
-     %137806 = OpPhi %uint %58072 %58070 %129506 %58078
-     %137805 = OpPhi %uint %129504 %58070 %58080 %58078
-     %137803 = OpPhi %float %58074 %58070 %112479 %58078
-     %137802 = OpPhi %float %58074 %58070 %112480 %58078
-      %49529 = OpLoad %uint %47980
-      %49530 = OpBitwiseAnd %uint %49529 %uint_16384
-      %49531 = OpUGreaterThan %bool %49530 %uint_0
-               OpSelectionMerge %58107 None
-               OpSwitch %uint_0 %58091
-      %58091 = OpLabel
-               OpSelectionMerge %58106 None
-               OpBranchConditional %49531 %58093 %58101
-      %58101 = OpLabel
-      %58103 = OpISub %uint %137805 %int_1
-      %58104 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %58103
-      %58105 = OpLoad %_arr_float_uint_2 %58104
-     %112470 = OpCompositeExtract %float %58105 0
-     %112471 = OpCompositeExtract %float %58105 1
-               OpBranch %58107
-      %58093 = OpLabel
-      %58095 = OpIAdd %uint %137806 %int_1
-      %58096 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %137806
-      %58097 = OpLoad %float %58096
-               OpBranch %58107
-      %58106 = OpLabel
-               OpUnreachable
-      %58107 = OpLabel
-     %138913 = OpPhi %uint %58095 %58093 %137806 %58101
-     %137811 = OpPhi %uint %137805 %58093 %58103 %58101
-     %137808 = OpPhi %float %58097 %58093 %112470 %58101
-     %137807 = OpPhi %float %58097 %58093 %112471 %58101
-      %49537 = OpFMod %float %137803 %137808
-      %49543 = OpFMod %float %137803 %137807
-      %49549 = OpFMod %float %137802 %137808
-      %49555 = OpFMod %float %137802 %137807
-      %49565 = OpExtInst %float %1 FMin %49549 %49555
-      %49566 = OpExtInst %float %1 FMin %49543 %49565
-      %49567 = OpExtInst %float %1 FMin %49537 %49566
-      %49577 = OpExtInst %float %1 FMax %49549 %49555
-      %49578 = OpExtInst %float %1 FMax %49543 %49577
-      %49579 = OpExtInst %float %1 FMax %49537 %49578
-     %113499 = OpCompositeConstruct %_arr_float_uint_2 %49567 %49579
-      %58111 = OpIAdd %uint %137811 %int_1
-      %58113 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %137811
-               OpStore %58113 %113499
-               OpBranch %56398
-      %49457 = OpLabel
-      %49460 = OpLoad %uint %47980
-      %49461 = OpBitwiseAnd %uint %49460 %uint_32768
-      %49462 = OpUGreaterThan %bool %49461 %uint_0
-               OpSelectionMerge %58033 None
-               OpSwitch %uint_0 %58017
-      %58017 = OpLabel
-               OpSelectionMerge %58032 None
-               OpBranchConditional %49462 %58019 %58027
-      %58027 = OpLabel
-      %58029 = OpISub %uint %129523 %int_1
-      %58030 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %58029
-      %58031 = OpLoad %_arr_v4float_uint_2 %58030
-     %112497 = OpCompositeExtract %v4float %58031 0
-     %112498 = OpCompositeExtract %v4float %58031 1
-               OpBranch %58033
-      %58019 = OpLabel
-      %58021 = OpIAdd %uint %129549 %int_1
-      %58022 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %58023 = OpLoad %v4float %58022
-               OpBranch %58033
-      %58032 = OpLabel
-               OpUnreachable
-      %58033 = OpLabel
-     %137816 = OpPhi %uint %58021 %58019 %129549 %58027
-     %137815 = OpPhi %uint %129523 %58019 %58029 %58027
-     %137813 = OpPhi %v4float %58023 %58019 %112497 %58027
-     %137812 = OpPhi %v4float %58023 %58019 %112498 %58027
-      %49466 = OpLoad %uint %47980
-      %49467 = OpBitwiseAnd %uint %49466 %uint_16384
-      %49468 = OpUGreaterThan %bool %49467 %uint_0
-               OpSelectionMerge %58056 None
-               OpSwitch %uint_0 %58040
-      %58040 = OpLabel
-               OpSelectionMerge %58055 None
-               OpBranchConditional %49468 %58042 %58050
-      %58050 = OpLabel
-      %58052 = OpISub %uint %137815 %int_1
-      %58053 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %58052
-      %58054 = OpLoad %_arr_v4float_uint_2 %58053
-     %112488 = OpCompositeExtract %v4float %58054 0
-     %112489 = OpCompositeExtract %v4float %58054 1
-               OpBranch %58056
-      %58042 = OpLabel
-      %58044 = OpIAdd %uint %137816 %int_1
-      %58045 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %137816
-      %58046 = OpLoad %v4float %58045
-               OpBranch %58056
-      %58055 = OpLabel
-               OpUnreachable
-      %58056 = OpLabel
-     %207390 = OpPhi %uint %58044 %58042 %137816 %58050
-     %137821 = OpPhi %uint %137815 %58042 %58052 %58050
-     %137818 = OpPhi %v4float %58046 %58042 %112488 %58050
-     %137817 = OpPhi %v4float %58046 %58042 %112489 %58050
-      %49474 = OpExtInst %v4float %1 Pow %137813 %137818
-      %49480 = OpExtInst %v4float %1 Pow %137813 %137817
-      %49486 = OpExtInst %v4float %1 Pow %137812 %137818
-      %49492 = OpExtInst %v4float %1 Pow %137812 %137817
-      %49502 = OpExtInst %v4float %1 FMin %49486 %49492
-      %49503 = OpExtInst %v4float %1 FMin %49480 %49502
-      %49504 = OpExtInst %v4float %1 FMin %49474 %49503
-      %49514 = OpExtInst %v4float %1 FMax %49486 %49492
-      %49515 = OpExtInst %v4float %1 FMax %49480 %49514
-      %49516 = OpExtInst %v4float %1 FMax %49474 %49515
-     %113484 = OpCompositeConstruct %_arr_v4float_uint_2 %49504 %49516
-      %58060 = OpIAdd %uint %137821 %int_1
-      %58062 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %137821
-               OpStore %58062 %113484
-               OpBranch %56398
-      %49394 = OpLabel
-      %49397 = OpLoad %uint %47980
-      %49398 = OpBitwiseAnd %uint %49397 %uint_32768
-      %49399 = OpUGreaterThan %bool %49398 %uint_0
-               OpSelectionMerge %57982 None
-               OpSwitch %uint_0 %57966
-      %57966 = OpLabel
-               OpSelectionMerge %57981 None
-               OpBranchConditional %49399 %57968 %57976
-      %57976 = OpLabel
-      %57978 = OpISub %uint %129514 %int_1
-      %57979 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %57978
-      %57980 = OpLoad %_arr_v3float_uint_2 %57979
-     %112515 = OpCompositeExtract %v3float %57980 0
-     %112516 = OpCompositeExtract %v3float %57980 1
-               OpBranch %57982
-      %57968 = OpLabel
-      %57970 = OpIAdd %uint %129517 %int_1
-      %57971 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %57972 = OpLoad %v3float %57971
-               OpBranch %57982
-      %57981 = OpLabel
-               OpUnreachable
-      %57982 = OpLabel
-     %137826 = OpPhi %uint %57970 %57968 %129517 %57976
-     %137825 = OpPhi %uint %129514 %57968 %57978 %57976
-     %137823 = OpPhi %v3float %57972 %57968 %112515 %57976
-     %137822 = OpPhi %v3float %57972 %57968 %112516 %57976
-      %49403 = OpLoad %uint %47980
-      %49404 = OpBitwiseAnd %uint %49403 %uint_16384
-      %49405 = OpUGreaterThan %bool %49404 %uint_0
-               OpSelectionMerge %58005 None
-               OpSwitch %uint_0 %57989
-      %57989 = OpLabel
-               OpSelectionMerge %58004 None
-               OpBranchConditional %49405 %57991 %57999
-      %57999 = OpLabel
-      %58001 = OpISub %uint %137825 %int_1
-      %58002 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %58001
-      %58003 = OpLoad %_arr_v3float_uint_2 %58002
-     %112506 = OpCompositeExtract %v3float %58003 0
-     %112507 = OpCompositeExtract %v3float %58003 1
-               OpBranch %58005
-      %57991 = OpLabel
-      %57993 = OpIAdd %uint %137826 %int_1
-      %57994 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %137826
-      %57995 = OpLoad %v3float %57994
-               OpBranch %58005
-      %58004 = OpLabel
-               OpUnreachable
-      %58005 = OpLabel
-     %206615 = OpPhi %uint %57993 %57991 %137826 %57999
-     %137831 = OpPhi %uint %137825 %57991 %58001 %57999
-     %137828 = OpPhi %v3float %57995 %57991 %112506 %57999
-     %137827 = OpPhi %v3float %57995 %57991 %112507 %57999
-      %49411 = OpExtInst %v3float %1 Pow %137823 %137828
-      %49417 = OpExtInst %v3float %1 Pow %137823 %137827
-      %49423 = OpExtInst %v3float %1 Pow %137822 %137828
-      %49429 = OpExtInst %v3float %1 Pow %137822 %137827
-      %49439 = OpExtInst %v3float %1 FMin %49423 %49429
-      %49440 = OpExtInst %v3float %1 FMin %49417 %49439
-      %49441 = OpExtInst %v3float %1 FMin %49411 %49440
-      %49451 = OpExtInst %v3float %1 FMax %49423 %49429
-      %49452 = OpExtInst %v3float %1 FMax %49417 %49451
-      %49453 = OpExtInst %v3float %1 FMax %49411 %49452
-     %113469 = OpCompositeConstruct %_arr_v3float_uint_2 %49441 %49453
-      %58009 = OpIAdd %uint %137831 %int_1
-      %58011 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %137831
-               OpStore %58011 %113469
-               OpBranch %56398
-      %49331 = OpLabel
-      %49334 = OpLoad %uint %47980
-      %49335 = OpBitwiseAnd %uint %49334 %uint_32768
-      %49336 = OpUGreaterThan %bool %49335 %uint_0
-               OpSelectionMerge %57931 None
-               OpSwitch %uint_0 %57915
-      %57915 = OpLabel
-               OpSelectionMerge %57930 None
-               OpBranchConditional %49336 %57917 %57925
-      %57925 = OpLabel
-      %57927 = OpISub %uint %129525 %int_1
-      %57928 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %57927
-      %57929 = OpLoad %_arr_v2float_uint_2 %57928
-     %112533 = OpCompositeExtract %v2float %57929 0
-     %112534 = OpCompositeExtract %v2float %57929 1
-               OpBranch %57931
-      %57917 = OpLabel
-      %57919 = OpIAdd %uint %130223 %int_1
-      %57920 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %57921 = OpLoad %v2float %57920
-               OpBranch %57931
-      %57930 = OpLabel
-               OpUnreachable
-      %57931 = OpLabel
-     %137836 = OpPhi %uint %57919 %57917 %130223 %57925
-     %137835 = OpPhi %uint %129525 %57917 %57927 %57925
-     %137833 = OpPhi %v2float %57921 %57917 %112533 %57925
-     %137832 = OpPhi %v2float %57921 %57917 %112534 %57925
-      %49340 = OpLoad %uint %47980
-      %49341 = OpBitwiseAnd %uint %49340 %uint_16384
-      %49342 = OpUGreaterThan %bool %49341 %uint_0
-               OpSelectionMerge %57954 None
-               OpSwitch %uint_0 %57938
-      %57938 = OpLabel
-               OpSelectionMerge %57953 None
-               OpBranchConditional %49342 %57940 %57948
-      %57948 = OpLabel
-      %57950 = OpISub %uint %137835 %int_1
-      %57951 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %57950
-      %57952 = OpLoad %_arr_v2float_uint_2 %57951
-     %112524 = OpCompositeExtract %v2float %57952 0
-     %112525 = OpCompositeExtract %v2float %57952 1
-               OpBranch %57954
-      %57940 = OpLabel
-      %57942 = OpIAdd %uint %137836 %int_1
-      %57943 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %137836
-      %57944 = OpLoad %v2float %57943
-               OpBranch %57954
-      %57953 = OpLabel
-               OpUnreachable
-      %57954 = OpLabel
-     %208966 = OpPhi %uint %57942 %57940 %137836 %57948
-     %137841 = OpPhi %uint %137835 %57940 %57950 %57948
-     %137838 = OpPhi %v2float %57944 %57940 %112524 %57948
-     %137837 = OpPhi %v2float %57944 %57940 %112525 %57948
-      %49348 = OpExtInst %v2float %1 Pow %137833 %137838
-      %49354 = OpExtInst %v2float %1 Pow %137833 %137837
-      %49360 = OpExtInst %v2float %1 Pow %137832 %137838
-      %49366 = OpExtInst %v2float %1 Pow %137832 %137837
-      %49376 = OpExtInst %v2float %1 FMin %49360 %49366
-      %49377 = OpExtInst %v2float %1 FMin %49354 %49376
-      %49378 = OpExtInst %v2float %1 FMin %49348 %49377
-      %49388 = OpExtInst %v2float %1 FMax %49360 %49366
-      %49389 = OpExtInst %v2float %1 FMax %49354 %49388
-      %49390 = OpExtInst %v2float %1 FMax %49348 %49389
-     %113454 = OpCompositeConstruct %_arr_v2float_uint_2 %49378 %49390
-      %57958 = OpIAdd %uint %137841 %int_1
-      %57960 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %137841
-               OpStore %57960 %113454
-               OpBranch %56398
-      %49268 = OpLabel
-      %49271 = OpLoad %uint %47980
-      %49272 = OpBitwiseAnd %uint %49271 %uint_32768
-      %49273 = OpUGreaterThan %bool %49272 %uint_0
-               OpSelectionMerge %57880 None
-               OpSwitch %uint_0 %57864
-      %57864 = OpLabel
-               OpSelectionMerge %57879 None
-               OpBranchConditional %49273 %57866 %57874
-      %57874 = OpLabel
-      %57876 = OpISub %uint %129504 %int_1
-      %57877 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57876
-      %57878 = OpLoad %_arr_float_uint_2 %57877
-     %112551 = OpCompositeExtract %float %57878 0
-     %112552 = OpCompositeExtract %float %57878 1
-               OpBranch %57880
-      %57866 = OpLabel
-      %57868 = OpIAdd %uint %129506 %int_1
-      %57869 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %57870 = OpLoad %float %57869
-               OpBranch %57880
-      %57879 = OpLabel
-               OpUnreachable
-      %57880 = OpLabel
-     %137846 = OpPhi %uint %57868 %57866 %129506 %57874
-     %137845 = OpPhi %uint %129504 %57866 %57876 %57874
-     %137843 = OpPhi %float %57870 %57866 %112551 %57874
-     %137842 = OpPhi %float %57870 %57866 %112552 %57874
-      %49277 = OpLoad %uint %47980
-      %49278 = OpBitwiseAnd %uint %49277 %uint_16384
-      %49279 = OpUGreaterThan %bool %49278 %uint_0
-               OpSelectionMerge %57903 None
-               OpSwitch %uint_0 %57887
-      %57887 = OpLabel
-               OpSelectionMerge %57902 None
-               OpBranchConditional %49279 %57889 %57897
-      %57897 = OpLabel
-      %57899 = OpISub %uint %137845 %int_1
-      %57900 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57899
-      %57901 = OpLoad %_arr_float_uint_2 %57900
-     %112542 = OpCompositeExtract %float %57901 0
-     %112543 = OpCompositeExtract %float %57901 1
-               OpBranch %57903
-      %57889 = OpLabel
-      %57891 = OpIAdd %uint %137846 %int_1
-      %57892 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %137846
-      %57893 = OpLoad %float %57892
-               OpBranch %57903
-      %57902 = OpLabel
-               OpUnreachable
-      %57903 = OpLabel
-     %138906 = OpPhi %uint %57891 %57889 %137846 %57897
-     %137851 = OpPhi %uint %137845 %57889 %57899 %57897
-     %137848 = OpPhi %float %57893 %57889 %112542 %57897
-     %137847 = OpPhi %float %57893 %57889 %112543 %57897
-      %49285 = OpExtInst %float %1 Pow %137843 %137848
-      %49291 = OpExtInst %float %1 Pow %137843 %137847
-      %49297 = OpExtInst %float %1 Pow %137842 %137848
-      %49303 = OpExtInst %float %1 Pow %137842 %137847
-      %49313 = OpExtInst %float %1 FMin %49297 %49303
-      %49314 = OpExtInst %float %1 FMin %49291 %49313
-      %49315 = OpExtInst %float %1 FMin %49285 %49314
-      %49325 = OpExtInst %float %1 FMax %49297 %49303
-      %49326 = OpExtInst %float %1 FMax %49291 %49325
-      %49327 = OpExtInst %float %1 FMax %49285 %49326
-     %113439 = OpCompositeConstruct %_arr_float_uint_2 %49315 %49327
-      %57907 = OpIAdd %uint %137851 %int_1
-      %57909 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %137851
-               OpStore %57909 %113439
-               OpBranch %56398
-      %49201 = OpLabel
-      %49204 = OpLoad %uint %47980
-      %49205 = OpBitwiseAnd %uint %49204 %uint_32768
-      %49206 = OpUGreaterThan %bool %49205 %uint_0
-               OpSelectionMerge %57829 None
-               OpSwitch %uint_0 %57813
-      %57813 = OpLabel
-               OpSelectionMerge %57828 None
-               OpBranchConditional %49206 %57815 %57823
-      %57823 = OpLabel
-      %57825 = OpISub %uint %129523 %int_1
-      %57826 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %57825
-      %57827 = OpLoad %_arr_v4float_uint_2 %57826
-     %112569 = OpCompositeExtract %v4float %57827 0
-     %112570 = OpCompositeExtract %v4float %57827 1
-               OpBranch %57829
-      %57815 = OpLabel
-      %57817 = OpIAdd %uint %129549 %int_1
-      %57818 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %57819 = OpLoad %v4float %57818
-               OpBranch %57829
-      %57828 = OpLabel
-               OpUnreachable
-      %57829 = OpLabel
-     %207383 = OpPhi %uint %57817 %57815 %129549 %57823
-     %137862 = OpPhi %uint %129523 %57815 %57825 %57823
-     %137853 = OpPhi %v4float %57819 %57815 %112569 %57823
-     %137852 = OpPhi %v4float %57819 %57815 %112570 %57823
-      %49210 = OpLoad %uint %47980
-      %49211 = OpBitwiseAnd %uint %49210 %uint_16384
-      %49212 = OpUGreaterThan %bool %49211 %uint_0
-               OpSelectionMerge %57852 None
-               OpSwitch %uint_0 %57836
-      %57836 = OpLabel
-               OpSelectionMerge %57851 None
-               OpBranchConditional %49212 %57838 %57846
-      %57846 = OpLabel
-      %57848 = OpISub %uint %129504 %int_1
-      %57849 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57848
-      %57850 = OpLoad %_arr_float_uint_2 %57849
-     %112560 = OpCompositeExtract %float %57850 0
-     %112561 = OpCompositeExtract %float %57850 1
-               OpBranch %57852
-      %57838 = OpLabel
-      %57840 = OpIAdd %uint %129506 %int_1
-      %57841 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %57842 = OpLoad %float %57841
-               OpBranch %57852
-      %57851 = OpLabel
-               OpUnreachable
-      %57852 = OpLabel
-     %138905 = OpPhi %uint %57840 %57838 %129506 %57846
-     %138705 = OpPhi %uint %129504 %57838 %57848 %57846
-     %137858 = OpPhi %float %57842 %57838 %112560 %57846
-     %137857 = OpPhi %float %57842 %57838 %112561 %57846
-      %49218 = OpCompositeConstruct %v4float %137858 %137858 %137858 %137858
-      %49219 = OpFDiv %v4float %137853 %49218
-      %49225 = OpCompositeConstruct %v4float %137857 %137857 %137857 %137857
-      %49226 = OpFDiv %v4float %137853 %49225
-      %49233 = OpFDiv %v4float %137852 %49218
-      %49240 = OpFDiv %v4float %137852 %49225
-      %49250 = OpExtInst %v4float %1 FMin %49233 %49240
-      %49251 = OpExtInst %v4float %1 FMin %49226 %49250
-      %49252 = OpExtInst %v4float %1 FMin %49219 %49251
-      %49262 = OpExtInst %v4float %1 FMax %49233 %49240
-      %49263 = OpExtInst %v4float %1 FMax %49226 %49262
-      %49264 = OpExtInst %v4float %1 FMax %49219 %49263
-     %113424 = OpCompositeConstruct %_arr_v4float_uint_2 %49252 %49264
-      %57856 = OpIAdd %uint %137862 %int_1
-      %57858 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %137862
-               OpStore %57858 %113424
-               OpBranch %56398
-      %49138 = OpLabel
-      %49141 = OpLoad %uint %47980
-      %49142 = OpBitwiseAnd %uint %49141 %uint_32768
-      %49143 = OpUGreaterThan %bool %49142 %uint_0
-               OpSelectionMerge %57778 None
-               OpSwitch %uint_0 %57762
-      %57762 = OpLabel
-               OpSelectionMerge %57777 None
-               OpBranchConditional %49143 %57764 %57772
-      %57772 = OpLabel
-      %57774 = OpISub %uint %129523 %int_1
-      %57775 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %57774
-      %57776 = OpLoad %_arr_v4float_uint_2 %57775
-     %112587 = OpCompositeExtract %v4float %57776 0
-     %112588 = OpCompositeExtract %v4float %57776 1
-               OpBranch %57778
-      %57764 = OpLabel
-      %57766 = OpIAdd %uint %129549 %int_1
-      %57767 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %57768 = OpLoad %v4float %57767
-               OpBranch %57778
-      %57777 = OpLabel
-               OpUnreachable
-      %57778 = OpLabel
-     %137867 = OpPhi %uint %57766 %57764 %129549 %57772
-     %137866 = OpPhi %uint %129523 %57764 %57774 %57772
-     %137864 = OpPhi %v4float %57768 %57764 %112587 %57772
-     %137863 = OpPhi %v4float %57768 %57764 %112588 %57772
-      %49147 = OpLoad %uint %47980
-      %49148 = OpBitwiseAnd %uint %49147 %uint_16384
-      %49149 = OpUGreaterThan %bool %49148 %uint_0
-               OpSelectionMerge %57801 None
-               OpSwitch %uint_0 %57785
-      %57785 = OpLabel
-               OpSelectionMerge %57800 None
-               OpBranchConditional %49149 %57787 %57795
-      %57795 = OpLabel
-      %57797 = OpISub %uint %137866 %int_1
-      %57798 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %57797
-      %57799 = OpLoad %_arr_v4float_uint_2 %57798
-     %112578 = OpCompositeExtract %v4float %57799 0
-     %112579 = OpCompositeExtract %v4float %57799 1
-               OpBranch %57801
-      %57787 = OpLabel
-      %57789 = OpIAdd %uint %137867 %int_1
-      %57790 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %137867
-      %57791 = OpLoad %v4float %57790
-               OpBranch %57801
-      %57800 = OpLabel
-               OpUnreachable
-      %57801 = OpLabel
-     %207381 = OpPhi %uint %57789 %57787 %137867 %57795
-     %137872 = OpPhi %uint %137866 %57787 %57797 %57795
-     %137869 = OpPhi %v4float %57791 %57787 %112578 %57795
-     %137868 = OpPhi %v4float %57791 %57787 %112579 %57795
-      %49155 = OpFDiv %v4float %137864 %137869
-      %49161 = OpFDiv %v4float %137864 %137868
-      %49167 = OpFDiv %v4float %137863 %137869
-      %49173 = OpFDiv %v4float %137863 %137868
-      %49183 = OpExtInst %v4float %1 FMin %49167 %49173
-      %49184 = OpExtInst %v4float %1 FMin %49161 %49183
-      %49185 = OpExtInst %v4float %1 FMin %49155 %49184
-      %49195 = OpExtInst %v4float %1 FMax %49167 %49173
-      %49196 = OpExtInst %v4float %1 FMax %49161 %49195
-      %49197 = OpExtInst %v4float %1 FMax %49155 %49196
-     %113409 = OpCompositeConstruct %_arr_v4float_uint_2 %49185 %49197
-      %57805 = OpIAdd %uint %137872 %int_1
-      %57807 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %137872
-               OpStore %57807 %113409
-               OpBranch %56398
-      %49071 = OpLabel
-      %49074 = OpLoad %uint %47980
-      %49075 = OpBitwiseAnd %uint %49074 %uint_32768
-      %49076 = OpUGreaterThan %bool %49075 %uint_0
-               OpSelectionMerge %57727 None
-               OpSwitch %uint_0 %57711
-      %57711 = OpLabel
-               OpSelectionMerge %57726 None
-               OpBranchConditional %49076 %57713 %57721
-      %57721 = OpLabel
-      %57723 = OpISub %uint %129514 %int_1
-      %57724 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %57723
-      %57725 = OpLoad %_arr_v3float_uint_2 %57724
-     %112605 = OpCompositeExtract %v3float %57725 0
-     %112606 = OpCompositeExtract %v3float %57725 1
-               OpBranch %57727
-      %57713 = OpLabel
-      %57715 = OpIAdd %uint %129517 %int_1
-      %57716 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %57717 = OpLoad %v3float %57716
-               OpBranch %57727
-      %57726 = OpLabel
-               OpUnreachable
-      %57727 = OpLabel
-     %206606 = OpPhi %uint %57715 %57713 %129517 %57721
-     %137883 = OpPhi %uint %129514 %57713 %57723 %57721
-     %137874 = OpPhi %v3float %57717 %57713 %112605 %57721
-     %137873 = OpPhi %v3float %57717 %57713 %112606 %57721
-      %49080 = OpLoad %uint %47980
-      %49081 = OpBitwiseAnd %uint %49080 %uint_16384
-      %49082 = OpUGreaterThan %bool %49081 %uint_0
-               OpSelectionMerge %57750 None
-               OpSwitch %uint_0 %57734
-      %57734 = OpLabel
-               OpSelectionMerge %57749 None
-               OpBranchConditional %49082 %57736 %57744
-      %57744 = OpLabel
-      %57746 = OpISub %uint %129504 %int_1
-      %57747 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57746
-      %57748 = OpLoad %_arr_float_uint_2 %57747
-     %112596 = OpCompositeExtract %float %57748 0
-     %112597 = OpCompositeExtract %float %57748 1
-               OpBranch %57750
-      %57736 = OpLabel
-      %57738 = OpIAdd %uint %129506 %int_1
-      %57739 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %57740 = OpLoad %float %57739
-               OpBranch %57750
-      %57749 = OpLabel
-               OpUnreachable
-      %57750 = OpLabel
-     %138902 = OpPhi %uint %57738 %57736 %129506 %57744
-     %138702 = OpPhi %uint %129504 %57736 %57746 %57744
-     %137879 = OpPhi %float %57740 %57736 %112596 %57744
-     %137878 = OpPhi %float %57740 %57736 %112597 %57744
-      %49088 = OpCompositeConstruct %v3float %137879 %137879 %137879
-      %49089 = OpFDiv %v3float %137874 %49088
-      %49095 = OpCompositeConstruct %v3float %137878 %137878 %137878
-      %49096 = OpFDiv %v3float %137874 %49095
-      %49103 = OpFDiv %v3float %137873 %49088
-      %49110 = OpFDiv %v3float %137873 %49095
-      %49120 = OpExtInst %v3float %1 FMin %49103 %49110
-      %49121 = OpExtInst %v3float %1 FMin %49096 %49120
-      %49122 = OpExtInst %v3float %1 FMin %49089 %49121
-      %49132 = OpExtInst %v3float %1 FMax %49103 %49110
-      %49133 = OpExtInst %v3float %1 FMax %49096 %49132
-      %49134 = OpExtInst %v3float %1 FMax %49089 %49133
-     %113394 = OpCompositeConstruct %_arr_v3float_uint_2 %49122 %49134
-      %57754 = OpIAdd %uint %137883 %int_1
-      %57756 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %137883
-               OpStore %57756 %113394
-               OpBranch %56398
-      %49008 = OpLabel
-      %49011 = OpLoad %uint %47980
-      %49012 = OpBitwiseAnd %uint %49011 %uint_32768
-      %49013 = OpUGreaterThan %bool %49012 %uint_0
-               OpSelectionMerge %57676 None
-               OpSwitch %uint_0 %57660
-      %57660 = OpLabel
-               OpSelectionMerge %57675 None
-               OpBranchConditional %49013 %57662 %57670
-      %57670 = OpLabel
-      %57672 = OpISub %uint %129514 %int_1
-      %57673 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %57672
-      %57674 = OpLoad %_arr_v3float_uint_2 %57673
-     %112623 = OpCompositeExtract %v3float %57674 0
-     %112624 = OpCompositeExtract %v3float %57674 1
-               OpBranch %57676
-      %57662 = OpLabel
-      %57664 = OpIAdd %uint %129517 %int_1
-      %57665 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %57666 = OpLoad %v3float %57665
-               OpBranch %57676
-      %57675 = OpLabel
-               OpUnreachable
-      %57676 = OpLabel
-     %137888 = OpPhi %uint %57664 %57662 %129517 %57670
-     %137887 = OpPhi %uint %129514 %57662 %57672 %57670
-     %137885 = OpPhi %v3float %57666 %57662 %112623 %57670
-     %137884 = OpPhi %v3float %57666 %57662 %112624 %57670
-      %49017 = OpLoad %uint %47980
-      %49018 = OpBitwiseAnd %uint %49017 %uint_16384
-      %49019 = OpUGreaterThan %bool %49018 %uint_0
-               OpSelectionMerge %57699 None
-               OpSwitch %uint_0 %57683
-      %57683 = OpLabel
-               OpSelectionMerge %57698 None
-               OpBranchConditional %49019 %57685 %57693
-      %57693 = OpLabel
-      %57695 = OpISub %uint %137887 %int_1
-      %57696 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %57695
-      %57697 = OpLoad %_arr_v3float_uint_2 %57696
-     %112614 = OpCompositeExtract %v3float %57697 0
-     %112615 = OpCompositeExtract %v3float %57697 1
-               OpBranch %57699
-      %57685 = OpLabel
-      %57687 = OpIAdd %uint %137888 %int_1
-      %57688 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %137888
-      %57689 = OpLoad %v3float %57688
-               OpBranch %57699
-      %57698 = OpLabel
-               OpUnreachable
-      %57699 = OpLabel
-     %206604 = OpPhi %uint %57687 %57685 %137888 %57693
-     %137893 = OpPhi %uint %137887 %57685 %57695 %57693
-     %137890 = OpPhi %v3float %57689 %57685 %112614 %57693
-     %137889 = OpPhi %v3float %57689 %57685 %112615 %57693
-      %49025 = OpFDiv %v3float %137885 %137890
-      %49031 = OpFDiv %v3float %137885 %137889
-      %49037 = OpFDiv %v3float %137884 %137890
-      %49043 = OpFDiv %v3float %137884 %137889
-      %49053 = OpExtInst %v3float %1 FMin %49037 %49043
-      %49054 = OpExtInst %v3float %1 FMin %49031 %49053
-      %49055 = OpExtInst %v3float %1 FMin %49025 %49054
-      %49065 = OpExtInst %v3float %1 FMax %49037 %49043
-      %49066 = OpExtInst %v3float %1 FMax %49031 %49065
-      %49067 = OpExtInst %v3float %1 FMax %49025 %49066
-     %113379 = OpCompositeConstruct %_arr_v3float_uint_2 %49055 %49067
-      %57703 = OpIAdd %uint %137893 %int_1
-      %57705 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %137893
-               OpStore %57705 %113379
-               OpBranch %56398
-      %48941 = OpLabel
-      %48944 = OpLoad %uint %47980
-      %48945 = OpBitwiseAnd %uint %48944 %uint_32768
-      %48946 = OpUGreaterThan %bool %48945 %uint_0
-               OpSelectionMerge %57625 None
-               OpSwitch %uint_0 %57609
-      %57609 = OpLabel
-               OpSelectionMerge %57624 None
-               OpBranchConditional %48946 %57611 %57619
-      %57619 = OpLabel
-      %57621 = OpISub %uint %129525 %int_1
-      %57622 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %57621
-      %57623 = OpLoad %_arr_v2float_uint_2 %57622
-     %112641 = OpCompositeExtract %v2float %57623 0
-     %112642 = OpCompositeExtract %v2float %57623 1
-               OpBranch %57625
-      %57611 = OpLabel
-      %57613 = OpIAdd %uint %130223 %int_1
-      %57614 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %57615 = OpLoad %v2float %57614
-               OpBranch %57625
-      %57624 = OpLabel
-               OpUnreachable
-      %57625 = OpLabel
-     %208955 = OpPhi %uint %57613 %57611 %130223 %57619
-     %137904 = OpPhi %uint %129525 %57611 %57621 %57619
-     %137895 = OpPhi %v2float %57615 %57611 %112641 %57619
-     %137894 = OpPhi %v2float %57615 %57611 %112642 %57619
-      %48950 = OpLoad %uint %47980
-      %48951 = OpBitwiseAnd %uint %48950 %uint_16384
-      %48952 = OpUGreaterThan %bool %48951 %uint_0
-               OpSelectionMerge %57648 None
-               OpSwitch %uint_0 %57632
-      %57632 = OpLabel
-               OpSelectionMerge %57647 None
-               OpBranchConditional %48952 %57634 %57642
-      %57642 = OpLabel
-      %57644 = OpISub %uint %129504 %int_1
-      %57645 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57644
-      %57646 = OpLoad %_arr_float_uint_2 %57645
-     %112632 = OpCompositeExtract %float %57646 0
-     %112633 = OpCompositeExtract %float %57646 1
-               OpBranch %57648
-      %57634 = OpLabel
-      %57636 = OpIAdd %uint %129506 %int_1
-      %57637 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %57638 = OpLoad %float %57637
-               OpBranch %57648
-      %57647 = OpLabel
-               OpUnreachable
-      %57648 = OpLabel
-     %138899 = OpPhi %uint %57636 %57634 %129506 %57642
-     %138699 = OpPhi %uint %129504 %57634 %57644 %57642
-     %137900 = OpPhi %float %57638 %57634 %112632 %57642
-     %137899 = OpPhi %float %57638 %57634 %112633 %57642
-      %48958 = OpCompositeConstruct %v2float %137900 %137900
-      %48959 = OpFDiv %v2float %137895 %48958
-      %48965 = OpCompositeConstruct %v2float %137899 %137899
-      %48966 = OpFDiv %v2float %137895 %48965
-      %48973 = OpFDiv %v2float %137894 %48958
-      %48980 = OpFDiv %v2float %137894 %48965
-      %48990 = OpExtInst %v2float %1 FMin %48973 %48980
-      %48991 = OpExtInst %v2float %1 FMin %48966 %48990
-      %48992 = OpExtInst %v2float %1 FMin %48959 %48991
-      %49002 = OpExtInst %v2float %1 FMax %48973 %48980
-      %49003 = OpExtInst %v2float %1 FMax %48966 %49002
-      %49004 = OpExtInst %v2float %1 FMax %48959 %49003
-     %113364 = OpCompositeConstruct %_arr_v2float_uint_2 %48992 %49004
-      %57652 = OpIAdd %uint %137904 %int_1
-      %57654 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %137904
-               OpStore %57654 %113364
-               OpBranch %56398
-      %48878 = OpLabel
-      %48881 = OpLoad %uint %47980
-      %48882 = OpBitwiseAnd %uint %48881 %uint_32768
-      %48883 = OpUGreaterThan %bool %48882 %uint_0
-               OpSelectionMerge %57574 None
-               OpSwitch %uint_0 %57558
-      %57558 = OpLabel
-               OpSelectionMerge %57573 None
-               OpBranchConditional %48883 %57560 %57568
-      %57568 = OpLabel
-      %57570 = OpISub %uint %129525 %int_1
-      %57571 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %57570
-      %57572 = OpLoad %_arr_v2float_uint_2 %57571
-     %112659 = OpCompositeExtract %v2float %57572 0
-     %112660 = OpCompositeExtract %v2float %57572 1
-               OpBranch %57574
-      %57560 = OpLabel
-      %57562 = OpIAdd %uint %130223 %int_1
-      %57563 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %57564 = OpLoad %v2float %57563
-               OpBranch %57574
-      %57573 = OpLabel
-               OpUnreachable
-      %57574 = OpLabel
-     %137909 = OpPhi %uint %57562 %57560 %130223 %57568
-     %137908 = OpPhi %uint %129525 %57560 %57570 %57568
-     %137906 = OpPhi %v2float %57564 %57560 %112659 %57568
-     %137905 = OpPhi %v2float %57564 %57560 %112660 %57568
-      %48887 = OpLoad %uint %47980
-      %48888 = OpBitwiseAnd %uint %48887 %uint_16384
-      %48889 = OpUGreaterThan %bool %48888 %uint_0
-               OpSelectionMerge %57597 None
-               OpSwitch %uint_0 %57581
-      %57581 = OpLabel
-               OpSelectionMerge %57596 None
-               OpBranchConditional %48889 %57583 %57591
-      %57591 = OpLabel
-      %57593 = OpISub %uint %137908 %int_1
-      %57594 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %57593
-      %57595 = OpLoad %_arr_v2float_uint_2 %57594
-     %112650 = OpCompositeExtract %v2float %57595 0
-     %112651 = OpCompositeExtract %v2float %57595 1
-               OpBranch %57597
-      %57583 = OpLabel
-      %57585 = OpIAdd %uint %137909 %int_1
-      %57586 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %137909
-      %57587 = OpLoad %v2float %57586
-               OpBranch %57597
-      %57596 = OpLabel
-               OpUnreachable
-      %57597 = OpLabel
-     %208953 = OpPhi %uint %57585 %57583 %137909 %57591
-     %137914 = OpPhi %uint %137908 %57583 %57593 %57591
-     %137911 = OpPhi %v2float %57587 %57583 %112650 %57591
-     %137910 = OpPhi %v2float %57587 %57583 %112651 %57591
-      %48895 = OpFDiv %v2float %137906 %137911
-      %48901 = OpFDiv %v2float %137906 %137910
-      %48907 = OpFDiv %v2float %137905 %137911
-      %48913 = OpFDiv %v2float %137905 %137910
-      %48923 = OpExtInst %v2float %1 FMin %48907 %48913
-      %48924 = OpExtInst %v2float %1 FMin %48901 %48923
-      %48925 = OpExtInst %v2float %1 FMin %48895 %48924
-      %48935 = OpExtInst %v2float %1 FMax %48907 %48913
-      %48936 = OpExtInst %v2float %1 FMax %48901 %48935
-      %48937 = OpExtInst %v2float %1 FMax %48895 %48936
-     %113349 = OpCompositeConstruct %_arr_v2float_uint_2 %48925 %48937
-      %57601 = OpIAdd %uint %137914 %int_1
-      %57603 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %137914
-               OpStore %57603 %113349
-               OpBranch %56398
-      %48815 = OpLabel
-      %48818 = OpLoad %uint %47980
-      %48819 = OpBitwiseAnd %uint %48818 %uint_32768
-      %48820 = OpUGreaterThan %bool %48819 %uint_0
-               OpSelectionMerge %57523 None
-               OpSwitch %uint_0 %57507
-      %57507 = OpLabel
-               OpSelectionMerge %57522 None
-               OpBranchConditional %48820 %57509 %57517
-      %57517 = OpLabel
-      %57519 = OpISub %uint %129504 %int_1
-      %57520 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57519
-      %57521 = OpLoad %_arr_float_uint_2 %57520
-     %112677 = OpCompositeExtract %float %57521 0
-     %112678 = OpCompositeExtract %float %57521 1
-               OpBranch %57523
-      %57509 = OpLabel
-      %57511 = OpIAdd %uint %129506 %int_1
-      %57512 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %57513 = OpLoad %float %57512
-               OpBranch %57523
-      %57522 = OpLabel
-               OpUnreachable
-      %57523 = OpLabel
-     %137919 = OpPhi %uint %57511 %57509 %129506 %57517
-     %137918 = OpPhi %uint %129504 %57509 %57519 %57517
-     %137916 = OpPhi %float %57513 %57509 %112677 %57517
-     %137915 = OpPhi %float %57513 %57509 %112678 %57517
-      %48824 = OpLoad %uint %47980
-      %48825 = OpBitwiseAnd %uint %48824 %uint_16384
-      %48826 = OpUGreaterThan %bool %48825 %uint_0
-               OpSelectionMerge %57546 None
-               OpSwitch %uint_0 %57530
-      %57530 = OpLabel
-               OpSelectionMerge %57545 None
-               OpBranchConditional %48826 %57532 %57540
-      %57540 = OpLabel
-      %57542 = OpISub %uint %137918 %int_1
-      %57543 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57542
-      %57544 = OpLoad %_arr_float_uint_2 %57543
-     %112668 = OpCompositeExtract %float %57544 0
-     %112669 = OpCompositeExtract %float %57544 1
-               OpBranch %57546
-      %57532 = OpLabel
-      %57534 = OpIAdd %uint %137919 %int_1
-      %57535 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %137919
-      %57536 = OpLoad %float %57535
-               OpBranch %57546
-      %57545 = OpLabel
-               OpUnreachable
-      %57546 = OpLabel
-     %138896 = OpPhi %uint %57534 %57532 %137919 %57540
-     %137924 = OpPhi %uint %137918 %57532 %57542 %57540
-     %137921 = OpPhi %float %57536 %57532 %112668 %57540
-     %137920 = OpPhi %float %57536 %57532 %112669 %57540
-      %48832 = OpFDiv %float %137916 %137921
-      %48838 = OpFDiv %float %137916 %137920
-      %48844 = OpFDiv %float %137915 %137921
-      %48850 = OpFDiv %float %137915 %137920
-      %48860 = OpExtInst %float %1 FMin %48844 %48850
-      %48861 = OpExtInst %float %1 FMin %48838 %48860
-      %48862 = OpExtInst %float %1 FMin %48832 %48861
-      %48872 = OpExtInst %float %1 FMax %48844 %48850
-      %48873 = OpExtInst %float %1 FMax %48838 %48872
-      %48874 = OpExtInst %float %1 FMax %48832 %48873
-     %113334 = OpCompositeConstruct %_arr_float_uint_2 %48862 %48874
-      %57550 = OpIAdd %uint %137924 %int_1
-      %57552 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %137924
-               OpStore %57552 %113334
-               OpBranch %56398
-      %48752 = OpLabel
-      %48755 = OpLoad %uint %47980
-      %48756 = OpBitwiseAnd %uint %48755 %uint_32768
-      %48757 = OpUGreaterThan %bool %48756 %uint_0
-               OpSelectionMerge %57472 None
-               OpSwitch %uint_0 %57456
-      %57456 = OpLabel
-               OpSelectionMerge %57471 None
-               OpBranchConditional %48757 %57458 %57466
-      %57466 = OpLabel
-      %57468 = OpISub %uint %129523 %int_1
-      %57469 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %57468
-      %57470 = OpLoad %_arr_v4float_uint_2 %57469
-     %112695 = OpCompositeExtract %v4float %57470 0
-     %112696 = OpCompositeExtract %v4float %57470 1
-               OpBranch %57472
-      %57458 = OpLabel
-      %57460 = OpIAdd %uint %129549 %int_1
-      %57461 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %57462 = OpLoad %v4float %57461
-               OpBranch %57472
-      %57471 = OpLabel
-               OpUnreachable
-      %57472 = OpLabel
-     %207370 = OpPhi %uint %57460 %57458 %129549 %57466
-     %137935 = OpPhi %uint %129523 %57458 %57468 %57466
-     %137926 = OpPhi %v4float %57462 %57458 %112695 %57466
-     %137925 = OpPhi %v4float %57462 %57458 %112696 %57466
-      %48761 = OpLoad %uint %47980
-      %48762 = OpBitwiseAnd %uint %48761 %uint_16384
-      %48763 = OpUGreaterThan %bool %48762 %uint_0
-               OpSelectionMerge %57495 None
-               OpSwitch %uint_0 %57479
-      %57479 = OpLabel
-               OpSelectionMerge %57494 None
-               OpBranchConditional %48763 %57481 %57489
-      %57489 = OpLabel
-      %57491 = OpISub %uint %129504 %int_1
-      %57492 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57491
-      %57493 = OpLoad %_arr_float_uint_2 %57492
-     %112686 = OpCompositeExtract %float %57493 0
-     %112687 = OpCompositeExtract %float %57493 1
-               OpBranch %57495
-      %57481 = OpLabel
-      %57483 = OpIAdd %uint %129506 %int_1
-      %57484 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %57485 = OpLoad %float %57484
-               OpBranch %57495
-      %57494 = OpLabel
-               OpUnreachable
-      %57495 = OpLabel
-     %138895 = OpPhi %uint %57483 %57481 %129506 %57489
-     %138696 = OpPhi %uint %129504 %57481 %57491 %57489
-     %137931 = OpPhi %float %57485 %57481 %112686 %57489
-     %137930 = OpPhi %float %57485 %57481 %112687 %57489
-      %48769 = OpVectorTimesScalar %v4float %137926 %137931
-      %48775 = OpVectorTimesScalar %v4float %137926 %137930
-      %48781 = OpVectorTimesScalar %v4float %137925 %137931
-      %48787 = OpVectorTimesScalar %v4float %137925 %137930
-      %48797 = OpExtInst %v4float %1 FMin %48781 %48787
-      %48798 = OpExtInst %v4float %1 FMin %48775 %48797
-      %48799 = OpExtInst %v4float %1 FMin %48769 %48798
-      %48809 = OpExtInst %v4float %1 FMax %48781 %48787
-      %48810 = OpExtInst %v4float %1 FMax %48775 %48809
-      %48811 = OpExtInst %v4float %1 FMax %48769 %48810
-     %113319 = OpCompositeConstruct %_arr_v4float_uint_2 %48799 %48811
-      %57499 = OpIAdd %uint %137935 %int_1
-      %57501 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %137935
-               OpStore %57501 %113319
-               OpBranch %56398
-      %48689 = OpLabel
-      %48692 = OpLoad %uint %47980
-      %48693 = OpBitwiseAnd %uint %48692 %uint_32768
-      %48694 = OpUGreaterThan %bool %48693 %uint_0
-               OpSelectionMerge %57421 None
-               OpSwitch %uint_0 %57405
-      %57405 = OpLabel
-               OpSelectionMerge %57420 None
-               OpBranchConditional %48694 %57407 %57415
-      %57415 = OpLabel
-      %57417 = OpISub %uint %129523 %int_1
-      %57418 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %57417
-      %57419 = OpLoad %_arr_v4float_uint_2 %57418
-     %112713 = OpCompositeExtract %v4float %57419 0
-     %112714 = OpCompositeExtract %v4float %57419 1
-               OpBranch %57421
-      %57407 = OpLabel
-      %57409 = OpIAdd %uint %129549 %int_1
-      %57410 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %57411 = OpLoad %v4float %57410
-               OpBranch %57421
-      %57420 = OpLabel
-               OpUnreachable
-      %57421 = OpLabel
-     %137940 = OpPhi %uint %57409 %57407 %129549 %57415
-     %137939 = OpPhi %uint %129523 %57407 %57417 %57415
-     %137937 = OpPhi %v4float %57411 %57407 %112713 %57415
-     %137936 = OpPhi %v4float %57411 %57407 %112714 %57415
-      %48698 = OpLoad %uint %47980
-      %48699 = OpBitwiseAnd %uint %48698 %uint_16384
-      %48700 = OpUGreaterThan %bool %48699 %uint_0
-               OpSelectionMerge %57444 None
-               OpSwitch %uint_0 %57428
-      %57428 = OpLabel
-               OpSelectionMerge %57443 None
-               OpBranchConditional %48700 %57430 %57438
-      %57438 = OpLabel
-      %57440 = OpISub %uint %137939 %int_1
-      %57441 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %57440
-      %57442 = OpLoad %_arr_v4float_uint_2 %57441
-     %112704 = OpCompositeExtract %v4float %57442 0
-     %112705 = OpCompositeExtract %v4float %57442 1
-               OpBranch %57444
-      %57430 = OpLabel
-      %57432 = OpIAdd %uint %137940 %int_1
-      %57433 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %137940
-      %57434 = OpLoad %v4float %57433
-               OpBranch %57444
-      %57443 = OpLabel
-               OpUnreachable
-      %57444 = OpLabel
-     %207368 = OpPhi %uint %57432 %57430 %137940 %57438
-     %137945 = OpPhi %uint %137939 %57430 %57440 %57438
-     %137942 = OpPhi %v4float %57434 %57430 %112704 %57438
-     %137941 = OpPhi %v4float %57434 %57430 %112705 %57438
-      %48706 = OpFMul %v4float %137937 %137942
-      %48712 = OpFMul %v4float %137937 %137941
-      %48718 = OpFMul %v4float %137936 %137942
-      %48724 = OpFMul %v4float %137936 %137941
-      %48734 = OpExtInst %v4float %1 FMin %48718 %48724
-      %48735 = OpExtInst %v4float %1 FMin %48712 %48734
-      %48736 = OpExtInst %v4float %1 FMin %48706 %48735
-      %48746 = OpExtInst %v4float %1 FMax %48718 %48724
-      %48747 = OpExtInst %v4float %1 FMax %48712 %48746
-      %48748 = OpExtInst %v4float %1 FMax %48706 %48747
-     %113304 = OpCompositeConstruct %_arr_v4float_uint_2 %48736 %48748
-      %57448 = OpIAdd %uint %137945 %int_1
-      %57450 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %137945
-               OpStore %57450 %113304
-               OpBranch %56398
-      %48626 = OpLabel
-      %48629 = OpLoad %uint %47980
-      %48630 = OpBitwiseAnd %uint %48629 %uint_32768
-      %48631 = OpUGreaterThan %bool %48630 %uint_0
-               OpSelectionMerge %57370 None
-               OpSwitch %uint_0 %57354
-      %57354 = OpLabel
-               OpSelectionMerge %57369 None
-               OpBranchConditional %48631 %57356 %57364
-      %57364 = OpLabel
-      %57366 = OpISub %uint %129514 %int_1
-      %57367 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %57366
-      %57368 = OpLoad %_arr_v3float_uint_2 %57367
-     %112731 = OpCompositeExtract %v3float %57368 0
-     %112732 = OpCompositeExtract %v3float %57368 1
-               OpBranch %57370
-      %57356 = OpLabel
-      %57358 = OpIAdd %uint %129517 %int_1
-      %57359 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %57360 = OpLoad %v3float %57359
-               OpBranch %57370
-      %57369 = OpLabel
-               OpUnreachable
-      %57370 = OpLabel
-     %206593 = OpPhi %uint %57358 %57356 %129517 %57364
-     %137956 = OpPhi %uint %129514 %57356 %57366 %57364
-     %137947 = OpPhi %v3float %57360 %57356 %112731 %57364
-     %137946 = OpPhi %v3float %57360 %57356 %112732 %57364
-      %48635 = OpLoad %uint %47980
-      %48636 = OpBitwiseAnd %uint %48635 %uint_16384
-      %48637 = OpUGreaterThan %bool %48636 %uint_0
-               OpSelectionMerge %57393 None
-               OpSwitch %uint_0 %57377
-      %57377 = OpLabel
-               OpSelectionMerge %57392 None
-               OpBranchConditional %48637 %57379 %57387
-      %57387 = OpLabel
-      %57389 = OpISub %uint %129504 %int_1
-      %57390 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57389
-      %57391 = OpLoad %_arr_float_uint_2 %57390
-     %112722 = OpCompositeExtract %float %57391 0
-     %112723 = OpCompositeExtract %float %57391 1
-               OpBranch %57393
-      %57379 = OpLabel
-      %57381 = OpIAdd %uint %129506 %int_1
-      %57382 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %57383 = OpLoad %float %57382
-               OpBranch %57393
-      %57392 = OpLabel
-               OpUnreachable
-      %57393 = OpLabel
-     %138892 = OpPhi %uint %57381 %57379 %129506 %57387
-     %138693 = OpPhi %uint %129504 %57379 %57389 %57387
-     %137952 = OpPhi %float %57383 %57379 %112722 %57387
-     %137951 = OpPhi %float %57383 %57379 %112723 %57387
-      %48643 = OpVectorTimesScalar %v3float %137947 %137952
-      %48649 = OpVectorTimesScalar %v3float %137947 %137951
-      %48655 = OpVectorTimesScalar %v3float %137946 %137952
-      %48661 = OpVectorTimesScalar %v3float %137946 %137951
-      %48671 = OpExtInst %v3float %1 FMin %48655 %48661
-      %48672 = OpExtInst %v3float %1 FMin %48649 %48671
-      %48673 = OpExtInst %v3float %1 FMin %48643 %48672
-      %48683 = OpExtInst %v3float %1 FMax %48655 %48661
-      %48684 = OpExtInst %v3float %1 FMax %48649 %48683
-      %48685 = OpExtInst %v3float %1 FMax %48643 %48684
-     %113289 = OpCompositeConstruct %_arr_v3float_uint_2 %48673 %48685
-      %57397 = OpIAdd %uint %137956 %int_1
-      %57399 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %137956
-               OpStore %57399 %113289
-               OpBranch %56398
-      %48563 = OpLabel
-      %48566 = OpLoad %uint %47980
-      %48567 = OpBitwiseAnd %uint %48566 %uint_32768
-      %48568 = OpUGreaterThan %bool %48567 %uint_0
-               OpSelectionMerge %57319 None
-               OpSwitch %uint_0 %57303
-      %57303 = OpLabel
-               OpSelectionMerge %57318 None
-               OpBranchConditional %48568 %57305 %57313
-      %57313 = OpLabel
-      %57315 = OpISub %uint %129514 %int_1
-      %57316 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %57315
-      %57317 = OpLoad %_arr_v3float_uint_2 %57316
-     %112749 = OpCompositeExtract %v3float %57317 0
-     %112750 = OpCompositeExtract %v3float %57317 1
-               OpBranch %57319
-      %57305 = OpLabel
-      %57307 = OpIAdd %uint %129517 %int_1
-      %57308 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %57309 = OpLoad %v3float %57308
-               OpBranch %57319
-      %57318 = OpLabel
-               OpUnreachable
-      %57319 = OpLabel
-     %137961 = OpPhi %uint %57307 %57305 %129517 %57313
-     %137960 = OpPhi %uint %129514 %57305 %57315 %57313
-     %137958 = OpPhi %v3float %57309 %57305 %112749 %57313
-     %137957 = OpPhi %v3float %57309 %57305 %112750 %57313
-      %48572 = OpLoad %uint %47980
-      %48573 = OpBitwiseAnd %uint %48572 %uint_16384
-      %48574 = OpUGreaterThan %bool %48573 %uint_0
-               OpSelectionMerge %57342 None
-               OpSwitch %uint_0 %57326
-      %57326 = OpLabel
-               OpSelectionMerge %57341 None
-               OpBranchConditional %48574 %57328 %57336
-      %57336 = OpLabel
-      %57338 = OpISub %uint %137960 %int_1
-      %57339 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %57338
-      %57340 = OpLoad %_arr_v3float_uint_2 %57339
-     %112740 = OpCompositeExtract %v3float %57340 0
-     %112741 = OpCompositeExtract %v3float %57340 1
-               OpBranch %57342
-      %57328 = OpLabel
-      %57330 = OpIAdd %uint %137961 %int_1
-      %57331 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %137961
-      %57332 = OpLoad %v3float %57331
-               OpBranch %57342
-      %57341 = OpLabel
-               OpUnreachable
-      %57342 = OpLabel
-     %206591 = OpPhi %uint %57330 %57328 %137961 %57336
-     %137966 = OpPhi %uint %137960 %57328 %57338 %57336
-     %137963 = OpPhi %v3float %57332 %57328 %112740 %57336
-     %137962 = OpPhi %v3float %57332 %57328 %112741 %57336
-      %48580 = OpFMul %v3float %137958 %137963
-      %48586 = OpFMul %v3float %137958 %137962
-      %48592 = OpFMul %v3float %137957 %137963
-      %48598 = OpFMul %v3float %137957 %137962
-      %48608 = OpExtInst %v3float %1 FMin %48592 %48598
-      %48609 = OpExtInst %v3float %1 FMin %48586 %48608
-      %48610 = OpExtInst %v3float %1 FMin %48580 %48609
-      %48620 = OpExtInst %v3float %1 FMax %48592 %48598
-      %48621 = OpExtInst %v3float %1 FMax %48586 %48620
-      %48622 = OpExtInst %v3float %1 FMax %48580 %48621
-     %113274 = OpCompositeConstruct %_arr_v3float_uint_2 %48610 %48622
-      %57346 = OpIAdd %uint %137966 %int_1
-      %57348 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %137966
-               OpStore %57348 %113274
-               OpBranch %56398
-      %48500 = OpLabel
-      %48503 = OpLoad %uint %47980
-      %48504 = OpBitwiseAnd %uint %48503 %uint_32768
-      %48505 = OpUGreaterThan %bool %48504 %uint_0
-               OpSelectionMerge %57268 None
-               OpSwitch %uint_0 %57252
-      %57252 = OpLabel
-               OpSelectionMerge %57267 None
-               OpBranchConditional %48505 %57254 %57262
-      %57262 = OpLabel
-      %57264 = OpISub %uint %129525 %int_1
-      %57265 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %57264
-      %57266 = OpLoad %_arr_v2float_uint_2 %57265
-     %112767 = OpCompositeExtract %v2float %57266 0
-     %112768 = OpCompositeExtract %v2float %57266 1
-               OpBranch %57268
-      %57254 = OpLabel
-      %57256 = OpIAdd %uint %130223 %int_1
-      %57257 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %57258 = OpLoad %v2float %57257
-               OpBranch %57268
-      %57267 = OpLabel
-               OpUnreachable
-      %57268 = OpLabel
-     %208942 = OpPhi %uint %57256 %57254 %130223 %57262
-     %137977 = OpPhi %uint %129525 %57254 %57264 %57262
-     %137968 = OpPhi %v2float %57258 %57254 %112767 %57262
-     %137967 = OpPhi %v2float %57258 %57254 %112768 %57262
-      %48509 = OpLoad %uint %47980
-      %48510 = OpBitwiseAnd %uint %48509 %uint_16384
-      %48511 = OpUGreaterThan %bool %48510 %uint_0
-               OpSelectionMerge %57291 None
-               OpSwitch %uint_0 %57275
-      %57275 = OpLabel
-               OpSelectionMerge %57290 None
-               OpBranchConditional %48511 %57277 %57285
-      %57285 = OpLabel
-      %57287 = OpISub %uint %129504 %int_1
-      %57288 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57287
-      %57289 = OpLoad %_arr_float_uint_2 %57288
-     %112758 = OpCompositeExtract %float %57289 0
-     %112759 = OpCompositeExtract %float %57289 1
-               OpBranch %57291
-      %57277 = OpLabel
-      %57279 = OpIAdd %uint %129506 %int_1
-      %57280 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %57281 = OpLoad %float %57280
-               OpBranch %57291
-      %57290 = OpLabel
-               OpUnreachable
-      %57291 = OpLabel
-     %138889 = OpPhi %uint %57279 %57277 %129506 %57285
-     %138690 = OpPhi %uint %129504 %57277 %57287 %57285
-     %137973 = OpPhi %float %57281 %57277 %112758 %57285
-     %137972 = OpPhi %float %57281 %57277 %112759 %57285
-      %48517 = OpVectorTimesScalar %v2float %137968 %137973
-      %48523 = OpVectorTimesScalar %v2float %137968 %137972
-      %48529 = OpVectorTimesScalar %v2float %137967 %137973
-      %48535 = OpVectorTimesScalar %v2float %137967 %137972
-      %48545 = OpExtInst %v2float %1 FMin %48529 %48535
-      %48546 = OpExtInst %v2float %1 FMin %48523 %48545
-      %48547 = OpExtInst %v2float %1 FMin %48517 %48546
-      %48557 = OpExtInst %v2float %1 FMax %48529 %48535
-      %48558 = OpExtInst %v2float %1 FMax %48523 %48557
-      %48559 = OpExtInst %v2float %1 FMax %48517 %48558
-     %113259 = OpCompositeConstruct %_arr_v2float_uint_2 %48547 %48559
-      %57295 = OpIAdd %uint %137977 %int_1
-      %57297 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %137977
-               OpStore %57297 %113259
-               OpBranch %56398
-      %48437 = OpLabel
-      %48440 = OpLoad %uint %47980
-      %48441 = OpBitwiseAnd %uint %48440 %uint_32768
-      %48442 = OpUGreaterThan %bool %48441 %uint_0
-               OpSelectionMerge %57217 None
-               OpSwitch %uint_0 %57201
-      %57201 = OpLabel
-               OpSelectionMerge %57216 None
-               OpBranchConditional %48442 %57203 %57211
-      %57211 = OpLabel
-      %57213 = OpISub %uint %129525 %int_1
-      %57214 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %57213
-      %57215 = OpLoad %_arr_v2float_uint_2 %57214
-     %112785 = OpCompositeExtract %v2float %57215 0
-     %112786 = OpCompositeExtract %v2float %57215 1
-               OpBranch %57217
-      %57203 = OpLabel
-      %57205 = OpIAdd %uint %130223 %int_1
-      %57206 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %57207 = OpLoad %v2float %57206
-               OpBranch %57217
-      %57216 = OpLabel
-               OpUnreachable
-      %57217 = OpLabel
-     %137982 = OpPhi %uint %57205 %57203 %130223 %57211
-     %137981 = OpPhi %uint %129525 %57203 %57213 %57211
-     %137979 = OpPhi %v2float %57207 %57203 %112785 %57211
-     %137978 = OpPhi %v2float %57207 %57203 %112786 %57211
-      %48446 = OpLoad %uint %47980
-      %48447 = OpBitwiseAnd %uint %48446 %uint_16384
-      %48448 = OpUGreaterThan %bool %48447 %uint_0
-               OpSelectionMerge %57240 None
-               OpSwitch %uint_0 %57224
-      %57224 = OpLabel
-               OpSelectionMerge %57239 None
-               OpBranchConditional %48448 %57226 %57234
-      %57234 = OpLabel
-      %57236 = OpISub %uint %137981 %int_1
-      %57237 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %57236
-      %57238 = OpLoad %_arr_v2float_uint_2 %57237
-     %112776 = OpCompositeExtract %v2float %57238 0
-     %112777 = OpCompositeExtract %v2float %57238 1
-               OpBranch %57240
-      %57226 = OpLabel
-      %57228 = OpIAdd %uint %137982 %int_1
-      %57229 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %137982
-      %57230 = OpLoad %v2float %57229
-               OpBranch %57240
-      %57239 = OpLabel
-               OpUnreachable
-      %57240 = OpLabel
-     %208940 = OpPhi %uint %57228 %57226 %137982 %57234
-     %137987 = OpPhi %uint %137981 %57226 %57236 %57234
-     %137984 = OpPhi %v2float %57230 %57226 %112776 %57234
-     %137983 = OpPhi %v2float %57230 %57226 %112777 %57234
-      %48454 = OpFMul %v2float %137979 %137984
-      %48460 = OpFMul %v2float %137979 %137983
-      %48466 = OpFMul %v2float %137978 %137984
-      %48472 = OpFMul %v2float %137978 %137983
-      %48482 = OpExtInst %v2float %1 FMin %48466 %48472
-      %48483 = OpExtInst %v2float %1 FMin %48460 %48482
-      %48484 = OpExtInst %v2float %1 FMin %48454 %48483
-      %48494 = OpExtInst %v2float %1 FMax %48466 %48472
-      %48495 = OpExtInst %v2float %1 FMax %48460 %48494
-      %48496 = OpExtInst %v2float %1 FMax %48454 %48495
-     %113244 = OpCompositeConstruct %_arr_v2float_uint_2 %48484 %48496
-      %57244 = OpIAdd %uint %137987 %int_1
-      %57246 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %137987
-               OpStore %57246 %113244
-               OpBranch %56398
-      %48374 = OpLabel
-      %48377 = OpLoad %uint %47980
-      %48378 = OpBitwiseAnd %uint %48377 %uint_32768
-      %48379 = OpUGreaterThan %bool %48378 %uint_0
-               OpSelectionMerge %57166 None
-               OpSwitch %uint_0 %57150
-      %57150 = OpLabel
-               OpSelectionMerge %57165 None
-               OpBranchConditional %48379 %57152 %57160
-      %57160 = OpLabel
-      %57162 = OpISub %uint %129504 %int_1
-      %57163 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57162
-      %57164 = OpLoad %_arr_float_uint_2 %57163
-     %112803 = OpCompositeExtract %float %57164 0
-     %112804 = OpCompositeExtract %float %57164 1
-               OpBranch %57166
-      %57152 = OpLabel
-      %57154 = OpIAdd %uint %129506 %int_1
-      %57155 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %57156 = OpLoad %float %57155
-               OpBranch %57166
-      %57165 = OpLabel
-               OpUnreachable
-      %57166 = OpLabel
-     %137992 = OpPhi %uint %57154 %57152 %129506 %57160
-     %137991 = OpPhi %uint %129504 %57152 %57162 %57160
-     %137989 = OpPhi %float %57156 %57152 %112803 %57160
-     %137988 = OpPhi %float %57156 %57152 %112804 %57160
-      %48383 = OpLoad %uint %47980
-      %48384 = OpBitwiseAnd %uint %48383 %uint_16384
-      %48385 = OpUGreaterThan %bool %48384 %uint_0
-               OpSelectionMerge %57189 None
-               OpSwitch %uint_0 %57173
-      %57173 = OpLabel
-               OpSelectionMerge %57188 None
-               OpBranchConditional %48385 %57175 %57183
-      %57183 = OpLabel
-      %57185 = OpISub %uint %137991 %int_1
-      %57186 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57185
-      %57187 = OpLoad %_arr_float_uint_2 %57186
-     %112794 = OpCompositeExtract %float %57187 0
-     %112795 = OpCompositeExtract %float %57187 1
-               OpBranch %57189
-      %57175 = OpLabel
-      %57177 = OpIAdd %uint %137992 %int_1
-      %57178 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %137992
-      %57179 = OpLoad %float %57178
-               OpBranch %57189
-      %57188 = OpLabel
-               OpUnreachable
-      %57189 = OpLabel
-     %138886 = OpPhi %uint %57177 %57175 %137992 %57183
-     %137997 = OpPhi %uint %137991 %57175 %57185 %57183
-     %137994 = OpPhi %float %57179 %57175 %112794 %57183
-     %137993 = OpPhi %float %57179 %57175 %112795 %57183
-      %48391 = OpFMul %float %137989 %137994
-      %48397 = OpFMul %float %137989 %137993
-      %48403 = OpFMul %float %137988 %137994
-      %48409 = OpFMul %float %137988 %137993
-      %48419 = OpExtInst %float %1 FMin %48403 %48409
-      %48420 = OpExtInst %float %1 FMin %48397 %48419
-      %48421 = OpExtInst %float %1 FMin %48391 %48420
-      %48431 = OpExtInst %float %1 FMax %48403 %48409
-      %48432 = OpExtInst %float %1 FMax %48397 %48431
-      %48433 = OpExtInst %float %1 FMax %48391 %48432
-     %113229 = OpCompositeConstruct %_arr_float_uint_2 %48421 %48433
-      %57193 = OpIAdd %uint %137997 %int_1
-      %57195 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %137997
-               OpStore %57195 %113229
-               OpBranch %56398
-      %48345 = OpLabel
-      %48348 = OpLoad %uint %47980
-      %48349 = OpBitwiseAnd %uint %48348 %uint_32768
-      %48350 = OpUGreaterThan %bool %48349 %uint_0
-               OpSelectionMerge %57115 None
-               OpSwitch %uint_0 %57099
-      %57099 = OpLabel
-               OpSelectionMerge %57114 None
-               OpBranchConditional %48350 %57101 %57109
-      %57109 = OpLabel
-      %57111 = OpISub %uint %129523 %int_1
-      %57112 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %57111
-      %57113 = OpLoad %_arr_v4float_uint_2 %57112
-     %112821 = OpCompositeExtract %v4float %57113 0
-     %112822 = OpCompositeExtract %v4float %57113 1
-               OpBranch %57115
-      %57101 = OpLabel
-      %57103 = OpIAdd %uint %129549 %int_1
-      %57104 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %57105 = OpLoad %v4float %57104
-               OpBranch %57115
-      %57114 = OpLabel
-               OpUnreachable
-      %57115 = OpLabel
-     %207357 = OpPhi %uint %57103 %57101 %129549 %57109
-     %138008 = OpPhi %uint %129523 %57101 %57111 %57109
-     %137999 = OpPhi %v4float %57105 %57101 %112821 %57109
-     %137998 = OpPhi %v4float %57105 %57101 %112822 %57109
-      %48354 = OpLoad %uint %47980
-      %48355 = OpBitwiseAnd %uint %48354 %uint_16384
-      %48356 = OpUGreaterThan %bool %48355 %uint_0
-               OpSelectionMerge %57138 None
-               OpSwitch %uint_0 %57122
-      %57122 = OpLabel
-               OpSelectionMerge %57137 None
-               OpBranchConditional %48356 %57124 %57132
-      %57132 = OpLabel
-      %57134 = OpISub %uint %129504 %int_1
-      %57135 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57134
-      %57136 = OpLoad %_arr_float_uint_2 %57135
-     %112812 = OpCompositeExtract %float %57136 0
-     %112813 = OpCompositeExtract %float %57136 1
-               OpBranch %57138
-      %57124 = OpLabel
-      %57126 = OpIAdd %uint %129506 %int_1
-      %57127 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %57128 = OpLoad %float %57127
-               OpBranch %57138
-      %57137 = OpLabel
-               OpUnreachable
-      %57138 = OpLabel
-     %138885 = OpPhi %uint %57126 %57124 %129506 %57132
-     %138687 = OpPhi %uint %129504 %57124 %57134 %57132
-     %138004 = OpPhi %float %57128 %57124 %112812 %57132
-     %138003 = OpPhi %float %57128 %57124 %112813 %57132
-      %48362 = OpCompositeConstruct %v4float %138003 %138003 %138003 %138003
-      %48363 = OpFSub %v4float %137999 %48362
-      %48369 = OpCompositeConstruct %v4float %138004 %138004 %138004 %138004
-      %48370 = OpFSub %v4float %137998 %48369
-     %113218 = OpCompositeConstruct %_arr_v4float_uint_2 %48363 %48370
-      %57142 = OpIAdd %uint %138008 %int_1
-      %57144 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %138008
-               OpStore %57144 %113218
-               OpBranch %56398
-      %48318 = OpLabel
-      %48321 = OpLoad %uint %47980
-      %48322 = OpBitwiseAnd %uint %48321 %uint_32768
-      %48323 = OpUGreaterThan %bool %48322 %uint_0
-               OpSelectionMerge %57064 None
-               OpSwitch %uint_0 %57048
-      %57048 = OpLabel
-               OpSelectionMerge %57063 None
-               OpBranchConditional %48323 %57050 %57058
-      %57058 = OpLabel
-      %57060 = OpISub %uint %129523 %int_1
-      %57061 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %57060
-      %57062 = OpLoad %_arr_v4float_uint_2 %57061
-     %112839 = OpCompositeExtract %v4float %57062 0
-     %112840 = OpCompositeExtract %v4float %57062 1
-               OpBranch %57064
-      %57050 = OpLabel
-      %57052 = OpIAdd %uint %129549 %int_1
-      %57053 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %57054 = OpLoad %v4float %57053
-               OpBranch %57064
-      %57063 = OpLabel
-               OpUnreachable
-      %57064 = OpLabel
-     %138013 = OpPhi %uint %57052 %57050 %129549 %57058
-     %138012 = OpPhi %uint %129523 %57050 %57060 %57058
-     %138010 = OpPhi %v4float %57054 %57050 %112839 %57058
-     %138009 = OpPhi %v4float %57054 %57050 %112840 %57058
-      %48327 = OpLoad %uint %47980
-      %48328 = OpBitwiseAnd %uint %48327 %uint_16384
-      %48329 = OpUGreaterThan %bool %48328 %uint_0
-               OpSelectionMerge %57087 None
-               OpSwitch %uint_0 %57071
-      %57071 = OpLabel
-               OpSelectionMerge %57086 None
-               OpBranchConditional %48329 %57073 %57081
-      %57081 = OpLabel
-      %57083 = OpISub %uint %138012 %int_1
-      %57084 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %57083
-      %57085 = OpLoad %_arr_v4float_uint_2 %57084
-     %112830 = OpCompositeExtract %v4float %57085 0
-     %112831 = OpCompositeExtract %v4float %57085 1
-               OpBranch %57087
-      %57073 = OpLabel
-      %57075 = OpIAdd %uint %138013 %int_1
-      %57076 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %138013
-      %57077 = OpLoad %v4float %57076
-               OpBranch %57087
-      %57086 = OpLabel
-               OpUnreachable
-      %57087 = OpLabel
-     %207355 = OpPhi %uint %57075 %57073 %138013 %57081
-     %138018 = OpPhi %uint %138012 %57073 %57083 %57081
-     %138015 = OpPhi %v4float %57077 %57073 %112830 %57081
-     %138014 = OpPhi %v4float %57077 %57073 %112831 %57081
-      %48335 = OpFSub %v4float %138010 %138014
-      %48341 = OpFSub %v4float %138009 %138015
-     %113207 = OpCompositeConstruct %_arr_v4float_uint_2 %48335 %48341
-      %57091 = OpIAdd %uint %138018 %int_1
-      %57093 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %138018
-               OpStore %57093 %113207
-               OpBranch %56398
-      %48289 = OpLabel
-      %48292 = OpLoad %uint %47980
-      %48293 = OpBitwiseAnd %uint %48292 %uint_32768
-      %48294 = OpUGreaterThan %bool %48293 %uint_0
-               OpSelectionMerge %57013 None
-               OpSwitch %uint_0 %56997
-      %56997 = OpLabel
-               OpSelectionMerge %57012 None
-               OpBranchConditional %48294 %56999 %57007
-      %57007 = OpLabel
-      %57009 = OpISub %uint %129514 %int_1
-      %57010 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %57009
-      %57011 = OpLoad %_arr_v3float_uint_2 %57010
-     %112857 = OpCompositeExtract %v3float %57011 0
-     %112858 = OpCompositeExtract %v3float %57011 1
-               OpBranch %57013
-      %56999 = OpLabel
-      %57001 = OpIAdd %uint %129517 %int_1
-      %57002 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %57003 = OpLoad %v3float %57002
-               OpBranch %57013
-      %57012 = OpLabel
-               OpUnreachable
-      %57013 = OpLabel
-     %206580 = OpPhi %uint %57001 %56999 %129517 %57007
-     %138029 = OpPhi %uint %129514 %56999 %57009 %57007
-     %138020 = OpPhi %v3float %57003 %56999 %112857 %57007
-     %138019 = OpPhi %v3float %57003 %56999 %112858 %57007
-      %48298 = OpLoad %uint %47980
-      %48299 = OpBitwiseAnd %uint %48298 %uint_16384
-      %48300 = OpUGreaterThan %bool %48299 %uint_0
-               OpSelectionMerge %57036 None
-               OpSwitch %uint_0 %57020
-      %57020 = OpLabel
-               OpSelectionMerge %57035 None
-               OpBranchConditional %48300 %57022 %57030
-      %57030 = OpLabel
-      %57032 = OpISub %uint %129504 %int_1
-      %57033 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %57032
-      %57034 = OpLoad %_arr_float_uint_2 %57033
-     %112848 = OpCompositeExtract %float %57034 0
-     %112849 = OpCompositeExtract %float %57034 1
-               OpBranch %57036
-      %57022 = OpLabel
-      %57024 = OpIAdd %uint %129506 %int_1
-      %57025 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %57026 = OpLoad %float %57025
-               OpBranch %57036
-      %57035 = OpLabel
-               OpUnreachable
-      %57036 = OpLabel
-     %138882 = OpPhi %uint %57024 %57022 %129506 %57030
-     %138684 = OpPhi %uint %129504 %57022 %57032 %57030
-     %138025 = OpPhi %float %57026 %57022 %112848 %57030
-     %138024 = OpPhi %float %57026 %57022 %112849 %57030
-      %48306 = OpCompositeConstruct %v3float %138024 %138024 %138024
-      %48307 = OpFSub %v3float %138020 %48306
-      %48313 = OpCompositeConstruct %v3float %138025 %138025 %138025
-      %48314 = OpFSub %v3float %138019 %48313
-     %113196 = OpCompositeConstruct %_arr_v3float_uint_2 %48307 %48314
-      %57040 = OpIAdd %uint %138029 %int_1
-      %57042 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %138029
-               OpStore %57042 %113196
-               OpBranch %56398
-      %48262 = OpLabel
-      %48265 = OpLoad %uint %47980
-      %48266 = OpBitwiseAnd %uint %48265 %uint_32768
-      %48267 = OpUGreaterThan %bool %48266 %uint_0
-               OpSelectionMerge %56962 None
-               OpSwitch %uint_0 %56946
-      %56946 = OpLabel
-               OpSelectionMerge %56961 None
-               OpBranchConditional %48267 %56948 %56956
-      %56956 = OpLabel
-      %56958 = OpISub %uint %129514 %int_1
-      %56959 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56958
-      %56960 = OpLoad %_arr_v3float_uint_2 %56959
-     %112875 = OpCompositeExtract %v3float %56960 0
-     %112876 = OpCompositeExtract %v3float %56960 1
-               OpBranch %56962
-      %56948 = OpLabel
-      %56950 = OpIAdd %uint %129517 %int_1
-      %56951 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %56952 = OpLoad %v3float %56951
-               OpBranch %56962
-      %56961 = OpLabel
-               OpUnreachable
-      %56962 = OpLabel
-     %138034 = OpPhi %uint %56950 %56948 %129517 %56956
-     %138033 = OpPhi %uint %129514 %56948 %56958 %56956
-     %138031 = OpPhi %v3float %56952 %56948 %112875 %56956
-     %138030 = OpPhi %v3float %56952 %56948 %112876 %56956
-      %48271 = OpLoad %uint %47980
-      %48272 = OpBitwiseAnd %uint %48271 %uint_16384
-      %48273 = OpUGreaterThan %bool %48272 %uint_0
-               OpSelectionMerge %56985 None
-               OpSwitch %uint_0 %56969
-      %56969 = OpLabel
-               OpSelectionMerge %56984 None
-               OpBranchConditional %48273 %56971 %56979
-      %56979 = OpLabel
-      %56981 = OpISub %uint %138033 %int_1
-      %56982 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56981
-      %56983 = OpLoad %_arr_v3float_uint_2 %56982
-     %112866 = OpCompositeExtract %v3float %56983 0
-     %112867 = OpCompositeExtract %v3float %56983 1
-               OpBranch %56985
-      %56971 = OpLabel
-      %56973 = OpIAdd %uint %138034 %int_1
-      %56974 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %138034
-      %56975 = OpLoad %v3float %56974
-               OpBranch %56985
-      %56984 = OpLabel
-               OpUnreachable
-      %56985 = OpLabel
-     %206578 = OpPhi %uint %56973 %56971 %138034 %56979
-     %138039 = OpPhi %uint %138033 %56971 %56981 %56979
-     %138036 = OpPhi %v3float %56975 %56971 %112866 %56979
-     %138035 = OpPhi %v3float %56975 %56971 %112867 %56979
-      %48279 = OpFSub %v3float %138031 %138035
-      %48285 = OpFSub %v3float %138030 %138036
-     %113185 = OpCompositeConstruct %_arr_v3float_uint_2 %48279 %48285
-      %56989 = OpIAdd %uint %138039 %int_1
-      %56991 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %138039
-               OpStore %56991 %113185
-               OpBranch %56398
-      %48233 = OpLabel
-      %48236 = OpLoad %uint %47980
-      %48237 = OpBitwiseAnd %uint %48236 %uint_32768
-      %48238 = OpUGreaterThan %bool %48237 %uint_0
-               OpSelectionMerge %56911 None
-               OpSwitch %uint_0 %56895
-      %56895 = OpLabel
-               OpSelectionMerge %56910 None
-               OpBranchConditional %48238 %56897 %56905
-      %56905 = OpLabel
-      %56907 = OpISub %uint %129525 %int_1
-      %56908 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56907
-      %56909 = OpLoad %_arr_v2float_uint_2 %56908
-     %112893 = OpCompositeExtract %v2float %56909 0
-     %112894 = OpCompositeExtract %v2float %56909 1
-               OpBranch %56911
-      %56897 = OpLabel
-      %56899 = OpIAdd %uint %130223 %int_1
-      %56900 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %56901 = OpLoad %v2float %56900
-               OpBranch %56911
-      %56910 = OpLabel
-               OpUnreachable
-      %56911 = OpLabel
-     %208929 = OpPhi %uint %56899 %56897 %130223 %56905
-     %138050 = OpPhi %uint %129525 %56897 %56907 %56905
-     %138041 = OpPhi %v2float %56901 %56897 %112893 %56905
-     %138040 = OpPhi %v2float %56901 %56897 %112894 %56905
-      %48242 = OpLoad %uint %47980
-      %48243 = OpBitwiseAnd %uint %48242 %uint_16384
-      %48244 = OpUGreaterThan %bool %48243 %uint_0
-               OpSelectionMerge %56934 None
-               OpSwitch %uint_0 %56918
-      %56918 = OpLabel
-               OpSelectionMerge %56933 None
-               OpBranchConditional %48244 %56920 %56928
-      %56928 = OpLabel
-      %56930 = OpISub %uint %129504 %int_1
-      %56931 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %56930
-      %56932 = OpLoad %_arr_float_uint_2 %56931
-     %112884 = OpCompositeExtract %float %56932 0
-     %112885 = OpCompositeExtract %float %56932 1
-               OpBranch %56934
-      %56920 = OpLabel
-      %56922 = OpIAdd %uint %129506 %int_1
-      %56923 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %56924 = OpLoad %float %56923
-               OpBranch %56934
-      %56933 = OpLabel
-               OpUnreachable
-      %56934 = OpLabel
-     %138879 = OpPhi %uint %56922 %56920 %129506 %56928
-     %138681 = OpPhi %uint %129504 %56920 %56930 %56928
-     %138046 = OpPhi %float %56924 %56920 %112884 %56928
-     %138045 = OpPhi %float %56924 %56920 %112885 %56928
-      %48250 = OpCompositeConstruct %v2float %138045 %138045
-      %48251 = OpFSub %v2float %138041 %48250
-      %48257 = OpCompositeConstruct %v2float %138046 %138046
-      %48258 = OpFSub %v2float %138040 %48257
-     %113174 = OpCompositeConstruct %_arr_v2float_uint_2 %48251 %48258
-      %56938 = OpIAdd %uint %138050 %int_1
-      %56940 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %138050
-               OpStore %56940 %113174
-               OpBranch %56398
-      %48206 = OpLabel
-      %48209 = OpLoad %uint %47980
-      %48210 = OpBitwiseAnd %uint %48209 %uint_32768
-      %48211 = OpUGreaterThan %bool %48210 %uint_0
-               OpSelectionMerge %56860 None
-               OpSwitch %uint_0 %56844
-      %56844 = OpLabel
-               OpSelectionMerge %56859 None
-               OpBranchConditional %48211 %56846 %56854
-      %56854 = OpLabel
-      %56856 = OpISub %uint %129525 %int_1
-      %56857 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56856
-      %56858 = OpLoad %_arr_v2float_uint_2 %56857
-     %112911 = OpCompositeExtract %v2float %56858 0
-     %112912 = OpCompositeExtract %v2float %56858 1
-               OpBranch %56860
-      %56846 = OpLabel
-      %56848 = OpIAdd %uint %130223 %int_1
-      %56849 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %56850 = OpLoad %v2float %56849
-               OpBranch %56860
-      %56859 = OpLabel
-               OpUnreachable
-      %56860 = OpLabel
-     %138055 = OpPhi %uint %56848 %56846 %130223 %56854
-     %138054 = OpPhi %uint %129525 %56846 %56856 %56854
-     %138052 = OpPhi %v2float %56850 %56846 %112911 %56854
-     %138051 = OpPhi %v2float %56850 %56846 %112912 %56854
-      %48215 = OpLoad %uint %47980
-      %48216 = OpBitwiseAnd %uint %48215 %uint_16384
-      %48217 = OpUGreaterThan %bool %48216 %uint_0
-               OpSelectionMerge %56883 None
-               OpSwitch %uint_0 %56867
-      %56867 = OpLabel
-               OpSelectionMerge %56882 None
-               OpBranchConditional %48217 %56869 %56877
-      %56877 = OpLabel
-      %56879 = OpISub %uint %138054 %int_1
-      %56880 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56879
-      %56881 = OpLoad %_arr_v2float_uint_2 %56880
-     %112902 = OpCompositeExtract %v2float %56881 0
-     %112903 = OpCompositeExtract %v2float %56881 1
-               OpBranch %56883
-      %56869 = OpLabel
-      %56871 = OpIAdd %uint %138055 %int_1
-      %56872 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %138055
-      %56873 = OpLoad %v2float %56872
-               OpBranch %56883
-      %56882 = OpLabel
-               OpUnreachable
-      %56883 = OpLabel
-     %208927 = OpPhi %uint %56871 %56869 %138055 %56877
-     %138060 = OpPhi %uint %138054 %56869 %56879 %56877
-     %138057 = OpPhi %v2float %56873 %56869 %112902 %56877
-     %138056 = OpPhi %v2float %56873 %56869 %112903 %56877
-      %48223 = OpFSub %v2float %138052 %138056
-      %48229 = OpFSub %v2float %138051 %138057
-     %113163 = OpCompositeConstruct %_arr_v2float_uint_2 %48223 %48229
-      %56887 = OpIAdd %uint %138060 %int_1
-      %56889 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %138060
-               OpStore %56889 %113163
-               OpBranch %56398
-      %48179 = OpLabel
-      %48182 = OpLoad %uint %47980
-      %48183 = OpBitwiseAnd %uint %48182 %uint_32768
-      %48184 = OpUGreaterThan %bool %48183 %uint_0
-               OpSelectionMerge %56809 None
-               OpSwitch %uint_0 %56793
-      %56793 = OpLabel
-               OpSelectionMerge %56808 None
-               OpBranchConditional %48184 %56795 %56803
-      %56803 = OpLabel
-      %56805 = OpISub %uint %129504 %int_1
-      %56806 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %56805
-      %56807 = OpLoad %_arr_float_uint_2 %56806
-     %112929 = OpCompositeExtract %float %56807 0
-     %112930 = OpCompositeExtract %float %56807 1
-               OpBranch %56809
-      %56795 = OpLabel
-      %56797 = OpIAdd %uint %129506 %int_1
-      %56798 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %56799 = OpLoad %float %56798
-               OpBranch %56809
-      %56808 = OpLabel
-               OpUnreachable
-      %56809 = OpLabel
-     %138065 = OpPhi %uint %56797 %56795 %129506 %56803
-     %138064 = OpPhi %uint %129504 %56795 %56805 %56803
-     %138062 = OpPhi %float %56799 %56795 %112929 %56803
-     %138061 = OpPhi %float %56799 %56795 %112930 %56803
-      %48188 = OpLoad %uint %47980
-      %48189 = OpBitwiseAnd %uint %48188 %uint_16384
-      %48190 = OpUGreaterThan %bool %48189 %uint_0
-               OpSelectionMerge %56832 None
-               OpSwitch %uint_0 %56816
-      %56816 = OpLabel
-               OpSelectionMerge %56831 None
-               OpBranchConditional %48190 %56818 %56826
-      %56826 = OpLabel
-      %56828 = OpISub %uint %138064 %int_1
-      %56829 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %56828
-      %56830 = OpLoad %_arr_float_uint_2 %56829
-     %112920 = OpCompositeExtract %float %56830 0
-     %112921 = OpCompositeExtract %float %56830 1
-               OpBranch %56832
-      %56818 = OpLabel
-      %56820 = OpIAdd %uint %138065 %int_1
-      %56821 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %138065
-      %56822 = OpLoad %float %56821
-               OpBranch %56832
-      %56831 = OpLabel
-               OpUnreachable
-      %56832 = OpLabel
-     %138876 = OpPhi %uint %56820 %56818 %138065 %56826
-     %138070 = OpPhi %uint %138064 %56818 %56828 %56826
-     %138067 = OpPhi %float %56822 %56818 %112920 %56826
-     %138066 = OpPhi %float %56822 %56818 %112921 %56826
-      %48196 = OpFSub %float %138062 %138066
-      %48202 = OpFSub %float %138061 %138067
-     %113152 = OpCompositeConstruct %_arr_float_uint_2 %48196 %48202
-      %56836 = OpIAdd %uint %138070 %int_1
-      %56838 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %138070
-               OpStore %56838 %113152
-               OpBranch %56398
-      %48150 = OpLabel
-      %48153 = OpLoad %uint %47980
-      %48154 = OpBitwiseAnd %uint %48153 %uint_32768
-      %48155 = OpUGreaterThan %bool %48154 %uint_0
-               OpSelectionMerge %56758 None
-               OpSwitch %uint_0 %56742
-      %56742 = OpLabel
-               OpSelectionMerge %56757 None
-               OpBranchConditional %48155 %56744 %56752
-      %56752 = OpLabel
-      %56754 = OpISub %uint %129523 %int_1
-      %56755 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56754
-      %56756 = OpLoad %_arr_v4float_uint_2 %56755
-     %112947 = OpCompositeExtract %v4float %56756 0
-     %112948 = OpCompositeExtract %v4float %56756 1
-               OpBranch %56758
-      %56744 = OpLabel
-      %56746 = OpIAdd %uint %129549 %int_1
-      %56747 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %56748 = OpLoad %v4float %56747
-               OpBranch %56758
-      %56757 = OpLabel
-               OpUnreachable
-      %56758 = OpLabel
-     %207344 = OpPhi %uint %56746 %56744 %129549 %56752
-     %138081 = OpPhi %uint %129523 %56744 %56754 %56752
-     %138072 = OpPhi %v4float %56748 %56744 %112947 %56752
-     %138071 = OpPhi %v4float %56748 %56744 %112948 %56752
-      %48159 = OpLoad %uint %47980
-      %48160 = OpBitwiseAnd %uint %48159 %uint_16384
-      %48161 = OpUGreaterThan %bool %48160 %uint_0
-               OpSelectionMerge %56781 None
-               OpSwitch %uint_0 %56765
-      %56765 = OpLabel
-               OpSelectionMerge %56780 None
-               OpBranchConditional %48161 %56767 %56775
-      %56775 = OpLabel
-      %56777 = OpISub %uint %129504 %int_1
-      %56778 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %56777
-      %56779 = OpLoad %_arr_float_uint_2 %56778
-     %112938 = OpCompositeExtract %float %56779 0
-     %112939 = OpCompositeExtract %float %56779 1
-               OpBranch %56781
-      %56767 = OpLabel
-      %56769 = OpIAdd %uint %129506 %int_1
-      %56770 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %56771 = OpLoad %float %56770
-               OpBranch %56781
-      %56780 = OpLabel
-               OpUnreachable
-      %56781 = OpLabel
-     %138875 = OpPhi %uint %56769 %56767 %129506 %56775
-     %138678 = OpPhi %uint %129504 %56767 %56777 %56775
-     %138077 = OpPhi %float %56771 %56767 %112938 %56775
-     %138076 = OpPhi %float %56771 %56767 %112939 %56775
-      %48167 = OpCompositeConstruct %v4float %138077 %138077 %138077 %138077
-      %48168 = OpFAdd %v4float %138072 %48167
-      %48174 = OpCompositeConstruct %v4float %138076 %138076 %138076 %138076
-      %48175 = OpFAdd %v4float %138071 %48174
-     %113141 = OpCompositeConstruct %_arr_v4float_uint_2 %48168 %48175
-      %56785 = OpIAdd %uint %138081 %int_1
-      %56787 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %138081
-               OpStore %56787 %113141
-               OpBranch %56398
-      %48123 = OpLabel
-      %48126 = OpLoad %uint %47980
-      %48127 = OpBitwiseAnd %uint %48126 %uint_32768
-      %48128 = OpUGreaterThan %bool %48127 %uint_0
-               OpSelectionMerge %56707 None
-               OpSwitch %uint_0 %56691
-      %56691 = OpLabel
-               OpSelectionMerge %56706 None
-               OpBranchConditional %48128 %56693 %56701
-      %56701 = OpLabel
-      %56703 = OpISub %uint %129523 %int_1
-      %56704 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56703
-      %56705 = OpLoad %_arr_v4float_uint_2 %56704
-     %112965 = OpCompositeExtract %v4float %56705 0
-     %112966 = OpCompositeExtract %v4float %56705 1
-               OpBranch %56707
-      %56693 = OpLabel
-      %56695 = OpIAdd %uint %129549 %int_1
-      %56696 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %129549
-      %56697 = OpLoad %v4float %56696
-               OpBranch %56707
-      %56706 = OpLabel
-               OpUnreachable
-      %56707 = OpLabel
-     %138086 = OpPhi %uint %56695 %56693 %129549 %56701
-     %138085 = OpPhi %uint %129523 %56693 %56703 %56701
-     %138083 = OpPhi %v4float %56697 %56693 %112965 %56701
-     %138082 = OpPhi %v4float %56697 %56693 %112966 %56701
-      %48132 = OpLoad %uint %47980
-      %48133 = OpBitwiseAnd %uint %48132 %uint_16384
-      %48134 = OpUGreaterThan %bool %48133 %uint_0
-               OpSelectionMerge %56730 None
-               OpSwitch %uint_0 %56714
-      %56714 = OpLabel
-               OpSelectionMerge %56729 None
-               OpBranchConditional %48134 %56716 %56724
-      %56724 = OpLabel
-      %56726 = OpISub %uint %138085 %int_1
-      %56727 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %56726
-      %56728 = OpLoad %_arr_v4float_uint_2 %56727
-     %112956 = OpCompositeExtract %v4float %56728 0
-     %112957 = OpCompositeExtract %v4float %56728 1
-               OpBranch %56730
-      %56716 = OpLabel
-      %56718 = OpIAdd %uint %138086 %int_1
-      %56719 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %138086
-      %56720 = OpLoad %v4float %56719
-               OpBranch %56730
-      %56729 = OpLabel
-               OpUnreachable
-      %56730 = OpLabel
-     %207342 = OpPhi %uint %56718 %56716 %138086 %56724
-     %138091 = OpPhi %uint %138085 %56716 %56726 %56724
-     %138088 = OpPhi %v4float %56720 %56716 %112956 %56724
-     %138087 = OpPhi %v4float %56720 %56716 %112957 %56724
-      %48140 = OpFAdd %v4float %138083 %138088
-      %48146 = OpFAdd %v4float %138082 %138087
-     %113130 = OpCompositeConstruct %_arr_v4float_uint_2 %48140 %48146
-      %56734 = OpIAdd %uint %138091 %int_1
-      %56736 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %138091
-               OpStore %56736 %113130
-               OpBranch %56398
-      %48094 = OpLabel
-      %48097 = OpLoad %uint %47980
-      %48098 = OpBitwiseAnd %uint %48097 %uint_32768
-      %48099 = OpUGreaterThan %bool %48098 %uint_0
-               OpSelectionMerge %56656 None
-               OpSwitch %uint_0 %56640
-      %56640 = OpLabel
-               OpSelectionMerge %56655 None
-               OpBranchConditional %48099 %56642 %56650
-      %56650 = OpLabel
-      %56652 = OpISub %uint %129514 %int_1
-      %56653 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56652
-      %56654 = OpLoad %_arr_v3float_uint_2 %56653
-     %112983 = OpCompositeExtract %v3float %56654 0
-     %112984 = OpCompositeExtract %v3float %56654 1
-               OpBranch %56656
-      %56642 = OpLabel
-      %56644 = OpIAdd %uint %129517 %int_1
-      %56645 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %56646 = OpLoad %v3float %56645
-               OpBranch %56656
-      %56655 = OpLabel
-               OpUnreachable
-      %56656 = OpLabel
-     %206567 = OpPhi %uint %56644 %56642 %129517 %56650
-     %138102 = OpPhi %uint %129514 %56642 %56652 %56650
-     %138093 = OpPhi %v3float %56646 %56642 %112983 %56650
-     %138092 = OpPhi %v3float %56646 %56642 %112984 %56650
-      %48103 = OpLoad %uint %47980
-      %48104 = OpBitwiseAnd %uint %48103 %uint_16384
-      %48105 = OpUGreaterThan %bool %48104 %uint_0
-               OpSelectionMerge %56679 None
-               OpSwitch %uint_0 %56663
-      %56663 = OpLabel
-               OpSelectionMerge %56678 None
-               OpBranchConditional %48105 %56665 %56673
-      %56673 = OpLabel
-      %56675 = OpISub %uint %129504 %int_1
-      %56676 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %56675
-      %56677 = OpLoad %_arr_float_uint_2 %56676
-     %112974 = OpCompositeExtract %float %56677 0
-     %112975 = OpCompositeExtract %float %56677 1
-               OpBranch %56679
-      %56665 = OpLabel
-      %56667 = OpIAdd %uint %129506 %int_1
-      %56668 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %56669 = OpLoad %float %56668
-               OpBranch %56679
-      %56678 = OpLabel
-               OpUnreachable
-      %56679 = OpLabel
-     %138872 = OpPhi %uint %56667 %56665 %129506 %56673
-     %138675 = OpPhi %uint %129504 %56665 %56675 %56673
-     %138098 = OpPhi %float %56669 %56665 %112974 %56673
-     %138097 = OpPhi %float %56669 %56665 %112975 %56673
-      %48111 = OpCompositeConstruct %v3float %138098 %138098 %138098
-      %48112 = OpFAdd %v3float %138093 %48111
-      %48118 = OpCompositeConstruct %v3float %138097 %138097 %138097
-      %48119 = OpFAdd %v3float %138092 %48118
-     %113119 = OpCompositeConstruct %_arr_v3float_uint_2 %48112 %48119
-      %56683 = OpIAdd %uint %138102 %int_1
-      %56685 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %138102
-               OpStore %56685 %113119
-               OpBranch %56398
-      %48067 = OpLabel
-      %48070 = OpLoad %uint %47980
-      %48071 = OpBitwiseAnd %uint %48070 %uint_32768
-      %48072 = OpUGreaterThan %bool %48071 %uint_0
-               OpSelectionMerge %56605 None
-               OpSwitch %uint_0 %56589
-      %56589 = OpLabel
-               OpSelectionMerge %56604 None
-               OpBranchConditional %48072 %56591 %56599
-      %56599 = OpLabel
-      %56601 = OpISub %uint %129514 %int_1
-      %56602 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56601
-      %56603 = OpLoad %_arr_v3float_uint_2 %56602
-     %113001 = OpCompositeExtract %v3float %56603 0
-     %113002 = OpCompositeExtract %v3float %56603 1
-               OpBranch %56605
-      %56591 = OpLabel
-      %56593 = OpIAdd %uint %129517 %int_1
-      %56594 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %129517
-      %56595 = OpLoad %v3float %56594
-               OpBranch %56605
-      %56604 = OpLabel
-               OpUnreachable
-      %56605 = OpLabel
-     %138107 = OpPhi %uint %56593 %56591 %129517 %56599
-     %138106 = OpPhi %uint %129514 %56591 %56601 %56599
-     %138104 = OpPhi %v3float %56595 %56591 %113001 %56599
-     %138103 = OpPhi %v3float %56595 %56591 %113002 %56599
-      %48076 = OpLoad %uint %47980
-      %48077 = OpBitwiseAnd %uint %48076 %uint_16384
-      %48078 = OpUGreaterThan %bool %48077 %uint_0
-               OpSelectionMerge %56628 None
-               OpSwitch %uint_0 %56612
-      %56612 = OpLabel
-               OpSelectionMerge %56627 None
-               OpBranchConditional %48078 %56614 %56622
-      %56622 = OpLabel
-      %56624 = OpISub %uint %138106 %int_1
-      %56625 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %56624
-      %56626 = OpLoad %_arr_v3float_uint_2 %56625
-     %112992 = OpCompositeExtract %v3float %56626 0
-     %112993 = OpCompositeExtract %v3float %56626 1
-               OpBranch %56628
-      %56614 = OpLabel
-      %56616 = OpIAdd %uint %138107 %int_1
-      %56617 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %138107
-      %56618 = OpLoad %v3float %56617
-               OpBranch %56628
-      %56627 = OpLabel
-               OpUnreachable
-      %56628 = OpLabel
-     %206565 = OpPhi %uint %56616 %56614 %138107 %56622
-     %138112 = OpPhi %uint %138106 %56614 %56624 %56622
-     %138109 = OpPhi %v3float %56618 %56614 %112992 %56622
-     %138108 = OpPhi %v3float %56618 %56614 %112993 %56622
-      %48084 = OpFAdd %v3float %138104 %138109
-      %48090 = OpFAdd %v3float %138103 %138108
-     %113108 = OpCompositeConstruct %_arr_v3float_uint_2 %48084 %48090
-      %56632 = OpIAdd %uint %138112 %int_1
-      %56634 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %138112
-               OpStore %56634 %113108
-               OpBranch %56398
-      %48038 = OpLabel
-      %48041 = OpLoad %uint %47980
-      %48042 = OpBitwiseAnd %uint %48041 %uint_32768
-      %48043 = OpUGreaterThan %bool %48042 %uint_0
-               OpSelectionMerge %56554 None
-               OpSwitch %uint_0 %56538
-      %56538 = OpLabel
-               OpSelectionMerge %56553 None
-               OpBranchConditional %48043 %56540 %56548
-      %56548 = OpLabel
-      %56550 = OpISub %uint %129525 %int_1
-      %56551 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56550
-      %56552 = OpLoad %_arr_v2float_uint_2 %56551
-     %113019 = OpCompositeExtract %v2float %56552 0
-     %113020 = OpCompositeExtract %v2float %56552 1
-               OpBranch %56554
-      %56540 = OpLabel
-      %56542 = OpIAdd %uint %130223 %int_1
-      %56543 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %56544 = OpLoad %v2float %56543
-               OpBranch %56554
-      %56553 = OpLabel
-               OpUnreachable
-      %56554 = OpLabel
-     %208916 = OpPhi %uint %56542 %56540 %130223 %56548
-     %138123 = OpPhi %uint %129525 %56540 %56550 %56548
-     %138114 = OpPhi %v2float %56544 %56540 %113019 %56548
-     %138113 = OpPhi %v2float %56544 %56540 %113020 %56548
-      %48047 = OpLoad %uint %47980
-      %48048 = OpBitwiseAnd %uint %48047 %uint_16384
-      %48049 = OpUGreaterThan %bool %48048 %uint_0
-               OpSelectionMerge %56577 None
-               OpSwitch %uint_0 %56561
-      %56561 = OpLabel
-               OpSelectionMerge %56576 None
-               OpBranchConditional %48049 %56563 %56571
-      %56571 = OpLabel
-      %56573 = OpISub %uint %129504 %int_1
-      %56574 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %56573
-      %56575 = OpLoad %_arr_float_uint_2 %56574
-     %113010 = OpCompositeExtract %float %56575 0
-     %113011 = OpCompositeExtract %float %56575 1
-               OpBranch %56577
-      %56563 = OpLabel
-      %56565 = OpIAdd %uint %129506 %int_1
-      %56566 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %56567 = OpLoad %float %56566
-               OpBranch %56577
-      %56576 = OpLabel
-               OpUnreachable
-      %56577 = OpLabel
-     %138869 = OpPhi %uint %56565 %56563 %129506 %56571
-     %138672 = OpPhi %uint %129504 %56563 %56573 %56571
-     %138119 = OpPhi %float %56567 %56563 %113010 %56571
-     %138118 = OpPhi %float %56567 %56563 %113011 %56571
-      %48055 = OpCompositeConstruct %v2float %138119 %138119
-      %48056 = OpFAdd %v2float %138114 %48055
-      %48062 = OpCompositeConstruct %v2float %138118 %138118
-      %48063 = OpFAdd %v2float %138113 %48062
-     %113097 = OpCompositeConstruct %_arr_v2float_uint_2 %48056 %48063
-      %56581 = OpIAdd %uint %138123 %int_1
-      %56583 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %138123
-               OpStore %56583 %113097
-               OpBranch %56398
-      %48011 = OpLabel
-      %48014 = OpLoad %uint %47980
-      %48015 = OpBitwiseAnd %uint %48014 %uint_32768
-      %48016 = OpUGreaterThan %bool %48015 %uint_0
-               OpSelectionMerge %56503 None
-               OpSwitch %uint_0 %56487
-      %56487 = OpLabel
-               OpSelectionMerge %56502 None
-               OpBranchConditional %48016 %56489 %56497
-      %56497 = OpLabel
-      %56499 = OpISub %uint %129525 %int_1
-      %56500 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56499
-      %56501 = OpLoad %_arr_v2float_uint_2 %56500
-     %113037 = OpCompositeExtract %v2float %56501 0
-     %113038 = OpCompositeExtract %v2float %56501 1
-               OpBranch %56503
-      %56489 = OpLabel
-      %56491 = OpIAdd %uint %130223 %int_1
-      %56492 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %130223
-      %56493 = OpLoad %v2float %56492
-               OpBranch %56503
-      %56502 = OpLabel
-               OpUnreachable
-      %56503 = OpLabel
-     %138128 = OpPhi %uint %56491 %56489 %130223 %56497
-     %138127 = OpPhi %uint %129525 %56489 %56499 %56497
-     %138125 = OpPhi %v2float %56493 %56489 %113037 %56497
-     %138124 = OpPhi %v2float %56493 %56489 %113038 %56497
-      %48020 = OpLoad %uint %47980
-      %48021 = OpBitwiseAnd %uint %48020 %uint_16384
-      %48022 = OpUGreaterThan %bool %48021 %uint_0
-               OpSelectionMerge %56526 None
-               OpSwitch %uint_0 %56510
-      %56510 = OpLabel
-               OpSelectionMerge %56525 None
-               OpBranchConditional %48022 %56512 %56520
-      %56520 = OpLabel
-      %56522 = OpISub %uint %138127 %int_1
-      %56523 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %56522
-      %56524 = OpLoad %_arr_v2float_uint_2 %56523
-     %113028 = OpCompositeExtract %v2float %56524 0
-     %113029 = OpCompositeExtract %v2float %56524 1
-               OpBranch %56526
-      %56512 = OpLabel
-      %56514 = OpIAdd %uint %138128 %int_1
-      %56515 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %138128
-      %56516 = OpLoad %v2float %56515
-               OpBranch %56526
-      %56525 = OpLabel
-               OpUnreachable
-      %56526 = OpLabel
-     %208914 = OpPhi %uint %56514 %56512 %138128 %56520
-     %138133 = OpPhi %uint %138127 %56512 %56522 %56520
-     %138130 = OpPhi %v2float %56516 %56512 %113028 %56520
-     %138129 = OpPhi %v2float %56516 %56512 %113029 %56520
-      %48028 = OpFAdd %v2float %138125 %138130
-      %48034 = OpFAdd %v2float %138124 %138129
-     %113086 = OpCompositeConstruct %_arr_v2float_uint_2 %48028 %48034
-      %56530 = OpIAdd %uint %138133 %int_1
-      %56532 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %138133
-               OpStore %56532 %113086
-               OpBranch %56398
-      %47984 = OpLabel
-      %47987 = OpLoad %uint %47980
-      %47988 = OpBitwiseAnd %uint %47987 %uint_32768
-      %47989 = OpUGreaterThan %bool %47988 %uint_0
-               OpSelectionMerge %56452 None
-               OpSwitch %uint_0 %56436
-      %56436 = OpLabel
-               OpSelectionMerge %56451 None
-               OpBranchConditional %47989 %56438 %56446
-      %56446 = OpLabel
-      %56448 = OpISub %uint %129504 %int_1
-      %56449 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %56448
-      %56450 = OpLoad %_arr_float_uint_2 %56449
-     %113055 = OpCompositeExtract %float %56450 0
-     %113056 = OpCompositeExtract %float %56450 1
-               OpBranch %56452
-      %56438 = OpLabel
-      %56440 = OpIAdd %uint %129506 %int_1
-      %56441 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %129506
-      %56442 = OpLoad %float %56441
-               OpBranch %56452
-      %56451 = OpLabel
-               OpUnreachable
-      %56452 = OpLabel
-     %138138 = OpPhi %uint %56440 %56438 %129506 %56446
-     %138137 = OpPhi %uint %129504 %56438 %56448 %56446
-     %138135 = OpPhi %float %56442 %56438 %113055 %56446
-     %138134 = OpPhi %float %56442 %56438 %113056 %56446
-      %47993 = OpLoad %uint %47980
-      %47994 = OpBitwiseAnd %uint %47993 %uint_16384
-      %47995 = OpUGreaterThan %bool %47994 %uint_0
-               OpSelectionMerge %56475 None
-               OpSwitch %uint_0 %56459
-      %56459 = OpLabel
-               OpSelectionMerge %56474 None
-               OpBranchConditional %47995 %56461 %56469
-      %56469 = OpLabel
-      %56471 = OpISub %uint %138137 %int_1
-      %56472 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %56471
-      %56473 = OpLoad %_arr_float_uint_2 %56472
-     %113046 = OpCompositeExtract %float %56473 0
-     %113047 = OpCompositeExtract %float %56473 1
-               OpBranch %56475
-      %56461 = OpLabel
-      %56463 = OpIAdd %uint %138138 %int_1
-      %56464 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %138138
-      %56465 = OpLoad %float %56464
-               OpBranch %56475
-      %56474 = OpLabel
-               OpUnreachable
-      %56475 = OpLabel
-     %138866 = OpPhi %uint %56463 %56461 %138138 %56469
-     %138143 = OpPhi %uint %138137 %56461 %56471 %56469
-     %138140 = OpPhi %float %56465 %56461 %113046 %56469
-     %138139 = OpPhi %float %56465 %56461 %113047 %56469
-      %48001 = OpFAdd %float %138135 %138140
-      %48007 = OpFAdd %float %138134 %138139
-     %113075 = OpCompositeConstruct %_arr_float_uint_2 %48001 %48007
-      %56479 = OpIAdd %uint %138143 %int_1
-      %56481 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %138143
-               OpStore %56481 %113075
-               OpBranch %56398
-      %47983 = OpLabel
-               OpBranch %56419
-      %56398 = OpLabel
-     %212075 = OpPhi %uint %130925 %56475 %130925 %56526 %130925 %56577 %130925 %56628 %130925 %56679 %130925 %56730 %130925 %56781 %130925 %56832 %130925 %56883 %130925 %56934 %130925 %56985 %130925 %57036 %130925 %57087 %130925 %57138 %130925 %57189 %130925 %57240 %130925 %57291 %130925 %57342 %130925 %57393 %130925 %57444 %130925 %57495 %130925 %57546 %130925 %57597 %130925 %57648 %130925 %57699 %130925 %57750 %130925 %57801 %130925 %57852 %130925 %57903 %130925 %57954 %130925 %58005 %130925 %58056 %130925 %58107 %130925 %58158 %130925 %58209 %130925 %58260 %130925 %58311 %130925 %58362 %130925 %58413 %130925 %58464 %130925 %58515 %130925 %58566 %130925 %58617 %130925 %58645 %130925 %58673 %130925 %58701 %130925 %58752 %130925 %58803 %130925 %58854 %130925 %58882 %130925 %58910 %130925 %58938 %130925 %58966 %130925 %58994 %130925 %59022 %130925 %59050 %130925 %59078 %130925 %59106 %130925 %59134 %130925 %59162 %130925 %59190 %130925 %59218 %130925 %59246 %130925 %59274 %130925 %59302 %130925 %59330 %130925 %59358 %130925 %59386 %130925 %59414 %130925 %59442 %130925 %59470 %130925 %59498 %130925 %59526 %130925 %59554 %130925 %59605 %130925 %59656 %130925 %59730 %130925 %59758 %130925 %59786 %130925 %59814 %130925 %59842 %130925 %59870 %130925 %59898 %130925 %59926 %130925 %59954 %130925 %59982 %130925 %60010 %130925 %60038 %130925 %60066 %130925 %60094 %130925 %60122 %130925 %60150 %130925 %60178 %130925 %60206 %130925 %60234 %130925 %60262 %130925 %60290 %130925 %60318 %130925 %60346 %130925 %60374 %130925 %60402 %130925 %60430 %130925 %60481 %130925 %60532 %130925 %60606 %130925 %60634 %130925 %60662 %130925 %60690 %130925 %60718 %130925 %60746 %130925 %60774 %130925 %60802 %130925 %60830 %130925 %60858 %130925 %60886 %130925 %60914 %130925 %60942 %130925 %60970 %130925 %60998 %130925 %61026 %130925 %61054 %130925 %61082 %130925 %61110 %130925 %61138 %130925 %61166 %130925 %61194 %130925 %61222 %130925 %61250 %130925 %61278 %130925 %61306 %130925 %61357 %130925 %61408 %130925 %61482 %130925 %61510 %130925 %61538 %130925 %61566 %130925 %61594 %130925 %61622 %130925 %61650 %130925 %61678 %130925 %61706 %130925 %61734 %130925 %61762 %130925 %61790 %130925 %61818 %130925 %61846 %130925 %61874 %130925 %61902 %130925 %61930 %130925 %61958 %130925 %61986 %130925 %62014 %130925 %62042 %130925 %62070 %130925 %62098 %130925 %62126 %130925 %62154 %130925 %62182 %130925 %62233 %130925 %62284 %130925 %62358 %130925 %62432 %130925 %62506 %130925 %62580 %130925 %62654 %130925 %62728 %130925 %62802 %130925 %62876 %130925 %62950 %130925 %63024 %130925 %63098 %130925 %63172 %130925 %63246 %130925 %63320 %130925 %63394 %130925 %63422 %130925 %63450 %130925 %63478 %130925 %63529 %130925 %63603 %130925 %63654 %130925 %63751 %130925 %63825 %130925 %63876 %130925 %63927 %130925 %63955 %130925 %63998 %212366 %64031 %130925 %64069 %130925 %64112 %130925 %64140 %130925 %64173 %130925 %64211 %130925 %55457 %130925 %64282 %130925 %64310 %130925 %64338 %130925 %64366 %130925 %64394 %130925 %64422 %130925 %64450 %130925 %64507 %130925 %64564 %130925 %55838 %130925 %55854 %130925 %55870 %130925 %55886 %130925 %55892 %130925 %55898 %130925 %55904 %130925 %55910 %130925 %55913 %130925 %55923 %130925 %55940 %130925 %55964 %130925 %55980 %130925 %55996 %130925 %56012 %130925 %56018 %130925 %56024 %130925 %56030 %130925 %56036 %130925 %56039 %130925 %56049 %130925 %56066 %130925 %56090 %130925 %56106 %130925 %56122 %130925 %56138 %130925 %56144 %130925 %56150 %130925 %56156 %130925 %56162 %130925 %56165 %130925 %56175 %130925 %56192 %130925 %56216 %130925 %56232 %130925 %56248 %130925 %56264 %130925 %56270 %130925 %56276 %130925 %56282 %130925 %56288 %130925 %56291 %130925 %56301 %130925 %56318 %130925 %64695 %130925 %56390
-     %211758 = OpPhi %uint %130923 %56475 %130923 %56526 %130923 %56577 %130923 %56628 %130923 %56679 %130923 %56730 %130923 %56781 %130923 %56832 %130923 %56883 %130923 %56934 %130923 %56985 %130923 %57036 %130923 %57087 %130923 %57138 %130923 %57189 %130923 %57240 %130923 %57291 %130923 %57342 %130923 %57393 %130923 %57444 %130923 %57495 %130923 %57546 %130923 %57597 %130923 %57648 %130923 %57699 %130923 %57750 %130923 %57801 %130923 %57852 %130923 %57903 %130923 %57954 %130923 %58005 %130923 %58056 %130923 %58107 %130923 %58158 %130923 %58209 %130923 %58260 %130923 %58311 %130923 %58362 %130923 %58413 %130923 %58464 %130923 %58515 %130923 %58566 %130923 %58617 %130923 %58645 %130923 %58673 %130923 %58701 %130923 %58752 %130923 %58803 %130923 %58854 %130923 %58882 %130923 %58910 %130923 %58938 %130923 %58966 %130923 %58994 %130923 %59022 %130923 %59050 %130923 %59078 %130923 %59106 %130923 %59134 %130923 %59162 %130923 %59190 %130923 %59218 %130923 %59246 %130923 %59274 %130923 %59302 %130923 %59330 %130923 %59358 %130923 %59386 %130923 %59414 %130923 %59442 %130923 %59470 %130923 %59498 %130923 %59526 %130923 %59554 %130923 %59605 %130923 %59656 %130923 %59730 %130923 %59758 %130923 %59786 %130923 %59814 %130923 %59842 %130923 %59870 %130923 %59898 %130923 %59926 %130923 %59954 %130923 %59982 %130923 %60010 %130923 %60038 %130923 %60066 %130923 %60094 %130923 %60122 %130923 %60150 %130923 %60178 %130923 %60206 %130923 %60234 %130923 %60262 %130923 %60290 %130923 %60318 %130923 %60346 %130923 %60374 %130923 %60402 %130923 %60430 %130923 %60481 %130923 %60532 %130923 %60606 %130923 %60634 %130923 %60662 %130923 %60690 %130923 %60718 %130923 %60746 %130923 %60774 %130923 %60802 %130923 %60830 %130923 %60858 %130923 %60886 %130923 %60914 %130923 %60942 %130923 %60970 %130923 %60998 %130923 %61026 %130923 %61054 %130923 %61082 %130923 %61110 %130923 %61138 %130923 %61166 %130923 %61194 %130923 %61222 %130923 %61250 %130923 %61278 %130923 %61306 %130923 %61357 %130923 %61408 %130923 %61482 %130923 %61510 %130923 %61538 %130923 %61566 %130923 %61594 %130923 %61622 %130923 %61650 %130923 %61678 %130923 %61706 %130923 %61734 %130923 %61762 %130923 %61790 %130923 %61818 %130923 %61846 %130923 %61874 %130923 %61902 %130923 %61930 %130923 %61958 %130923 %61986 %130923 %62014 %130923 %62042 %130923 %62070 %130923 %62098 %130923 %62126 %130923 %62154 %130923 %62182 %130923 %62233 %130923 %62284 %130923 %62358 %130923 %62432 %130923 %62506 %130923 %62580 %130923 %62654 %130923 %62728 %130923 %62802 %130923 %62876 %130923 %62950 %130923 %63024 %130923 %63098 %130923 %63172 %130923 %63246 %130923 %63320 %130923 %63394 %130923 %63422 %130923 %63450 %130923 %63478 %130923 %63529 %130923 %63603 %130923 %63654 %130923 %63751 %130923 %63825 %130923 %63876 %130923 %63927 %130923 %63955 %130923 %63998 %212049 %64031 %130923 %64069 %130923 %64112 %130923 %64140 %130923 %64173 %130923 %64211 %130923 %55457 %130923 %64282 %130923 %64310 %130923 %64338 %130923 %64366 %130923 %64394 %130923 %64422 %130923 %64450 %130923 %64507 %130923 %64564 %130923 %55838 %130923 %55854 %130923 %55870 %130923 %55886 %130923 %55892 %130923 %55898 %130923 %55904 %130923 %55910 %130923 %55913 %130923 %55923 %130923 %55940 %130923 %55964 %130923 %55980 %130923 %55996 %130923 %56012 %130923 %56018 %130923 %56024 %130923 %56030 %130923 %56036 %130923 %56039 %130923 %56049 %130923 %56066 %130923 %56090 %130923 %56106 %130923 %56122 %130923 %56138 %130923 %56144 %130923 %56150 %130923 %56156 %130923 %56162 %130923 %56165 %130923 %56175 %130923 %56192 %130923 %56216 %130923 %56232 %130923 %56248 %130923 %56264 %130923 %56270 %130923 %56276 %130923 %56282 %130923 %56288 %130923 %56291 %130923 %56301 %130923 %56318 %130923 %64695 %130923 %56390
-     %211441 = OpPhi %uint %130918 %56475 %130918 %56526 %130918 %56577 %130918 %56628 %130918 %56679 %130918 %56730 %130918 %56781 %130918 %56832 %130918 %56883 %130918 %56934 %130918 %56985 %130918 %57036 %130918 %57087 %130918 %57138 %130918 %57189 %130918 %57240 %130918 %57291 %130918 %57342 %130918 %57393 %130918 %57444 %130918 %57495 %130918 %57546 %130918 %57597 %130918 %57648 %130918 %57699 %130918 %57750 %130918 %57801 %130918 %57852 %130918 %57903 %130918 %57954 %130918 %58005 %130918 %58056 %130918 %58107 %130918 %58158 %130918 %58209 %130918 %58260 %130918 %58311 %130918 %58362 %130918 %58413 %130918 %58464 %130918 %58515 %130918 %58566 %130918 %58617 %130918 %58645 %130918 %58673 %130918 %58701 %130918 %58752 %130918 %58803 %130918 %58854 %130918 %58882 %130918 %58910 %130918 %58938 %130918 %58966 %130918 %58994 %130918 %59022 %130918 %59050 %130918 %59078 %130918 %59106 %130918 %59134 %130918 %59162 %130918 %59190 %130918 %59218 %130918 %59246 %130918 %59274 %130918 %59302 %130918 %59330 %130918 %59358 %130918 %59386 %130918 %59414 %130918 %59442 %130918 %59470 %130918 %59498 %130918 %59526 %130918 %59554 %130918 %59605 %130918 %59656 %130918 %59730 %130918 %59758 %130918 %59786 %130918 %59814 %130918 %59842 %130918 %59870 %130918 %59898 %130918 %59926 %130918 %59954 %130918 %59982 %130918 %60010 %130918 %60038 %130918 %60066 %130918 %60094 %130918 %60122 %130918 %60150 %130918 %60178 %130918 %60206 %130918 %60234 %130918 %60262 %130918 %60290 %130918 %60318 %130918 %60346 %130918 %60374 %130918 %60402 %130918 %60430 %130918 %60481 %130918 %60532 %130918 %60606 %130918 %60634 %130918 %60662 %130918 %60690 %130918 %60718 %130918 %60746 %130918 %60774 %130918 %60802 %130918 %60830 %130918 %60858 %130918 %60886 %130918 %60914 %130918 %60942 %130918 %60970 %130918 %60998 %130918 %61026 %130918 %61054 %130918 %61082 %130918 %61110 %130918 %61138 %130918 %61166 %130918 %61194 %130918 %61222 %130918 %61250 %130918 %61278 %130918 %61306 %130918 %61357 %130918 %61408 %130918 %61482 %130918 %61510 %130918 %61538 %130918 %61566 %130918 %61594 %130918 %61622 %130918 %61650 %130918 %61678 %130918 %61706 %130918 %61734 %130918 %61762 %130918 %61790 %130918 %61818 %130918 %61846 %130918 %61874 %130918 %61902 %130918 %61930 %130918 %61958 %130918 %61986 %130918 %62014 %130918 %62042 %130918 %62070 %130918 %62098 %130918 %62126 %130918 %62154 %130918 %62182 %130918 %62233 %130918 %62284 %130918 %62358 %130918 %62432 %130918 %62506 %130918 %62580 %130918 %62654 %130918 %62728 %130918 %62802 %130918 %62876 %130918 %62950 %130918 %63024 %130918 %63098 %130918 %63172 %130918 %63246 %130918 %63320 %130918 %63394 %130918 %63422 %130918 %63450 %130918 %63478 %130918 %63529 %130918 %63603 %130918 %63654 %130918 %63751 %130918 %63825 %130918 %63876 %130918 %63927 %130918 %63955 %130918 %63998 %130918 %64031 %211733 %64069 %130918 %64112 %130918 %64140 %130918 %64173 %130918 %64211 %130918 %55457 %130918 %64282 %130918 %64310 %130918 %64338 %130918 %64366 %130918 %64394 %130918 %64422 %130918 %64450 %130918 %64507 %130918 %64564 %130918 %55838 %130918 %55854 %130918 %55870 %130918 %55886 %130918 %55892 %130918 %55898 %130918 %55904 %130918 %55910 %130918 %55913 %130918 %55923 %130918 %55940 %130918 %55964 %130918 %55980 %130918 %55996 %130918 %56012 %130918 %56018 %130918 %56024 %130918 %56030 %130918 %56036 %130918 %56039 %130918 %56049 %130918 %56066 %130918 %56090 %130918 %56106 %130918 %56122 %130918 %56138 %130918 %56144 %130918 %56150 %130918 %56156 %130918 %56162 %130918 %56165 %130918 %56175 %130918 %56192 %130918 %56216 %130918 %56232 %130918 %56248 %130918 %56264 %130918 %56270 %130918 %56276 %130918 %56282 %130918 %56288 %130918 %56291 %130918 %56301 %130918 %56318 %130918 %64695 %130918 %56390
-     %211124 = OpPhi %uint %130916 %56475 %130916 %56526 %130916 %56577 %130916 %56628 %130916 %56679 %130916 %56730 %130916 %56781 %130916 %56832 %130916 %56883 %130916 %56934 %130916 %56985 %130916 %57036 %130916 %57087 %130916 %57138 %130916 %57189 %130916 %57240 %130916 %57291 %130916 %57342 %130916 %57393 %130916 %57444 %130916 %57495 %130916 %57546 %130916 %57597 %130916 %57648 %130916 %57699 %130916 %57750 %130916 %57801 %130916 %57852 %130916 %57903 %130916 %57954 %130916 %58005 %130916 %58056 %130916 %58107 %130916 %58158 %130916 %58209 %130916 %58260 %130916 %58311 %130916 %58362 %130916 %58413 %130916 %58464 %130916 %58515 %130916 %58566 %130916 %58617 %130916 %58645 %130916 %58673 %130916 %58701 %130916 %58752 %130916 %58803 %130916 %58854 %130916 %58882 %130916 %58910 %130916 %58938 %130916 %58966 %130916 %58994 %130916 %59022 %130916 %59050 %130916 %59078 %130916 %59106 %130916 %59134 %130916 %59162 %130916 %59190 %130916 %59218 %130916 %59246 %130916 %59274 %130916 %59302 %130916 %59330 %130916 %59358 %130916 %59386 %130916 %59414 %130916 %59442 %130916 %59470 %130916 %59498 %130916 %59526 %130916 %59554 %130916 %59605 %130916 %59656 %130916 %59730 %130916 %59758 %130916 %59786 %130916 %59814 %130916 %59842 %130916 %59870 %130916 %59898 %130916 %59926 %130916 %59954 %130916 %59982 %130916 %60010 %130916 %60038 %130916 %60066 %130916 %60094 %130916 %60122 %130916 %60150 %130916 %60178 %130916 %60206 %130916 %60234 %130916 %60262 %130916 %60290 %130916 %60318 %130916 %60346 %130916 %60374 %130916 %60402 %130916 %60430 %130916 %60481 %130916 %60532 %130916 %60606 %130916 %60634 %130916 %60662 %130916 %60690 %130916 %60718 %130916 %60746 %130916 %60774 %130916 %60802 %130916 %60830 %130916 %60858 %130916 %60886 %130916 %60914 %130916 %60942 %130916 %60970 %130916 %60998 %130916 %61026 %130916 %61054 %130916 %61082 %130916 %61110 %130916 %61138 %130916 %61166 %130916 %61194 %130916 %61222 %130916 %61250 %130916 %61278 %130916 %61306 %130916 %61357 %130916 %61408 %130916 %61482 %130916 %61510 %130916 %61538 %130916 %61566 %130916 %61594 %130916 %61622 %130916 %61650 %130916 %61678 %130916 %61706 %130916 %61734 %130916 %61762 %130916 %61790 %130916 %61818 %130916 %61846 %130916 %61874 %130916 %61902 %130916 %61930 %130916 %61958 %130916 %61986 %130916 %62014 %130916 %62042 %130916 %62070 %130916 %62098 %130916 %62126 %130916 %62154 %130916 %62182 %130916 %62233 %130916 %62284 %130916 %62358 %130916 %62432 %130916 %62506 %130916 %62580 %130916 %62654 %130916 %62728 %130916 %62802 %130916 %62876 %130916 %62950 %130916 %63024 %130916 %63098 %130916 %63172 %130916 %63246 %130916 %63320 %130916 %63394 %130916 %63422 %130916 %63450 %130916 %63478 %130916 %63529 %130916 %63603 %130916 %63654 %130916 %63751 %130916 %63825 %130916 %63876 %130916 %63927 %130916 %63955 %130916 %63998 %130916 %64031 %211416 %64069 %130916 %64112 %130916 %64140 %130916 %64173 %130916 %64211 %130916 %55457 %130916 %64282 %130916 %64310 %130916 %64338 %130916 %64366 %130916 %64394 %130916 %64422 %130916 %64450 %130916 %64507 %130916 %64564 %130916 %55838 %130916 %55854 %130916 %55870 %130916 %55886 %130916 %55892 %130916 %55898 %130916 %55904 %130916 %55910 %130916 %55913 %130916 %55923 %130916 %55940 %130916 %55964 %130916 %55980 %130916 %55996 %130916 %56012 %130916 %56018 %130916 %56024 %130916 %56030 %130916 %56036 %130916 %56039 %130916 %56049 %130916 %56066 %130916 %56090 %130916 %56106 %130916 %56122 %130916 %56138 %130916 %56144 %130916 %56150 %130916 %56156 %130916 %56162 %130916 %56165 %130916 %56175 %130916 %56192 %130916 %56216 %130916 %56232 %130916 %56248 %130916 %56264 %130916 %56270 %130916 %56276 %130916 %56282 %130916 %56288 %130916 %56291 %130916 %56301 %130916 %56318 %130916 %64695 %130916 %56390
-     %210807 = OpPhi %uint %130911 %56475 %130911 %56526 %130911 %56577 %130911 %56628 %130911 %56679 %130911 %56730 %130911 %56781 %130911 %56832 %130911 %56883 %130911 %56934 %130911 %56985 %130911 %57036 %130911 %57087 %130911 %57138 %130911 %57189 %130911 %57240 %130911 %57291 %130911 %57342 %130911 %57393 %130911 %57444 %130911 %57495 %130911 %57546 %130911 %57597 %130911 %57648 %130911 %57699 %130911 %57750 %130911 %57801 %130911 %57852 %130911 %57903 %130911 %57954 %130911 %58005 %130911 %58056 %130911 %58107 %130911 %58158 %130911 %58209 %130911 %58260 %130911 %58311 %130911 %58362 %130911 %58413 %130911 %58464 %130911 %58515 %130911 %58566 %130911 %58617 %130911 %58645 %130911 %58673 %130911 %58701 %130911 %58752 %130911 %58803 %130911 %58854 %130911 %58882 %130911 %58910 %130911 %58938 %130911 %58966 %130911 %58994 %130911 %59022 %130911 %59050 %130911 %59078 %130911 %59106 %130911 %59134 %130911 %59162 %130911 %59190 %130911 %59218 %130911 %59246 %130911 %59274 %130911 %59302 %130911 %59330 %130911 %59358 %130911 %59386 %130911 %59414 %130911 %59442 %130911 %59470 %130911 %59498 %130911 %59526 %130911 %59554 %130911 %59605 %130911 %59656 %130911 %59730 %130911 %59758 %130911 %59786 %130911 %59814 %130911 %59842 %130911 %59870 %130911 %59898 %130911 %59926 %130911 %59954 %130911 %59982 %130911 %60010 %130911 %60038 %130911 %60066 %130911 %60094 %130911 %60122 %130911 %60150 %130911 %60178 %130911 %60206 %130911 %60234 %130911 %60262 %130911 %60290 %130911 %60318 %130911 %60346 %130911 %60374 %130911 %60402 %130911 %60430 %130911 %60481 %130911 %60532 %130911 %60606 %130911 %60634 %130911 %60662 %130911 %60690 %130911 %60718 %130911 %60746 %130911 %60774 %130911 %60802 %130911 %60830 %130911 %60858 %130911 %60886 %130911 %60914 %130911 %60942 %130911 %60970 %130911 %60998 %130911 %61026 %130911 %61054 %130911 %61082 %130911 %61110 %130911 %61138 %130911 %61166 %130911 %61194 %130911 %61222 %130911 %61250 %130911 %61278 %130911 %61306 %130911 %61357 %130911 %61408 %130911 %61482 %130911 %61510 %130911 %61538 %130911 %61566 %130911 %61594 %130911 %61622 %130911 %61650 %130911 %61678 %130911 %61706 %130911 %61734 %130911 %61762 %130911 %61790 %130911 %61818 %130911 %61846 %130911 %61874 %130911 %61902 %130911 %61930 %130911 %61958 %130911 %61986 %130911 %62014 %130911 %62042 %130911 %62070 %130911 %62098 %130911 %62126 %130911 %62154 %130911 %62182 %130911 %62233 %130911 %62284 %130911 %62358 %130911 %62432 %130911 %62506 %130911 %62580 %130911 %62654 %130911 %62728 %130911 %62802 %130911 %62876 %130911 %62950 %130911 %63024 %130911 %63098 %130911 %63172 %130911 %63246 %130911 %63320 %130911 %63394 %130911 %63422 %130911 %63450 %130911 %63478 %130911 %63529 %130911 %63603 %130911 %63654 %130911 %63751 %130911 %63825 %130911 %63876 %130911 %63927 %211096 %63955 %211097 %63998 %130911 %64031 %130911 %64069 %211100 %64112 %130911 %64140 %130911 %64173 %130911 %64211 %130911 %55457 %130911 %64282 %130911 %64310 %130911 %64338 %130911 %64366 %130911 %64394 %130911 %64422 %130911 %64450 %130911 %64507 %130911 %64564 %130911 %55838 %130911 %55854 %130911 %55870 %130911 %55886 %130911 %55892 %130911 %55898 %130911 %55904 %130911 %55910 %130911 %55913 %130911 %55923 %130911 %55940 %130911 %55964 %130911 %55980 %130911 %55996 %130911 %56012 %130911 %56018 %130911 %56024 %130911 %56030 %130911 %56036 %130911 %56039 %130911 %56049 %130911 %56066 %130911 %56090 %130911 %56106 %130911 %56122 %130911 %56138 %130911 %56144 %130911 %56150 %130911 %56156 %130911 %56162 %130911 %56165 %130911 %56175 %130911 %56192 %130911 %56216 %130911 %56232 %130911 %56248 %130911 %56264 %130911 %56270 %130911 %56276 %130911 %56282 %130911 %56288 %130911 %56291 %130911 %56301 %130911 %56318 %130911 %64695 %130911 %56390
-     %210490 = OpPhi %uint %130909 %56475 %130909 %56526 %130909 %56577 %130909 %56628 %130909 %56679 %130909 %56730 %130909 %56781 %130909 %56832 %130909 %56883 %130909 %56934 %130909 %56985 %130909 %57036 %130909 %57087 %130909 %57138 %130909 %57189 %130909 %57240 %130909 %57291 %130909 %57342 %130909 %57393 %130909 %57444 %130909 %57495 %130909 %57546 %130909 %57597 %130909 %57648 %130909 %57699 %130909 %57750 %130909 %57801 %130909 %57852 %130909 %57903 %130909 %57954 %130909 %58005 %130909 %58056 %130909 %58107 %130909 %58158 %130909 %58209 %130909 %58260 %130909 %58311 %130909 %58362 %130909 %58413 %130909 %58464 %130909 %58515 %130909 %58566 %130909 %58617 %130909 %58645 %130909 %58673 %130909 %58701 %130909 %58752 %130909 %58803 %130909 %58854 %130909 %58882 %130909 %58910 %130909 %58938 %130909 %58966 %130909 %58994 %130909 %59022 %130909 %59050 %130909 %59078 %130909 %59106 %130909 %59134 %130909 %59162 %130909 %59190 %130909 %59218 %130909 %59246 %130909 %59274 %130909 %59302 %130909 %59330 %130909 %59358 %130909 %59386 %130909 %59414 %130909 %59442 %130909 %59470 %130909 %59498 %130909 %59526 %130909 %59554 %130909 %59605 %130909 %59656 %130909 %59730 %130909 %59758 %130909 %59786 %130909 %59814 %130909 %59842 %130909 %59870 %130909 %59898 %130909 %59926 %130909 %59954 %130909 %59982 %130909 %60010 %130909 %60038 %130909 %60066 %130909 %60094 %130909 %60122 %130909 %60150 %130909 %60178 %130909 %60206 %130909 %60234 %130909 %60262 %130909 %60290 %130909 %60318 %130909 %60346 %130909 %60374 %130909 %60402 %130909 %60430 %130909 %60481 %130909 %60532 %130909 %60606 %130909 %60634 %130909 %60662 %130909 %60690 %130909 %60718 %130909 %60746 %130909 %60774 %130909 %60802 %130909 %60830 %130909 %60858 %130909 %60886 %130909 %60914 %130909 %60942 %130909 %60970 %130909 %60998 %130909 %61026 %130909 %61054 %130909 %61082 %130909 %61110 %130909 %61138 %130909 %61166 %130909 %61194 %130909 %61222 %130909 %61250 %130909 %61278 %130909 %61306 %130909 %61357 %130909 %61408 %130909 %61482 %130909 %61510 %130909 %61538 %130909 %61566 %130909 %61594 %130909 %61622 %130909 %61650 %130909 %61678 %130909 %61706 %130909 %61734 %130909 %61762 %130909 %61790 %130909 %61818 %130909 %61846 %130909 %61874 %130909 %61902 %130909 %61930 %130909 %61958 %130909 %61986 %130909 %62014 %130909 %62042 %130909 %62070 %130909 %62098 %130909 %62126 %130909 %62154 %130909 %62182 %130909 %62233 %130909 %62284 %130909 %62358 %130909 %62432 %130909 %62506 %130909 %62580 %130909 %62654 %130909 %62728 %130909 %62802 %130909 %62876 %130909 %62950 %130909 %63024 %130909 %63098 %130909 %63172 %130909 %63246 %130909 %63320 %130909 %63394 %130909 %63422 %130909 %63450 %130909 %63478 %130909 %63529 %130909 %63603 %130909 %63654 %130909 %63751 %130909 %63825 %130909 %63876 %130909 %63927 %210779 %63955 %210780 %63998 %130909 %64031 %130909 %64069 %210783 %64112 %130909 %64140 %130909 %64173 %130909 %64211 %130909 %55457 %130909 %64282 %130909 %64310 %130909 %64338 %130909 %64366 %130909 %64394 %130909 %64422 %130909 %64450 %130909 %64507 %130909 %64564 %130909 %55838 %130909 %55854 %130909 %55870 %130909 %55886 %130909 %55892 %130909 %55898 %130909 %55904 %130909 %55910 %130909 %55913 %130909 %55923 %130909 %55940 %130909 %55964 %130909 %55980 %130909 %55996 %130909 %56012 %130909 %56018 %130909 %56024 %130909 %56030 %130909 %56036 %130909 %56039 %130909 %56049 %130909 %56066 %130909 %56090 %130909 %56106 %130909 %56122 %130909 %56138 %130909 %56144 %130909 %56150 %130909 %56156 %130909 %56162 %130909 %56165 %130909 %56175 %130909 %56192 %130909 %56216 %130909 %56232 %130909 %56248 %130909 %56264 %130909 %56270 %130909 %56276 %130909 %56282 %130909 %56288 %130909 %56291 %130909 %56301 %130909 %56318 %130909 %64695 %130909 %56390
-     %208911 = OpPhi %uint %130223 %56475 %208914 %56526 %208916 %56577 %130223 %56628 %130223 %56679 %130223 %56730 %130223 %56781 %130223 %56832 %208927 %56883 %208929 %56934 %130223 %56985 %130223 %57036 %130223 %57087 %130223 %57138 %130223 %57189 %208940 %57240 %208942 %57291 %130223 %57342 %130223 %57393 %130223 %57444 %130223 %57495 %130223 %57546 %208953 %57597 %208955 %57648 %130223 %57699 %130223 %57750 %130223 %57801 %130223 %57852 %130223 %57903 %208966 %57954 %130223 %58005 %130223 %58056 %130223 %58107 %208973 %58158 %208975 %58209 %130223 %58260 %130223 %58311 %130223 %58362 %130223 %58413 %130223 %58464 %208986 %58515 %130223 %58566 %130223 %58617 %208991 %58645 %130223 %58673 %130223 %58701 %208994 %58752 %130223 %58803 %130223 %58854 %130223 %58882 %130223 %58910 %130223 %58938 %130223 %58966 %130223 %58994 %130223 %59022 %130223 %59050 %130223 %59078 %130223 %59106 %130223 %59134 %130223 %59162 %130223 %59190 %130223 %59218 %130223 %59246 %130223 %59274 %130223 %59302 %130223 %59330 %130223 %59358 %130223 %59386 %130223 %59414 %130223 %59442 %130223 %59470 %130223 %59498 %130223 %59526 %130223 %59554 %130223 %59605 %130223 %59656 %130223 %59730 %209033 %59758 %209034 %59786 %209035 %59814 %209036 %59842 %209037 %59870 %209038 %59898 %209039 %59926 %209040 %59954 %209041 %59982 %209042 %60010 %209043 %60038 %209044 %60066 %209045 %60094 %209046 %60122 %209047 %60150 %209048 %60178 %209049 %60206 %209050 %60234 %209051 %60262 %209052 %60290 %209053 %60318 %209054 %60346 %209055 %60374 %209056 %60402 %209057 %60430 %209058 %60481 %209059 %60532 %209060 %60606 %130223 %60634 %130223 %60662 %130223 %60690 %130223 %60718 %130223 %60746 %130223 %60774 %130223 %60802 %130223 %60830 %130223 %60858 %130223 %60886 %130223 %60914 %130223 %60942 %130223 %60970 %130223 %60998 %130223 %61026 %130223 %61054 %130223 %61082 %130223 %61110 %130223 %61138 %130223 %61166 %130223 %61194 %130223 %61222 %130223 %61250 %130223 %61278 %130223 %61306 %130223 %61357 %130223 %61408 %130223 %61482 %130223 %61510 %130223 %61538 %130223 %61566 %130223 %61594 %130223 %61622 %130223 %61650 %130223 %61678 %130223 %61706 %130223 %61734 %130223 %61762 %130223 %61790 %130223 %61818 %130223 %61846 %130223 %61874 %130223 %61902 %130223 %61930 %130223 %61958 %130223 %61986 %130223 %62014 %130223 %62042 %130223 %62070 %130223 %62098 %130223 %62126 %130223 %62154 %130223 %62182 %130223 %62233 %130223 %62284 %130223 %62358 %130223 %62432 %130223 %62506 %209131 %62580 %209132 %62654 %209135 %62728 %209137 %62802 %130223 %62876 %130223 %62950 %130223 %63024 %130223 %63098 %130223 %63172 %130223 %63246 %130223 %63320 %130223 %63394 %209162 %63422 %130223 %63450 %130223 %63478 %130223 %63529 %130223 %63603 %209171 %63654 %130223 %63751 %209178 %63825 %130223 %63876 %209181 %63927 %130223 %63955 %130223 %63998 %130223 %64031 %130223 %64069 %130223 %64112 %209187 %64140 %130223 %64173 %130223 %64211 %130223 %55457 %130223 %64282 %209194 %64310 %209195 %64338 %130223 %64366 %130223 %64394 %130223 %64422 %130223 %64450 %130223 %64507 %130223 %64564 %130223 %55838 %130223 %55854 %130223 %55870 %130223 %55886 %130223 %55892 %130223 %55898 %130223 %55904 %130223 %55910 %130223 %55913 %130223 %55923 %130223 %55940 %130223 %55964 %130223 %55980 %130223 %55996 %130223 %56012 %130223 %56018 %130223 %56024 %130223 %56030 %130223 %56036 %130223 %56039 %130223 %56049 %130223 %56066 %130223 %56090 %130223 %56106 %130223 %56122 %130223 %56138 %130223 %56144 %130223 %56150 %130223 %56156 %130223 %56162 %130223 %56165 %130223 %56175 %130223 %56192 %130223 %56216 %130223 %56232 %130223 %56248 %130223 %56264 %130223 %56270 %130223 %56276 %130223 %56282 %130223 %56288 %130223 %56291 %130223 %56301 %130223 %56318 %130223 %64695 %130223 %56390
-     %207331 = OpPhi %uint %129549 %56475 %129549 %56526 %129549 %56577 %129549 %56628 %129549 %56679 %207342 %56730 %207344 %56781 %129549 %56832 %129549 %56883 %129549 %56934 %129549 %56985 %129549 %57036 %207355 %57087 %207357 %57138 %129549 %57189 %129549 %57240 %129549 %57291 %129549 %57342 %129549 %57393 %207368 %57444 %207370 %57495 %129549 %57546 %129549 %57597 %129549 %57648 %129549 %57699 %129549 %57750 %207381 %57801 %207383 %57852 %129549 %57903 %129549 %57954 %129549 %58005 %207390 %58056 %129549 %58107 %129549 %58158 %129549 %58209 %129549 %58260 %129549 %58311 %207401 %58362 %207403 %58413 %129549 %58464 %129549 %58515 %129549 %58566 %207410 %58617 %129549 %58645 %129549 %58673 %207413 %58701 %129549 %58752 %129549 %58803 %207418 %58854 %129549 %58882 %129549 %58910 %129549 %58938 %129549 %58966 %129549 %58994 %129549 %59022 %129549 %59050 %129549 %59078 %129549 %59106 %129549 %59134 %129549 %59162 %129549 %59190 %129549 %59218 %129549 %59246 %129549 %59274 %129549 %59302 %129549 %59330 %129549 %59358 %129549 %59386 %129549 %59414 %129549 %59442 %129549 %59470 %129549 %59498 %129549 %59526 %129549 %59554 %129549 %59605 %129549 %59656 %129549 %59730 %129549 %59758 %129549 %59786 %129549 %59814 %129549 %59842 %129549 %59870 %129549 %59898 %129549 %59926 %129549 %59954 %129549 %59982 %129549 %60010 %129549 %60038 %129549 %60066 %129549 %60094 %129549 %60122 %129549 %60150 %129549 %60178 %129549 %60206 %129549 %60234 %129549 %60262 %129549 %60290 %129549 %60318 %129549 %60346 %129549 %60374 %129549 %60402 %129549 %60430 %129549 %60481 %129549 %60532 %129549 %60606 %129549 %60634 %129549 %60662 %129549 %60690 %129549 %60718 %129549 %60746 %129549 %60774 %129549 %60802 %129549 %60830 %129549 %60858 %129549 %60886 %129549 %60914 %129549 %60942 %129549 %60970 %129549 %60998 %129549 %61026 %129549 %61054 %129549 %61082 %129549 %61110 %129549 %61138 %129549 %61166 %129549 %61194 %129549 %61222 %129549 %61250 %129549 %61278 %129549 %61306 %129549 %61357 %129549 %61408 %129549 %61482 %207517 %61510 %207518 %61538 %207519 %61566 %207520 %61594 %207521 %61622 %207522 %61650 %207523 %61678 %207524 %61706 %207525 %61734 %207526 %61762 %207527 %61790 %207528 %61818 %207529 %61846 %207530 %61874 %207531 %61902 %207532 %61930 %207533 %61958 %207534 %61986 %207535 %62014 %207536 %62042 %207537 %62070 %207538 %62098 %207539 %62126 %207540 %62154 %207541 %62182 %207542 %62233 %207543 %62284 %207544 %62358 %129549 %62432 %129549 %62506 %129549 %62580 %129549 %62654 %129549 %62728 %129549 %62802 %129549 %62876 %129549 %62950 %129549 %63024 %129549 %63098 %207575 %63172 %207576 %63246 %207579 %63320 %207581 %63394 %129549 %63422 %129549 %63450 %207584 %63478 %129549 %63529 %129549 %63603 %129549 %63654 %129549 %63751 %129549 %63825 %129549 %63876 %129549 %63927 %129549 %63955 %129549 %63998 %129549 %64031 %129549 %64069 %129549 %64112 %129549 %64140 %129549 %64173 %207610 %64211 %129549 %55457 %129549 %64282 %129549 %64310 %129549 %64338 %129549 %64366 %129549 %64394 %207619 %64422 %207620 %64450 %129549 %64507 %129549 %64564 %129549 %55838 %129549 %55854 %129549 %55870 %129549 %55886 %129549 %55892 %129549 %55898 %129549 %55904 %129549 %55910 %129549 %55913 %129549 %55923 %129549 %55940 %129549 %55964 %129549 %55980 %129549 %55996 %129549 %56012 %129549 %56018 %129549 %56024 %129549 %56030 %129549 %56036 %129549 %56039 %129549 %56049 %129549 %56066 %129549 %56090 %129549 %56106 %129549 %56122 %129549 %56138 %129549 %56144 %129549 %56150 %129549 %56156 %129549 %56162 %129549 %56165 %129549 %56175 %129549 %56192 %129549 %56216 %129549 %56232 %129549 %56248 %129549 %56264 %129549 %56270 %129549 %56276 %129549 %56282 %129549 %56288 %129549 %56291 %129549 %56301 %129549 %56318 %129549 %64695 %129549 %56390
-     %207089 = OpPhi %uint %129525 %56475 %56530 %56526 %56581 %56577 %129525 %56628 %129525 %56679 %129525 %56730 %129525 %56781 %129525 %56832 %56887 %56883 %56938 %56934 %129525 %56985 %129525 %57036 %129525 %57087 %129525 %57138 %129525 %57189 %57244 %57240 %57295 %57291 %129525 %57342 %129525 %57393 %129525 %57444 %129525 %57495 %129525 %57546 %57601 %57597 %57652 %57648 %129525 %57699 %129525 %57750 %129525 %57801 %129525 %57852 %129525 %57903 %57958 %57954 %129525 %58005 %129525 %58056 %129525 %58107 %58162 %58158 %58213 %58209 %129525 %58260 %129525 %58311 %129525 %58362 %129525 %58413 %129525 %58464 %207148 %58515 %129525 %58566 %129525 %58617 %207153 %58645 %129525 %58673 %129525 %58701 %207156 %58752 %129525 %58803 %129525 %58854 %129525 %58882 %129525 %58910 %129525 %58938 %129525 %58966 %129525 %58994 %129525 %59022 %129525 %59050 %129525 %59078 %129525 %59106 %129525 %59134 %129525 %59162 %129525 %59190 %129525 %59218 %129525 %59246 %129525 %59274 %129525 %59302 %129525 %59330 %129525 %59358 %129525 %59386 %129525 %59414 %129525 %59442 %129525 %59470 %129525 %59498 %129525 %59526 %129525 %59554 %129525 %59605 %129525 %59656 %129525 %59730 %59762 %59758 %59790 %59786 %59818 %59814 %59846 %59842 %59874 %59870 %59902 %59898 %59930 %59926 %59958 %59954 %59986 %59982 %60014 %60010 %60042 %60038 %60070 %60066 %60098 %60094 %60126 %60122 %60154 %60150 %60182 %60178 %60210 %60206 %60238 %60234 %60266 %60262 %60294 %60290 %60322 %60318 %60350 %60346 %60378 %60374 %60406 %60402 %60434 %60430 %60485 %60481 %60536 %60532 %60610 %60606 %129525 %60634 %129525 %60662 %129525 %60690 %129525 %60718 %129525 %60746 %129525 %60774 %129525 %60802 %129525 %60830 %129525 %60858 %129525 %60886 %129525 %60914 %129525 %60942 %129525 %60970 %129525 %60998 %129525 %61026 %129525 %61054 %129525 %61082 %129525 %61110 %129525 %61138 %129525 %61166 %129525 %61194 %129525 %61222 %129525 %61250 %129525 %61278 %129525 %61306 %129525 %61357 %129525 %61408 %129525 %61482 %129525 %61510 %129525 %61538 %129525 %61566 %129525 %61594 %129525 %61622 %129525 %61650 %129525 %61678 %129525 %61706 %129525 %61734 %129525 %61762 %129525 %61790 %129525 %61818 %129525 %61846 %129525 %61874 %129525 %61902 %129525 %61930 %129525 %61958 %129525 %61986 %129525 %62014 %129525 %62042 %129525 %62070 %129525 %62098 %129525 %62126 %129525 %62154 %129525 %62182 %129525 %62233 %129525 %62284 %129525 %62358 %129525 %62432 %129525 %62506 %62584 %62580 %62658 %62654 %62732 %62728 %62806 %62802 %129525 %62876 %129525 %62950 %129525 %63024 %129525 %63098 %129525 %63172 %129525 %63246 %129525 %63320 %129525 %63394 %63426 %63422 %129525 %63450 %129525 %63478 %63533 %63529 %129525 %63603 %207295 %63654 %129525 %63751 %207302 %63825 %129525 %63876 %207305 %63927 %129525 %63955 %64007 %63998 %129525 %64031 %129525 %64069 %129525 %64112 %207310 %64140 %129525 %64173 %129525 %64211 %129525 %55457 %129525 %64282 %64314 %64310 %64342 %64338 %129525 %64366 %129525 %64394 %129525 %64422 %129525 %64450 %129525 %64507 %129525 %64564 %129525 %55838 %129525 %55854 %129525 %55870 %129525 %55886 %129525 %55892 %129525 %55898 %129525 %55904 %129525 %55910 %129525 %55913 %129525 %55923 %129525 %55940 %129525 %55964 %129525 %55980 %129525 %55996 %64593 %56012 %64598 %56018 %64603 %56024 %64608 %56030 %56038 %56036 %56048 %56039 %56065 %56049 %56089 %56066 %129525 %56090 %129525 %56106 %129525 %56122 %129525 %56138 %129525 %56144 %129525 %56150 %129525 %56156 %129525 %56162 %129525 %56165 %129525 %56175 %129525 %56192 %129525 %56216 %129525 %56232 %129525 %56248 %129525 %56264 %129525 %56270 %129525 %56276 %129525 %56282 %129525 %56288 %129525 %56291 %129525 %56301 %129525 %56318 %129525 %64695 %129525 %56390
-     %206856 = OpPhi %uint %129523 %56475 %129523 %56526 %129523 %56577 %129523 %56628 %129523 %56679 %56734 %56730 %56785 %56781 %129523 %56832 %129523 %56883 %129523 %56934 %129523 %56985 %129523 %57036 %57091 %57087 %57142 %57138 %129523 %57189 %129523 %57240 %129523 %57291 %129523 %57342 %129523 %57393 %57448 %57444 %57499 %57495 %129523 %57546 %129523 %57597 %129523 %57648 %129523 %57699 %129523 %57750 %57805 %57801 %57856 %57852 %129523 %57903 %129523 %57954 %129523 %58005 %58060 %58056 %129523 %58107 %129523 %58158 %129523 %58209 %129523 %58260 %129523 %58311 %58366 %58362 %58417 %58413 %129523 %58464 %129523 %58515 %129523 %58566 %206919 %58617 %129523 %58645 %129523 %58673 %206922 %58701 %129523 %58752 %129523 %58803 %206927 %58854 %129523 %58882 %129523 %58910 %129523 %58938 %129523 %58966 %129523 %58994 %129523 %59022 %129523 %59050 %129523 %59078 %129523 %59106 %129523 %59134 %129523 %59162 %129523 %59190 %129523 %59218 %129523 %59246 %129523 %59274 %129523 %59302 %129523 %59330 %129523 %59358 %129523 %59386 %129523 %59414 %129523 %59442 %129523 %59470 %129523 %59498 %129523 %59526 %129523 %59554 %129523 %59605 %129523 %59656 %129523 %59730 %129523 %59758 %129523 %59786 %129523 %59814 %129523 %59842 %129523 %59870 %129523 %59898 %129523 %59926 %129523 %59954 %129523 %59982 %129523 %60010 %129523 %60038 %129523 %60066 %129523 %60094 %129523 %60122 %129523 %60150 %129523 %60178 %129523 %60206 %129523 %60234 %129523 %60262 %129523 %60290 %129523 %60318 %129523 %60346 %129523 %60374 %129523 %60402 %129523 %60430 %129523 %60481 %129523 %60532 %129523 %60606 %129523 %60634 %129523 %60662 %129523 %60690 %129523 %60718 %129523 %60746 %129523 %60774 %129523 %60802 %129523 %60830 %129523 %60858 %129523 %60886 %129523 %60914 %129523 %60942 %129523 %60970 %129523 %60998 %129523 %61026 %129523 %61054 %129523 %61082 %129523 %61110 %129523 %61138 %129523 %61166 %129523 %61194 %129523 %61222 %129523 %61250 %129523 %61278 %129523 %61306 %129523 %61357 %129523 %61408 %129523 %61482 %61514 %61510 %61542 %61538 %61570 %61566 %61598 %61594 %61626 %61622 %61654 %61650 %61682 %61678 %61710 %61706 %61738 %61734 %61766 %61762 %61794 %61790 %61822 %61818 %61850 %61846 %61878 %61874 %61906 %61902 %61934 %61930 %61962 %61958 %61990 %61986 %62018 %62014 %62046 %62042 %62074 %62070 %62102 %62098 %62130 %62126 %62158 %62154 %62186 %62182 %62237 %62233 %62288 %62284 %62362 %62358 %129523 %62432 %129523 %62506 %129523 %62580 %129523 %62654 %129523 %62728 %129523 %62802 %129523 %62876 %129523 %62950 %129523 %63024 %129523 %63098 %63176 %63172 %63250 %63246 %63324 %63320 %63398 %63394 %129523 %63422 %129523 %63450 %63482 %63478 %129523 %63529 %129523 %63603 %129523 %63654 %63755 %63751 %63829 %63825 %63880 %63876 %63931 %63927 %129523 %63955 %129523 %63998 %129523 %64031 %64088 %64069 %64116 %64112 %129523 %64140 %129523 %64173 %207070 %64211 %129523 %55457 %129523 %64282 %129523 %64310 %129523 %64338 %129523 %64366 %129523 %64394 %64426 %64422 %64454 %64450 %129523 %64507 %129523 %64564 %129523 %55838 %129523 %55854 %129523 %55870 %129523 %55886 %129523 %55892 %129523 %55898 %129523 %55904 %129523 %55910 %129523 %55913 %129523 %55923 %129523 %55940 %129523 %55964 %129523 %55980 %129523 %55996 %129523 %56012 %129523 %56018 %129523 %56024 %129523 %56030 %129523 %56036 %129523 %56039 %129523 %56049 %129523 %56066 %129523 %56090 %129523 %56106 %129523 %56122 %129523 %56138 %129523 %56144 %129523 %56150 %129523 %56156 %129523 %56162 %129523 %56165 %129523 %56175 %129523 %56192 %129523 %56216 %129523 %56232 %129523 %56248 %64633 %56264 %64638 %56270 %64643 %56276 %64648 %56282 %56290 %56288 %56300 %56291 %56317 %56301 %56341 %56318 %129523 %64695 %129523 %56390
-     %206558 = OpPhi %uint %129517 %56475 %129517 %56526 %129517 %56577 %206565 %56628 %206567 %56679 %129517 %56730 %129517 %56781 %129517 %56832 %129517 %56883 %129517 %56934 %206578 %56985 %206580 %57036 %129517 %57087 %129517 %57138 %129517 %57189 %129517 %57240 %129517 %57291 %206591 %57342 %206593 %57393 %129517 %57444 %129517 %57495 %129517 %57546 %129517 %57597 %129517 %57648 %206604 %57699 %206606 %57750 %129517 %57801 %129517 %57852 %129517 %57903 %129517 %57954 %206615 %58005 %129517 %58056 %129517 %58107 %129517 %58158 %129517 %58209 %206624 %58260 %206626 %58311 %129517 %58362 %129517 %58413 %206631 %58464 %129517 %58515 %206634 %58566 %129517 %58617 %129517 %58645 %206638 %58673 %129517 %58701 %129517 %58752 %206642 %58803 %129517 %58854 %129517 %58882 %129517 %58910 %129517 %58938 %129517 %58966 %129517 %58994 %129517 %59022 %129517 %59050 %129517 %59078 %129517 %59106 %129517 %59134 %129517 %59162 %129517 %59190 %129517 %59218 %129517 %59246 %129517 %59274 %129517 %59302 %129517 %59330 %129517 %59358 %129517 %59386 %129517 %59414 %129517 %59442 %129517 %59470 %129517 %59498 %129517 %59526 %129517 %59554 %129517 %59605 %129517 %59656 %129517 %59730 %129517 %59758 %129517 %59786 %129517 %59814 %129517 %59842 %129517 %59870 %129517 %59898 %129517 %59926 %129517 %59954 %129517 %59982 %129517 %60010 %129517 %60038 %129517 %60066 %129517 %60094 %129517 %60122 %129517 %60150 %129517 %60178 %129517 %60206 %129517 %60234 %129517 %60262 %129517 %60290 %129517 %60318 %129517 %60346 %129517 %60374 %129517 %60402 %129517 %60430 %129517 %60481 %129517 %60532 %129517 %60606 %206711 %60634 %206712 %60662 %206713 %60690 %206714 %60718 %206715 %60746 %206716 %60774 %206717 %60802 %206718 %60830 %206719 %60858 %206720 %60886 %206721 %60914 %206722 %60942 %206723 %60970 %206724 %60998 %206725 %61026 %206726 %61054 %206727 %61082 %206728 %61110 %206729 %61138 %206730 %61166 %206731 %61194 %206732 %61222 %206733 %61250 %206734 %61278 %206735 %61306 %206736 %61357 %206737 %61408 %206738 %61482 %129517 %61510 %129517 %61538 %129517 %61566 %129517 %61594 %129517 %61622 %129517 %61650 %129517 %61678 %129517 %61706 %129517 %61734 %129517 %61762 %129517 %61790 %129517 %61818 %129517 %61846 %129517 %61874 %129517 %61902 %129517 %61930 %129517 %61958 %129517 %61986 %129517 %62014 %129517 %62042 %129517 %62070 %129517 %62098 %129517 %62126 %129517 %62154 %129517 %62182 %129517 %62233 %129517 %62284 %129517 %62358 %129517 %62432 %129517 %62506 %129517 %62580 %129517 %62654 %129517 %62728 %129517 %62802 %206789 %62876 %206790 %62950 %206793 %63024 %206795 %63098 %129517 %63172 %129517 %63246 %129517 %63320 %129517 %63394 %129517 %63422 %206809 %63450 %129517 %63478 %129517 %63529 %129517 %63603 %129517 %63654 %129517 %63751 %129517 %63825 %206826 %63876 %129517 %63927 %129517 %63955 %129517 %63998 %129517 %64031 %129517 %64069 %129517 %64112 %129517 %64140 %206835 %64173 %129517 %64211 %129517 %55457 %129517 %64282 %129517 %64310 %129517 %64338 %206843 %64366 %206844 %64394 %129517 %64422 %129517 %64450 %129517 %64507 %129517 %64564 %129517 %55838 %129517 %55854 %129517 %55870 %129517 %55886 %129517 %55892 %129517 %55898 %129517 %55904 %129517 %55910 %129517 %55913 %129517 %55923 %129517 %55940 %129517 %55964 %129517 %55980 %129517 %55996 %129517 %56012 %129517 %56018 %129517 %56024 %129517 %56030 %129517 %56036 %129517 %56039 %129517 %56049 %129517 %56066 %129517 %56090 %129517 %56106 %129517 %56122 %129517 %56138 %129517 %56144 %129517 %56150 %129517 %56156 %129517 %56162 %129517 %56165 %129517 %56175 %129517 %56192 %129517 %56216 %129517 %56232 %129517 %56248 %129517 %56264 %129517 %56270 %129517 %56276 %129517 %56282 %129517 %56288 %129517 %56291 %129517 %56301 %129517 %56318 %206853 %64695 %129517 %56390
-     %206321 = OpPhi %uint %129514 %56475 %129514 %56526 %129514 %56577 %56632 %56628 %56683 %56679 %129514 %56730 %129514 %56781 %129514 %56832 %129514 %56883 %129514 %56934 %56989 %56985 %57040 %57036 %129514 %57087 %129514 %57138 %129514 %57189 %129514 %57240 %129514 %57291 %57346 %57342 %57397 %57393 %129514 %57444 %129514 %57495 %129514 %57546 %129514 %57597 %129514 %57648 %57703 %57699 %57754 %57750 %129514 %57801 %129514 %57852 %129514 %57903 %129514 %57954 %58009 %58005 %129514 %58056 %129514 %58107 %129514 %58158 %129514 %58209 %58264 %58260 %58315 %58311 %129514 %58362 %129514 %58413 %58468 %58464 %129514 %58515 %206380 %58566 %129514 %58617 %129514 %58645 %206384 %58673 %129514 %58701 %129514 %58752 %206388 %58803 %129514 %58854 %129514 %58882 %129514 %58910 %129514 %58938 %129514 %58966 %129514 %58994 %129514 %59022 %129514 %59050 %129514 %59078 %129514 %59106 %129514 %59134 %129514 %59162 %129514 %59190 %129514 %59218 %129514 %59246 %129514 %59274 %129514 %59302 %129514 %59330 %129514 %59358 %129514 %59386 %129514 %59414 %129514 %59442 %129514 %59470 %129514 %59498 %129514 %59526 %129514 %59554 %129514 %59605 %129514 %59656 %129514 %59730 %129514 %59758 %129514 %59786 %129514 %59814 %129514 %59842 %129514 %59870 %129514 %59898 %129514 %59926 %129514 %59954 %129514 %59982 %129514 %60010 %129514 %60038 %129514 %60066 %129514 %60094 %129514 %60122 %129514 %60150 %129514 %60178 %129514 %60206 %129514 %60234 %129514 %60262 %129514 %60290 %129514 %60318 %129514 %60346 %129514 %60374 %129514 %60402 %129514 %60430 %129514 %60481 %129514 %60532 %129514 %60606 %60638 %60634 %60666 %60662 %60694 %60690 %60722 %60718 %60750 %60746 %60778 %60774 %60806 %60802 %60834 %60830 %60862 %60858 %60890 %60886 %60918 %60914 %60946 %60942 %60974 %60970 %61002 %60998 %61030 %61026 %61058 %61054 %61086 %61082 %61114 %61110 %61142 %61138 %61170 %61166 %61198 %61194 %61226 %61222 %61254 %61250 %61282 %61278 %61310 %61306 %61361 %61357 %61412 %61408 %61486 %61482 %129514 %61510 %129514 %61538 %129514 %61566 %129514 %61594 %129514 %61622 %129514 %61650 %129514 %61678 %129514 %61706 %129514 %61734 %129514 %61762 %129514 %61790 %129514 %61818 %129514 %61846 %129514 %61874 %129514 %61902 %129514 %61930 %129514 %61958 %129514 %61986 %129514 %62014 %129514 %62042 %129514 %62070 %129514 %62098 %129514 %62126 %129514 %62154 %129514 %62182 %129514 %62233 %129514 %62284 %129514 %62358 %129514 %62432 %129514 %62506 %129514 %62580 %129514 %62654 %129514 %62728 %129514 %62802 %62880 %62876 %62954 %62950 %63028 %63024 %63102 %63098 %129514 %63172 %129514 %63246 %129514 %63320 %129514 %63394 %129514 %63422 %63454 %63450 %129514 %63478 %129514 %63529 %63607 %63603 %63658 %63654 %129514 %63751 %129514 %63825 %206531 %63876 %129514 %63927 %129514 %63955 %129514 %63998 %64045 %64031 %129514 %64069 %129514 %64112 %129514 %64140 %206539 %64173 %129514 %64211 %129514 %55457 %129514 %64282 %129514 %64310 %129514 %64338 %64370 %64366 %64398 %64394 %129514 %64422 %129514 %64450 %129514 %64507 %129514 %64564 %129514 %55838 %129514 %55854 %129514 %55870 %129514 %55886 %129514 %55892 %129514 %55898 %129514 %55904 %129514 %55910 %129514 %55913 %129514 %55923 %129514 %55940 %129514 %55964 %129514 %55980 %129514 %55996 %129514 %56012 %129514 %56018 %129514 %56024 %129514 %56030 %129514 %56036 %129514 %56039 %129514 %56049 %129514 %56066 %129514 %56090 %129514 %56106 %129514 %56122 %64613 %56138 %64618 %56144 %64623 %56150 %64628 %56156 %56164 %56162 %56174 %56165 %56191 %56175 %56215 %56192 %129514 %56216 %129514 %56232 %129514 %56248 %129514 %56264 %129514 %56270 %129514 %56276 %129514 %56282 %129514 %56288 %129514 %56291 %129514 %56301 %129514 %56318 %206555 %64695 %129514 %56390
-     %138865 = OpPhi %uint %138866 %56475 %129506 %56526 %138869 %56577 %129506 %56628 %138872 %56679 %129506 %56730 %138875 %56781 %138876 %56832 %129506 %56883 %138879 %56934 %129506 %56985 %138882 %57036 %129506 %57087 %138885 %57138 %138886 %57189 %129506 %57240 %138889 %57291 %129506 %57342 %138892 %57393 %129506 %57444 %138895 %57495 %138896 %57546 %129506 %57597 %138899 %57648 %129506 %57699 %138902 %57750 %129506 %57801 %138905 %57852 %138906 %57903 %129506 %57954 %129506 %58005 %129506 %58056 %138913 %58107 %129506 %58158 %138916 %58209 %129506 %58260 %138919 %58311 %129506 %58362 %138922 %58413 %129506 %58464 %129506 %58515 %129506 %58566 %129506 %58617 %129506 %58645 %129506 %58673 %129506 %58701 %129506 %58752 %129506 %58803 %129506 %58854 %138940 %58882 %138941 %58910 %138942 %58938 %138943 %58966 %138944 %58994 %138945 %59022 %138946 %59050 %138947 %59078 %138948 %59106 %138949 %59134 %138950 %59162 %138951 %59190 %138952 %59218 %138953 %59246 %138954 %59274 %138955 %59302 %138956 %59330 %138957 %59358 %138958 %59386 %138959 %59414 %138960 %59442 %138961 %59470 %138962 %59498 %138963 %59526 %138964 %59554 %138965 %59605 %138966 %59656 %138967 %59730 %129506 %59758 %129506 %59786 %129506 %59814 %129506 %59842 %129506 %59870 %129506 %59898 %129506 %59926 %129506 %59954 %129506 %59982 %129506 %60010 %129506 %60038 %129506 %60066 %129506 %60094 %129506 %60122 %129506 %60150 %129506 %60178 %129506 %60206 %129506 %60234 %129506 %60262 %129506 %60290 %129506 %60318 %129506 %60346 %129506 %60374 %129506 %60402 %129506 %60430 %129506 %60481 %129506 %60532 %129506 %60606 %129506 %60634 %129506 %60662 %129506 %60690 %129506 %60718 %129506 %60746 %129506 %60774 %129506 %60802 %129506 %60830 %129506 %60858 %129506 %60886 %129506 %60914 %129506 %60942 %129506 %60970 %129506 %60998 %129506 %61026 %129506 %61054 %129506 %61082 %129506 %61110 %129506 %61138 %129506 %61166 %129506 %61194 %129506 %61222 %129506 %61250 %129506 %61278 %129506 %61306 %129506 %61357 %129506 %61408 %129506 %61482 %129506 %61510 %129506 %61538 %129506 %61566 %129506 %61594 %129506 %61622 %129506 %61650 %129506 %61678 %129506 %61706 %129506 %61734 %129506 %61762 %129506 %61790 %129506 %61818 %129506 %61846 %129506 %61874 %129506 %61902 %129506 %61930 %129506 %61958 %129506 %61986 %129506 %62014 %129506 %62042 %129506 %62070 %129506 %62098 %129506 %62126 %129506 %62154 %129506 %62182 %129506 %62233 %129506 %62284 %129506 %62358 %139064 %62432 %139065 %62506 %129506 %62580 %129506 %62654 %139072 %62728 %139073 %62802 %129506 %62876 %129506 %62950 %139080 %63024 %139081 %63098 %129506 %63172 %129506 %63246 %139088 %63320 %139089 %63394 %129506 %63422 %129506 %63450 %129506 %63478 %139093 %63529 %139094 %63603 %139095 %63654 %139096 %63751 %139097 %63825 %139098 %63876 %129506 %63927 %129506 %63955 %129506 %63998 %129506 %64031 %129506 %64069 %129506 %64112 %129506 %64140 %129506 %64173 %129506 %64211 %139111 %55457 %139112 %64282 %129506 %64310 %129506 %64338 %129506 %64366 %129506 %64394 %129506 %64422 %129506 %64450 %139119 %64507 %139120 %64564 %129506 %55838 %129506 %55854 %129506 %55870 %129506 %55886 %129506 %55892 %129506 %55898 %129506 %55904 %129506 %55910 %129506 %55913 %129506 %55923 %129506 %55940 %129506 %55964 %129506 %55980 %129506 %55996 %129506 %56012 %129506 %56018 %129506 %56024 %129506 %56030 %129506 %56036 %129506 %56039 %129506 %56049 %129506 %56066 %129506 %56090 %129506 %56106 %129506 %56122 %129506 %56138 %129506 %56144 %129506 %56150 %129506 %56156 %129506 %56162 %129506 %56165 %129506 %56175 %129506 %56192 %129506 %56216 %129506 %56232 %129506 %56248 %129506 %56264 %129506 %56270 %129506 %56276 %129506 %56282 %129506 %56288 %129506 %56291 %129506 %56301 %129506 %56318 %139122 %64695 %129506 %56390
-     %138669 = OpPhi %uint %56479 %56475 %129504 %56526 %138672 %56577 %129504 %56628 %138675 %56679 %129504 %56730 %138678 %56781 %56836 %56832 %129504 %56883 %138681 %56934 %129504 %56985 %138684 %57036 %129504 %57087 %138687 %57138 %57193 %57189 %129504 %57240 %138690 %57291 %129504 %57342 %138693 %57393 %129504 %57444 %138696 %57495 %57550 %57546 %129504 %57597 %138699 %57648 %129504 %57699 %138702 %57750 %129504 %57801 %138705 %57852 %57907 %57903 %129504 %57954 %129504 %58005 %129504 %58056 %58111 %58107 %129504 %58158 %138714 %58209 %129504 %58260 %138717 %58311 %129504 %58362 %138720 %58413 %129504 %58464 %58519 %58515 %58570 %58566 %58621 %58617 %58649 %58645 %58677 %58673 %58705 %58701 %58756 %58752 %58807 %58803 %58858 %58854 %58886 %58882 %58914 %58910 %58942 %58938 %58970 %58966 %58998 %58994 %59026 %59022 %59054 %59050 %59082 %59078 %59110 %59106 %59138 %59134 %59166 %59162 %59194 %59190 %59222 %59218 %59250 %59246 %59278 %59274 %59306 %59302 %59334 %59330 %59362 %59358 %59390 %59386 %59418 %59414 %59446 %59442 %59474 %59470 %59502 %59498 %59530 %59526 %59558 %59554 %59609 %59605 %59660 %59656 %59734 %59730 %129504 %59758 %129504 %59786 %129504 %59814 %129504 %59842 %129504 %59870 %129504 %59898 %129504 %59926 %129504 %59954 %129504 %59982 %129504 %60010 %129504 %60038 %129504 %60066 %129504 %60094 %129504 %60122 %129504 %60150 %129504 %60178 %129504 %60206 %129504 %60234 %129504 %60262 %129504 %60290 %129504 %60318 %129504 %60346 %129504 %60374 %129504 %60402 %129504 %60430 %129504 %60481 %129504 %60532 %129504 %60606 %129504 %60634 %129504 %60662 %129504 %60690 %129504 %60718 %129504 %60746 %129504 %60774 %129504 %60802 %129504 %60830 %129504 %60858 %129504 %60886 %129504 %60914 %129504 %60942 %129504 %60970 %129504 %60998 %129504 %61026 %129504 %61054 %129504 %61082 %129504 %61110 %129504 %61138 %129504 %61166 %129504 %61194 %129504 %61222 %129504 %61250 %129504 %61278 %129504 %61306 %129504 %61357 %129504 %61408 %129504 %61482 %129504 %61510 %129504 %61538 %129504 %61566 %129504 %61594 %129504 %61622 %129504 %61650 %129504 %61678 %129504 %61706 %129504 %61734 %129504 %61762 %129504 %61790 %129504 %61818 %129504 %61846 %129504 %61874 %129504 %61902 %129504 %61930 %129504 %61958 %129504 %61986 %129504 %62014 %129504 %62042 %129504 %62070 %129504 %62098 %129504 %62126 %129504 %62154 %129504 %62182 %129504 %62233 %129504 %62284 %129504 %62358 %62436 %62432 %62510 %62506 %129504 %62580 %129504 %62654 %138825 %62728 %138826 %62802 %129504 %62876 %129504 %62950 %138833 %63024 %138834 %63098 %129504 %63172 %129504 %63246 %138841 %63320 %138842 %63394 %129504 %63422 %129504 %63450 %129504 %63478 %138846 %63529 %138847 %63603 %138848 %63654 %138849 %63751 %138850 %63825 %138851 %63876 %129504 %63927 %63974 %63955 %129504 %63998 %129504 %64031 %129504 %64069 %129504 %64112 %64149 %64140 %64187 %64173 %64230 %64211 %64258 %55457 %64286 %64282 %129504 %64310 %129504 %64338 %129504 %64366 %129504 %64394 %129504 %64422 %129504 %64450 %64511 %64507 %64568 %64564 %129504 %55838 %129504 %55854 %129504 %55870 %64573 %55886 %64578 %55892 %64583 %55898 %64588 %55904 %55912 %55910 %55922 %55913 %55939 %55923 %55963 %55940 %129504 %55964 %129504 %55980 %129504 %55996 %129504 %56012 %129504 %56018 %129504 %56024 %129504 %56030 %129504 %56036 %129504 %56039 %129504 %56049 %129504 %56066 %129504 %56090 %129504 %56106 %129504 %56122 %129504 %56138 %129504 %56144 %129504 %56150 %129504 %56156 %129504 %56162 %129504 %56165 %129504 %56175 %129504 %56192 %129504 %56216 %129504 %56232 %129504 %56248 %129504 %56264 %129504 %56270 %129504 %56276 %129504 %56282 %129504 %56288 %129504 %56291 %129504 %56301 %129504 %56318 %64699 %64695 %129504 %56390
-               OpBranch %56399
-      %56399 = OpLabel
-     %212074 = OpPhi %uint %130925 %47968 %212075 %56398
-     %211757 = OpPhi %uint %130923 %47968 %211758 %56398
-     %211440 = OpPhi %uint %130918 %47968 %211441 %56398
-     %211123 = OpPhi %uint %130916 %47968 %211124 %56398
-     %210806 = OpPhi %uint %130911 %47968 %210807 %56398
-     %210489 = OpPhi %uint %130909 %47968 %210490 %56398
-     %208910 = OpPhi %uint %130223 %47968 %208911 %56398
-     %207330 = OpPhi %uint %129549 %47968 %207331 %56398
-     %207088 = OpPhi %uint %129525 %47968 %207089 %56398
-     %206855 = OpPhi %uint %129523 %47968 %206856 %56398
-     %206557 = OpPhi %uint %129517 %47968 %206558 %56398
-     %206320 = OpPhi %uint %129514 %47968 %206321 %56398
-     %138864 = OpPhi %uint %129506 %47968 %138865 %56398
-     %138668 = OpPhi %uint %129504 %47968 %138669 %56398
-      %56401 = OpIAdd %uint %129499 %int_1
-      %56403 = OpIEqual %bool %56401 %uint_8
-               OpSelectionMerge %56417 None
-               OpBranchConditional %56403 %56404 %56417
-      %56404 = OpLabel
-      %56406 = OpIAdd %uint %129500 %int_1
-      %56408 = OpIEqual %bool %56406 %uint_13
-               OpSelectionMerge %56416 None
-               OpBranchConditional %56408 %56409 %56416
-      %56409 = OpLabel
-      %56411 = OpAccessChain %_ptr_Function_uint %46824 %uint_0
-      %56412 = OpLoad %uint %56411
-      %56413 = OpBitwiseAnd %uint %56412 %uint_32768
-      %56414 = OpUGreaterThan %bool %56413 %uint_0
-               OpSelectionMerge %64746 None
-               OpSwitch %uint_0 %64730
-      %64730 = OpLabel
-               OpSelectionMerge %64745 None
-               OpBranchConditional %56414 %64732 %64740
-      %64740 = OpLabel
-      %64742 = OpISub %uint %138668 %int_1
-      %64743 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %64742
-      %64744 = OpLoad %_arr_float_uint_2 %64743
-     %110409 = OpCompositeExtract %float %64744 0
-               OpBranch %64746
-      %64732 = OpLabel
-      %64735 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %138864
-      %64736 = OpLoad %float %64735
-               OpBranch %64746
-      %64745 = OpLabel
-               OpUnreachable
-      %64746 = OpLabel
-     %139124 = OpPhi %float %64736 %64732 %110409 %64740
-               OpBranch %56419
-      %56416 = OpLabel
-               OpBranch %56417
-      %56417 = OpLabel
-     %206316 = OpPhi %uint %129500 %56399 %56406 %56416
-     %270611 = OpSelect %uint %56403 %uint_0 %56401
-               OpBranch %56418
-      %56418 = OpLabel
-               OpBranch %47923
-      %56419 = OpLabel
-     %139446 = OpPhi %float %float_0 %47983 %129508 %64723 %139124 %64746
-      %28858 = OpFAdd %float %28838 %float_9_99999975en05
-      %28859 = OpCompositeConstruct %v3float %28833 %28836 %28858
-      %64753 = OpCompositeConstruct %_arr_v3float_uint_2 %28859 %28859
-      %65858 = OpLoad %_struct_446 %29977
-      %65859 = OpCopyLogical %_struct_443 %65858
-     %108219 = OpCompositeExtract %uint %65859 0
-               OpStore %38490 %64753
-               OpBranch %65863
-      %65863 = OpLabel
-     %143139 = OpPhi %uint %uint_0 %56419 %229981 %74358
-     %143137 = OpPhi %uint %uint_0 %56419 %229664 %74358
-     %143132 = OpPhi %uint %uint_0 %56419 %229347 %74358
-     %143130 = OpPhi %uint %uint_0 %56419 %229030 %74358
-     %143125 = OpPhi %uint %uint_0 %56419 %228713 %74358
-     %143123 = OpPhi %uint %uint_0 %56419 %228396 %74358
-     %141789 = OpPhi %uint %uint_0 %56419 %226817 %74358
-     %140467 = OpPhi %uint %uint_0 %56419 %225237 %74358
-     %140443 = OpPhi %uint %uint_0 %56419 %224995 %74358
-     %140441 = OpPhi %uint %uint_0 %56419 %224762 %74358
-     %140435 = OpPhi %uint %uint_0 %56419 %224464 %74358
-     %140432 = OpPhi %uint %uint_1 %56419 %224227 %74358
-     %140424 = OpPhi %uint %uint_0 %56419 %156910 %74358
-     %140422 = OpPhi %uint %uint_0 %56419 %156714 %74358
-     %140418 = OpPhi %uint %uint_0 %56419 %224223 %74358
-     %140417 = OpPhi %uint %uint_0 %56419 %270612 %74358
-               OpLoopMerge %74359 %74358 None
-               OpBranch %65866
-      %65866 = OpLabel
-      %65868 = OpIEqual %bool %140417 %uint_0
-               OpSelectionMerge %65908 None
-               OpBranchConditional %65868 %65869 %65908
-      %65869 = OpLabel
-      %65873 = OpIAdd %uint %140418 %108219
-      %65874 = OpAccessChain %_ptr_StorageBuffer_v4uint %477 %int_0 %65873
-      %65875 = OpLoad %v4uint %65874
-      %65877 = OpCompositeExtract %uint %65875 0
-      %65878 = OpBitwiseAnd %uint %65877 %uint_65535
-      %65879 = OpAccessChain %_ptr_Function_uint %64764 %int_0
-               OpStore %65879 %65878
-      %65882 = OpShiftRightLogical %uint %65877 %int_16
-      %65883 = OpAccessChain %_ptr_Function_uint %64764 %int_1
-               OpStore %65883 %65882
-      %65885 = OpCompositeExtract %uint %65875 1
-      %65886 = OpBitwiseAnd %uint %65885 %uint_65535
-      %65887 = OpAccessChain %_ptr_Function_uint %64764 %int_2
-               OpStore %65887 %65886
-      %65890 = OpShiftRightLogical %uint %65885 %int_16
-      %65891 = OpAccessChain %_ptr_Function_uint %64764 %int_3
-               OpStore %65891 %65890
-      %65893 = OpCompositeExtract %uint %65875 2
-      %65894 = OpBitwiseAnd %uint %65893 %uint_65535
-      %65895 = OpAccessChain %_ptr_Function_uint %64764 %int_4
-               OpStore %65895 %65894
-      %65898 = OpShiftRightLogical %uint %65893 %int_16
-      %65899 = OpAccessChain %_ptr_Function_uint %64764 %int_5
-               OpStore %65899 %65898
-      %65901 = OpCompositeExtract %uint %65875 3
-      %65902 = OpBitwiseAnd %uint %65901 %uint_65535
-      %65903 = OpAccessChain %_ptr_Function_uint %64764 %int_6
-               OpStore %65903 %65902
-      %65906 = OpShiftRightLogical %uint %65901 %int_16
-      %65907 = OpAccessChain %_ptr_Function_uint %64764 %int_7
-               OpStore %65907 %65906
-               OpBranch %65908
-      %65908 = OpLabel
-      %65910 = OpAccessChain %_ptr_Function_uchar %437 %140418
-      %65911 = OpLoad %uchar %65910
-      %65912 = OpUConvert %uint %65911
-      %65913 = OpBitcast %int %65912
-      %65915 = OpShiftLeftLogical %int %int_1 %140417
-      %65916 = OpBitwiseAnd %int %65913 %65915
-      %65917 = OpSGreaterThan %bool %65916 %int_0
-               OpSelectionMerge %74339 None
-               OpBranchConditional %65917 %65918 %74339
-      %65918 = OpLabel
-      %65920 = OpAccessChain %_ptr_Function_uint %64764 %140417
-      %65921 = OpLoad %uint %65920
-      %65922 = OpBitwiseAnd %uint %65921 %uint_1023
-               OpSelectionMerge %74338 None
-               OpSwitch %65922 %65923 2 %65924 3 %65951 4 %65978 5 %66007 6 %66034 7 %66063 8 %66090 9 %66119 10 %66146 11 %66173 12 %66202 13 %66229 14 %66258 15 %66285 16 %66314 17 %66377 18 %66440 19 %66503 20 %66566 21 %66629 22 %66692 23 %66755 24 %66818 25 %66881 26 %66948 27 %67011 28 %67078 29 %67141 37 %67208 38 %67271 39 %67334 40 %67397 30 %67460 31 %67523 32 %67586 33 %67653 34 %67716 35 %67783 36 %67846 41 %67913 42 %67962 43 %68013 44 %68064 45 %68115 46 %68155 47 %68195 48 %68235 49 %68299 50 %68345 54 %68409 55 %68438 56 %68467 57 %68496 58 %68525 59 %68554 60 %68583 61 %68612 62 %68641 63 %68670 64 %68699 65 %68728 66 %68757 67 %68786 68 %68815 69 %68844 70 %68873 195 %68902 199 %68931 203 %68960 207 %68989 211 %69018 215 %69047 223 %69076 227 %69105 75 %69134 71 %69134 76 %69161 72 %69161 219 %69188 90 %69270 91 %69299 92 %69328 93 %69357 94 %69386 95 %69415 96 %69444 97 %69473 98 %69502 99 %69531 100 %69560 101 %69589 102 %69618 103 %69647 104 %69676 105 %69705 106 %69734 196 %69763 200 %69792 204 %69821 208 %69850 212 %69879 216 %69908 224 %69937 228 %69966 107 %69995 108 %70022 220 %70049 120 %70131 121 %70160 122 %70189 123 %70218 124 %70247 125 %70276 126 %70305 127 %70334 128 %70363 129 %70392 130 %70421 131 %70450 132 %70479 133 %70508 134 %70537 135 %70566 136 %70595 197 %70624 201 %70653 205 %70682 209 %70711 213 %70740 217 %70769 225 %70798 229 %70827 137 %70856 138 %70883 221 %70910 150 %70992 151 %71021 152 %71050 153 %71079 154 %71108 155 %71137 156 %71166 157 %71195 158 %71224 159 %71253 160 %71282 161 %71311 162 %71340 163 %71369 164 %71398 165 %71427 166 %71456 198 %71485 202 %71514 206 %71543 210 %71572 214 %71601 218 %71630 226 %71659 230 %71688 167 %71717 168 %71744 222 %71771 231 %71853 238 %71890 232 %71927 239 %71964 233 %72001 240 %72042 234 %72081 241 %72118 235 %72155 242 %72196 236 %72235 243 %72272 237 %72309 244 %72350 51 %72389 52 %72501 53 %72673 180 %72921 181 %72946 183 %72981 182 %73010 184 %73055 186 %73094 185 %73125 190 %73158 191 %73189 192 %73208 193 %73233 194 %73264 187 %73291 188 %73310 189 %73335 245 %73366 246 %73412 247 %73439 248 %73485 249 %73512 250 %73558 251 %73585 252 %73631 77 %73658 73 %73658 78 %73718 74 %73718 79 %73778 80 %73794 81 %73810 82 %73826 83 %73832 84 %73838 85 %73844 86 %73850 87 %73853 88 %73863 89 %73880 109 %73904 110 %73920 111 %73936 112 %73952 113 %73958 114 %73964 115 %73970 116 %73976 117 %73979 118 %73989 119 %74006 139 %74030 140 %74046 141 %74062 142 %74078 143 %74084 144 %74090 145 %74096 146 %74102 147 %74105 148 %74115 149 %74132 169 %74156 170 %74172 171 %74188 172 %74204 173 %74210 174 %74216 175 %74222 176 %74228 177 %74231 178 %74241 179 %74258 253 %74282 0 %74330 1 %74331 254 %65923
-      %74331 = OpLabel
-      %74334 = OpLoad %uint %65920
-      %74335 = OpBitwiseAnd %uint %74334 %uint_32768
-      %74336 = OpUGreaterThan %bool %74335 %uint_0
-               OpSelectionMerge %82663 None
-               OpSwitch %uint_0 %82647
-      %82647 = OpLabel
-               OpSelectionMerge %82662 None
-               OpBranchConditional %74336 %82649 %82657
-      %82657 = OpLabel
-      %82659 = OpISub %uint %140422 %int_1
-      %82660 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82659
-      %82661 = OpLoad %_arr_float_uint_2 %82660
-     %105569 = OpCompositeExtract %float %82661 0
-               OpBranch %82663
-      %82649 = OpLabel
-      %82652 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %82653 = OpLoad %float %82652
-               OpBranch %82663
-      %82662 = OpLabel
-               OpUnreachable
-      %82663 = OpLabel
-     %140426 = OpPhi %float %82653 %82649 %105569 %82657
-               OpBranch %74359
-      %74330 = OpLabel
-               OpBranch %74338
-      %74282 = OpLabel
-      %74285 = OpLoad %uint %65920
-      %74286 = OpBitwiseAnd %uint %74285 %uint_32768
-      %74287 = OpUGreaterThan %bool %74286 %uint_0
-               OpSelectionMerge %82612 None
-               OpSwitch %uint_0 %82596
-      %82596 = OpLabel
-               OpSelectionMerge %82611 None
-               OpBranchConditional %74287 %82598 %82606
-      %82606 = OpLabel
-      %82608 = OpISub %uint %140422 %int_1
-      %82609 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82608
-      %82610 = OpLoad %_arr_float_uint_2 %82609
-     %105587 = OpCompositeExtract %float %82610 0
-     %105588 = OpCompositeExtract %float %82610 1
-               OpBranch %82612
-      %82598 = OpLabel
-      %82600 = OpIAdd %uint %140424 %int_1
-      %82601 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %82602 = OpLoad %float %82601
-               OpBranch %82612
-      %82611 = OpLabel
-               OpUnreachable
-      %82612 = OpLabel
-     %157168 = OpPhi %uint %82600 %82598 %140424 %82606
-     %140439 = OpPhi %uint %140422 %82598 %82608 %82606
-     %140428 = OpPhi %float %82602 %82598 %105587 %82606
-     %140427 = OpPhi %float %82602 %82598 %105588 %82606
-      %74291 = OpLoad %uint %65920
-      %74292 = OpBitwiseAnd %uint %74291 %uint_16384
-      %74293 = OpUGreaterThan %bool %74292 %uint_0
-               OpSelectionMerge %82635 None
-               OpSwitch %uint_0 %82619
-      %82619 = OpLabel
-               OpSelectionMerge %82634 None
-               OpBranchConditional %74293 %82621 %82629
-      %82629 = OpLabel
-      %82631 = OpISub %uint %140432 %int_1
-      %82632 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %82631
-      %82633 = OpLoad %_arr_v3float_uint_2 %82632
-     %105578 = OpCompositeExtract %v3float %82633 0
-     %105579 = OpCompositeExtract %v3float %82633 1
-               OpBranch %82635
-      %82621 = OpLabel
-      %82623 = OpIAdd %uint %140435 %int_1
-      %82624 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %82625 = OpLoad %v3float %82624
-               OpBranch %82635
-      %82634 = OpLabel
-               OpUnreachable
-      %82635 = OpLabel
-     %224760 = OpPhi %uint %82623 %82621 %140435 %82629
-     %224462 = OpPhi %uint %140432 %82621 %82631 %82629
-     %140437 = OpPhi %v3float %82625 %82621 %105578 %82629
-     %140436 = OpPhi %v3float %82625 %82621 %105579 %82629
-      %74297 = OpFOrdGreaterThan %v3bool %140436 %123
-      %74300 = OpFOrdLessThan %v3bool %140437 %123
-      %74301 = OpSelect %v3bool %74300 %74297 %3323
-      %74304 = OpExtInst %v3float %1 FAbs %140437
-      %74307 = OpExtInst %v3float %1 FAbs %140436
-      %74308 = OpExtInst %v3float %1 FMin %74304 %74307
-      %74310 = OpSelect %v3float %74301 %123 %74308
-      %74311 = OpExtInst %float %1 Length %74310
-      %74314 = OpFSub %float %74311 %140427
-      %74322 = OpExtInst %v3float %1 FMax %74304 %74307
-      %74323 = OpExtInst %float %1 Length %74322
-      %74326 = OpFSub %float %74323 %140428
-     %110404 = OpCompositeConstruct %_arr_float_uint_2 %74314 %74326
-      %82639 = OpIAdd %uint %140439 %int_1
-      %82641 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140439
-               OpStore %82641 %110404
-               OpBranch %74338
-      %74258 = OpLabel
-      %74260 = OpISub %uint %140441 %uint_4
-      %74262 = OpISub %uint %140441 %uint_3
-      %74263 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74262
-      %74264 = OpLoad %_arr_v4float_uint_2 %74263
-      %74265 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74260
-               OpStore %74265 %74264
-      %74269 = OpISub %uint %140441 %uint_2
-      %74270 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74269
-      %74271 = OpLoad %_arr_v4float_uint_2 %74270
-               OpStore %74263 %74271
-      %74276 = OpISub %uint %140441 %uint_1
-      %74277 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74276
-      %74278 = OpLoad %_arr_v4float_uint_2 %74277
-               OpStore %74270 %74278
-      %74281 = OpISub %uint %140441 %int_1
-               OpBranch %74338
-      %74241 = OpLabel
-      %74243 = OpISub %uint %140441 %uint_3
-      %74245 = OpISub %uint %140441 %uint_2
-      %74246 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74245
-      %74247 = OpLoad %_arr_v4float_uint_2 %74246
-      %74248 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74243
-               OpStore %74248 %74247
-      %74252 = OpISub %uint %140441 %uint_1
-      %74253 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74252
-      %74254 = OpLoad %_arr_v4float_uint_2 %74253
-               OpStore %74246 %74254
-      %74257 = OpISub %uint %140441 %int_1
-               OpBranch %74338
-      %74231 = OpLabel
-      %74233 = OpISub %uint %140441 %uint_2
-      %74235 = OpISub %uint %140441 %uint_1
-      %74236 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74235
-      %74237 = OpLoad %_arr_v4float_uint_2 %74236
-      %74238 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74233
-               OpStore %74238 %74237
-      %74240 = OpISub %uint %140441 %int_1
-               OpBranch %74338
-      %74228 = OpLabel
-      %74230 = OpISub %uint %140441 %int_1
-               OpBranch %74338
-      %74222 = OpLabel
-      %74224 = OpISub %uint %140441 %uint_4
-      %74225 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74224
-      %74226 = OpLoad %_arr_v4float_uint_2 %74225
-      %82588 = OpIAdd %uint %140441 %int_1
-      %82590 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %140441
-               OpStore %82590 %74226
-               OpBranch %74338
-      %74216 = OpLabel
-      %74218 = OpISub %uint %140441 %uint_3
-      %74219 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74218
-      %74220 = OpLoad %_arr_v4float_uint_2 %74219
-      %82583 = OpIAdd %uint %140441 %int_1
-      %82585 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %140441
-               OpStore %82585 %74220
-               OpBranch %74338
-      %74210 = OpLabel
-      %74212 = OpISub %uint %140441 %uint_2
-      %74213 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74212
-      %74214 = OpLoad %_arr_v4float_uint_2 %74213
-      %82578 = OpIAdd %uint %140441 %int_1
-      %82580 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %140441
-               OpStore %82580 %74214
-               OpBranch %74338
-      %74204 = OpLabel
-      %74206 = OpISub %uint %140441 %uint_1
-      %74207 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74206
-      %74208 = OpLoad %_arr_v4float_uint_2 %74207
-      %82573 = OpIAdd %uint %140441 %int_1
-      %82575 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %140441
-               OpStore %82575 %74208
-               OpBranch %74338
-      %74188 = OpLabel
-      %74190 = OpISub %uint %140441 %uint_1
-      %74191 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74190
-      %74192 = OpLoad %_arr_v4float_uint_2 %74191
-      %74196 = OpISub %uint %140441 %uint_4
-      %74197 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74196
-      %74198 = OpLoad %_arr_v4float_uint_2 %74197
-               OpStore %74191 %74198
-               OpStore %74197 %74192
-               OpBranch %74338
-      %74172 = OpLabel
-      %74174 = OpISub %uint %140441 %uint_1
-      %74175 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74174
-      %74176 = OpLoad %_arr_v4float_uint_2 %74175
-      %74180 = OpISub %uint %140441 %uint_3
-      %74181 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74180
-      %74182 = OpLoad %_arr_v4float_uint_2 %74181
-               OpStore %74175 %74182
-               OpStore %74181 %74176
-               OpBranch %74338
-      %74156 = OpLabel
-      %74158 = OpISub %uint %140441 %uint_1
-      %74159 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74158
-      %74160 = OpLoad %_arr_v4float_uint_2 %74159
-      %74164 = OpISub %uint %140441 %uint_2
-      %74165 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74164
-      %74166 = OpLoad %_arr_v4float_uint_2 %74165
-               OpStore %74159 %74166
-               OpStore %74165 %74160
-               OpBranch %74338
-      %74132 = OpLabel
-      %74134 = OpISub %uint %140432 %uint_4
-      %74136 = OpISub %uint %140432 %uint_3
-      %74137 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74136
-      %74138 = OpLoad %_arr_v3float_uint_2 %74137
-      %74139 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74134
-               OpStore %74139 %74138
-      %74143 = OpISub %uint %140432 %uint_2
-      %74144 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74143
-      %74145 = OpLoad %_arr_v3float_uint_2 %74144
-               OpStore %74137 %74145
-      %74150 = OpISub %uint %140432 %uint_1
-      %74151 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74150
-      %74152 = OpLoad %_arr_v3float_uint_2 %74151
-               OpStore %74144 %74152
-      %74155 = OpISub %uint %140432 %int_1
-               OpBranch %74338
-      %74115 = OpLabel
-      %74117 = OpISub %uint %140432 %uint_3
-      %74119 = OpISub %uint %140432 %uint_2
-      %74120 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74119
-      %74121 = OpLoad %_arr_v3float_uint_2 %74120
-      %74122 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74117
-               OpStore %74122 %74121
-      %74126 = OpISub %uint %140432 %uint_1
-      %74127 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74126
-      %74128 = OpLoad %_arr_v3float_uint_2 %74127
-               OpStore %74120 %74128
-      %74131 = OpISub %uint %140432 %int_1
-               OpBranch %74338
-      %74105 = OpLabel
-      %74107 = OpISub %uint %140432 %uint_2
-      %74109 = OpISub %uint %140432 %uint_1
-      %74110 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74109
-      %74111 = OpLoad %_arr_v3float_uint_2 %74110
-      %74112 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74107
-               OpStore %74112 %74111
-      %74114 = OpISub %uint %140432 %int_1
-               OpBranch %74338
-      %74102 = OpLabel
-      %74104 = OpISub %uint %140432 %int_1
-               OpBranch %74338
-      %74096 = OpLabel
-      %74098 = OpISub %uint %140432 %uint_4
-      %74099 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74098
-      %74100 = OpLoad %_arr_v3float_uint_2 %74099
-      %82568 = OpIAdd %uint %140432 %int_1
-      %82570 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %140432
-               OpStore %82570 %74100
-               OpBranch %74338
-      %74090 = OpLabel
-      %74092 = OpISub %uint %140432 %uint_3
-      %74093 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74092
-      %74094 = OpLoad %_arr_v3float_uint_2 %74093
-      %82563 = OpIAdd %uint %140432 %int_1
-      %82565 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %140432
-               OpStore %82565 %74094
-               OpBranch %74338
-      %74084 = OpLabel
-      %74086 = OpISub %uint %140432 %uint_2
-      %74087 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74086
-      %74088 = OpLoad %_arr_v3float_uint_2 %74087
-      %82558 = OpIAdd %uint %140432 %int_1
-      %82560 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %140432
-               OpStore %82560 %74088
-               OpBranch %74338
-      %74078 = OpLabel
-      %74080 = OpISub %uint %140432 %uint_1
-      %74081 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74080
-      %74082 = OpLoad %_arr_v3float_uint_2 %74081
-      %82553 = OpIAdd %uint %140432 %int_1
-      %82555 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %140432
-               OpStore %82555 %74082
-               OpBranch %74338
-      %74062 = OpLabel
-      %74064 = OpISub %uint %140432 %uint_1
-      %74065 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74064
-      %74066 = OpLoad %_arr_v3float_uint_2 %74065
-      %74070 = OpISub %uint %140432 %uint_4
-      %74071 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74070
-      %74072 = OpLoad %_arr_v3float_uint_2 %74071
-               OpStore %74065 %74072
-               OpStore %74071 %74066
-               OpBranch %74338
-      %74046 = OpLabel
-      %74048 = OpISub %uint %140432 %uint_1
-      %74049 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74048
-      %74050 = OpLoad %_arr_v3float_uint_2 %74049
-      %74054 = OpISub %uint %140432 %uint_3
-      %74055 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74054
-      %74056 = OpLoad %_arr_v3float_uint_2 %74055
-               OpStore %74049 %74056
-               OpStore %74055 %74050
-               OpBranch %74338
-      %74030 = OpLabel
-      %74032 = OpISub %uint %140432 %uint_1
-      %74033 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74032
-      %74034 = OpLoad %_arr_v3float_uint_2 %74033
-      %74038 = OpISub %uint %140432 %uint_2
-      %74039 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74038
-      %74040 = OpLoad %_arr_v3float_uint_2 %74039
-               OpStore %74033 %74040
-               OpStore %74039 %74034
-               OpBranch %74338
-      %74006 = OpLabel
-      %74008 = OpISub %uint %140443 %uint_4
-      %74010 = OpISub %uint %140443 %uint_3
-      %74011 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %74010
-      %74012 = OpLoad %_arr_v2float_uint_2 %74011
-      %74013 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %74008
-               OpStore %74013 %74012
-      %74017 = OpISub %uint %140443 %uint_2
-      %74018 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %74017
-      %74019 = OpLoad %_arr_v2float_uint_2 %74018
-               OpStore %74011 %74019
-      %74024 = OpISub %uint %140443 %uint_1
-      %74025 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %74024
-      %74026 = OpLoad %_arr_v2float_uint_2 %74025
-               OpStore %74018 %74026
-      %74029 = OpISub %uint %140443 %int_1
-               OpBranch %74338
-      %73989 = OpLabel
-      %73991 = OpISub %uint %140443 %uint_3
-      %73993 = OpISub %uint %140443 %uint_2
-      %73994 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73993
-      %73995 = OpLoad %_arr_v2float_uint_2 %73994
-      %73996 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73991
-               OpStore %73996 %73995
-      %74000 = OpISub %uint %140443 %uint_1
-      %74001 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %74000
-      %74002 = OpLoad %_arr_v2float_uint_2 %74001
-               OpStore %73994 %74002
-      %74005 = OpISub %uint %140443 %int_1
-               OpBranch %74338
-      %73979 = OpLabel
-      %73981 = OpISub %uint %140443 %uint_2
-      %73983 = OpISub %uint %140443 %uint_1
-      %73984 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73983
-      %73985 = OpLoad %_arr_v2float_uint_2 %73984
-      %73986 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73981
-               OpStore %73986 %73985
-      %73988 = OpISub %uint %140443 %int_1
-               OpBranch %74338
-      %73976 = OpLabel
-      %73978 = OpISub %uint %140443 %int_1
-               OpBranch %74338
-      %73970 = OpLabel
-      %73972 = OpISub %uint %140443 %uint_4
-      %73973 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73972
-      %73974 = OpLoad %_arr_v2float_uint_2 %73973
-      %82548 = OpIAdd %uint %140443 %int_1
-      %82550 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %140443
-               OpStore %82550 %73974
-               OpBranch %74338
-      %73964 = OpLabel
-      %73966 = OpISub %uint %140443 %uint_3
-      %73967 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73966
-      %73968 = OpLoad %_arr_v2float_uint_2 %73967
-      %82543 = OpIAdd %uint %140443 %int_1
-      %82545 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %140443
-               OpStore %82545 %73968
-               OpBranch %74338
-      %73958 = OpLabel
-      %73960 = OpISub %uint %140443 %uint_2
-      %73961 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73960
-      %73962 = OpLoad %_arr_v2float_uint_2 %73961
-      %82538 = OpIAdd %uint %140443 %int_1
-      %82540 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %140443
-               OpStore %82540 %73962
-               OpBranch %74338
-      %73952 = OpLabel
-      %73954 = OpISub %uint %140443 %uint_1
-      %73955 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73954
-      %73956 = OpLoad %_arr_v2float_uint_2 %73955
-      %82533 = OpIAdd %uint %140443 %int_1
-      %82535 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %140443
-               OpStore %82535 %73956
-               OpBranch %74338
-      %73936 = OpLabel
-      %73938 = OpISub %uint %140443 %uint_1
-      %73939 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73938
-      %73940 = OpLoad %_arr_v2float_uint_2 %73939
-      %73944 = OpISub %uint %140443 %uint_4
-      %73945 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73944
-      %73946 = OpLoad %_arr_v2float_uint_2 %73945
-               OpStore %73939 %73946
-               OpStore %73945 %73940
-               OpBranch %74338
-      %73920 = OpLabel
-      %73922 = OpISub %uint %140443 %uint_1
-      %73923 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73922
-      %73924 = OpLoad %_arr_v2float_uint_2 %73923
-      %73928 = OpISub %uint %140443 %uint_3
-      %73929 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73928
-      %73930 = OpLoad %_arr_v2float_uint_2 %73929
-               OpStore %73923 %73930
-               OpStore %73929 %73924
-               OpBranch %74338
-      %73904 = OpLabel
-      %73906 = OpISub %uint %140443 %uint_1
-      %73907 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73906
-      %73908 = OpLoad %_arr_v2float_uint_2 %73907
-      %73912 = OpISub %uint %140443 %uint_2
-      %73913 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %73912
-      %73914 = OpLoad %_arr_v2float_uint_2 %73913
-               OpStore %73907 %73914
-               OpStore %73913 %73908
-               OpBranch %74338
-      %73880 = OpLabel
-      %73882 = OpISub %uint %140422 %uint_4
-      %73884 = OpISub %uint %140422 %uint_3
-      %73885 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73884
-      %73886 = OpLoad %_arr_float_uint_2 %73885
-      %73887 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73882
-               OpStore %73887 %73886
-      %73891 = OpISub %uint %140422 %uint_2
-      %73892 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73891
-      %73893 = OpLoad %_arr_float_uint_2 %73892
-               OpStore %73885 %73893
-      %73898 = OpISub %uint %140422 %uint_1
-      %73899 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73898
-      %73900 = OpLoad %_arr_float_uint_2 %73899
-               OpStore %73892 %73900
-      %73903 = OpISub %uint %140422 %int_1
-               OpBranch %74338
-      %73863 = OpLabel
-      %73865 = OpISub %uint %140422 %uint_3
-      %73867 = OpISub %uint %140422 %uint_2
-      %73868 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73867
-      %73869 = OpLoad %_arr_float_uint_2 %73868
-      %73870 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73865
-               OpStore %73870 %73869
-      %73874 = OpISub %uint %140422 %uint_1
-      %73875 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73874
-      %73876 = OpLoad %_arr_float_uint_2 %73875
-               OpStore %73868 %73876
-      %73879 = OpISub %uint %140422 %int_1
-               OpBranch %74338
-      %73853 = OpLabel
-      %73855 = OpISub %uint %140422 %uint_2
-      %73857 = OpISub %uint %140422 %uint_1
-      %73858 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73857
-      %73859 = OpLoad %_arr_float_uint_2 %73858
-      %73860 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73855
-               OpStore %73860 %73859
-      %73862 = OpISub %uint %140422 %int_1
-               OpBranch %74338
-      %73850 = OpLabel
-      %73852 = OpISub %uint %140422 %int_1
-               OpBranch %74338
-      %73844 = OpLabel
-      %73846 = OpISub %uint %140422 %uint_4
-      %73847 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73846
-      %73848 = OpLoad %_arr_float_uint_2 %73847
-      %82528 = OpIAdd %uint %140422 %int_1
-      %82530 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %82530 %73848
-               OpBranch %74338
-      %73838 = OpLabel
-      %73840 = OpISub %uint %140422 %uint_3
-      %73841 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73840
-      %73842 = OpLoad %_arr_float_uint_2 %73841
-      %82523 = OpIAdd %uint %140422 %int_1
-      %82525 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %82525 %73842
-               OpBranch %74338
-      %73832 = OpLabel
-      %73834 = OpISub %uint %140422 %uint_2
-      %73835 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73834
-      %73836 = OpLoad %_arr_float_uint_2 %73835
-      %82518 = OpIAdd %uint %140422 %int_1
-      %82520 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %82520 %73836
-               OpBranch %74338
-      %73826 = OpLabel
-      %73828 = OpISub %uint %140422 %uint_1
-      %73829 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73828
-      %73830 = OpLoad %_arr_float_uint_2 %73829
-      %82513 = OpIAdd %uint %140422 %int_1
-      %82515 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %82515 %73830
-               OpBranch %74338
-      %73810 = OpLabel
-      %73812 = OpISub %uint %140422 %uint_1
-      %73813 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73812
-      %73814 = OpLoad %_arr_float_uint_2 %73813
-      %73818 = OpISub %uint %140422 %uint_4
-      %73819 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73818
-      %73820 = OpLoad %_arr_float_uint_2 %73819
-               OpStore %73813 %73820
-               OpStore %73819 %73814
-               OpBranch %74338
-      %73794 = OpLabel
-      %73796 = OpISub %uint %140422 %uint_1
-      %73797 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73796
-      %73798 = OpLoad %_arr_float_uint_2 %73797
-      %73802 = OpISub %uint %140422 %uint_3
-      %73803 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73802
-      %73804 = OpLoad %_arr_float_uint_2 %73803
-               OpStore %73797 %73804
-               OpStore %73803 %73798
-               OpBranch %74338
-      %73778 = OpLabel
-      %73780 = OpISub %uint %140422 %uint_1
-      %73781 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73780
-      %73782 = OpLoad %_arr_float_uint_2 %73781
-      %73786 = OpISub %uint %140422 %uint_2
-      %73787 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %73786
-      %73788 = OpLoad %_arr_float_uint_2 %73787
-               OpStore %73781 %73788
-               OpStore %73787 %73782
-               OpBranch %74338
-      %73718 = OpLabel
-      %82457 = OpIAdd %uint %140424 %int_1
-      %82458 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %82459 = OpLoad %float %82458
-      %73722 = OpLoad %uint %65920
-      %73723 = OpBitwiseAnd %uint %73722 %uint_32768
-      %73724 = OpUGreaterThan %bool %73723 %uint_0
-               OpSelectionMerge %82481 None
-               OpSwitch %uint_0 %82465
-      %82465 = OpLabel
-               OpSelectionMerge %82480 None
-               OpBranchConditional %73724 %82467 %82475
-      %82475 = OpLabel
-      %82477 = OpISub %uint %140422 %int_1
-      %82478 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82477
-      %82479 = OpLoad %_arr_float_uint_2 %82478
-     %105605 = OpCompositeExtract %float %82479 0
-     %105606 = OpCompositeExtract %float %82479 1
-               OpBranch %82481
-      %82467 = OpLabel
-      %82469 = OpIAdd %uint %140424 %int_2
-      %82470 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %82457
-      %82471 = OpLoad %float %82470
-               OpBranch %82481
-      %82480 = OpLabel
-               OpUnreachable
-      %82481 = OpLabel
-     %140451 = OpPhi %uint %82469 %82467 %82457 %82475
-     %140450 = OpPhi %uint %140422 %82467 %82477 %82475
-     %140448 = OpPhi %float %82471 %82467 %105605 %82475
-     %140447 = OpPhi %float %82471 %82467 %105606 %82475
-      %73728 = OpLoad %uint %65920
-      %73729 = OpBitwiseAnd %uint %73728 %uint_16384
-      %73730 = OpUGreaterThan %bool %73729 %uint_0
-               OpSelectionMerge %82504 None
-               OpSwitch %uint_0 %82488
-      %82488 = OpLabel
-               OpSelectionMerge %82503 None
-               OpBranchConditional %73730 %82490 %82498
-      %82498 = OpLabel
-      %82500 = OpISub %uint %140450 %int_1
-      %82501 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82500
-      %82502 = OpLoad %_arr_float_uint_2 %82501
-     %105596 = OpCompositeExtract %float %82502 0
-     %105597 = OpCompositeExtract %float %82502 1
-               OpBranch %82504
-      %82490 = OpLabel
-      %82492 = OpIAdd %uint %140451 %int_1
-      %82493 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140451
-      %82494 = OpLoad %float %82493
-               OpBranch %82504
-      %82503 = OpLabel
-               OpUnreachable
-      %82504 = OpLabel
-     %157166 = OpPhi %uint %82492 %82490 %140451 %82498
-     %140454 = OpPhi %uint %140450 %82490 %82500 %82498
-     %140453 = OpPhi %float %82494 %82490 %105596 %82498
-     %140452 = OpPhi %float %82494 %82490 %105597 %82498
-      %73737 = OpFSub %float %140448 %140453
-      %73738 = OpExtInst %float %1 FAbs %73737
-      %73739 = OpFSub %float %82459 %73738
-      %73740 = OpExtInst %float %1 FMax %73739 %float_0
-      %73746 = OpFSub %float %140447 %140452
-      %73747 = OpExtInst %float %1 FAbs %73746
-      %73748 = OpFSub %float %82459 %73747
-      %73749 = OpExtInst %float %1 FMax %73748 %float_0
-      %73754 = OpExtInst %float %1 FMax %140448 %140453
-      %73757 = OpFMul %float %73740 %73740
-      %73758 = OpFMul %float %73757 %float_0_25
-      %73760 = OpFDiv %float %73758 %82459
-      %73761 = OpFAdd %float %73754 %73760
-      %73766 = OpExtInst %float %1 FMax %140447 %140452
-      %73769 = OpFMul %float %73749 %73749
-      %73770 = OpFMul %float %73769 %float_0_25
-      %73772 = OpFDiv %float %73770 %82459
-      %73773 = OpFAdd %float %73766 %73772
-      %73776 = OpCompositeConstruct %_arr_float_uint_2 %73761 %73773
-      %82508 = OpIAdd %uint %140454 %int_1
-      %82510 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140454
-               OpStore %82510 %73776
-               OpBranch %74338
-      %73658 = OpLabel
-      %82400 = OpIAdd %uint %140424 %int_1
-      %82401 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %82402 = OpLoad %float %82401
-      %73662 = OpLoad %uint %65920
-      %73663 = OpBitwiseAnd %uint %73662 %uint_32768
-      %73664 = OpUGreaterThan %bool %73663 %uint_0
-               OpSelectionMerge %82424 None
-               OpSwitch %uint_0 %82408
-      %82408 = OpLabel
-               OpSelectionMerge %82423 None
-               OpBranchConditional %73664 %82410 %82418
-      %82418 = OpLabel
-      %82420 = OpISub %uint %140422 %int_1
-      %82421 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82420
-      %82422 = OpLoad %_arr_float_uint_2 %82421
-     %105623 = OpCompositeExtract %float %82422 0
-     %105624 = OpCompositeExtract %float %82422 1
-               OpBranch %82424
-      %82410 = OpLabel
-      %82412 = OpIAdd %uint %140424 %int_2
-      %82413 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %82400
-      %82414 = OpLoad %float %82413
-               OpBranch %82424
-      %82423 = OpLabel
-               OpUnreachable
-      %82424 = OpLabel
-     %140462 = OpPhi %uint %82412 %82410 %82400 %82418
-     %140461 = OpPhi %uint %140422 %82410 %82420 %82418
-     %140459 = OpPhi %float %82414 %82410 %105623 %82418
-     %140458 = OpPhi %float %82414 %82410 %105624 %82418
-      %73668 = OpLoad %uint %65920
-      %73669 = OpBitwiseAnd %uint %73668 %uint_16384
-      %73670 = OpUGreaterThan %bool %73669 %uint_0
-               OpSelectionMerge %82447 None
-               OpSwitch %uint_0 %82431
-      %82431 = OpLabel
-               OpSelectionMerge %82446 None
-               OpBranchConditional %73670 %82433 %82441
-      %82441 = OpLabel
-      %82443 = OpISub %uint %140461 %int_1
-      %82444 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82443
-      %82445 = OpLoad %_arr_float_uint_2 %82444
-     %105614 = OpCompositeExtract %float %82445 0
-     %105615 = OpCompositeExtract %float %82445 1
-               OpBranch %82447
-      %82433 = OpLabel
-      %82435 = OpIAdd %uint %140462 %int_1
-      %82436 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140462
-      %82437 = OpLoad %float %82436
-               OpBranch %82447
-      %82446 = OpLabel
-               OpUnreachable
-      %82447 = OpLabel
-     %157165 = OpPhi %uint %82435 %82433 %140462 %82441
-     %140465 = OpPhi %uint %140461 %82433 %82443 %82441
-     %140464 = OpPhi %float %82437 %82433 %105614 %82441
-     %140463 = OpPhi %float %82437 %82433 %105615 %82441
-      %73677 = OpFSub %float %140459 %140464
-      %73678 = OpExtInst %float %1 FAbs %73677
-      %73679 = OpFSub %float %82402 %73678
-      %73680 = OpExtInst %float %1 FMax %73679 %float_0
-      %73686 = OpFSub %float %140458 %140463
-      %73687 = OpExtInst %float %1 FAbs %73686
-      %73688 = OpFSub %float %82402 %73687
-      %73689 = OpExtInst %float %1 FMax %73688 %float_0
-      %73694 = OpExtInst %float %1 FMin %140459 %140464
-      %73697 = OpFMul %float %73680 %73680
-      %73698 = OpFMul %float %73697 %float_0_25
-      %73700 = OpFDiv %float %73698 %82402
-      %73701 = OpFSub %float %73694 %73700
-      %73706 = OpExtInst %float %1 FMin %140458 %140463
-      %73709 = OpFMul %float %73689 %73689
-      %73710 = OpFMul %float %73709 %float_0_25
-      %73712 = OpFDiv %float %73710 %82402
-      %73713 = OpFSub %float %73706 %73712
-      %73716 = OpCompositeConstruct %_arr_float_uint_2 %73701 %73713
-      %82451 = OpIAdd %uint %140465 %int_1
-      %82453 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140465
-               OpStore %82453 %73716
-               OpBranch %74338
-      %73631 = OpLabel
-      %73634 = OpLoad %uint %65920
-      %73635 = OpBitwiseAnd %uint %73634 %uint_32768
-      %73636 = OpUGreaterThan %bool %73635 %uint_0
-               OpSelectionMerge %82390 None
-               OpSwitch %uint_0 %82374
-      %82374 = OpLabel
-               OpSelectionMerge %82389 None
-               OpBranchConditional %73636 %82376 %82384
-      %82384 = OpLabel
-      %82386 = OpISub %uint %140441 %int_1
-      %82387 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %82386
-      %82388 = OpLoad %_arr_v4float_uint_2 %82387
-     %105633 = OpCompositeExtract %v4float %82388 1
-               OpBranch %82390
-      %82376 = OpLabel
-      %82378 = OpIAdd %uint %140467 %int_1
-      %82379 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %82380 = OpLoad %v4float %82379
-               OpBranch %82390
-      %82389 = OpLabel
-               OpUnreachable
-      %82390 = OpLabel
-     %225527 = OpPhi %uint %82378 %82376 %140467 %82384
-     %141124 = OpPhi %uint %140441 %82376 %82386 %82384
-     %140468 = OpPhi %v4float %82380 %82376 %105633 %82384
-      %73651 = OpFMul %v4float %140468 %140468
-      %73654 = OpFMul %v4float %73651 %140468
-     %110375 = OpCompositeConstruct %_arr_v4float_uint_2 %73654 %126085
-      %82394 = OpIAdd %uint %141124 %int_1
-      %82396 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %141124
-               OpStore %82396 %110375
-               OpBranch %74338
-      %73585 = OpLabel
-      %73588 = OpLoad %uint %65920
-      %73589 = OpBitwiseAnd %uint %73588 %uint_32768
-      %73590 = OpUGreaterThan %bool %73589 %uint_0
-               OpSelectionMerge %82362 None
-               OpSwitch %uint_0 %82346
-      %82346 = OpLabel
-               OpSelectionMerge %82361 None
-               OpBranchConditional %73590 %82348 %82356
-      %82356 = OpLabel
-      %82358 = OpISub %uint %140441 %int_1
-      %82359 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %82358
-      %82360 = OpLoad %_arr_v4float_uint_2 %82359
-     %105641 = OpCompositeExtract %v4float %82360 0
-     %105642 = OpCompositeExtract %v4float %82360 1
-               OpBranch %82362
-      %82348 = OpLabel
-      %82350 = OpIAdd %uint %140467 %int_1
-      %82351 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %82352 = OpLoad %v4float %82351
-               OpBranch %82362
-      %82361 = OpLabel
-               OpUnreachable
-      %82362 = OpLabel
-     %225526 = OpPhi %uint %82350 %82348 %140467 %82356
-     %141127 = OpPhi %uint %140441 %82348 %82358 %82356
-     %141126 = OpPhi %v4float %82352 %82348 %105641 %82356
-     %141125 = OpPhi %v4float %82352 %82348 %105642 %82356
-      %73596 = OpFOrdGreaterThan %v4bool %141125 %3375
-      %73600 = OpFOrdLessThan %v4bool %141126 %3375
-      %73601 = OpSelect %v4bool %73600 %73596 %3373
-      %73606 = OpFMul %v4float %141126 %141126
-      %73611 = OpFMul %v4float %141125 %141125
-      %73612 = OpExtInst %v4float %1 FMin %73606 %73611
-      %73615 = OpSelect %v4float %73601 %3375 %73612
-      %73627 = OpExtInst %v4float %1 FMax %73606 %73611
-     %110366 = OpCompositeConstruct %_arr_v4float_uint_2 %73615 %73627
-      %82366 = OpIAdd %uint %141127 %int_1
-      %82368 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %141127
-               OpStore %82368 %110366
-               OpBranch %74338
-      %73558 = OpLabel
-      %73561 = OpLoad %uint %65920
-      %73562 = OpBitwiseAnd %uint %73561 %uint_32768
-      %73563 = OpUGreaterThan %bool %73562 %uint_0
-               OpSelectionMerge %82334 None
-               OpSwitch %uint_0 %82318
-      %82318 = OpLabel
-               OpSelectionMerge %82333 None
-               OpBranchConditional %73563 %82320 %82328
-      %82328 = OpLabel
-      %82330 = OpISub %uint %140432 %int_1
-      %82331 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %82330
-      %82332 = OpLoad %_arr_v3float_uint_2 %82331
-     %105651 = OpCompositeExtract %v3float %82332 1
-               OpBranch %82334
-      %82320 = OpLabel
-      %82322 = OpIAdd %uint %140435 %int_1
-      %82323 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %82324 = OpLoad %v3float %82323
-               OpBranch %82334
-      %82333 = OpLabel
-               OpUnreachable
-      %82334 = OpLabel
-     %224751 = OpPhi %uint %82322 %82320 %140435 %82328
-     %141784 = OpPhi %uint %140432 %82320 %82330 %82328
-     %141128 = OpPhi %v3float %82324 %82320 %105651 %82328
-      %73578 = OpFMul %v3float %141128 %141128
-      %73581 = OpFMul %v3float %73578 %141128
-     %110357 = OpCompositeConstruct %_arr_v3float_uint_2 %73581 %126098
-      %82338 = OpIAdd %uint %141784 %int_1
-      %82340 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %141784
-               OpStore %82340 %110357
-               OpBranch %74338
-      %73512 = OpLabel
-      %73515 = OpLoad %uint %65920
-      %73516 = OpBitwiseAnd %uint %73515 %uint_32768
-      %73517 = OpUGreaterThan %bool %73516 %uint_0
-               OpSelectionMerge %82306 None
-               OpSwitch %uint_0 %82290
-      %82290 = OpLabel
-               OpSelectionMerge %82305 None
-               OpBranchConditional %73517 %82292 %82300
-      %82300 = OpLabel
-      %82302 = OpISub %uint %140432 %int_1
-      %82303 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %82302
-      %82304 = OpLoad %_arr_v3float_uint_2 %82303
-     %105659 = OpCompositeExtract %v3float %82304 0
-     %105660 = OpCompositeExtract %v3float %82304 1
-               OpBranch %82306
-      %82292 = OpLabel
-      %82294 = OpIAdd %uint %140435 %int_1
-      %82295 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %82296 = OpLoad %v3float %82295
-               OpBranch %82306
-      %82305 = OpLabel
-               OpUnreachable
-      %82306 = OpLabel
-     %224750 = OpPhi %uint %82294 %82292 %140435 %82300
-     %141787 = OpPhi %uint %140432 %82292 %82302 %82300
-     %141786 = OpPhi %v3float %82296 %82292 %105659 %82300
-     %141785 = OpPhi %v3float %82296 %82292 %105660 %82300
-      %73523 = OpFOrdGreaterThan %v3bool %141785 %123
-      %73527 = OpFOrdLessThan %v3bool %141786 %123
-      %73528 = OpSelect %v3bool %73527 %73523 %3323
-      %73533 = OpFMul %v3float %141786 %141786
-      %73538 = OpFMul %v3float %141785 %141785
-      %73539 = OpExtInst %v3float %1 FMin %73533 %73538
-      %73542 = OpSelect %v3float %73528 %123 %73539
-      %73554 = OpExtInst %v3float %1 FMax %73533 %73538
-     %110348 = OpCompositeConstruct %_arr_v3float_uint_2 %73542 %73554
-      %82310 = OpIAdd %uint %141787 %int_1
-      %82312 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %141787
-               OpStore %82312 %110348
-               OpBranch %74338
-      %73485 = OpLabel
-      %73488 = OpLoad %uint %65920
-      %73489 = OpBitwiseAnd %uint %73488 %uint_32768
-      %73490 = OpUGreaterThan %bool %73489 %uint_0
-               OpSelectionMerge %82278 None
-               OpSwitch %uint_0 %82262
-      %82262 = OpLabel
-               OpSelectionMerge %82277 None
-               OpBranchConditional %73490 %82264 %82272
-      %82272 = OpLabel
-      %82274 = OpISub %uint %140443 %int_1
-      %82275 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %82274
-      %82276 = OpLoad %_arr_v2float_uint_2 %82275
-     %105669 = OpCompositeExtract %v2float %82276 1
-               OpBranch %82278
-      %82264 = OpLabel
-      %82266 = OpIAdd %uint %141789 %int_1
-      %82267 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %82268 = OpLoad %v2float %82267
-               OpBranch %82278
-      %82277 = OpLabel
-               OpUnreachable
-      %82278 = OpLabel
-     %227102 = OpPhi %uint %82266 %82264 %141789 %82272
-     %142446 = OpPhi %uint %140443 %82264 %82274 %82272
-     %141790 = OpPhi %v2float %82268 %82264 %105669 %82272
-      %73505 = OpFMul %v2float %141790 %141790
-      %73508 = OpFMul %v2float %73505 %141790
-     %110339 = OpCompositeConstruct %_arr_v2float_uint_2 %73508 %126113
-      %82282 = OpIAdd %uint %142446 %int_1
-      %82284 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %142446
-               OpStore %82284 %110339
-               OpBranch %74338
-      %73439 = OpLabel
-      %73442 = OpLoad %uint %65920
-      %73443 = OpBitwiseAnd %uint %73442 %uint_32768
-      %73444 = OpUGreaterThan %bool %73443 %uint_0
-               OpSelectionMerge %82250 None
-               OpSwitch %uint_0 %82234
-      %82234 = OpLabel
-               OpSelectionMerge %82249 None
-               OpBranchConditional %73444 %82236 %82244
-      %82244 = OpLabel
-      %82246 = OpISub %uint %140443 %int_1
-      %82247 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %82246
-      %82248 = OpLoad %_arr_v2float_uint_2 %82247
-     %105677 = OpCompositeExtract %v2float %82248 0
-     %105678 = OpCompositeExtract %v2float %82248 1
-               OpBranch %82250
-      %82236 = OpLabel
-      %82238 = OpIAdd %uint %141789 %int_1
-      %82239 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %82240 = OpLoad %v2float %82239
-               OpBranch %82250
-      %82249 = OpLabel
-               OpUnreachable
-      %82250 = OpLabel
-     %227101 = OpPhi %uint %82238 %82236 %141789 %82244
-     %142449 = OpPhi %uint %140443 %82236 %82246 %82244
-     %142448 = OpPhi %v2float %82240 %82236 %105677 %82244
-     %142447 = OpPhi %v2float %82240 %82236 %105678 %82244
-      %73450 = OpFOrdGreaterThan %v2bool %142447 %3274
-      %73454 = OpFOrdLessThan %v2bool %142448 %3274
-      %73455 = OpSelect %v2bool %73454 %73450 %3272
-      %73460 = OpFMul %v2float %142448 %142448
-      %73465 = OpFMul %v2float %142447 %142447
-      %73466 = OpExtInst %v2float %1 FMin %73460 %73465
-      %73469 = OpSelect %v2float %73455 %3274 %73466
-      %73481 = OpExtInst %v2float %1 FMax %73460 %73465
-     %110330 = OpCompositeConstruct %_arr_v2float_uint_2 %73469 %73481
-      %82254 = OpIAdd %uint %142449 %int_1
-      %82256 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %142449
-               OpStore %82256 %110330
-               OpBranch %74338
-      %73412 = OpLabel
-      %73415 = OpLoad %uint %65920
-      %73416 = OpBitwiseAnd %uint %73415 %uint_32768
-      %73417 = OpUGreaterThan %bool %73416 %uint_0
-               OpSelectionMerge %82222 None
-               OpSwitch %uint_0 %82206
-      %82206 = OpLabel
-               OpSelectionMerge %82221 None
-               OpBranchConditional %73417 %82208 %82216
-      %82216 = OpLabel
-      %82218 = OpISub %uint %140422 %int_1
-      %82219 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82218
-      %82220 = OpLoad %_arr_float_uint_2 %82219
-     %105687 = OpCompositeExtract %float %82220 1
-               OpBranch %82222
-      %82208 = OpLabel
-      %82210 = OpIAdd %uint %140424 %int_1
-      %82211 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %82212 = OpLoad %float %82211
-               OpBranch %82222
-      %82221 = OpLabel
-               OpUnreachable
-      %82222 = OpLabel
-     %157158 = OpPhi %uint %82210 %82208 %140424 %82216
-     %143106 = OpPhi %uint %140422 %82208 %82218 %82216
-     %142450 = OpPhi %float %82212 %82208 %105687 %82216
-      %73432 = OpFMul %float %142450 %142450
-      %73435 = OpFMul %float %73432 %142450
-     %110321 = OpCompositeConstruct %_arr_float_uint_2 %73435 %126126
-      %82226 = OpIAdd %uint %143106 %int_1
-      %82228 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143106
-               OpStore %82228 %110321
-               OpBranch %74338
-      %73366 = OpLabel
-      %73369 = OpLoad %uint %65920
-      %73370 = OpBitwiseAnd %uint %73369 %uint_32768
-      %73371 = OpUGreaterThan %bool %73370 %uint_0
-               OpSelectionMerge %82194 None
-               OpSwitch %uint_0 %82178
-      %82178 = OpLabel
-               OpSelectionMerge %82193 None
-               OpBranchConditional %73371 %82180 %82188
-      %82188 = OpLabel
-      %82190 = OpISub %uint %140422 %int_1
-      %82191 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82190
-      %82192 = OpLoad %_arr_float_uint_2 %82191
-     %105695 = OpCompositeExtract %float %82192 0
-     %105696 = OpCompositeExtract %float %82192 1
-               OpBranch %82194
-      %82180 = OpLabel
-      %82182 = OpIAdd %uint %140424 %int_1
-      %82183 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %82184 = OpLoad %float %82183
-               OpBranch %82194
-      %82193 = OpLabel
-               OpUnreachable
-      %82194 = OpLabel
-     %157157 = OpPhi %uint %82182 %82180 %140424 %82188
-     %143112 = OpPhi %uint %140422 %82180 %82190 %82188
-     %143108 = OpPhi %float %82184 %82180 %105695 %82188
-     %143107 = OpPhi %float %82184 %82180 %105696 %82188
-      %73375 = OpFOrdGreaterThan %bool %143107 %float_0
-               OpSelectionMerge %73380 None
-               OpBranchConditional %73375 %73376 %73380
-      %73376 = OpLabel
-      %73379 = OpFOrdLessThan %bool %143108 %float_0
-               OpBranch %73380
-      %73380 = OpLabel
-      %73381 = OpPhi %bool %73375 %82194 %73379 %73376
-               OpSelectionMerge %73397 None
-               OpBranchConditional %73381 %73382 %73384
-      %73384 = OpLabel
-      %73389 = OpFMul %float %143108 %143108
-      %73394 = OpFMul %float %143107 %143107
-      %73395 = OpExtInst %float %1 FMin %73389 %73394
-               OpBranch %73397
-      %73382 = OpLabel
-               OpBranch %73397
-      %73397 = OpLabel
-     %143109 = OpPhi %float %float_0 %73382 %73395 %73384
-      %73402 = OpFMul %float %143108 %143108
-      %73407 = OpFMul %float %143107 %143107
-      %73408 = OpExtInst %float %1 FMax %73402 %73407
-     %110312 = OpCompositeConstruct %_arr_float_uint_2 %143109 %73408
-      %82198 = OpIAdd %uint %143112 %int_1
-      %82200 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143112
-               OpStore %82200 %110312
-               OpBranch %74338
-      %73335 = OpLabel
-      %73338 = OpLoad %uint %65920
-      %73339 = OpBitwiseAnd %uint %73338 %uint_32768
-      %73340 = OpUGreaterThan %bool %73339 %uint_0
-               OpSelectionMerge %82151 None
-               OpSwitch %uint_0 %82135
-      %82135 = OpLabel
-               OpSelectionMerge %82150 None
-               OpBranchConditional %73340 %82137 %82145
-      %82145 = OpLabel
-      %82147 = OpISub %uint %140441 %int_1
-      %82148 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %82147
-      %82149 = OpLoad %_arr_v4float_uint_2 %82148
-     %105704 = OpCompositeExtract %v4float %82149 0
-     %105705 = OpCompositeExtract %v4float %82149 1
-               OpBranch %82151
-      %82137 = OpLabel
-      %82139 = OpIAdd %uint %140467 %int_1
-      %82140 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %82141 = OpLoad %v4float %82140
-               OpBranch %82151
-      %82150 = OpLabel
-               OpUnreachable
-      %82151 = OpLabel
-     %225517 = OpPhi %uint %82139 %82137 %140467 %82145
-     %224977 = OpPhi %uint %140441 %82137 %82147 %82145
-     %143114 = OpPhi %v4float %82141 %82137 %105704 %82145
-     %143113 = OpPhi %v4float %82141 %82137 %105705 %82145
-      %73343 = OpCompositeExtract %float %143114 3
-      %73345 = OpCompositeExtract %float %143113 3
-      %73346 = OpCompositeConstruct %_arr_float_uint_2 %73343 %73345
-      %82155 = OpIAdd %uint %140422 %int_1
-      %82157 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %82157 %73346
-      %73349 = OpCompositeExtract %float %143114 2
-      %73351 = OpCompositeExtract %float %143113 2
-      %73352 = OpCompositeConstruct %_arr_float_uint_2 %73349 %73351
-      %82160 = OpIAdd %uint %140422 %int_2
-      %82162 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82155
-               OpStore %82162 %73352
-      %73355 = OpCompositeExtract %float %143114 1
-      %73357 = OpCompositeExtract %float %143113 1
-      %73358 = OpCompositeConstruct %_arr_float_uint_2 %73355 %73357
-      %82165 = OpIAdd %uint %140422 %int_3
-      %82167 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82160
-               OpStore %82167 %73358
-      %73361 = OpCompositeExtract %float %143114 0
-      %73363 = OpCompositeExtract %float %143113 0
-      %73364 = OpCompositeConstruct %_arr_float_uint_2 %73361 %73363
-      %82170 = OpIAdd %uint %140422 %int_4
-      %82172 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82165
-               OpStore %82172 %73364
-               OpBranch %74338
-      %73310 = OpLabel
-      %73313 = OpLoad %uint %65920
-      %73314 = OpBitwiseAnd %uint %73313 %uint_32768
-      %73315 = OpUGreaterThan %bool %73314 %uint_0
-               OpSelectionMerge %82113 None
-               OpSwitch %uint_0 %82097
-      %82097 = OpLabel
-               OpSelectionMerge %82112 None
-               OpBranchConditional %73315 %82099 %82107
-      %82107 = OpLabel
-      %82109 = OpISub %uint %140432 %int_1
-      %82110 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %82109
-      %82111 = OpLoad %_arr_v3float_uint_2 %82110
-     %105713 = OpCompositeExtract %v3float %82111 0
-     %105714 = OpCompositeExtract %v3float %82111 1
-               OpBranch %82113
-      %82099 = OpLabel
-      %82101 = OpIAdd %uint %140435 %int_1
-      %82102 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %82103 = OpLoad %v3float %82102
-               OpBranch %82113
-      %82112 = OpLabel
-               OpUnreachable
-      %82113 = OpLabel
-     %224742 = OpPhi %uint %82101 %82099 %140435 %82107
-     %224446 = OpPhi %uint %140432 %82099 %82109 %82107
-     %143117 = OpPhi %v3float %82103 %82099 %105713 %82107
-     %143116 = OpPhi %v3float %82103 %82099 %105714 %82107
-      %73318 = OpCompositeExtract %float %143117 2
-      %73320 = OpCompositeExtract %float %143116 2
-      %73321 = OpCompositeConstruct %_arr_float_uint_2 %73318 %73320
-      %82117 = OpIAdd %uint %140422 %int_1
-      %82119 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %82119 %73321
-      %73324 = OpCompositeExtract %float %143117 1
-      %73326 = OpCompositeExtract %float %143116 1
-      %73327 = OpCompositeConstruct %_arr_float_uint_2 %73324 %73326
-      %82122 = OpIAdd %uint %140422 %int_2
-      %82124 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82117
-               OpStore %82124 %73327
-      %73330 = OpCompositeExtract %float %143117 0
-      %73332 = OpCompositeExtract %float %143116 0
-      %73333 = OpCompositeConstruct %_arr_float_uint_2 %73330 %73332
-      %82127 = OpIAdd %uint %140422 %int_3
-      %82129 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82122
-               OpStore %82129 %73333
-               OpBranch %74338
-      %73291 = OpLabel
-      %73294 = OpLoad %uint %65920
-      %73295 = OpBitwiseAnd %uint %73294 %uint_32768
-      %73296 = OpUGreaterThan %bool %73295 %uint_0
-               OpSelectionMerge %82080 None
-               OpSwitch %uint_0 %82064
-      %82064 = OpLabel
-               OpSelectionMerge %82079 None
-               OpBranchConditional %73296 %82066 %82074
-      %82074 = OpLabel
-      %82076 = OpISub %uint %140443 %int_1
-      %82077 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %82076
-      %82078 = OpLoad %_arr_v2float_uint_2 %82077
-     %105722 = OpCompositeExtract %v2float %82078 0
-     %105723 = OpCompositeExtract %v2float %82078 1
-               OpBranch %82080
-      %82066 = OpLabel
-      %82068 = OpIAdd %uint %141789 %int_1
-      %82069 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %82070 = OpLoad %v2float %82069
-               OpBranch %82080
-      %82079 = OpLabel
-               OpUnreachable
-      %82080 = OpLabel
-     %227094 = OpPhi %uint %82068 %82066 %141789 %82074
-     %225217 = OpPhi %uint %140443 %82066 %82076 %82074
-     %143120 = OpPhi %v2float %82070 %82066 %105722 %82074
-     %143119 = OpPhi %v2float %82070 %82066 %105723 %82074
-      %73299 = OpCompositeExtract %float %143120 1
-      %73301 = OpCompositeExtract %float %143119 1
-      %73302 = OpCompositeConstruct %_arr_float_uint_2 %73299 %73301
-      %82084 = OpIAdd %uint %140422 %int_1
-      %82086 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %82086 %73302
-      %73305 = OpCompositeExtract %float %143120 0
-      %73307 = OpCompositeExtract %float %143119 0
-      %73308 = OpCompositeConstruct %_arr_float_uint_2 %73305 %73307
-      %82089 = OpIAdd %uint %140422 %int_2
-      %82091 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82084
-               OpStore %82091 %73308
-               OpBranch %74338
-      %73264 = OpLabel
-      %73267 = OpLoad %uint %65920
-      %73268 = OpBitwiseAnd %uint %73267 %uint_32768
-      %73269 = OpUGreaterThan %bool %73268 %uint_0
-               OpSelectionMerge %82052 None
-               OpSwitch %uint_0 %82036
-      %82036 = OpLabel
-               OpSelectionMerge %82051 None
-               OpBranchConditional %73269 %82038 %82046
-      %82046 = OpLabel
-      %82048 = OpISub %uint %143123 %int_1
-      %82049 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %82048
-      %82050 = OpLoad %_arr_mat2v2float_uint_2 %82049
-     %105731 = OpCompositeExtract %mat2v2float %82050 0
-     %105732 = OpCompositeExtract %mat2v2float %82050 1
-               OpBranch %82052
-      %82038 = OpLabel
-      %82040 = OpIAdd %uint %143125 %int_1
-      %82041 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %143125
-      %82042 = OpLoad %mat2v2float %82041
-               OpBranch %82052
-      %82051 = OpLabel
-               OpUnreachable
-      %82052 = OpLabel
-     %229007 = OpPhi %uint %82040 %82038 %143125 %82046
-     %228690 = OpPhi %uint %143123 %82038 %82048 %82046
-     %143127 = OpPhi %mat2v2float %82042 %82038 %105731 %82046
-     %143126 = OpPhi %mat2v2float %82042 %82038 %105732 %82046
-      %73272 = OpCompositeExtract %v2float %143127 0
-      %73274 = OpCompositeExtract %v2float %143127 1
-      %73275 = OpCompositeExtract %float %73272 0
-      %73276 = OpCompositeExtract %float %73272 1
-      %73277 = OpCompositeExtract %float %73274 0
-      %73278 = OpCompositeExtract %float %73274 1
-      %73279 = OpCompositeConstruct %v4float %73275 %73276 %73277 %73278
-      %73281 = OpCompositeExtract %v2float %143126 0
-      %73283 = OpCompositeExtract %v2float %143126 1
-      %73284 = OpCompositeExtract %float %73281 0
-      %73285 = OpCompositeExtract %float %73281 1
-      %73286 = OpCompositeExtract %float %73283 0
-      %73287 = OpCompositeExtract %float %73283 1
-      %73288 = OpCompositeConstruct %v4float %73284 %73285 %73286 %73287
-      %73289 = OpCompositeConstruct %_arr_v4float_uint_2 %73279 %73288
-      %82056 = OpIAdd %uint %140441 %int_1
-      %82058 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %140441
-               OpStore %82058 %73289
-               OpBranch %74338
-      %73233 = OpLabel
-      %73236 = OpLoad %uint %65920
-      %73237 = OpBitwiseAnd %uint %73236 %uint_32768
-      %73238 = OpUGreaterThan %bool %73237 %uint_0
-               OpSelectionMerge %82009 None
-               OpSwitch %uint_0 %81993
-      %81993 = OpLabel
-               OpSelectionMerge %82008 None
-               OpBranchConditional %73238 %81995 %82003
-      %82003 = OpLabel
-      %82005 = OpISub %uint %143130 %int_1
-      %82006 = OpAccessChain %_ptr_Function__arr_mat4v4float_uint_2 %425 %82005
-      %82007 = OpLoad %_arr_mat4v4float_uint_2 %82006
-     %105740 = OpCompositeExtract %mat4v4float %82007 0
-     %105741 = OpCompositeExtract %mat4v4float %82007 1
-               OpBranch %82009
-      %81995 = OpLabel
-      %81997 = OpIAdd %uint %143132 %int_1
-      %81998 = OpAccessChain %_ptr_StorageBuffer_mat4v4float %412 %int_0 %143132
-      %81999 = OpLoad %mat4v4float %81998
-               OpBranch %82009
-      %82008 = OpLabel
-               OpUnreachable
-      %82009 = OpLabel
-     %229640 = OpPhi %uint %81997 %81995 %143132 %82003
-     %229323 = OpPhi %uint %143130 %81995 %82005 %82003
-     %143134 = OpPhi %mat4v4float %81999 %81995 %105740 %82003
-     %143133 = OpPhi %mat4v4float %81999 %81995 %105741 %82003
-      %73241 = OpCompositeExtract %v4float %143134 3
-      %73243 = OpCompositeExtract %v4float %143133 3
-      %73244 = OpCompositeConstruct %_arr_v4float_uint_2 %73241 %73243
-      %82013 = OpIAdd %uint %140441 %int_1
-      %82015 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %140441
-               OpStore %82015 %73244
-      %73247 = OpCompositeExtract %v4float %143134 2
-      %73249 = OpCompositeExtract %v4float %143133 2
-      %73250 = OpCompositeConstruct %_arr_v4float_uint_2 %73247 %73249
-      %82018 = OpIAdd %uint %140441 %int_2
-      %82020 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %82013
-               OpStore %82020 %73250
-      %73253 = OpCompositeExtract %v4float %143134 1
-      %73255 = OpCompositeExtract %v4float %143133 1
-      %73256 = OpCompositeConstruct %_arr_v4float_uint_2 %73253 %73255
-      %82023 = OpIAdd %uint %140441 %int_3
-      %82025 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %82018
-               OpStore %82025 %73256
-      %73259 = OpCompositeExtract %v4float %143134 0
-      %73261 = OpCompositeExtract %v4float %143133 0
-      %73262 = OpCompositeConstruct %_arr_v4float_uint_2 %73259 %73261
-      %82028 = OpIAdd %uint %140441 %int_4
-      %82030 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %82023
-               OpStore %82030 %73262
-               OpBranch %74338
-      %73208 = OpLabel
-      %73211 = OpLoad %uint %65920
-      %73212 = OpBitwiseAnd %uint %73211 %uint_32768
-      %73213 = OpUGreaterThan %bool %73212 %uint_0
-               OpSelectionMerge %81971 None
-               OpSwitch %uint_0 %81955
-      %81955 = OpLabel
-               OpSelectionMerge %81970 None
-               OpBranchConditional %73213 %81957 %81965
-      %81965 = OpLabel
-      %81967 = OpISub %uint %143137 %int_1
-      %81968 = OpAccessChain %_ptr_Function__arr_mat3v3float_uint_2 %396 %81967
-      %81969 = OpLoad %_arr_mat3v3float_uint_2 %81968
-     %105749 = OpCompositeExtract %mat3v3float %81969 0
-     %105750 = OpCompositeExtract %mat3v3float %81969 1
-               OpBranch %81971
-      %81957 = OpLabel
-      %81959 = OpIAdd %uint %143139 %int_1
-      %81960 = OpAccessChain %_ptr_StorageBuffer_mat3v3float %383 %int_0 %143139
-      %81961 = OpLoad %mat3v3float %81960
-               OpBranch %81971
-      %81970 = OpLabel
-               OpUnreachable
-      %81971 = OpLabel
-     %230273 = OpPhi %uint %81959 %81957 %143139 %81965
-     %229956 = OpPhi %uint %143137 %81957 %81967 %81965
-     %143141 = OpPhi %mat3v3float %81961 %81957 %105749 %81965
-     %143140 = OpPhi %mat3v3float %81961 %81957 %105750 %81965
-      %73216 = OpCompositeExtract %v3float %143141 2
-      %73218 = OpCompositeExtract %v3float %143140 2
-      %73219 = OpCompositeConstruct %_arr_v3float_uint_2 %73216 %73218
-      %81975 = OpIAdd %uint %140432 %int_1
-      %81977 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %140432
-               OpStore %81977 %73219
-      %73222 = OpCompositeExtract %v3float %143141 1
-      %73224 = OpCompositeExtract %v3float %143140 1
-      %73225 = OpCompositeConstruct %_arr_v3float_uint_2 %73222 %73224
-      %81980 = OpIAdd %uint %140432 %int_2
-      %81982 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %81975
-               OpStore %81982 %73225
-      %73228 = OpCompositeExtract %v3float %143141 0
-      %73230 = OpCompositeExtract %v3float %143140 0
-      %73231 = OpCompositeConstruct %_arr_v3float_uint_2 %73228 %73230
-      %81985 = OpIAdd %uint %140432 %int_3
-      %81987 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %81980
-               OpStore %81987 %73231
-               OpBranch %74338
-      %73189 = OpLabel
-      %73192 = OpLoad %uint %65920
-      %73193 = OpBitwiseAnd %uint %73192 %uint_32768
-      %73194 = OpUGreaterThan %bool %73193 %uint_0
-               OpSelectionMerge %81938 None
-               OpSwitch %uint_0 %81922
-      %81922 = OpLabel
-               OpSelectionMerge %81937 None
-               OpBranchConditional %73194 %81924 %81932
-      %81932 = OpLabel
-      %81934 = OpISub %uint %143123 %int_1
-      %81935 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %81934
-      %81936 = OpLoad %_arr_mat2v2float_uint_2 %81935
-     %105758 = OpCompositeExtract %mat2v2float %81936 0
-     %105759 = OpCompositeExtract %mat2v2float %81936 1
-               OpBranch %81938
-      %81924 = OpLabel
-      %81926 = OpIAdd %uint %143125 %int_1
-      %81927 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %143125
-      %81928 = OpLoad %mat2v2float %81927
-               OpBranch %81938
-      %81937 = OpLabel
-               OpUnreachable
-      %81938 = OpLabel
-     %229004 = OpPhi %uint %81926 %81924 %143125 %81932
-     %228687 = OpPhi %uint %143123 %81924 %81934 %81932
-     %143144 = OpPhi %mat2v2float %81928 %81924 %105758 %81932
-     %143143 = OpPhi %mat2v2float %81928 %81924 %105759 %81932
-      %73197 = OpCompositeExtract %v2float %143144 1
-      %73199 = OpCompositeExtract %v2float %143143 1
-      %73200 = OpCompositeConstruct %_arr_v2float_uint_2 %73197 %73199
-      %81942 = OpIAdd %uint %140443 %int_1
-      %81944 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %140443
-               OpStore %81944 %73200
-      %73203 = OpCompositeExtract %v2float %143144 0
-      %73205 = OpCompositeExtract %v2float %143143 0
-      %73206 = OpCompositeConstruct %_arr_v2float_uint_2 %73203 %73205
-      %81947 = OpIAdd %uint %140443 %int_2
-      %81949 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %81942
-               OpStore %81949 %73206
-               OpBranch %74338
-      %73158 = OpLabel
-      %73161 = OpLoad %uint %65920
-      %73162 = OpBitwiseAnd %uint %73161 %uint_32768
-      %73163 = OpUGreaterThan %bool %73162 %uint_0
-               OpSelectionMerge %81895 None
-               OpSwitch %uint_0 %81879
-      %81879 = OpLabel
-               OpSelectionMerge %81894 None
-               OpBranchConditional %73163 %81881 %81889
-      %81889 = OpLabel
-      %81891 = OpISub %uint %143123 %int_1
-      %81892 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %81891
-      %81893 = OpLoad %_arr_mat2v2float_uint_2 %81892
-     %105767 = OpCompositeExtract %mat2v2float %81893 0
-     %105768 = OpCompositeExtract %mat2v2float %81893 1
-               OpBranch %81895
-      %81881 = OpLabel
-      %81883 = OpIAdd %uint %143125 %int_1
-      %81884 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %143125
-      %81885 = OpLoad %mat2v2float %81884
-               OpBranch %81895
-      %81894 = OpLabel
-               OpUnreachable
-      %81895 = OpLabel
-     %229003 = OpPhi %uint %81883 %81881 %143125 %81889
-     %228686 = OpPhi %uint %143123 %81881 %81891 %81889
-     %143147 = OpPhi %mat2v2float %81885 %81881 %105767 %81889
-     %143146 = OpPhi %mat2v2float %81885 %81881 %105768 %81889
-      %73166 = OpCompositeExtract %float %143147 1 1
-      %73168 = OpCompositeExtract %float %143146 1 1
-      %73169 = OpCompositeConstruct %_arr_float_uint_2 %73166 %73168
-      %81899 = OpIAdd %uint %140422 %int_1
-      %81901 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %81901 %73169
-      %73172 = OpCompositeExtract %float %143147 1 0
-      %73174 = OpCompositeExtract %float %143146 1 0
-      %73175 = OpCompositeConstruct %_arr_float_uint_2 %73172 %73174
-      %81904 = OpIAdd %uint %140422 %int_2
-      %81906 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81899
-               OpStore %81906 %73175
-      %73178 = OpCompositeExtract %float %143147 0 1
-      %73180 = OpCompositeExtract %float %143146 0 1
-      %73181 = OpCompositeConstruct %_arr_float_uint_2 %73178 %73180
-      %81909 = OpIAdd %uint %140422 %int_3
-      %81911 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81904
-               OpStore %81911 %73181
-      %73184 = OpCompositeExtract %float %143147 0 0
-      %73186 = OpCompositeExtract %float %143146 0 0
-      %73187 = OpCompositeConstruct %_arr_float_uint_2 %73184 %73186
-      %81914 = OpIAdd %uint %140422 %int_4
-      %81916 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81909
-               OpStore %81916 %73187
-               OpBranch %74338
-      %73125 = OpLabel
-      %73128 = OpLoad %uint %65920
-      %73129 = OpBitwiseAnd %uint %73128 %uint_32768
-      %73130 = OpUGreaterThan %bool %73129 %uint_0
-               OpSelectionMerge %81844 None
-               OpSwitch %uint_0 %81828
-      %81828 = OpLabel
-               OpSelectionMerge %81843 None
-               OpBranchConditional %73130 %81830 %81838
-      %81838 = OpLabel
-      %81840 = OpISub %uint %140443 %int_1
-      %81841 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %81840
-      %81842 = OpLoad %_arr_v2float_uint_2 %81841
-     %105785 = OpCompositeExtract %v2float %81842 0
-     %105786 = OpCompositeExtract %v2float %81842 1
-               OpBranch %81844
-      %81830 = OpLabel
-      %81832 = OpIAdd %uint %141789 %int_1
-      %81833 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %81834 = OpLoad %v2float %81833
-               OpBranch %81844
-      %81843 = OpLabel
-               OpUnreachable
-      %81844 = OpLabel
-     %143153 = OpPhi %uint %81832 %81830 %141789 %81838
-     %143152 = OpPhi %uint %140443 %81830 %81840 %81838
-     %143150 = OpPhi %v2float %81834 %81830 %105785 %81838
-     %143149 = OpPhi %v2float %81834 %81830 %105786 %81838
-      %73134 = OpLoad %uint %65920
-      %73135 = OpBitwiseAnd %uint %73134 %uint_16384
-      %73136 = OpUGreaterThan %bool %73135 %uint_0
-               OpSelectionMerge %81867 None
-               OpSwitch %uint_0 %81851
-      %81851 = OpLabel
-               OpSelectionMerge %81866 None
-               OpBranchConditional %73136 %81853 %81861
-      %81861 = OpLabel
-      %81863 = OpISub %uint %143152 %int_1
-      %81864 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %81863
-      %81865 = OpLoad %_arr_v2float_uint_2 %81864
-     %105776 = OpCompositeExtract %v2float %81865 0
-     %105777 = OpCompositeExtract %v2float %81865 1
-               OpBranch %81867
-      %81853 = OpLabel
-      %81855 = OpIAdd %uint %143153 %int_1
-      %81856 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %143153
-      %81857 = OpLoad %v2float %81856
-               OpBranch %81867
-      %81866 = OpLabel
-               OpUnreachable
-      %81867 = OpLabel
-     %227088 = OpPhi %uint %81855 %81853 %143153 %81861
-     %225212 = OpPhi %uint %143152 %81853 %81863 %81861
-     %143155 = OpPhi %v2float %81857 %81853 %105776 %81861
-     %143154 = OpPhi %v2float %81857 %81853 %105777 %81861
-      %73142 = OpCompositeExtract %float %143150 0
-      %73143 = OpCompositeExtract %float %143150 1
-      %73144 = OpCompositeExtract %float %143155 0
-      %73145 = OpCompositeExtract %float %143155 1
-      %73146 = OpCompositeConstruct %v4float %73142 %73143 %73144 %73145
-      %73151 = OpCompositeExtract %float %143149 0
-      %73152 = OpCompositeExtract %float %143149 1
-      %73153 = OpCompositeExtract %float %143154 0
-      %73154 = OpCompositeExtract %float %143154 1
-      %73155 = OpCompositeConstruct %v4float %73151 %73152 %73153 %73154
-      %73156 = OpCompositeConstruct %_arr_v4float_uint_2 %73146 %73155
-      %81871 = OpIAdd %uint %140441 %int_1
-      %81873 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %140441
-               OpStore %81873 %73156
-               OpBranch %74338
-      %73094 = OpLabel
-      %73097 = OpLoad %uint %65920
-      %73098 = OpBitwiseAnd %uint %73097 %uint_32768
-      %73099 = OpUGreaterThan %bool %73098 %uint_0
-               OpSelectionMerge %81793 None
-               OpSwitch %uint_0 %81777
-      %81777 = OpLabel
-               OpSelectionMerge %81792 None
-               OpBranchConditional %73099 %81779 %81787
-      %81787 = OpLabel
-      %81789 = OpISub %uint %140432 %int_1
-      %81790 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %81789
-      %81791 = OpLoad %_arr_v3float_uint_2 %81790
-     %105803 = OpCompositeExtract %v3float %81791 0
-     %105804 = OpCompositeExtract %v3float %81791 1
-               OpBranch %81793
-      %81779 = OpLabel
-      %81781 = OpIAdd %uint %140435 %int_1
-      %81782 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %81783 = OpLoad %v3float %81782
-               OpBranch %81793
-      %81792 = OpLabel
-               OpUnreachable
-      %81793 = OpLabel
-     %224733 = OpPhi %uint %81781 %81779 %140435 %81787
-     %224438 = OpPhi %uint %140432 %81779 %81789 %81787
-     %143159 = OpPhi %v3float %81783 %81779 %105803 %81787
-     %143158 = OpPhi %v3float %81783 %81779 %105804 %81787
-      %73103 = OpLoad %uint %65920
-      %73104 = OpBitwiseAnd %uint %73103 %uint_16384
-      %73105 = OpUGreaterThan %bool %73104 %uint_0
-               OpSelectionMerge %81816 None
-               OpSwitch %uint_0 %81800
-      %81800 = OpLabel
-               OpSelectionMerge %81815 None
-               OpBranchConditional %73105 %81802 %81810
-      %81810 = OpLabel
-      %81812 = OpISub %uint %140422 %int_1
-      %81813 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81812
-      %81814 = OpLoad %_arr_float_uint_2 %81813
-     %105794 = OpCompositeExtract %float %81814 0
-     %105795 = OpCompositeExtract %float %81814 1
-               OpBranch %81816
-      %81802 = OpLabel
-      %81804 = OpIAdd %uint %140424 %int_1
-      %81805 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %81806 = OpLoad %float %81805
-               OpBranch %81816
-      %81815 = OpLabel
-               OpUnreachable
-      %81816 = OpLabel
-     %157144 = OpPhi %uint %81804 %81802 %140424 %81810
-     %156897 = OpPhi %uint %140422 %81802 %81812 %81810
-     %143164 = OpPhi %float %81806 %81802 %105794 %81810
-     %143163 = OpPhi %float %81806 %81802 %105795 %81810
-      %73111 = OpCompositeExtract %float %143159 0
-      %73112 = OpCompositeExtract %float %143159 1
-      %73113 = OpCompositeExtract %float %143159 2
-      %73114 = OpCompositeConstruct %v4float %73111 %73112 %73113 %143164
-      %73119 = OpCompositeExtract %float %143158 0
-      %73120 = OpCompositeExtract %float %143158 1
-      %73121 = OpCompositeExtract %float %143158 2
-      %73122 = OpCompositeConstruct %v4float %73119 %73120 %73121 %143163
-      %73123 = OpCompositeConstruct %_arr_v4float_uint_2 %73114 %73122
-      %81820 = OpIAdd %uint %140441 %int_1
-      %81822 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %140441
-               OpStore %81822 %73123
-               OpBranch %74338
-      %73055 = OpLabel
-      %73058 = OpLoad %uint %65920
-      %73059 = OpBitwiseAnd %uint %73058 %uint_32768
-      %73060 = OpUGreaterThan %bool %73059 %uint_0
-               OpSelectionMerge %81719 None
-               OpSwitch %uint_0 %81703
-      %81703 = OpLabel
-               OpSelectionMerge %81718 None
-               OpBranchConditional %73060 %81705 %81713
-      %81713 = OpLabel
-      %81715 = OpISub %uint %140443 %int_1
-      %81716 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %81715
-      %81717 = OpLoad %_arr_v2float_uint_2 %81716
-     %105830 = OpCompositeExtract %v2float %81717 0
-     %105831 = OpCompositeExtract %v2float %81717 1
-               OpBranch %81719
-      %81705 = OpLabel
-      %81707 = OpIAdd %uint %141789 %int_1
-      %81708 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %81709 = OpLoad %v2float %81708
-               OpBranch %81719
-      %81718 = OpLabel
-               OpUnreachable
-      %81719 = OpLabel
-     %227085 = OpPhi %uint %81707 %81705 %141789 %81713
-     %225209 = OpPhi %uint %140443 %81705 %81715 %81713
-     %143168 = OpPhi %v2float %81709 %81705 %105830 %81713
-     %143167 = OpPhi %v2float %81709 %81705 %105831 %81713
-      %73064 = OpLoad %uint %65920
-      %73065 = OpBitwiseAnd %uint %73064 %uint_16384
-      %73066 = OpUGreaterThan %bool %73065 %uint_0
-               OpSelectionMerge %81742 None
-               OpSwitch %uint_0 %81726
-      %81726 = OpLabel
-               OpSelectionMerge %81741 None
-               OpBranchConditional %73066 %81728 %81736
-      %81736 = OpLabel
-      %81738 = OpISub %uint %140422 %int_1
-      %81739 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81738
-      %81740 = OpLoad %_arr_float_uint_2 %81739
-     %105821 = OpCompositeExtract %float %81740 0
-     %105822 = OpCompositeExtract %float %81740 1
-               OpBranch %81742
-      %81728 = OpLabel
-      %81730 = OpIAdd %uint %140424 %int_1
-      %81731 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %81732 = OpLoad %float %81731
-               OpBranch %81742
-      %81741 = OpLabel
-               OpUnreachable
-      %81742 = OpLabel
-     %143176 = OpPhi %uint %81730 %81728 %140424 %81736
-     %143175 = OpPhi %uint %140422 %81728 %81738 %81736
-     %143173 = OpPhi %float %81732 %81728 %105821 %81736
-     %143172 = OpPhi %float %81732 %81728 %105822 %81736
-      %73070 = OpLoad %uint %65920
-      %73071 = OpBitwiseAnd %uint %73070 %uint_8192
-      %73072 = OpUGreaterThan %bool %73071 %uint_0
-               OpSelectionMerge %81765 None
-               OpSwitch %uint_0 %81749
-      %81749 = OpLabel
-               OpSelectionMerge %81764 None
-               OpBranchConditional %73072 %81751 %81759
-      %81759 = OpLabel
-      %81761 = OpISub %uint %143175 %int_1
-      %81762 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81761
-      %81763 = OpLoad %_arr_float_uint_2 %81762
-     %105812 = OpCompositeExtract %float %81763 0
-     %105813 = OpCompositeExtract %float %81763 1
-               OpBranch %81765
-      %81751 = OpLabel
-      %81753 = OpIAdd %uint %143176 %int_1
-      %81754 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143176
-      %81755 = OpLoad %float %81754
-               OpBranch %81765
-      %81764 = OpLabel
-               OpUnreachable
-      %81765 = OpLabel
-     %157143 = OpPhi %uint %81753 %81751 %143176 %81759
-     %156896 = OpPhi %uint %143175 %81751 %81761 %81759
-     %143178 = OpPhi %float %81755 %81751 %105812 %81759
-     %143177 = OpPhi %float %81755 %81751 %105813 %81759
-      %73080 = OpCompositeExtract %float %143168 0
-      %73081 = OpCompositeExtract %float %143168 1
-      %73082 = OpCompositeConstruct %v4float %73080 %73081 %143173 %143178
-      %73089 = OpCompositeExtract %float %143167 0
-      %73090 = OpCompositeExtract %float %143167 1
-      %73091 = OpCompositeConstruct %v4float %73089 %73090 %143172 %143177
-      %73092 = OpCompositeConstruct %_arr_v4float_uint_2 %73082 %73091
-      %81769 = OpIAdd %uint %140441 %int_1
-      %81771 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %140441
-               OpStore %81771 %73092
-               OpBranch %74338
-      %73010 = OpLabel
-      %73013 = OpLoad %uint %65920
-      %73014 = OpBitwiseAnd %uint %73013 %uint_32768
-      %73015 = OpUGreaterThan %bool %73014 %uint_0
-               OpSelectionMerge %81622 None
-               OpSwitch %uint_0 %81606
-      %81606 = OpLabel
-               OpSelectionMerge %81621 None
-               OpBranchConditional %73015 %81608 %81616
-      %81616 = OpLabel
-      %81618 = OpISub %uint %140422 %int_1
-      %81619 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81618
-      %81620 = OpLoad %_arr_float_uint_2 %81619
-     %105866 = OpCompositeExtract %float %81620 0
-     %105867 = OpCompositeExtract %float %81620 1
-               OpBranch %81622
-      %81608 = OpLabel
-      %81610 = OpIAdd %uint %140424 %int_1
-      %81611 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %81612 = OpLoad %float %81611
-               OpBranch %81622
-      %81621 = OpLabel
-               OpUnreachable
-      %81622 = OpLabel
-     %143186 = OpPhi %uint %81610 %81608 %140424 %81616
-     %143185 = OpPhi %uint %140422 %81608 %81618 %81616
-     %143183 = OpPhi %float %81612 %81608 %105866 %81616
-     %143182 = OpPhi %float %81612 %81608 %105867 %81616
-      %73019 = OpLoad %uint %65920
-      %73020 = OpBitwiseAnd %uint %73019 %uint_16384
-      %73021 = OpUGreaterThan %bool %73020 %uint_0
-               OpSelectionMerge %81645 None
-               OpSwitch %uint_0 %81629
-      %81629 = OpLabel
-               OpSelectionMerge %81644 None
-               OpBranchConditional %73021 %81631 %81639
-      %81639 = OpLabel
-      %81641 = OpISub %uint %143185 %int_1
-      %81642 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81641
-      %81643 = OpLoad %_arr_float_uint_2 %81642
-     %105857 = OpCompositeExtract %float %81643 0
-     %105858 = OpCompositeExtract %float %81643 1
-               OpBranch %81645
-      %81631 = OpLabel
-      %81633 = OpIAdd %uint %143186 %int_1
-      %81634 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143186
-      %81635 = OpLoad %float %81634
-               OpBranch %81645
-      %81644 = OpLabel
-               OpUnreachable
-      %81645 = OpLabel
-     %143191 = OpPhi %uint %81633 %81631 %143186 %81639
-     %143190 = OpPhi %uint %143185 %81631 %81641 %81639
-     %143188 = OpPhi %float %81635 %81631 %105857 %81639
-     %143187 = OpPhi %float %81635 %81631 %105858 %81639
-      %73025 = OpLoad %uint %65920
-      %73026 = OpBitwiseAnd %uint %73025 %uint_8192
-      %73027 = OpUGreaterThan %bool %73026 %uint_0
-               OpSelectionMerge %81668 None
-               OpSwitch %uint_0 %81652
-      %81652 = OpLabel
-               OpSelectionMerge %81667 None
-               OpBranchConditional %73027 %81654 %81662
-      %81662 = OpLabel
-      %81664 = OpISub %uint %143190 %int_1
-      %81665 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81664
-      %81666 = OpLoad %_arr_float_uint_2 %81665
-     %105848 = OpCompositeExtract %float %81666 0
-     %105849 = OpCompositeExtract %float %81666 1
-               OpBranch %81668
-      %81654 = OpLabel
-      %81656 = OpIAdd %uint %143191 %int_1
-      %81657 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143191
-      %81658 = OpLoad %float %81657
-               OpBranch %81668
-      %81667 = OpLabel
-               OpUnreachable
-      %81668 = OpLabel
-     %143196 = OpPhi %uint %81656 %81654 %143191 %81662
-     %143195 = OpPhi %uint %143190 %81654 %81664 %81662
-     %143193 = OpPhi %float %81658 %81654 %105848 %81662
-     %143192 = OpPhi %float %81658 %81654 %105849 %81662
-      %73031 = OpLoad %uint %65920
-      %73032 = OpBitwiseAnd %uint %73031 %uint_4096
-      %73033 = OpUGreaterThan %bool %73032 %uint_0
-               OpSelectionMerge %81691 None
-               OpSwitch %uint_0 %81675
-      %81675 = OpLabel
-               OpSelectionMerge %81690 None
-               OpBranchConditional %73033 %81677 %81685
-      %81685 = OpLabel
-      %81687 = OpISub %uint %143195 %int_1
-      %81688 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81687
-      %81689 = OpLoad %_arr_float_uint_2 %81688
-     %105839 = OpCompositeExtract %float %81689 0
-     %105840 = OpCompositeExtract %float %81689 1
-               OpBranch %81691
-      %81677 = OpLabel
-      %81679 = OpIAdd %uint %143196 %int_1
-      %81680 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143196
-      %81681 = OpLoad %float %81680
-               OpBranch %81691
-      %81690 = OpLabel
-               OpUnreachable
-      %81691 = OpLabel
-     %157142 = OpPhi %uint %81679 %81677 %143196 %81685
-     %156895 = OpPhi %uint %143195 %81677 %81687 %81685
-     %143198 = OpPhi %float %81681 %81677 %105839 %81685
-     %143197 = OpPhi %float %81681 %81677 %105840 %81685
-      %73043 = OpCompositeConstruct %v4float %143183 %143188 %143193 %143198
-      %73052 = OpCompositeConstruct %v4float %143182 %143187 %143192 %143197
-      %73053 = OpCompositeConstruct %_arr_v4float_uint_2 %73043 %73052
-      %81695 = OpIAdd %uint %140441 %int_1
-      %81697 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %140441
-               OpStore %81697 %73053
-               OpBranch %74338
-      %72981 = OpLabel
-      %72984 = OpLoad %uint %65920
-      %72985 = OpBitwiseAnd %uint %72984 %uint_32768
-      %72986 = OpUGreaterThan %bool %72985 %uint_0
-               OpSelectionMerge %81571 None
-               OpSwitch %uint_0 %81555
-      %81555 = OpLabel
-               OpSelectionMerge %81570 None
-               OpBranchConditional %72986 %81557 %81565
-      %81565 = OpLabel
-      %81567 = OpISub %uint %140443 %int_1
-      %81568 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %81567
-      %81569 = OpLoad %_arr_v2float_uint_2 %81568
-     %105884 = OpCompositeExtract %v2float %81569 0
-     %105885 = OpCompositeExtract %v2float %81569 1
-               OpBranch %81571
-      %81557 = OpLabel
-      %81559 = OpIAdd %uint %141789 %int_1
-      %81560 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %81561 = OpLoad %v2float %81560
-               OpBranch %81571
-      %81570 = OpLabel
-               OpUnreachable
-      %81571 = OpLabel
-     %227078 = OpPhi %uint %81559 %81557 %141789 %81565
-     %225202 = OpPhi %uint %140443 %81557 %81567 %81565
-     %143204 = OpPhi %v2float %81561 %81557 %105884 %81565
-     %143203 = OpPhi %v2float %81561 %81557 %105885 %81565
-      %72990 = OpLoad %uint %65920
-      %72991 = OpBitwiseAnd %uint %72990 %uint_16384
-      %72992 = OpUGreaterThan %bool %72991 %uint_0
-               OpSelectionMerge %81594 None
-               OpSwitch %uint_0 %81578
-      %81578 = OpLabel
-               OpSelectionMerge %81593 None
-               OpBranchConditional %72992 %81580 %81588
-      %81588 = OpLabel
-      %81590 = OpISub %uint %140422 %int_1
-      %81591 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81590
-      %81592 = OpLoad %_arr_float_uint_2 %81591
-     %105875 = OpCompositeExtract %float %81592 0
-     %105876 = OpCompositeExtract %float %81592 1
-               OpBranch %81594
-      %81580 = OpLabel
-      %81582 = OpIAdd %uint %140424 %int_1
-      %81583 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %81584 = OpLoad %float %81583
-               OpBranch %81594
-      %81593 = OpLabel
-               OpUnreachable
-      %81594 = OpLabel
-     %157141 = OpPhi %uint %81582 %81580 %140424 %81588
-     %156894 = OpPhi %uint %140422 %81580 %81590 %81588
-     %143209 = OpPhi %float %81584 %81580 %105875 %81588
-     %143208 = OpPhi %float %81584 %81580 %105876 %81588
-      %72998 = OpCompositeExtract %float %143204 0
-      %72999 = OpCompositeExtract %float %143204 1
-      %73000 = OpCompositeConstruct %v3float %72998 %72999 %143209
-      %73005 = OpCompositeExtract %float %143203 0
-      %73006 = OpCompositeExtract %float %143203 1
-      %73007 = OpCompositeConstruct %v3float %73005 %73006 %143208
-      %73008 = OpCompositeConstruct %_arr_v3float_uint_2 %73000 %73007
-      %81598 = OpIAdd %uint %140432 %int_1
-      %81600 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %140432
-               OpStore %81600 %73008
-               OpBranch %74338
-      %72946 = OpLabel
-      %72949 = OpLoad %uint %65920
-      %72950 = OpBitwiseAnd %uint %72949 %uint_32768
-      %72951 = OpUGreaterThan %bool %72950 %uint_0
-               OpSelectionMerge %81497 None
-               OpSwitch %uint_0 %81481
-      %81481 = OpLabel
-               OpSelectionMerge %81496 None
-               OpBranchConditional %72951 %81483 %81491
-      %81491 = OpLabel
-      %81493 = OpISub %uint %140422 %int_1
-      %81494 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81493
-      %81495 = OpLoad %_arr_float_uint_2 %81494
-     %105911 = OpCompositeExtract %float %81495 0
-     %105912 = OpCompositeExtract %float %81495 1
-               OpBranch %81497
-      %81483 = OpLabel
-      %81485 = OpIAdd %uint %140424 %int_1
-      %81486 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %81487 = OpLoad %float %81486
-               OpBranch %81497
-      %81496 = OpLabel
-               OpUnreachable
-      %81497 = OpLabel
-     %143216 = OpPhi %uint %81485 %81483 %140424 %81491
-     %143215 = OpPhi %uint %140422 %81483 %81493 %81491
-     %143213 = OpPhi %float %81487 %81483 %105911 %81491
-     %143212 = OpPhi %float %81487 %81483 %105912 %81491
-      %72955 = OpLoad %uint %65920
-      %72956 = OpBitwiseAnd %uint %72955 %uint_16384
-      %72957 = OpUGreaterThan %bool %72956 %uint_0
-               OpSelectionMerge %81520 None
-               OpSwitch %uint_0 %81504
-      %81504 = OpLabel
-               OpSelectionMerge %81519 None
-               OpBranchConditional %72957 %81506 %81514
-      %81514 = OpLabel
-      %81516 = OpISub %uint %143215 %int_1
-      %81517 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81516
-      %81518 = OpLoad %_arr_float_uint_2 %81517
-     %105902 = OpCompositeExtract %float %81518 0
-     %105903 = OpCompositeExtract %float %81518 1
-               OpBranch %81520
-      %81506 = OpLabel
-      %81508 = OpIAdd %uint %143216 %int_1
-      %81509 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143216
-      %81510 = OpLoad %float %81509
-               OpBranch %81520
-      %81519 = OpLabel
-               OpUnreachable
-      %81520 = OpLabel
-     %143221 = OpPhi %uint %81508 %81506 %143216 %81514
-     %143220 = OpPhi %uint %143215 %81506 %81516 %81514
-     %143218 = OpPhi %float %81510 %81506 %105902 %81514
-     %143217 = OpPhi %float %81510 %81506 %105903 %81514
-      %72961 = OpLoad %uint %65920
-      %72962 = OpBitwiseAnd %uint %72961 %uint_8192
-      %72963 = OpUGreaterThan %bool %72962 %uint_0
-               OpSelectionMerge %81543 None
-               OpSwitch %uint_0 %81527
-      %81527 = OpLabel
-               OpSelectionMerge %81542 None
-               OpBranchConditional %72963 %81529 %81537
-      %81537 = OpLabel
-      %81539 = OpISub %uint %143220 %int_1
-      %81540 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81539
-      %81541 = OpLoad %_arr_float_uint_2 %81540
-     %105893 = OpCompositeExtract %float %81541 0
-     %105894 = OpCompositeExtract %float %81541 1
-               OpBranch %81543
-      %81529 = OpLabel
-      %81531 = OpIAdd %uint %143221 %int_1
-      %81532 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143221
-      %81533 = OpLoad %float %81532
-               OpBranch %81543
-      %81542 = OpLabel
-               OpUnreachable
-      %81543 = OpLabel
-     %157140 = OpPhi %uint %81531 %81529 %143221 %81537
-     %156893 = OpPhi %uint %143220 %81529 %81539 %81537
-     %143223 = OpPhi %float %81533 %81529 %105893 %81537
-     %143222 = OpPhi %float %81533 %81529 %105894 %81537
-      %72971 = OpCompositeConstruct %v3float %143213 %143218 %143223
-      %72978 = OpCompositeConstruct %v3float %143212 %143217 %143222
-      %72979 = OpCompositeConstruct %_arr_v3float_uint_2 %72971 %72978
-      %81547 = OpIAdd %uint %140432 %int_1
-      %81549 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %140432
-               OpStore %81549 %72979
-               OpBranch %74338
-      %72921 = OpLabel
-      %72924 = OpLoad %uint %65920
-      %72925 = OpBitwiseAnd %uint %72924 %uint_32768
-      %72926 = OpUGreaterThan %bool %72925 %uint_0
-               OpSelectionMerge %81446 None
-               OpSwitch %uint_0 %81430
-      %81430 = OpLabel
-               OpSelectionMerge %81445 None
-               OpBranchConditional %72926 %81432 %81440
-      %81440 = OpLabel
-      %81442 = OpISub %uint %140422 %int_1
-      %81443 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81442
-      %81444 = OpLoad %_arr_float_uint_2 %81443
-     %105929 = OpCompositeExtract %float %81444 0
-     %105930 = OpCompositeExtract %float %81444 1
-               OpBranch %81446
-      %81432 = OpLabel
-      %81434 = OpIAdd %uint %140424 %int_1
-      %81435 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %81436 = OpLoad %float %81435
-               OpBranch %81446
-      %81445 = OpLabel
-               OpUnreachable
-      %81446 = OpLabel
-     %143231 = OpPhi %uint %81434 %81432 %140424 %81440
-     %143230 = OpPhi %uint %140422 %81432 %81442 %81440
-     %143228 = OpPhi %float %81436 %81432 %105929 %81440
-     %143227 = OpPhi %float %81436 %81432 %105930 %81440
-      %72930 = OpLoad %uint %65920
-      %72931 = OpBitwiseAnd %uint %72930 %uint_16384
-      %72932 = OpUGreaterThan %bool %72931 %uint_0
-               OpSelectionMerge %81469 None
-               OpSwitch %uint_0 %81453
-      %81453 = OpLabel
-               OpSelectionMerge %81468 None
-               OpBranchConditional %72932 %81455 %81463
-      %81463 = OpLabel
-      %81465 = OpISub %uint %143230 %int_1
-      %81466 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81465
-      %81467 = OpLoad %_arr_float_uint_2 %81466
-     %105920 = OpCompositeExtract %float %81467 0
-     %105921 = OpCompositeExtract %float %81467 1
-               OpBranch %81469
-      %81455 = OpLabel
-      %81457 = OpIAdd %uint %143231 %int_1
-      %81458 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143231
-      %81459 = OpLoad %float %81458
-               OpBranch %81469
-      %81468 = OpLabel
-               OpUnreachable
-      %81469 = OpLabel
-     %157139 = OpPhi %uint %81457 %81455 %143231 %81463
-     %156892 = OpPhi %uint %143230 %81455 %81465 %81463
-     %143233 = OpPhi %float %81459 %81455 %105920 %81463
-     %143232 = OpPhi %float %81459 %81455 %105921 %81463
-      %72938 = OpCompositeConstruct %v2float %143228 %143233
-      %72943 = OpCompositeConstruct %v2float %143227 %143232
-      %72944 = OpCompositeConstruct %_arr_v2float_uint_2 %72938 %72943
-      %81473 = OpIAdd %uint %140443 %int_1
-      %81475 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %140443
-               OpStore %81475 %72944
-               OpBranch %74338
-      %72673 = OpLabel
-      %72676 = OpLoad %uint %65920
-      %72677 = OpBitwiseAnd %uint %72676 %uint_32768
-      %72678 = OpUGreaterThan %bool %72677 %uint_0
-               OpSelectionMerge %81418 None
-               OpSwitch %uint_0 %81402
-      %81402 = OpLabel
-               OpSelectionMerge %81417 None
-               OpBranchConditional %72678 %81404 %81412
-      %81412 = OpLabel
-      %81414 = OpISub %uint %140441 %int_1
-      %81415 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %81414
-      %81416 = OpLoad %_arr_v4float_uint_2 %81415
-     %105938 = OpCompositeExtract %v4float %81416 0
-     %105939 = OpCompositeExtract %v4float %81416 1
-               OpBranch %81418
-      %81404 = OpLabel
-      %81406 = OpIAdd %uint %140467 %int_1
-      %81407 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %81408 = OpLoad %v4float %81407
-               OpBranch %81418
-      %81417 = OpLabel
-               OpUnreachable
-      %81418 = OpLabel
-     %225491 = OpPhi %uint %81406 %81404 %140467 %81412
-     %143238 = OpPhi %uint %140441 %81404 %81414 %81412
-     %143237 = OpPhi %v4float %81408 %81404 %105938 %81412
-     %143236 = OpPhi %v4float %81408 %81404 %105939 %81412
-      %72682 = OpFOrdGreaterThan %v4bool %143236 %3375
-      %72685 = OpFOrdLessThan %v4bool %143237 %3375
-      %72686 = OpSelect %v4bool %72685 %72682 %3373
-      %72689 = OpExtInst %v4float %1 FAbs %143237
-      %72692 = OpExtInst %v4float %1 FAbs %143236
-      %72693 = OpExtInst %v4float %1 FMin %72689 %72692
-      %72695 = OpSelect %v4float %72686 %3375 %72693
-      %72702 = OpExtInst %v4float %1 FMax %72689 %72692
-      %72704 = OpCompositeExtract %float %143236 0
-      %72708 = OpCompositeExtract %float %72695 1
-      %72710 = OpCompositeExtract %float %72695 2
-      %72712 = OpCompositeExtract %float %72695 3
-      %72713 = OpCompositeConstruct %v4float %72704 %72708 %72710 %72712
-      %72714 = OpExtInst %float %1 Length %72713
-      %72715 = OpFDiv %float %72704 %72714
-      %72717 = OpCompositeExtract %float %143236 1
-      %72719 = OpCompositeExtract %float %72695 0
-      %72726 = OpCompositeConstruct %v4float %72719 %72717 %72710 %72712
-      %72727 = OpExtInst %float %1 Length %72726
-      %72728 = OpFDiv %float %72717 %72727
-      %72730 = OpCompositeExtract %float %143236 2
-      %72739 = OpCompositeConstruct %v4float %72719 %72708 %72730 %72712
-      %72740 = OpExtInst %float %1 Length %72739
-      %72741 = OpFDiv %float %72730 %72740
-      %72743 = OpCompositeExtract %float %143236 3
-      %72752 = OpCompositeConstruct %v4float %72719 %72708 %72710 %72743
-      %72753 = OpExtInst %float %1 Length %72752
-      %72754 = OpFDiv %float %72743 %72753
-      %72755 = OpCompositeConstruct %v4float %72715 %72728 %72741 %72754
-      %72761 = OpCompositeExtract %float %72702 1
-      %72763 = OpCompositeExtract %float %72702 2
-      %72765 = OpCompositeExtract %float %72702 3
-      %72766 = OpCompositeConstruct %v4float %72704 %72761 %72763 %72765
-      %72767 = OpExtInst %float %1 Length %72766
-      %72768 = OpFDiv %float %72704 %72767
-      %72772 = OpCompositeExtract %float %72702 0
-      %72779 = OpCompositeConstruct %v4float %72772 %72717 %72763 %72765
-      %72780 = OpExtInst %float %1 Length %72779
-      %72781 = OpFDiv %float %72717 %72780
-      %72792 = OpCompositeConstruct %v4float %72772 %72761 %72730 %72765
-      %72793 = OpExtInst %float %1 Length %72792
-      %72794 = OpFDiv %float %72730 %72793
-      %72805 = OpCompositeConstruct %v4float %72772 %72761 %72763 %72743
-      %72806 = OpExtInst %float %1 Length %72805
-      %72807 = OpFDiv %float %72743 %72806
-      %72808 = OpCompositeConstruct %v4float %72768 %72781 %72794 %72807
-      %72809 = OpExtInst %v4float %1 FMax %72755 %72808
-      %72811 = OpCompositeExtract %float %143237 0
-      %72820 = OpCompositeConstruct %v4float %72811 %72708 %72710 %72712
-      %72821 = OpExtInst %float %1 Length %72820
-      %72822 = OpFDiv %float %72811 %72821
-      %72824 = OpCompositeExtract %float %143237 1
-      %72833 = OpCompositeConstruct %v4float %72719 %72824 %72710 %72712
-      %72834 = OpExtInst %float %1 Length %72833
-      %72835 = OpFDiv %float %72824 %72834
-      %72837 = OpCompositeExtract %float %143237 2
-      %72846 = OpCompositeConstruct %v4float %72719 %72708 %72837 %72712
-      %72847 = OpExtInst %float %1 Length %72846
-      %72848 = OpFDiv %float %72837 %72847
-      %72850 = OpCompositeExtract %float %143237 3
-      %72859 = OpCompositeConstruct %v4float %72719 %72708 %72710 %72850
-      %72860 = OpExtInst %float %1 Length %72859
-      %72861 = OpFDiv %float %72850 %72860
-      %72862 = OpCompositeConstruct %v4float %72822 %72835 %72848 %72861
-      %72873 = OpCompositeConstruct %v4float %72811 %72761 %72763 %72765
-      %72874 = OpExtInst %float %1 Length %72873
-      %72875 = OpFDiv %float %72811 %72874
-      %72886 = OpCompositeConstruct %v4float %72772 %72824 %72763 %72765
-      %72887 = OpExtInst %float %1 Length %72886
-      %72888 = OpFDiv %float %72824 %72887
-      %72899 = OpCompositeConstruct %v4float %72772 %72761 %72837 %72765
-      %72900 = OpExtInst %float %1 Length %72899
-      %72901 = OpFDiv %float %72837 %72900
-      %72912 = OpCompositeConstruct %v4float %72772 %72761 %72763 %72850
-      %72913 = OpExtInst %float %1 Length %72912
-      %72914 = OpFDiv %float %72850 %72913
-      %72915 = OpCompositeConstruct %v4float %72875 %72888 %72901 %72914
-      %72916 = OpExtInst %v4float %1 FMin %72862 %72915
-      %72919 = OpCompositeConstruct %_arr_v4float_uint_2 %72916 %72809
-      %81422 = OpIAdd %uint %143238 %int_1
-      %81424 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143238
-               OpStore %81424 %72919
-               OpBranch %74338
-      %72501 = OpLabel
-      %72504 = OpLoad %uint %65920
-      %72505 = OpBitwiseAnd %uint %72504 %uint_32768
-      %72506 = OpUGreaterThan %bool %72505 %uint_0
-               OpSelectionMerge %81390 None
-               OpSwitch %uint_0 %81374
-      %81374 = OpLabel
-               OpSelectionMerge %81389 None
-               OpBranchConditional %72506 %81376 %81384
-      %81384 = OpLabel
-      %81386 = OpISub %uint %140432 %int_1
-      %81387 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %81386
-      %81388 = OpLoad %_arr_v3float_uint_2 %81387
-     %105947 = OpCompositeExtract %v3float %81388 0
-     %105948 = OpCompositeExtract %v3float %81388 1
-               OpBranch %81390
-      %81376 = OpLabel
-      %81378 = OpIAdd %uint %140435 %int_1
-      %81379 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %81380 = OpLoad %v3float %81379
-               OpBranch %81390
-      %81389 = OpLabel
-               OpUnreachable
-      %81390 = OpLabel
-     %224716 = OpPhi %uint %81378 %81376 %140435 %81384
-     %143241 = OpPhi %uint %140432 %81376 %81386 %81384
-     %143240 = OpPhi %v3float %81380 %81376 %105947 %81384
-     %143239 = OpPhi %v3float %81380 %81376 %105948 %81384
-      %72510 = OpFOrdGreaterThan %v3bool %143239 %123
-      %72513 = OpFOrdLessThan %v3bool %143240 %123
-      %72514 = OpSelect %v3bool %72513 %72510 %3323
-      %72517 = OpExtInst %v3float %1 FAbs %143240
-      %72520 = OpExtInst %v3float %1 FAbs %143239
-      %72521 = OpExtInst %v3float %1 FMin %72517 %72520
-      %72523 = OpSelect %v3float %72514 %123 %72521
-      %72530 = OpExtInst %v3float %1 FMax %72517 %72520
-      %72532 = OpCompositeExtract %float %143239 0
-      %72536 = OpCompositeExtract %float %72523 1
-      %72538 = OpCompositeExtract %float %72523 2
-      %72539 = OpCompositeConstruct %v3float %72532 %72536 %72538
-      %72540 = OpExtInst %float %1 Length %72539
-      %72541 = OpFDiv %float %72532 %72540
-      %72543 = OpCompositeExtract %float %143239 1
-      %72545 = OpCompositeExtract %float %72523 0
-      %72550 = OpCompositeConstruct %v3float %72545 %72543 %72538
-      %72551 = OpExtInst %float %1 Length %72550
-      %72552 = OpFDiv %float %72543 %72551
-      %72554 = OpCompositeExtract %float %143239 2
-      %72561 = OpCompositeConstruct %v3float %72545 %72536 %72554
-      %72562 = OpExtInst %float %1 Length %72561
-      %72563 = OpFDiv %float %72554 %72562
-      %72564 = OpCompositeConstruct %v3float %72541 %72552 %72563
-      %72570 = OpCompositeExtract %float %72530 1
-      %72572 = OpCompositeExtract %float %72530 2
-      %72573 = OpCompositeConstruct %v3float %72532 %72570 %72572
-      %72574 = OpExtInst %float %1 Length %72573
-      %72575 = OpFDiv %float %72532 %72574
-      %72579 = OpCompositeExtract %float %72530 0
-      %72584 = OpCompositeConstruct %v3float %72579 %72543 %72572
-      %72585 = OpExtInst %float %1 Length %72584
-      %72586 = OpFDiv %float %72543 %72585
-      %72595 = OpCompositeConstruct %v3float %72579 %72570 %72554
-      %72596 = OpExtInst %float %1 Length %72595
-      %72597 = OpFDiv %float %72554 %72596
-      %72598 = OpCompositeConstruct %v3float %72575 %72586 %72597
-      %72599 = OpExtInst %v3float %1 FMax %72564 %72598
-      %72601 = OpCompositeExtract %float %143240 0
-      %72608 = OpCompositeConstruct %v3float %72601 %72536 %72538
-      %72609 = OpExtInst %float %1 Length %72608
-      %72610 = OpFDiv %float %72601 %72609
-      %72612 = OpCompositeExtract %float %143240 1
-      %72619 = OpCompositeConstruct %v3float %72545 %72612 %72538
-      %72620 = OpExtInst %float %1 Length %72619
-      %72621 = OpFDiv %float %72612 %72620
-      %72623 = OpCompositeExtract %float %143240 2
-      %72630 = OpCompositeConstruct %v3float %72545 %72536 %72623
-      %72631 = OpExtInst %float %1 Length %72630
-      %72632 = OpFDiv %float %72623 %72631
-      %72633 = OpCompositeConstruct %v3float %72610 %72621 %72632
-      %72642 = OpCompositeConstruct %v3float %72601 %72570 %72572
-      %72643 = OpExtInst %float %1 Length %72642
-      %72644 = OpFDiv %float %72601 %72643
-      %72653 = OpCompositeConstruct %v3float %72579 %72612 %72572
-      %72654 = OpExtInst %float %1 Length %72653
-      %72655 = OpFDiv %float %72612 %72654
-      %72664 = OpCompositeConstruct %v3float %72579 %72570 %72623
-      %72665 = OpExtInst %float %1 Length %72664
-      %72666 = OpFDiv %float %72623 %72665
-      %72667 = OpCompositeConstruct %v3float %72644 %72655 %72666
-      %72668 = OpExtInst %v3float %1 FMin %72633 %72667
-      %72671 = OpCompositeConstruct %_arr_v3float_uint_2 %72668 %72599
-      %81394 = OpIAdd %uint %143241 %int_1
-      %81396 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143241
-               OpStore %81396 %72671
-               OpBranch %74338
-      %72389 = OpLabel
-      %72392 = OpLoad %uint %65920
-      %72393 = OpBitwiseAnd %uint %72392 %uint_32768
-      %72394 = OpUGreaterThan %bool %72393 %uint_0
-               OpSelectionMerge %81362 None
-               OpSwitch %uint_0 %81346
-      %81346 = OpLabel
-               OpSelectionMerge %81361 None
-               OpBranchConditional %72394 %81348 %81356
-      %81356 = OpLabel
-      %81358 = OpISub %uint %140443 %int_1
-      %81359 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %81358
-      %81360 = OpLoad %_arr_v2float_uint_2 %81359
-     %105956 = OpCompositeExtract %v2float %81360 0
-     %105957 = OpCompositeExtract %v2float %81360 1
-               OpBranch %81362
-      %81348 = OpLabel
-      %81350 = OpIAdd %uint %141789 %int_1
-      %81351 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %81352 = OpLoad %v2float %81351
-               OpBranch %81362
-      %81361 = OpLabel
-               OpUnreachable
-      %81362 = OpLabel
-     %227069 = OpPhi %uint %81350 %81348 %141789 %81356
-     %143244 = OpPhi %uint %140443 %81348 %81358 %81356
-     %143243 = OpPhi %v2float %81352 %81348 %105956 %81356
-     %143242 = OpPhi %v2float %81352 %81348 %105957 %81356
-      %72398 = OpFOrdGreaterThan %v2bool %143242 %3274
-      %72401 = OpFOrdLessThan %v2bool %143243 %3274
-      %72402 = OpSelect %v2bool %72401 %72398 %3272
-      %72405 = OpExtInst %v2float %1 FAbs %143243
-      %72408 = OpExtInst %v2float %1 FAbs %143242
-      %72409 = OpExtInst %v2float %1 FMin %72405 %72408
-      %72411 = OpSelect %v2float %72402 %3274 %72409
-      %72418 = OpExtInst %v2float %1 FMax %72405 %72408
-      %72420 = OpCompositeExtract %float %143242 0
-      %72424 = OpCompositeExtract %float %72411 1
-      %72425 = OpCompositeConstruct %v2float %72420 %72424
-      %72426 = OpExtInst %float %1 Length %72425
-      %72427 = OpFDiv %float %72420 %72426
-      %72429 = OpCompositeExtract %float %143242 1
-      %72431 = OpCompositeExtract %float %72411 0
-      %72434 = OpCompositeConstruct %v2float %72431 %72429
-      %72435 = OpExtInst %float %1 Length %72434
-      %72436 = OpFDiv %float %72429 %72435
-      %72437 = OpCompositeConstruct %v2float %72427 %72436
-      %72443 = OpCompositeExtract %float %72418 1
-      %72444 = OpCompositeConstruct %v2float %72420 %72443
-      %72445 = OpExtInst %float %1 Length %72444
-      %72446 = OpFDiv %float %72420 %72445
-      %72450 = OpCompositeExtract %float %72418 0
-      %72453 = OpCompositeConstruct %v2float %72450 %72429
-      %72454 = OpExtInst %float %1 Length %72453
-      %72455 = OpFDiv %float %72429 %72454
-      %72456 = OpCompositeConstruct %v2float %72446 %72455
-      %72457 = OpExtInst %v2float %1 FMax %72437 %72456
-      %72459 = OpCompositeExtract %float %143243 0
-      %72464 = OpCompositeConstruct %v2float %72459 %72424
-      %72465 = OpExtInst %float %1 Length %72464
-      %72466 = OpFDiv %float %72459 %72465
-      %72468 = OpCompositeExtract %float %143243 1
-      %72473 = OpCompositeConstruct %v2float %72431 %72468
-      %72474 = OpExtInst %float %1 Length %72473
-      %72475 = OpFDiv %float %72468 %72474
-      %72476 = OpCompositeConstruct %v2float %72466 %72475
-      %72483 = OpCompositeConstruct %v2float %72459 %72443
-      %72484 = OpExtInst %float %1 Length %72483
-      %72485 = OpFDiv %float %72459 %72484
-      %72492 = OpCompositeConstruct %v2float %72450 %72468
-      %72493 = OpExtInst %float %1 Length %72492
-      %72494 = OpFDiv %float %72468 %72493
-      %72495 = OpCompositeConstruct %v2float %72485 %72494
-      %72496 = OpExtInst %v2float %1 FMin %72476 %72495
-      %72499 = OpCompositeConstruct %_arr_v2float_uint_2 %72496 %72457
-      %81366 = OpIAdd %uint %143244 %int_1
-      %81368 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143244
-               OpStore %81368 %72499
-               OpBranch %74338
-      %72350 = OpLabel
-      %72353 = OpLoad %uint %65920
-      %72354 = OpBitwiseAnd %uint %72353 %uint_32768
-      %72355 = OpUGreaterThan %bool %72354 %uint_0
-               OpSelectionMerge %81288 None
-               OpSwitch %uint_0 %81272
-      %81272 = OpLabel
-               OpSelectionMerge %81287 None
-               OpBranchConditional %72355 %81274 %81282
-      %81282 = OpLabel
-      %81284 = OpISub %uint %140441 %int_1
-      %81285 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %81284
-      %81286 = OpLoad %_arr_v4float_uint_2 %81285
-     %105983 = OpCompositeExtract %v4float %81286 0
-     %105984 = OpCompositeExtract %v4float %81286 1
-               OpBranch %81288
-      %81274 = OpLabel
-      %81276 = OpIAdd %uint %140467 %int_1
-      %81277 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %81278 = OpLoad %v4float %81277
-               OpBranch %81288
-      %81287 = OpLabel
-               OpUnreachable
-      %81288 = OpLabel
-     %143249 = OpPhi %uint %81276 %81274 %140467 %81282
-     %143248 = OpPhi %uint %140441 %81274 %81284 %81282
-     %143246 = OpPhi %v4float %81278 %81274 %105983 %81282
-     %143245 = OpPhi %v4float %81278 %81274 %105984 %81282
-      %72359 = OpLoad %uint %65920
-      %72360 = OpBitwiseAnd %uint %72359 %uint_16384
-      %72361 = OpUGreaterThan %bool %72360 %uint_0
-               OpSelectionMerge %81311 None
-               OpSwitch %uint_0 %81295
-      %81295 = OpLabel
-               OpSelectionMerge %81310 None
-               OpBranchConditional %72361 %81297 %81305
-      %81305 = OpLabel
-      %81307 = OpISub %uint %143248 %int_1
-      %81308 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %81307
-      %81309 = OpLoad %_arr_v4float_uint_2 %81308
-     %105974 = OpCompositeExtract %v4float %81309 0
-     %105975 = OpCompositeExtract %v4float %81309 1
-               OpBranch %81311
-      %81297 = OpLabel
-      %81299 = OpIAdd %uint %143249 %int_1
-      %81300 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %143249
-      %81301 = OpLoad %v4float %81300
-               OpBranch %81311
-      %81310 = OpLabel
-               OpUnreachable
-      %81311 = OpLabel
-     %225488 = OpPhi %uint %81299 %81297 %143249 %81305
-     %143264 = OpPhi %uint %143248 %81297 %81307 %81305
-     %143251 = OpPhi %v4float %81301 %81297 %105974 %81305
-     %143250 = OpPhi %v4float %81301 %81297 %105975 %81305
-      %72365 = OpLoad %uint %65920
-      %72366 = OpBitwiseAnd %uint %72365 %uint_8192
-      %72367 = OpUGreaterThan %bool %72366 %uint_0
-               OpSelectionMerge %81334 None
-               OpSwitch %uint_0 %81318
-      %81318 = OpLabel
-               OpSelectionMerge %81333 None
-               OpBranchConditional %72367 %81320 %81328
-      %81328 = OpLabel
-      %81330 = OpISub %uint %140422 %int_1
-      %81331 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81330
-      %81332 = OpLoad %_arr_float_uint_2 %81331
-     %105965 = OpCompositeExtract %float %81332 0
-     %105966 = OpCompositeExtract %float %81332 1
-               OpBranch %81334
-      %81320 = OpLabel
-      %81322 = OpIAdd %uint %140424 %int_1
-      %81323 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %81324 = OpLoad %float %81323
-               OpBranch %81334
-      %81333 = OpLabel
-               OpUnreachable
-      %81334 = OpLabel
-     %157135 = OpPhi %uint %81322 %81320 %140424 %81328
-     %156888 = OpPhi %uint %140422 %81320 %81330 %81328
-     %143258 = OpPhi %float %81324 %81320 %105965 %81328
-     %143257 = OpPhi %float %81324 %81320 %105966 %81328
-      %72375 = OpCompositeConstruct %v4float %143258 %143258 %143258 %143258
-      %72376 = OpExtInst %v4float %1 FMix %143246 %143251 %72375
-      %72384 = OpCompositeConstruct %v4float %143257 %143257 %143257 %143257
-      %72385 = OpExtInst %v4float %1 FMix %143245 %143250 %72384
-     %110059 = OpCompositeConstruct %_arr_v4float_uint_2 %72376 %72385
-      %81338 = OpIAdd %uint %143264 %int_1
-      %81340 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143264
-               OpStore %81340 %110059
-               OpBranch %74338
-      %72309 = OpLabel
-      %72312 = OpLoad %uint %65920
-      %72313 = OpBitwiseAnd %uint %72312 %uint_32768
-      %72314 = OpUGreaterThan %bool %72313 %uint_0
-               OpSelectionMerge %81214 None
-               OpSwitch %uint_0 %81198
-      %81198 = OpLabel
-               OpSelectionMerge %81213 None
-               OpBranchConditional %72314 %81200 %81208
-      %81208 = OpLabel
-      %81210 = OpISub %uint %140441 %int_1
-      %81211 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %81210
-      %81212 = OpLoad %_arr_v4float_uint_2 %81211
-     %106010 = OpCompositeExtract %v4float %81212 0
-     %106011 = OpCompositeExtract %v4float %81212 1
-               OpBranch %81214
-      %81200 = OpLabel
-      %81202 = OpIAdd %uint %140467 %int_1
-      %81203 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %81204 = OpLoad %v4float %81203
-               OpBranch %81214
-      %81213 = OpLabel
-               OpUnreachable
-      %81214 = OpLabel
-     %225486 = OpPhi %uint %81202 %81200 %140467 %81208
-     %143283 = OpPhi %uint %140441 %81200 %81210 %81208
-     %143266 = OpPhi %v4float %81204 %81200 %106010 %81208
-     %143265 = OpPhi %v4float %81204 %81200 %106011 %81208
-      %72318 = OpLoad %uint %65920
-      %72319 = OpBitwiseAnd %uint %72318 %uint_16384
-      %72320 = OpUGreaterThan %bool %72319 %uint_0
-               OpSelectionMerge %81237 None
-               OpSwitch %uint_0 %81221
-      %81221 = OpLabel
-               OpSelectionMerge %81236 None
-               OpBranchConditional %72320 %81223 %81231
-      %81231 = OpLabel
-      %81233 = OpISub %uint %140422 %int_1
-      %81234 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81233
-      %81235 = OpLoad %_arr_float_uint_2 %81234
-     %106001 = OpCompositeExtract %float %81235 0
-     %106002 = OpCompositeExtract %float %81235 1
-               OpBranch %81237
-      %81223 = OpLabel
-      %81225 = OpIAdd %uint %140424 %int_1
-      %81226 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %81227 = OpLoad %float %81226
-               OpBranch %81237
-      %81236 = OpLabel
-               OpUnreachable
-      %81237 = OpLabel
-     %143274 = OpPhi %uint %81225 %81223 %140424 %81231
-     %143273 = OpPhi %uint %140422 %81223 %81233 %81231
-     %143271 = OpPhi %float %81227 %81223 %106001 %81231
-     %143270 = OpPhi %float %81227 %81223 %106002 %81231
-      %72324 = OpLoad %uint %65920
-      %72325 = OpBitwiseAnd %uint %72324 %uint_8192
-      %72326 = OpUGreaterThan %bool %72325 %uint_0
-               OpSelectionMerge %81260 None
-               OpSwitch %uint_0 %81244
-      %81244 = OpLabel
-               OpSelectionMerge %81259 None
-               OpBranchConditional %72326 %81246 %81254
-      %81254 = OpLabel
-      %81256 = OpISub %uint %143273 %int_1
-      %81257 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81256
-      %81258 = OpLoad %_arr_float_uint_2 %81257
-     %105992 = OpCompositeExtract %float %81258 0
-     %105993 = OpCompositeExtract %float %81258 1
-               OpBranch %81260
-      %81246 = OpLabel
-      %81248 = OpIAdd %uint %143274 %int_1
-      %81249 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143274
-      %81250 = OpLoad %float %81249
-               OpBranch %81260
-      %81259 = OpLabel
-               OpUnreachable
-      %81260 = OpLabel
-     %157134 = OpPhi %uint %81248 %81246 %143274 %81254
-     %156887 = OpPhi %uint %143273 %81246 %81256 %81254
-     %143276 = OpPhi %float %81250 %81246 %105992 %81254
-     %143275 = OpPhi %float %81250 %81246 %105993 %81254
-      %72334 = OpCompositeConstruct %v4float %143271 %143271 %143271 %143271
-      %72335 = OpCompositeConstruct %v4float %143276 %143276 %143276 %143276
-      %72336 = OpExtInst %v4float %1 FClamp %143266 %72334 %72335
-      %72344 = OpCompositeConstruct %v4float %143270 %143270 %143270 %143270
-      %72345 = OpCompositeConstruct %v4float %143275 %143275 %143275 %143275
-      %72346 = OpExtInst %v4float %1 FClamp %143265 %72344 %72345
-     %110044 = OpCompositeConstruct %_arr_v4float_uint_2 %72336 %72346
-      %81264 = OpIAdd %uint %143283 %int_1
-      %81266 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143283
-               OpStore %81266 %110044
-               OpBranch %74338
-      %72272 = OpLabel
-      %72275 = OpLoad %uint %65920
-      %72276 = OpBitwiseAnd %uint %72275 %uint_32768
-      %72277 = OpUGreaterThan %bool %72276 %uint_0
-               OpSelectionMerge %81140 None
-               OpSwitch %uint_0 %81124
-      %81124 = OpLabel
-               OpSelectionMerge %81139 None
-               OpBranchConditional %72277 %81126 %81134
-      %81134 = OpLabel
-      %81136 = OpISub %uint %140441 %int_1
-      %81137 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %81136
-      %81138 = OpLoad %_arr_v4float_uint_2 %81137
-     %106037 = OpCompositeExtract %v4float %81138 0
-     %106038 = OpCompositeExtract %v4float %81138 1
-               OpBranch %81140
-      %81126 = OpLabel
-      %81128 = OpIAdd %uint %140467 %int_1
-      %81129 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %81130 = OpLoad %v4float %81129
-               OpBranch %81140
-      %81139 = OpLabel
-               OpUnreachable
-      %81140 = OpLabel
-     %143288 = OpPhi %uint %81128 %81126 %140467 %81134
-     %143287 = OpPhi %uint %140441 %81126 %81136 %81134
-     %143285 = OpPhi %v4float %81130 %81126 %106037 %81134
-     %143284 = OpPhi %v4float %81130 %81126 %106038 %81134
-      %72281 = OpLoad %uint %65920
-      %72282 = OpBitwiseAnd %uint %72281 %uint_16384
-      %72283 = OpUGreaterThan %bool %72282 %uint_0
-               OpSelectionMerge %81163 None
-               OpSwitch %uint_0 %81147
-      %81147 = OpLabel
-               OpSelectionMerge %81162 None
-               OpBranchConditional %72283 %81149 %81157
-      %81157 = OpLabel
-      %81159 = OpISub %uint %143287 %int_1
-      %81160 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %81159
-      %81161 = OpLoad %_arr_v4float_uint_2 %81160
-     %106028 = OpCompositeExtract %v4float %81161 0
-     %106029 = OpCompositeExtract %v4float %81161 1
-               OpBranch %81163
-      %81149 = OpLabel
-      %81151 = OpIAdd %uint %143288 %int_1
-      %81152 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %143288
-      %81153 = OpLoad %v4float %81152
-               OpBranch %81163
-      %81162 = OpLabel
-               OpUnreachable
-      %81163 = OpLabel
-     %143293 = OpPhi %uint %81151 %81149 %143288 %81157
-     %143292 = OpPhi %uint %143287 %81149 %81159 %81157
-     %143290 = OpPhi %v4float %81153 %81149 %106028 %81157
-     %143289 = OpPhi %v4float %81153 %81149 %106029 %81157
-      %72287 = OpLoad %uint %65920
-      %72288 = OpBitwiseAnd %uint %72287 %uint_8192
-      %72289 = OpUGreaterThan %bool %72288 %uint_0
-               OpSelectionMerge %81186 None
-               OpSwitch %uint_0 %81170
-      %81170 = OpLabel
-               OpSelectionMerge %81185 None
-               OpBranchConditional %72289 %81172 %81180
-      %81180 = OpLabel
-      %81182 = OpISub %uint %143292 %int_1
-      %81183 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %81182
-      %81184 = OpLoad %_arr_v4float_uint_2 %81183
-     %106019 = OpCompositeExtract %v4float %81184 0
-     %106020 = OpCompositeExtract %v4float %81184 1
-               OpBranch %81186
-      %81172 = OpLabel
-      %81174 = OpIAdd %uint %143293 %int_1
-      %81175 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %143293
-      %81176 = OpLoad %v4float %81175
-               OpBranch %81186
-      %81185 = OpLabel
-               OpUnreachable
-      %81186 = OpLabel
-     %225483 = OpPhi %uint %81174 %81172 %143293 %81180
-     %143300 = OpPhi %uint %143292 %81172 %81182 %81180
-     %143295 = OpPhi %v4float %81176 %81172 %106019 %81180
-     %143294 = OpPhi %v4float %81176 %81172 %106020 %81180
-      %72297 = OpExtInst %v4float %1 FMix %143285 %143290 %143295
-      %72305 = OpExtInst %v4float %1 FMix %143284 %143289 %143294
-     %110029 = OpCompositeConstruct %_arr_v4float_uint_2 %72297 %72305
-      %81190 = OpIAdd %uint %143300 %int_1
-      %81192 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143300
-               OpStore %81192 %110029
-               OpBranch %74338
-      %72235 = OpLabel
-      %72238 = OpLoad %uint %65920
-      %72239 = OpBitwiseAnd %uint %72238 %uint_32768
-      %72240 = OpUGreaterThan %bool %72239 %uint_0
-               OpSelectionMerge %81066 None
-               OpSwitch %uint_0 %81050
-      %81050 = OpLabel
-               OpSelectionMerge %81065 None
-               OpBranchConditional %72240 %81052 %81060
-      %81060 = OpLabel
-      %81062 = OpISub %uint %140441 %int_1
-      %81063 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %81062
-      %81064 = OpLoad %_arr_v4float_uint_2 %81063
-     %106064 = OpCompositeExtract %v4float %81064 0
-     %106065 = OpCompositeExtract %v4float %81064 1
-               OpBranch %81066
-      %81052 = OpLabel
-      %81054 = OpIAdd %uint %140467 %int_1
-      %81055 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %81056 = OpLoad %v4float %81055
-               OpBranch %81066
-      %81065 = OpLabel
-               OpUnreachable
-      %81066 = OpLabel
-     %143305 = OpPhi %uint %81054 %81052 %140467 %81060
-     %143304 = OpPhi %uint %140441 %81052 %81062 %81060
-     %143302 = OpPhi %v4float %81056 %81052 %106064 %81060
-     %143301 = OpPhi %v4float %81056 %81052 %106065 %81060
-      %72244 = OpLoad %uint %65920
-      %72245 = OpBitwiseAnd %uint %72244 %uint_16384
-      %72246 = OpUGreaterThan %bool %72245 %uint_0
-               OpSelectionMerge %81089 None
-               OpSwitch %uint_0 %81073
-      %81073 = OpLabel
-               OpSelectionMerge %81088 None
-               OpBranchConditional %72246 %81075 %81083
-      %81083 = OpLabel
-      %81085 = OpISub %uint %143304 %int_1
-      %81086 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %81085
-      %81087 = OpLoad %_arr_v4float_uint_2 %81086
-     %106055 = OpCompositeExtract %v4float %81087 0
-     %106056 = OpCompositeExtract %v4float %81087 1
-               OpBranch %81089
-      %81075 = OpLabel
-      %81077 = OpIAdd %uint %143305 %int_1
-      %81078 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %143305
-      %81079 = OpLoad %v4float %81078
-               OpBranch %81089
-      %81088 = OpLabel
-               OpUnreachable
-      %81089 = OpLabel
-     %143310 = OpPhi %uint %81077 %81075 %143305 %81083
-     %143309 = OpPhi %uint %143304 %81075 %81085 %81083
-     %143307 = OpPhi %v4float %81079 %81075 %106055 %81083
-     %143306 = OpPhi %v4float %81079 %81075 %106056 %81083
-      %72250 = OpLoad %uint %65920
-      %72251 = OpBitwiseAnd %uint %72250 %uint_8192
-      %72252 = OpUGreaterThan %bool %72251 %uint_0
-               OpSelectionMerge %81112 None
-               OpSwitch %uint_0 %81096
-      %81096 = OpLabel
-               OpSelectionMerge %81111 None
-               OpBranchConditional %72252 %81098 %81106
-      %81106 = OpLabel
-      %81108 = OpISub %uint %143309 %int_1
-      %81109 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %81108
-      %81110 = OpLoad %_arr_v4float_uint_2 %81109
-     %106046 = OpCompositeExtract %v4float %81110 0
-     %106047 = OpCompositeExtract %v4float %81110 1
-               OpBranch %81112
-      %81098 = OpLabel
-      %81100 = OpIAdd %uint %143310 %int_1
-      %81101 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %143310
-      %81102 = OpLoad %v4float %81101
-               OpBranch %81112
-      %81111 = OpLabel
-               OpUnreachable
-      %81112 = OpLabel
-     %225482 = OpPhi %uint %81100 %81098 %143310 %81106
-     %143317 = OpPhi %uint %143309 %81098 %81108 %81106
-     %143312 = OpPhi %v4float %81102 %81098 %106046 %81106
-     %143311 = OpPhi %v4float %81102 %81098 %106047 %81106
-      %72260 = OpExtInst %v4float %1 FClamp %143302 %143307 %143312
-      %72268 = OpExtInst %v4float %1 FClamp %143301 %143306 %143311
-     %110014 = OpCompositeConstruct %_arr_v4float_uint_2 %72260 %72268
-      %81116 = OpIAdd %uint %143317 %int_1
-      %81118 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143317
-               OpStore %81118 %110014
-               OpBranch %74338
-      %72196 = OpLabel
-      %72199 = OpLoad %uint %65920
-      %72200 = OpBitwiseAnd %uint %72199 %uint_32768
-      %72201 = OpUGreaterThan %bool %72200 %uint_0
-               OpSelectionMerge %80992 None
-               OpSwitch %uint_0 %80976
-      %80976 = OpLabel
-               OpSelectionMerge %80991 None
-               OpBranchConditional %72201 %80978 %80986
-      %80986 = OpLabel
-      %80988 = OpISub %uint %140432 %int_1
-      %80989 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %80988
-      %80990 = OpLoad %_arr_v3float_uint_2 %80989
-     %106091 = OpCompositeExtract %v3float %80990 0
-     %106092 = OpCompositeExtract %v3float %80990 1
-               OpBranch %80992
-      %80978 = OpLabel
-      %80980 = OpIAdd %uint %140435 %int_1
-      %80981 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %80982 = OpLoad %v3float %80981
-               OpBranch %80992
-      %80991 = OpLabel
-               OpUnreachable
-      %80992 = OpLabel
-     %143322 = OpPhi %uint %80980 %80978 %140435 %80986
-     %143321 = OpPhi %uint %140432 %80978 %80988 %80986
-     %143319 = OpPhi %v3float %80982 %80978 %106091 %80986
-     %143318 = OpPhi %v3float %80982 %80978 %106092 %80986
-      %72205 = OpLoad %uint %65920
-      %72206 = OpBitwiseAnd %uint %72205 %uint_16384
-      %72207 = OpUGreaterThan %bool %72206 %uint_0
-               OpSelectionMerge %81015 None
-               OpSwitch %uint_0 %80999
-      %80999 = OpLabel
-               OpSelectionMerge %81014 None
-               OpBranchConditional %72207 %81001 %81009
-      %81009 = OpLabel
-      %81011 = OpISub %uint %143321 %int_1
-      %81012 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %81011
-      %81013 = OpLoad %_arr_v3float_uint_2 %81012
-     %106082 = OpCompositeExtract %v3float %81013 0
-     %106083 = OpCompositeExtract %v3float %81013 1
-               OpBranch %81015
-      %81001 = OpLabel
-      %81003 = OpIAdd %uint %143322 %int_1
-      %81004 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %143322
-      %81005 = OpLoad %v3float %81004
-               OpBranch %81015
-      %81014 = OpLabel
-               OpUnreachable
-      %81015 = OpLabel
-     %224702 = OpPhi %uint %81003 %81001 %143322 %81009
-     %143337 = OpPhi %uint %143321 %81001 %81011 %81009
-     %143324 = OpPhi %v3float %81005 %81001 %106082 %81009
-     %143323 = OpPhi %v3float %81005 %81001 %106083 %81009
-      %72211 = OpLoad %uint %65920
-      %72212 = OpBitwiseAnd %uint %72211 %uint_8192
-      %72213 = OpUGreaterThan %bool %72212 %uint_0
-               OpSelectionMerge %81038 None
-               OpSwitch %uint_0 %81022
-      %81022 = OpLabel
-               OpSelectionMerge %81037 None
-               OpBranchConditional %72213 %81024 %81032
-      %81032 = OpLabel
-      %81034 = OpISub %uint %140422 %int_1
-      %81035 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %81034
-      %81036 = OpLoad %_arr_float_uint_2 %81035
-     %106073 = OpCompositeExtract %float %81036 0
-     %106074 = OpCompositeExtract %float %81036 1
-               OpBranch %81038
-      %81024 = OpLabel
-      %81026 = OpIAdd %uint %140424 %int_1
-      %81027 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %81028 = OpLoad %float %81027
-               OpBranch %81038
-      %81037 = OpLabel
-               OpUnreachable
-      %81038 = OpLabel
-     %157127 = OpPhi %uint %81026 %81024 %140424 %81032
-     %156880 = OpPhi %uint %140422 %81024 %81034 %81032
-     %143331 = OpPhi %float %81028 %81024 %106073 %81032
-     %143330 = OpPhi %float %81028 %81024 %106074 %81032
-      %72221 = OpCompositeConstruct %v3float %143331 %143331 %143331
-      %72222 = OpExtInst %v3float %1 FMix %143319 %143324 %72221
-      %72230 = OpCompositeConstruct %v3float %143330 %143330 %143330
-      %72231 = OpExtInst %v3float %1 FMix %143318 %143323 %72230
-     %109999 = OpCompositeConstruct %_arr_v3float_uint_2 %72222 %72231
-      %81042 = OpIAdd %uint %143337 %int_1
-      %81044 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143337
-               OpStore %81044 %109999
-               OpBranch %74338
-      %72155 = OpLabel
-      %72158 = OpLoad %uint %65920
-      %72159 = OpBitwiseAnd %uint %72158 %uint_32768
-      %72160 = OpUGreaterThan %bool %72159 %uint_0
-               OpSelectionMerge %80918 None
-               OpSwitch %uint_0 %80902
-      %80902 = OpLabel
-               OpSelectionMerge %80917 None
-               OpBranchConditional %72160 %80904 %80912
-      %80912 = OpLabel
-      %80914 = OpISub %uint %140432 %int_1
-      %80915 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %80914
-      %80916 = OpLoad %_arr_v3float_uint_2 %80915
-     %106118 = OpCompositeExtract %v3float %80916 0
-     %106119 = OpCompositeExtract %v3float %80916 1
-               OpBranch %80918
-      %80904 = OpLabel
-      %80906 = OpIAdd %uint %140435 %int_1
-      %80907 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %80908 = OpLoad %v3float %80907
-               OpBranch %80918
-      %80917 = OpLabel
-               OpUnreachable
-      %80918 = OpLabel
-     %224700 = OpPhi %uint %80906 %80904 %140435 %80912
-     %143356 = OpPhi %uint %140432 %80904 %80914 %80912
-     %143339 = OpPhi %v3float %80908 %80904 %106118 %80912
-     %143338 = OpPhi %v3float %80908 %80904 %106119 %80912
-      %72164 = OpLoad %uint %65920
-      %72165 = OpBitwiseAnd %uint %72164 %uint_16384
-      %72166 = OpUGreaterThan %bool %72165 %uint_0
-               OpSelectionMerge %80941 None
-               OpSwitch %uint_0 %80925
-      %80925 = OpLabel
-               OpSelectionMerge %80940 None
-               OpBranchConditional %72166 %80927 %80935
-      %80935 = OpLabel
-      %80937 = OpISub %uint %140422 %int_1
-      %80938 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %80937
-      %80939 = OpLoad %_arr_float_uint_2 %80938
-     %106109 = OpCompositeExtract %float %80939 0
-     %106110 = OpCompositeExtract %float %80939 1
-               OpBranch %80941
-      %80927 = OpLabel
-      %80929 = OpIAdd %uint %140424 %int_1
-      %80930 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %80931 = OpLoad %float %80930
-               OpBranch %80941
-      %80940 = OpLabel
-               OpUnreachable
-      %80941 = OpLabel
-     %143347 = OpPhi %uint %80929 %80927 %140424 %80935
-     %143346 = OpPhi %uint %140422 %80927 %80937 %80935
-     %143344 = OpPhi %float %80931 %80927 %106109 %80935
-     %143343 = OpPhi %float %80931 %80927 %106110 %80935
-      %72170 = OpLoad %uint %65920
-      %72171 = OpBitwiseAnd %uint %72170 %uint_8192
-      %72172 = OpUGreaterThan %bool %72171 %uint_0
-               OpSelectionMerge %80964 None
-               OpSwitch %uint_0 %80948
-      %80948 = OpLabel
-               OpSelectionMerge %80963 None
-               OpBranchConditional %72172 %80950 %80958
-      %80958 = OpLabel
-      %80960 = OpISub %uint %143346 %int_1
-      %80961 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %80960
-      %80962 = OpLoad %_arr_float_uint_2 %80961
-     %106100 = OpCompositeExtract %float %80962 0
-     %106101 = OpCompositeExtract %float %80962 1
-               OpBranch %80964
-      %80950 = OpLabel
-      %80952 = OpIAdd %uint %143347 %int_1
-      %80953 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143347
-      %80954 = OpLoad %float %80953
-               OpBranch %80964
-      %80963 = OpLabel
-               OpUnreachable
-      %80964 = OpLabel
-     %157126 = OpPhi %uint %80952 %80950 %143347 %80958
-     %156879 = OpPhi %uint %143346 %80950 %80960 %80958
-     %143349 = OpPhi %float %80954 %80950 %106100 %80958
-     %143348 = OpPhi %float %80954 %80950 %106101 %80958
-      %72180 = OpCompositeConstruct %v3float %143344 %143344 %143344
-      %72181 = OpCompositeConstruct %v3float %143349 %143349 %143349
-      %72182 = OpExtInst %v3float %1 FClamp %143339 %72180 %72181
-      %72190 = OpCompositeConstruct %v3float %143343 %143343 %143343
-      %72191 = OpCompositeConstruct %v3float %143348 %143348 %143348
-      %72192 = OpExtInst %v3float %1 FClamp %143338 %72190 %72191
-     %109984 = OpCompositeConstruct %_arr_v3float_uint_2 %72182 %72192
-      %80968 = OpIAdd %uint %143356 %int_1
-      %80970 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143356
-               OpStore %80970 %109984
-               OpBranch %74338
-      %72118 = OpLabel
-      %72121 = OpLoad %uint %65920
-      %72122 = OpBitwiseAnd %uint %72121 %uint_32768
-      %72123 = OpUGreaterThan %bool %72122 %uint_0
-               OpSelectionMerge %80844 None
-               OpSwitch %uint_0 %80828
-      %80828 = OpLabel
-               OpSelectionMerge %80843 None
-               OpBranchConditional %72123 %80830 %80838
-      %80838 = OpLabel
-      %80840 = OpISub %uint %140432 %int_1
-      %80841 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %80840
-      %80842 = OpLoad %_arr_v3float_uint_2 %80841
-     %106145 = OpCompositeExtract %v3float %80842 0
-     %106146 = OpCompositeExtract %v3float %80842 1
-               OpBranch %80844
-      %80830 = OpLabel
-      %80832 = OpIAdd %uint %140435 %int_1
-      %80833 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %80834 = OpLoad %v3float %80833
-               OpBranch %80844
-      %80843 = OpLabel
-               OpUnreachable
-      %80844 = OpLabel
-     %143361 = OpPhi %uint %80832 %80830 %140435 %80838
-     %143360 = OpPhi %uint %140432 %80830 %80840 %80838
-     %143358 = OpPhi %v3float %80834 %80830 %106145 %80838
-     %143357 = OpPhi %v3float %80834 %80830 %106146 %80838
-      %72127 = OpLoad %uint %65920
-      %72128 = OpBitwiseAnd %uint %72127 %uint_16384
-      %72129 = OpUGreaterThan %bool %72128 %uint_0
-               OpSelectionMerge %80867 None
-               OpSwitch %uint_0 %80851
-      %80851 = OpLabel
-               OpSelectionMerge %80866 None
-               OpBranchConditional %72129 %80853 %80861
-      %80861 = OpLabel
-      %80863 = OpISub %uint %143360 %int_1
-      %80864 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %80863
-      %80865 = OpLoad %_arr_v3float_uint_2 %80864
-     %106136 = OpCompositeExtract %v3float %80865 0
-     %106137 = OpCompositeExtract %v3float %80865 1
-               OpBranch %80867
-      %80853 = OpLabel
-      %80855 = OpIAdd %uint %143361 %int_1
-      %80856 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %143361
-      %80857 = OpLoad %v3float %80856
-               OpBranch %80867
-      %80866 = OpLabel
-               OpUnreachable
-      %80867 = OpLabel
-     %143366 = OpPhi %uint %80855 %80853 %143361 %80861
-     %143365 = OpPhi %uint %143360 %80853 %80863 %80861
-     %143363 = OpPhi %v3float %80857 %80853 %106136 %80861
-     %143362 = OpPhi %v3float %80857 %80853 %106137 %80861
-      %72133 = OpLoad %uint %65920
-      %72134 = OpBitwiseAnd %uint %72133 %uint_8192
-      %72135 = OpUGreaterThan %bool %72134 %uint_0
-               OpSelectionMerge %80890 None
-               OpSwitch %uint_0 %80874
-      %80874 = OpLabel
-               OpSelectionMerge %80889 None
-               OpBranchConditional %72135 %80876 %80884
-      %80884 = OpLabel
-      %80886 = OpISub %uint %143365 %int_1
-      %80887 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %80886
-      %80888 = OpLoad %_arr_v3float_uint_2 %80887
-     %106127 = OpCompositeExtract %v3float %80888 0
-     %106128 = OpCompositeExtract %v3float %80888 1
-               OpBranch %80890
-      %80876 = OpLabel
-      %80878 = OpIAdd %uint %143366 %int_1
-      %80879 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %143366
-      %80880 = OpLoad %v3float %80879
-               OpBranch %80890
-      %80889 = OpLabel
-               OpUnreachable
-      %80890 = OpLabel
-     %224697 = OpPhi %uint %80878 %80876 %143366 %80884
-     %143373 = OpPhi %uint %143365 %80876 %80886 %80884
-     %143368 = OpPhi %v3float %80880 %80876 %106127 %80884
-     %143367 = OpPhi %v3float %80880 %80876 %106128 %80884
-      %72143 = OpExtInst %v3float %1 FMix %143358 %143363 %143368
-      %72151 = OpExtInst %v3float %1 FMix %143357 %143362 %143367
-     %109969 = OpCompositeConstruct %_arr_v3float_uint_2 %72143 %72151
-      %80894 = OpIAdd %uint %143373 %int_1
-      %80896 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143373
-               OpStore %80896 %109969
-               OpBranch %74338
-      %72081 = OpLabel
-      %72084 = OpLoad %uint %65920
-      %72085 = OpBitwiseAnd %uint %72084 %uint_32768
-      %72086 = OpUGreaterThan %bool %72085 %uint_0
-               OpSelectionMerge %80770 None
-               OpSwitch %uint_0 %80754
-      %80754 = OpLabel
-               OpSelectionMerge %80769 None
-               OpBranchConditional %72086 %80756 %80764
-      %80764 = OpLabel
-      %80766 = OpISub %uint %140432 %int_1
-      %80767 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %80766
-      %80768 = OpLoad %_arr_v3float_uint_2 %80767
-     %106172 = OpCompositeExtract %v3float %80768 0
-     %106173 = OpCompositeExtract %v3float %80768 1
-               OpBranch %80770
-      %80756 = OpLabel
-      %80758 = OpIAdd %uint %140435 %int_1
-      %80759 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %80760 = OpLoad %v3float %80759
-               OpBranch %80770
-      %80769 = OpLabel
-               OpUnreachable
-      %80770 = OpLabel
-     %143378 = OpPhi %uint %80758 %80756 %140435 %80764
-     %143377 = OpPhi %uint %140432 %80756 %80766 %80764
-     %143375 = OpPhi %v3float %80760 %80756 %106172 %80764
-     %143374 = OpPhi %v3float %80760 %80756 %106173 %80764
-      %72090 = OpLoad %uint %65920
-      %72091 = OpBitwiseAnd %uint %72090 %uint_16384
-      %72092 = OpUGreaterThan %bool %72091 %uint_0
-               OpSelectionMerge %80793 None
-               OpSwitch %uint_0 %80777
-      %80777 = OpLabel
-               OpSelectionMerge %80792 None
-               OpBranchConditional %72092 %80779 %80787
-      %80787 = OpLabel
-      %80789 = OpISub %uint %143377 %int_1
-      %80790 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %80789
-      %80791 = OpLoad %_arr_v3float_uint_2 %80790
-     %106163 = OpCompositeExtract %v3float %80791 0
-     %106164 = OpCompositeExtract %v3float %80791 1
-               OpBranch %80793
-      %80779 = OpLabel
-      %80781 = OpIAdd %uint %143378 %int_1
-      %80782 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %143378
-      %80783 = OpLoad %v3float %80782
-               OpBranch %80793
-      %80792 = OpLabel
-               OpUnreachable
-      %80793 = OpLabel
-     %143383 = OpPhi %uint %80781 %80779 %143378 %80787
-     %143382 = OpPhi %uint %143377 %80779 %80789 %80787
-     %143380 = OpPhi %v3float %80783 %80779 %106163 %80787
-     %143379 = OpPhi %v3float %80783 %80779 %106164 %80787
-      %72096 = OpLoad %uint %65920
-      %72097 = OpBitwiseAnd %uint %72096 %uint_8192
-      %72098 = OpUGreaterThan %bool %72097 %uint_0
-               OpSelectionMerge %80816 None
-               OpSwitch %uint_0 %80800
-      %80800 = OpLabel
-               OpSelectionMerge %80815 None
-               OpBranchConditional %72098 %80802 %80810
-      %80810 = OpLabel
-      %80812 = OpISub %uint %143382 %int_1
-      %80813 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %80812
-      %80814 = OpLoad %_arr_v3float_uint_2 %80813
-     %106154 = OpCompositeExtract %v3float %80814 0
-     %106155 = OpCompositeExtract %v3float %80814 1
-               OpBranch %80816
-      %80802 = OpLabel
-      %80804 = OpIAdd %uint %143383 %int_1
-      %80805 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %143383
-      %80806 = OpLoad %v3float %80805
-               OpBranch %80816
-      %80815 = OpLabel
-               OpUnreachable
-      %80816 = OpLabel
-     %224696 = OpPhi %uint %80804 %80802 %143383 %80810
-     %143390 = OpPhi %uint %143382 %80802 %80812 %80810
-     %143385 = OpPhi %v3float %80806 %80802 %106154 %80810
-     %143384 = OpPhi %v3float %80806 %80802 %106155 %80810
-      %72106 = OpExtInst %v3float %1 FClamp %143375 %143380 %143385
-      %72114 = OpExtInst %v3float %1 FClamp %143374 %143379 %143384
-     %109954 = OpCompositeConstruct %_arr_v3float_uint_2 %72106 %72114
-      %80820 = OpIAdd %uint %143390 %int_1
-      %80822 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143390
-               OpStore %80822 %109954
-               OpBranch %74338
-      %72042 = OpLabel
-      %72045 = OpLoad %uint %65920
-      %72046 = OpBitwiseAnd %uint %72045 %uint_32768
-      %72047 = OpUGreaterThan %bool %72046 %uint_0
-               OpSelectionMerge %80696 None
-               OpSwitch %uint_0 %80680
-      %80680 = OpLabel
-               OpSelectionMerge %80695 None
-               OpBranchConditional %72047 %80682 %80690
-      %80690 = OpLabel
-      %80692 = OpISub %uint %140443 %int_1
-      %80693 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %80692
-      %80694 = OpLoad %_arr_v2float_uint_2 %80693
-     %106199 = OpCompositeExtract %v2float %80694 0
-     %106200 = OpCompositeExtract %v2float %80694 1
-               OpBranch %80696
-      %80682 = OpLabel
-      %80684 = OpIAdd %uint %141789 %int_1
-      %80685 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %80686 = OpLoad %v2float %80685
-               OpBranch %80696
-      %80695 = OpLabel
-               OpUnreachable
-      %80696 = OpLabel
-     %143395 = OpPhi %uint %80684 %80682 %141789 %80690
-     %143394 = OpPhi %uint %140443 %80682 %80692 %80690
-     %143392 = OpPhi %v2float %80686 %80682 %106199 %80690
-     %143391 = OpPhi %v2float %80686 %80682 %106200 %80690
-      %72051 = OpLoad %uint %65920
-      %72052 = OpBitwiseAnd %uint %72051 %uint_16384
-      %72053 = OpUGreaterThan %bool %72052 %uint_0
-               OpSelectionMerge %80719 None
-               OpSwitch %uint_0 %80703
-      %80703 = OpLabel
-               OpSelectionMerge %80718 None
-               OpBranchConditional %72053 %80705 %80713
-      %80713 = OpLabel
-      %80715 = OpISub %uint %143394 %int_1
-      %80716 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %80715
-      %80717 = OpLoad %_arr_v2float_uint_2 %80716
-     %106190 = OpCompositeExtract %v2float %80717 0
-     %106191 = OpCompositeExtract %v2float %80717 1
-               OpBranch %80719
-      %80705 = OpLabel
-      %80707 = OpIAdd %uint %143395 %int_1
-      %80708 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %143395
-      %80709 = OpLoad %v2float %80708
-               OpBranch %80719
-      %80718 = OpLabel
-               OpUnreachable
-      %80719 = OpLabel
-     %227044 = OpPhi %uint %80707 %80705 %143395 %80713
-     %143410 = OpPhi %uint %143394 %80705 %80715 %80713
-     %143397 = OpPhi %v2float %80709 %80705 %106190 %80713
-     %143396 = OpPhi %v2float %80709 %80705 %106191 %80713
-      %72057 = OpLoad %uint %65920
-      %72058 = OpBitwiseAnd %uint %72057 %uint_8192
-      %72059 = OpUGreaterThan %bool %72058 %uint_0
-               OpSelectionMerge %80742 None
-               OpSwitch %uint_0 %80726
-      %80726 = OpLabel
-               OpSelectionMerge %80741 None
-               OpBranchConditional %72059 %80728 %80736
-      %80736 = OpLabel
-      %80738 = OpISub %uint %140422 %int_1
-      %80739 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %80738
-      %80740 = OpLoad %_arr_float_uint_2 %80739
-     %106181 = OpCompositeExtract %float %80740 0
-     %106182 = OpCompositeExtract %float %80740 1
-               OpBranch %80742
-      %80728 = OpLabel
-      %80730 = OpIAdd %uint %140424 %int_1
-      %80731 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %80732 = OpLoad %float %80731
-               OpBranch %80742
-      %80741 = OpLabel
-               OpUnreachable
-      %80742 = OpLabel
-     %157119 = OpPhi %uint %80730 %80728 %140424 %80736
-     %156872 = OpPhi %uint %140422 %80728 %80738 %80736
-     %143404 = OpPhi %float %80732 %80728 %106181 %80736
-     %143403 = OpPhi %float %80732 %80728 %106182 %80736
-      %72067 = OpCompositeConstruct %v2float %143404 %143404
-      %72068 = OpExtInst %v2float %1 FMix %143392 %143397 %72067
-      %72076 = OpCompositeConstruct %v2float %143403 %143403
-      %72077 = OpExtInst %v2float %1 FMix %143391 %143396 %72076
-     %109939 = OpCompositeConstruct %_arr_v2float_uint_2 %72068 %72077
-      %80746 = OpIAdd %uint %143410 %int_1
-      %80748 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143410
-               OpStore %80748 %109939
-               OpBranch %74338
-      %72001 = OpLabel
-      %72004 = OpLoad %uint %65920
-      %72005 = OpBitwiseAnd %uint %72004 %uint_32768
-      %72006 = OpUGreaterThan %bool %72005 %uint_0
-               OpSelectionMerge %80622 None
-               OpSwitch %uint_0 %80606
-      %80606 = OpLabel
-               OpSelectionMerge %80621 None
-               OpBranchConditional %72006 %80608 %80616
-      %80616 = OpLabel
-      %80618 = OpISub %uint %140443 %int_1
-      %80619 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %80618
-      %80620 = OpLoad %_arr_v2float_uint_2 %80619
-     %106226 = OpCompositeExtract %v2float %80620 0
-     %106227 = OpCompositeExtract %v2float %80620 1
-               OpBranch %80622
-      %80608 = OpLabel
-      %80610 = OpIAdd %uint %141789 %int_1
-      %80611 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %80612 = OpLoad %v2float %80611
-               OpBranch %80622
-      %80621 = OpLabel
-               OpUnreachable
-      %80622 = OpLabel
-     %227042 = OpPhi %uint %80610 %80608 %141789 %80616
-     %143429 = OpPhi %uint %140443 %80608 %80618 %80616
-     %143412 = OpPhi %v2float %80612 %80608 %106226 %80616
-     %143411 = OpPhi %v2float %80612 %80608 %106227 %80616
-      %72010 = OpLoad %uint %65920
-      %72011 = OpBitwiseAnd %uint %72010 %uint_16384
-      %72012 = OpUGreaterThan %bool %72011 %uint_0
-               OpSelectionMerge %80645 None
-               OpSwitch %uint_0 %80629
-      %80629 = OpLabel
-               OpSelectionMerge %80644 None
-               OpBranchConditional %72012 %80631 %80639
-      %80639 = OpLabel
-      %80641 = OpISub %uint %140422 %int_1
-      %80642 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %80641
-      %80643 = OpLoad %_arr_float_uint_2 %80642
-     %106217 = OpCompositeExtract %float %80643 0
-     %106218 = OpCompositeExtract %float %80643 1
-               OpBranch %80645
-      %80631 = OpLabel
-      %80633 = OpIAdd %uint %140424 %int_1
-      %80634 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %80635 = OpLoad %float %80634
-               OpBranch %80645
-      %80644 = OpLabel
-               OpUnreachable
-      %80645 = OpLabel
-     %143420 = OpPhi %uint %80633 %80631 %140424 %80639
-     %143419 = OpPhi %uint %140422 %80631 %80641 %80639
-     %143417 = OpPhi %float %80635 %80631 %106217 %80639
-     %143416 = OpPhi %float %80635 %80631 %106218 %80639
-      %72016 = OpLoad %uint %65920
-      %72017 = OpBitwiseAnd %uint %72016 %uint_8192
-      %72018 = OpUGreaterThan %bool %72017 %uint_0
-               OpSelectionMerge %80668 None
-               OpSwitch %uint_0 %80652
-      %80652 = OpLabel
-               OpSelectionMerge %80667 None
-               OpBranchConditional %72018 %80654 %80662
-      %80662 = OpLabel
-      %80664 = OpISub %uint %143419 %int_1
-      %80665 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %80664
-      %80666 = OpLoad %_arr_float_uint_2 %80665
-     %106208 = OpCompositeExtract %float %80666 0
-     %106209 = OpCompositeExtract %float %80666 1
-               OpBranch %80668
-      %80654 = OpLabel
-      %80656 = OpIAdd %uint %143420 %int_1
-      %80657 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143420
-      %80658 = OpLoad %float %80657
-               OpBranch %80668
-      %80667 = OpLabel
-               OpUnreachable
-      %80668 = OpLabel
-     %157118 = OpPhi %uint %80656 %80654 %143420 %80662
-     %156871 = OpPhi %uint %143419 %80654 %80664 %80662
-     %143422 = OpPhi %float %80658 %80654 %106208 %80662
-     %143421 = OpPhi %float %80658 %80654 %106209 %80662
-      %72026 = OpCompositeConstruct %v2float %143417 %143417
-      %72027 = OpCompositeConstruct %v2float %143422 %143422
-      %72028 = OpExtInst %v2float %1 FClamp %143412 %72026 %72027
-      %72036 = OpCompositeConstruct %v2float %143416 %143416
-      %72037 = OpCompositeConstruct %v2float %143421 %143421
-      %72038 = OpExtInst %v2float %1 FClamp %143411 %72036 %72037
-     %109924 = OpCompositeConstruct %_arr_v2float_uint_2 %72028 %72038
-      %80672 = OpIAdd %uint %143429 %int_1
-      %80674 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143429
-               OpStore %80674 %109924
-               OpBranch %74338
-      %71964 = OpLabel
-      %71967 = OpLoad %uint %65920
-      %71968 = OpBitwiseAnd %uint %71967 %uint_32768
-      %71969 = OpUGreaterThan %bool %71968 %uint_0
-               OpSelectionMerge %80548 None
-               OpSwitch %uint_0 %80532
-      %80532 = OpLabel
-               OpSelectionMerge %80547 None
-               OpBranchConditional %71969 %80534 %80542
-      %80542 = OpLabel
-      %80544 = OpISub %uint %140443 %int_1
-      %80545 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %80544
-      %80546 = OpLoad %_arr_v2float_uint_2 %80545
-     %106253 = OpCompositeExtract %v2float %80546 0
-     %106254 = OpCompositeExtract %v2float %80546 1
-               OpBranch %80548
-      %80534 = OpLabel
-      %80536 = OpIAdd %uint %141789 %int_1
-      %80537 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %80538 = OpLoad %v2float %80537
-               OpBranch %80548
-      %80547 = OpLabel
-               OpUnreachable
-      %80548 = OpLabel
-     %143434 = OpPhi %uint %80536 %80534 %141789 %80542
-     %143433 = OpPhi %uint %140443 %80534 %80544 %80542
-     %143431 = OpPhi %v2float %80538 %80534 %106253 %80542
-     %143430 = OpPhi %v2float %80538 %80534 %106254 %80542
-      %71973 = OpLoad %uint %65920
-      %71974 = OpBitwiseAnd %uint %71973 %uint_16384
-      %71975 = OpUGreaterThan %bool %71974 %uint_0
-               OpSelectionMerge %80571 None
-               OpSwitch %uint_0 %80555
-      %80555 = OpLabel
-               OpSelectionMerge %80570 None
-               OpBranchConditional %71975 %80557 %80565
-      %80565 = OpLabel
-      %80567 = OpISub %uint %143433 %int_1
-      %80568 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %80567
-      %80569 = OpLoad %_arr_v2float_uint_2 %80568
-     %106244 = OpCompositeExtract %v2float %80569 0
-     %106245 = OpCompositeExtract %v2float %80569 1
-               OpBranch %80571
-      %80557 = OpLabel
-      %80559 = OpIAdd %uint %143434 %int_1
-      %80560 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %143434
-      %80561 = OpLoad %v2float %80560
-               OpBranch %80571
-      %80570 = OpLabel
-               OpUnreachable
-      %80571 = OpLabel
-     %143439 = OpPhi %uint %80559 %80557 %143434 %80565
-     %143438 = OpPhi %uint %143433 %80557 %80567 %80565
-     %143436 = OpPhi %v2float %80561 %80557 %106244 %80565
-     %143435 = OpPhi %v2float %80561 %80557 %106245 %80565
-      %71979 = OpLoad %uint %65920
-      %71980 = OpBitwiseAnd %uint %71979 %uint_8192
-      %71981 = OpUGreaterThan %bool %71980 %uint_0
-               OpSelectionMerge %80594 None
-               OpSwitch %uint_0 %80578
-      %80578 = OpLabel
-               OpSelectionMerge %80593 None
-               OpBranchConditional %71981 %80580 %80588
-      %80588 = OpLabel
-      %80590 = OpISub %uint %143438 %int_1
-      %80591 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %80590
-      %80592 = OpLoad %_arr_v2float_uint_2 %80591
-     %106235 = OpCompositeExtract %v2float %80592 0
-     %106236 = OpCompositeExtract %v2float %80592 1
-               OpBranch %80594
-      %80580 = OpLabel
-      %80582 = OpIAdd %uint %143439 %int_1
-      %80583 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %143439
-      %80584 = OpLoad %v2float %80583
-               OpBranch %80594
-      %80593 = OpLabel
-               OpUnreachable
-      %80594 = OpLabel
-     %227039 = OpPhi %uint %80582 %80580 %143439 %80588
-     %143446 = OpPhi %uint %143438 %80580 %80590 %80588
-     %143441 = OpPhi %v2float %80584 %80580 %106235 %80588
-     %143440 = OpPhi %v2float %80584 %80580 %106236 %80588
-      %71989 = OpExtInst %v2float %1 FMix %143431 %143436 %143441
-      %71997 = OpExtInst %v2float %1 FMix %143430 %143435 %143440
-     %109909 = OpCompositeConstruct %_arr_v2float_uint_2 %71989 %71997
-      %80598 = OpIAdd %uint %143446 %int_1
-      %80600 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143446
-               OpStore %80600 %109909
-               OpBranch %74338
-      %71927 = OpLabel
-      %71930 = OpLoad %uint %65920
-      %71931 = OpBitwiseAnd %uint %71930 %uint_32768
-      %71932 = OpUGreaterThan %bool %71931 %uint_0
-               OpSelectionMerge %80474 None
-               OpSwitch %uint_0 %80458
-      %80458 = OpLabel
-               OpSelectionMerge %80473 None
-               OpBranchConditional %71932 %80460 %80468
-      %80468 = OpLabel
-      %80470 = OpISub %uint %140443 %int_1
-      %80471 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %80470
-      %80472 = OpLoad %_arr_v2float_uint_2 %80471
-     %106280 = OpCompositeExtract %v2float %80472 0
-     %106281 = OpCompositeExtract %v2float %80472 1
-               OpBranch %80474
-      %80460 = OpLabel
-      %80462 = OpIAdd %uint %141789 %int_1
-      %80463 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %80464 = OpLoad %v2float %80463
-               OpBranch %80474
-      %80473 = OpLabel
-               OpUnreachable
-      %80474 = OpLabel
-     %143451 = OpPhi %uint %80462 %80460 %141789 %80468
-     %143450 = OpPhi %uint %140443 %80460 %80470 %80468
-     %143448 = OpPhi %v2float %80464 %80460 %106280 %80468
-     %143447 = OpPhi %v2float %80464 %80460 %106281 %80468
-      %71936 = OpLoad %uint %65920
-      %71937 = OpBitwiseAnd %uint %71936 %uint_16384
-      %71938 = OpUGreaterThan %bool %71937 %uint_0
-               OpSelectionMerge %80497 None
-               OpSwitch %uint_0 %80481
-      %80481 = OpLabel
-               OpSelectionMerge %80496 None
-               OpBranchConditional %71938 %80483 %80491
-      %80491 = OpLabel
-      %80493 = OpISub %uint %143450 %int_1
-      %80494 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %80493
-      %80495 = OpLoad %_arr_v2float_uint_2 %80494
-     %106271 = OpCompositeExtract %v2float %80495 0
-     %106272 = OpCompositeExtract %v2float %80495 1
-               OpBranch %80497
-      %80483 = OpLabel
-      %80485 = OpIAdd %uint %143451 %int_1
-      %80486 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %143451
-      %80487 = OpLoad %v2float %80486
-               OpBranch %80497
-      %80496 = OpLabel
-               OpUnreachable
-      %80497 = OpLabel
-     %143456 = OpPhi %uint %80485 %80483 %143451 %80491
-     %143455 = OpPhi %uint %143450 %80483 %80493 %80491
-     %143453 = OpPhi %v2float %80487 %80483 %106271 %80491
-     %143452 = OpPhi %v2float %80487 %80483 %106272 %80491
-      %71942 = OpLoad %uint %65920
-      %71943 = OpBitwiseAnd %uint %71942 %uint_8192
-      %71944 = OpUGreaterThan %bool %71943 %uint_0
-               OpSelectionMerge %80520 None
-               OpSwitch %uint_0 %80504
-      %80504 = OpLabel
-               OpSelectionMerge %80519 None
-               OpBranchConditional %71944 %80506 %80514
-      %80514 = OpLabel
-      %80516 = OpISub %uint %143455 %int_1
-      %80517 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %80516
-      %80518 = OpLoad %_arr_v2float_uint_2 %80517
-     %106262 = OpCompositeExtract %v2float %80518 0
-     %106263 = OpCompositeExtract %v2float %80518 1
-               OpBranch %80520
-      %80506 = OpLabel
-      %80508 = OpIAdd %uint %143456 %int_1
-      %80509 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %143456
-      %80510 = OpLoad %v2float %80509
-               OpBranch %80520
-      %80519 = OpLabel
-               OpUnreachable
-      %80520 = OpLabel
-     %227038 = OpPhi %uint %80508 %80506 %143456 %80514
-     %143463 = OpPhi %uint %143455 %80506 %80516 %80514
-     %143458 = OpPhi %v2float %80510 %80506 %106262 %80514
-     %143457 = OpPhi %v2float %80510 %80506 %106263 %80514
-      %71952 = OpExtInst %v2float %1 FClamp %143448 %143453 %143458
-      %71960 = OpExtInst %v2float %1 FClamp %143447 %143452 %143457
-     %109894 = OpCompositeConstruct %_arr_v2float_uint_2 %71952 %71960
-      %80524 = OpIAdd %uint %143463 %int_1
-      %80526 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143463
-               OpStore %80526 %109894
-               OpBranch %74338
-      %71890 = OpLabel
-      %71893 = OpLoad %uint %65920
-      %71894 = OpBitwiseAnd %uint %71893 %uint_32768
-      %71895 = OpUGreaterThan %bool %71894 %uint_0
-               OpSelectionMerge %80400 None
-               OpSwitch %uint_0 %80384
-      %80384 = OpLabel
-               OpSelectionMerge %80399 None
-               OpBranchConditional %71895 %80386 %80394
-      %80394 = OpLabel
-      %80396 = OpISub %uint %140422 %int_1
-      %80397 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %80396
-      %80398 = OpLoad %_arr_float_uint_2 %80397
-     %106307 = OpCompositeExtract %float %80398 0
-     %106308 = OpCompositeExtract %float %80398 1
-               OpBranch %80400
-      %80386 = OpLabel
-      %80388 = OpIAdd %uint %140424 %int_1
-      %80389 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %80390 = OpLoad %float %80389
-               OpBranch %80400
-      %80399 = OpLabel
-               OpUnreachable
-      %80400 = OpLabel
-     %143468 = OpPhi %uint %80388 %80386 %140424 %80394
-     %143467 = OpPhi %uint %140422 %80386 %80396 %80394
-     %143465 = OpPhi %float %80390 %80386 %106307 %80394
-     %143464 = OpPhi %float %80390 %80386 %106308 %80394
-      %71899 = OpLoad %uint %65920
-      %71900 = OpBitwiseAnd %uint %71899 %uint_16384
-      %71901 = OpUGreaterThan %bool %71900 %uint_0
-               OpSelectionMerge %80423 None
-               OpSwitch %uint_0 %80407
-      %80407 = OpLabel
-               OpSelectionMerge %80422 None
-               OpBranchConditional %71901 %80409 %80417
-      %80417 = OpLabel
-      %80419 = OpISub %uint %143467 %int_1
-      %80420 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %80419
-      %80421 = OpLoad %_arr_float_uint_2 %80420
-     %106298 = OpCompositeExtract %float %80421 0
-     %106299 = OpCompositeExtract %float %80421 1
-               OpBranch %80423
-      %80409 = OpLabel
-      %80411 = OpIAdd %uint %143468 %int_1
-      %80412 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143468
-      %80413 = OpLoad %float %80412
-               OpBranch %80423
-      %80422 = OpLabel
-               OpUnreachable
-      %80423 = OpLabel
-     %143473 = OpPhi %uint %80411 %80409 %143468 %80417
-     %143472 = OpPhi %uint %143467 %80409 %80419 %80417
-     %143470 = OpPhi %float %80413 %80409 %106298 %80417
-     %143469 = OpPhi %float %80413 %80409 %106299 %80417
-      %71905 = OpLoad %uint %65920
-      %71906 = OpBitwiseAnd %uint %71905 %uint_8192
-      %71907 = OpUGreaterThan %bool %71906 %uint_0
-               OpSelectionMerge %80446 None
-               OpSwitch %uint_0 %80430
-      %80430 = OpLabel
-               OpSelectionMerge %80445 None
-               OpBranchConditional %71907 %80432 %80440
-      %80440 = OpLabel
-      %80442 = OpISub %uint %143472 %int_1
-      %80443 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %80442
-      %80444 = OpLoad %_arr_float_uint_2 %80443
-     %106289 = OpCompositeExtract %float %80444 0
-     %106290 = OpCompositeExtract %float %80444 1
-               OpBranch %80446
-      %80432 = OpLabel
-      %80434 = OpIAdd %uint %143473 %int_1
-      %80435 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143473
-      %80436 = OpLoad %float %80435
-               OpBranch %80446
-      %80445 = OpLabel
-               OpUnreachable
-      %80446 = OpLabel
-     %157111 = OpPhi %uint %80434 %80432 %143473 %80440
-     %143480 = OpPhi %uint %143472 %80432 %80442 %80440
-     %143475 = OpPhi %float %80436 %80432 %106289 %80440
-     %143474 = OpPhi %float %80436 %80432 %106290 %80440
-      %71915 = OpExtInst %float %1 FMix %143465 %143470 %143475
-      %71923 = OpExtInst %float %1 FMix %143464 %143469 %143474
-     %109879 = OpCompositeConstruct %_arr_float_uint_2 %71915 %71923
-      %80450 = OpIAdd %uint %143480 %int_1
-      %80452 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143480
-               OpStore %80452 %109879
-               OpBranch %74338
-      %71853 = OpLabel
-      %71856 = OpLoad %uint %65920
-      %71857 = OpBitwiseAnd %uint %71856 %uint_32768
-      %71858 = OpUGreaterThan %bool %71857 %uint_0
-               OpSelectionMerge %80326 None
-               OpSwitch %uint_0 %80310
-      %80310 = OpLabel
-               OpSelectionMerge %80325 None
-               OpBranchConditional %71858 %80312 %80320
-      %80320 = OpLabel
-      %80322 = OpISub %uint %140422 %int_1
-      %80323 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %80322
-      %80324 = OpLoad %_arr_float_uint_2 %80323
-     %106334 = OpCompositeExtract %float %80324 0
-     %106335 = OpCompositeExtract %float %80324 1
-               OpBranch %80326
-      %80312 = OpLabel
-      %80314 = OpIAdd %uint %140424 %int_1
-      %80315 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %80316 = OpLoad %float %80315
-               OpBranch %80326
-      %80325 = OpLabel
-               OpUnreachable
-      %80326 = OpLabel
-     %143485 = OpPhi %uint %80314 %80312 %140424 %80320
-     %143484 = OpPhi %uint %140422 %80312 %80322 %80320
-     %143482 = OpPhi %float %80316 %80312 %106334 %80320
-     %143481 = OpPhi %float %80316 %80312 %106335 %80320
-      %71862 = OpLoad %uint %65920
-      %71863 = OpBitwiseAnd %uint %71862 %uint_16384
-      %71864 = OpUGreaterThan %bool %71863 %uint_0
-               OpSelectionMerge %80349 None
-               OpSwitch %uint_0 %80333
-      %80333 = OpLabel
-               OpSelectionMerge %80348 None
-               OpBranchConditional %71864 %80335 %80343
-      %80343 = OpLabel
-      %80345 = OpISub %uint %143484 %int_1
-      %80346 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %80345
-      %80347 = OpLoad %_arr_float_uint_2 %80346
-     %106325 = OpCompositeExtract %float %80347 0
-     %106326 = OpCompositeExtract %float %80347 1
-               OpBranch %80349
-      %80335 = OpLabel
-      %80337 = OpIAdd %uint %143485 %int_1
-      %80338 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143485
-      %80339 = OpLoad %float %80338
-               OpBranch %80349
-      %80348 = OpLabel
-               OpUnreachable
-      %80349 = OpLabel
-     %143490 = OpPhi %uint %80337 %80335 %143485 %80343
-     %143489 = OpPhi %uint %143484 %80335 %80345 %80343
-     %143487 = OpPhi %float %80339 %80335 %106325 %80343
-     %143486 = OpPhi %float %80339 %80335 %106326 %80343
-      %71868 = OpLoad %uint %65920
-      %71869 = OpBitwiseAnd %uint %71868 %uint_8192
-      %71870 = OpUGreaterThan %bool %71869 %uint_0
-               OpSelectionMerge %80372 None
-               OpSwitch %uint_0 %80356
-      %80356 = OpLabel
-               OpSelectionMerge %80371 None
-               OpBranchConditional %71870 %80358 %80366
-      %80366 = OpLabel
-      %80368 = OpISub %uint %143489 %int_1
-      %80369 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %80368
-      %80370 = OpLoad %_arr_float_uint_2 %80369
-     %106316 = OpCompositeExtract %float %80370 0
-     %106317 = OpCompositeExtract %float %80370 1
-               OpBranch %80372
-      %80358 = OpLabel
-      %80360 = OpIAdd %uint %143490 %int_1
-      %80361 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143490
-      %80362 = OpLoad %float %80361
-               OpBranch %80372
-      %80371 = OpLabel
-               OpUnreachable
-      %80372 = OpLabel
-     %157110 = OpPhi %uint %80360 %80358 %143490 %80366
-     %143497 = OpPhi %uint %143489 %80358 %80368 %80366
-     %143492 = OpPhi %float %80362 %80358 %106316 %80366
-     %143491 = OpPhi %float %80362 %80358 %106317 %80366
-      %71878 = OpExtInst %float %1 FClamp %143482 %143487 %143492
-      %71886 = OpExtInst %float %1 FClamp %143481 %143486 %143491
-     %109864 = OpCompositeConstruct %_arr_float_uint_2 %71878 %71886
-      %80376 = OpIAdd %uint %143497 %int_1
-      %80378 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143497
-               OpStore %80378 %109864
-               OpBranch %74338
-      %71771 = OpLabel
-      %71774 = OpLoad %uint %65920
-      %71775 = OpBitwiseAnd %uint %71774 %uint_32768
-      %71776 = OpUGreaterThan %bool %71775 %uint_0
-               OpSelectionMerge %80252 None
-               OpSwitch %uint_0 %80236
-      %80236 = OpLabel
-               OpSelectionMerge %80251 None
-               OpBranchConditional %71776 %80238 %80246
-      %80246 = OpLabel
-      %80248 = OpISub %uint %140441 %int_1
-      %80249 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %80248
-      %80250 = OpLoad %_arr_v4float_uint_2 %80249
-     %106361 = OpCompositeExtract %v4float %80250 0
-     %106362 = OpCompositeExtract %v4float %80250 1
-               OpBranch %80252
-      %80238 = OpLabel
-      %80240 = OpIAdd %uint %140467 %int_1
-      %80241 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %80242 = OpLoad %v4float %80241
-               OpBranch %80252
-      %80251 = OpLabel
-               OpUnreachable
-      %80252 = OpLabel
-     %143502 = OpPhi %uint %80240 %80238 %140467 %80246
-     %143501 = OpPhi %uint %140441 %80238 %80248 %80246
-     %143499 = OpPhi %v4float %80242 %80238 %106361 %80246
-     %143498 = OpPhi %v4float %80242 %80238 %106362 %80246
-      %71780 = OpLoad %uint %65920
-      %71781 = OpBitwiseAnd %uint %71780 %uint_16384
-      %71782 = OpUGreaterThan %bool %71781 %uint_0
-               OpSelectionMerge %80275 None
-               OpSwitch %uint_0 %80259
-      %80259 = OpLabel
-               OpSelectionMerge %80274 None
-               OpBranchConditional %71782 %80261 %80269
-      %80269 = OpLabel
-      %80271 = OpISub %uint %143501 %int_1
-      %80272 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %80271
-      %80273 = OpLoad %_arr_v4float_uint_2 %80272
-     %106352 = OpCompositeExtract %v4float %80273 0
-     %106353 = OpCompositeExtract %v4float %80273 1
-               OpBranch %80275
-      %80261 = OpLabel
-      %80263 = OpIAdd %uint %143502 %int_1
-      %80264 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %143502
-      %80265 = OpLoad %v4float %80264
-               OpBranch %80275
-      %80274 = OpLabel
-               OpUnreachable
-      %80275 = OpLabel
-     %143507 = OpPhi %uint %80263 %80261 %143502 %80269
-     %143506 = OpPhi %uint %143501 %80261 %80271 %80269
-     %143504 = OpPhi %v4float %80265 %80261 %106352 %80269
-     %143503 = OpPhi %v4float %80265 %80261 %106353 %80269
-      %71786 = OpLoad %uint %65920
-      %71787 = OpBitwiseAnd %uint %71786 %uint_8192
-      %71788 = OpUGreaterThan %bool %71787 %uint_0
-               OpSelectionMerge %80298 None
-               OpSwitch %uint_0 %80282
-      %80282 = OpLabel
-               OpSelectionMerge %80297 None
-               OpBranchConditional %71788 %80284 %80292
-      %80292 = OpLabel
-      %80294 = OpISub %uint %143506 %int_1
-      %80295 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %80294
-      %80296 = OpLoad %_arr_v4float_uint_2 %80295
-     %106343 = OpCompositeExtract %v4float %80296 0
-     %106344 = OpCompositeExtract %v4float %80296 1
-               OpBranch %80298
-      %80284 = OpLabel
-      %80286 = OpIAdd %uint %143507 %int_1
-      %80287 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %143507
-      %80288 = OpLoad %v4float %80287
-               OpBranch %80298
-      %80297 = OpLabel
-               OpUnreachable
-      %80298 = OpLabel
-     %225451 = OpPhi %uint %80286 %80284 %143507 %80292
-     %143516 = OpPhi %uint %143506 %80284 %80294 %80292
-     %143509 = OpPhi %v4float %80288 %80284 %106343 %80292
-     %143508 = OpPhi %v4float %80288 %80284 %106344 %80292
-      %71794 = OpFMul %v4float %143499 %143504
-      %71800 = OpFMul %v4float %143499 %143503
-      %71806 = OpFMul %v4float %143498 %143504
-      %71812 = OpFMul %v4float %143498 %143503
-      %71822 = OpExtInst %v4float %1 FMin %71806 %71812
-      %71823 = OpExtInst %v4float %1 FMin %71800 %71822
-      %71824 = OpExtInst %v4float %1 FMin %71794 %71823
-      %71834 = OpExtInst %v4float %1 FMax %71806 %71812
-      %71835 = OpExtInst %v4float %1 FMax %71800 %71834
-      %71836 = OpExtInst %v4float %1 FMax %71794 %71835
-      %71843 = OpFAdd %v4float %71824 %143509
-      %71849 = OpFAdd %v4float %71836 %143508
-     %109847 = OpCompositeConstruct %_arr_v4float_uint_2 %71843 %71849
-      %80302 = OpIAdd %uint %143516 %int_1
-      %80304 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143516
-               OpStore %80304 %109847
-               OpBranch %74338
-      %71744 = OpLabel
-      %71747 = OpLoad %uint %65920
-      %71748 = OpBitwiseAnd %uint %71747 %uint_32768
-      %71749 = OpUGreaterThan %bool %71748 %uint_0
-               OpSelectionMerge %80201 None
-               OpSwitch %uint_0 %80185
-      %80185 = OpLabel
-               OpSelectionMerge %80200 None
-               OpBranchConditional %71749 %80187 %80195
-      %80195 = OpLabel
-      %80197 = OpISub %uint %140441 %int_1
-      %80198 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %80197
-      %80199 = OpLoad %_arr_v4float_uint_2 %80198
-     %106379 = OpCompositeExtract %v4float %80199 0
-     %106380 = OpCompositeExtract %v4float %80199 1
-               OpBranch %80201
-      %80187 = OpLabel
-      %80189 = OpIAdd %uint %140467 %int_1
-      %80190 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %80191 = OpLoad %v4float %80190
-               OpBranch %80201
-      %80200 = OpLabel
-               OpUnreachable
-      %80201 = OpLabel
-     %143521 = OpPhi %uint %80189 %80187 %140467 %80195
-     %143520 = OpPhi %uint %140441 %80187 %80197 %80195
-     %143518 = OpPhi %v4float %80191 %80187 %106379 %80195
-     %143517 = OpPhi %v4float %80191 %80187 %106380 %80195
-      %71753 = OpLoad %uint %65920
-      %71754 = OpBitwiseAnd %uint %71753 %uint_16384
-      %71755 = OpUGreaterThan %bool %71754 %uint_0
-               OpSelectionMerge %80224 None
-               OpSwitch %uint_0 %80208
-      %80208 = OpLabel
-               OpSelectionMerge %80223 None
-               OpBranchConditional %71755 %80210 %80218
-      %80218 = OpLabel
-      %80220 = OpISub %uint %143520 %int_1
-      %80221 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %80220
-      %80222 = OpLoad %_arr_v4float_uint_2 %80221
-     %106370 = OpCompositeExtract %v4float %80222 0
-     %106371 = OpCompositeExtract %v4float %80222 1
-               OpBranch %80224
-      %80210 = OpLabel
-      %80212 = OpIAdd %uint %143521 %int_1
-      %80213 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %143521
-      %80214 = OpLoad %v4float %80213
-               OpBranch %80224
-      %80223 = OpLabel
-               OpUnreachable
-      %80224 = OpLabel
-     %225450 = OpPhi %uint %80212 %80210 %143521 %80218
-     %143526 = OpPhi %uint %143520 %80210 %80220 %80218
-     %143523 = OpPhi %v4float %80214 %80210 %106370 %80218
-     %143522 = OpPhi %v4float %80214 %80210 %106371 %80218
-      %71761 = OpExtInst %v4float %1 FMax %143518 %143523
-      %71767 = OpExtInst %v4float %1 FMax %143517 %143522
-     %109836 = OpCompositeConstruct %_arr_v4float_uint_2 %71761 %71767
-      %80228 = OpIAdd %uint %143526 %int_1
-      %80230 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143526
-               OpStore %80230 %109836
-               OpBranch %74338
-      %71717 = OpLabel
-      %71720 = OpLoad %uint %65920
-      %71721 = OpBitwiseAnd %uint %71720 %uint_32768
-      %71722 = OpUGreaterThan %bool %71721 %uint_0
-               OpSelectionMerge %80150 None
-               OpSwitch %uint_0 %80134
-      %80134 = OpLabel
-               OpSelectionMerge %80149 None
-               OpBranchConditional %71722 %80136 %80144
-      %80144 = OpLabel
-      %80146 = OpISub %uint %140441 %int_1
-      %80147 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %80146
-      %80148 = OpLoad %_arr_v4float_uint_2 %80147
-     %106397 = OpCompositeExtract %v4float %80148 0
-     %106398 = OpCompositeExtract %v4float %80148 1
-               OpBranch %80150
-      %80136 = OpLabel
-      %80138 = OpIAdd %uint %140467 %int_1
-      %80139 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %80140 = OpLoad %v4float %80139
-               OpBranch %80150
-      %80149 = OpLabel
-               OpUnreachable
-      %80150 = OpLabel
-     %143531 = OpPhi %uint %80138 %80136 %140467 %80144
-     %143530 = OpPhi %uint %140441 %80136 %80146 %80144
-     %143528 = OpPhi %v4float %80140 %80136 %106397 %80144
-     %143527 = OpPhi %v4float %80140 %80136 %106398 %80144
-      %71726 = OpLoad %uint %65920
-      %71727 = OpBitwiseAnd %uint %71726 %uint_16384
-      %71728 = OpUGreaterThan %bool %71727 %uint_0
-               OpSelectionMerge %80173 None
-               OpSwitch %uint_0 %80157
-      %80157 = OpLabel
-               OpSelectionMerge %80172 None
-               OpBranchConditional %71728 %80159 %80167
-      %80167 = OpLabel
-      %80169 = OpISub %uint %143530 %int_1
-      %80170 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %80169
-      %80171 = OpLoad %_arr_v4float_uint_2 %80170
-     %106388 = OpCompositeExtract %v4float %80171 0
-     %106389 = OpCompositeExtract %v4float %80171 1
-               OpBranch %80173
-      %80159 = OpLabel
-      %80161 = OpIAdd %uint %143531 %int_1
-      %80162 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %143531
-      %80163 = OpLoad %v4float %80162
-               OpBranch %80173
-      %80172 = OpLabel
-               OpUnreachable
-      %80173 = OpLabel
-     %225449 = OpPhi %uint %80161 %80159 %143531 %80167
-     %143536 = OpPhi %uint %143530 %80159 %80169 %80167
-     %143533 = OpPhi %v4float %80163 %80159 %106388 %80167
-     %143532 = OpPhi %v4float %80163 %80159 %106389 %80167
-      %71734 = OpExtInst %v4float %1 FMin %143528 %143533
-      %71740 = OpExtInst %v4float %1 FMin %143527 %143532
-     %109825 = OpCompositeConstruct %_arr_v4float_uint_2 %71734 %71740
-      %80177 = OpIAdd %uint %143536 %int_1
-      %80179 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143536
-               OpStore %80179 %109825
-               OpBranch %74338
-      %71688 = OpLabel
-      %71691 = OpLoad %uint %65920
-      %71692 = OpBitwiseAnd %uint %71691 %uint_32768
-      %71693 = OpUGreaterThan %bool %71692 %uint_0
-               OpSelectionMerge %80122 None
-               OpSwitch %uint_0 %80106
-      %80106 = OpLabel
-               OpSelectionMerge %80121 None
-               OpBranchConditional %71693 %80108 %80116
-      %80116 = OpLabel
-      %80118 = OpISub %uint %140441 %int_1
-      %80119 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %80118
-      %80120 = OpLoad %_arr_v4float_uint_2 %80119
-     %106406 = OpCompositeExtract %v4float %80120 0
-     %106407 = OpCompositeExtract %v4float %80120 1
-               OpBranch %80122
-      %80108 = OpLabel
-      %80110 = OpIAdd %uint %140467 %int_1
-      %80111 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %80112 = OpLoad %v4float %80111
-               OpBranch %80122
-      %80121 = OpLabel
-               OpUnreachable
-      %80122 = OpLabel
-     %225448 = OpPhi %uint %80110 %80108 %140467 %80116
-     %143539 = OpPhi %uint %140441 %80108 %80118 %80116
-     %143538 = OpPhi %v4float %80112 %80108 %106406 %80116
-     %143537 = OpPhi %v4float %80112 %80108 %106407 %80116
-      %71697 = OpExtInst %v4float %1 Trunc %143538
-      %71701 = OpExtInst %v4float %1 Trunc %143537
-      %71707 = OpExtInst %v4float %1 FMin %71697 %71701
-      %71713 = OpExtInst %v4float %1 FMax %71697 %71701
-     %109816 = OpCompositeConstruct %_arr_v4float_uint_2 %71707 %71713
-      %80126 = OpIAdd %uint %143539 %int_1
-      %80128 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143539
-               OpStore %80128 %109816
-               OpBranch %74338
-      %71659 = OpLabel
-      %71662 = OpLoad %uint %65920
-      %71663 = OpBitwiseAnd %uint %71662 %uint_32768
-      %71664 = OpUGreaterThan %bool %71663 %uint_0
-               OpSelectionMerge %80094 None
-               OpSwitch %uint_0 %80078
-      %80078 = OpLabel
-               OpSelectionMerge %80093 None
-               OpBranchConditional %71664 %80080 %80088
-      %80088 = OpLabel
-      %80090 = OpISub %uint %140441 %int_1
-      %80091 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %80090
-      %80092 = OpLoad %_arr_v4float_uint_2 %80091
-     %106415 = OpCompositeExtract %v4float %80092 0
-     %106416 = OpCompositeExtract %v4float %80092 1
-               OpBranch %80094
-      %80080 = OpLabel
-      %80082 = OpIAdd %uint %140467 %int_1
-      %80083 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %80084 = OpLoad %v4float %80083
-               OpBranch %80094
-      %80093 = OpLabel
-               OpUnreachable
-      %80094 = OpLabel
-     %225447 = OpPhi %uint %80082 %80080 %140467 %80088
-     %143542 = OpPhi %uint %140441 %80080 %80090 %80088
-     %143541 = OpPhi %v4float %80084 %80080 %106415 %80088
-     %143540 = OpPhi %v4float %80084 %80080 %106416 %80088
-      %71668 = OpExtInst %v4float %1 Round %143541
-      %71672 = OpExtInst %v4float %1 Round %143540
-      %71678 = OpExtInst %v4float %1 FMin %71668 %71672
-      %71684 = OpExtInst %v4float %1 FMax %71668 %71672
-     %109807 = OpCompositeConstruct %_arr_v4float_uint_2 %71678 %71684
-      %80098 = OpIAdd %uint %143542 %int_1
-      %80100 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143542
-               OpStore %80100 %109807
-               OpBranch %74338
-      %71630 = OpLabel
-      %71633 = OpLoad %uint %65920
-      %71634 = OpBitwiseAnd %uint %71633 %uint_32768
-      %71635 = OpUGreaterThan %bool %71634 %uint_0
-               OpSelectionMerge %80066 None
-               OpSwitch %uint_0 %80050
-      %80050 = OpLabel
-               OpSelectionMerge %80065 None
-               OpBranchConditional %71635 %80052 %80060
-      %80060 = OpLabel
-      %80062 = OpISub %uint %140441 %int_1
-      %80063 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %80062
-      %80064 = OpLoad %_arr_v4float_uint_2 %80063
-     %106424 = OpCompositeExtract %v4float %80064 0
-     %106425 = OpCompositeExtract %v4float %80064 1
-               OpBranch %80066
-      %80052 = OpLabel
-      %80054 = OpIAdd %uint %140467 %int_1
-      %80055 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %80056 = OpLoad %v4float %80055
-               OpBranch %80066
-      %80065 = OpLabel
-               OpUnreachable
-      %80066 = OpLabel
-     %225446 = OpPhi %uint %80054 %80052 %140467 %80060
-     %143545 = OpPhi %uint %140441 %80052 %80062 %80060
-     %143544 = OpPhi %v4float %80056 %80052 %106424 %80060
-     %143543 = OpPhi %v4float %80056 %80052 %106425 %80060
-      %71639 = OpExtInst %v4float %1 Tanh %143544
-      %71643 = OpExtInst %v4float %1 Tanh %143543
-      %71649 = OpExtInst %v4float %1 FMin %71639 %71643
-      %71655 = OpExtInst %v4float %1 FMax %71639 %71643
-     %109798 = OpCompositeConstruct %_arr_v4float_uint_2 %71649 %71655
-      %80070 = OpIAdd %uint %143545 %int_1
-      %80072 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143545
-               OpStore %80072 %109798
-               OpBranch %74338
-      %71601 = OpLabel
-      %71604 = OpLoad %uint %65920
-      %71605 = OpBitwiseAnd %uint %71604 %uint_32768
-      %71606 = OpUGreaterThan %bool %71605 %uint_0
-               OpSelectionMerge %80038 None
-               OpSwitch %uint_0 %80022
-      %80022 = OpLabel
-               OpSelectionMerge %80037 None
-               OpBranchConditional %71606 %80024 %80032
-      %80032 = OpLabel
-      %80034 = OpISub %uint %140441 %int_1
-      %80035 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %80034
-      %80036 = OpLoad %_arr_v4float_uint_2 %80035
-     %106433 = OpCompositeExtract %v4float %80036 0
-     %106434 = OpCompositeExtract %v4float %80036 1
-               OpBranch %80038
-      %80024 = OpLabel
-      %80026 = OpIAdd %uint %140467 %int_1
-      %80027 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %80028 = OpLoad %v4float %80027
-               OpBranch %80038
-      %80037 = OpLabel
-               OpUnreachable
-      %80038 = OpLabel
-     %225445 = OpPhi %uint %80026 %80024 %140467 %80032
-     %143548 = OpPhi %uint %140441 %80024 %80034 %80032
-     %143547 = OpPhi %v4float %80028 %80024 %106433 %80032
-     %143546 = OpPhi %v4float %80028 %80024 %106434 %80032
-      %71610 = OpExtInst %v4float %1 Sinh %143547
-      %71614 = OpExtInst %v4float %1 Sinh %143546
-      %71620 = OpExtInst %v4float %1 FMin %71610 %71614
-      %71626 = OpExtInst %v4float %1 FMax %71610 %71614
-     %109789 = OpCompositeConstruct %_arr_v4float_uint_2 %71620 %71626
-      %80042 = OpIAdd %uint %143548 %int_1
-      %80044 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143548
-               OpStore %80044 %109789
-               OpBranch %74338
-      %71572 = OpLabel
-      %71575 = OpLoad %uint %65920
-      %71576 = OpBitwiseAnd %uint %71575 %uint_32768
-      %71577 = OpUGreaterThan %bool %71576 %uint_0
-               OpSelectionMerge %80010 None
-               OpSwitch %uint_0 %79994
-      %79994 = OpLabel
-               OpSelectionMerge %80009 None
-               OpBranchConditional %71577 %79996 %80004
-      %80004 = OpLabel
-      %80006 = OpISub %uint %140441 %int_1
-      %80007 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %80006
-      %80008 = OpLoad %_arr_v4float_uint_2 %80007
-     %106442 = OpCompositeExtract %v4float %80008 0
-     %106443 = OpCompositeExtract %v4float %80008 1
-               OpBranch %80010
-      %79996 = OpLabel
-      %79998 = OpIAdd %uint %140467 %int_1
-      %79999 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %80000 = OpLoad %v4float %79999
-               OpBranch %80010
-      %80009 = OpLabel
-               OpUnreachable
-      %80010 = OpLabel
-     %225444 = OpPhi %uint %79998 %79996 %140467 %80004
-     %143551 = OpPhi %uint %140441 %79996 %80006 %80004
-     %143550 = OpPhi %v4float %80000 %79996 %106442 %80004
-     %143549 = OpPhi %v4float %80000 %79996 %106443 %80004
-      %71581 = OpExtInst %v4float %1 Cosh %143550
-      %71585 = OpExtInst %v4float %1 Cosh %143549
-      %71591 = OpExtInst %v4float %1 FMin %71581 %71585
-      %71597 = OpExtInst %v4float %1 FMax %71581 %71585
-     %109780 = OpCompositeConstruct %_arr_v4float_uint_2 %71591 %71597
-      %80014 = OpIAdd %uint %143551 %int_1
-      %80016 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143551
-               OpStore %80016 %109780
-               OpBranch %74338
-      %71543 = OpLabel
-      %71546 = OpLoad %uint %65920
-      %71547 = OpBitwiseAnd %uint %71546 %uint_32768
-      %71548 = OpUGreaterThan %bool %71547 %uint_0
-               OpSelectionMerge %79982 None
-               OpSwitch %uint_0 %79966
-      %79966 = OpLabel
-               OpSelectionMerge %79981 None
-               OpBranchConditional %71548 %79968 %79976
-      %79976 = OpLabel
-      %79978 = OpISub %uint %140441 %int_1
-      %79979 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79978
-      %79980 = OpLoad %_arr_v4float_uint_2 %79979
-     %106451 = OpCompositeExtract %v4float %79980 0
-     %106452 = OpCompositeExtract %v4float %79980 1
-               OpBranch %79982
-      %79968 = OpLabel
-      %79970 = OpIAdd %uint %140467 %int_1
-      %79971 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79972 = OpLoad %v4float %79971
-               OpBranch %79982
-      %79981 = OpLabel
-               OpUnreachable
-      %79982 = OpLabel
-     %225443 = OpPhi %uint %79970 %79968 %140467 %79976
-     %143554 = OpPhi %uint %140441 %79968 %79978 %79976
-     %143553 = OpPhi %v4float %79972 %79968 %106451 %79976
-     %143552 = OpPhi %v4float %79972 %79968 %106452 %79976
-      %71552 = OpExtInst %v4float %1 Atanh %143553
-      %71556 = OpExtInst %v4float %1 Atanh %143552
-      %71562 = OpExtInst %v4float %1 FMin %71552 %71556
-      %71568 = OpExtInst %v4float %1 FMax %71552 %71556
-     %109771 = OpCompositeConstruct %_arr_v4float_uint_2 %71562 %71568
-      %79986 = OpIAdd %uint %143554 %int_1
-      %79988 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143554
-               OpStore %79988 %109771
-               OpBranch %74338
-      %71514 = OpLabel
-      %71517 = OpLoad %uint %65920
-      %71518 = OpBitwiseAnd %uint %71517 %uint_32768
-      %71519 = OpUGreaterThan %bool %71518 %uint_0
-               OpSelectionMerge %79954 None
-               OpSwitch %uint_0 %79938
-      %79938 = OpLabel
-               OpSelectionMerge %79953 None
-               OpBranchConditional %71519 %79940 %79948
-      %79948 = OpLabel
-      %79950 = OpISub %uint %140441 %int_1
-      %79951 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79950
-      %79952 = OpLoad %_arr_v4float_uint_2 %79951
-     %106460 = OpCompositeExtract %v4float %79952 0
-     %106461 = OpCompositeExtract %v4float %79952 1
-               OpBranch %79954
-      %79940 = OpLabel
-      %79942 = OpIAdd %uint %140467 %int_1
-      %79943 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79944 = OpLoad %v4float %79943
-               OpBranch %79954
-      %79953 = OpLabel
-               OpUnreachable
-      %79954 = OpLabel
-     %225442 = OpPhi %uint %79942 %79940 %140467 %79948
-     %143557 = OpPhi %uint %140441 %79940 %79950 %79948
-     %143556 = OpPhi %v4float %79944 %79940 %106460 %79948
-     %143555 = OpPhi %v4float %79944 %79940 %106461 %79948
-      %71523 = OpExtInst %v4float %1 Asinh %143556
-      %71527 = OpExtInst %v4float %1 Asinh %143555
-      %71533 = OpExtInst %v4float %1 FMin %71523 %71527
-      %71539 = OpExtInst %v4float %1 FMax %71523 %71527
-     %109762 = OpCompositeConstruct %_arr_v4float_uint_2 %71533 %71539
-      %79958 = OpIAdd %uint %143557 %int_1
-      %79960 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143557
-               OpStore %79960 %109762
-               OpBranch %74338
-      %71485 = OpLabel
-      %71488 = OpLoad %uint %65920
-      %71489 = OpBitwiseAnd %uint %71488 %uint_32768
-      %71490 = OpUGreaterThan %bool %71489 %uint_0
-               OpSelectionMerge %79926 None
-               OpSwitch %uint_0 %79910
-      %79910 = OpLabel
-               OpSelectionMerge %79925 None
-               OpBranchConditional %71490 %79912 %79920
-      %79920 = OpLabel
-      %79922 = OpISub %uint %140441 %int_1
-      %79923 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79922
-      %79924 = OpLoad %_arr_v4float_uint_2 %79923
-     %106469 = OpCompositeExtract %v4float %79924 0
-     %106470 = OpCompositeExtract %v4float %79924 1
-               OpBranch %79926
-      %79912 = OpLabel
-      %79914 = OpIAdd %uint %140467 %int_1
-      %79915 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79916 = OpLoad %v4float %79915
-               OpBranch %79926
-      %79925 = OpLabel
-               OpUnreachable
-      %79926 = OpLabel
-     %225441 = OpPhi %uint %79914 %79912 %140467 %79920
-     %143560 = OpPhi %uint %140441 %79912 %79922 %79920
-     %143559 = OpPhi %v4float %79916 %79912 %106469 %79920
-     %143558 = OpPhi %v4float %79916 %79912 %106470 %79920
-      %71494 = OpExtInst %v4float %1 Acosh %143559
-      %71498 = OpExtInst %v4float %1 Acosh %143558
-      %71504 = OpExtInst %v4float %1 FMin %71494 %71498
-      %71510 = OpExtInst %v4float %1 FMax %71494 %71498
-     %109753 = OpCompositeConstruct %_arr_v4float_uint_2 %71504 %71510
-      %79930 = OpIAdd %uint %143560 %int_1
-      %79932 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143560
-               OpStore %79932 %109753
-               OpBranch %74338
-      %71456 = OpLabel
-      %71459 = OpLoad %uint %65920
-      %71460 = OpBitwiseAnd %uint %71459 %uint_32768
-      %71461 = OpUGreaterThan %bool %71460 %uint_0
-               OpSelectionMerge %79898 None
-               OpSwitch %uint_0 %79882
-      %79882 = OpLabel
-               OpSelectionMerge %79897 None
-               OpBranchConditional %71461 %79884 %79892
-      %79892 = OpLabel
-      %79894 = OpISub %uint %140441 %int_1
-      %79895 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79894
-      %79896 = OpLoad %_arr_v4float_uint_2 %79895
-     %106478 = OpCompositeExtract %v4float %79896 0
-     %106479 = OpCompositeExtract %v4float %79896 1
-               OpBranch %79898
-      %79884 = OpLabel
-      %79886 = OpIAdd %uint %140467 %int_1
-      %79887 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79888 = OpLoad %v4float %79887
-               OpBranch %79898
-      %79897 = OpLabel
-               OpUnreachable
-      %79898 = OpLabel
-     %225440 = OpPhi %uint %79886 %79884 %140467 %79892
-     %143563 = OpPhi %uint %140441 %79884 %79894 %79892
-     %143562 = OpPhi %v4float %79888 %79884 %106478 %79892
-     %143561 = OpPhi %v4float %79888 %79884 %106479 %79892
-      %71465 = OpExtInst %v4float %1 Atan %143562
-      %71469 = OpExtInst %v4float %1 Atan %143561
-      %71475 = OpExtInst %v4float %1 FMin %71465 %71469
-      %71481 = OpExtInst %v4float %1 FMax %71465 %71469
-     %109744 = OpCompositeConstruct %_arr_v4float_uint_2 %71475 %71481
-      %79902 = OpIAdd %uint %143563 %int_1
-      %79904 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143563
-               OpStore %79904 %109744
-               OpBranch %74338
-      %71427 = OpLabel
-      %71430 = OpLoad %uint %65920
-      %71431 = OpBitwiseAnd %uint %71430 %uint_32768
-      %71432 = OpUGreaterThan %bool %71431 %uint_0
-               OpSelectionMerge %79870 None
-               OpSwitch %uint_0 %79854
-      %79854 = OpLabel
-               OpSelectionMerge %79869 None
-               OpBranchConditional %71432 %79856 %79864
-      %79864 = OpLabel
-      %79866 = OpISub %uint %140441 %int_1
-      %79867 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79866
-      %79868 = OpLoad %_arr_v4float_uint_2 %79867
-     %106487 = OpCompositeExtract %v4float %79868 0
-     %106488 = OpCompositeExtract %v4float %79868 1
-               OpBranch %79870
-      %79856 = OpLabel
-      %79858 = OpIAdd %uint %140467 %int_1
-      %79859 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79860 = OpLoad %v4float %79859
-               OpBranch %79870
-      %79869 = OpLabel
-               OpUnreachable
-      %79870 = OpLabel
-     %225439 = OpPhi %uint %79858 %79856 %140467 %79864
-     %143566 = OpPhi %uint %140441 %79856 %79866 %79864
-     %143565 = OpPhi %v4float %79860 %79856 %106487 %79864
-     %143564 = OpPhi %v4float %79860 %79856 %106488 %79864
-      %71436 = OpExtInst %v4float %1 Acos %143565
-      %71440 = OpExtInst %v4float %1 Acos %143564
-      %71446 = OpExtInst %v4float %1 FMin %71436 %71440
-      %71452 = OpExtInst %v4float %1 FMax %71436 %71440
-     %109735 = OpCompositeConstruct %_arr_v4float_uint_2 %71446 %71452
-      %79874 = OpIAdd %uint %143566 %int_1
-      %79876 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143566
-               OpStore %79876 %109735
-               OpBranch %74338
-      %71398 = OpLabel
-      %71401 = OpLoad %uint %65920
-      %71402 = OpBitwiseAnd %uint %71401 %uint_32768
-      %71403 = OpUGreaterThan %bool %71402 %uint_0
-               OpSelectionMerge %79842 None
-               OpSwitch %uint_0 %79826
-      %79826 = OpLabel
-               OpSelectionMerge %79841 None
-               OpBranchConditional %71403 %79828 %79836
-      %79836 = OpLabel
-      %79838 = OpISub %uint %140441 %int_1
-      %79839 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79838
-      %79840 = OpLoad %_arr_v4float_uint_2 %79839
-     %106496 = OpCompositeExtract %v4float %79840 0
-     %106497 = OpCompositeExtract %v4float %79840 1
-               OpBranch %79842
-      %79828 = OpLabel
-      %79830 = OpIAdd %uint %140467 %int_1
-      %79831 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79832 = OpLoad %v4float %79831
-               OpBranch %79842
-      %79841 = OpLabel
-               OpUnreachable
-      %79842 = OpLabel
-     %225438 = OpPhi %uint %79830 %79828 %140467 %79836
-     %143569 = OpPhi %uint %140441 %79828 %79838 %79836
-     %143568 = OpPhi %v4float %79832 %79828 %106496 %79836
-     %143567 = OpPhi %v4float %79832 %79828 %106497 %79836
-      %71407 = OpExtInst %v4float %1 Asin %143568
-      %71411 = OpExtInst %v4float %1 Asin %143567
-      %71417 = OpExtInst %v4float %1 FMin %71407 %71411
-      %71423 = OpExtInst %v4float %1 FMax %71407 %71411
-     %109726 = OpCompositeConstruct %_arr_v4float_uint_2 %71417 %71423
-      %79846 = OpIAdd %uint %143569 %int_1
-      %79848 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143569
-               OpStore %79848 %109726
-               OpBranch %74338
-      %71369 = OpLabel
-      %71372 = OpLoad %uint %65920
-      %71373 = OpBitwiseAnd %uint %71372 %uint_32768
-      %71374 = OpUGreaterThan %bool %71373 %uint_0
-               OpSelectionMerge %79814 None
-               OpSwitch %uint_0 %79798
-      %79798 = OpLabel
-               OpSelectionMerge %79813 None
-               OpBranchConditional %71374 %79800 %79808
-      %79808 = OpLabel
-      %79810 = OpISub %uint %140441 %int_1
-      %79811 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79810
-      %79812 = OpLoad %_arr_v4float_uint_2 %79811
-     %106505 = OpCompositeExtract %v4float %79812 0
-     %106506 = OpCompositeExtract %v4float %79812 1
-               OpBranch %79814
-      %79800 = OpLabel
-      %79802 = OpIAdd %uint %140467 %int_1
-      %79803 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79804 = OpLoad %v4float %79803
-               OpBranch %79814
-      %79813 = OpLabel
-               OpUnreachable
-      %79814 = OpLabel
-     %225437 = OpPhi %uint %79802 %79800 %140467 %79808
-     %143572 = OpPhi %uint %140441 %79800 %79810 %79808
-     %143571 = OpPhi %v4float %79804 %79800 %106505 %79808
-     %143570 = OpPhi %v4float %79804 %79800 %106506 %79808
-      %71378 = OpExtInst %v4float %1 Tan %143571
-      %71382 = OpExtInst %v4float %1 Tan %143570
-      %71388 = OpExtInst %v4float %1 FMin %71378 %71382
-      %71394 = OpExtInst %v4float %1 FMax %71378 %71382
-     %109717 = OpCompositeConstruct %_arr_v4float_uint_2 %71388 %71394
-      %79818 = OpIAdd %uint %143572 %int_1
-      %79820 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143572
-               OpStore %79820 %109717
-               OpBranch %74338
-      %71340 = OpLabel
-      %71343 = OpLoad %uint %65920
-      %71344 = OpBitwiseAnd %uint %71343 %uint_32768
-      %71345 = OpUGreaterThan %bool %71344 %uint_0
-               OpSelectionMerge %79786 None
-               OpSwitch %uint_0 %79770
-      %79770 = OpLabel
-               OpSelectionMerge %79785 None
-               OpBranchConditional %71345 %79772 %79780
-      %79780 = OpLabel
-      %79782 = OpISub %uint %140441 %int_1
-      %79783 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79782
-      %79784 = OpLoad %_arr_v4float_uint_2 %79783
-     %106514 = OpCompositeExtract %v4float %79784 0
-     %106515 = OpCompositeExtract %v4float %79784 1
-               OpBranch %79786
-      %79772 = OpLabel
-      %79774 = OpIAdd %uint %140467 %int_1
-      %79775 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79776 = OpLoad %v4float %79775
-               OpBranch %79786
-      %79785 = OpLabel
-               OpUnreachable
-      %79786 = OpLabel
-     %225436 = OpPhi %uint %79774 %79772 %140467 %79780
-     %143575 = OpPhi %uint %140441 %79772 %79782 %79780
-     %143574 = OpPhi %v4float %79776 %79772 %106514 %79780
-     %143573 = OpPhi %v4float %79776 %79772 %106515 %79780
-      %71349 = OpExtInst %v4float %1 Cos %143574
-      %71353 = OpExtInst %v4float %1 Cos %143573
-      %71359 = OpExtInst %v4float %1 FMin %71349 %71353
-      %71365 = OpExtInst %v4float %1 FMax %71349 %71353
-     %109708 = OpCompositeConstruct %_arr_v4float_uint_2 %71359 %71365
-      %79790 = OpIAdd %uint %143575 %int_1
-      %79792 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143575
-               OpStore %79792 %109708
-               OpBranch %74338
-      %71311 = OpLabel
-      %71314 = OpLoad %uint %65920
-      %71315 = OpBitwiseAnd %uint %71314 %uint_32768
-      %71316 = OpUGreaterThan %bool %71315 %uint_0
-               OpSelectionMerge %79758 None
-               OpSwitch %uint_0 %79742
-      %79742 = OpLabel
-               OpSelectionMerge %79757 None
-               OpBranchConditional %71316 %79744 %79752
-      %79752 = OpLabel
-      %79754 = OpISub %uint %140441 %int_1
-      %79755 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79754
-      %79756 = OpLoad %_arr_v4float_uint_2 %79755
-     %106523 = OpCompositeExtract %v4float %79756 0
-     %106524 = OpCompositeExtract %v4float %79756 1
-               OpBranch %79758
-      %79744 = OpLabel
-      %79746 = OpIAdd %uint %140467 %int_1
-      %79747 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79748 = OpLoad %v4float %79747
-               OpBranch %79758
-      %79757 = OpLabel
-               OpUnreachable
-      %79758 = OpLabel
-     %225435 = OpPhi %uint %79746 %79744 %140467 %79752
-     %143578 = OpPhi %uint %140441 %79744 %79754 %79752
-     %143577 = OpPhi %v4float %79748 %79744 %106523 %79752
-     %143576 = OpPhi %v4float %79748 %79744 %106524 %79752
-      %71320 = OpExtInst %v4float %1 Sin %143577
-      %71324 = OpExtInst %v4float %1 Sin %143576
-      %71330 = OpExtInst %v4float %1 FMin %71320 %71324
-      %71336 = OpExtInst %v4float %1 FMax %71320 %71324
-     %109699 = OpCompositeConstruct %_arr_v4float_uint_2 %71330 %71336
-      %79762 = OpIAdd %uint %143578 %int_1
-      %79764 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143578
-               OpStore %79764 %109699
-               OpBranch %74338
-      %71282 = OpLabel
-      %71285 = OpLoad %uint %65920
-      %71286 = OpBitwiseAnd %uint %71285 %uint_32768
-      %71287 = OpUGreaterThan %bool %71286 %uint_0
-               OpSelectionMerge %79730 None
-               OpSwitch %uint_0 %79714
-      %79714 = OpLabel
-               OpSelectionMerge %79729 None
-               OpBranchConditional %71287 %79716 %79724
-      %79724 = OpLabel
-      %79726 = OpISub %uint %140441 %int_1
-      %79727 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79726
-      %79728 = OpLoad %_arr_v4float_uint_2 %79727
-     %106532 = OpCompositeExtract %v4float %79728 0
-     %106533 = OpCompositeExtract %v4float %79728 1
-               OpBranch %79730
-      %79716 = OpLabel
-      %79718 = OpIAdd %uint %140467 %int_1
-      %79719 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79720 = OpLoad %v4float %79719
-               OpBranch %79730
-      %79729 = OpLabel
-               OpUnreachable
-      %79730 = OpLabel
-     %225434 = OpPhi %uint %79718 %79716 %140467 %79724
-     %143581 = OpPhi %uint %140441 %79716 %79726 %79724
-     %143580 = OpPhi %v4float %79720 %79716 %106532 %79724
-     %143579 = OpPhi %v4float %79720 %79716 %106533 %79724
-      %71291 = OpExtInst %v4float %1 Log2 %143580
-      %71295 = OpExtInst %v4float %1 Log2 %143579
-      %71301 = OpExtInst %v4float %1 FMin %71291 %71295
-      %71307 = OpExtInst %v4float %1 FMax %71291 %71295
-     %109690 = OpCompositeConstruct %_arr_v4float_uint_2 %71301 %71307
-      %79734 = OpIAdd %uint %143581 %int_1
-      %79736 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143581
-               OpStore %79736 %109690
-               OpBranch %74338
-      %71253 = OpLabel
-      %71256 = OpLoad %uint %65920
-      %71257 = OpBitwiseAnd %uint %71256 %uint_32768
-      %71258 = OpUGreaterThan %bool %71257 %uint_0
-               OpSelectionMerge %79702 None
-               OpSwitch %uint_0 %79686
-      %79686 = OpLabel
-               OpSelectionMerge %79701 None
-               OpBranchConditional %71258 %79688 %79696
-      %79696 = OpLabel
-      %79698 = OpISub %uint %140441 %int_1
-      %79699 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79698
-      %79700 = OpLoad %_arr_v4float_uint_2 %79699
-     %106541 = OpCompositeExtract %v4float %79700 0
-     %106542 = OpCompositeExtract %v4float %79700 1
-               OpBranch %79702
-      %79688 = OpLabel
-      %79690 = OpIAdd %uint %140467 %int_1
-      %79691 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79692 = OpLoad %v4float %79691
-               OpBranch %79702
-      %79701 = OpLabel
-               OpUnreachable
-      %79702 = OpLabel
-     %225433 = OpPhi %uint %79690 %79688 %140467 %79696
-     %143584 = OpPhi %uint %140441 %79688 %79698 %79696
-     %143583 = OpPhi %v4float %79692 %79688 %106541 %79696
-     %143582 = OpPhi %v4float %79692 %79688 %106542 %79696
-      %71262 = OpExtInst %v4float %1 Log %143583
-      %71266 = OpExtInst %v4float %1 Log %143582
-      %71272 = OpExtInst %v4float %1 FMin %71262 %71266
-      %71278 = OpExtInst %v4float %1 FMax %71262 %71266
-     %109681 = OpCompositeConstruct %_arr_v4float_uint_2 %71272 %71278
-      %79706 = OpIAdd %uint %143584 %int_1
-      %79708 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143584
-               OpStore %79708 %109681
-               OpBranch %74338
-      %71224 = OpLabel
-      %71227 = OpLoad %uint %65920
-      %71228 = OpBitwiseAnd %uint %71227 %uint_32768
-      %71229 = OpUGreaterThan %bool %71228 %uint_0
-               OpSelectionMerge %79674 None
-               OpSwitch %uint_0 %79658
-      %79658 = OpLabel
-               OpSelectionMerge %79673 None
-               OpBranchConditional %71229 %79660 %79668
-      %79668 = OpLabel
-      %79670 = OpISub %uint %140441 %int_1
-      %79671 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79670
-      %79672 = OpLoad %_arr_v4float_uint_2 %79671
-     %106550 = OpCompositeExtract %v4float %79672 0
-     %106551 = OpCompositeExtract %v4float %79672 1
-               OpBranch %79674
-      %79660 = OpLabel
-      %79662 = OpIAdd %uint %140467 %int_1
-      %79663 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79664 = OpLoad %v4float %79663
-               OpBranch %79674
-      %79673 = OpLabel
-               OpUnreachable
-      %79674 = OpLabel
-     %225432 = OpPhi %uint %79662 %79660 %140467 %79668
-     %143587 = OpPhi %uint %140441 %79660 %79670 %79668
-     %143586 = OpPhi %v4float %79664 %79660 %106550 %79668
-     %143585 = OpPhi %v4float %79664 %79660 %106551 %79668
-      %71233 = OpExtInst %v4float %1 Exp2 %143586
-      %71237 = OpExtInst %v4float %1 Exp2 %143585
-      %71243 = OpExtInst %v4float %1 FMin %71233 %71237
-      %71249 = OpExtInst %v4float %1 FMax %71233 %71237
-     %109672 = OpCompositeConstruct %_arr_v4float_uint_2 %71243 %71249
-      %79678 = OpIAdd %uint %143587 %int_1
-      %79680 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143587
-               OpStore %79680 %109672
-               OpBranch %74338
-      %71195 = OpLabel
-      %71198 = OpLoad %uint %65920
-      %71199 = OpBitwiseAnd %uint %71198 %uint_32768
-      %71200 = OpUGreaterThan %bool %71199 %uint_0
-               OpSelectionMerge %79646 None
-               OpSwitch %uint_0 %79630
-      %79630 = OpLabel
-               OpSelectionMerge %79645 None
-               OpBranchConditional %71200 %79632 %79640
-      %79640 = OpLabel
-      %79642 = OpISub %uint %140441 %int_1
-      %79643 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79642
-      %79644 = OpLoad %_arr_v4float_uint_2 %79643
-     %106559 = OpCompositeExtract %v4float %79644 0
-     %106560 = OpCompositeExtract %v4float %79644 1
-               OpBranch %79646
-      %79632 = OpLabel
-      %79634 = OpIAdd %uint %140467 %int_1
-      %79635 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79636 = OpLoad %v4float %79635
-               OpBranch %79646
-      %79645 = OpLabel
-               OpUnreachable
-      %79646 = OpLabel
-     %225431 = OpPhi %uint %79634 %79632 %140467 %79640
-     %143590 = OpPhi %uint %140441 %79632 %79642 %79640
-     %143589 = OpPhi %v4float %79636 %79632 %106559 %79640
-     %143588 = OpPhi %v4float %79636 %79632 %106560 %79640
-      %71204 = OpExtInst %v4float %1 Exp %143589
-      %71208 = OpExtInst %v4float %1 Exp %143588
-      %71214 = OpExtInst %v4float %1 FMin %71204 %71208
-      %71220 = OpExtInst %v4float %1 FMax %71204 %71208
-     %109663 = OpCompositeConstruct %_arr_v4float_uint_2 %71214 %71220
-      %79650 = OpIAdd %uint %143590 %int_1
-      %79652 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143590
-               OpStore %79652 %109663
-               OpBranch %74338
-      %71166 = OpLabel
-      %71169 = OpLoad %uint %65920
-      %71170 = OpBitwiseAnd %uint %71169 %uint_32768
-      %71171 = OpUGreaterThan %bool %71170 %uint_0
-               OpSelectionMerge %79618 None
-               OpSwitch %uint_0 %79602
-      %79602 = OpLabel
-               OpSelectionMerge %79617 None
-               OpBranchConditional %71171 %79604 %79612
-      %79612 = OpLabel
-      %79614 = OpISub %uint %140441 %int_1
-      %79615 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79614
-      %79616 = OpLoad %_arr_v4float_uint_2 %79615
-     %106568 = OpCompositeExtract %v4float %79616 0
-     %106569 = OpCompositeExtract %v4float %79616 1
-               OpBranch %79618
-      %79604 = OpLabel
-      %79606 = OpIAdd %uint %140467 %int_1
-      %79607 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79608 = OpLoad %v4float %79607
-               OpBranch %79618
-      %79617 = OpLabel
-               OpUnreachable
-      %79618 = OpLabel
-     %225430 = OpPhi %uint %79606 %79604 %140467 %79612
-     %143593 = OpPhi %uint %140441 %79604 %79614 %79612
-     %143592 = OpPhi %v4float %79608 %79604 %106568 %79612
-     %143591 = OpPhi %v4float %79608 %79604 %106569 %79612
-      %71175 = OpExtInst %v4float %1 InverseSqrt %143592
-      %71179 = OpExtInst %v4float %1 InverseSqrt %143591
-      %71185 = OpExtInst %v4float %1 FMin %71175 %71179
-      %71191 = OpExtInst %v4float %1 FMax %71175 %71179
-     %109654 = OpCompositeConstruct %_arr_v4float_uint_2 %71185 %71191
-      %79622 = OpIAdd %uint %143593 %int_1
-      %79624 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143593
-               OpStore %79624 %109654
-               OpBranch %74338
-      %71137 = OpLabel
-      %71140 = OpLoad %uint %65920
-      %71141 = OpBitwiseAnd %uint %71140 %uint_32768
-      %71142 = OpUGreaterThan %bool %71141 %uint_0
-               OpSelectionMerge %79590 None
-               OpSwitch %uint_0 %79574
-      %79574 = OpLabel
-               OpSelectionMerge %79589 None
-               OpBranchConditional %71142 %79576 %79584
-      %79584 = OpLabel
-      %79586 = OpISub %uint %140441 %int_1
-      %79587 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79586
-      %79588 = OpLoad %_arr_v4float_uint_2 %79587
-     %106577 = OpCompositeExtract %v4float %79588 0
-     %106578 = OpCompositeExtract %v4float %79588 1
-               OpBranch %79590
-      %79576 = OpLabel
-      %79578 = OpIAdd %uint %140467 %int_1
-      %79579 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79580 = OpLoad %v4float %79579
-               OpBranch %79590
-      %79589 = OpLabel
-               OpUnreachable
-      %79590 = OpLabel
-     %225429 = OpPhi %uint %79578 %79576 %140467 %79584
-     %143596 = OpPhi %uint %140441 %79576 %79586 %79584
-     %143595 = OpPhi %v4float %79580 %79576 %106577 %79584
-     %143594 = OpPhi %v4float %79580 %79576 %106578 %79584
-      %71146 = OpExtInst %v4float %1 Sqrt %143595
-      %71150 = OpExtInst %v4float %1 Sqrt %143594
-      %71156 = OpExtInst %v4float %1 FMin %71146 %71150
-      %71162 = OpExtInst %v4float %1 FMax %71146 %71150
-     %109645 = OpCompositeConstruct %_arr_v4float_uint_2 %71156 %71162
-      %79594 = OpIAdd %uint %143596 %int_1
-      %79596 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143596
-               OpStore %79596 %109645
-               OpBranch %74338
-      %71108 = OpLabel
-      %71111 = OpLoad %uint %65920
-      %71112 = OpBitwiseAnd %uint %71111 %uint_32768
-      %71113 = OpUGreaterThan %bool %71112 %uint_0
-               OpSelectionMerge %79562 None
-               OpSwitch %uint_0 %79546
-      %79546 = OpLabel
-               OpSelectionMerge %79561 None
-               OpBranchConditional %71113 %79548 %79556
-      %79556 = OpLabel
-      %79558 = OpISub %uint %140441 %int_1
-      %79559 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79558
-      %79560 = OpLoad %_arr_v4float_uint_2 %79559
-     %106586 = OpCompositeExtract %v4float %79560 0
-     %106587 = OpCompositeExtract %v4float %79560 1
-               OpBranch %79562
-      %79548 = OpLabel
-      %79550 = OpIAdd %uint %140467 %int_1
-      %79551 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79552 = OpLoad %v4float %79551
-               OpBranch %79562
-      %79561 = OpLabel
-               OpUnreachable
-      %79562 = OpLabel
-     %225428 = OpPhi %uint %79550 %79548 %140467 %79556
-     %143599 = OpPhi %uint %140441 %79548 %79558 %79556
-     %143598 = OpPhi %v4float %79552 %79548 %106586 %79556
-     %143597 = OpPhi %v4float %79552 %79548 %106587 %79556
-      %71117 = OpExtInst %v4float %1 Fract %143598
-      %71121 = OpExtInst %v4float %1 Fract %143597
-      %71127 = OpExtInst %v4float %1 FMin %71117 %71121
-      %71133 = OpExtInst %v4float %1 FMax %71117 %71121
-     %109636 = OpCompositeConstruct %_arr_v4float_uint_2 %71127 %71133
-      %79566 = OpIAdd %uint %143599 %int_1
-      %79568 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143599
-               OpStore %79568 %109636
-               OpBranch %74338
-      %71079 = OpLabel
-      %71082 = OpLoad %uint %65920
-      %71083 = OpBitwiseAnd %uint %71082 %uint_32768
-      %71084 = OpUGreaterThan %bool %71083 %uint_0
-               OpSelectionMerge %79534 None
-               OpSwitch %uint_0 %79518
-      %79518 = OpLabel
-               OpSelectionMerge %79533 None
-               OpBranchConditional %71084 %79520 %79528
-      %79528 = OpLabel
-      %79530 = OpISub %uint %140441 %int_1
-      %79531 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79530
-      %79532 = OpLoad %_arr_v4float_uint_2 %79531
-     %106595 = OpCompositeExtract %v4float %79532 0
-     %106596 = OpCompositeExtract %v4float %79532 1
-               OpBranch %79534
-      %79520 = OpLabel
-      %79522 = OpIAdd %uint %140467 %int_1
-      %79523 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79524 = OpLoad %v4float %79523
-               OpBranch %79534
-      %79533 = OpLabel
-               OpUnreachable
-      %79534 = OpLabel
-     %225427 = OpPhi %uint %79522 %79520 %140467 %79528
-     %143602 = OpPhi %uint %140441 %79520 %79530 %79528
-     %143601 = OpPhi %v4float %79524 %79520 %106595 %79528
-     %143600 = OpPhi %v4float %79524 %79520 %106596 %79528
-      %71088 = OpExtInst %v4float %1 Ceil %143601
-      %71092 = OpExtInst %v4float %1 Ceil %143600
-      %71098 = OpExtInst %v4float %1 FMin %71088 %71092
-      %71104 = OpExtInst %v4float %1 FMax %71088 %71092
-     %109627 = OpCompositeConstruct %_arr_v4float_uint_2 %71098 %71104
-      %79538 = OpIAdd %uint %143602 %int_1
-      %79540 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143602
-               OpStore %79540 %109627
-               OpBranch %74338
-      %71050 = OpLabel
-      %71053 = OpLoad %uint %65920
-      %71054 = OpBitwiseAnd %uint %71053 %uint_32768
-      %71055 = OpUGreaterThan %bool %71054 %uint_0
-               OpSelectionMerge %79506 None
-               OpSwitch %uint_0 %79490
-      %79490 = OpLabel
-               OpSelectionMerge %79505 None
-               OpBranchConditional %71055 %79492 %79500
-      %79500 = OpLabel
-      %79502 = OpISub %uint %140441 %int_1
-      %79503 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79502
-      %79504 = OpLoad %_arr_v4float_uint_2 %79503
-     %106604 = OpCompositeExtract %v4float %79504 0
-     %106605 = OpCompositeExtract %v4float %79504 1
-               OpBranch %79506
-      %79492 = OpLabel
-      %79494 = OpIAdd %uint %140467 %int_1
-      %79495 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79496 = OpLoad %v4float %79495
-               OpBranch %79506
-      %79505 = OpLabel
-               OpUnreachable
-      %79506 = OpLabel
-     %225426 = OpPhi %uint %79494 %79492 %140467 %79500
-     %143605 = OpPhi %uint %140441 %79492 %79502 %79500
-     %143604 = OpPhi %v4float %79496 %79492 %106604 %79500
-     %143603 = OpPhi %v4float %79496 %79492 %106605 %79500
-      %71059 = OpExtInst %v4float %1 Floor %143604
-      %71063 = OpExtInst %v4float %1 Floor %143603
-      %71069 = OpExtInst %v4float %1 FMin %71059 %71063
-      %71075 = OpExtInst %v4float %1 FMax %71059 %71063
-     %109618 = OpCompositeConstruct %_arr_v4float_uint_2 %71069 %71075
-      %79510 = OpIAdd %uint %143605 %int_1
-      %79512 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143605
-               OpStore %79512 %109618
-               OpBranch %74338
-      %71021 = OpLabel
-      %71024 = OpLoad %uint %65920
-      %71025 = OpBitwiseAnd %uint %71024 %uint_32768
-      %71026 = OpUGreaterThan %bool %71025 %uint_0
-               OpSelectionMerge %79478 None
-               OpSwitch %uint_0 %79462
-      %79462 = OpLabel
-               OpSelectionMerge %79477 None
-               OpBranchConditional %71026 %79464 %79472
-      %79472 = OpLabel
-      %79474 = OpISub %uint %140441 %int_1
-      %79475 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79474
-      %79476 = OpLoad %_arr_v4float_uint_2 %79475
-     %106613 = OpCompositeExtract %v4float %79476 0
-     %106614 = OpCompositeExtract %v4float %79476 1
-               OpBranch %79478
-      %79464 = OpLabel
-      %79466 = OpIAdd %uint %140467 %int_1
-      %79467 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79468 = OpLoad %v4float %79467
-               OpBranch %79478
-      %79477 = OpLabel
-               OpUnreachable
-      %79478 = OpLabel
-     %225425 = OpPhi %uint %79466 %79464 %140467 %79472
-     %143608 = OpPhi %uint %140441 %79464 %79474 %79472
-     %143607 = OpPhi %v4float %79468 %79464 %106613 %79472
-     %143606 = OpPhi %v4float %79468 %79464 %106614 %79472
-      %71030 = OpExtInst %v4float %1 FSign %143607
-      %71034 = OpExtInst %v4float %1 FSign %143606
-      %71040 = OpExtInst %v4float %1 FMin %71030 %71034
-      %71046 = OpExtInst %v4float %1 FMax %71030 %71034
-     %109609 = OpCompositeConstruct %_arr_v4float_uint_2 %71040 %71046
-      %79482 = OpIAdd %uint %143608 %int_1
-      %79484 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143608
-               OpStore %79484 %109609
-               OpBranch %74338
-      %70992 = OpLabel
-      %70995 = OpLoad %uint %65920
-      %70996 = OpBitwiseAnd %uint %70995 %uint_32768
-      %70997 = OpUGreaterThan %bool %70996 %uint_0
-               OpSelectionMerge %79450 None
-               OpSwitch %uint_0 %79434
-      %79434 = OpLabel
-               OpSelectionMerge %79449 None
-               OpBranchConditional %70997 %79436 %79444
-      %79444 = OpLabel
-      %79446 = OpISub %uint %140441 %int_1
-      %79447 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %79446
-      %79448 = OpLoad %_arr_v4float_uint_2 %79447
-     %106622 = OpCompositeExtract %v4float %79448 0
-     %106623 = OpCompositeExtract %v4float %79448 1
-               OpBranch %79450
-      %79436 = OpLabel
-      %79438 = OpIAdd %uint %140467 %int_1
-      %79439 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %79440 = OpLoad %v4float %79439
-               OpBranch %79450
-      %79449 = OpLabel
-               OpUnreachable
-      %79450 = OpLabel
-     %225424 = OpPhi %uint %79438 %79436 %140467 %79444
-     %143611 = OpPhi %uint %140441 %79436 %79446 %79444
-     %143610 = OpPhi %v4float %79440 %79436 %106622 %79444
-     %143609 = OpPhi %v4float %79440 %79436 %106623 %79444
-      %71001 = OpExtInst %v4float %1 FAbs %143610
-      %71005 = OpExtInst %v4float %1 FAbs %143609
-      %71011 = OpExtInst %v4float %1 FMin %71001 %71005
-      %71017 = OpExtInst %v4float %1 FMax %71001 %71005
-     %109600 = OpCompositeConstruct %_arr_v4float_uint_2 %71011 %71017
-      %79454 = OpIAdd %uint %143611 %int_1
-      %79456 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %143611
-               OpStore %79456 %109600
-               OpBranch %74338
-      %70910 = OpLabel
-      %70913 = OpLoad %uint %65920
-      %70914 = OpBitwiseAnd %uint %70913 %uint_32768
-      %70915 = OpUGreaterThan %bool %70914 %uint_0
-               OpSelectionMerge %79376 None
-               OpSwitch %uint_0 %79360
-      %79360 = OpLabel
-               OpSelectionMerge %79375 None
-               OpBranchConditional %70915 %79362 %79370
-      %79370 = OpLabel
-      %79372 = OpISub %uint %140432 %int_1
-      %79373 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79372
-      %79374 = OpLoad %_arr_v3float_uint_2 %79373
-     %106649 = OpCompositeExtract %v3float %79374 0
-     %106650 = OpCompositeExtract %v3float %79374 1
-               OpBranch %79376
-      %79362 = OpLabel
-      %79364 = OpIAdd %uint %140435 %int_1
-      %79365 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %79366 = OpLoad %v3float %79365
-               OpBranch %79376
-      %79375 = OpLabel
-               OpUnreachable
-      %79376 = OpLabel
-     %143616 = OpPhi %uint %79364 %79362 %140435 %79370
-     %143615 = OpPhi %uint %140432 %79362 %79372 %79370
-     %143613 = OpPhi %v3float %79366 %79362 %106649 %79370
-     %143612 = OpPhi %v3float %79366 %79362 %106650 %79370
-      %70919 = OpLoad %uint %65920
-      %70920 = OpBitwiseAnd %uint %70919 %uint_16384
-      %70921 = OpUGreaterThan %bool %70920 %uint_0
-               OpSelectionMerge %79399 None
-               OpSwitch %uint_0 %79383
-      %79383 = OpLabel
-               OpSelectionMerge %79398 None
-               OpBranchConditional %70921 %79385 %79393
-      %79393 = OpLabel
-      %79395 = OpISub %uint %143615 %int_1
-      %79396 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79395
-      %79397 = OpLoad %_arr_v3float_uint_2 %79396
-     %106640 = OpCompositeExtract %v3float %79397 0
-     %106641 = OpCompositeExtract %v3float %79397 1
-               OpBranch %79399
-      %79385 = OpLabel
-      %79387 = OpIAdd %uint %143616 %int_1
-      %79388 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %143616
-      %79389 = OpLoad %v3float %79388
-               OpBranch %79399
-      %79398 = OpLabel
-               OpUnreachable
-      %79399 = OpLabel
-     %143621 = OpPhi %uint %79387 %79385 %143616 %79393
-     %143620 = OpPhi %uint %143615 %79385 %79395 %79393
-     %143618 = OpPhi %v3float %79389 %79385 %106640 %79393
-     %143617 = OpPhi %v3float %79389 %79385 %106641 %79393
-      %70925 = OpLoad %uint %65920
-      %70926 = OpBitwiseAnd %uint %70925 %uint_8192
-      %70927 = OpUGreaterThan %bool %70926 %uint_0
-               OpSelectionMerge %79422 None
-               OpSwitch %uint_0 %79406
-      %79406 = OpLabel
-               OpSelectionMerge %79421 None
-               OpBranchConditional %70927 %79408 %79416
-      %79416 = OpLabel
-      %79418 = OpISub %uint %143620 %int_1
-      %79419 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79418
-      %79420 = OpLoad %_arr_v3float_uint_2 %79419
-     %106631 = OpCompositeExtract %v3float %79420 0
-     %106632 = OpCompositeExtract %v3float %79420 1
-               OpBranch %79422
-      %79408 = OpLabel
-      %79410 = OpIAdd %uint %143621 %int_1
-      %79411 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %143621
-      %79412 = OpLoad %v3float %79411
-               OpBranch %79422
-      %79421 = OpLabel
-               OpUnreachable
-      %79422 = OpLabel
-     %224645 = OpPhi %uint %79410 %79408 %143621 %79416
-     %143630 = OpPhi %uint %143620 %79408 %79418 %79416
-     %143623 = OpPhi %v3float %79412 %79408 %106631 %79416
-     %143622 = OpPhi %v3float %79412 %79408 %106632 %79416
-      %70933 = OpFMul %v3float %143613 %143618
-      %70939 = OpFMul %v3float %143613 %143617
-      %70945 = OpFMul %v3float %143612 %143618
-      %70951 = OpFMul %v3float %143612 %143617
-      %70961 = OpExtInst %v3float %1 FMin %70945 %70951
-      %70962 = OpExtInst %v3float %1 FMin %70939 %70961
-      %70963 = OpExtInst %v3float %1 FMin %70933 %70962
-      %70973 = OpExtInst %v3float %1 FMax %70945 %70951
-      %70974 = OpExtInst %v3float %1 FMax %70939 %70973
-      %70975 = OpExtInst %v3float %1 FMax %70933 %70974
-      %70982 = OpFAdd %v3float %70963 %143623
-      %70988 = OpFAdd %v3float %70975 %143622
-     %109583 = OpCompositeConstruct %_arr_v3float_uint_2 %70982 %70988
-      %79426 = OpIAdd %uint %143630 %int_1
-      %79428 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143630
-               OpStore %79428 %109583
-               OpBranch %74338
-      %70883 = OpLabel
-      %70886 = OpLoad %uint %65920
-      %70887 = OpBitwiseAnd %uint %70886 %uint_32768
-      %70888 = OpUGreaterThan %bool %70887 %uint_0
-               OpSelectionMerge %79325 None
-               OpSwitch %uint_0 %79309
-      %79309 = OpLabel
-               OpSelectionMerge %79324 None
-               OpBranchConditional %70888 %79311 %79319
-      %79319 = OpLabel
-      %79321 = OpISub %uint %140432 %int_1
-      %79322 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79321
-      %79323 = OpLoad %_arr_v3float_uint_2 %79322
-     %106667 = OpCompositeExtract %v3float %79323 0
-     %106668 = OpCompositeExtract %v3float %79323 1
-               OpBranch %79325
-      %79311 = OpLabel
-      %79313 = OpIAdd %uint %140435 %int_1
-      %79314 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %79315 = OpLoad %v3float %79314
-               OpBranch %79325
-      %79324 = OpLabel
-               OpUnreachable
-      %79325 = OpLabel
-     %143635 = OpPhi %uint %79313 %79311 %140435 %79319
-     %143634 = OpPhi %uint %140432 %79311 %79321 %79319
-     %143632 = OpPhi %v3float %79315 %79311 %106667 %79319
-     %143631 = OpPhi %v3float %79315 %79311 %106668 %79319
-      %70892 = OpLoad %uint %65920
-      %70893 = OpBitwiseAnd %uint %70892 %uint_16384
-      %70894 = OpUGreaterThan %bool %70893 %uint_0
-               OpSelectionMerge %79348 None
-               OpSwitch %uint_0 %79332
-      %79332 = OpLabel
-               OpSelectionMerge %79347 None
-               OpBranchConditional %70894 %79334 %79342
-      %79342 = OpLabel
-      %79344 = OpISub %uint %143634 %int_1
-      %79345 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79344
-      %79346 = OpLoad %_arr_v3float_uint_2 %79345
-     %106658 = OpCompositeExtract %v3float %79346 0
-     %106659 = OpCompositeExtract %v3float %79346 1
-               OpBranch %79348
-      %79334 = OpLabel
-      %79336 = OpIAdd %uint %143635 %int_1
-      %79337 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %143635
-      %79338 = OpLoad %v3float %79337
-               OpBranch %79348
-      %79347 = OpLabel
-               OpUnreachable
-      %79348 = OpLabel
-     %224644 = OpPhi %uint %79336 %79334 %143635 %79342
-     %143640 = OpPhi %uint %143634 %79334 %79344 %79342
-     %143637 = OpPhi %v3float %79338 %79334 %106658 %79342
-     %143636 = OpPhi %v3float %79338 %79334 %106659 %79342
-      %70900 = OpExtInst %v3float %1 FMax %143632 %143637
-      %70906 = OpExtInst %v3float %1 FMax %143631 %143636
-     %109572 = OpCompositeConstruct %_arr_v3float_uint_2 %70900 %70906
-      %79352 = OpIAdd %uint %143640 %int_1
-      %79354 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143640
-               OpStore %79354 %109572
-               OpBranch %74338
-      %70856 = OpLabel
-      %70859 = OpLoad %uint %65920
-      %70860 = OpBitwiseAnd %uint %70859 %uint_32768
-      %70861 = OpUGreaterThan %bool %70860 %uint_0
-               OpSelectionMerge %79274 None
-               OpSwitch %uint_0 %79258
-      %79258 = OpLabel
-               OpSelectionMerge %79273 None
-               OpBranchConditional %70861 %79260 %79268
-      %79268 = OpLabel
-      %79270 = OpISub %uint %140432 %int_1
-      %79271 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79270
-      %79272 = OpLoad %_arr_v3float_uint_2 %79271
-     %106685 = OpCompositeExtract %v3float %79272 0
-     %106686 = OpCompositeExtract %v3float %79272 1
-               OpBranch %79274
-      %79260 = OpLabel
-      %79262 = OpIAdd %uint %140435 %int_1
-      %79263 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %79264 = OpLoad %v3float %79263
-               OpBranch %79274
-      %79273 = OpLabel
-               OpUnreachable
-      %79274 = OpLabel
-     %143645 = OpPhi %uint %79262 %79260 %140435 %79268
-     %143644 = OpPhi %uint %140432 %79260 %79270 %79268
-     %143642 = OpPhi %v3float %79264 %79260 %106685 %79268
-     %143641 = OpPhi %v3float %79264 %79260 %106686 %79268
-      %70865 = OpLoad %uint %65920
-      %70866 = OpBitwiseAnd %uint %70865 %uint_16384
-      %70867 = OpUGreaterThan %bool %70866 %uint_0
-               OpSelectionMerge %79297 None
-               OpSwitch %uint_0 %79281
-      %79281 = OpLabel
-               OpSelectionMerge %79296 None
-               OpBranchConditional %70867 %79283 %79291
-      %79291 = OpLabel
-      %79293 = OpISub %uint %143644 %int_1
-      %79294 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79293
-      %79295 = OpLoad %_arr_v3float_uint_2 %79294
-     %106676 = OpCompositeExtract %v3float %79295 0
-     %106677 = OpCompositeExtract %v3float %79295 1
-               OpBranch %79297
-      %79283 = OpLabel
-      %79285 = OpIAdd %uint %143645 %int_1
-      %79286 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %143645
-      %79287 = OpLoad %v3float %79286
-               OpBranch %79297
-      %79296 = OpLabel
-               OpUnreachable
-      %79297 = OpLabel
-     %224643 = OpPhi %uint %79285 %79283 %143645 %79291
-     %143650 = OpPhi %uint %143644 %79283 %79293 %79291
-     %143647 = OpPhi %v3float %79287 %79283 %106676 %79291
-     %143646 = OpPhi %v3float %79287 %79283 %106677 %79291
-      %70873 = OpExtInst %v3float %1 FMin %143642 %143647
-      %70879 = OpExtInst %v3float %1 FMin %143641 %143646
-     %109561 = OpCompositeConstruct %_arr_v3float_uint_2 %70873 %70879
-      %79301 = OpIAdd %uint %143650 %int_1
-      %79303 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143650
-               OpStore %79303 %109561
-               OpBranch %74338
-      %70827 = OpLabel
-      %70830 = OpLoad %uint %65920
-      %70831 = OpBitwiseAnd %uint %70830 %uint_32768
-      %70832 = OpUGreaterThan %bool %70831 %uint_0
-               OpSelectionMerge %79246 None
-               OpSwitch %uint_0 %79230
-      %79230 = OpLabel
-               OpSelectionMerge %79245 None
-               OpBranchConditional %70832 %79232 %79240
-      %79240 = OpLabel
-      %79242 = OpISub %uint %140432 %int_1
-      %79243 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79242
-      %79244 = OpLoad %_arr_v3float_uint_2 %79243
-     %106694 = OpCompositeExtract %v3float %79244 0
-     %106695 = OpCompositeExtract %v3float %79244 1
-               OpBranch %79246
-      %79232 = OpLabel
-      %79234 = OpIAdd %uint %140435 %int_1
-      %79235 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %79236 = OpLoad %v3float %79235
-               OpBranch %79246
-      %79245 = OpLabel
-               OpUnreachable
-      %79246 = OpLabel
-     %224642 = OpPhi %uint %79234 %79232 %140435 %79240
-     %143653 = OpPhi %uint %140432 %79232 %79242 %79240
-     %143652 = OpPhi %v3float %79236 %79232 %106694 %79240
-     %143651 = OpPhi %v3float %79236 %79232 %106695 %79240
-      %70836 = OpExtInst %v3float %1 Trunc %143652
-      %70840 = OpExtInst %v3float %1 Trunc %143651
-      %70846 = OpExtInst %v3float %1 FMin %70836 %70840
-      %70852 = OpExtInst %v3float %1 FMax %70836 %70840
-     %109552 = OpCompositeConstruct %_arr_v3float_uint_2 %70846 %70852
-      %79250 = OpIAdd %uint %143653 %int_1
-      %79252 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143653
-               OpStore %79252 %109552
-               OpBranch %74338
-      %70798 = OpLabel
-      %70801 = OpLoad %uint %65920
-      %70802 = OpBitwiseAnd %uint %70801 %uint_32768
-      %70803 = OpUGreaterThan %bool %70802 %uint_0
-               OpSelectionMerge %79218 None
-               OpSwitch %uint_0 %79202
-      %79202 = OpLabel
-               OpSelectionMerge %79217 None
-               OpBranchConditional %70803 %79204 %79212
-      %79212 = OpLabel
-      %79214 = OpISub %uint %140432 %int_1
-      %79215 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79214
-      %79216 = OpLoad %_arr_v3float_uint_2 %79215
-     %106703 = OpCompositeExtract %v3float %79216 0
-     %106704 = OpCompositeExtract %v3float %79216 1
-               OpBranch %79218
-      %79204 = OpLabel
-      %79206 = OpIAdd %uint %140435 %int_1
-      %79207 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %79208 = OpLoad %v3float %79207
-               OpBranch %79218
-      %79217 = OpLabel
-               OpUnreachable
-      %79218 = OpLabel
-     %224641 = OpPhi %uint %79206 %79204 %140435 %79212
-     %143656 = OpPhi %uint %140432 %79204 %79214 %79212
-     %143655 = OpPhi %v3float %79208 %79204 %106703 %79212
-     %143654 = OpPhi %v3float %79208 %79204 %106704 %79212
-      %70807 = OpExtInst %v3float %1 Round %143655
-      %70811 = OpExtInst %v3float %1 Round %143654
-      %70817 = OpExtInst %v3float %1 FMin %70807 %70811
-      %70823 = OpExtInst %v3float %1 FMax %70807 %70811
-     %109543 = OpCompositeConstruct %_arr_v3float_uint_2 %70817 %70823
-      %79222 = OpIAdd %uint %143656 %int_1
-      %79224 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143656
-               OpStore %79224 %109543
-               OpBranch %74338
-      %70769 = OpLabel
-      %70772 = OpLoad %uint %65920
-      %70773 = OpBitwiseAnd %uint %70772 %uint_32768
-      %70774 = OpUGreaterThan %bool %70773 %uint_0
-               OpSelectionMerge %79190 None
-               OpSwitch %uint_0 %79174
-      %79174 = OpLabel
-               OpSelectionMerge %79189 None
-               OpBranchConditional %70774 %79176 %79184
-      %79184 = OpLabel
-      %79186 = OpISub %uint %140432 %int_1
-      %79187 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79186
-      %79188 = OpLoad %_arr_v3float_uint_2 %79187
-     %106712 = OpCompositeExtract %v3float %79188 0
-     %106713 = OpCompositeExtract %v3float %79188 1
-               OpBranch %79190
-      %79176 = OpLabel
-      %79178 = OpIAdd %uint %140435 %int_1
-      %79179 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %79180 = OpLoad %v3float %79179
-               OpBranch %79190
-      %79189 = OpLabel
-               OpUnreachable
-      %79190 = OpLabel
-     %224640 = OpPhi %uint %79178 %79176 %140435 %79184
-     %143659 = OpPhi %uint %140432 %79176 %79186 %79184
-     %143658 = OpPhi %v3float %79180 %79176 %106712 %79184
-     %143657 = OpPhi %v3float %79180 %79176 %106713 %79184
-      %70778 = OpExtInst %v3float %1 Tanh %143658
-      %70782 = OpExtInst %v3float %1 Tanh %143657
-      %70788 = OpExtInst %v3float %1 FMin %70778 %70782
-      %70794 = OpExtInst %v3float %1 FMax %70778 %70782
-     %109534 = OpCompositeConstruct %_arr_v3float_uint_2 %70788 %70794
-      %79194 = OpIAdd %uint %143659 %int_1
-      %79196 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143659
-               OpStore %79196 %109534
-               OpBranch %74338
-      %70740 = OpLabel
-      %70743 = OpLoad %uint %65920
-      %70744 = OpBitwiseAnd %uint %70743 %uint_32768
-      %70745 = OpUGreaterThan %bool %70744 %uint_0
-               OpSelectionMerge %79162 None
-               OpSwitch %uint_0 %79146
-      %79146 = OpLabel
-               OpSelectionMerge %79161 None
-               OpBranchConditional %70745 %79148 %79156
-      %79156 = OpLabel
-      %79158 = OpISub %uint %140432 %int_1
-      %79159 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79158
-      %79160 = OpLoad %_arr_v3float_uint_2 %79159
-     %106721 = OpCompositeExtract %v3float %79160 0
-     %106722 = OpCompositeExtract %v3float %79160 1
-               OpBranch %79162
-      %79148 = OpLabel
-      %79150 = OpIAdd %uint %140435 %int_1
-      %79151 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %79152 = OpLoad %v3float %79151
-               OpBranch %79162
-      %79161 = OpLabel
-               OpUnreachable
-      %79162 = OpLabel
-     %224639 = OpPhi %uint %79150 %79148 %140435 %79156
-     %143662 = OpPhi %uint %140432 %79148 %79158 %79156
-     %143661 = OpPhi %v3float %79152 %79148 %106721 %79156
-     %143660 = OpPhi %v3float %79152 %79148 %106722 %79156
-      %70749 = OpExtInst %v3float %1 Sinh %143661
-      %70753 = OpExtInst %v3float %1 Sinh %143660
-      %70759 = OpExtInst %v3float %1 FMin %70749 %70753
-      %70765 = OpExtInst %v3float %1 FMax %70749 %70753
-     %109525 = OpCompositeConstruct %_arr_v3float_uint_2 %70759 %70765
-      %79166 = OpIAdd %uint %143662 %int_1
-      %79168 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143662
-               OpStore %79168 %109525
-               OpBranch %74338
-      %70711 = OpLabel
-      %70714 = OpLoad %uint %65920
-      %70715 = OpBitwiseAnd %uint %70714 %uint_32768
-      %70716 = OpUGreaterThan %bool %70715 %uint_0
-               OpSelectionMerge %79134 None
-               OpSwitch %uint_0 %79118
-      %79118 = OpLabel
-               OpSelectionMerge %79133 None
-               OpBranchConditional %70716 %79120 %79128
-      %79128 = OpLabel
-      %79130 = OpISub %uint %140432 %int_1
-      %79131 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79130
-      %79132 = OpLoad %_arr_v3float_uint_2 %79131
-     %106730 = OpCompositeExtract %v3float %79132 0
-     %106731 = OpCompositeExtract %v3float %79132 1
-               OpBranch %79134
-      %79120 = OpLabel
-      %79122 = OpIAdd %uint %140435 %int_1
-      %79123 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %79124 = OpLoad %v3float %79123
-               OpBranch %79134
-      %79133 = OpLabel
-               OpUnreachable
-      %79134 = OpLabel
-     %224638 = OpPhi %uint %79122 %79120 %140435 %79128
-     %143665 = OpPhi %uint %140432 %79120 %79130 %79128
-     %143664 = OpPhi %v3float %79124 %79120 %106730 %79128
-     %143663 = OpPhi %v3float %79124 %79120 %106731 %79128
-      %70720 = OpExtInst %v3float %1 Cosh %143664
-      %70724 = OpExtInst %v3float %1 Cosh %143663
-      %70730 = OpExtInst %v3float %1 FMin %70720 %70724
-      %70736 = OpExtInst %v3float %1 FMax %70720 %70724
-     %109516 = OpCompositeConstruct %_arr_v3float_uint_2 %70730 %70736
-      %79138 = OpIAdd %uint %143665 %int_1
-      %79140 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143665
-               OpStore %79140 %109516
-               OpBranch %74338
-      %70682 = OpLabel
-      %70685 = OpLoad %uint %65920
-      %70686 = OpBitwiseAnd %uint %70685 %uint_32768
-      %70687 = OpUGreaterThan %bool %70686 %uint_0
-               OpSelectionMerge %79106 None
-               OpSwitch %uint_0 %79090
-      %79090 = OpLabel
-               OpSelectionMerge %79105 None
-               OpBranchConditional %70687 %79092 %79100
-      %79100 = OpLabel
-      %79102 = OpISub %uint %140432 %int_1
-      %79103 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79102
-      %79104 = OpLoad %_arr_v3float_uint_2 %79103
-     %106739 = OpCompositeExtract %v3float %79104 0
-     %106740 = OpCompositeExtract %v3float %79104 1
-               OpBranch %79106
-      %79092 = OpLabel
-      %79094 = OpIAdd %uint %140435 %int_1
-      %79095 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %79096 = OpLoad %v3float %79095
-               OpBranch %79106
-      %79105 = OpLabel
-               OpUnreachable
-      %79106 = OpLabel
-     %224637 = OpPhi %uint %79094 %79092 %140435 %79100
-     %143668 = OpPhi %uint %140432 %79092 %79102 %79100
-     %143667 = OpPhi %v3float %79096 %79092 %106739 %79100
-     %143666 = OpPhi %v3float %79096 %79092 %106740 %79100
-      %70691 = OpExtInst %v3float %1 Atanh %143667
-      %70695 = OpExtInst %v3float %1 Atanh %143666
-      %70701 = OpExtInst %v3float %1 FMin %70691 %70695
-      %70707 = OpExtInst %v3float %1 FMax %70691 %70695
-     %109507 = OpCompositeConstruct %_arr_v3float_uint_2 %70701 %70707
-      %79110 = OpIAdd %uint %143668 %int_1
-      %79112 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143668
-               OpStore %79112 %109507
-               OpBranch %74338
-      %70653 = OpLabel
-      %70656 = OpLoad %uint %65920
-      %70657 = OpBitwiseAnd %uint %70656 %uint_32768
-      %70658 = OpUGreaterThan %bool %70657 %uint_0
-               OpSelectionMerge %79078 None
-               OpSwitch %uint_0 %79062
-      %79062 = OpLabel
-               OpSelectionMerge %79077 None
-               OpBranchConditional %70658 %79064 %79072
-      %79072 = OpLabel
-      %79074 = OpISub %uint %140432 %int_1
-      %79075 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79074
-      %79076 = OpLoad %_arr_v3float_uint_2 %79075
-     %106748 = OpCompositeExtract %v3float %79076 0
-     %106749 = OpCompositeExtract %v3float %79076 1
-               OpBranch %79078
-      %79064 = OpLabel
-      %79066 = OpIAdd %uint %140435 %int_1
-      %79067 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %79068 = OpLoad %v3float %79067
-               OpBranch %79078
-      %79077 = OpLabel
-               OpUnreachable
-      %79078 = OpLabel
-     %224636 = OpPhi %uint %79066 %79064 %140435 %79072
-     %143671 = OpPhi %uint %140432 %79064 %79074 %79072
-     %143670 = OpPhi %v3float %79068 %79064 %106748 %79072
-     %143669 = OpPhi %v3float %79068 %79064 %106749 %79072
-      %70662 = OpExtInst %v3float %1 Asinh %143670
-      %70666 = OpExtInst %v3float %1 Asinh %143669
-      %70672 = OpExtInst %v3float %1 FMin %70662 %70666
-      %70678 = OpExtInst %v3float %1 FMax %70662 %70666
-     %109498 = OpCompositeConstruct %_arr_v3float_uint_2 %70672 %70678
-      %79082 = OpIAdd %uint %143671 %int_1
-      %79084 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143671
-               OpStore %79084 %109498
-               OpBranch %74338
-      %70624 = OpLabel
-      %70627 = OpLoad %uint %65920
-      %70628 = OpBitwiseAnd %uint %70627 %uint_32768
-      %70629 = OpUGreaterThan %bool %70628 %uint_0
-               OpSelectionMerge %79050 None
-               OpSwitch %uint_0 %79034
-      %79034 = OpLabel
-               OpSelectionMerge %79049 None
-               OpBranchConditional %70629 %79036 %79044
-      %79044 = OpLabel
-      %79046 = OpISub %uint %140432 %int_1
-      %79047 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79046
-      %79048 = OpLoad %_arr_v3float_uint_2 %79047
-     %106757 = OpCompositeExtract %v3float %79048 0
-     %106758 = OpCompositeExtract %v3float %79048 1
-               OpBranch %79050
-      %79036 = OpLabel
-      %79038 = OpIAdd %uint %140435 %int_1
-      %79039 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %79040 = OpLoad %v3float %79039
-               OpBranch %79050
-      %79049 = OpLabel
-               OpUnreachable
-      %79050 = OpLabel
-     %224635 = OpPhi %uint %79038 %79036 %140435 %79044
-     %143674 = OpPhi %uint %140432 %79036 %79046 %79044
-     %143673 = OpPhi %v3float %79040 %79036 %106757 %79044
-     %143672 = OpPhi %v3float %79040 %79036 %106758 %79044
-      %70633 = OpExtInst %v3float %1 Acosh %143673
-      %70637 = OpExtInst %v3float %1 Acosh %143672
-      %70643 = OpExtInst %v3float %1 FMin %70633 %70637
-      %70649 = OpExtInst %v3float %1 FMax %70633 %70637
-     %109489 = OpCompositeConstruct %_arr_v3float_uint_2 %70643 %70649
-      %79054 = OpIAdd %uint %143674 %int_1
-      %79056 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143674
-               OpStore %79056 %109489
-               OpBranch %74338
-      %70595 = OpLabel
-      %70598 = OpLoad %uint %65920
-      %70599 = OpBitwiseAnd %uint %70598 %uint_32768
-      %70600 = OpUGreaterThan %bool %70599 %uint_0
-               OpSelectionMerge %79022 None
-               OpSwitch %uint_0 %79006
-      %79006 = OpLabel
-               OpSelectionMerge %79021 None
-               OpBranchConditional %70600 %79008 %79016
-      %79016 = OpLabel
-      %79018 = OpISub %uint %140432 %int_1
-      %79019 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %79018
-      %79020 = OpLoad %_arr_v3float_uint_2 %79019
-     %106766 = OpCompositeExtract %v3float %79020 0
-     %106767 = OpCompositeExtract %v3float %79020 1
-               OpBranch %79022
-      %79008 = OpLabel
-      %79010 = OpIAdd %uint %140435 %int_1
-      %79011 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %79012 = OpLoad %v3float %79011
-               OpBranch %79022
-      %79021 = OpLabel
-               OpUnreachable
-      %79022 = OpLabel
-     %224634 = OpPhi %uint %79010 %79008 %140435 %79016
-     %143677 = OpPhi %uint %140432 %79008 %79018 %79016
-     %143676 = OpPhi %v3float %79012 %79008 %106766 %79016
-     %143675 = OpPhi %v3float %79012 %79008 %106767 %79016
-      %70604 = OpExtInst %v3float %1 Atan %143676
-      %70608 = OpExtInst %v3float %1 Atan %143675
-      %70614 = OpExtInst %v3float %1 FMin %70604 %70608
-      %70620 = OpExtInst %v3float %1 FMax %70604 %70608
-     %109480 = OpCompositeConstruct %_arr_v3float_uint_2 %70614 %70620
-      %79026 = OpIAdd %uint %143677 %int_1
-      %79028 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143677
-               OpStore %79028 %109480
-               OpBranch %74338
-      %70566 = OpLabel
-      %70569 = OpLoad %uint %65920
-      %70570 = OpBitwiseAnd %uint %70569 %uint_32768
-      %70571 = OpUGreaterThan %bool %70570 %uint_0
-               OpSelectionMerge %78994 None
-               OpSwitch %uint_0 %78978
-      %78978 = OpLabel
-               OpSelectionMerge %78993 None
-               OpBranchConditional %70571 %78980 %78988
-      %78988 = OpLabel
-      %78990 = OpISub %uint %140432 %int_1
-      %78991 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78990
-      %78992 = OpLoad %_arr_v3float_uint_2 %78991
-     %106775 = OpCompositeExtract %v3float %78992 0
-     %106776 = OpCompositeExtract %v3float %78992 1
-               OpBranch %78994
-      %78980 = OpLabel
-      %78982 = OpIAdd %uint %140435 %int_1
-      %78983 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78984 = OpLoad %v3float %78983
-               OpBranch %78994
-      %78993 = OpLabel
-               OpUnreachable
-      %78994 = OpLabel
-     %224633 = OpPhi %uint %78982 %78980 %140435 %78988
-     %143680 = OpPhi %uint %140432 %78980 %78990 %78988
-     %143679 = OpPhi %v3float %78984 %78980 %106775 %78988
-     %143678 = OpPhi %v3float %78984 %78980 %106776 %78988
-      %70575 = OpExtInst %v3float %1 Acos %143679
-      %70579 = OpExtInst %v3float %1 Acos %143678
-      %70585 = OpExtInst %v3float %1 FMin %70575 %70579
-      %70591 = OpExtInst %v3float %1 FMax %70575 %70579
-     %109471 = OpCompositeConstruct %_arr_v3float_uint_2 %70585 %70591
-      %78998 = OpIAdd %uint %143680 %int_1
-      %79000 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143680
-               OpStore %79000 %109471
-               OpBranch %74338
-      %70537 = OpLabel
-      %70540 = OpLoad %uint %65920
-      %70541 = OpBitwiseAnd %uint %70540 %uint_32768
-      %70542 = OpUGreaterThan %bool %70541 %uint_0
-               OpSelectionMerge %78966 None
-               OpSwitch %uint_0 %78950
-      %78950 = OpLabel
-               OpSelectionMerge %78965 None
-               OpBranchConditional %70542 %78952 %78960
-      %78960 = OpLabel
-      %78962 = OpISub %uint %140432 %int_1
-      %78963 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78962
-      %78964 = OpLoad %_arr_v3float_uint_2 %78963
-     %106784 = OpCompositeExtract %v3float %78964 0
-     %106785 = OpCompositeExtract %v3float %78964 1
-               OpBranch %78966
-      %78952 = OpLabel
-      %78954 = OpIAdd %uint %140435 %int_1
-      %78955 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78956 = OpLoad %v3float %78955
-               OpBranch %78966
-      %78965 = OpLabel
-               OpUnreachable
-      %78966 = OpLabel
-     %224632 = OpPhi %uint %78954 %78952 %140435 %78960
-     %143683 = OpPhi %uint %140432 %78952 %78962 %78960
-     %143682 = OpPhi %v3float %78956 %78952 %106784 %78960
-     %143681 = OpPhi %v3float %78956 %78952 %106785 %78960
-      %70546 = OpExtInst %v3float %1 Asin %143682
-      %70550 = OpExtInst %v3float %1 Asin %143681
-      %70556 = OpExtInst %v3float %1 FMin %70546 %70550
-      %70562 = OpExtInst %v3float %1 FMax %70546 %70550
-     %109462 = OpCompositeConstruct %_arr_v3float_uint_2 %70556 %70562
-      %78970 = OpIAdd %uint %143683 %int_1
-      %78972 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143683
-               OpStore %78972 %109462
-               OpBranch %74338
-      %70508 = OpLabel
-      %70511 = OpLoad %uint %65920
-      %70512 = OpBitwiseAnd %uint %70511 %uint_32768
-      %70513 = OpUGreaterThan %bool %70512 %uint_0
-               OpSelectionMerge %78938 None
-               OpSwitch %uint_0 %78922
-      %78922 = OpLabel
-               OpSelectionMerge %78937 None
-               OpBranchConditional %70513 %78924 %78932
-      %78932 = OpLabel
-      %78934 = OpISub %uint %140432 %int_1
-      %78935 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78934
-      %78936 = OpLoad %_arr_v3float_uint_2 %78935
-     %106793 = OpCompositeExtract %v3float %78936 0
-     %106794 = OpCompositeExtract %v3float %78936 1
-               OpBranch %78938
-      %78924 = OpLabel
-      %78926 = OpIAdd %uint %140435 %int_1
-      %78927 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78928 = OpLoad %v3float %78927
-               OpBranch %78938
-      %78937 = OpLabel
-               OpUnreachable
-      %78938 = OpLabel
-     %224631 = OpPhi %uint %78926 %78924 %140435 %78932
-     %143686 = OpPhi %uint %140432 %78924 %78934 %78932
-     %143685 = OpPhi %v3float %78928 %78924 %106793 %78932
-     %143684 = OpPhi %v3float %78928 %78924 %106794 %78932
-      %70517 = OpExtInst %v3float %1 Tan %143685
-      %70521 = OpExtInst %v3float %1 Tan %143684
-      %70527 = OpExtInst %v3float %1 FMin %70517 %70521
-      %70533 = OpExtInst %v3float %1 FMax %70517 %70521
-     %109453 = OpCompositeConstruct %_arr_v3float_uint_2 %70527 %70533
-      %78942 = OpIAdd %uint %143686 %int_1
-      %78944 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143686
-               OpStore %78944 %109453
-               OpBranch %74338
-      %70479 = OpLabel
-      %70482 = OpLoad %uint %65920
-      %70483 = OpBitwiseAnd %uint %70482 %uint_32768
-      %70484 = OpUGreaterThan %bool %70483 %uint_0
-               OpSelectionMerge %78910 None
-               OpSwitch %uint_0 %78894
-      %78894 = OpLabel
-               OpSelectionMerge %78909 None
-               OpBranchConditional %70484 %78896 %78904
-      %78904 = OpLabel
-      %78906 = OpISub %uint %140432 %int_1
-      %78907 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78906
-      %78908 = OpLoad %_arr_v3float_uint_2 %78907
-     %106802 = OpCompositeExtract %v3float %78908 0
-     %106803 = OpCompositeExtract %v3float %78908 1
-               OpBranch %78910
-      %78896 = OpLabel
-      %78898 = OpIAdd %uint %140435 %int_1
-      %78899 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78900 = OpLoad %v3float %78899
-               OpBranch %78910
-      %78909 = OpLabel
-               OpUnreachable
-      %78910 = OpLabel
-     %224630 = OpPhi %uint %78898 %78896 %140435 %78904
-     %143689 = OpPhi %uint %140432 %78896 %78906 %78904
-     %143688 = OpPhi %v3float %78900 %78896 %106802 %78904
-     %143687 = OpPhi %v3float %78900 %78896 %106803 %78904
-      %70488 = OpExtInst %v3float %1 Cos %143688
-      %70492 = OpExtInst %v3float %1 Cos %143687
-      %70498 = OpExtInst %v3float %1 FMin %70488 %70492
-      %70504 = OpExtInst %v3float %1 FMax %70488 %70492
-     %109444 = OpCompositeConstruct %_arr_v3float_uint_2 %70498 %70504
-      %78914 = OpIAdd %uint %143689 %int_1
-      %78916 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143689
-               OpStore %78916 %109444
-               OpBranch %74338
-      %70450 = OpLabel
-      %70453 = OpLoad %uint %65920
-      %70454 = OpBitwiseAnd %uint %70453 %uint_32768
-      %70455 = OpUGreaterThan %bool %70454 %uint_0
-               OpSelectionMerge %78882 None
-               OpSwitch %uint_0 %78866
-      %78866 = OpLabel
-               OpSelectionMerge %78881 None
-               OpBranchConditional %70455 %78868 %78876
-      %78876 = OpLabel
-      %78878 = OpISub %uint %140432 %int_1
-      %78879 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78878
-      %78880 = OpLoad %_arr_v3float_uint_2 %78879
-     %106811 = OpCompositeExtract %v3float %78880 0
-     %106812 = OpCompositeExtract %v3float %78880 1
-               OpBranch %78882
-      %78868 = OpLabel
-      %78870 = OpIAdd %uint %140435 %int_1
-      %78871 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78872 = OpLoad %v3float %78871
-               OpBranch %78882
-      %78881 = OpLabel
-               OpUnreachable
-      %78882 = OpLabel
-     %224629 = OpPhi %uint %78870 %78868 %140435 %78876
-     %143692 = OpPhi %uint %140432 %78868 %78878 %78876
-     %143691 = OpPhi %v3float %78872 %78868 %106811 %78876
-     %143690 = OpPhi %v3float %78872 %78868 %106812 %78876
-      %70459 = OpExtInst %v3float %1 Sin %143691
-      %70463 = OpExtInst %v3float %1 Sin %143690
-      %70469 = OpExtInst %v3float %1 FMin %70459 %70463
-      %70475 = OpExtInst %v3float %1 FMax %70459 %70463
-     %109435 = OpCompositeConstruct %_arr_v3float_uint_2 %70469 %70475
-      %78886 = OpIAdd %uint %143692 %int_1
-      %78888 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143692
-               OpStore %78888 %109435
-               OpBranch %74338
-      %70421 = OpLabel
-      %70424 = OpLoad %uint %65920
-      %70425 = OpBitwiseAnd %uint %70424 %uint_32768
-      %70426 = OpUGreaterThan %bool %70425 %uint_0
-               OpSelectionMerge %78854 None
-               OpSwitch %uint_0 %78838
-      %78838 = OpLabel
-               OpSelectionMerge %78853 None
-               OpBranchConditional %70426 %78840 %78848
-      %78848 = OpLabel
-      %78850 = OpISub %uint %140432 %int_1
-      %78851 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78850
-      %78852 = OpLoad %_arr_v3float_uint_2 %78851
-     %106820 = OpCompositeExtract %v3float %78852 0
-     %106821 = OpCompositeExtract %v3float %78852 1
-               OpBranch %78854
-      %78840 = OpLabel
-      %78842 = OpIAdd %uint %140435 %int_1
-      %78843 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78844 = OpLoad %v3float %78843
-               OpBranch %78854
-      %78853 = OpLabel
-               OpUnreachable
-      %78854 = OpLabel
-     %224628 = OpPhi %uint %78842 %78840 %140435 %78848
-     %143695 = OpPhi %uint %140432 %78840 %78850 %78848
-     %143694 = OpPhi %v3float %78844 %78840 %106820 %78848
-     %143693 = OpPhi %v3float %78844 %78840 %106821 %78848
-      %70430 = OpExtInst %v3float %1 Log2 %143694
-      %70434 = OpExtInst %v3float %1 Log2 %143693
-      %70440 = OpExtInst %v3float %1 FMin %70430 %70434
-      %70446 = OpExtInst %v3float %1 FMax %70430 %70434
-     %109426 = OpCompositeConstruct %_arr_v3float_uint_2 %70440 %70446
-      %78858 = OpIAdd %uint %143695 %int_1
-      %78860 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143695
-               OpStore %78860 %109426
-               OpBranch %74338
-      %70392 = OpLabel
-      %70395 = OpLoad %uint %65920
-      %70396 = OpBitwiseAnd %uint %70395 %uint_32768
-      %70397 = OpUGreaterThan %bool %70396 %uint_0
-               OpSelectionMerge %78826 None
-               OpSwitch %uint_0 %78810
-      %78810 = OpLabel
-               OpSelectionMerge %78825 None
-               OpBranchConditional %70397 %78812 %78820
-      %78820 = OpLabel
-      %78822 = OpISub %uint %140432 %int_1
-      %78823 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78822
-      %78824 = OpLoad %_arr_v3float_uint_2 %78823
-     %106829 = OpCompositeExtract %v3float %78824 0
-     %106830 = OpCompositeExtract %v3float %78824 1
-               OpBranch %78826
-      %78812 = OpLabel
-      %78814 = OpIAdd %uint %140435 %int_1
-      %78815 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78816 = OpLoad %v3float %78815
-               OpBranch %78826
-      %78825 = OpLabel
-               OpUnreachable
-      %78826 = OpLabel
-     %224627 = OpPhi %uint %78814 %78812 %140435 %78820
-     %143698 = OpPhi %uint %140432 %78812 %78822 %78820
-     %143697 = OpPhi %v3float %78816 %78812 %106829 %78820
-     %143696 = OpPhi %v3float %78816 %78812 %106830 %78820
-      %70401 = OpExtInst %v3float %1 Log %143697
-      %70405 = OpExtInst %v3float %1 Log %143696
-      %70411 = OpExtInst %v3float %1 FMin %70401 %70405
-      %70417 = OpExtInst %v3float %1 FMax %70401 %70405
-     %109417 = OpCompositeConstruct %_arr_v3float_uint_2 %70411 %70417
-      %78830 = OpIAdd %uint %143698 %int_1
-      %78832 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143698
-               OpStore %78832 %109417
-               OpBranch %74338
-      %70363 = OpLabel
-      %70366 = OpLoad %uint %65920
-      %70367 = OpBitwiseAnd %uint %70366 %uint_32768
-      %70368 = OpUGreaterThan %bool %70367 %uint_0
-               OpSelectionMerge %78798 None
-               OpSwitch %uint_0 %78782
-      %78782 = OpLabel
-               OpSelectionMerge %78797 None
-               OpBranchConditional %70368 %78784 %78792
-      %78792 = OpLabel
-      %78794 = OpISub %uint %140432 %int_1
-      %78795 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78794
-      %78796 = OpLoad %_arr_v3float_uint_2 %78795
-     %106838 = OpCompositeExtract %v3float %78796 0
-     %106839 = OpCompositeExtract %v3float %78796 1
-               OpBranch %78798
-      %78784 = OpLabel
-      %78786 = OpIAdd %uint %140435 %int_1
-      %78787 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78788 = OpLoad %v3float %78787
-               OpBranch %78798
-      %78797 = OpLabel
-               OpUnreachable
-      %78798 = OpLabel
-     %224626 = OpPhi %uint %78786 %78784 %140435 %78792
-     %143701 = OpPhi %uint %140432 %78784 %78794 %78792
-     %143700 = OpPhi %v3float %78788 %78784 %106838 %78792
-     %143699 = OpPhi %v3float %78788 %78784 %106839 %78792
-      %70372 = OpExtInst %v3float %1 Exp2 %143700
-      %70376 = OpExtInst %v3float %1 Exp2 %143699
-      %70382 = OpExtInst %v3float %1 FMin %70372 %70376
-      %70388 = OpExtInst %v3float %1 FMax %70372 %70376
-     %109408 = OpCompositeConstruct %_arr_v3float_uint_2 %70382 %70388
-      %78802 = OpIAdd %uint %143701 %int_1
-      %78804 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143701
-               OpStore %78804 %109408
-               OpBranch %74338
-      %70334 = OpLabel
-      %70337 = OpLoad %uint %65920
-      %70338 = OpBitwiseAnd %uint %70337 %uint_32768
-      %70339 = OpUGreaterThan %bool %70338 %uint_0
-               OpSelectionMerge %78770 None
-               OpSwitch %uint_0 %78754
-      %78754 = OpLabel
-               OpSelectionMerge %78769 None
-               OpBranchConditional %70339 %78756 %78764
-      %78764 = OpLabel
-      %78766 = OpISub %uint %140432 %int_1
-      %78767 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78766
-      %78768 = OpLoad %_arr_v3float_uint_2 %78767
-     %106847 = OpCompositeExtract %v3float %78768 0
-     %106848 = OpCompositeExtract %v3float %78768 1
-               OpBranch %78770
-      %78756 = OpLabel
-      %78758 = OpIAdd %uint %140435 %int_1
-      %78759 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78760 = OpLoad %v3float %78759
-               OpBranch %78770
-      %78769 = OpLabel
-               OpUnreachable
-      %78770 = OpLabel
-     %224625 = OpPhi %uint %78758 %78756 %140435 %78764
-     %143704 = OpPhi %uint %140432 %78756 %78766 %78764
-     %143703 = OpPhi %v3float %78760 %78756 %106847 %78764
-     %143702 = OpPhi %v3float %78760 %78756 %106848 %78764
-      %70343 = OpExtInst %v3float %1 Exp %143703
-      %70347 = OpExtInst %v3float %1 Exp %143702
-      %70353 = OpExtInst %v3float %1 FMin %70343 %70347
-      %70359 = OpExtInst %v3float %1 FMax %70343 %70347
-     %109399 = OpCompositeConstruct %_arr_v3float_uint_2 %70353 %70359
-      %78774 = OpIAdd %uint %143704 %int_1
-      %78776 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143704
-               OpStore %78776 %109399
-               OpBranch %74338
-      %70305 = OpLabel
-      %70308 = OpLoad %uint %65920
-      %70309 = OpBitwiseAnd %uint %70308 %uint_32768
-      %70310 = OpUGreaterThan %bool %70309 %uint_0
-               OpSelectionMerge %78742 None
-               OpSwitch %uint_0 %78726
-      %78726 = OpLabel
-               OpSelectionMerge %78741 None
-               OpBranchConditional %70310 %78728 %78736
-      %78736 = OpLabel
-      %78738 = OpISub %uint %140432 %int_1
-      %78739 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78738
-      %78740 = OpLoad %_arr_v3float_uint_2 %78739
-     %106856 = OpCompositeExtract %v3float %78740 0
-     %106857 = OpCompositeExtract %v3float %78740 1
-               OpBranch %78742
-      %78728 = OpLabel
-      %78730 = OpIAdd %uint %140435 %int_1
-      %78731 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78732 = OpLoad %v3float %78731
-               OpBranch %78742
-      %78741 = OpLabel
-               OpUnreachable
-      %78742 = OpLabel
-     %224624 = OpPhi %uint %78730 %78728 %140435 %78736
-     %143707 = OpPhi %uint %140432 %78728 %78738 %78736
-     %143706 = OpPhi %v3float %78732 %78728 %106856 %78736
-     %143705 = OpPhi %v3float %78732 %78728 %106857 %78736
-      %70314 = OpExtInst %v3float %1 InverseSqrt %143706
-      %70318 = OpExtInst %v3float %1 InverseSqrt %143705
-      %70324 = OpExtInst %v3float %1 FMin %70314 %70318
-      %70330 = OpExtInst %v3float %1 FMax %70314 %70318
-     %109390 = OpCompositeConstruct %_arr_v3float_uint_2 %70324 %70330
-      %78746 = OpIAdd %uint %143707 %int_1
-      %78748 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143707
-               OpStore %78748 %109390
-               OpBranch %74338
-      %70276 = OpLabel
-      %70279 = OpLoad %uint %65920
-      %70280 = OpBitwiseAnd %uint %70279 %uint_32768
-      %70281 = OpUGreaterThan %bool %70280 %uint_0
-               OpSelectionMerge %78714 None
-               OpSwitch %uint_0 %78698
-      %78698 = OpLabel
-               OpSelectionMerge %78713 None
-               OpBranchConditional %70281 %78700 %78708
-      %78708 = OpLabel
-      %78710 = OpISub %uint %140432 %int_1
-      %78711 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78710
-      %78712 = OpLoad %_arr_v3float_uint_2 %78711
-     %106865 = OpCompositeExtract %v3float %78712 0
-     %106866 = OpCompositeExtract %v3float %78712 1
-               OpBranch %78714
-      %78700 = OpLabel
-      %78702 = OpIAdd %uint %140435 %int_1
-      %78703 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78704 = OpLoad %v3float %78703
-               OpBranch %78714
-      %78713 = OpLabel
-               OpUnreachable
-      %78714 = OpLabel
-     %224623 = OpPhi %uint %78702 %78700 %140435 %78708
-     %143710 = OpPhi %uint %140432 %78700 %78710 %78708
-     %143709 = OpPhi %v3float %78704 %78700 %106865 %78708
-     %143708 = OpPhi %v3float %78704 %78700 %106866 %78708
-      %70285 = OpExtInst %v3float %1 Sqrt %143709
-      %70289 = OpExtInst %v3float %1 Sqrt %143708
-      %70295 = OpExtInst %v3float %1 FMin %70285 %70289
-      %70301 = OpExtInst %v3float %1 FMax %70285 %70289
-     %109381 = OpCompositeConstruct %_arr_v3float_uint_2 %70295 %70301
-      %78718 = OpIAdd %uint %143710 %int_1
-      %78720 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143710
-               OpStore %78720 %109381
-               OpBranch %74338
-      %70247 = OpLabel
-      %70250 = OpLoad %uint %65920
-      %70251 = OpBitwiseAnd %uint %70250 %uint_32768
-      %70252 = OpUGreaterThan %bool %70251 %uint_0
-               OpSelectionMerge %78686 None
-               OpSwitch %uint_0 %78670
-      %78670 = OpLabel
-               OpSelectionMerge %78685 None
-               OpBranchConditional %70252 %78672 %78680
-      %78680 = OpLabel
-      %78682 = OpISub %uint %140432 %int_1
-      %78683 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78682
-      %78684 = OpLoad %_arr_v3float_uint_2 %78683
-     %106874 = OpCompositeExtract %v3float %78684 0
-     %106875 = OpCompositeExtract %v3float %78684 1
-               OpBranch %78686
-      %78672 = OpLabel
-      %78674 = OpIAdd %uint %140435 %int_1
-      %78675 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78676 = OpLoad %v3float %78675
-               OpBranch %78686
-      %78685 = OpLabel
-               OpUnreachable
-      %78686 = OpLabel
-     %224622 = OpPhi %uint %78674 %78672 %140435 %78680
-     %143713 = OpPhi %uint %140432 %78672 %78682 %78680
-     %143712 = OpPhi %v3float %78676 %78672 %106874 %78680
-     %143711 = OpPhi %v3float %78676 %78672 %106875 %78680
-      %70256 = OpExtInst %v3float %1 Fract %143712
-      %70260 = OpExtInst %v3float %1 Fract %143711
-      %70266 = OpExtInst %v3float %1 FMin %70256 %70260
-      %70272 = OpExtInst %v3float %1 FMax %70256 %70260
-     %109372 = OpCompositeConstruct %_arr_v3float_uint_2 %70266 %70272
-      %78690 = OpIAdd %uint %143713 %int_1
-      %78692 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143713
-               OpStore %78692 %109372
-               OpBranch %74338
-      %70218 = OpLabel
-      %70221 = OpLoad %uint %65920
-      %70222 = OpBitwiseAnd %uint %70221 %uint_32768
-      %70223 = OpUGreaterThan %bool %70222 %uint_0
-               OpSelectionMerge %78658 None
-               OpSwitch %uint_0 %78642
-      %78642 = OpLabel
-               OpSelectionMerge %78657 None
-               OpBranchConditional %70223 %78644 %78652
-      %78652 = OpLabel
-      %78654 = OpISub %uint %140432 %int_1
-      %78655 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78654
-      %78656 = OpLoad %_arr_v3float_uint_2 %78655
-     %106883 = OpCompositeExtract %v3float %78656 0
-     %106884 = OpCompositeExtract %v3float %78656 1
-               OpBranch %78658
-      %78644 = OpLabel
-      %78646 = OpIAdd %uint %140435 %int_1
-      %78647 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78648 = OpLoad %v3float %78647
-               OpBranch %78658
-      %78657 = OpLabel
-               OpUnreachable
-      %78658 = OpLabel
-     %224621 = OpPhi %uint %78646 %78644 %140435 %78652
-     %143716 = OpPhi %uint %140432 %78644 %78654 %78652
-     %143715 = OpPhi %v3float %78648 %78644 %106883 %78652
-     %143714 = OpPhi %v3float %78648 %78644 %106884 %78652
-      %70227 = OpExtInst %v3float %1 Ceil %143715
-      %70231 = OpExtInst %v3float %1 Ceil %143714
-      %70237 = OpExtInst %v3float %1 FMin %70227 %70231
-      %70243 = OpExtInst %v3float %1 FMax %70227 %70231
-     %109363 = OpCompositeConstruct %_arr_v3float_uint_2 %70237 %70243
-      %78662 = OpIAdd %uint %143716 %int_1
-      %78664 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143716
-               OpStore %78664 %109363
-               OpBranch %74338
-      %70189 = OpLabel
-      %70192 = OpLoad %uint %65920
-      %70193 = OpBitwiseAnd %uint %70192 %uint_32768
-      %70194 = OpUGreaterThan %bool %70193 %uint_0
-               OpSelectionMerge %78630 None
-               OpSwitch %uint_0 %78614
-      %78614 = OpLabel
-               OpSelectionMerge %78629 None
-               OpBranchConditional %70194 %78616 %78624
-      %78624 = OpLabel
-      %78626 = OpISub %uint %140432 %int_1
-      %78627 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78626
-      %78628 = OpLoad %_arr_v3float_uint_2 %78627
-     %106892 = OpCompositeExtract %v3float %78628 0
-     %106893 = OpCompositeExtract %v3float %78628 1
-               OpBranch %78630
-      %78616 = OpLabel
-      %78618 = OpIAdd %uint %140435 %int_1
-      %78619 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78620 = OpLoad %v3float %78619
-               OpBranch %78630
-      %78629 = OpLabel
-               OpUnreachable
-      %78630 = OpLabel
-     %224620 = OpPhi %uint %78618 %78616 %140435 %78624
-     %143719 = OpPhi %uint %140432 %78616 %78626 %78624
-     %143718 = OpPhi %v3float %78620 %78616 %106892 %78624
-     %143717 = OpPhi %v3float %78620 %78616 %106893 %78624
-      %70198 = OpExtInst %v3float %1 Floor %143718
-      %70202 = OpExtInst %v3float %1 Floor %143717
-      %70208 = OpExtInst %v3float %1 FMin %70198 %70202
-      %70214 = OpExtInst %v3float %1 FMax %70198 %70202
-     %109354 = OpCompositeConstruct %_arr_v3float_uint_2 %70208 %70214
-      %78634 = OpIAdd %uint %143719 %int_1
-      %78636 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143719
-               OpStore %78636 %109354
-               OpBranch %74338
-      %70160 = OpLabel
-      %70163 = OpLoad %uint %65920
-      %70164 = OpBitwiseAnd %uint %70163 %uint_32768
-      %70165 = OpUGreaterThan %bool %70164 %uint_0
-               OpSelectionMerge %78602 None
-               OpSwitch %uint_0 %78586
-      %78586 = OpLabel
-               OpSelectionMerge %78601 None
-               OpBranchConditional %70165 %78588 %78596
-      %78596 = OpLabel
-      %78598 = OpISub %uint %140432 %int_1
-      %78599 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78598
-      %78600 = OpLoad %_arr_v3float_uint_2 %78599
-     %106901 = OpCompositeExtract %v3float %78600 0
-     %106902 = OpCompositeExtract %v3float %78600 1
-               OpBranch %78602
-      %78588 = OpLabel
-      %78590 = OpIAdd %uint %140435 %int_1
-      %78591 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78592 = OpLoad %v3float %78591
-               OpBranch %78602
-      %78601 = OpLabel
-               OpUnreachable
-      %78602 = OpLabel
-     %224619 = OpPhi %uint %78590 %78588 %140435 %78596
-     %143722 = OpPhi %uint %140432 %78588 %78598 %78596
-     %143721 = OpPhi %v3float %78592 %78588 %106901 %78596
-     %143720 = OpPhi %v3float %78592 %78588 %106902 %78596
-      %70169 = OpExtInst %v3float %1 FSign %143721
-      %70173 = OpExtInst %v3float %1 FSign %143720
-      %70179 = OpExtInst %v3float %1 FMin %70169 %70173
-      %70185 = OpExtInst %v3float %1 FMax %70169 %70173
-     %109345 = OpCompositeConstruct %_arr_v3float_uint_2 %70179 %70185
-      %78606 = OpIAdd %uint %143722 %int_1
-      %78608 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143722
-               OpStore %78608 %109345
-               OpBranch %74338
-      %70131 = OpLabel
-      %70134 = OpLoad %uint %65920
-      %70135 = OpBitwiseAnd %uint %70134 %uint_32768
-      %70136 = OpUGreaterThan %bool %70135 %uint_0
-               OpSelectionMerge %78574 None
-               OpSwitch %uint_0 %78558
-      %78558 = OpLabel
-               OpSelectionMerge %78573 None
-               OpBranchConditional %70136 %78560 %78568
-      %78568 = OpLabel
-      %78570 = OpISub %uint %140432 %int_1
-      %78571 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %78570
-      %78572 = OpLoad %_arr_v3float_uint_2 %78571
-     %106910 = OpCompositeExtract %v3float %78572 0
-     %106911 = OpCompositeExtract %v3float %78572 1
-               OpBranch %78574
-      %78560 = OpLabel
-      %78562 = OpIAdd %uint %140435 %int_1
-      %78563 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %78564 = OpLoad %v3float %78563
-               OpBranch %78574
-      %78573 = OpLabel
-               OpUnreachable
-      %78574 = OpLabel
-     %224618 = OpPhi %uint %78562 %78560 %140435 %78568
-     %143725 = OpPhi %uint %140432 %78560 %78570 %78568
-     %143724 = OpPhi %v3float %78564 %78560 %106910 %78568
-     %143723 = OpPhi %v3float %78564 %78560 %106911 %78568
-      %70140 = OpExtInst %v3float %1 FAbs %143724
-      %70144 = OpExtInst %v3float %1 FAbs %143723
-      %70150 = OpExtInst %v3float %1 FMin %70140 %70144
-      %70156 = OpExtInst %v3float %1 FMax %70140 %70144
-     %109336 = OpCompositeConstruct %_arr_v3float_uint_2 %70150 %70156
-      %78578 = OpIAdd %uint %143725 %int_1
-      %78580 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %143725
-               OpStore %78580 %109336
-               OpBranch %74338
-      %70049 = OpLabel
-      %70052 = OpLoad %uint %65920
-      %70053 = OpBitwiseAnd %uint %70052 %uint_32768
-      %70054 = OpUGreaterThan %bool %70053 %uint_0
-               OpSelectionMerge %78500 None
-               OpSwitch %uint_0 %78484
-      %78484 = OpLabel
-               OpSelectionMerge %78499 None
-               OpBranchConditional %70054 %78486 %78494
-      %78494 = OpLabel
-      %78496 = OpISub %uint %140443 %int_1
-      %78497 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78496
-      %78498 = OpLoad %_arr_v2float_uint_2 %78497
-     %106937 = OpCompositeExtract %v2float %78498 0
-     %106938 = OpCompositeExtract %v2float %78498 1
-               OpBranch %78500
-      %78486 = OpLabel
-      %78488 = OpIAdd %uint %141789 %int_1
-      %78489 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78490 = OpLoad %v2float %78489
-               OpBranch %78500
-      %78499 = OpLabel
-               OpUnreachable
-      %78500 = OpLabel
-     %143730 = OpPhi %uint %78488 %78486 %141789 %78494
-     %143729 = OpPhi %uint %140443 %78486 %78496 %78494
-     %143727 = OpPhi %v2float %78490 %78486 %106937 %78494
-     %143726 = OpPhi %v2float %78490 %78486 %106938 %78494
-      %70058 = OpLoad %uint %65920
-      %70059 = OpBitwiseAnd %uint %70058 %uint_16384
-      %70060 = OpUGreaterThan %bool %70059 %uint_0
-               OpSelectionMerge %78523 None
-               OpSwitch %uint_0 %78507
-      %78507 = OpLabel
-               OpSelectionMerge %78522 None
-               OpBranchConditional %70060 %78509 %78517
-      %78517 = OpLabel
-      %78519 = OpISub %uint %143729 %int_1
-      %78520 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78519
-      %78521 = OpLoad %_arr_v2float_uint_2 %78520
-     %106928 = OpCompositeExtract %v2float %78521 0
-     %106929 = OpCompositeExtract %v2float %78521 1
-               OpBranch %78523
-      %78509 = OpLabel
-      %78511 = OpIAdd %uint %143730 %int_1
-      %78512 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %143730
-      %78513 = OpLoad %v2float %78512
-               OpBranch %78523
-      %78522 = OpLabel
-               OpUnreachable
-      %78523 = OpLabel
-     %143735 = OpPhi %uint %78511 %78509 %143730 %78517
-     %143734 = OpPhi %uint %143729 %78509 %78519 %78517
-     %143732 = OpPhi %v2float %78513 %78509 %106928 %78517
-     %143731 = OpPhi %v2float %78513 %78509 %106929 %78517
-      %70064 = OpLoad %uint %65920
-      %70065 = OpBitwiseAnd %uint %70064 %uint_8192
-      %70066 = OpUGreaterThan %bool %70065 %uint_0
-               OpSelectionMerge %78546 None
-               OpSwitch %uint_0 %78530
-      %78530 = OpLabel
-               OpSelectionMerge %78545 None
-               OpBranchConditional %70066 %78532 %78540
-      %78540 = OpLabel
-      %78542 = OpISub %uint %143734 %int_1
-      %78543 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78542
-      %78544 = OpLoad %_arr_v2float_uint_2 %78543
-     %106919 = OpCompositeExtract %v2float %78544 0
-     %106920 = OpCompositeExtract %v2float %78544 1
-               OpBranch %78546
-      %78532 = OpLabel
-      %78534 = OpIAdd %uint %143735 %int_1
-      %78535 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %143735
-      %78536 = OpLoad %v2float %78535
-               OpBranch %78546
-      %78545 = OpLabel
-               OpUnreachable
-      %78546 = OpLabel
-     %226967 = OpPhi %uint %78534 %78532 %143735 %78540
-     %143744 = OpPhi %uint %143734 %78532 %78542 %78540
-     %143737 = OpPhi %v2float %78536 %78532 %106919 %78540
-     %143736 = OpPhi %v2float %78536 %78532 %106920 %78540
-      %70072 = OpFMul %v2float %143727 %143732
-      %70078 = OpFMul %v2float %143727 %143731
-      %70084 = OpFMul %v2float %143726 %143732
-      %70090 = OpFMul %v2float %143726 %143731
-      %70100 = OpExtInst %v2float %1 FMin %70084 %70090
-      %70101 = OpExtInst %v2float %1 FMin %70078 %70100
-      %70102 = OpExtInst %v2float %1 FMin %70072 %70101
-      %70112 = OpExtInst %v2float %1 FMax %70084 %70090
-      %70113 = OpExtInst %v2float %1 FMax %70078 %70112
-      %70114 = OpExtInst %v2float %1 FMax %70072 %70113
-      %70121 = OpFAdd %v2float %70102 %143737
-      %70127 = OpFAdd %v2float %70114 %143736
-     %109319 = OpCompositeConstruct %_arr_v2float_uint_2 %70121 %70127
-      %78550 = OpIAdd %uint %143744 %int_1
-      %78552 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143744
-               OpStore %78552 %109319
-               OpBranch %74338
-      %70022 = OpLabel
-      %70025 = OpLoad %uint %65920
-      %70026 = OpBitwiseAnd %uint %70025 %uint_32768
-      %70027 = OpUGreaterThan %bool %70026 %uint_0
-               OpSelectionMerge %78449 None
-               OpSwitch %uint_0 %78433
-      %78433 = OpLabel
-               OpSelectionMerge %78448 None
-               OpBranchConditional %70027 %78435 %78443
-      %78443 = OpLabel
-      %78445 = OpISub %uint %140443 %int_1
-      %78446 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78445
-      %78447 = OpLoad %_arr_v2float_uint_2 %78446
-     %106955 = OpCompositeExtract %v2float %78447 0
-     %106956 = OpCompositeExtract %v2float %78447 1
-               OpBranch %78449
-      %78435 = OpLabel
-      %78437 = OpIAdd %uint %141789 %int_1
-      %78438 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78439 = OpLoad %v2float %78438
-               OpBranch %78449
-      %78448 = OpLabel
-               OpUnreachable
-      %78449 = OpLabel
-     %143749 = OpPhi %uint %78437 %78435 %141789 %78443
-     %143748 = OpPhi %uint %140443 %78435 %78445 %78443
-     %143746 = OpPhi %v2float %78439 %78435 %106955 %78443
-     %143745 = OpPhi %v2float %78439 %78435 %106956 %78443
-      %70031 = OpLoad %uint %65920
-      %70032 = OpBitwiseAnd %uint %70031 %uint_16384
-      %70033 = OpUGreaterThan %bool %70032 %uint_0
-               OpSelectionMerge %78472 None
-               OpSwitch %uint_0 %78456
-      %78456 = OpLabel
-               OpSelectionMerge %78471 None
-               OpBranchConditional %70033 %78458 %78466
-      %78466 = OpLabel
-      %78468 = OpISub %uint %143748 %int_1
-      %78469 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78468
-      %78470 = OpLoad %_arr_v2float_uint_2 %78469
-     %106946 = OpCompositeExtract %v2float %78470 0
-     %106947 = OpCompositeExtract %v2float %78470 1
-               OpBranch %78472
-      %78458 = OpLabel
-      %78460 = OpIAdd %uint %143749 %int_1
-      %78461 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %143749
-      %78462 = OpLoad %v2float %78461
-               OpBranch %78472
-      %78471 = OpLabel
-               OpUnreachable
-      %78472 = OpLabel
-     %226966 = OpPhi %uint %78460 %78458 %143749 %78466
-     %143754 = OpPhi %uint %143748 %78458 %78468 %78466
-     %143751 = OpPhi %v2float %78462 %78458 %106946 %78466
-     %143750 = OpPhi %v2float %78462 %78458 %106947 %78466
-      %70039 = OpExtInst %v2float %1 FMax %143746 %143751
-      %70045 = OpExtInst %v2float %1 FMax %143745 %143750
-     %109308 = OpCompositeConstruct %_arr_v2float_uint_2 %70039 %70045
-      %78476 = OpIAdd %uint %143754 %int_1
-      %78478 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143754
-               OpStore %78478 %109308
-               OpBranch %74338
-      %69995 = OpLabel
-      %69998 = OpLoad %uint %65920
-      %69999 = OpBitwiseAnd %uint %69998 %uint_32768
-      %70000 = OpUGreaterThan %bool %69999 %uint_0
-               OpSelectionMerge %78398 None
-               OpSwitch %uint_0 %78382
-      %78382 = OpLabel
-               OpSelectionMerge %78397 None
-               OpBranchConditional %70000 %78384 %78392
-      %78392 = OpLabel
-      %78394 = OpISub %uint %140443 %int_1
-      %78395 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78394
-      %78396 = OpLoad %_arr_v2float_uint_2 %78395
-     %106973 = OpCompositeExtract %v2float %78396 0
-     %106974 = OpCompositeExtract %v2float %78396 1
-               OpBranch %78398
-      %78384 = OpLabel
-      %78386 = OpIAdd %uint %141789 %int_1
-      %78387 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78388 = OpLoad %v2float %78387
-               OpBranch %78398
-      %78397 = OpLabel
-               OpUnreachable
-      %78398 = OpLabel
-     %143759 = OpPhi %uint %78386 %78384 %141789 %78392
-     %143758 = OpPhi %uint %140443 %78384 %78394 %78392
-     %143756 = OpPhi %v2float %78388 %78384 %106973 %78392
-     %143755 = OpPhi %v2float %78388 %78384 %106974 %78392
-      %70004 = OpLoad %uint %65920
-      %70005 = OpBitwiseAnd %uint %70004 %uint_16384
-      %70006 = OpUGreaterThan %bool %70005 %uint_0
-               OpSelectionMerge %78421 None
-               OpSwitch %uint_0 %78405
-      %78405 = OpLabel
-               OpSelectionMerge %78420 None
-               OpBranchConditional %70006 %78407 %78415
-      %78415 = OpLabel
-      %78417 = OpISub %uint %143758 %int_1
-      %78418 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78417
-      %78419 = OpLoad %_arr_v2float_uint_2 %78418
-     %106964 = OpCompositeExtract %v2float %78419 0
-     %106965 = OpCompositeExtract %v2float %78419 1
-               OpBranch %78421
-      %78407 = OpLabel
-      %78409 = OpIAdd %uint %143759 %int_1
-      %78410 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %143759
-      %78411 = OpLoad %v2float %78410
-               OpBranch %78421
-      %78420 = OpLabel
-               OpUnreachable
-      %78421 = OpLabel
-     %226965 = OpPhi %uint %78409 %78407 %143759 %78415
-     %143764 = OpPhi %uint %143758 %78407 %78417 %78415
-     %143761 = OpPhi %v2float %78411 %78407 %106964 %78415
-     %143760 = OpPhi %v2float %78411 %78407 %106965 %78415
-      %70012 = OpExtInst %v2float %1 FMin %143756 %143761
-      %70018 = OpExtInst %v2float %1 FMin %143755 %143760
-     %109297 = OpCompositeConstruct %_arr_v2float_uint_2 %70012 %70018
-      %78425 = OpIAdd %uint %143764 %int_1
-      %78427 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143764
-               OpStore %78427 %109297
-               OpBranch %74338
-      %69966 = OpLabel
-      %69969 = OpLoad %uint %65920
-      %69970 = OpBitwiseAnd %uint %69969 %uint_32768
-      %69971 = OpUGreaterThan %bool %69970 %uint_0
-               OpSelectionMerge %78370 None
-               OpSwitch %uint_0 %78354
-      %78354 = OpLabel
-               OpSelectionMerge %78369 None
-               OpBranchConditional %69971 %78356 %78364
-      %78364 = OpLabel
-      %78366 = OpISub %uint %140443 %int_1
-      %78367 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78366
-      %78368 = OpLoad %_arr_v2float_uint_2 %78367
-     %106982 = OpCompositeExtract %v2float %78368 0
-     %106983 = OpCompositeExtract %v2float %78368 1
-               OpBranch %78370
-      %78356 = OpLabel
-      %78358 = OpIAdd %uint %141789 %int_1
-      %78359 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78360 = OpLoad %v2float %78359
-               OpBranch %78370
-      %78369 = OpLabel
-               OpUnreachable
-      %78370 = OpLabel
-     %226964 = OpPhi %uint %78358 %78356 %141789 %78364
-     %143767 = OpPhi %uint %140443 %78356 %78366 %78364
-     %143766 = OpPhi %v2float %78360 %78356 %106982 %78364
-     %143765 = OpPhi %v2float %78360 %78356 %106983 %78364
-      %69975 = OpExtInst %v2float %1 Trunc %143766
-      %69979 = OpExtInst %v2float %1 Trunc %143765
-      %69985 = OpExtInst %v2float %1 FMin %69975 %69979
-      %69991 = OpExtInst %v2float %1 FMax %69975 %69979
-     %109288 = OpCompositeConstruct %_arr_v2float_uint_2 %69985 %69991
-      %78374 = OpIAdd %uint %143767 %int_1
-      %78376 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143767
-               OpStore %78376 %109288
-               OpBranch %74338
-      %69937 = OpLabel
-      %69940 = OpLoad %uint %65920
-      %69941 = OpBitwiseAnd %uint %69940 %uint_32768
-      %69942 = OpUGreaterThan %bool %69941 %uint_0
-               OpSelectionMerge %78342 None
-               OpSwitch %uint_0 %78326
-      %78326 = OpLabel
-               OpSelectionMerge %78341 None
-               OpBranchConditional %69942 %78328 %78336
-      %78336 = OpLabel
-      %78338 = OpISub %uint %140443 %int_1
-      %78339 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78338
-      %78340 = OpLoad %_arr_v2float_uint_2 %78339
-     %106991 = OpCompositeExtract %v2float %78340 0
-     %106992 = OpCompositeExtract %v2float %78340 1
-               OpBranch %78342
-      %78328 = OpLabel
-      %78330 = OpIAdd %uint %141789 %int_1
-      %78331 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78332 = OpLoad %v2float %78331
-               OpBranch %78342
-      %78341 = OpLabel
-               OpUnreachable
-      %78342 = OpLabel
-     %226963 = OpPhi %uint %78330 %78328 %141789 %78336
-     %143770 = OpPhi %uint %140443 %78328 %78338 %78336
-     %143769 = OpPhi %v2float %78332 %78328 %106991 %78336
-     %143768 = OpPhi %v2float %78332 %78328 %106992 %78336
-      %69946 = OpExtInst %v2float %1 Round %143769
-      %69950 = OpExtInst %v2float %1 Round %143768
-      %69956 = OpExtInst %v2float %1 FMin %69946 %69950
-      %69962 = OpExtInst %v2float %1 FMax %69946 %69950
-     %109279 = OpCompositeConstruct %_arr_v2float_uint_2 %69956 %69962
-      %78346 = OpIAdd %uint %143770 %int_1
-      %78348 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143770
-               OpStore %78348 %109279
-               OpBranch %74338
-      %69908 = OpLabel
-      %69911 = OpLoad %uint %65920
-      %69912 = OpBitwiseAnd %uint %69911 %uint_32768
-      %69913 = OpUGreaterThan %bool %69912 %uint_0
-               OpSelectionMerge %78314 None
-               OpSwitch %uint_0 %78298
-      %78298 = OpLabel
-               OpSelectionMerge %78313 None
-               OpBranchConditional %69913 %78300 %78308
-      %78308 = OpLabel
-      %78310 = OpISub %uint %140443 %int_1
-      %78311 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78310
-      %78312 = OpLoad %_arr_v2float_uint_2 %78311
-     %107000 = OpCompositeExtract %v2float %78312 0
-     %107001 = OpCompositeExtract %v2float %78312 1
-               OpBranch %78314
-      %78300 = OpLabel
-      %78302 = OpIAdd %uint %141789 %int_1
-      %78303 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78304 = OpLoad %v2float %78303
-               OpBranch %78314
-      %78313 = OpLabel
-               OpUnreachable
-      %78314 = OpLabel
-     %226962 = OpPhi %uint %78302 %78300 %141789 %78308
-     %143773 = OpPhi %uint %140443 %78300 %78310 %78308
-     %143772 = OpPhi %v2float %78304 %78300 %107000 %78308
-     %143771 = OpPhi %v2float %78304 %78300 %107001 %78308
-      %69917 = OpExtInst %v2float %1 Tanh %143772
-      %69921 = OpExtInst %v2float %1 Tanh %143771
-      %69927 = OpExtInst %v2float %1 FMin %69917 %69921
-      %69933 = OpExtInst %v2float %1 FMax %69917 %69921
-     %109270 = OpCompositeConstruct %_arr_v2float_uint_2 %69927 %69933
-      %78318 = OpIAdd %uint %143773 %int_1
-      %78320 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143773
-               OpStore %78320 %109270
-               OpBranch %74338
-      %69879 = OpLabel
-      %69882 = OpLoad %uint %65920
-      %69883 = OpBitwiseAnd %uint %69882 %uint_32768
-      %69884 = OpUGreaterThan %bool %69883 %uint_0
-               OpSelectionMerge %78286 None
-               OpSwitch %uint_0 %78270
-      %78270 = OpLabel
-               OpSelectionMerge %78285 None
-               OpBranchConditional %69884 %78272 %78280
-      %78280 = OpLabel
-      %78282 = OpISub %uint %140443 %int_1
-      %78283 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78282
-      %78284 = OpLoad %_arr_v2float_uint_2 %78283
-     %107009 = OpCompositeExtract %v2float %78284 0
-     %107010 = OpCompositeExtract %v2float %78284 1
-               OpBranch %78286
-      %78272 = OpLabel
-      %78274 = OpIAdd %uint %141789 %int_1
-      %78275 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78276 = OpLoad %v2float %78275
-               OpBranch %78286
-      %78285 = OpLabel
-               OpUnreachable
-      %78286 = OpLabel
-     %226961 = OpPhi %uint %78274 %78272 %141789 %78280
-     %143776 = OpPhi %uint %140443 %78272 %78282 %78280
-     %143775 = OpPhi %v2float %78276 %78272 %107009 %78280
-     %143774 = OpPhi %v2float %78276 %78272 %107010 %78280
-      %69888 = OpExtInst %v2float %1 Sinh %143775
-      %69892 = OpExtInst %v2float %1 Sinh %143774
-      %69898 = OpExtInst %v2float %1 FMin %69888 %69892
-      %69904 = OpExtInst %v2float %1 FMax %69888 %69892
-     %109261 = OpCompositeConstruct %_arr_v2float_uint_2 %69898 %69904
-      %78290 = OpIAdd %uint %143776 %int_1
-      %78292 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143776
-               OpStore %78292 %109261
-               OpBranch %74338
-      %69850 = OpLabel
-      %69853 = OpLoad %uint %65920
-      %69854 = OpBitwiseAnd %uint %69853 %uint_32768
-      %69855 = OpUGreaterThan %bool %69854 %uint_0
-               OpSelectionMerge %78258 None
-               OpSwitch %uint_0 %78242
-      %78242 = OpLabel
-               OpSelectionMerge %78257 None
-               OpBranchConditional %69855 %78244 %78252
-      %78252 = OpLabel
-      %78254 = OpISub %uint %140443 %int_1
-      %78255 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78254
-      %78256 = OpLoad %_arr_v2float_uint_2 %78255
-     %107018 = OpCompositeExtract %v2float %78256 0
-     %107019 = OpCompositeExtract %v2float %78256 1
-               OpBranch %78258
-      %78244 = OpLabel
-      %78246 = OpIAdd %uint %141789 %int_1
-      %78247 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78248 = OpLoad %v2float %78247
-               OpBranch %78258
-      %78257 = OpLabel
-               OpUnreachable
-      %78258 = OpLabel
-     %226960 = OpPhi %uint %78246 %78244 %141789 %78252
-     %143779 = OpPhi %uint %140443 %78244 %78254 %78252
-     %143778 = OpPhi %v2float %78248 %78244 %107018 %78252
-     %143777 = OpPhi %v2float %78248 %78244 %107019 %78252
-      %69859 = OpExtInst %v2float %1 Cosh %143778
-      %69863 = OpExtInst %v2float %1 Cosh %143777
-      %69869 = OpExtInst %v2float %1 FMin %69859 %69863
-      %69875 = OpExtInst %v2float %1 FMax %69859 %69863
-     %109252 = OpCompositeConstruct %_arr_v2float_uint_2 %69869 %69875
-      %78262 = OpIAdd %uint %143779 %int_1
-      %78264 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143779
-               OpStore %78264 %109252
-               OpBranch %74338
-      %69821 = OpLabel
-      %69824 = OpLoad %uint %65920
-      %69825 = OpBitwiseAnd %uint %69824 %uint_32768
-      %69826 = OpUGreaterThan %bool %69825 %uint_0
-               OpSelectionMerge %78230 None
-               OpSwitch %uint_0 %78214
-      %78214 = OpLabel
-               OpSelectionMerge %78229 None
-               OpBranchConditional %69826 %78216 %78224
-      %78224 = OpLabel
-      %78226 = OpISub %uint %140443 %int_1
-      %78227 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78226
-      %78228 = OpLoad %_arr_v2float_uint_2 %78227
-     %107027 = OpCompositeExtract %v2float %78228 0
-     %107028 = OpCompositeExtract %v2float %78228 1
-               OpBranch %78230
-      %78216 = OpLabel
-      %78218 = OpIAdd %uint %141789 %int_1
-      %78219 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78220 = OpLoad %v2float %78219
-               OpBranch %78230
-      %78229 = OpLabel
-               OpUnreachable
-      %78230 = OpLabel
-     %226959 = OpPhi %uint %78218 %78216 %141789 %78224
-     %143782 = OpPhi %uint %140443 %78216 %78226 %78224
-     %143781 = OpPhi %v2float %78220 %78216 %107027 %78224
-     %143780 = OpPhi %v2float %78220 %78216 %107028 %78224
-      %69830 = OpExtInst %v2float %1 Atanh %143781
-      %69834 = OpExtInst %v2float %1 Atanh %143780
-      %69840 = OpExtInst %v2float %1 FMin %69830 %69834
-      %69846 = OpExtInst %v2float %1 FMax %69830 %69834
-     %109243 = OpCompositeConstruct %_arr_v2float_uint_2 %69840 %69846
-      %78234 = OpIAdd %uint %143782 %int_1
-      %78236 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143782
-               OpStore %78236 %109243
-               OpBranch %74338
-      %69792 = OpLabel
-      %69795 = OpLoad %uint %65920
-      %69796 = OpBitwiseAnd %uint %69795 %uint_32768
-      %69797 = OpUGreaterThan %bool %69796 %uint_0
-               OpSelectionMerge %78202 None
-               OpSwitch %uint_0 %78186
-      %78186 = OpLabel
-               OpSelectionMerge %78201 None
-               OpBranchConditional %69797 %78188 %78196
-      %78196 = OpLabel
-      %78198 = OpISub %uint %140443 %int_1
-      %78199 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78198
-      %78200 = OpLoad %_arr_v2float_uint_2 %78199
-     %107036 = OpCompositeExtract %v2float %78200 0
-     %107037 = OpCompositeExtract %v2float %78200 1
-               OpBranch %78202
-      %78188 = OpLabel
-      %78190 = OpIAdd %uint %141789 %int_1
-      %78191 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78192 = OpLoad %v2float %78191
-               OpBranch %78202
-      %78201 = OpLabel
-               OpUnreachable
-      %78202 = OpLabel
-     %226958 = OpPhi %uint %78190 %78188 %141789 %78196
-     %143785 = OpPhi %uint %140443 %78188 %78198 %78196
-     %143784 = OpPhi %v2float %78192 %78188 %107036 %78196
-     %143783 = OpPhi %v2float %78192 %78188 %107037 %78196
-      %69801 = OpExtInst %v2float %1 Asinh %143784
-      %69805 = OpExtInst %v2float %1 Asinh %143783
-      %69811 = OpExtInst %v2float %1 FMin %69801 %69805
-      %69817 = OpExtInst %v2float %1 FMax %69801 %69805
-     %109234 = OpCompositeConstruct %_arr_v2float_uint_2 %69811 %69817
-      %78206 = OpIAdd %uint %143785 %int_1
-      %78208 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143785
-               OpStore %78208 %109234
-               OpBranch %74338
-      %69763 = OpLabel
-      %69766 = OpLoad %uint %65920
-      %69767 = OpBitwiseAnd %uint %69766 %uint_32768
-      %69768 = OpUGreaterThan %bool %69767 %uint_0
-               OpSelectionMerge %78174 None
-               OpSwitch %uint_0 %78158
-      %78158 = OpLabel
-               OpSelectionMerge %78173 None
-               OpBranchConditional %69768 %78160 %78168
-      %78168 = OpLabel
-      %78170 = OpISub %uint %140443 %int_1
-      %78171 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78170
-      %78172 = OpLoad %_arr_v2float_uint_2 %78171
-     %107045 = OpCompositeExtract %v2float %78172 0
-     %107046 = OpCompositeExtract %v2float %78172 1
-               OpBranch %78174
-      %78160 = OpLabel
-      %78162 = OpIAdd %uint %141789 %int_1
-      %78163 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78164 = OpLoad %v2float %78163
-               OpBranch %78174
-      %78173 = OpLabel
-               OpUnreachable
-      %78174 = OpLabel
-     %226957 = OpPhi %uint %78162 %78160 %141789 %78168
-     %143788 = OpPhi %uint %140443 %78160 %78170 %78168
-     %143787 = OpPhi %v2float %78164 %78160 %107045 %78168
-     %143786 = OpPhi %v2float %78164 %78160 %107046 %78168
-      %69772 = OpExtInst %v2float %1 Acosh %143787
-      %69776 = OpExtInst %v2float %1 Acosh %143786
-      %69782 = OpExtInst %v2float %1 FMin %69772 %69776
-      %69788 = OpExtInst %v2float %1 FMax %69772 %69776
-     %109225 = OpCompositeConstruct %_arr_v2float_uint_2 %69782 %69788
-      %78178 = OpIAdd %uint %143788 %int_1
-      %78180 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143788
-               OpStore %78180 %109225
-               OpBranch %74338
-      %69734 = OpLabel
-      %69737 = OpLoad %uint %65920
-      %69738 = OpBitwiseAnd %uint %69737 %uint_32768
-      %69739 = OpUGreaterThan %bool %69738 %uint_0
-               OpSelectionMerge %78146 None
-               OpSwitch %uint_0 %78130
-      %78130 = OpLabel
-               OpSelectionMerge %78145 None
-               OpBranchConditional %69739 %78132 %78140
-      %78140 = OpLabel
-      %78142 = OpISub %uint %140443 %int_1
-      %78143 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78142
-      %78144 = OpLoad %_arr_v2float_uint_2 %78143
-     %107054 = OpCompositeExtract %v2float %78144 0
-     %107055 = OpCompositeExtract %v2float %78144 1
-               OpBranch %78146
-      %78132 = OpLabel
-      %78134 = OpIAdd %uint %141789 %int_1
-      %78135 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78136 = OpLoad %v2float %78135
-               OpBranch %78146
-      %78145 = OpLabel
-               OpUnreachable
-      %78146 = OpLabel
-     %226956 = OpPhi %uint %78134 %78132 %141789 %78140
-     %143791 = OpPhi %uint %140443 %78132 %78142 %78140
-     %143790 = OpPhi %v2float %78136 %78132 %107054 %78140
-     %143789 = OpPhi %v2float %78136 %78132 %107055 %78140
-      %69743 = OpExtInst %v2float %1 Atan %143790
-      %69747 = OpExtInst %v2float %1 Atan %143789
-      %69753 = OpExtInst %v2float %1 FMin %69743 %69747
-      %69759 = OpExtInst %v2float %1 FMax %69743 %69747
-     %109216 = OpCompositeConstruct %_arr_v2float_uint_2 %69753 %69759
-      %78150 = OpIAdd %uint %143791 %int_1
-      %78152 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143791
-               OpStore %78152 %109216
-               OpBranch %74338
-      %69705 = OpLabel
-      %69708 = OpLoad %uint %65920
-      %69709 = OpBitwiseAnd %uint %69708 %uint_32768
-      %69710 = OpUGreaterThan %bool %69709 %uint_0
-               OpSelectionMerge %78118 None
-               OpSwitch %uint_0 %78102
-      %78102 = OpLabel
-               OpSelectionMerge %78117 None
-               OpBranchConditional %69710 %78104 %78112
-      %78112 = OpLabel
-      %78114 = OpISub %uint %140443 %int_1
-      %78115 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78114
-      %78116 = OpLoad %_arr_v2float_uint_2 %78115
-     %107063 = OpCompositeExtract %v2float %78116 0
-     %107064 = OpCompositeExtract %v2float %78116 1
-               OpBranch %78118
-      %78104 = OpLabel
-      %78106 = OpIAdd %uint %141789 %int_1
-      %78107 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78108 = OpLoad %v2float %78107
-               OpBranch %78118
-      %78117 = OpLabel
-               OpUnreachable
-      %78118 = OpLabel
-     %226955 = OpPhi %uint %78106 %78104 %141789 %78112
-     %143794 = OpPhi %uint %140443 %78104 %78114 %78112
-     %143793 = OpPhi %v2float %78108 %78104 %107063 %78112
-     %143792 = OpPhi %v2float %78108 %78104 %107064 %78112
-      %69714 = OpExtInst %v2float %1 Acos %143793
-      %69718 = OpExtInst %v2float %1 Acos %143792
-      %69724 = OpExtInst %v2float %1 FMin %69714 %69718
-      %69730 = OpExtInst %v2float %1 FMax %69714 %69718
-     %109207 = OpCompositeConstruct %_arr_v2float_uint_2 %69724 %69730
-      %78122 = OpIAdd %uint %143794 %int_1
-      %78124 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143794
-               OpStore %78124 %109207
-               OpBranch %74338
-      %69676 = OpLabel
-      %69679 = OpLoad %uint %65920
-      %69680 = OpBitwiseAnd %uint %69679 %uint_32768
-      %69681 = OpUGreaterThan %bool %69680 %uint_0
-               OpSelectionMerge %78090 None
-               OpSwitch %uint_0 %78074
-      %78074 = OpLabel
-               OpSelectionMerge %78089 None
-               OpBranchConditional %69681 %78076 %78084
-      %78084 = OpLabel
-      %78086 = OpISub %uint %140443 %int_1
-      %78087 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78086
-      %78088 = OpLoad %_arr_v2float_uint_2 %78087
-     %107072 = OpCompositeExtract %v2float %78088 0
-     %107073 = OpCompositeExtract %v2float %78088 1
-               OpBranch %78090
-      %78076 = OpLabel
-      %78078 = OpIAdd %uint %141789 %int_1
-      %78079 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78080 = OpLoad %v2float %78079
-               OpBranch %78090
-      %78089 = OpLabel
-               OpUnreachable
-      %78090 = OpLabel
-     %226954 = OpPhi %uint %78078 %78076 %141789 %78084
-     %143797 = OpPhi %uint %140443 %78076 %78086 %78084
-     %143796 = OpPhi %v2float %78080 %78076 %107072 %78084
-     %143795 = OpPhi %v2float %78080 %78076 %107073 %78084
-      %69685 = OpExtInst %v2float %1 Asin %143796
-      %69689 = OpExtInst %v2float %1 Asin %143795
-      %69695 = OpExtInst %v2float %1 FMin %69685 %69689
-      %69701 = OpExtInst %v2float %1 FMax %69685 %69689
-     %109198 = OpCompositeConstruct %_arr_v2float_uint_2 %69695 %69701
-      %78094 = OpIAdd %uint %143797 %int_1
-      %78096 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143797
-               OpStore %78096 %109198
-               OpBranch %74338
-      %69647 = OpLabel
-      %69650 = OpLoad %uint %65920
-      %69651 = OpBitwiseAnd %uint %69650 %uint_32768
-      %69652 = OpUGreaterThan %bool %69651 %uint_0
-               OpSelectionMerge %78062 None
-               OpSwitch %uint_0 %78046
-      %78046 = OpLabel
-               OpSelectionMerge %78061 None
-               OpBranchConditional %69652 %78048 %78056
-      %78056 = OpLabel
-      %78058 = OpISub %uint %140443 %int_1
-      %78059 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78058
-      %78060 = OpLoad %_arr_v2float_uint_2 %78059
-     %107081 = OpCompositeExtract %v2float %78060 0
-     %107082 = OpCompositeExtract %v2float %78060 1
-               OpBranch %78062
-      %78048 = OpLabel
-      %78050 = OpIAdd %uint %141789 %int_1
-      %78051 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78052 = OpLoad %v2float %78051
-               OpBranch %78062
-      %78061 = OpLabel
-               OpUnreachable
-      %78062 = OpLabel
-     %226953 = OpPhi %uint %78050 %78048 %141789 %78056
-     %143800 = OpPhi %uint %140443 %78048 %78058 %78056
-     %143799 = OpPhi %v2float %78052 %78048 %107081 %78056
-     %143798 = OpPhi %v2float %78052 %78048 %107082 %78056
-      %69656 = OpExtInst %v2float %1 Tan %143799
-      %69660 = OpExtInst %v2float %1 Tan %143798
-      %69666 = OpExtInst %v2float %1 FMin %69656 %69660
-      %69672 = OpExtInst %v2float %1 FMax %69656 %69660
-     %109189 = OpCompositeConstruct %_arr_v2float_uint_2 %69666 %69672
-      %78066 = OpIAdd %uint %143800 %int_1
-      %78068 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143800
-               OpStore %78068 %109189
-               OpBranch %74338
-      %69618 = OpLabel
-      %69621 = OpLoad %uint %65920
-      %69622 = OpBitwiseAnd %uint %69621 %uint_32768
-      %69623 = OpUGreaterThan %bool %69622 %uint_0
-               OpSelectionMerge %78034 None
-               OpSwitch %uint_0 %78018
-      %78018 = OpLabel
-               OpSelectionMerge %78033 None
-               OpBranchConditional %69623 %78020 %78028
-      %78028 = OpLabel
-      %78030 = OpISub %uint %140443 %int_1
-      %78031 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78030
-      %78032 = OpLoad %_arr_v2float_uint_2 %78031
-     %107090 = OpCompositeExtract %v2float %78032 0
-     %107091 = OpCompositeExtract %v2float %78032 1
-               OpBranch %78034
-      %78020 = OpLabel
-      %78022 = OpIAdd %uint %141789 %int_1
-      %78023 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %78024 = OpLoad %v2float %78023
-               OpBranch %78034
-      %78033 = OpLabel
-               OpUnreachable
-      %78034 = OpLabel
-     %226952 = OpPhi %uint %78022 %78020 %141789 %78028
-     %143803 = OpPhi %uint %140443 %78020 %78030 %78028
-     %143802 = OpPhi %v2float %78024 %78020 %107090 %78028
-     %143801 = OpPhi %v2float %78024 %78020 %107091 %78028
-      %69627 = OpExtInst %v2float %1 Cos %143802
-      %69631 = OpExtInst %v2float %1 Cos %143801
-      %69637 = OpExtInst %v2float %1 FMin %69627 %69631
-      %69643 = OpExtInst %v2float %1 FMax %69627 %69631
-     %109180 = OpCompositeConstruct %_arr_v2float_uint_2 %69637 %69643
-      %78038 = OpIAdd %uint %143803 %int_1
-      %78040 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143803
-               OpStore %78040 %109180
-               OpBranch %74338
-      %69589 = OpLabel
-      %69592 = OpLoad %uint %65920
-      %69593 = OpBitwiseAnd %uint %69592 %uint_32768
-      %69594 = OpUGreaterThan %bool %69593 %uint_0
-               OpSelectionMerge %78006 None
-               OpSwitch %uint_0 %77990
-      %77990 = OpLabel
-               OpSelectionMerge %78005 None
-               OpBranchConditional %69594 %77992 %78000
-      %78000 = OpLabel
-      %78002 = OpISub %uint %140443 %int_1
-      %78003 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %78002
-      %78004 = OpLoad %_arr_v2float_uint_2 %78003
-     %107099 = OpCompositeExtract %v2float %78004 0
-     %107100 = OpCompositeExtract %v2float %78004 1
-               OpBranch %78006
-      %77992 = OpLabel
-      %77994 = OpIAdd %uint %141789 %int_1
-      %77995 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %77996 = OpLoad %v2float %77995
-               OpBranch %78006
-      %78005 = OpLabel
-               OpUnreachable
-      %78006 = OpLabel
-     %226951 = OpPhi %uint %77994 %77992 %141789 %78000
-     %143806 = OpPhi %uint %140443 %77992 %78002 %78000
-     %143805 = OpPhi %v2float %77996 %77992 %107099 %78000
-     %143804 = OpPhi %v2float %77996 %77992 %107100 %78000
-      %69598 = OpExtInst %v2float %1 Sin %143805
-      %69602 = OpExtInst %v2float %1 Sin %143804
-      %69608 = OpExtInst %v2float %1 FMin %69598 %69602
-      %69614 = OpExtInst %v2float %1 FMax %69598 %69602
-     %109171 = OpCompositeConstruct %_arr_v2float_uint_2 %69608 %69614
-      %78010 = OpIAdd %uint %143806 %int_1
-      %78012 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143806
-               OpStore %78012 %109171
-               OpBranch %74338
-      %69560 = OpLabel
-      %69563 = OpLoad %uint %65920
-      %69564 = OpBitwiseAnd %uint %69563 %uint_32768
-      %69565 = OpUGreaterThan %bool %69564 %uint_0
-               OpSelectionMerge %77978 None
-               OpSwitch %uint_0 %77962
-      %77962 = OpLabel
-               OpSelectionMerge %77977 None
-               OpBranchConditional %69565 %77964 %77972
-      %77972 = OpLabel
-      %77974 = OpISub %uint %140443 %int_1
-      %77975 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %77974
-      %77976 = OpLoad %_arr_v2float_uint_2 %77975
-     %107108 = OpCompositeExtract %v2float %77976 0
-     %107109 = OpCompositeExtract %v2float %77976 1
-               OpBranch %77978
-      %77964 = OpLabel
-      %77966 = OpIAdd %uint %141789 %int_1
-      %77967 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %77968 = OpLoad %v2float %77967
-               OpBranch %77978
-      %77977 = OpLabel
-               OpUnreachable
-      %77978 = OpLabel
-     %226950 = OpPhi %uint %77966 %77964 %141789 %77972
-     %143809 = OpPhi %uint %140443 %77964 %77974 %77972
-     %143808 = OpPhi %v2float %77968 %77964 %107108 %77972
-     %143807 = OpPhi %v2float %77968 %77964 %107109 %77972
-      %69569 = OpExtInst %v2float %1 Log2 %143808
-      %69573 = OpExtInst %v2float %1 Log2 %143807
-      %69579 = OpExtInst %v2float %1 FMin %69569 %69573
-      %69585 = OpExtInst %v2float %1 FMax %69569 %69573
-     %109162 = OpCompositeConstruct %_arr_v2float_uint_2 %69579 %69585
-      %77982 = OpIAdd %uint %143809 %int_1
-      %77984 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143809
-               OpStore %77984 %109162
-               OpBranch %74338
-      %69531 = OpLabel
-      %69534 = OpLoad %uint %65920
-      %69535 = OpBitwiseAnd %uint %69534 %uint_32768
-      %69536 = OpUGreaterThan %bool %69535 %uint_0
-               OpSelectionMerge %77950 None
-               OpSwitch %uint_0 %77934
-      %77934 = OpLabel
-               OpSelectionMerge %77949 None
-               OpBranchConditional %69536 %77936 %77944
-      %77944 = OpLabel
-      %77946 = OpISub %uint %140443 %int_1
-      %77947 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %77946
-      %77948 = OpLoad %_arr_v2float_uint_2 %77947
-     %107117 = OpCompositeExtract %v2float %77948 0
-     %107118 = OpCompositeExtract %v2float %77948 1
-               OpBranch %77950
-      %77936 = OpLabel
-      %77938 = OpIAdd %uint %141789 %int_1
-      %77939 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %77940 = OpLoad %v2float %77939
-               OpBranch %77950
-      %77949 = OpLabel
-               OpUnreachable
-      %77950 = OpLabel
-     %226949 = OpPhi %uint %77938 %77936 %141789 %77944
-     %143812 = OpPhi %uint %140443 %77936 %77946 %77944
-     %143811 = OpPhi %v2float %77940 %77936 %107117 %77944
-     %143810 = OpPhi %v2float %77940 %77936 %107118 %77944
-      %69540 = OpExtInst %v2float %1 Log %143811
-      %69544 = OpExtInst %v2float %1 Log %143810
-      %69550 = OpExtInst %v2float %1 FMin %69540 %69544
-      %69556 = OpExtInst %v2float %1 FMax %69540 %69544
-     %109153 = OpCompositeConstruct %_arr_v2float_uint_2 %69550 %69556
-      %77954 = OpIAdd %uint %143812 %int_1
-      %77956 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143812
-               OpStore %77956 %109153
-               OpBranch %74338
-      %69502 = OpLabel
-      %69505 = OpLoad %uint %65920
-      %69506 = OpBitwiseAnd %uint %69505 %uint_32768
-      %69507 = OpUGreaterThan %bool %69506 %uint_0
-               OpSelectionMerge %77922 None
-               OpSwitch %uint_0 %77906
-      %77906 = OpLabel
-               OpSelectionMerge %77921 None
-               OpBranchConditional %69507 %77908 %77916
-      %77916 = OpLabel
-      %77918 = OpISub %uint %140443 %int_1
-      %77919 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %77918
-      %77920 = OpLoad %_arr_v2float_uint_2 %77919
-     %107126 = OpCompositeExtract %v2float %77920 0
-     %107127 = OpCompositeExtract %v2float %77920 1
-               OpBranch %77922
-      %77908 = OpLabel
-      %77910 = OpIAdd %uint %141789 %int_1
-      %77911 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %77912 = OpLoad %v2float %77911
-               OpBranch %77922
-      %77921 = OpLabel
-               OpUnreachable
-      %77922 = OpLabel
-     %226948 = OpPhi %uint %77910 %77908 %141789 %77916
-     %143815 = OpPhi %uint %140443 %77908 %77918 %77916
-     %143814 = OpPhi %v2float %77912 %77908 %107126 %77916
-     %143813 = OpPhi %v2float %77912 %77908 %107127 %77916
-      %69511 = OpExtInst %v2float %1 Exp2 %143814
-      %69515 = OpExtInst %v2float %1 Exp2 %143813
-      %69521 = OpExtInst %v2float %1 FMin %69511 %69515
-      %69527 = OpExtInst %v2float %1 FMax %69511 %69515
-     %109144 = OpCompositeConstruct %_arr_v2float_uint_2 %69521 %69527
-      %77926 = OpIAdd %uint %143815 %int_1
-      %77928 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143815
-               OpStore %77928 %109144
-               OpBranch %74338
-      %69473 = OpLabel
-      %69476 = OpLoad %uint %65920
-      %69477 = OpBitwiseAnd %uint %69476 %uint_32768
-      %69478 = OpUGreaterThan %bool %69477 %uint_0
-               OpSelectionMerge %77894 None
-               OpSwitch %uint_0 %77878
-      %77878 = OpLabel
-               OpSelectionMerge %77893 None
-               OpBranchConditional %69478 %77880 %77888
-      %77888 = OpLabel
-      %77890 = OpISub %uint %140443 %int_1
-      %77891 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %77890
-      %77892 = OpLoad %_arr_v2float_uint_2 %77891
-     %107135 = OpCompositeExtract %v2float %77892 0
-     %107136 = OpCompositeExtract %v2float %77892 1
-               OpBranch %77894
-      %77880 = OpLabel
-      %77882 = OpIAdd %uint %141789 %int_1
-      %77883 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %77884 = OpLoad %v2float %77883
-               OpBranch %77894
-      %77893 = OpLabel
-               OpUnreachable
-      %77894 = OpLabel
-     %226947 = OpPhi %uint %77882 %77880 %141789 %77888
-     %143818 = OpPhi %uint %140443 %77880 %77890 %77888
-     %143817 = OpPhi %v2float %77884 %77880 %107135 %77888
-     %143816 = OpPhi %v2float %77884 %77880 %107136 %77888
-      %69482 = OpExtInst %v2float %1 Exp %143817
-      %69486 = OpExtInst %v2float %1 Exp %143816
-      %69492 = OpExtInst %v2float %1 FMin %69482 %69486
-      %69498 = OpExtInst %v2float %1 FMax %69482 %69486
-     %109135 = OpCompositeConstruct %_arr_v2float_uint_2 %69492 %69498
-      %77898 = OpIAdd %uint %143818 %int_1
-      %77900 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143818
-               OpStore %77900 %109135
-               OpBranch %74338
-      %69444 = OpLabel
-      %69447 = OpLoad %uint %65920
-      %69448 = OpBitwiseAnd %uint %69447 %uint_32768
-      %69449 = OpUGreaterThan %bool %69448 %uint_0
-               OpSelectionMerge %77866 None
-               OpSwitch %uint_0 %77850
-      %77850 = OpLabel
-               OpSelectionMerge %77865 None
-               OpBranchConditional %69449 %77852 %77860
-      %77860 = OpLabel
-      %77862 = OpISub %uint %140443 %int_1
-      %77863 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %77862
-      %77864 = OpLoad %_arr_v2float_uint_2 %77863
-     %107144 = OpCompositeExtract %v2float %77864 0
-     %107145 = OpCompositeExtract %v2float %77864 1
-               OpBranch %77866
-      %77852 = OpLabel
-      %77854 = OpIAdd %uint %141789 %int_1
-      %77855 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %77856 = OpLoad %v2float %77855
-               OpBranch %77866
-      %77865 = OpLabel
-               OpUnreachable
-      %77866 = OpLabel
-     %226946 = OpPhi %uint %77854 %77852 %141789 %77860
-     %143821 = OpPhi %uint %140443 %77852 %77862 %77860
-     %143820 = OpPhi %v2float %77856 %77852 %107144 %77860
-     %143819 = OpPhi %v2float %77856 %77852 %107145 %77860
-      %69453 = OpExtInst %v2float %1 InverseSqrt %143820
-      %69457 = OpExtInst %v2float %1 InverseSqrt %143819
-      %69463 = OpExtInst %v2float %1 FMin %69453 %69457
-      %69469 = OpExtInst %v2float %1 FMax %69453 %69457
-     %109126 = OpCompositeConstruct %_arr_v2float_uint_2 %69463 %69469
-      %77870 = OpIAdd %uint %143821 %int_1
-      %77872 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143821
-               OpStore %77872 %109126
-               OpBranch %74338
-      %69415 = OpLabel
-      %69418 = OpLoad %uint %65920
-      %69419 = OpBitwiseAnd %uint %69418 %uint_32768
-      %69420 = OpUGreaterThan %bool %69419 %uint_0
-               OpSelectionMerge %77838 None
-               OpSwitch %uint_0 %77822
-      %77822 = OpLabel
-               OpSelectionMerge %77837 None
-               OpBranchConditional %69420 %77824 %77832
-      %77832 = OpLabel
-      %77834 = OpISub %uint %140443 %int_1
-      %77835 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %77834
-      %77836 = OpLoad %_arr_v2float_uint_2 %77835
-     %107153 = OpCompositeExtract %v2float %77836 0
-     %107154 = OpCompositeExtract %v2float %77836 1
-               OpBranch %77838
-      %77824 = OpLabel
-      %77826 = OpIAdd %uint %141789 %int_1
-      %77827 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %77828 = OpLoad %v2float %77827
-               OpBranch %77838
-      %77837 = OpLabel
-               OpUnreachable
-      %77838 = OpLabel
-     %226945 = OpPhi %uint %77826 %77824 %141789 %77832
-     %143824 = OpPhi %uint %140443 %77824 %77834 %77832
-     %143823 = OpPhi %v2float %77828 %77824 %107153 %77832
-     %143822 = OpPhi %v2float %77828 %77824 %107154 %77832
-      %69424 = OpExtInst %v2float %1 Sqrt %143823
-      %69428 = OpExtInst %v2float %1 Sqrt %143822
-      %69434 = OpExtInst %v2float %1 FMin %69424 %69428
-      %69440 = OpExtInst %v2float %1 FMax %69424 %69428
-     %109117 = OpCompositeConstruct %_arr_v2float_uint_2 %69434 %69440
-      %77842 = OpIAdd %uint %143824 %int_1
-      %77844 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143824
-               OpStore %77844 %109117
-               OpBranch %74338
-      %69386 = OpLabel
-      %69389 = OpLoad %uint %65920
-      %69390 = OpBitwiseAnd %uint %69389 %uint_32768
-      %69391 = OpUGreaterThan %bool %69390 %uint_0
-               OpSelectionMerge %77810 None
-               OpSwitch %uint_0 %77794
-      %77794 = OpLabel
-               OpSelectionMerge %77809 None
-               OpBranchConditional %69391 %77796 %77804
-      %77804 = OpLabel
-      %77806 = OpISub %uint %140443 %int_1
-      %77807 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %77806
-      %77808 = OpLoad %_arr_v2float_uint_2 %77807
-     %107162 = OpCompositeExtract %v2float %77808 0
-     %107163 = OpCompositeExtract %v2float %77808 1
-               OpBranch %77810
-      %77796 = OpLabel
-      %77798 = OpIAdd %uint %141789 %int_1
-      %77799 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %77800 = OpLoad %v2float %77799
-               OpBranch %77810
-      %77809 = OpLabel
-               OpUnreachable
-      %77810 = OpLabel
-     %226944 = OpPhi %uint %77798 %77796 %141789 %77804
-     %143827 = OpPhi %uint %140443 %77796 %77806 %77804
-     %143826 = OpPhi %v2float %77800 %77796 %107162 %77804
-     %143825 = OpPhi %v2float %77800 %77796 %107163 %77804
-      %69395 = OpExtInst %v2float %1 Fract %143826
-      %69399 = OpExtInst %v2float %1 Fract %143825
-      %69405 = OpExtInst %v2float %1 FMin %69395 %69399
-      %69411 = OpExtInst %v2float %1 FMax %69395 %69399
-     %109108 = OpCompositeConstruct %_arr_v2float_uint_2 %69405 %69411
-      %77814 = OpIAdd %uint %143827 %int_1
-      %77816 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143827
-               OpStore %77816 %109108
-               OpBranch %74338
-      %69357 = OpLabel
-      %69360 = OpLoad %uint %65920
-      %69361 = OpBitwiseAnd %uint %69360 %uint_32768
-      %69362 = OpUGreaterThan %bool %69361 %uint_0
-               OpSelectionMerge %77782 None
-               OpSwitch %uint_0 %77766
-      %77766 = OpLabel
-               OpSelectionMerge %77781 None
-               OpBranchConditional %69362 %77768 %77776
-      %77776 = OpLabel
-      %77778 = OpISub %uint %140443 %int_1
-      %77779 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %77778
-      %77780 = OpLoad %_arr_v2float_uint_2 %77779
-     %107171 = OpCompositeExtract %v2float %77780 0
-     %107172 = OpCompositeExtract %v2float %77780 1
-               OpBranch %77782
-      %77768 = OpLabel
-      %77770 = OpIAdd %uint %141789 %int_1
-      %77771 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %77772 = OpLoad %v2float %77771
-               OpBranch %77782
-      %77781 = OpLabel
-               OpUnreachable
-      %77782 = OpLabel
-     %226943 = OpPhi %uint %77770 %77768 %141789 %77776
-     %143830 = OpPhi %uint %140443 %77768 %77778 %77776
-     %143829 = OpPhi %v2float %77772 %77768 %107171 %77776
-     %143828 = OpPhi %v2float %77772 %77768 %107172 %77776
-      %69366 = OpExtInst %v2float %1 Ceil %143829
-      %69370 = OpExtInst %v2float %1 Ceil %143828
-      %69376 = OpExtInst %v2float %1 FMin %69366 %69370
-      %69382 = OpExtInst %v2float %1 FMax %69366 %69370
-     %109099 = OpCompositeConstruct %_arr_v2float_uint_2 %69376 %69382
-      %77786 = OpIAdd %uint %143830 %int_1
-      %77788 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143830
-               OpStore %77788 %109099
-               OpBranch %74338
-      %69328 = OpLabel
-      %69331 = OpLoad %uint %65920
-      %69332 = OpBitwiseAnd %uint %69331 %uint_32768
-      %69333 = OpUGreaterThan %bool %69332 %uint_0
-               OpSelectionMerge %77754 None
-               OpSwitch %uint_0 %77738
-      %77738 = OpLabel
-               OpSelectionMerge %77753 None
-               OpBranchConditional %69333 %77740 %77748
-      %77748 = OpLabel
-      %77750 = OpISub %uint %140443 %int_1
-      %77751 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %77750
-      %77752 = OpLoad %_arr_v2float_uint_2 %77751
-     %107180 = OpCompositeExtract %v2float %77752 0
-     %107181 = OpCompositeExtract %v2float %77752 1
-               OpBranch %77754
-      %77740 = OpLabel
-      %77742 = OpIAdd %uint %141789 %int_1
-      %77743 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %77744 = OpLoad %v2float %77743
-               OpBranch %77754
-      %77753 = OpLabel
-               OpUnreachable
-      %77754 = OpLabel
-     %226942 = OpPhi %uint %77742 %77740 %141789 %77748
-     %143833 = OpPhi %uint %140443 %77740 %77750 %77748
-     %143832 = OpPhi %v2float %77744 %77740 %107180 %77748
-     %143831 = OpPhi %v2float %77744 %77740 %107181 %77748
-      %69337 = OpExtInst %v2float %1 Floor %143832
-      %69341 = OpExtInst %v2float %1 Floor %143831
-      %69347 = OpExtInst %v2float %1 FMin %69337 %69341
-      %69353 = OpExtInst %v2float %1 FMax %69337 %69341
-     %109090 = OpCompositeConstruct %_arr_v2float_uint_2 %69347 %69353
-      %77758 = OpIAdd %uint %143833 %int_1
-      %77760 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143833
-               OpStore %77760 %109090
-               OpBranch %74338
-      %69299 = OpLabel
-      %69302 = OpLoad %uint %65920
-      %69303 = OpBitwiseAnd %uint %69302 %uint_32768
-      %69304 = OpUGreaterThan %bool %69303 %uint_0
-               OpSelectionMerge %77726 None
-               OpSwitch %uint_0 %77710
-      %77710 = OpLabel
-               OpSelectionMerge %77725 None
-               OpBranchConditional %69304 %77712 %77720
-      %77720 = OpLabel
-      %77722 = OpISub %uint %140443 %int_1
-      %77723 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %77722
-      %77724 = OpLoad %_arr_v2float_uint_2 %77723
-     %107189 = OpCompositeExtract %v2float %77724 0
-     %107190 = OpCompositeExtract %v2float %77724 1
-               OpBranch %77726
-      %77712 = OpLabel
-      %77714 = OpIAdd %uint %141789 %int_1
-      %77715 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %77716 = OpLoad %v2float %77715
-               OpBranch %77726
-      %77725 = OpLabel
-               OpUnreachable
-      %77726 = OpLabel
-     %226941 = OpPhi %uint %77714 %77712 %141789 %77720
-     %143836 = OpPhi %uint %140443 %77712 %77722 %77720
-     %143835 = OpPhi %v2float %77716 %77712 %107189 %77720
-     %143834 = OpPhi %v2float %77716 %77712 %107190 %77720
-      %69308 = OpExtInst %v2float %1 FSign %143835
-      %69312 = OpExtInst %v2float %1 FSign %143834
-      %69318 = OpExtInst %v2float %1 FMin %69308 %69312
-      %69324 = OpExtInst %v2float %1 FMax %69308 %69312
-     %109081 = OpCompositeConstruct %_arr_v2float_uint_2 %69318 %69324
-      %77730 = OpIAdd %uint %143836 %int_1
-      %77732 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143836
-               OpStore %77732 %109081
-               OpBranch %74338
-      %69270 = OpLabel
-      %69273 = OpLoad %uint %65920
-      %69274 = OpBitwiseAnd %uint %69273 %uint_32768
-      %69275 = OpUGreaterThan %bool %69274 %uint_0
-               OpSelectionMerge %77698 None
-               OpSwitch %uint_0 %77682
-      %77682 = OpLabel
-               OpSelectionMerge %77697 None
-               OpBranchConditional %69275 %77684 %77692
-      %77692 = OpLabel
-      %77694 = OpISub %uint %140443 %int_1
-      %77695 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %77694
-      %77696 = OpLoad %_arr_v2float_uint_2 %77695
-     %107198 = OpCompositeExtract %v2float %77696 0
-     %107199 = OpCompositeExtract %v2float %77696 1
-               OpBranch %77698
-      %77684 = OpLabel
-      %77686 = OpIAdd %uint %141789 %int_1
-      %77687 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %77688 = OpLoad %v2float %77687
-               OpBranch %77698
-      %77697 = OpLabel
-               OpUnreachable
-      %77698 = OpLabel
-     %226940 = OpPhi %uint %77686 %77684 %141789 %77692
-     %143839 = OpPhi %uint %140443 %77684 %77694 %77692
-     %143838 = OpPhi %v2float %77688 %77684 %107198 %77692
-     %143837 = OpPhi %v2float %77688 %77684 %107199 %77692
-      %69279 = OpExtInst %v2float %1 FAbs %143838
-      %69283 = OpExtInst %v2float %1 FAbs %143837
-      %69289 = OpExtInst %v2float %1 FMin %69279 %69283
-      %69295 = OpExtInst %v2float %1 FMax %69279 %69283
-     %109072 = OpCompositeConstruct %_arr_v2float_uint_2 %69289 %69295
-      %77702 = OpIAdd %uint %143839 %int_1
-      %77704 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %143839
-               OpStore %77704 %109072
-               OpBranch %74338
-      %69188 = OpLabel
-      %69191 = OpLoad %uint %65920
-      %69192 = OpBitwiseAnd %uint %69191 %uint_32768
-      %69193 = OpUGreaterThan %bool %69192 %uint_0
-               OpSelectionMerge %77624 None
-               OpSwitch %uint_0 %77608
-      %77608 = OpLabel
-               OpSelectionMerge %77623 None
-               OpBranchConditional %69193 %77610 %77618
-      %77618 = OpLabel
-      %77620 = OpISub %uint %140422 %int_1
-      %77621 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77620
-      %77622 = OpLoad %_arr_float_uint_2 %77621
-     %107225 = OpCompositeExtract %float %77622 0
-     %107226 = OpCompositeExtract %float %77622 1
-               OpBranch %77624
-      %77610 = OpLabel
-      %77612 = OpIAdd %uint %140424 %int_1
-      %77613 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77614 = OpLoad %float %77613
-               OpBranch %77624
-      %77623 = OpLabel
-               OpUnreachable
-      %77624 = OpLabel
-     %143844 = OpPhi %uint %77612 %77610 %140424 %77618
-     %143843 = OpPhi %uint %140422 %77610 %77620 %77618
-     %143841 = OpPhi %float %77614 %77610 %107225 %77618
-     %143840 = OpPhi %float %77614 %77610 %107226 %77618
-      %69197 = OpLoad %uint %65920
-      %69198 = OpBitwiseAnd %uint %69197 %uint_16384
-      %69199 = OpUGreaterThan %bool %69198 %uint_0
-               OpSelectionMerge %77647 None
-               OpSwitch %uint_0 %77631
-      %77631 = OpLabel
-               OpSelectionMerge %77646 None
-               OpBranchConditional %69199 %77633 %77641
-      %77641 = OpLabel
-      %77643 = OpISub %uint %143843 %int_1
-      %77644 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77643
-      %77645 = OpLoad %_arr_float_uint_2 %77644
-     %107216 = OpCompositeExtract %float %77645 0
-     %107217 = OpCompositeExtract %float %77645 1
-               OpBranch %77647
-      %77633 = OpLabel
-      %77635 = OpIAdd %uint %143844 %int_1
-      %77636 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143844
-      %77637 = OpLoad %float %77636
-               OpBranch %77647
-      %77646 = OpLabel
-               OpUnreachable
-      %77647 = OpLabel
-     %143849 = OpPhi %uint %77635 %77633 %143844 %77641
-     %143848 = OpPhi %uint %143843 %77633 %77643 %77641
-     %143846 = OpPhi %float %77637 %77633 %107216 %77641
-     %143845 = OpPhi %float %77637 %77633 %107217 %77641
-      %69203 = OpLoad %uint %65920
-      %69204 = OpBitwiseAnd %uint %69203 %uint_8192
-      %69205 = OpUGreaterThan %bool %69204 %uint_0
-               OpSelectionMerge %77670 None
-               OpSwitch %uint_0 %77654
-      %77654 = OpLabel
-               OpSelectionMerge %77669 None
-               OpBranchConditional %69205 %77656 %77664
-      %77664 = OpLabel
-      %77666 = OpISub %uint %143848 %int_1
-      %77667 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77666
-      %77668 = OpLoad %_arr_float_uint_2 %77667
-     %107207 = OpCompositeExtract %float %77668 0
-     %107208 = OpCompositeExtract %float %77668 1
-               OpBranch %77670
-      %77656 = OpLabel
-      %77658 = OpIAdd %uint %143849 %int_1
-      %77659 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143849
-      %77660 = OpLoad %float %77659
-               OpBranch %77670
-      %77669 = OpLabel
-               OpUnreachable
-      %77670 = OpLabel
-     %157013 = OpPhi %uint %77658 %77656 %143849 %77664
-     %143858 = OpPhi %uint %143848 %77656 %77666 %77664
-     %143851 = OpPhi %float %77660 %77656 %107207 %77664
-     %143850 = OpPhi %float %77660 %77656 %107208 %77664
-      %69211 = OpFMul %float %143841 %143846
-      %69217 = OpFMul %float %143841 %143845
-      %69223 = OpFMul %float %143840 %143846
-      %69229 = OpFMul %float %143840 %143845
-      %69239 = OpExtInst %float %1 FMin %69223 %69229
-      %69240 = OpExtInst %float %1 FMin %69217 %69239
-      %69241 = OpExtInst %float %1 FMin %69211 %69240
-      %69251 = OpExtInst %float %1 FMax %69223 %69229
-      %69252 = OpExtInst %float %1 FMax %69217 %69251
-      %69253 = OpExtInst %float %1 FMax %69211 %69252
-      %69260 = OpFAdd %float %69241 %143851
-      %69266 = OpFAdd %float %69253 %143850
-     %109055 = OpCompositeConstruct %_arr_float_uint_2 %69260 %69266
-      %77674 = OpIAdd %uint %143858 %int_1
-      %77676 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143858
-               OpStore %77676 %109055
-               OpBranch %74338
-      %69161 = OpLabel
-      %69164 = OpLoad %uint %65920
-      %69165 = OpBitwiseAnd %uint %69164 %uint_32768
-      %69166 = OpUGreaterThan %bool %69165 %uint_0
-               OpSelectionMerge %77573 None
-               OpSwitch %uint_0 %77557
-      %77557 = OpLabel
-               OpSelectionMerge %77572 None
-               OpBranchConditional %69166 %77559 %77567
-      %77567 = OpLabel
-      %77569 = OpISub %uint %140422 %int_1
-      %77570 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77569
-      %77571 = OpLoad %_arr_float_uint_2 %77570
-     %107243 = OpCompositeExtract %float %77571 0
-     %107244 = OpCompositeExtract %float %77571 1
-               OpBranch %77573
-      %77559 = OpLabel
-      %77561 = OpIAdd %uint %140424 %int_1
-      %77562 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77563 = OpLoad %float %77562
-               OpBranch %77573
-      %77572 = OpLabel
-               OpUnreachable
-      %77573 = OpLabel
-     %143866 = OpPhi %uint %77561 %77559 %140424 %77567
-     %143865 = OpPhi %uint %140422 %77559 %77569 %77567
-     %143863 = OpPhi %float %77563 %77559 %107243 %77567
-     %143862 = OpPhi %float %77563 %77559 %107244 %77567
-      %69170 = OpLoad %uint %65920
-      %69171 = OpBitwiseAnd %uint %69170 %uint_16384
-      %69172 = OpUGreaterThan %bool %69171 %uint_0
-               OpSelectionMerge %77596 None
-               OpSwitch %uint_0 %77580
-      %77580 = OpLabel
-               OpSelectionMerge %77595 None
-               OpBranchConditional %69172 %77582 %77590
-      %77590 = OpLabel
-      %77592 = OpISub %uint %143865 %int_1
-      %77593 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77592
-      %77594 = OpLoad %_arr_float_uint_2 %77593
-     %107234 = OpCompositeExtract %float %77594 0
-     %107235 = OpCompositeExtract %float %77594 1
-               OpBranch %77596
-      %77582 = OpLabel
-      %77584 = OpIAdd %uint %143866 %int_1
-      %77585 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143866
-      %77586 = OpLoad %float %77585
-               OpBranch %77596
-      %77595 = OpLabel
-               OpUnreachable
-      %77596 = OpLabel
-     %157012 = OpPhi %uint %77584 %77582 %143866 %77590
-     %143871 = OpPhi %uint %143865 %77582 %77592 %77590
-     %143868 = OpPhi %float %77586 %77582 %107234 %77590
-     %143867 = OpPhi %float %77586 %77582 %107235 %77590
-      %69178 = OpExtInst %float %1 FMax %143863 %143868
-      %69184 = OpExtInst %float %1 FMax %143862 %143867
-     %109044 = OpCompositeConstruct %_arr_float_uint_2 %69178 %69184
-      %77600 = OpIAdd %uint %143871 %int_1
-      %77602 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143871
-               OpStore %77602 %109044
-               OpBranch %74338
-      %69134 = OpLabel
-      %69137 = OpLoad %uint %65920
-      %69138 = OpBitwiseAnd %uint %69137 %uint_32768
-      %69139 = OpUGreaterThan %bool %69138 %uint_0
-               OpSelectionMerge %77522 None
-               OpSwitch %uint_0 %77506
-      %77506 = OpLabel
-               OpSelectionMerge %77521 None
-               OpBranchConditional %69139 %77508 %77516
-      %77516 = OpLabel
-      %77518 = OpISub %uint %140422 %int_1
-      %77519 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77518
-      %77520 = OpLoad %_arr_float_uint_2 %77519
-     %107261 = OpCompositeExtract %float %77520 0
-     %107262 = OpCompositeExtract %float %77520 1
-               OpBranch %77522
-      %77508 = OpLabel
-      %77510 = OpIAdd %uint %140424 %int_1
-      %77511 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77512 = OpLoad %float %77511
-               OpBranch %77522
-      %77521 = OpLabel
-               OpUnreachable
-      %77522 = OpLabel
-     %143879 = OpPhi %uint %77510 %77508 %140424 %77516
-     %143878 = OpPhi %uint %140422 %77508 %77518 %77516
-     %143876 = OpPhi %float %77512 %77508 %107261 %77516
-     %143875 = OpPhi %float %77512 %77508 %107262 %77516
-      %69143 = OpLoad %uint %65920
-      %69144 = OpBitwiseAnd %uint %69143 %uint_16384
-      %69145 = OpUGreaterThan %bool %69144 %uint_0
-               OpSelectionMerge %77545 None
-               OpSwitch %uint_0 %77529
-      %77529 = OpLabel
-               OpSelectionMerge %77544 None
-               OpBranchConditional %69145 %77531 %77539
-      %77539 = OpLabel
-      %77541 = OpISub %uint %143878 %int_1
-      %77542 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77541
-      %77543 = OpLoad %_arr_float_uint_2 %77542
-     %107252 = OpCompositeExtract %float %77543 0
-     %107253 = OpCompositeExtract %float %77543 1
-               OpBranch %77545
-      %77531 = OpLabel
-      %77533 = OpIAdd %uint %143879 %int_1
-      %77534 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %143879
-      %77535 = OpLoad %float %77534
-               OpBranch %77545
-      %77544 = OpLabel
-               OpUnreachable
-      %77545 = OpLabel
-     %157011 = OpPhi %uint %77533 %77531 %143879 %77539
-     %143884 = OpPhi %uint %143878 %77531 %77541 %77539
-     %143881 = OpPhi %float %77535 %77531 %107252 %77539
-     %143880 = OpPhi %float %77535 %77531 %107253 %77539
-      %69151 = OpExtInst %float %1 FMin %143876 %143881
-      %69157 = OpExtInst %float %1 FMin %143875 %143880
-     %109033 = OpCompositeConstruct %_arr_float_uint_2 %69151 %69157
-      %77549 = OpIAdd %uint %143884 %int_1
-      %77551 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143884
-               OpStore %77551 %109033
-               OpBranch %74338
-      %69105 = OpLabel
-      %69108 = OpLoad %uint %65920
-      %69109 = OpBitwiseAnd %uint %69108 %uint_32768
-      %69110 = OpUGreaterThan %bool %69109 %uint_0
-               OpSelectionMerge %77494 None
-               OpSwitch %uint_0 %77478
-      %77478 = OpLabel
-               OpSelectionMerge %77493 None
-               OpBranchConditional %69110 %77480 %77488
-      %77488 = OpLabel
-      %77490 = OpISub %uint %140422 %int_1
-      %77491 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77490
-      %77492 = OpLoad %_arr_float_uint_2 %77491
-     %107270 = OpCompositeExtract %float %77492 0
-     %107271 = OpCompositeExtract %float %77492 1
-               OpBranch %77494
-      %77480 = OpLabel
-      %77482 = OpIAdd %uint %140424 %int_1
-      %77483 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77484 = OpLoad %float %77483
-               OpBranch %77494
-      %77493 = OpLabel
-               OpUnreachable
-      %77494 = OpLabel
-     %157010 = OpPhi %uint %77482 %77480 %140424 %77488
-     %143887 = OpPhi %uint %140422 %77480 %77490 %77488
-     %143886 = OpPhi %float %77484 %77480 %107270 %77488
-     %143885 = OpPhi %float %77484 %77480 %107271 %77488
-      %69114 = OpExtInst %float %1 Trunc %143886
-      %69118 = OpExtInst %float %1 Trunc %143885
-      %69124 = OpExtInst %float %1 FMin %69114 %69118
-      %69130 = OpExtInst %float %1 FMax %69114 %69118
-     %109024 = OpCompositeConstruct %_arr_float_uint_2 %69124 %69130
-      %77498 = OpIAdd %uint %143887 %int_1
-      %77500 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143887
-               OpStore %77500 %109024
-               OpBranch %74338
-      %69076 = OpLabel
-      %69079 = OpLoad %uint %65920
-      %69080 = OpBitwiseAnd %uint %69079 %uint_32768
-      %69081 = OpUGreaterThan %bool %69080 %uint_0
-               OpSelectionMerge %77466 None
-               OpSwitch %uint_0 %77450
-      %77450 = OpLabel
-               OpSelectionMerge %77465 None
-               OpBranchConditional %69081 %77452 %77460
-      %77460 = OpLabel
-      %77462 = OpISub %uint %140422 %int_1
-      %77463 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77462
-      %77464 = OpLoad %_arr_float_uint_2 %77463
-     %107279 = OpCompositeExtract %float %77464 0
-     %107280 = OpCompositeExtract %float %77464 1
-               OpBranch %77466
-      %77452 = OpLabel
-      %77454 = OpIAdd %uint %140424 %int_1
-      %77455 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77456 = OpLoad %float %77455
-               OpBranch %77466
-      %77465 = OpLabel
-               OpUnreachable
-      %77466 = OpLabel
-     %157009 = OpPhi %uint %77454 %77452 %140424 %77460
-     %143890 = OpPhi %uint %140422 %77452 %77462 %77460
-     %143889 = OpPhi %float %77456 %77452 %107279 %77460
-     %143888 = OpPhi %float %77456 %77452 %107280 %77460
-      %69085 = OpExtInst %float %1 Round %143889
-      %69089 = OpExtInst %float %1 Round %143888
-      %69095 = OpExtInst %float %1 FMin %69085 %69089
-      %69101 = OpExtInst %float %1 FMax %69085 %69089
-     %109015 = OpCompositeConstruct %_arr_float_uint_2 %69095 %69101
-      %77470 = OpIAdd %uint %143890 %int_1
-      %77472 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143890
-               OpStore %77472 %109015
-               OpBranch %74338
-      %69047 = OpLabel
-      %69050 = OpLoad %uint %65920
-      %69051 = OpBitwiseAnd %uint %69050 %uint_32768
-      %69052 = OpUGreaterThan %bool %69051 %uint_0
-               OpSelectionMerge %77438 None
-               OpSwitch %uint_0 %77422
-      %77422 = OpLabel
-               OpSelectionMerge %77437 None
-               OpBranchConditional %69052 %77424 %77432
-      %77432 = OpLabel
-      %77434 = OpISub %uint %140422 %int_1
-      %77435 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77434
-      %77436 = OpLoad %_arr_float_uint_2 %77435
-     %107288 = OpCompositeExtract %float %77436 0
-     %107289 = OpCompositeExtract %float %77436 1
-               OpBranch %77438
-      %77424 = OpLabel
-      %77426 = OpIAdd %uint %140424 %int_1
-      %77427 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77428 = OpLoad %float %77427
-               OpBranch %77438
-      %77437 = OpLabel
-               OpUnreachable
-      %77438 = OpLabel
-     %157008 = OpPhi %uint %77426 %77424 %140424 %77432
-     %143893 = OpPhi %uint %140422 %77424 %77434 %77432
-     %143892 = OpPhi %float %77428 %77424 %107288 %77432
-     %143891 = OpPhi %float %77428 %77424 %107289 %77432
-      %69056 = OpExtInst %float %1 Tanh %143892
-      %69060 = OpExtInst %float %1 Tanh %143891
-      %69066 = OpExtInst %float %1 FMin %69056 %69060
-      %69072 = OpExtInst %float %1 FMax %69056 %69060
-     %109006 = OpCompositeConstruct %_arr_float_uint_2 %69066 %69072
-      %77442 = OpIAdd %uint %143893 %int_1
-      %77444 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143893
-               OpStore %77444 %109006
-               OpBranch %74338
-      %69018 = OpLabel
-      %69021 = OpLoad %uint %65920
-      %69022 = OpBitwiseAnd %uint %69021 %uint_32768
-      %69023 = OpUGreaterThan %bool %69022 %uint_0
-               OpSelectionMerge %77410 None
-               OpSwitch %uint_0 %77394
-      %77394 = OpLabel
-               OpSelectionMerge %77409 None
-               OpBranchConditional %69023 %77396 %77404
-      %77404 = OpLabel
-      %77406 = OpISub %uint %140422 %int_1
-      %77407 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77406
-      %77408 = OpLoad %_arr_float_uint_2 %77407
-     %107297 = OpCompositeExtract %float %77408 0
-     %107298 = OpCompositeExtract %float %77408 1
-               OpBranch %77410
-      %77396 = OpLabel
-      %77398 = OpIAdd %uint %140424 %int_1
-      %77399 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77400 = OpLoad %float %77399
-               OpBranch %77410
-      %77409 = OpLabel
-               OpUnreachable
-      %77410 = OpLabel
-     %157007 = OpPhi %uint %77398 %77396 %140424 %77404
-     %143896 = OpPhi %uint %140422 %77396 %77406 %77404
-     %143895 = OpPhi %float %77400 %77396 %107297 %77404
-     %143894 = OpPhi %float %77400 %77396 %107298 %77404
-      %69027 = OpExtInst %float %1 Sinh %143895
-      %69031 = OpExtInst %float %1 Sinh %143894
-      %69037 = OpExtInst %float %1 FMin %69027 %69031
-      %69043 = OpExtInst %float %1 FMax %69027 %69031
-     %108997 = OpCompositeConstruct %_arr_float_uint_2 %69037 %69043
-      %77414 = OpIAdd %uint %143896 %int_1
-      %77416 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143896
-               OpStore %77416 %108997
-               OpBranch %74338
-      %68989 = OpLabel
-      %68992 = OpLoad %uint %65920
-      %68993 = OpBitwiseAnd %uint %68992 %uint_32768
-      %68994 = OpUGreaterThan %bool %68993 %uint_0
-               OpSelectionMerge %77382 None
-               OpSwitch %uint_0 %77366
-      %77366 = OpLabel
-               OpSelectionMerge %77381 None
-               OpBranchConditional %68994 %77368 %77376
-      %77376 = OpLabel
-      %77378 = OpISub %uint %140422 %int_1
-      %77379 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77378
-      %77380 = OpLoad %_arr_float_uint_2 %77379
-     %107306 = OpCompositeExtract %float %77380 0
-     %107307 = OpCompositeExtract %float %77380 1
-               OpBranch %77382
-      %77368 = OpLabel
-      %77370 = OpIAdd %uint %140424 %int_1
-      %77371 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77372 = OpLoad %float %77371
-               OpBranch %77382
-      %77381 = OpLabel
-               OpUnreachable
-      %77382 = OpLabel
-     %157006 = OpPhi %uint %77370 %77368 %140424 %77376
-     %143899 = OpPhi %uint %140422 %77368 %77378 %77376
-     %143898 = OpPhi %float %77372 %77368 %107306 %77376
-     %143897 = OpPhi %float %77372 %77368 %107307 %77376
-      %68998 = OpExtInst %float %1 Cosh %143898
-      %69002 = OpExtInst %float %1 Cosh %143897
-      %69008 = OpExtInst %float %1 FMin %68998 %69002
-      %69014 = OpExtInst %float %1 FMax %68998 %69002
-     %108988 = OpCompositeConstruct %_arr_float_uint_2 %69008 %69014
-      %77386 = OpIAdd %uint %143899 %int_1
-      %77388 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143899
-               OpStore %77388 %108988
-               OpBranch %74338
-      %68960 = OpLabel
-      %68963 = OpLoad %uint %65920
-      %68964 = OpBitwiseAnd %uint %68963 %uint_32768
-      %68965 = OpUGreaterThan %bool %68964 %uint_0
-               OpSelectionMerge %77354 None
-               OpSwitch %uint_0 %77338
-      %77338 = OpLabel
-               OpSelectionMerge %77353 None
-               OpBranchConditional %68965 %77340 %77348
-      %77348 = OpLabel
-      %77350 = OpISub %uint %140422 %int_1
-      %77351 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77350
-      %77352 = OpLoad %_arr_float_uint_2 %77351
-     %107315 = OpCompositeExtract %float %77352 0
-     %107316 = OpCompositeExtract %float %77352 1
-               OpBranch %77354
-      %77340 = OpLabel
-      %77342 = OpIAdd %uint %140424 %int_1
-      %77343 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77344 = OpLoad %float %77343
-               OpBranch %77354
-      %77353 = OpLabel
-               OpUnreachable
-      %77354 = OpLabel
-     %157005 = OpPhi %uint %77342 %77340 %140424 %77348
-     %143902 = OpPhi %uint %140422 %77340 %77350 %77348
-     %143901 = OpPhi %float %77344 %77340 %107315 %77348
-     %143900 = OpPhi %float %77344 %77340 %107316 %77348
-      %68969 = OpExtInst %float %1 Atanh %143901
-      %68973 = OpExtInst %float %1 Atanh %143900
-      %68979 = OpExtInst %float %1 FMin %68969 %68973
-      %68985 = OpExtInst %float %1 FMax %68969 %68973
-     %108979 = OpCompositeConstruct %_arr_float_uint_2 %68979 %68985
-      %77358 = OpIAdd %uint %143902 %int_1
-      %77360 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143902
-               OpStore %77360 %108979
-               OpBranch %74338
-      %68931 = OpLabel
-      %68934 = OpLoad %uint %65920
-      %68935 = OpBitwiseAnd %uint %68934 %uint_32768
-      %68936 = OpUGreaterThan %bool %68935 %uint_0
-               OpSelectionMerge %77326 None
-               OpSwitch %uint_0 %77310
-      %77310 = OpLabel
-               OpSelectionMerge %77325 None
-               OpBranchConditional %68936 %77312 %77320
-      %77320 = OpLabel
-      %77322 = OpISub %uint %140422 %int_1
-      %77323 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77322
-      %77324 = OpLoad %_arr_float_uint_2 %77323
-     %107324 = OpCompositeExtract %float %77324 0
-     %107325 = OpCompositeExtract %float %77324 1
-               OpBranch %77326
-      %77312 = OpLabel
-      %77314 = OpIAdd %uint %140424 %int_1
-      %77315 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77316 = OpLoad %float %77315
-               OpBranch %77326
-      %77325 = OpLabel
-               OpUnreachable
-      %77326 = OpLabel
-     %157004 = OpPhi %uint %77314 %77312 %140424 %77320
-     %143905 = OpPhi %uint %140422 %77312 %77322 %77320
-     %143904 = OpPhi %float %77316 %77312 %107324 %77320
-     %143903 = OpPhi %float %77316 %77312 %107325 %77320
-      %68940 = OpExtInst %float %1 Asinh %143904
-      %68944 = OpExtInst %float %1 Asinh %143903
-      %68950 = OpExtInst %float %1 FMin %68940 %68944
-      %68956 = OpExtInst %float %1 FMax %68940 %68944
-     %108970 = OpCompositeConstruct %_arr_float_uint_2 %68950 %68956
-      %77330 = OpIAdd %uint %143905 %int_1
-      %77332 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143905
-               OpStore %77332 %108970
-               OpBranch %74338
-      %68902 = OpLabel
-      %68905 = OpLoad %uint %65920
-      %68906 = OpBitwiseAnd %uint %68905 %uint_32768
-      %68907 = OpUGreaterThan %bool %68906 %uint_0
-               OpSelectionMerge %77298 None
-               OpSwitch %uint_0 %77282
-      %77282 = OpLabel
-               OpSelectionMerge %77297 None
-               OpBranchConditional %68907 %77284 %77292
-      %77292 = OpLabel
-      %77294 = OpISub %uint %140422 %int_1
-      %77295 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77294
-      %77296 = OpLoad %_arr_float_uint_2 %77295
-     %107333 = OpCompositeExtract %float %77296 0
-     %107334 = OpCompositeExtract %float %77296 1
-               OpBranch %77298
-      %77284 = OpLabel
-      %77286 = OpIAdd %uint %140424 %int_1
-      %77287 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77288 = OpLoad %float %77287
-               OpBranch %77298
-      %77297 = OpLabel
-               OpUnreachable
-      %77298 = OpLabel
-     %157003 = OpPhi %uint %77286 %77284 %140424 %77292
-     %143908 = OpPhi %uint %140422 %77284 %77294 %77292
-     %143907 = OpPhi %float %77288 %77284 %107333 %77292
-     %143906 = OpPhi %float %77288 %77284 %107334 %77292
-      %68911 = OpExtInst %float %1 Acosh %143907
-      %68915 = OpExtInst %float %1 Acosh %143906
-      %68921 = OpExtInst %float %1 FMin %68911 %68915
-      %68927 = OpExtInst %float %1 FMax %68911 %68915
-     %108961 = OpCompositeConstruct %_arr_float_uint_2 %68921 %68927
-      %77302 = OpIAdd %uint %143908 %int_1
-      %77304 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143908
-               OpStore %77304 %108961
-               OpBranch %74338
-      %68873 = OpLabel
-      %68876 = OpLoad %uint %65920
-      %68877 = OpBitwiseAnd %uint %68876 %uint_32768
-      %68878 = OpUGreaterThan %bool %68877 %uint_0
-               OpSelectionMerge %77270 None
-               OpSwitch %uint_0 %77254
-      %77254 = OpLabel
-               OpSelectionMerge %77269 None
-               OpBranchConditional %68878 %77256 %77264
-      %77264 = OpLabel
-      %77266 = OpISub %uint %140422 %int_1
-      %77267 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77266
-      %77268 = OpLoad %_arr_float_uint_2 %77267
-     %107342 = OpCompositeExtract %float %77268 0
-     %107343 = OpCompositeExtract %float %77268 1
-               OpBranch %77270
-      %77256 = OpLabel
-      %77258 = OpIAdd %uint %140424 %int_1
-      %77259 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77260 = OpLoad %float %77259
-               OpBranch %77270
-      %77269 = OpLabel
-               OpUnreachable
-      %77270 = OpLabel
-     %157002 = OpPhi %uint %77258 %77256 %140424 %77264
-     %143911 = OpPhi %uint %140422 %77256 %77266 %77264
-     %143910 = OpPhi %float %77260 %77256 %107342 %77264
-     %143909 = OpPhi %float %77260 %77256 %107343 %77264
-      %68882 = OpExtInst %float %1 Atan %143910
-      %68886 = OpExtInst %float %1 Atan %143909
-      %68892 = OpExtInst %float %1 FMin %68882 %68886
-      %68898 = OpExtInst %float %1 FMax %68882 %68886
-     %108952 = OpCompositeConstruct %_arr_float_uint_2 %68892 %68898
-      %77274 = OpIAdd %uint %143911 %int_1
-      %77276 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143911
-               OpStore %77276 %108952
-               OpBranch %74338
-      %68844 = OpLabel
-      %68847 = OpLoad %uint %65920
-      %68848 = OpBitwiseAnd %uint %68847 %uint_32768
-      %68849 = OpUGreaterThan %bool %68848 %uint_0
-               OpSelectionMerge %77242 None
-               OpSwitch %uint_0 %77226
-      %77226 = OpLabel
-               OpSelectionMerge %77241 None
-               OpBranchConditional %68849 %77228 %77236
-      %77236 = OpLabel
-      %77238 = OpISub %uint %140422 %int_1
-      %77239 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77238
-      %77240 = OpLoad %_arr_float_uint_2 %77239
-     %107351 = OpCompositeExtract %float %77240 0
-     %107352 = OpCompositeExtract %float %77240 1
-               OpBranch %77242
-      %77228 = OpLabel
-      %77230 = OpIAdd %uint %140424 %int_1
-      %77231 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77232 = OpLoad %float %77231
-               OpBranch %77242
-      %77241 = OpLabel
-               OpUnreachable
-      %77242 = OpLabel
-     %157001 = OpPhi %uint %77230 %77228 %140424 %77236
-     %143914 = OpPhi %uint %140422 %77228 %77238 %77236
-     %143913 = OpPhi %float %77232 %77228 %107351 %77236
-     %143912 = OpPhi %float %77232 %77228 %107352 %77236
-      %68853 = OpExtInst %float %1 Acos %143913
-      %68857 = OpExtInst %float %1 Acos %143912
-      %68863 = OpExtInst %float %1 FMin %68853 %68857
-      %68869 = OpExtInst %float %1 FMax %68853 %68857
-     %108943 = OpCompositeConstruct %_arr_float_uint_2 %68863 %68869
-      %77246 = OpIAdd %uint %143914 %int_1
-      %77248 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143914
-               OpStore %77248 %108943
-               OpBranch %74338
-      %68815 = OpLabel
-      %68818 = OpLoad %uint %65920
-      %68819 = OpBitwiseAnd %uint %68818 %uint_32768
-      %68820 = OpUGreaterThan %bool %68819 %uint_0
-               OpSelectionMerge %77214 None
-               OpSwitch %uint_0 %77198
-      %77198 = OpLabel
-               OpSelectionMerge %77213 None
-               OpBranchConditional %68820 %77200 %77208
-      %77208 = OpLabel
-      %77210 = OpISub %uint %140422 %int_1
-      %77211 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77210
-      %77212 = OpLoad %_arr_float_uint_2 %77211
-     %107360 = OpCompositeExtract %float %77212 0
-     %107361 = OpCompositeExtract %float %77212 1
-               OpBranch %77214
-      %77200 = OpLabel
-      %77202 = OpIAdd %uint %140424 %int_1
-      %77203 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77204 = OpLoad %float %77203
-               OpBranch %77214
-      %77213 = OpLabel
-               OpUnreachable
-      %77214 = OpLabel
-     %157000 = OpPhi %uint %77202 %77200 %140424 %77208
-     %143917 = OpPhi %uint %140422 %77200 %77210 %77208
-     %143916 = OpPhi %float %77204 %77200 %107360 %77208
-     %143915 = OpPhi %float %77204 %77200 %107361 %77208
-      %68824 = OpExtInst %float %1 Asin %143916
-      %68828 = OpExtInst %float %1 Asin %143915
-      %68834 = OpExtInst %float %1 FMin %68824 %68828
-      %68840 = OpExtInst %float %1 FMax %68824 %68828
-     %108934 = OpCompositeConstruct %_arr_float_uint_2 %68834 %68840
-      %77218 = OpIAdd %uint %143917 %int_1
-      %77220 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143917
-               OpStore %77220 %108934
-               OpBranch %74338
-      %68786 = OpLabel
-      %68789 = OpLoad %uint %65920
-      %68790 = OpBitwiseAnd %uint %68789 %uint_32768
-      %68791 = OpUGreaterThan %bool %68790 %uint_0
-               OpSelectionMerge %77186 None
-               OpSwitch %uint_0 %77170
-      %77170 = OpLabel
-               OpSelectionMerge %77185 None
-               OpBranchConditional %68791 %77172 %77180
-      %77180 = OpLabel
-      %77182 = OpISub %uint %140422 %int_1
-      %77183 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77182
-      %77184 = OpLoad %_arr_float_uint_2 %77183
-     %107369 = OpCompositeExtract %float %77184 0
-     %107370 = OpCompositeExtract %float %77184 1
-               OpBranch %77186
-      %77172 = OpLabel
-      %77174 = OpIAdd %uint %140424 %int_1
-      %77175 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77176 = OpLoad %float %77175
-               OpBranch %77186
-      %77185 = OpLabel
-               OpUnreachable
-      %77186 = OpLabel
-     %156999 = OpPhi %uint %77174 %77172 %140424 %77180
-     %143920 = OpPhi %uint %140422 %77172 %77182 %77180
-     %143919 = OpPhi %float %77176 %77172 %107369 %77180
-     %143918 = OpPhi %float %77176 %77172 %107370 %77180
-      %68795 = OpExtInst %float %1 Tan %143919
-      %68799 = OpExtInst %float %1 Tan %143918
-      %68805 = OpExtInst %float %1 FMin %68795 %68799
-      %68811 = OpExtInst %float %1 FMax %68795 %68799
-     %108925 = OpCompositeConstruct %_arr_float_uint_2 %68805 %68811
-      %77190 = OpIAdd %uint %143920 %int_1
-      %77192 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143920
-               OpStore %77192 %108925
-               OpBranch %74338
-      %68757 = OpLabel
-      %68760 = OpLoad %uint %65920
-      %68761 = OpBitwiseAnd %uint %68760 %uint_32768
-      %68762 = OpUGreaterThan %bool %68761 %uint_0
-               OpSelectionMerge %77158 None
-               OpSwitch %uint_0 %77142
-      %77142 = OpLabel
-               OpSelectionMerge %77157 None
-               OpBranchConditional %68762 %77144 %77152
-      %77152 = OpLabel
-      %77154 = OpISub %uint %140422 %int_1
-      %77155 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77154
-      %77156 = OpLoad %_arr_float_uint_2 %77155
-     %107378 = OpCompositeExtract %float %77156 0
-     %107379 = OpCompositeExtract %float %77156 1
-               OpBranch %77158
-      %77144 = OpLabel
-      %77146 = OpIAdd %uint %140424 %int_1
-      %77147 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77148 = OpLoad %float %77147
-               OpBranch %77158
-      %77157 = OpLabel
-               OpUnreachable
-      %77158 = OpLabel
-     %156998 = OpPhi %uint %77146 %77144 %140424 %77152
-     %143923 = OpPhi %uint %140422 %77144 %77154 %77152
-     %143922 = OpPhi %float %77148 %77144 %107378 %77152
-     %143921 = OpPhi %float %77148 %77144 %107379 %77152
-      %68766 = OpExtInst %float %1 Cos %143922
-      %68770 = OpExtInst %float %1 Cos %143921
-      %68776 = OpExtInst %float %1 FMin %68766 %68770
-      %68782 = OpExtInst %float %1 FMax %68766 %68770
-     %108916 = OpCompositeConstruct %_arr_float_uint_2 %68776 %68782
-      %77162 = OpIAdd %uint %143923 %int_1
-      %77164 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143923
-               OpStore %77164 %108916
-               OpBranch %74338
-      %68728 = OpLabel
-      %68731 = OpLoad %uint %65920
-      %68732 = OpBitwiseAnd %uint %68731 %uint_32768
-      %68733 = OpUGreaterThan %bool %68732 %uint_0
-               OpSelectionMerge %77130 None
-               OpSwitch %uint_0 %77114
-      %77114 = OpLabel
-               OpSelectionMerge %77129 None
-               OpBranchConditional %68733 %77116 %77124
-      %77124 = OpLabel
-      %77126 = OpISub %uint %140422 %int_1
-      %77127 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77126
-      %77128 = OpLoad %_arr_float_uint_2 %77127
-     %107387 = OpCompositeExtract %float %77128 0
-     %107388 = OpCompositeExtract %float %77128 1
-               OpBranch %77130
-      %77116 = OpLabel
-      %77118 = OpIAdd %uint %140424 %int_1
-      %77119 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77120 = OpLoad %float %77119
-               OpBranch %77130
-      %77129 = OpLabel
-               OpUnreachable
-      %77130 = OpLabel
-     %156997 = OpPhi %uint %77118 %77116 %140424 %77124
-     %143926 = OpPhi %uint %140422 %77116 %77126 %77124
-     %143925 = OpPhi %float %77120 %77116 %107387 %77124
-     %143924 = OpPhi %float %77120 %77116 %107388 %77124
-      %68737 = OpExtInst %float %1 Sin %143925
-      %68741 = OpExtInst %float %1 Sin %143924
-      %68747 = OpExtInst %float %1 FMin %68737 %68741
-      %68753 = OpExtInst %float %1 FMax %68737 %68741
-     %108907 = OpCompositeConstruct %_arr_float_uint_2 %68747 %68753
-      %77134 = OpIAdd %uint %143926 %int_1
-      %77136 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143926
-               OpStore %77136 %108907
-               OpBranch %74338
-      %68699 = OpLabel
-      %68702 = OpLoad %uint %65920
-      %68703 = OpBitwiseAnd %uint %68702 %uint_32768
-      %68704 = OpUGreaterThan %bool %68703 %uint_0
-               OpSelectionMerge %77102 None
-               OpSwitch %uint_0 %77086
-      %77086 = OpLabel
-               OpSelectionMerge %77101 None
-               OpBranchConditional %68704 %77088 %77096
-      %77096 = OpLabel
-      %77098 = OpISub %uint %140422 %int_1
-      %77099 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77098
-      %77100 = OpLoad %_arr_float_uint_2 %77099
-     %107396 = OpCompositeExtract %float %77100 0
-     %107397 = OpCompositeExtract %float %77100 1
-               OpBranch %77102
-      %77088 = OpLabel
-      %77090 = OpIAdd %uint %140424 %int_1
-      %77091 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77092 = OpLoad %float %77091
-               OpBranch %77102
-      %77101 = OpLabel
-               OpUnreachable
-      %77102 = OpLabel
-     %156996 = OpPhi %uint %77090 %77088 %140424 %77096
-     %143929 = OpPhi %uint %140422 %77088 %77098 %77096
-     %143928 = OpPhi %float %77092 %77088 %107396 %77096
-     %143927 = OpPhi %float %77092 %77088 %107397 %77096
-      %68708 = OpExtInst %float %1 Log2 %143928
-      %68712 = OpExtInst %float %1 Log2 %143927
-      %68718 = OpExtInst %float %1 FMin %68708 %68712
-      %68724 = OpExtInst %float %1 FMax %68708 %68712
-     %108898 = OpCompositeConstruct %_arr_float_uint_2 %68718 %68724
-      %77106 = OpIAdd %uint %143929 %int_1
-      %77108 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143929
-               OpStore %77108 %108898
-               OpBranch %74338
-      %68670 = OpLabel
-      %68673 = OpLoad %uint %65920
-      %68674 = OpBitwiseAnd %uint %68673 %uint_32768
-      %68675 = OpUGreaterThan %bool %68674 %uint_0
-               OpSelectionMerge %77074 None
-               OpSwitch %uint_0 %77058
-      %77058 = OpLabel
-               OpSelectionMerge %77073 None
-               OpBranchConditional %68675 %77060 %77068
-      %77068 = OpLabel
-      %77070 = OpISub %uint %140422 %int_1
-      %77071 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77070
-      %77072 = OpLoad %_arr_float_uint_2 %77071
-     %107405 = OpCompositeExtract %float %77072 0
-     %107406 = OpCompositeExtract %float %77072 1
-               OpBranch %77074
-      %77060 = OpLabel
-      %77062 = OpIAdd %uint %140424 %int_1
-      %77063 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77064 = OpLoad %float %77063
-               OpBranch %77074
-      %77073 = OpLabel
-               OpUnreachable
-      %77074 = OpLabel
-     %156995 = OpPhi %uint %77062 %77060 %140424 %77068
-     %143932 = OpPhi %uint %140422 %77060 %77070 %77068
-     %143931 = OpPhi %float %77064 %77060 %107405 %77068
-     %143930 = OpPhi %float %77064 %77060 %107406 %77068
-      %68679 = OpExtInst %float %1 Log %143931
-      %68683 = OpExtInst %float %1 Log %143930
-      %68689 = OpExtInst %float %1 FMin %68679 %68683
-      %68695 = OpExtInst %float %1 FMax %68679 %68683
-     %108889 = OpCompositeConstruct %_arr_float_uint_2 %68689 %68695
-      %77078 = OpIAdd %uint %143932 %int_1
-      %77080 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143932
-               OpStore %77080 %108889
-               OpBranch %74338
-      %68641 = OpLabel
-      %68644 = OpLoad %uint %65920
-      %68645 = OpBitwiseAnd %uint %68644 %uint_32768
-      %68646 = OpUGreaterThan %bool %68645 %uint_0
-               OpSelectionMerge %77046 None
-               OpSwitch %uint_0 %77030
-      %77030 = OpLabel
-               OpSelectionMerge %77045 None
-               OpBranchConditional %68646 %77032 %77040
-      %77040 = OpLabel
-      %77042 = OpISub %uint %140422 %int_1
-      %77043 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77042
-      %77044 = OpLoad %_arr_float_uint_2 %77043
-     %107414 = OpCompositeExtract %float %77044 0
-     %107415 = OpCompositeExtract %float %77044 1
-               OpBranch %77046
-      %77032 = OpLabel
-      %77034 = OpIAdd %uint %140424 %int_1
-      %77035 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77036 = OpLoad %float %77035
-               OpBranch %77046
-      %77045 = OpLabel
-               OpUnreachable
-      %77046 = OpLabel
-     %156994 = OpPhi %uint %77034 %77032 %140424 %77040
-     %143935 = OpPhi %uint %140422 %77032 %77042 %77040
-     %143934 = OpPhi %float %77036 %77032 %107414 %77040
-     %143933 = OpPhi %float %77036 %77032 %107415 %77040
-      %68650 = OpExtInst %float %1 Exp2 %143934
-      %68654 = OpExtInst %float %1 Exp2 %143933
-      %68660 = OpExtInst %float %1 FMin %68650 %68654
-      %68666 = OpExtInst %float %1 FMax %68650 %68654
-     %108880 = OpCompositeConstruct %_arr_float_uint_2 %68660 %68666
-      %77050 = OpIAdd %uint %143935 %int_1
-      %77052 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143935
-               OpStore %77052 %108880
-               OpBranch %74338
-      %68612 = OpLabel
-      %68615 = OpLoad %uint %65920
-      %68616 = OpBitwiseAnd %uint %68615 %uint_32768
-      %68617 = OpUGreaterThan %bool %68616 %uint_0
-               OpSelectionMerge %77018 None
-               OpSwitch %uint_0 %77002
-      %77002 = OpLabel
-               OpSelectionMerge %77017 None
-               OpBranchConditional %68617 %77004 %77012
-      %77012 = OpLabel
-      %77014 = OpISub %uint %140422 %int_1
-      %77015 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %77014
-      %77016 = OpLoad %_arr_float_uint_2 %77015
-     %107423 = OpCompositeExtract %float %77016 0
-     %107424 = OpCompositeExtract %float %77016 1
-               OpBranch %77018
-      %77004 = OpLabel
-      %77006 = OpIAdd %uint %140424 %int_1
-      %77007 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %77008 = OpLoad %float %77007
-               OpBranch %77018
-      %77017 = OpLabel
-               OpUnreachable
-      %77018 = OpLabel
-     %156993 = OpPhi %uint %77006 %77004 %140424 %77012
-     %143938 = OpPhi %uint %140422 %77004 %77014 %77012
-     %143937 = OpPhi %float %77008 %77004 %107423 %77012
-     %143936 = OpPhi %float %77008 %77004 %107424 %77012
-      %68621 = OpExtInst %float %1 Exp %143937
-      %68625 = OpExtInst %float %1 Exp %143936
-      %68631 = OpExtInst %float %1 FMin %68621 %68625
-      %68637 = OpExtInst %float %1 FMax %68621 %68625
-     %108871 = OpCompositeConstruct %_arr_float_uint_2 %68631 %68637
-      %77022 = OpIAdd %uint %143938 %int_1
-      %77024 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143938
-               OpStore %77024 %108871
-               OpBranch %74338
-      %68583 = OpLabel
-      %68586 = OpLoad %uint %65920
-      %68587 = OpBitwiseAnd %uint %68586 %uint_32768
-      %68588 = OpUGreaterThan %bool %68587 %uint_0
-               OpSelectionMerge %76990 None
-               OpSwitch %uint_0 %76974
-      %76974 = OpLabel
-               OpSelectionMerge %76989 None
-               OpBranchConditional %68588 %76976 %76984
-      %76984 = OpLabel
-      %76986 = OpISub %uint %140422 %int_1
-      %76987 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %76986
-      %76988 = OpLoad %_arr_float_uint_2 %76987
-     %107432 = OpCompositeExtract %float %76988 0
-     %107433 = OpCompositeExtract %float %76988 1
-               OpBranch %76990
-      %76976 = OpLabel
-      %76978 = OpIAdd %uint %140424 %int_1
-      %76979 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %76980 = OpLoad %float %76979
-               OpBranch %76990
-      %76989 = OpLabel
-               OpUnreachable
-      %76990 = OpLabel
-     %156992 = OpPhi %uint %76978 %76976 %140424 %76984
-     %143941 = OpPhi %uint %140422 %76976 %76986 %76984
-     %143940 = OpPhi %float %76980 %76976 %107432 %76984
-     %143939 = OpPhi %float %76980 %76976 %107433 %76984
-      %68592 = OpExtInst %float %1 InverseSqrt %143940
-      %68596 = OpExtInst %float %1 InverseSqrt %143939
-      %68602 = OpExtInst %float %1 FMin %68592 %68596
-      %68608 = OpExtInst %float %1 FMax %68592 %68596
-     %108862 = OpCompositeConstruct %_arr_float_uint_2 %68602 %68608
-      %76994 = OpIAdd %uint %143941 %int_1
-      %76996 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143941
-               OpStore %76996 %108862
-               OpBranch %74338
-      %68554 = OpLabel
-      %68557 = OpLoad %uint %65920
-      %68558 = OpBitwiseAnd %uint %68557 %uint_32768
-      %68559 = OpUGreaterThan %bool %68558 %uint_0
-               OpSelectionMerge %76962 None
-               OpSwitch %uint_0 %76946
-      %76946 = OpLabel
-               OpSelectionMerge %76961 None
-               OpBranchConditional %68559 %76948 %76956
-      %76956 = OpLabel
-      %76958 = OpISub %uint %140422 %int_1
-      %76959 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %76958
-      %76960 = OpLoad %_arr_float_uint_2 %76959
-     %107441 = OpCompositeExtract %float %76960 0
-     %107442 = OpCompositeExtract %float %76960 1
-               OpBranch %76962
-      %76948 = OpLabel
-      %76950 = OpIAdd %uint %140424 %int_1
-      %76951 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %76952 = OpLoad %float %76951
-               OpBranch %76962
-      %76961 = OpLabel
-               OpUnreachable
-      %76962 = OpLabel
-     %156991 = OpPhi %uint %76950 %76948 %140424 %76956
-     %143944 = OpPhi %uint %140422 %76948 %76958 %76956
-     %143943 = OpPhi %float %76952 %76948 %107441 %76956
-     %143942 = OpPhi %float %76952 %76948 %107442 %76956
-      %68563 = OpExtInst %float %1 Sqrt %143943
-      %68567 = OpExtInst %float %1 Sqrt %143942
-      %68573 = OpExtInst %float %1 FMin %68563 %68567
-      %68579 = OpExtInst %float %1 FMax %68563 %68567
-     %108853 = OpCompositeConstruct %_arr_float_uint_2 %68573 %68579
-      %76966 = OpIAdd %uint %143944 %int_1
-      %76968 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143944
-               OpStore %76968 %108853
-               OpBranch %74338
-      %68525 = OpLabel
-      %68528 = OpLoad %uint %65920
-      %68529 = OpBitwiseAnd %uint %68528 %uint_32768
-      %68530 = OpUGreaterThan %bool %68529 %uint_0
-               OpSelectionMerge %76934 None
-               OpSwitch %uint_0 %76918
-      %76918 = OpLabel
-               OpSelectionMerge %76933 None
-               OpBranchConditional %68530 %76920 %76928
-      %76928 = OpLabel
-      %76930 = OpISub %uint %140422 %int_1
-      %76931 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %76930
-      %76932 = OpLoad %_arr_float_uint_2 %76931
-     %107450 = OpCompositeExtract %float %76932 0
-     %107451 = OpCompositeExtract %float %76932 1
-               OpBranch %76934
-      %76920 = OpLabel
-      %76922 = OpIAdd %uint %140424 %int_1
-      %76923 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %76924 = OpLoad %float %76923
-               OpBranch %76934
-      %76933 = OpLabel
-               OpUnreachable
-      %76934 = OpLabel
-     %156990 = OpPhi %uint %76922 %76920 %140424 %76928
-     %143947 = OpPhi %uint %140422 %76920 %76930 %76928
-     %143946 = OpPhi %float %76924 %76920 %107450 %76928
-     %143945 = OpPhi %float %76924 %76920 %107451 %76928
-      %68534 = OpExtInst %float %1 Fract %143946
-      %68538 = OpExtInst %float %1 Fract %143945
-      %68544 = OpExtInst %float %1 FMin %68534 %68538
-      %68550 = OpExtInst %float %1 FMax %68534 %68538
-     %108844 = OpCompositeConstruct %_arr_float_uint_2 %68544 %68550
-      %76938 = OpIAdd %uint %143947 %int_1
-      %76940 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143947
-               OpStore %76940 %108844
-               OpBranch %74338
-      %68496 = OpLabel
-      %68499 = OpLoad %uint %65920
-      %68500 = OpBitwiseAnd %uint %68499 %uint_32768
-      %68501 = OpUGreaterThan %bool %68500 %uint_0
-               OpSelectionMerge %76906 None
-               OpSwitch %uint_0 %76890
-      %76890 = OpLabel
-               OpSelectionMerge %76905 None
-               OpBranchConditional %68501 %76892 %76900
-      %76900 = OpLabel
-      %76902 = OpISub %uint %140422 %int_1
-      %76903 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %76902
-      %76904 = OpLoad %_arr_float_uint_2 %76903
-     %107459 = OpCompositeExtract %float %76904 0
-     %107460 = OpCompositeExtract %float %76904 1
-               OpBranch %76906
-      %76892 = OpLabel
-      %76894 = OpIAdd %uint %140424 %int_1
-      %76895 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %76896 = OpLoad %float %76895
-               OpBranch %76906
-      %76905 = OpLabel
-               OpUnreachable
-      %76906 = OpLabel
-     %156989 = OpPhi %uint %76894 %76892 %140424 %76900
-     %143950 = OpPhi %uint %140422 %76892 %76902 %76900
-     %143949 = OpPhi %float %76896 %76892 %107459 %76900
-     %143948 = OpPhi %float %76896 %76892 %107460 %76900
-      %68505 = OpExtInst %float %1 Ceil %143949
-      %68509 = OpExtInst %float %1 Ceil %143948
-      %68515 = OpExtInst %float %1 FMin %68505 %68509
-      %68521 = OpExtInst %float %1 FMax %68505 %68509
-     %108835 = OpCompositeConstruct %_arr_float_uint_2 %68515 %68521
-      %76910 = OpIAdd %uint %143950 %int_1
-      %76912 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143950
-               OpStore %76912 %108835
-               OpBranch %74338
-      %68467 = OpLabel
-      %68470 = OpLoad %uint %65920
-      %68471 = OpBitwiseAnd %uint %68470 %uint_32768
-      %68472 = OpUGreaterThan %bool %68471 %uint_0
-               OpSelectionMerge %76878 None
-               OpSwitch %uint_0 %76862
-      %76862 = OpLabel
-               OpSelectionMerge %76877 None
-               OpBranchConditional %68472 %76864 %76872
-      %76872 = OpLabel
-      %76874 = OpISub %uint %140422 %int_1
-      %76875 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %76874
-      %76876 = OpLoad %_arr_float_uint_2 %76875
-     %107468 = OpCompositeExtract %float %76876 0
-     %107469 = OpCompositeExtract %float %76876 1
-               OpBranch %76878
-      %76864 = OpLabel
-      %76866 = OpIAdd %uint %140424 %int_1
-      %76867 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %76868 = OpLoad %float %76867
-               OpBranch %76878
-      %76877 = OpLabel
-               OpUnreachable
-      %76878 = OpLabel
-     %156988 = OpPhi %uint %76866 %76864 %140424 %76872
-     %143953 = OpPhi %uint %140422 %76864 %76874 %76872
-     %143952 = OpPhi %float %76868 %76864 %107468 %76872
-     %143951 = OpPhi %float %76868 %76864 %107469 %76872
-      %68476 = OpExtInst %float %1 Floor %143952
-      %68480 = OpExtInst %float %1 Floor %143951
-      %68486 = OpExtInst %float %1 FMin %68476 %68480
-      %68492 = OpExtInst %float %1 FMax %68476 %68480
-     %108826 = OpCompositeConstruct %_arr_float_uint_2 %68486 %68492
-      %76882 = OpIAdd %uint %143953 %int_1
-      %76884 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143953
-               OpStore %76884 %108826
-               OpBranch %74338
-      %68438 = OpLabel
-      %68441 = OpLoad %uint %65920
-      %68442 = OpBitwiseAnd %uint %68441 %uint_32768
-      %68443 = OpUGreaterThan %bool %68442 %uint_0
-               OpSelectionMerge %76850 None
-               OpSwitch %uint_0 %76834
-      %76834 = OpLabel
-               OpSelectionMerge %76849 None
-               OpBranchConditional %68443 %76836 %76844
-      %76844 = OpLabel
-      %76846 = OpISub %uint %140422 %int_1
-      %76847 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %76846
-      %76848 = OpLoad %_arr_float_uint_2 %76847
-     %107477 = OpCompositeExtract %float %76848 0
-     %107478 = OpCompositeExtract %float %76848 1
-               OpBranch %76850
-      %76836 = OpLabel
-      %76838 = OpIAdd %uint %140424 %int_1
-      %76839 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %76840 = OpLoad %float %76839
-               OpBranch %76850
-      %76849 = OpLabel
-               OpUnreachable
-      %76850 = OpLabel
-     %156987 = OpPhi %uint %76838 %76836 %140424 %76844
-     %143956 = OpPhi %uint %140422 %76836 %76846 %76844
-     %143955 = OpPhi %float %76840 %76836 %107477 %76844
-     %143954 = OpPhi %float %76840 %76836 %107478 %76844
-      %68447 = OpExtInst %float %1 FSign %143955
-      %68451 = OpExtInst %float %1 FSign %143954
-      %68457 = OpExtInst %float %1 FMin %68447 %68451
-      %68463 = OpExtInst %float %1 FMax %68447 %68451
-     %108817 = OpCompositeConstruct %_arr_float_uint_2 %68457 %68463
-      %76854 = OpIAdd %uint %143956 %int_1
-      %76856 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143956
-               OpStore %76856 %108817
-               OpBranch %74338
-      %68409 = OpLabel
-      %68412 = OpLoad %uint %65920
-      %68413 = OpBitwiseAnd %uint %68412 %uint_32768
-      %68414 = OpUGreaterThan %bool %68413 %uint_0
-               OpSelectionMerge %76822 None
-               OpSwitch %uint_0 %76806
-      %76806 = OpLabel
-               OpSelectionMerge %76821 None
-               OpBranchConditional %68414 %76808 %76816
-      %76816 = OpLabel
-      %76818 = OpISub %uint %140422 %int_1
-      %76819 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %76818
-      %76820 = OpLoad %_arr_float_uint_2 %76819
-     %107486 = OpCompositeExtract %float %76820 0
-     %107487 = OpCompositeExtract %float %76820 1
-               OpBranch %76822
-      %76808 = OpLabel
-      %76810 = OpIAdd %uint %140424 %int_1
-      %76811 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %76812 = OpLoad %float %76811
-               OpBranch %76822
-      %76821 = OpLabel
-               OpUnreachable
-      %76822 = OpLabel
-     %156986 = OpPhi %uint %76810 %76808 %140424 %76816
-     %143959 = OpPhi %uint %140422 %76808 %76818 %76816
-     %143958 = OpPhi %float %76812 %76808 %107486 %76816
-     %143957 = OpPhi %float %76812 %76808 %107487 %76816
-      %68418 = OpExtInst %float %1 FAbs %143958
-      %68422 = OpExtInst %float %1 FAbs %143957
-      %68428 = OpExtInst %float %1 FMin %68418 %68422
-      %68434 = OpExtInst %float %1 FMax %68418 %68422
-     %108808 = OpCompositeConstruct %_arr_float_uint_2 %68428 %68434
-      %76826 = OpIAdd %uint %143959 %int_1
-      %76828 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %143959
-               OpStore %76828 %108808
-               OpBranch %74338
-      %68345 = OpLabel
-      %68348 = OpLoad %uint %65920
-      %68349 = OpBitwiseAnd %uint %68348 %uint_32768
-      %68350 = OpUGreaterThan %bool %68349 %uint_0
-               OpSelectionMerge %76771 None
-               OpSwitch %uint_0 %76755
-      %76755 = OpLabel
-               OpSelectionMerge %76770 None
-               OpBranchConditional %68350 %76757 %76765
-      %76765 = OpLabel
-      %76767 = OpISub %uint %140441 %int_1
-               OpBranch %76771
-      %76757 = OpLabel
-      %76759 = OpIAdd %uint %140467 %int_1
-               OpBranch %76771
-      %76770 = OpLabel
-               OpUnreachable
-      %76771 = OpLabel
-     %143962 = OpPhi %uint %76759 %76757 %140467 %76765
-     %143961 = OpPhi %uint %140441 %76757 %76767 %76765
-      %68354 = OpLoad %uint %65920
-      %68355 = OpBitwiseAnd %uint %68354 %uint_16384
-      %68356 = OpUGreaterThan %bool %68355 %uint_0
-               OpSelectionMerge %76794 None
-               OpSwitch %uint_0 %76778
-      %76778 = OpLabel
-               OpSelectionMerge %76793 None
-               OpBranchConditional %68356 %76780 %76788
-      %76788 = OpLabel
-      %76790 = OpISub %uint %143961 %int_1
-               OpBranch %76794
-      %76780 = OpLabel
-      %76782 = OpIAdd %uint %143962 %int_1
-               OpBranch %76794
-      %76793 = OpLabel
-               OpUnreachable
-      %76794 = OpLabel
-     %225325 = OpPhi %uint %76782 %76780 %143962 %76788
-     %224834 = OpPhi %uint %143961 %76780 %76790 %76788
-     %108801 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %76798 = OpIAdd %uint %140422 %int_1
-      %76800 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %76800 %108801
-               OpBranch %74338
-      %68299 = OpLabel
-      %68302 = OpLoad %uint %65920
-      %68303 = OpBitwiseAnd %uint %68302 %uint_32768
-      %68304 = OpUGreaterThan %bool %68303 %uint_0
-               OpSelectionMerge %76720 None
-               OpSwitch %uint_0 %76704
-      %76704 = OpLabel
-               OpSelectionMerge %76719 None
-               OpBranchConditional %68304 %76706 %76714
-      %76714 = OpLabel
-      %76716 = OpISub %uint %140432 %int_1
-               OpBranch %76720
-      %76706 = OpLabel
-      %76708 = OpIAdd %uint %140435 %int_1
-               OpBranch %76720
-      %76719 = OpLabel
-               OpUnreachable
-      %76720 = OpLabel
-     %145277 = OpPhi %uint %76708 %76706 %140435 %76714
-     %145276 = OpPhi %uint %140432 %76706 %76716 %76714
-      %68308 = OpLoad %uint %65920
-      %68309 = OpBitwiseAnd %uint %68308 %uint_16384
-      %68310 = OpUGreaterThan %bool %68309 %uint_0
-               OpSelectionMerge %76743 None
-               OpSwitch %uint_0 %76727
-      %76727 = OpLabel
-               OpSelectionMerge %76742 None
-               OpBranchConditional %68310 %76729 %76737
-      %76737 = OpLabel
-      %76739 = OpISub %uint %145276 %int_1
-               OpBranch %76743
-      %76729 = OpLabel
-      %76731 = OpIAdd %uint %145277 %int_1
-               OpBranch %76743
-      %76742 = OpLabel
-               OpUnreachable
-      %76743 = OpLabel
-     %224549 = OpPhi %uint %76731 %76729 %145277 %76737
-     %224295 = OpPhi %uint %145276 %76729 %76739 %76737
-     %108796 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %76747 = OpIAdd %uint %140422 %int_1
-      %76749 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %76749 %108796
-               OpBranch %74338
-      %68235 = OpLabel
-      %68238 = OpLoad %uint %65920
-      %68239 = OpBitwiseAnd %uint %68238 %uint_32768
-      %68240 = OpUGreaterThan %bool %68239 %uint_0
-               OpSelectionMerge %76669 None
-               OpSwitch %uint_0 %76653
-      %76653 = OpLabel
-               OpSelectionMerge %76668 None
-               OpBranchConditional %68240 %76655 %76663
-      %76663 = OpLabel
-      %76665 = OpISub %uint %140443 %int_1
-               OpBranch %76669
-      %76655 = OpLabel
-      %76657 = OpIAdd %uint %141789 %int_1
-               OpBranch %76669
-      %76668 = OpLabel
-               OpUnreachable
-      %76669 = OpLabel
-     %146592 = OpPhi %uint %76657 %76655 %141789 %76663
-     %146591 = OpPhi %uint %140443 %76655 %76665 %76663
-      %68244 = OpLoad %uint %65920
-      %68245 = OpBitwiseAnd %uint %68244 %uint_16384
-      %68246 = OpUGreaterThan %bool %68245 %uint_0
-               OpSelectionMerge %76692 None
-               OpSwitch %uint_0 %76676
-      %76676 = OpLabel
-               OpSelectionMerge %76691 None
-               OpBranchConditional %68246 %76678 %76686
-      %76686 = OpLabel
-      %76688 = OpISub %uint %146591 %int_1
-               OpBranch %76692
-      %76678 = OpLabel
-      %76680 = OpIAdd %uint %146592 %int_1
-               OpBranch %76692
-      %76691 = OpLabel
-               OpUnreachable
-      %76692 = OpLabel
-     %226901 = OpPhi %uint %76680 %76678 %146592 %76686
-     %225063 = OpPhi %uint %146591 %76678 %76688 %76686
-     %108791 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %76696 = OpIAdd %uint %140422 %int_1
-      %76698 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %76698 %108791
-               OpBranch %74338
-      %68195 = OpLabel
-      %68198 = OpLoad %uint %65920
-      %68199 = OpBitwiseAnd %uint %68198 %uint_32768
-      %68200 = OpUGreaterThan %bool %68199 %uint_0
-               OpSelectionMerge %76641 None
-               OpSwitch %uint_0 %76625
-      %76625 = OpLabel
-               OpSelectionMerge %76640 None
-               OpBranchConditional %68200 %76627 %76635
-      %76635 = OpLabel
-      %76637 = OpISub %uint %140441 %int_1
-               OpBranch %76641
-      %76627 = OpLabel
-      %76629 = OpIAdd %uint %140467 %int_1
-               OpBranch %76641
-      %76640 = OpLabel
-               OpUnreachable
-      %76641 = OpLabel
-     %225320 = OpPhi %uint %76629 %76627 %140467 %76635
-     %224829 = OpPhi %uint %140441 %76627 %76637 %76635
-     %108786 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %76645 = OpIAdd %uint %140422 %int_1
-      %76647 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %76647 %108786
-               OpBranch %74338
-      %68155 = OpLabel
-      %68158 = OpLoad %uint %65920
-      %68159 = OpBitwiseAnd %uint %68158 %uint_32768
-      %68160 = OpUGreaterThan %bool %68159 %uint_0
-               OpSelectionMerge %76613 None
-               OpSwitch %uint_0 %76597
-      %76597 = OpLabel
-               OpSelectionMerge %76612 None
-               OpBranchConditional %68160 %76599 %76607
-      %76607 = OpLabel
-      %76609 = OpISub %uint %140432 %int_1
-               OpBranch %76613
-      %76599 = OpLabel
-      %76601 = OpIAdd %uint %140435 %int_1
-               OpBranch %76613
-      %76612 = OpLabel
-               OpUnreachable
-      %76613 = OpLabel
-     %224545 = OpPhi %uint %76601 %76599 %140435 %76607
-     %224291 = OpPhi %uint %140432 %76599 %76609 %76607
-     %108781 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %76617 = OpIAdd %uint %140422 %int_1
-      %76619 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %76619 %108781
-               OpBranch %74338
-      %68115 = OpLabel
-      %68118 = OpLoad %uint %65920
-      %68119 = OpBitwiseAnd %uint %68118 %uint_32768
-      %68120 = OpUGreaterThan %bool %68119 %uint_0
-               OpSelectionMerge %76585 None
-               OpSwitch %uint_0 %76569
-      %76569 = OpLabel
-               OpSelectionMerge %76584 None
-               OpBranchConditional %68120 %76571 %76579
-      %76579 = OpLabel
-      %76581 = OpISub %uint %140443 %int_1
-               OpBranch %76585
-      %76571 = OpLabel
-      %76573 = OpIAdd %uint %141789 %int_1
-               OpBranch %76585
-      %76584 = OpLabel
-               OpUnreachable
-      %76585 = OpLabel
-     %226898 = OpPhi %uint %76573 %76571 %141789 %76579
-     %225060 = OpPhi %uint %140443 %76571 %76581 %76579
-     %108776 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %76589 = OpIAdd %uint %140422 %int_1
-      %76591 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %76591 %108776
-               OpBranch %74338
-      %68064 = OpLabel
-      %68067 = OpLoad %uint %65920
-      %68068 = OpBitwiseAnd %uint %68067 %uint_32768
-      %68069 = OpUGreaterThan %bool %68068 %uint_0
-               OpSelectionMerge %76534 None
-               OpSwitch %uint_0 %76518
-      %76518 = OpLabel
-               OpSelectionMerge %76533 None
-               OpBranchConditional %68069 %76520 %76528
-      %76528 = OpLabel
-      %76530 = OpISub %uint %140441 %int_1
-               OpBranch %76534
-      %76520 = OpLabel
-      %76522 = OpIAdd %uint %140467 %int_1
-               OpBranch %76534
-      %76533 = OpLabel
-               OpUnreachable
-      %76534 = OpLabel
-     %151834 = OpPhi %uint %76522 %76520 %140467 %76528
-     %151833 = OpPhi %uint %140441 %76520 %76530 %76528
-      %68073 = OpLoad %uint %65920
-      %68074 = OpBitwiseAnd %uint %68073 %uint_16384
-      %68075 = OpUGreaterThan %bool %68074 %uint_0
-               OpSelectionMerge %76557 None
-               OpSwitch %uint_0 %76541
-      %76541 = OpLabel
-               OpSelectionMerge %76556 None
-               OpBranchConditional %68075 %76543 %76551
-      %76551 = OpLabel
-      %76553 = OpISub %uint %151833 %int_1
-               OpBranch %76557
-      %76543 = OpLabel
-      %76545 = OpIAdd %uint %151834 %int_1
-               OpBranch %76557
-      %76556 = OpLabel
-               OpUnreachable
-      %76557 = OpLabel
-     %225317 = OpPhi %uint %76545 %76543 %151834 %76551
-     %224826 = OpPhi %uint %151833 %76543 %76553 %76551
-     %108771 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %76561 = OpIAdd %uint %140422 %int_1
-      %76563 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %76563 %108771
-               OpBranch %74338
-      %68013 = OpLabel
-      %68016 = OpLoad %uint %65920
-      %68017 = OpBitwiseAnd %uint %68016 %uint_32768
-      %68018 = OpUGreaterThan %bool %68017 %uint_0
-               OpSelectionMerge %76483 None
-               OpSwitch %uint_0 %76467
-      %76467 = OpLabel
-               OpSelectionMerge %76482 None
-               OpBranchConditional %68018 %76469 %76477
-      %76477 = OpLabel
-      %76479 = OpISub %uint %140432 %int_1
-               OpBranch %76483
-      %76469 = OpLabel
-      %76471 = OpIAdd %uint %140435 %int_1
-               OpBranch %76483
-      %76482 = OpLabel
-               OpUnreachable
-      %76483 = OpLabel
-     %153149 = OpPhi %uint %76471 %76469 %140435 %76477
-     %153148 = OpPhi %uint %140432 %76469 %76479 %76477
-      %68022 = OpLoad %uint %65920
-      %68023 = OpBitwiseAnd %uint %68022 %uint_16384
-      %68024 = OpUGreaterThan %bool %68023 %uint_0
-               OpSelectionMerge %76506 None
-               OpSwitch %uint_0 %76490
-      %76490 = OpLabel
-               OpSelectionMerge %76505 None
-               OpBranchConditional %68024 %76492 %76500
-      %76500 = OpLabel
-      %76502 = OpISub %uint %153148 %int_1
-               OpBranch %76506
-      %76492 = OpLabel
-      %76494 = OpIAdd %uint %153149 %int_1
-               OpBranch %76506
-      %76505 = OpLabel
-               OpUnreachable
-      %76506 = OpLabel
-     %224541 = OpPhi %uint %76494 %76492 %153149 %76500
-     %224287 = OpPhi %uint %153148 %76492 %76502 %76500
-     %108766 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %76510 = OpIAdd %uint %140422 %int_1
-      %76512 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %76512 %108766
-               OpBranch %74338
-      %67962 = OpLabel
-      %67965 = OpLoad %uint %65920
-      %67966 = OpBitwiseAnd %uint %67965 %uint_32768
-      %67967 = OpUGreaterThan %bool %67966 %uint_0
-               OpSelectionMerge %76432 None
-               OpSwitch %uint_0 %76416
-      %76416 = OpLabel
-               OpSelectionMerge %76431 None
-               OpBranchConditional %67967 %76418 %76426
-      %76426 = OpLabel
-      %76428 = OpISub %uint %140443 %int_1
-               OpBranch %76432
-      %76418 = OpLabel
-      %76420 = OpIAdd %uint %141789 %int_1
-               OpBranch %76432
-      %76431 = OpLabel
-               OpUnreachable
-      %76432 = OpLabel
-     %154464 = OpPhi %uint %76420 %76418 %141789 %76426
-     %154463 = OpPhi %uint %140443 %76418 %76428 %76426
-      %67971 = OpLoad %uint %65920
-      %67972 = OpBitwiseAnd %uint %67971 %uint_16384
-      %67973 = OpUGreaterThan %bool %67972 %uint_0
-               OpSelectionMerge %76455 None
-               OpSwitch %uint_0 %76439
-      %76439 = OpLabel
-               OpSelectionMerge %76454 None
-               OpBranchConditional %67973 %76441 %76449
-      %76449 = OpLabel
-      %76451 = OpISub %uint %154463 %int_1
-               OpBranch %76455
-      %76441 = OpLabel
-      %76443 = OpIAdd %uint %154464 %int_1
-               OpBranch %76455
-      %76454 = OpLabel
-               OpUnreachable
-      %76455 = OpLabel
-     %226893 = OpPhi %uint %76443 %76441 %154464 %76449
-     %225055 = OpPhi %uint %154463 %76441 %76451 %76449
-     %108761 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %76459 = OpIAdd %uint %140422 %int_1
-      %76461 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %140422
-               OpStore %76461 %108761
-               OpBranch %74338
-      %67913 = OpLabel
-      %67916 = OpLoad %uint %65920
-      %67917 = OpBitwiseAnd %uint %67916 %uint_32768
-      %67918 = OpUGreaterThan %bool %67917 %uint_0
-               OpSelectionMerge %76381 None
-               OpSwitch %uint_0 %76365
-      %76365 = OpLabel
-               OpSelectionMerge %76380 None
-               OpBranchConditional %67918 %76367 %76375
-      %76375 = OpLabel
-      %76377 = OpISub %uint %140432 %int_1
-      %76378 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %76377
-      %76379 = OpLoad %_arr_v3float_uint_2 %76378
-     %107504 = OpCompositeExtract %v3float %76379 0
-     %107505 = OpCompositeExtract %v3float %76379 1
-               OpBranch %76381
-      %76367 = OpLabel
-      %76369 = OpIAdd %uint %140435 %int_1
-      %76370 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %76371 = OpLoad %v3float %76370
-               OpBranch %76381
-      %76380 = OpLabel
-               OpUnreachable
-      %76381 = OpLabel
-     %155781 = OpPhi %uint %76369 %76367 %140435 %76375
-     %155780 = OpPhi %uint %140432 %76367 %76377 %76375
-     %155778 = OpPhi %v3float %76371 %76367 %107504 %76375
-     %155777 = OpPhi %v3float %76371 %76367 %107505 %76375
-      %67922 = OpLoad %uint %65920
-      %67923 = OpBitwiseAnd %uint %67922 %uint_16384
-      %67924 = OpUGreaterThan %bool %67923 %uint_0
-               OpSelectionMerge %76404 None
-               OpSwitch %uint_0 %76388
-      %76388 = OpLabel
-               OpSelectionMerge %76403 None
-               OpBranchConditional %67924 %76390 %76398
-      %76398 = OpLabel
-      %76400 = OpISub %uint %155780 %int_1
-      %76401 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %76400
-      %76402 = OpLoad %_arr_v3float_uint_2 %76401
-     %107495 = OpCompositeExtract %v3float %76402 0
-     %107496 = OpCompositeExtract %v3float %76402 1
-               OpBranch %76404
-      %76390 = OpLabel
-      %76392 = OpIAdd %uint %155781 %int_1
-      %76393 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %155781
-      %76394 = OpLoad %v3float %76393
-               OpBranch %76404
-      %76403 = OpLabel
-               OpUnreachable
-      %76404 = OpLabel
-     %224538 = OpPhi %uint %76392 %76390 %155781 %76398
-     %155784 = OpPhi %uint %155780 %76390 %76400 %76398
-     %155783 = OpPhi %v3float %76394 %76390 %107495 %76398
-     %155782 = OpPhi %v3float %76394 %76390 %107496 %76398
-      %67930 = OpExtInst %v3float %1 Cross %155778 %155783
-      %67935 = OpExtInst %v3float %1 Cross %155778 %155782
-      %67940 = OpExtInst %v3float %1 Cross %155777 %155783
-      %67945 = OpExtInst %v3float %1 Cross %155777 %155782
-      %67950 = OpExtInst %v3float %1 FMin %67940 %67945
-      %67951 = OpExtInst %v3float %1 FMin %67935 %67950
-      %67952 = OpExtInst %v3float %1 FMin %67930 %67951
-      %67957 = OpExtInst %v3float %1 FMax %67940 %67945
-      %67958 = OpExtInst %v3float %1 FMax %67935 %67957
-      %67959 = OpExtInst %v3float %1 FMax %67930 %67958
-      %67960 = OpCompositeConstruct %_arr_v3float_uint_2 %67952 %67959
-      %76408 = OpIAdd %uint %155784 %int_1
-      %76410 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %155784
-               OpStore %76410 %67960
-               OpBranch %74338
-      %67846 = OpLabel
-      %67849 = OpLoad %uint %65920
-      %67850 = OpBitwiseAnd %uint %67849 %uint_32768
-      %67851 = OpUGreaterThan %bool %67850 %uint_0
-               OpSelectionMerge %76330 None
-               OpSwitch %uint_0 %76314
-      %76314 = OpLabel
-               OpSelectionMerge %76329 None
-               OpBranchConditional %67851 %76316 %76324
-      %76324 = OpLabel
-      %76326 = OpISub %uint %140441 %int_1
-      %76327 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %76326
-      %76328 = OpLoad %_arr_v4float_uint_2 %76327
-     %107522 = OpCompositeExtract %v4float %76328 0
-     %107523 = OpCompositeExtract %v4float %76328 1
-               OpBranch %76330
-      %76316 = OpLabel
-      %76318 = OpIAdd %uint %140467 %int_1
-      %76319 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %76320 = OpLoad %v4float %76319
-               OpBranch %76330
-      %76329 = OpLabel
-               OpUnreachable
-      %76330 = OpLabel
-     %225310 = OpPhi %uint %76318 %76316 %140467 %76324
-     %155795 = OpPhi %uint %140441 %76316 %76326 %76324
-     %155786 = OpPhi %v4float %76320 %76316 %107522 %76324
-     %155785 = OpPhi %v4float %76320 %76316 %107523 %76324
-      %67855 = OpLoad %uint %65920
-      %67856 = OpBitwiseAnd %uint %67855 %uint_16384
-      %67857 = OpUGreaterThan %bool %67856 %uint_0
-               OpSelectionMerge %76353 None
-               OpSwitch %uint_0 %76337
-      %76337 = OpLabel
-               OpSelectionMerge %76352 None
-               OpBranchConditional %67857 %76339 %76347
-      %76347 = OpLabel
-      %76349 = OpISub %uint %140422 %int_1
-      %76350 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %76349
-      %76351 = OpLoad %_arr_float_uint_2 %76350
-     %107513 = OpCompositeExtract %float %76351 0
-     %107514 = OpCompositeExtract %float %76351 1
-               OpBranch %76353
-      %76339 = OpLabel
-      %76341 = OpIAdd %uint %140424 %int_1
-      %76342 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %76343 = OpLoad %float %76342
-               OpBranch %76353
-      %76352 = OpLabel
-               OpUnreachable
-      %76353 = OpLabel
-     %156968 = OpPhi %uint %76341 %76339 %140424 %76347
-     %156766 = OpPhi %uint %140422 %76339 %76349 %76347
-     %155791 = OpPhi %float %76343 %76339 %107513 %76347
-     %155790 = OpPhi %float %76343 %76339 %107514 %76347
-      %67863 = OpCompositeConstruct %v4float %155791 %155791 %155791 %155791
-      %67864 = OpFMod %v4float %155786 %67863
-      %67870 = OpCompositeConstruct %v4float %155790 %155790 %155790 %155790
-      %67871 = OpFMod %v4float %155786 %67870
-      %67878 = OpFMod %v4float %155785 %67863
-      %67885 = OpFMod %v4float %155785 %67870
-      %67895 = OpExtInst %v4float %1 FMin %67878 %67885
-      %67896 = OpExtInst %v4float %1 FMin %67871 %67895
-      %67897 = OpExtInst %v4float %1 FMin %67864 %67896
-      %67907 = OpExtInst %v4float %1 FMax %67878 %67885
-      %67908 = OpExtInst %v4float %1 FMax %67871 %67907
-      %67909 = OpExtInst %v4float %1 FMax %67864 %67908
-     %108740 = OpCompositeConstruct %_arr_v4float_uint_2 %67897 %67909
-      %76357 = OpIAdd %uint %155795 %int_1
-      %76359 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %155795
-               OpStore %76359 %108740
-               OpBranch %74338
-      %67783 = OpLabel
-      %67786 = OpLoad %uint %65920
-      %67787 = OpBitwiseAnd %uint %67786 %uint_32768
-      %67788 = OpUGreaterThan %bool %67787 %uint_0
-               OpSelectionMerge %76279 None
-               OpSwitch %uint_0 %76263
-      %76263 = OpLabel
-               OpSelectionMerge %76278 None
-               OpBranchConditional %67788 %76265 %76273
-      %76273 = OpLabel
-      %76275 = OpISub %uint %140441 %int_1
-      %76276 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %76275
-      %76277 = OpLoad %_arr_v4float_uint_2 %76276
-     %107540 = OpCompositeExtract %v4float %76277 0
-     %107541 = OpCompositeExtract %v4float %76277 1
-               OpBranch %76279
-      %76265 = OpLabel
-      %76267 = OpIAdd %uint %140467 %int_1
-      %76268 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %76269 = OpLoad %v4float %76268
-               OpBranch %76279
-      %76278 = OpLabel
-               OpUnreachable
-      %76279 = OpLabel
-     %155800 = OpPhi %uint %76267 %76265 %140467 %76273
-     %155799 = OpPhi %uint %140441 %76265 %76275 %76273
-     %155797 = OpPhi %v4float %76269 %76265 %107540 %76273
-     %155796 = OpPhi %v4float %76269 %76265 %107541 %76273
-      %67792 = OpLoad %uint %65920
-      %67793 = OpBitwiseAnd %uint %67792 %uint_16384
-      %67794 = OpUGreaterThan %bool %67793 %uint_0
-               OpSelectionMerge %76302 None
-               OpSwitch %uint_0 %76286
-      %76286 = OpLabel
-               OpSelectionMerge %76301 None
-               OpBranchConditional %67794 %76288 %76296
-      %76296 = OpLabel
-      %76298 = OpISub %uint %155799 %int_1
-      %76299 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %76298
-      %76300 = OpLoad %_arr_v4float_uint_2 %76299
-     %107531 = OpCompositeExtract %v4float %76300 0
-     %107532 = OpCompositeExtract %v4float %76300 1
-               OpBranch %76302
-      %76288 = OpLabel
-      %76290 = OpIAdd %uint %155800 %int_1
-      %76291 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %155800
-      %76292 = OpLoad %v4float %76291
-               OpBranch %76302
-      %76301 = OpLabel
-               OpUnreachable
-      %76302 = OpLabel
-     %225308 = OpPhi %uint %76290 %76288 %155800 %76296
-     %155805 = OpPhi %uint %155799 %76288 %76298 %76296
-     %155802 = OpPhi %v4float %76292 %76288 %107531 %76296
-     %155801 = OpPhi %v4float %76292 %76288 %107532 %76296
-      %67800 = OpFMod %v4float %155797 %155802
-      %67806 = OpFMod %v4float %155797 %155801
-      %67812 = OpFMod %v4float %155796 %155802
-      %67818 = OpFMod %v4float %155796 %155801
-      %67828 = OpExtInst %v4float %1 FMin %67812 %67818
-      %67829 = OpExtInst %v4float %1 FMin %67806 %67828
-      %67830 = OpExtInst %v4float %1 FMin %67800 %67829
-      %67840 = OpExtInst %v4float %1 FMax %67812 %67818
-      %67841 = OpExtInst %v4float %1 FMax %67806 %67840
-      %67842 = OpExtInst %v4float %1 FMax %67800 %67841
-     %108725 = OpCompositeConstruct %_arr_v4float_uint_2 %67830 %67842
-      %76306 = OpIAdd %uint %155805 %int_1
-      %76308 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %155805
-               OpStore %76308 %108725
-               OpBranch %74338
-      %67716 = OpLabel
-      %67719 = OpLoad %uint %65920
-      %67720 = OpBitwiseAnd %uint %67719 %uint_32768
-      %67721 = OpUGreaterThan %bool %67720 %uint_0
-               OpSelectionMerge %76228 None
-               OpSwitch %uint_0 %76212
-      %76212 = OpLabel
-               OpSelectionMerge %76227 None
-               OpBranchConditional %67721 %76214 %76222
-      %76222 = OpLabel
-      %76224 = OpISub %uint %140432 %int_1
-      %76225 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %76224
-      %76226 = OpLoad %_arr_v3float_uint_2 %76225
-     %107558 = OpCompositeExtract %v3float %76226 0
-     %107559 = OpCompositeExtract %v3float %76226 1
-               OpBranch %76228
-      %76214 = OpLabel
-      %76216 = OpIAdd %uint %140435 %int_1
-      %76217 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %76218 = OpLoad %v3float %76217
-               OpBranch %76228
-      %76227 = OpLabel
-               OpUnreachable
-      %76228 = OpLabel
-     %224533 = OpPhi %uint %76216 %76214 %140435 %76222
-     %155816 = OpPhi %uint %140432 %76214 %76224 %76222
-     %155807 = OpPhi %v3float %76218 %76214 %107558 %76222
-     %155806 = OpPhi %v3float %76218 %76214 %107559 %76222
-      %67725 = OpLoad %uint %65920
-      %67726 = OpBitwiseAnd %uint %67725 %uint_16384
-      %67727 = OpUGreaterThan %bool %67726 %uint_0
-               OpSelectionMerge %76251 None
-               OpSwitch %uint_0 %76235
-      %76235 = OpLabel
-               OpSelectionMerge %76250 None
-               OpBranchConditional %67727 %76237 %76245
-      %76245 = OpLabel
-      %76247 = OpISub %uint %140422 %int_1
-      %76248 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %76247
-      %76249 = OpLoad %_arr_float_uint_2 %76248
-     %107549 = OpCompositeExtract %float %76249 0
-     %107550 = OpCompositeExtract %float %76249 1
-               OpBranch %76251
-      %76237 = OpLabel
-      %76239 = OpIAdd %uint %140424 %int_1
-      %76240 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %76241 = OpLoad %float %76240
-               OpBranch %76251
-      %76250 = OpLabel
-               OpUnreachable
-      %76251 = OpLabel
-     %156965 = OpPhi %uint %76239 %76237 %140424 %76245
-     %156763 = OpPhi %uint %140422 %76237 %76247 %76245
-     %155812 = OpPhi %float %76241 %76237 %107549 %76245
-     %155811 = OpPhi %float %76241 %76237 %107550 %76245
-      %67733 = OpCompositeConstruct %v3float %155812 %155812 %155812
-      %67734 = OpFMod %v3float %155807 %67733
-      %67740 = OpCompositeConstruct %v3float %155811 %155811 %155811
-      %67741 = OpFMod %v3float %155807 %67740
-      %67748 = OpFMod %v3float %155806 %67733
-      %67755 = OpFMod %v3float %155806 %67740
-      %67765 = OpExtInst %v3float %1 FMin %67748 %67755
-      %67766 = OpExtInst %v3float %1 FMin %67741 %67765
-      %67767 = OpExtInst %v3float %1 FMin %67734 %67766
-      %67777 = OpExtInst %v3float %1 FMax %67748 %67755
-      %67778 = OpExtInst %v3float %1 FMax %67741 %67777
-      %67779 = OpExtInst %v3float %1 FMax %67734 %67778
-     %108710 = OpCompositeConstruct %_arr_v3float_uint_2 %67767 %67779
-      %76255 = OpIAdd %uint %155816 %int_1
-      %76257 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %155816
-               OpStore %76257 %108710
-               OpBranch %74338
-      %67653 = OpLabel
-      %67656 = OpLoad %uint %65920
-      %67657 = OpBitwiseAnd %uint %67656 %uint_32768
-      %67658 = OpUGreaterThan %bool %67657 %uint_0
-               OpSelectionMerge %76177 None
-               OpSwitch %uint_0 %76161
-      %76161 = OpLabel
-               OpSelectionMerge %76176 None
-               OpBranchConditional %67658 %76163 %76171
-      %76171 = OpLabel
-      %76173 = OpISub %uint %140432 %int_1
-      %76174 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %76173
-      %76175 = OpLoad %_arr_v3float_uint_2 %76174
-     %107576 = OpCompositeExtract %v3float %76175 0
-     %107577 = OpCompositeExtract %v3float %76175 1
-               OpBranch %76177
-      %76163 = OpLabel
-      %76165 = OpIAdd %uint %140435 %int_1
-      %76166 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %76167 = OpLoad %v3float %76166
-               OpBranch %76177
-      %76176 = OpLabel
-               OpUnreachable
-      %76177 = OpLabel
-     %155821 = OpPhi %uint %76165 %76163 %140435 %76171
-     %155820 = OpPhi %uint %140432 %76163 %76173 %76171
-     %155818 = OpPhi %v3float %76167 %76163 %107576 %76171
-     %155817 = OpPhi %v3float %76167 %76163 %107577 %76171
-      %67662 = OpLoad %uint %65920
-      %67663 = OpBitwiseAnd %uint %67662 %uint_16384
-      %67664 = OpUGreaterThan %bool %67663 %uint_0
-               OpSelectionMerge %76200 None
-               OpSwitch %uint_0 %76184
-      %76184 = OpLabel
-               OpSelectionMerge %76199 None
-               OpBranchConditional %67664 %76186 %76194
-      %76194 = OpLabel
-      %76196 = OpISub %uint %155820 %int_1
-      %76197 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %76196
-      %76198 = OpLoad %_arr_v3float_uint_2 %76197
-     %107567 = OpCompositeExtract %v3float %76198 0
-     %107568 = OpCompositeExtract %v3float %76198 1
-               OpBranch %76200
-      %76186 = OpLabel
-      %76188 = OpIAdd %uint %155821 %int_1
-      %76189 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %155821
-      %76190 = OpLoad %v3float %76189
-               OpBranch %76200
-      %76199 = OpLabel
-               OpUnreachable
-      %76200 = OpLabel
-     %224531 = OpPhi %uint %76188 %76186 %155821 %76194
-     %155826 = OpPhi %uint %155820 %76186 %76196 %76194
-     %155823 = OpPhi %v3float %76190 %76186 %107567 %76194
-     %155822 = OpPhi %v3float %76190 %76186 %107568 %76194
-      %67670 = OpFMod %v3float %155818 %155823
-      %67676 = OpFMod %v3float %155818 %155822
-      %67682 = OpFMod %v3float %155817 %155823
-      %67688 = OpFMod %v3float %155817 %155822
-      %67698 = OpExtInst %v3float %1 FMin %67682 %67688
-      %67699 = OpExtInst %v3float %1 FMin %67676 %67698
-      %67700 = OpExtInst %v3float %1 FMin %67670 %67699
-      %67710 = OpExtInst %v3float %1 FMax %67682 %67688
-      %67711 = OpExtInst %v3float %1 FMax %67676 %67710
-      %67712 = OpExtInst %v3float %1 FMax %67670 %67711
-     %108695 = OpCompositeConstruct %_arr_v3float_uint_2 %67700 %67712
-      %76204 = OpIAdd %uint %155826 %int_1
-      %76206 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %155826
-               OpStore %76206 %108695
-               OpBranch %74338
-      %67586 = OpLabel
-      %67589 = OpLoad %uint %65920
-      %67590 = OpBitwiseAnd %uint %67589 %uint_32768
-      %67591 = OpUGreaterThan %bool %67590 %uint_0
-               OpSelectionMerge %76126 None
-               OpSwitch %uint_0 %76110
-      %76110 = OpLabel
-               OpSelectionMerge %76125 None
-               OpBranchConditional %67591 %76112 %76120
-      %76120 = OpLabel
-      %76122 = OpISub %uint %140443 %int_1
-      %76123 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %76122
-      %76124 = OpLoad %_arr_v2float_uint_2 %76123
-     %107594 = OpCompositeExtract %v2float %76124 0
-     %107595 = OpCompositeExtract %v2float %76124 1
-               OpBranch %76126
-      %76112 = OpLabel
-      %76114 = OpIAdd %uint %141789 %int_1
-      %76115 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %76116 = OpLoad %v2float %76115
-               OpBranch %76126
-      %76125 = OpLabel
-               OpUnreachable
-      %76126 = OpLabel
-     %226882 = OpPhi %uint %76114 %76112 %141789 %76120
-     %155837 = OpPhi %uint %140443 %76112 %76122 %76120
-     %155828 = OpPhi %v2float %76116 %76112 %107594 %76120
-     %155827 = OpPhi %v2float %76116 %76112 %107595 %76120
-      %67595 = OpLoad %uint %65920
-      %67596 = OpBitwiseAnd %uint %67595 %uint_16384
-      %67597 = OpUGreaterThan %bool %67596 %uint_0
-               OpSelectionMerge %76149 None
-               OpSwitch %uint_0 %76133
-      %76133 = OpLabel
-               OpSelectionMerge %76148 None
-               OpBranchConditional %67597 %76135 %76143
-      %76143 = OpLabel
-      %76145 = OpISub %uint %140422 %int_1
-      %76146 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %76145
-      %76147 = OpLoad %_arr_float_uint_2 %76146
-     %107585 = OpCompositeExtract %float %76147 0
-     %107586 = OpCompositeExtract %float %76147 1
-               OpBranch %76149
-      %76135 = OpLabel
-      %76137 = OpIAdd %uint %140424 %int_1
-      %76138 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %76139 = OpLoad %float %76138
-               OpBranch %76149
-      %76148 = OpLabel
-               OpUnreachable
-      %76149 = OpLabel
-     %156962 = OpPhi %uint %76137 %76135 %140424 %76143
-     %156760 = OpPhi %uint %140422 %76135 %76145 %76143
-     %155833 = OpPhi %float %76139 %76135 %107585 %76143
-     %155832 = OpPhi %float %76139 %76135 %107586 %76143
-      %67603 = OpCompositeConstruct %v2float %155833 %155833
-      %67604 = OpFMod %v2float %155828 %67603
-      %67610 = OpCompositeConstruct %v2float %155832 %155832
-      %67611 = OpFMod %v2float %155828 %67610
-      %67618 = OpFMod %v2float %155827 %67603
-      %67625 = OpFMod %v2float %155827 %67610
-      %67635 = OpExtInst %v2float %1 FMin %67618 %67625
-      %67636 = OpExtInst %v2float %1 FMin %67611 %67635
-      %67637 = OpExtInst %v2float %1 FMin %67604 %67636
-      %67647 = OpExtInst %v2float %1 FMax %67618 %67625
-      %67648 = OpExtInst %v2float %1 FMax %67611 %67647
-      %67649 = OpExtInst %v2float %1 FMax %67604 %67648
-     %108680 = OpCompositeConstruct %_arr_v2float_uint_2 %67637 %67649
-      %76153 = OpIAdd %uint %155837 %int_1
-      %76155 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %155837
-               OpStore %76155 %108680
-               OpBranch %74338
-      %67523 = OpLabel
-      %67526 = OpLoad %uint %65920
-      %67527 = OpBitwiseAnd %uint %67526 %uint_32768
-      %67528 = OpUGreaterThan %bool %67527 %uint_0
-               OpSelectionMerge %76075 None
-               OpSwitch %uint_0 %76059
-      %76059 = OpLabel
-               OpSelectionMerge %76074 None
-               OpBranchConditional %67528 %76061 %76069
-      %76069 = OpLabel
-      %76071 = OpISub %uint %140443 %int_1
-      %76072 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %76071
-      %76073 = OpLoad %_arr_v2float_uint_2 %76072
-     %107612 = OpCompositeExtract %v2float %76073 0
-     %107613 = OpCompositeExtract %v2float %76073 1
-               OpBranch %76075
-      %76061 = OpLabel
-      %76063 = OpIAdd %uint %141789 %int_1
-      %76064 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %76065 = OpLoad %v2float %76064
-               OpBranch %76075
-      %76074 = OpLabel
-               OpUnreachable
-      %76075 = OpLabel
-     %155842 = OpPhi %uint %76063 %76061 %141789 %76069
-     %155841 = OpPhi %uint %140443 %76061 %76071 %76069
-     %155839 = OpPhi %v2float %76065 %76061 %107612 %76069
-     %155838 = OpPhi %v2float %76065 %76061 %107613 %76069
-      %67532 = OpLoad %uint %65920
-      %67533 = OpBitwiseAnd %uint %67532 %uint_16384
-      %67534 = OpUGreaterThan %bool %67533 %uint_0
-               OpSelectionMerge %76098 None
-               OpSwitch %uint_0 %76082
-      %76082 = OpLabel
-               OpSelectionMerge %76097 None
-               OpBranchConditional %67534 %76084 %76092
-      %76092 = OpLabel
-      %76094 = OpISub %uint %155841 %int_1
-      %76095 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %76094
-      %76096 = OpLoad %_arr_v2float_uint_2 %76095
-     %107603 = OpCompositeExtract %v2float %76096 0
-     %107604 = OpCompositeExtract %v2float %76096 1
-               OpBranch %76098
-      %76084 = OpLabel
-      %76086 = OpIAdd %uint %155842 %int_1
-      %76087 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %155842
-      %76088 = OpLoad %v2float %76087
-               OpBranch %76098
-      %76097 = OpLabel
-               OpUnreachable
-      %76098 = OpLabel
-     %226880 = OpPhi %uint %76086 %76084 %155842 %76092
-     %155847 = OpPhi %uint %155841 %76084 %76094 %76092
-     %155844 = OpPhi %v2float %76088 %76084 %107603 %76092
-     %155843 = OpPhi %v2float %76088 %76084 %107604 %76092
-      %67540 = OpFMod %v2float %155839 %155844
-      %67546 = OpFMod %v2float %155839 %155843
-      %67552 = OpFMod %v2float %155838 %155844
-      %67558 = OpFMod %v2float %155838 %155843
-      %67568 = OpExtInst %v2float %1 FMin %67552 %67558
-      %67569 = OpExtInst %v2float %1 FMin %67546 %67568
-      %67570 = OpExtInst %v2float %1 FMin %67540 %67569
-      %67580 = OpExtInst %v2float %1 FMax %67552 %67558
-      %67581 = OpExtInst %v2float %1 FMax %67546 %67580
-      %67582 = OpExtInst %v2float %1 FMax %67540 %67581
-     %108665 = OpCompositeConstruct %_arr_v2float_uint_2 %67570 %67582
-      %76102 = OpIAdd %uint %155847 %int_1
-      %76104 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %155847
-               OpStore %76104 %108665
-               OpBranch %74338
-      %67460 = OpLabel
-      %67463 = OpLoad %uint %65920
-      %67464 = OpBitwiseAnd %uint %67463 %uint_32768
-      %67465 = OpUGreaterThan %bool %67464 %uint_0
-               OpSelectionMerge %76024 None
-               OpSwitch %uint_0 %76008
-      %76008 = OpLabel
-               OpSelectionMerge %76023 None
-               OpBranchConditional %67465 %76010 %76018
-      %76018 = OpLabel
-      %76020 = OpISub %uint %140422 %int_1
-      %76021 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %76020
-      %76022 = OpLoad %_arr_float_uint_2 %76021
-     %107630 = OpCompositeExtract %float %76022 0
-     %107631 = OpCompositeExtract %float %76022 1
-               OpBranch %76024
-      %76010 = OpLabel
-      %76012 = OpIAdd %uint %140424 %int_1
-      %76013 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %76014 = OpLoad %float %76013
-               OpBranch %76024
-      %76023 = OpLabel
-               OpUnreachable
-      %76024 = OpLabel
-     %155852 = OpPhi %uint %76012 %76010 %140424 %76018
-     %155851 = OpPhi %uint %140422 %76010 %76020 %76018
-     %155849 = OpPhi %float %76014 %76010 %107630 %76018
-     %155848 = OpPhi %float %76014 %76010 %107631 %76018
-      %67469 = OpLoad %uint %65920
-      %67470 = OpBitwiseAnd %uint %67469 %uint_16384
-      %67471 = OpUGreaterThan %bool %67470 %uint_0
-               OpSelectionMerge %76047 None
-               OpSwitch %uint_0 %76031
-      %76031 = OpLabel
-               OpSelectionMerge %76046 None
-               OpBranchConditional %67471 %76033 %76041
-      %76041 = OpLabel
-      %76043 = OpISub %uint %155851 %int_1
-      %76044 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %76043
-      %76045 = OpLoad %_arr_float_uint_2 %76044
-     %107621 = OpCompositeExtract %float %76045 0
-     %107622 = OpCompositeExtract %float %76045 1
-               OpBranch %76047
-      %76033 = OpLabel
-      %76035 = OpIAdd %uint %155852 %int_1
-      %76036 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %155852
-      %76037 = OpLoad %float %76036
-               OpBranch %76047
-      %76046 = OpLabel
-               OpUnreachable
-      %76047 = OpLabel
-     %156959 = OpPhi %uint %76035 %76033 %155852 %76041
-     %155857 = OpPhi %uint %155851 %76033 %76043 %76041
-     %155854 = OpPhi %float %76037 %76033 %107621 %76041
-     %155853 = OpPhi %float %76037 %76033 %107622 %76041
-      %67477 = OpFMod %float %155849 %155854
-      %67483 = OpFMod %float %155849 %155853
-      %67489 = OpFMod %float %155848 %155854
-      %67495 = OpFMod %float %155848 %155853
-      %67505 = OpExtInst %float %1 FMin %67489 %67495
-      %67506 = OpExtInst %float %1 FMin %67483 %67505
-      %67507 = OpExtInst %float %1 FMin %67477 %67506
-      %67517 = OpExtInst %float %1 FMax %67489 %67495
-      %67518 = OpExtInst %float %1 FMax %67483 %67517
-      %67519 = OpExtInst %float %1 FMax %67477 %67518
-     %108650 = OpCompositeConstruct %_arr_float_uint_2 %67507 %67519
-      %76051 = OpIAdd %uint %155857 %int_1
-      %76053 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %155857
-               OpStore %76053 %108650
-               OpBranch %74338
-      %67397 = OpLabel
-      %67400 = OpLoad %uint %65920
-      %67401 = OpBitwiseAnd %uint %67400 %uint_32768
-      %67402 = OpUGreaterThan %bool %67401 %uint_0
-               OpSelectionMerge %75973 None
-               OpSwitch %uint_0 %75957
-      %75957 = OpLabel
-               OpSelectionMerge %75972 None
-               OpBranchConditional %67402 %75959 %75967
-      %75967 = OpLabel
-      %75969 = OpISub %uint %140441 %int_1
-      %75970 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %75969
-      %75971 = OpLoad %_arr_v4float_uint_2 %75970
-     %107648 = OpCompositeExtract %v4float %75971 0
-     %107649 = OpCompositeExtract %v4float %75971 1
-               OpBranch %75973
-      %75959 = OpLabel
-      %75961 = OpIAdd %uint %140467 %int_1
-      %75962 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %75963 = OpLoad %v4float %75962
-               OpBranch %75973
-      %75972 = OpLabel
-               OpUnreachable
-      %75973 = OpLabel
-     %155862 = OpPhi %uint %75961 %75959 %140467 %75967
-     %155861 = OpPhi %uint %140441 %75959 %75969 %75967
-     %155859 = OpPhi %v4float %75963 %75959 %107648 %75967
-     %155858 = OpPhi %v4float %75963 %75959 %107649 %75967
-      %67406 = OpLoad %uint %65920
-      %67407 = OpBitwiseAnd %uint %67406 %uint_16384
-      %67408 = OpUGreaterThan %bool %67407 %uint_0
-               OpSelectionMerge %75996 None
-               OpSwitch %uint_0 %75980
-      %75980 = OpLabel
-               OpSelectionMerge %75995 None
-               OpBranchConditional %67408 %75982 %75990
-      %75990 = OpLabel
-      %75992 = OpISub %uint %155861 %int_1
-      %75993 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %75992
-      %75994 = OpLoad %_arr_v4float_uint_2 %75993
-     %107639 = OpCompositeExtract %v4float %75994 0
-     %107640 = OpCompositeExtract %v4float %75994 1
-               OpBranch %75996
-      %75982 = OpLabel
-      %75984 = OpIAdd %uint %155862 %int_1
-      %75985 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %155862
-      %75986 = OpLoad %v4float %75985
-               OpBranch %75996
-      %75995 = OpLabel
-               OpUnreachable
-      %75996 = OpLabel
-     %225297 = OpPhi %uint %75984 %75982 %155862 %75990
-     %155867 = OpPhi %uint %155861 %75982 %75992 %75990
-     %155864 = OpPhi %v4float %75986 %75982 %107639 %75990
-     %155863 = OpPhi %v4float %75986 %75982 %107640 %75990
-      %67414 = OpExtInst %v4float %1 Pow %155859 %155864
-      %67420 = OpExtInst %v4float %1 Pow %155859 %155863
-      %67426 = OpExtInst %v4float %1 Pow %155858 %155864
-      %67432 = OpExtInst %v4float %1 Pow %155858 %155863
-      %67442 = OpExtInst %v4float %1 FMin %67426 %67432
-      %67443 = OpExtInst %v4float %1 FMin %67420 %67442
-      %67444 = OpExtInst %v4float %1 FMin %67414 %67443
-      %67454 = OpExtInst %v4float %1 FMax %67426 %67432
-      %67455 = OpExtInst %v4float %1 FMax %67420 %67454
-      %67456 = OpExtInst %v4float %1 FMax %67414 %67455
-     %108635 = OpCompositeConstruct %_arr_v4float_uint_2 %67444 %67456
-      %76000 = OpIAdd %uint %155867 %int_1
-      %76002 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %155867
-               OpStore %76002 %108635
-               OpBranch %74338
-      %67334 = OpLabel
-      %67337 = OpLoad %uint %65920
-      %67338 = OpBitwiseAnd %uint %67337 %uint_32768
-      %67339 = OpUGreaterThan %bool %67338 %uint_0
-               OpSelectionMerge %75922 None
-               OpSwitch %uint_0 %75906
-      %75906 = OpLabel
-               OpSelectionMerge %75921 None
-               OpBranchConditional %67339 %75908 %75916
-      %75916 = OpLabel
-      %75918 = OpISub %uint %140432 %int_1
-      %75919 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %75918
-      %75920 = OpLoad %_arr_v3float_uint_2 %75919
-     %107666 = OpCompositeExtract %v3float %75920 0
-     %107667 = OpCompositeExtract %v3float %75920 1
-               OpBranch %75922
-      %75908 = OpLabel
-      %75910 = OpIAdd %uint %140435 %int_1
-      %75911 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %75912 = OpLoad %v3float %75911
-               OpBranch %75922
-      %75921 = OpLabel
-               OpUnreachable
-      %75922 = OpLabel
-     %155872 = OpPhi %uint %75910 %75908 %140435 %75916
-     %155871 = OpPhi %uint %140432 %75908 %75918 %75916
-     %155869 = OpPhi %v3float %75912 %75908 %107666 %75916
-     %155868 = OpPhi %v3float %75912 %75908 %107667 %75916
-      %67343 = OpLoad %uint %65920
-      %67344 = OpBitwiseAnd %uint %67343 %uint_16384
-      %67345 = OpUGreaterThan %bool %67344 %uint_0
-               OpSelectionMerge %75945 None
-               OpSwitch %uint_0 %75929
-      %75929 = OpLabel
-               OpSelectionMerge %75944 None
-               OpBranchConditional %67345 %75931 %75939
-      %75939 = OpLabel
-      %75941 = OpISub %uint %155871 %int_1
-      %75942 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %75941
-      %75943 = OpLoad %_arr_v3float_uint_2 %75942
-     %107657 = OpCompositeExtract %v3float %75943 0
-     %107658 = OpCompositeExtract %v3float %75943 1
-               OpBranch %75945
-      %75931 = OpLabel
-      %75933 = OpIAdd %uint %155872 %int_1
-      %75934 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %155872
-      %75935 = OpLoad %v3float %75934
-               OpBranch %75945
-      %75944 = OpLabel
-               OpUnreachable
-      %75945 = OpLabel
-     %224522 = OpPhi %uint %75933 %75931 %155872 %75939
-     %155877 = OpPhi %uint %155871 %75931 %75941 %75939
-     %155874 = OpPhi %v3float %75935 %75931 %107657 %75939
-     %155873 = OpPhi %v3float %75935 %75931 %107658 %75939
-      %67351 = OpExtInst %v3float %1 Pow %155869 %155874
-      %67357 = OpExtInst %v3float %1 Pow %155869 %155873
-      %67363 = OpExtInst %v3float %1 Pow %155868 %155874
-      %67369 = OpExtInst %v3float %1 Pow %155868 %155873
-      %67379 = OpExtInst %v3float %1 FMin %67363 %67369
-      %67380 = OpExtInst %v3float %1 FMin %67357 %67379
-      %67381 = OpExtInst %v3float %1 FMin %67351 %67380
-      %67391 = OpExtInst %v3float %1 FMax %67363 %67369
-      %67392 = OpExtInst %v3float %1 FMax %67357 %67391
-      %67393 = OpExtInst %v3float %1 FMax %67351 %67392
-     %108620 = OpCompositeConstruct %_arr_v3float_uint_2 %67381 %67393
-      %75949 = OpIAdd %uint %155877 %int_1
-      %75951 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %155877
-               OpStore %75951 %108620
-               OpBranch %74338
-      %67271 = OpLabel
-      %67274 = OpLoad %uint %65920
-      %67275 = OpBitwiseAnd %uint %67274 %uint_32768
-      %67276 = OpUGreaterThan %bool %67275 %uint_0
-               OpSelectionMerge %75871 None
-               OpSwitch %uint_0 %75855
-      %75855 = OpLabel
-               OpSelectionMerge %75870 None
-               OpBranchConditional %67276 %75857 %75865
-      %75865 = OpLabel
-      %75867 = OpISub %uint %140443 %int_1
-      %75868 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %75867
-      %75869 = OpLoad %_arr_v2float_uint_2 %75868
-     %107684 = OpCompositeExtract %v2float %75869 0
-     %107685 = OpCompositeExtract %v2float %75869 1
-               OpBranch %75871
-      %75857 = OpLabel
-      %75859 = OpIAdd %uint %141789 %int_1
-      %75860 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %75861 = OpLoad %v2float %75860
-               OpBranch %75871
-      %75870 = OpLabel
-               OpUnreachable
-      %75871 = OpLabel
-     %155882 = OpPhi %uint %75859 %75857 %141789 %75865
-     %155881 = OpPhi %uint %140443 %75857 %75867 %75865
-     %155879 = OpPhi %v2float %75861 %75857 %107684 %75865
-     %155878 = OpPhi %v2float %75861 %75857 %107685 %75865
-      %67280 = OpLoad %uint %65920
-      %67281 = OpBitwiseAnd %uint %67280 %uint_16384
-      %67282 = OpUGreaterThan %bool %67281 %uint_0
-               OpSelectionMerge %75894 None
-               OpSwitch %uint_0 %75878
-      %75878 = OpLabel
-               OpSelectionMerge %75893 None
-               OpBranchConditional %67282 %75880 %75888
-      %75888 = OpLabel
-      %75890 = OpISub %uint %155881 %int_1
-      %75891 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %75890
-      %75892 = OpLoad %_arr_v2float_uint_2 %75891
-     %107675 = OpCompositeExtract %v2float %75892 0
-     %107676 = OpCompositeExtract %v2float %75892 1
-               OpBranch %75894
-      %75880 = OpLabel
-      %75882 = OpIAdd %uint %155882 %int_1
-      %75883 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %155882
-      %75884 = OpLoad %v2float %75883
-               OpBranch %75894
-      %75893 = OpLabel
-               OpUnreachable
-      %75894 = OpLabel
-     %226873 = OpPhi %uint %75882 %75880 %155882 %75888
-     %155887 = OpPhi %uint %155881 %75880 %75890 %75888
-     %155884 = OpPhi %v2float %75884 %75880 %107675 %75888
-     %155883 = OpPhi %v2float %75884 %75880 %107676 %75888
-      %67288 = OpExtInst %v2float %1 Pow %155879 %155884
-      %67294 = OpExtInst %v2float %1 Pow %155879 %155883
-      %67300 = OpExtInst %v2float %1 Pow %155878 %155884
-      %67306 = OpExtInst %v2float %1 Pow %155878 %155883
-      %67316 = OpExtInst %v2float %1 FMin %67300 %67306
-      %67317 = OpExtInst %v2float %1 FMin %67294 %67316
-      %67318 = OpExtInst %v2float %1 FMin %67288 %67317
-      %67328 = OpExtInst %v2float %1 FMax %67300 %67306
-      %67329 = OpExtInst %v2float %1 FMax %67294 %67328
-      %67330 = OpExtInst %v2float %1 FMax %67288 %67329
-     %108605 = OpCompositeConstruct %_arr_v2float_uint_2 %67318 %67330
-      %75898 = OpIAdd %uint %155887 %int_1
-      %75900 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %155887
-               OpStore %75900 %108605
-               OpBranch %74338
-      %67208 = OpLabel
-      %67211 = OpLoad %uint %65920
-      %67212 = OpBitwiseAnd %uint %67211 %uint_32768
-      %67213 = OpUGreaterThan %bool %67212 %uint_0
-               OpSelectionMerge %75820 None
-               OpSwitch %uint_0 %75804
-      %75804 = OpLabel
-               OpSelectionMerge %75819 None
-               OpBranchConditional %67213 %75806 %75814
-      %75814 = OpLabel
-      %75816 = OpISub %uint %140422 %int_1
-      %75817 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75816
-      %75818 = OpLoad %_arr_float_uint_2 %75817
-     %107702 = OpCompositeExtract %float %75818 0
-     %107703 = OpCompositeExtract %float %75818 1
-               OpBranch %75820
-      %75806 = OpLabel
-      %75808 = OpIAdd %uint %140424 %int_1
-      %75809 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %75810 = OpLoad %float %75809
-               OpBranch %75820
-      %75819 = OpLabel
-               OpUnreachable
-      %75820 = OpLabel
-     %155892 = OpPhi %uint %75808 %75806 %140424 %75814
-     %155891 = OpPhi %uint %140422 %75806 %75816 %75814
-     %155889 = OpPhi %float %75810 %75806 %107702 %75814
-     %155888 = OpPhi %float %75810 %75806 %107703 %75814
-      %67217 = OpLoad %uint %65920
-      %67218 = OpBitwiseAnd %uint %67217 %uint_16384
-      %67219 = OpUGreaterThan %bool %67218 %uint_0
-               OpSelectionMerge %75843 None
-               OpSwitch %uint_0 %75827
-      %75827 = OpLabel
-               OpSelectionMerge %75842 None
-               OpBranchConditional %67219 %75829 %75837
-      %75837 = OpLabel
-      %75839 = OpISub %uint %155891 %int_1
-      %75840 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75839
-      %75841 = OpLoad %_arr_float_uint_2 %75840
-     %107693 = OpCompositeExtract %float %75841 0
-     %107694 = OpCompositeExtract %float %75841 1
-               OpBranch %75843
-      %75829 = OpLabel
-      %75831 = OpIAdd %uint %155892 %int_1
-      %75832 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %155892
-      %75833 = OpLoad %float %75832
-               OpBranch %75843
-      %75842 = OpLabel
-               OpUnreachable
-      %75843 = OpLabel
-     %156952 = OpPhi %uint %75831 %75829 %155892 %75837
-     %155897 = OpPhi %uint %155891 %75829 %75839 %75837
-     %155894 = OpPhi %float %75833 %75829 %107693 %75837
-     %155893 = OpPhi %float %75833 %75829 %107694 %75837
-      %67225 = OpExtInst %float %1 Pow %155889 %155894
-      %67231 = OpExtInst %float %1 Pow %155889 %155893
-      %67237 = OpExtInst %float %1 Pow %155888 %155894
-      %67243 = OpExtInst %float %1 Pow %155888 %155893
-      %67253 = OpExtInst %float %1 FMin %67237 %67243
-      %67254 = OpExtInst %float %1 FMin %67231 %67253
-      %67255 = OpExtInst %float %1 FMin %67225 %67254
-      %67265 = OpExtInst %float %1 FMax %67237 %67243
-      %67266 = OpExtInst %float %1 FMax %67231 %67265
-      %67267 = OpExtInst %float %1 FMax %67225 %67266
-     %108590 = OpCompositeConstruct %_arr_float_uint_2 %67255 %67267
-      %75847 = OpIAdd %uint %155897 %int_1
-      %75849 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %155897
-               OpStore %75849 %108590
-               OpBranch %74338
-      %67141 = OpLabel
-      %67144 = OpLoad %uint %65920
-      %67145 = OpBitwiseAnd %uint %67144 %uint_32768
-      %67146 = OpUGreaterThan %bool %67145 %uint_0
-               OpSelectionMerge %75769 None
-               OpSwitch %uint_0 %75753
-      %75753 = OpLabel
-               OpSelectionMerge %75768 None
-               OpBranchConditional %67146 %75755 %75763
-      %75763 = OpLabel
-      %75765 = OpISub %uint %140441 %int_1
-      %75766 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %75765
-      %75767 = OpLoad %_arr_v4float_uint_2 %75766
-     %107720 = OpCompositeExtract %v4float %75767 0
-     %107721 = OpCompositeExtract %v4float %75767 1
-               OpBranch %75769
-      %75755 = OpLabel
-      %75757 = OpIAdd %uint %140467 %int_1
-      %75758 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %75759 = OpLoad %v4float %75758
-               OpBranch %75769
-      %75768 = OpLabel
-               OpUnreachable
-      %75769 = OpLabel
-     %225290 = OpPhi %uint %75757 %75755 %140467 %75763
-     %155908 = OpPhi %uint %140441 %75755 %75765 %75763
-     %155899 = OpPhi %v4float %75759 %75755 %107720 %75763
-     %155898 = OpPhi %v4float %75759 %75755 %107721 %75763
-      %67150 = OpLoad %uint %65920
-      %67151 = OpBitwiseAnd %uint %67150 %uint_16384
-      %67152 = OpUGreaterThan %bool %67151 %uint_0
-               OpSelectionMerge %75792 None
-               OpSwitch %uint_0 %75776
-      %75776 = OpLabel
-               OpSelectionMerge %75791 None
-               OpBranchConditional %67152 %75778 %75786
-      %75786 = OpLabel
-      %75788 = OpISub %uint %140422 %int_1
-      %75789 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75788
-      %75790 = OpLoad %_arr_float_uint_2 %75789
-     %107711 = OpCompositeExtract %float %75790 0
-     %107712 = OpCompositeExtract %float %75790 1
-               OpBranch %75792
-      %75778 = OpLabel
-      %75780 = OpIAdd %uint %140424 %int_1
-      %75781 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %75782 = OpLoad %float %75781
-               OpBranch %75792
-      %75791 = OpLabel
-               OpUnreachable
-      %75792 = OpLabel
-     %156951 = OpPhi %uint %75780 %75778 %140424 %75786
-     %156751 = OpPhi %uint %140422 %75778 %75788 %75786
-     %155904 = OpPhi %float %75782 %75778 %107711 %75786
-     %155903 = OpPhi %float %75782 %75778 %107712 %75786
-      %67158 = OpCompositeConstruct %v4float %155904 %155904 %155904 %155904
-      %67159 = OpFDiv %v4float %155899 %67158
-      %67165 = OpCompositeConstruct %v4float %155903 %155903 %155903 %155903
-      %67166 = OpFDiv %v4float %155899 %67165
-      %67173 = OpFDiv %v4float %155898 %67158
-      %67180 = OpFDiv %v4float %155898 %67165
-      %67190 = OpExtInst %v4float %1 FMin %67173 %67180
-      %67191 = OpExtInst %v4float %1 FMin %67166 %67190
-      %67192 = OpExtInst %v4float %1 FMin %67159 %67191
-      %67202 = OpExtInst %v4float %1 FMax %67173 %67180
-      %67203 = OpExtInst %v4float %1 FMax %67166 %67202
-      %67204 = OpExtInst %v4float %1 FMax %67159 %67203
-     %108575 = OpCompositeConstruct %_arr_v4float_uint_2 %67192 %67204
-      %75796 = OpIAdd %uint %155908 %int_1
-      %75798 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %155908
-               OpStore %75798 %108575
-               OpBranch %74338
-      %67078 = OpLabel
-      %67081 = OpLoad %uint %65920
-      %67082 = OpBitwiseAnd %uint %67081 %uint_32768
-      %67083 = OpUGreaterThan %bool %67082 %uint_0
-               OpSelectionMerge %75718 None
-               OpSwitch %uint_0 %75702
-      %75702 = OpLabel
-               OpSelectionMerge %75717 None
-               OpBranchConditional %67083 %75704 %75712
-      %75712 = OpLabel
-      %75714 = OpISub %uint %140441 %int_1
-      %75715 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %75714
-      %75716 = OpLoad %_arr_v4float_uint_2 %75715
-     %107738 = OpCompositeExtract %v4float %75716 0
-     %107739 = OpCompositeExtract %v4float %75716 1
-               OpBranch %75718
-      %75704 = OpLabel
-      %75706 = OpIAdd %uint %140467 %int_1
-      %75707 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %75708 = OpLoad %v4float %75707
-               OpBranch %75718
-      %75717 = OpLabel
-               OpUnreachable
-      %75718 = OpLabel
-     %155913 = OpPhi %uint %75706 %75704 %140467 %75712
-     %155912 = OpPhi %uint %140441 %75704 %75714 %75712
-     %155910 = OpPhi %v4float %75708 %75704 %107738 %75712
-     %155909 = OpPhi %v4float %75708 %75704 %107739 %75712
-      %67087 = OpLoad %uint %65920
-      %67088 = OpBitwiseAnd %uint %67087 %uint_16384
-      %67089 = OpUGreaterThan %bool %67088 %uint_0
-               OpSelectionMerge %75741 None
-               OpSwitch %uint_0 %75725
-      %75725 = OpLabel
-               OpSelectionMerge %75740 None
-               OpBranchConditional %67089 %75727 %75735
-      %75735 = OpLabel
-      %75737 = OpISub %uint %155912 %int_1
-      %75738 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %75737
-      %75739 = OpLoad %_arr_v4float_uint_2 %75738
-     %107729 = OpCompositeExtract %v4float %75739 0
-     %107730 = OpCompositeExtract %v4float %75739 1
-               OpBranch %75741
-      %75727 = OpLabel
-      %75729 = OpIAdd %uint %155913 %int_1
-      %75730 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %155913
-      %75731 = OpLoad %v4float %75730
-               OpBranch %75741
-      %75740 = OpLabel
-               OpUnreachable
-      %75741 = OpLabel
-     %225288 = OpPhi %uint %75729 %75727 %155913 %75735
-     %155918 = OpPhi %uint %155912 %75727 %75737 %75735
-     %155915 = OpPhi %v4float %75731 %75727 %107729 %75735
-     %155914 = OpPhi %v4float %75731 %75727 %107730 %75735
-      %67095 = OpFDiv %v4float %155910 %155915
-      %67101 = OpFDiv %v4float %155910 %155914
-      %67107 = OpFDiv %v4float %155909 %155915
-      %67113 = OpFDiv %v4float %155909 %155914
-      %67123 = OpExtInst %v4float %1 FMin %67107 %67113
-      %67124 = OpExtInst %v4float %1 FMin %67101 %67123
-      %67125 = OpExtInst %v4float %1 FMin %67095 %67124
-      %67135 = OpExtInst %v4float %1 FMax %67107 %67113
-      %67136 = OpExtInst %v4float %1 FMax %67101 %67135
-      %67137 = OpExtInst %v4float %1 FMax %67095 %67136
-     %108560 = OpCompositeConstruct %_arr_v4float_uint_2 %67125 %67137
-      %75745 = OpIAdd %uint %155918 %int_1
-      %75747 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %155918
-               OpStore %75747 %108560
-               OpBranch %74338
-      %67011 = OpLabel
-      %67014 = OpLoad %uint %65920
-      %67015 = OpBitwiseAnd %uint %67014 %uint_32768
-      %67016 = OpUGreaterThan %bool %67015 %uint_0
-               OpSelectionMerge %75667 None
-               OpSwitch %uint_0 %75651
-      %75651 = OpLabel
-               OpSelectionMerge %75666 None
-               OpBranchConditional %67016 %75653 %75661
-      %75661 = OpLabel
-      %75663 = OpISub %uint %140432 %int_1
-      %75664 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %75663
-      %75665 = OpLoad %_arr_v3float_uint_2 %75664
-     %107756 = OpCompositeExtract %v3float %75665 0
-     %107757 = OpCompositeExtract %v3float %75665 1
-               OpBranch %75667
-      %75653 = OpLabel
-      %75655 = OpIAdd %uint %140435 %int_1
-      %75656 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %75657 = OpLoad %v3float %75656
-               OpBranch %75667
-      %75666 = OpLabel
-               OpUnreachable
-      %75667 = OpLabel
-     %224513 = OpPhi %uint %75655 %75653 %140435 %75661
-     %155929 = OpPhi %uint %140432 %75653 %75663 %75661
-     %155920 = OpPhi %v3float %75657 %75653 %107756 %75661
-     %155919 = OpPhi %v3float %75657 %75653 %107757 %75661
-      %67020 = OpLoad %uint %65920
-      %67021 = OpBitwiseAnd %uint %67020 %uint_16384
-      %67022 = OpUGreaterThan %bool %67021 %uint_0
-               OpSelectionMerge %75690 None
-               OpSwitch %uint_0 %75674
-      %75674 = OpLabel
-               OpSelectionMerge %75689 None
-               OpBranchConditional %67022 %75676 %75684
-      %75684 = OpLabel
-      %75686 = OpISub %uint %140422 %int_1
-      %75687 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75686
-      %75688 = OpLoad %_arr_float_uint_2 %75687
-     %107747 = OpCompositeExtract %float %75688 0
-     %107748 = OpCompositeExtract %float %75688 1
-               OpBranch %75690
-      %75676 = OpLabel
-      %75678 = OpIAdd %uint %140424 %int_1
-      %75679 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %75680 = OpLoad %float %75679
-               OpBranch %75690
-      %75689 = OpLabel
-               OpUnreachable
-      %75690 = OpLabel
-     %156948 = OpPhi %uint %75678 %75676 %140424 %75684
-     %156748 = OpPhi %uint %140422 %75676 %75686 %75684
-     %155925 = OpPhi %float %75680 %75676 %107747 %75684
-     %155924 = OpPhi %float %75680 %75676 %107748 %75684
-      %67028 = OpCompositeConstruct %v3float %155925 %155925 %155925
-      %67029 = OpFDiv %v3float %155920 %67028
-      %67035 = OpCompositeConstruct %v3float %155924 %155924 %155924
-      %67036 = OpFDiv %v3float %155920 %67035
-      %67043 = OpFDiv %v3float %155919 %67028
-      %67050 = OpFDiv %v3float %155919 %67035
-      %67060 = OpExtInst %v3float %1 FMin %67043 %67050
-      %67061 = OpExtInst %v3float %1 FMin %67036 %67060
-      %67062 = OpExtInst %v3float %1 FMin %67029 %67061
-      %67072 = OpExtInst %v3float %1 FMax %67043 %67050
-      %67073 = OpExtInst %v3float %1 FMax %67036 %67072
-      %67074 = OpExtInst %v3float %1 FMax %67029 %67073
-     %108545 = OpCompositeConstruct %_arr_v3float_uint_2 %67062 %67074
-      %75694 = OpIAdd %uint %155929 %int_1
-      %75696 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %155929
-               OpStore %75696 %108545
-               OpBranch %74338
-      %66948 = OpLabel
-      %66951 = OpLoad %uint %65920
-      %66952 = OpBitwiseAnd %uint %66951 %uint_32768
-      %66953 = OpUGreaterThan %bool %66952 %uint_0
-               OpSelectionMerge %75616 None
-               OpSwitch %uint_0 %75600
-      %75600 = OpLabel
-               OpSelectionMerge %75615 None
-               OpBranchConditional %66953 %75602 %75610
-      %75610 = OpLabel
-      %75612 = OpISub %uint %140432 %int_1
-      %75613 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %75612
-      %75614 = OpLoad %_arr_v3float_uint_2 %75613
-     %107774 = OpCompositeExtract %v3float %75614 0
-     %107775 = OpCompositeExtract %v3float %75614 1
-               OpBranch %75616
-      %75602 = OpLabel
-      %75604 = OpIAdd %uint %140435 %int_1
-      %75605 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %75606 = OpLoad %v3float %75605
-               OpBranch %75616
-      %75615 = OpLabel
-               OpUnreachable
-      %75616 = OpLabel
-     %155934 = OpPhi %uint %75604 %75602 %140435 %75610
-     %155933 = OpPhi %uint %140432 %75602 %75612 %75610
-     %155931 = OpPhi %v3float %75606 %75602 %107774 %75610
-     %155930 = OpPhi %v3float %75606 %75602 %107775 %75610
-      %66957 = OpLoad %uint %65920
-      %66958 = OpBitwiseAnd %uint %66957 %uint_16384
-      %66959 = OpUGreaterThan %bool %66958 %uint_0
-               OpSelectionMerge %75639 None
-               OpSwitch %uint_0 %75623
-      %75623 = OpLabel
-               OpSelectionMerge %75638 None
-               OpBranchConditional %66959 %75625 %75633
-      %75633 = OpLabel
-      %75635 = OpISub %uint %155933 %int_1
-      %75636 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %75635
-      %75637 = OpLoad %_arr_v3float_uint_2 %75636
-     %107765 = OpCompositeExtract %v3float %75637 0
-     %107766 = OpCompositeExtract %v3float %75637 1
-               OpBranch %75639
-      %75625 = OpLabel
-      %75627 = OpIAdd %uint %155934 %int_1
-      %75628 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %155934
-      %75629 = OpLoad %v3float %75628
-               OpBranch %75639
-      %75638 = OpLabel
-               OpUnreachable
-      %75639 = OpLabel
-     %224511 = OpPhi %uint %75627 %75625 %155934 %75633
-     %155939 = OpPhi %uint %155933 %75625 %75635 %75633
-     %155936 = OpPhi %v3float %75629 %75625 %107765 %75633
-     %155935 = OpPhi %v3float %75629 %75625 %107766 %75633
-      %66965 = OpFDiv %v3float %155931 %155936
-      %66971 = OpFDiv %v3float %155931 %155935
-      %66977 = OpFDiv %v3float %155930 %155936
-      %66983 = OpFDiv %v3float %155930 %155935
-      %66993 = OpExtInst %v3float %1 FMin %66977 %66983
-      %66994 = OpExtInst %v3float %1 FMin %66971 %66993
-      %66995 = OpExtInst %v3float %1 FMin %66965 %66994
-      %67005 = OpExtInst %v3float %1 FMax %66977 %66983
-      %67006 = OpExtInst %v3float %1 FMax %66971 %67005
-      %67007 = OpExtInst %v3float %1 FMax %66965 %67006
-     %108530 = OpCompositeConstruct %_arr_v3float_uint_2 %66995 %67007
-      %75643 = OpIAdd %uint %155939 %int_1
-      %75645 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %155939
-               OpStore %75645 %108530
-               OpBranch %74338
-      %66881 = OpLabel
-      %66884 = OpLoad %uint %65920
-      %66885 = OpBitwiseAnd %uint %66884 %uint_32768
-      %66886 = OpUGreaterThan %bool %66885 %uint_0
-               OpSelectionMerge %75565 None
-               OpSwitch %uint_0 %75549
-      %75549 = OpLabel
-               OpSelectionMerge %75564 None
-               OpBranchConditional %66886 %75551 %75559
-      %75559 = OpLabel
-      %75561 = OpISub %uint %140443 %int_1
-      %75562 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %75561
-      %75563 = OpLoad %_arr_v2float_uint_2 %75562
-     %107792 = OpCompositeExtract %v2float %75563 0
-     %107793 = OpCompositeExtract %v2float %75563 1
-               OpBranch %75565
-      %75551 = OpLabel
-      %75553 = OpIAdd %uint %141789 %int_1
-      %75554 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %75555 = OpLoad %v2float %75554
-               OpBranch %75565
-      %75564 = OpLabel
-               OpUnreachable
-      %75565 = OpLabel
-     %226862 = OpPhi %uint %75553 %75551 %141789 %75559
-     %155950 = OpPhi %uint %140443 %75551 %75561 %75559
-     %155941 = OpPhi %v2float %75555 %75551 %107792 %75559
-     %155940 = OpPhi %v2float %75555 %75551 %107793 %75559
-      %66890 = OpLoad %uint %65920
-      %66891 = OpBitwiseAnd %uint %66890 %uint_16384
-      %66892 = OpUGreaterThan %bool %66891 %uint_0
-               OpSelectionMerge %75588 None
-               OpSwitch %uint_0 %75572
-      %75572 = OpLabel
-               OpSelectionMerge %75587 None
-               OpBranchConditional %66892 %75574 %75582
-      %75582 = OpLabel
-      %75584 = OpISub %uint %140422 %int_1
-      %75585 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75584
-      %75586 = OpLoad %_arr_float_uint_2 %75585
-     %107783 = OpCompositeExtract %float %75586 0
-     %107784 = OpCompositeExtract %float %75586 1
-               OpBranch %75588
-      %75574 = OpLabel
-      %75576 = OpIAdd %uint %140424 %int_1
-      %75577 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %75578 = OpLoad %float %75577
-               OpBranch %75588
-      %75587 = OpLabel
-               OpUnreachable
-      %75588 = OpLabel
-     %156945 = OpPhi %uint %75576 %75574 %140424 %75582
-     %156745 = OpPhi %uint %140422 %75574 %75584 %75582
-     %155946 = OpPhi %float %75578 %75574 %107783 %75582
-     %155945 = OpPhi %float %75578 %75574 %107784 %75582
-      %66898 = OpCompositeConstruct %v2float %155946 %155946
-      %66899 = OpFDiv %v2float %155941 %66898
-      %66905 = OpCompositeConstruct %v2float %155945 %155945
-      %66906 = OpFDiv %v2float %155941 %66905
-      %66913 = OpFDiv %v2float %155940 %66898
-      %66920 = OpFDiv %v2float %155940 %66905
-      %66930 = OpExtInst %v2float %1 FMin %66913 %66920
-      %66931 = OpExtInst %v2float %1 FMin %66906 %66930
-      %66932 = OpExtInst %v2float %1 FMin %66899 %66931
-      %66942 = OpExtInst %v2float %1 FMax %66913 %66920
-      %66943 = OpExtInst %v2float %1 FMax %66906 %66942
-      %66944 = OpExtInst %v2float %1 FMax %66899 %66943
-     %108515 = OpCompositeConstruct %_arr_v2float_uint_2 %66932 %66944
-      %75592 = OpIAdd %uint %155950 %int_1
-      %75594 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %155950
-               OpStore %75594 %108515
-               OpBranch %74338
-      %66818 = OpLabel
-      %66821 = OpLoad %uint %65920
-      %66822 = OpBitwiseAnd %uint %66821 %uint_32768
-      %66823 = OpUGreaterThan %bool %66822 %uint_0
-               OpSelectionMerge %75514 None
-               OpSwitch %uint_0 %75498
-      %75498 = OpLabel
-               OpSelectionMerge %75513 None
-               OpBranchConditional %66823 %75500 %75508
-      %75508 = OpLabel
-      %75510 = OpISub %uint %140443 %int_1
-      %75511 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %75510
-      %75512 = OpLoad %_arr_v2float_uint_2 %75511
-     %107810 = OpCompositeExtract %v2float %75512 0
-     %107811 = OpCompositeExtract %v2float %75512 1
-               OpBranch %75514
-      %75500 = OpLabel
-      %75502 = OpIAdd %uint %141789 %int_1
-      %75503 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %75504 = OpLoad %v2float %75503
-               OpBranch %75514
-      %75513 = OpLabel
-               OpUnreachable
-      %75514 = OpLabel
-     %155955 = OpPhi %uint %75502 %75500 %141789 %75508
-     %155954 = OpPhi %uint %140443 %75500 %75510 %75508
-     %155952 = OpPhi %v2float %75504 %75500 %107810 %75508
-     %155951 = OpPhi %v2float %75504 %75500 %107811 %75508
-      %66827 = OpLoad %uint %65920
-      %66828 = OpBitwiseAnd %uint %66827 %uint_16384
-      %66829 = OpUGreaterThan %bool %66828 %uint_0
-               OpSelectionMerge %75537 None
-               OpSwitch %uint_0 %75521
-      %75521 = OpLabel
-               OpSelectionMerge %75536 None
-               OpBranchConditional %66829 %75523 %75531
-      %75531 = OpLabel
-      %75533 = OpISub %uint %155954 %int_1
-      %75534 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %75533
-      %75535 = OpLoad %_arr_v2float_uint_2 %75534
-     %107801 = OpCompositeExtract %v2float %75535 0
-     %107802 = OpCompositeExtract %v2float %75535 1
-               OpBranch %75537
-      %75523 = OpLabel
-      %75525 = OpIAdd %uint %155955 %int_1
-      %75526 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %155955
-      %75527 = OpLoad %v2float %75526
-               OpBranch %75537
-      %75536 = OpLabel
-               OpUnreachable
-      %75537 = OpLabel
-     %226860 = OpPhi %uint %75525 %75523 %155955 %75531
-     %155960 = OpPhi %uint %155954 %75523 %75533 %75531
-     %155957 = OpPhi %v2float %75527 %75523 %107801 %75531
-     %155956 = OpPhi %v2float %75527 %75523 %107802 %75531
-      %66835 = OpFDiv %v2float %155952 %155957
-      %66841 = OpFDiv %v2float %155952 %155956
-      %66847 = OpFDiv %v2float %155951 %155957
-      %66853 = OpFDiv %v2float %155951 %155956
-      %66863 = OpExtInst %v2float %1 FMin %66847 %66853
-      %66864 = OpExtInst %v2float %1 FMin %66841 %66863
-      %66865 = OpExtInst %v2float %1 FMin %66835 %66864
-      %66875 = OpExtInst %v2float %1 FMax %66847 %66853
-      %66876 = OpExtInst %v2float %1 FMax %66841 %66875
-      %66877 = OpExtInst %v2float %1 FMax %66835 %66876
-     %108500 = OpCompositeConstruct %_arr_v2float_uint_2 %66865 %66877
-      %75541 = OpIAdd %uint %155960 %int_1
-      %75543 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %155960
-               OpStore %75543 %108500
-               OpBranch %74338
-      %66755 = OpLabel
-      %66758 = OpLoad %uint %65920
-      %66759 = OpBitwiseAnd %uint %66758 %uint_32768
-      %66760 = OpUGreaterThan %bool %66759 %uint_0
-               OpSelectionMerge %75463 None
-               OpSwitch %uint_0 %75447
-      %75447 = OpLabel
-               OpSelectionMerge %75462 None
-               OpBranchConditional %66760 %75449 %75457
-      %75457 = OpLabel
-      %75459 = OpISub %uint %140422 %int_1
-      %75460 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75459
-      %75461 = OpLoad %_arr_float_uint_2 %75460
-     %107828 = OpCompositeExtract %float %75461 0
-     %107829 = OpCompositeExtract %float %75461 1
-               OpBranch %75463
-      %75449 = OpLabel
-      %75451 = OpIAdd %uint %140424 %int_1
-      %75452 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %75453 = OpLoad %float %75452
-               OpBranch %75463
-      %75462 = OpLabel
-               OpUnreachable
-      %75463 = OpLabel
-     %155965 = OpPhi %uint %75451 %75449 %140424 %75457
-     %155964 = OpPhi %uint %140422 %75449 %75459 %75457
-     %155962 = OpPhi %float %75453 %75449 %107828 %75457
-     %155961 = OpPhi %float %75453 %75449 %107829 %75457
-      %66764 = OpLoad %uint %65920
-      %66765 = OpBitwiseAnd %uint %66764 %uint_16384
-      %66766 = OpUGreaterThan %bool %66765 %uint_0
-               OpSelectionMerge %75486 None
-               OpSwitch %uint_0 %75470
-      %75470 = OpLabel
-               OpSelectionMerge %75485 None
-               OpBranchConditional %66766 %75472 %75480
-      %75480 = OpLabel
-      %75482 = OpISub %uint %155964 %int_1
-      %75483 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75482
-      %75484 = OpLoad %_arr_float_uint_2 %75483
-     %107819 = OpCompositeExtract %float %75484 0
-     %107820 = OpCompositeExtract %float %75484 1
-               OpBranch %75486
-      %75472 = OpLabel
-      %75474 = OpIAdd %uint %155965 %int_1
-      %75475 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %155965
-      %75476 = OpLoad %float %75475
-               OpBranch %75486
-      %75485 = OpLabel
-               OpUnreachable
-      %75486 = OpLabel
-     %156942 = OpPhi %uint %75474 %75472 %155965 %75480
-     %155970 = OpPhi %uint %155964 %75472 %75482 %75480
-     %155967 = OpPhi %float %75476 %75472 %107819 %75480
-     %155966 = OpPhi %float %75476 %75472 %107820 %75480
-      %66772 = OpFDiv %float %155962 %155967
-      %66778 = OpFDiv %float %155962 %155966
-      %66784 = OpFDiv %float %155961 %155967
-      %66790 = OpFDiv %float %155961 %155966
-      %66800 = OpExtInst %float %1 FMin %66784 %66790
-      %66801 = OpExtInst %float %1 FMin %66778 %66800
-      %66802 = OpExtInst %float %1 FMin %66772 %66801
-      %66812 = OpExtInst %float %1 FMax %66784 %66790
-      %66813 = OpExtInst %float %1 FMax %66778 %66812
-      %66814 = OpExtInst %float %1 FMax %66772 %66813
-     %108485 = OpCompositeConstruct %_arr_float_uint_2 %66802 %66814
-      %75490 = OpIAdd %uint %155970 %int_1
-      %75492 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %155970
-               OpStore %75492 %108485
-               OpBranch %74338
-      %66692 = OpLabel
-      %66695 = OpLoad %uint %65920
-      %66696 = OpBitwiseAnd %uint %66695 %uint_32768
-      %66697 = OpUGreaterThan %bool %66696 %uint_0
-               OpSelectionMerge %75412 None
-               OpSwitch %uint_0 %75396
-      %75396 = OpLabel
-               OpSelectionMerge %75411 None
-               OpBranchConditional %66697 %75398 %75406
-      %75406 = OpLabel
-      %75408 = OpISub %uint %140441 %int_1
-      %75409 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %75408
-      %75410 = OpLoad %_arr_v4float_uint_2 %75409
-     %107846 = OpCompositeExtract %v4float %75410 0
-     %107847 = OpCompositeExtract %v4float %75410 1
-               OpBranch %75412
-      %75398 = OpLabel
-      %75400 = OpIAdd %uint %140467 %int_1
-      %75401 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %75402 = OpLoad %v4float %75401
-               OpBranch %75412
-      %75411 = OpLabel
-               OpUnreachable
-      %75412 = OpLabel
-     %225277 = OpPhi %uint %75400 %75398 %140467 %75406
-     %155981 = OpPhi %uint %140441 %75398 %75408 %75406
-     %155972 = OpPhi %v4float %75402 %75398 %107846 %75406
-     %155971 = OpPhi %v4float %75402 %75398 %107847 %75406
-      %66701 = OpLoad %uint %65920
-      %66702 = OpBitwiseAnd %uint %66701 %uint_16384
-      %66703 = OpUGreaterThan %bool %66702 %uint_0
-               OpSelectionMerge %75435 None
-               OpSwitch %uint_0 %75419
-      %75419 = OpLabel
-               OpSelectionMerge %75434 None
-               OpBranchConditional %66703 %75421 %75429
-      %75429 = OpLabel
-      %75431 = OpISub %uint %140422 %int_1
-      %75432 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75431
-      %75433 = OpLoad %_arr_float_uint_2 %75432
-     %107837 = OpCompositeExtract %float %75433 0
-     %107838 = OpCompositeExtract %float %75433 1
-               OpBranch %75435
-      %75421 = OpLabel
-      %75423 = OpIAdd %uint %140424 %int_1
-      %75424 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %75425 = OpLoad %float %75424
-               OpBranch %75435
-      %75434 = OpLabel
-               OpUnreachable
-      %75435 = OpLabel
-     %156941 = OpPhi %uint %75423 %75421 %140424 %75429
-     %156742 = OpPhi %uint %140422 %75421 %75431 %75429
-     %155977 = OpPhi %float %75425 %75421 %107837 %75429
-     %155976 = OpPhi %float %75425 %75421 %107838 %75429
-      %66709 = OpVectorTimesScalar %v4float %155972 %155977
-      %66715 = OpVectorTimesScalar %v4float %155972 %155976
-      %66721 = OpVectorTimesScalar %v4float %155971 %155977
-      %66727 = OpVectorTimesScalar %v4float %155971 %155976
-      %66737 = OpExtInst %v4float %1 FMin %66721 %66727
-      %66738 = OpExtInst %v4float %1 FMin %66715 %66737
-      %66739 = OpExtInst %v4float %1 FMin %66709 %66738
-      %66749 = OpExtInst %v4float %1 FMax %66721 %66727
-      %66750 = OpExtInst %v4float %1 FMax %66715 %66749
-      %66751 = OpExtInst %v4float %1 FMax %66709 %66750
-     %108470 = OpCompositeConstruct %_arr_v4float_uint_2 %66739 %66751
-      %75439 = OpIAdd %uint %155981 %int_1
-      %75441 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %155981
-               OpStore %75441 %108470
-               OpBranch %74338
-      %66629 = OpLabel
-      %66632 = OpLoad %uint %65920
-      %66633 = OpBitwiseAnd %uint %66632 %uint_32768
-      %66634 = OpUGreaterThan %bool %66633 %uint_0
-               OpSelectionMerge %75361 None
-               OpSwitch %uint_0 %75345
-      %75345 = OpLabel
-               OpSelectionMerge %75360 None
-               OpBranchConditional %66634 %75347 %75355
-      %75355 = OpLabel
-      %75357 = OpISub %uint %140441 %int_1
-      %75358 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %75357
-      %75359 = OpLoad %_arr_v4float_uint_2 %75358
-     %107864 = OpCompositeExtract %v4float %75359 0
-     %107865 = OpCompositeExtract %v4float %75359 1
-               OpBranch %75361
-      %75347 = OpLabel
-      %75349 = OpIAdd %uint %140467 %int_1
-      %75350 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %75351 = OpLoad %v4float %75350
-               OpBranch %75361
-      %75360 = OpLabel
-               OpUnreachable
-      %75361 = OpLabel
-     %155986 = OpPhi %uint %75349 %75347 %140467 %75355
-     %155985 = OpPhi %uint %140441 %75347 %75357 %75355
-     %155983 = OpPhi %v4float %75351 %75347 %107864 %75355
-     %155982 = OpPhi %v4float %75351 %75347 %107865 %75355
-      %66638 = OpLoad %uint %65920
-      %66639 = OpBitwiseAnd %uint %66638 %uint_16384
-      %66640 = OpUGreaterThan %bool %66639 %uint_0
-               OpSelectionMerge %75384 None
-               OpSwitch %uint_0 %75368
-      %75368 = OpLabel
-               OpSelectionMerge %75383 None
-               OpBranchConditional %66640 %75370 %75378
-      %75378 = OpLabel
-      %75380 = OpISub %uint %155985 %int_1
-      %75381 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %75380
-      %75382 = OpLoad %_arr_v4float_uint_2 %75381
-     %107855 = OpCompositeExtract %v4float %75382 0
-     %107856 = OpCompositeExtract %v4float %75382 1
-               OpBranch %75384
-      %75370 = OpLabel
-      %75372 = OpIAdd %uint %155986 %int_1
-      %75373 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %155986
-      %75374 = OpLoad %v4float %75373
-               OpBranch %75384
-      %75383 = OpLabel
-               OpUnreachable
-      %75384 = OpLabel
-     %225275 = OpPhi %uint %75372 %75370 %155986 %75378
-     %155991 = OpPhi %uint %155985 %75370 %75380 %75378
-     %155988 = OpPhi %v4float %75374 %75370 %107855 %75378
-     %155987 = OpPhi %v4float %75374 %75370 %107856 %75378
-      %66646 = OpFMul %v4float %155983 %155988
-      %66652 = OpFMul %v4float %155983 %155987
-      %66658 = OpFMul %v4float %155982 %155988
-      %66664 = OpFMul %v4float %155982 %155987
-      %66674 = OpExtInst %v4float %1 FMin %66658 %66664
-      %66675 = OpExtInst %v4float %1 FMin %66652 %66674
-      %66676 = OpExtInst %v4float %1 FMin %66646 %66675
-      %66686 = OpExtInst %v4float %1 FMax %66658 %66664
-      %66687 = OpExtInst %v4float %1 FMax %66652 %66686
-      %66688 = OpExtInst %v4float %1 FMax %66646 %66687
-     %108455 = OpCompositeConstruct %_arr_v4float_uint_2 %66676 %66688
-      %75388 = OpIAdd %uint %155991 %int_1
-      %75390 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %155991
-               OpStore %75390 %108455
-               OpBranch %74338
-      %66566 = OpLabel
-      %66569 = OpLoad %uint %65920
-      %66570 = OpBitwiseAnd %uint %66569 %uint_32768
-      %66571 = OpUGreaterThan %bool %66570 %uint_0
-               OpSelectionMerge %75310 None
-               OpSwitch %uint_0 %75294
-      %75294 = OpLabel
-               OpSelectionMerge %75309 None
-               OpBranchConditional %66571 %75296 %75304
-      %75304 = OpLabel
-      %75306 = OpISub %uint %140432 %int_1
-      %75307 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %75306
-      %75308 = OpLoad %_arr_v3float_uint_2 %75307
-     %107882 = OpCompositeExtract %v3float %75308 0
-     %107883 = OpCompositeExtract %v3float %75308 1
-               OpBranch %75310
-      %75296 = OpLabel
-      %75298 = OpIAdd %uint %140435 %int_1
-      %75299 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %75300 = OpLoad %v3float %75299
-               OpBranch %75310
-      %75309 = OpLabel
-               OpUnreachable
-      %75310 = OpLabel
-     %224500 = OpPhi %uint %75298 %75296 %140435 %75304
-     %156002 = OpPhi %uint %140432 %75296 %75306 %75304
-     %155993 = OpPhi %v3float %75300 %75296 %107882 %75304
-     %155992 = OpPhi %v3float %75300 %75296 %107883 %75304
-      %66575 = OpLoad %uint %65920
-      %66576 = OpBitwiseAnd %uint %66575 %uint_16384
-      %66577 = OpUGreaterThan %bool %66576 %uint_0
-               OpSelectionMerge %75333 None
-               OpSwitch %uint_0 %75317
-      %75317 = OpLabel
-               OpSelectionMerge %75332 None
-               OpBranchConditional %66577 %75319 %75327
-      %75327 = OpLabel
-      %75329 = OpISub %uint %140422 %int_1
-      %75330 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75329
-      %75331 = OpLoad %_arr_float_uint_2 %75330
-     %107873 = OpCompositeExtract %float %75331 0
-     %107874 = OpCompositeExtract %float %75331 1
-               OpBranch %75333
-      %75319 = OpLabel
-      %75321 = OpIAdd %uint %140424 %int_1
-      %75322 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %75323 = OpLoad %float %75322
-               OpBranch %75333
-      %75332 = OpLabel
-               OpUnreachable
-      %75333 = OpLabel
-     %156938 = OpPhi %uint %75321 %75319 %140424 %75327
-     %156739 = OpPhi %uint %140422 %75319 %75329 %75327
-     %155998 = OpPhi %float %75323 %75319 %107873 %75327
-     %155997 = OpPhi %float %75323 %75319 %107874 %75327
-      %66583 = OpVectorTimesScalar %v3float %155993 %155998
-      %66589 = OpVectorTimesScalar %v3float %155993 %155997
-      %66595 = OpVectorTimesScalar %v3float %155992 %155998
-      %66601 = OpVectorTimesScalar %v3float %155992 %155997
-      %66611 = OpExtInst %v3float %1 FMin %66595 %66601
-      %66612 = OpExtInst %v3float %1 FMin %66589 %66611
-      %66613 = OpExtInst %v3float %1 FMin %66583 %66612
-      %66623 = OpExtInst %v3float %1 FMax %66595 %66601
-      %66624 = OpExtInst %v3float %1 FMax %66589 %66623
-      %66625 = OpExtInst %v3float %1 FMax %66583 %66624
-     %108440 = OpCompositeConstruct %_arr_v3float_uint_2 %66613 %66625
-      %75337 = OpIAdd %uint %156002 %int_1
-      %75339 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %156002
-               OpStore %75339 %108440
-               OpBranch %74338
-      %66503 = OpLabel
-      %66506 = OpLoad %uint %65920
-      %66507 = OpBitwiseAnd %uint %66506 %uint_32768
-      %66508 = OpUGreaterThan %bool %66507 %uint_0
-               OpSelectionMerge %75259 None
-               OpSwitch %uint_0 %75243
-      %75243 = OpLabel
-               OpSelectionMerge %75258 None
-               OpBranchConditional %66508 %75245 %75253
-      %75253 = OpLabel
-      %75255 = OpISub %uint %140432 %int_1
-      %75256 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %75255
-      %75257 = OpLoad %_arr_v3float_uint_2 %75256
-     %107900 = OpCompositeExtract %v3float %75257 0
-     %107901 = OpCompositeExtract %v3float %75257 1
-               OpBranch %75259
-      %75245 = OpLabel
-      %75247 = OpIAdd %uint %140435 %int_1
-      %75248 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %75249 = OpLoad %v3float %75248
-               OpBranch %75259
-      %75258 = OpLabel
-               OpUnreachable
-      %75259 = OpLabel
-     %156007 = OpPhi %uint %75247 %75245 %140435 %75253
-     %156006 = OpPhi %uint %140432 %75245 %75255 %75253
-     %156004 = OpPhi %v3float %75249 %75245 %107900 %75253
-     %156003 = OpPhi %v3float %75249 %75245 %107901 %75253
-      %66512 = OpLoad %uint %65920
-      %66513 = OpBitwiseAnd %uint %66512 %uint_16384
-      %66514 = OpUGreaterThan %bool %66513 %uint_0
-               OpSelectionMerge %75282 None
-               OpSwitch %uint_0 %75266
-      %75266 = OpLabel
-               OpSelectionMerge %75281 None
-               OpBranchConditional %66514 %75268 %75276
-      %75276 = OpLabel
-      %75278 = OpISub %uint %156006 %int_1
-      %75279 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %75278
-      %75280 = OpLoad %_arr_v3float_uint_2 %75279
-     %107891 = OpCompositeExtract %v3float %75280 0
-     %107892 = OpCompositeExtract %v3float %75280 1
-               OpBranch %75282
-      %75268 = OpLabel
-      %75270 = OpIAdd %uint %156007 %int_1
-      %75271 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %156007
-      %75272 = OpLoad %v3float %75271
-               OpBranch %75282
-      %75281 = OpLabel
-               OpUnreachable
-      %75282 = OpLabel
-     %224498 = OpPhi %uint %75270 %75268 %156007 %75276
-     %156012 = OpPhi %uint %156006 %75268 %75278 %75276
-     %156009 = OpPhi %v3float %75272 %75268 %107891 %75276
-     %156008 = OpPhi %v3float %75272 %75268 %107892 %75276
-      %66520 = OpFMul %v3float %156004 %156009
-      %66526 = OpFMul %v3float %156004 %156008
-      %66532 = OpFMul %v3float %156003 %156009
-      %66538 = OpFMul %v3float %156003 %156008
-      %66548 = OpExtInst %v3float %1 FMin %66532 %66538
-      %66549 = OpExtInst %v3float %1 FMin %66526 %66548
-      %66550 = OpExtInst %v3float %1 FMin %66520 %66549
-      %66560 = OpExtInst %v3float %1 FMax %66532 %66538
-      %66561 = OpExtInst %v3float %1 FMax %66526 %66560
-      %66562 = OpExtInst %v3float %1 FMax %66520 %66561
-     %108425 = OpCompositeConstruct %_arr_v3float_uint_2 %66550 %66562
-      %75286 = OpIAdd %uint %156012 %int_1
-      %75288 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %156012
-               OpStore %75288 %108425
-               OpBranch %74338
-      %66440 = OpLabel
-      %66443 = OpLoad %uint %65920
-      %66444 = OpBitwiseAnd %uint %66443 %uint_32768
-      %66445 = OpUGreaterThan %bool %66444 %uint_0
-               OpSelectionMerge %75208 None
-               OpSwitch %uint_0 %75192
-      %75192 = OpLabel
-               OpSelectionMerge %75207 None
-               OpBranchConditional %66445 %75194 %75202
-      %75202 = OpLabel
-      %75204 = OpISub %uint %140443 %int_1
-      %75205 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %75204
-      %75206 = OpLoad %_arr_v2float_uint_2 %75205
-     %107918 = OpCompositeExtract %v2float %75206 0
-     %107919 = OpCompositeExtract %v2float %75206 1
-               OpBranch %75208
-      %75194 = OpLabel
-      %75196 = OpIAdd %uint %141789 %int_1
-      %75197 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %75198 = OpLoad %v2float %75197
-               OpBranch %75208
-      %75207 = OpLabel
-               OpUnreachable
-      %75208 = OpLabel
-     %226849 = OpPhi %uint %75196 %75194 %141789 %75202
-     %156023 = OpPhi %uint %140443 %75194 %75204 %75202
-     %156014 = OpPhi %v2float %75198 %75194 %107918 %75202
-     %156013 = OpPhi %v2float %75198 %75194 %107919 %75202
-      %66449 = OpLoad %uint %65920
-      %66450 = OpBitwiseAnd %uint %66449 %uint_16384
-      %66451 = OpUGreaterThan %bool %66450 %uint_0
-               OpSelectionMerge %75231 None
-               OpSwitch %uint_0 %75215
-      %75215 = OpLabel
-               OpSelectionMerge %75230 None
-               OpBranchConditional %66451 %75217 %75225
-      %75225 = OpLabel
-      %75227 = OpISub %uint %140422 %int_1
-      %75228 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75227
-      %75229 = OpLoad %_arr_float_uint_2 %75228
-     %107909 = OpCompositeExtract %float %75229 0
-     %107910 = OpCompositeExtract %float %75229 1
-               OpBranch %75231
-      %75217 = OpLabel
-      %75219 = OpIAdd %uint %140424 %int_1
-      %75220 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %75221 = OpLoad %float %75220
-               OpBranch %75231
-      %75230 = OpLabel
-               OpUnreachable
-      %75231 = OpLabel
-     %156935 = OpPhi %uint %75219 %75217 %140424 %75225
-     %156736 = OpPhi %uint %140422 %75217 %75227 %75225
-     %156019 = OpPhi %float %75221 %75217 %107909 %75225
-     %156018 = OpPhi %float %75221 %75217 %107910 %75225
-      %66457 = OpVectorTimesScalar %v2float %156014 %156019
-      %66463 = OpVectorTimesScalar %v2float %156014 %156018
-      %66469 = OpVectorTimesScalar %v2float %156013 %156019
-      %66475 = OpVectorTimesScalar %v2float %156013 %156018
-      %66485 = OpExtInst %v2float %1 FMin %66469 %66475
-      %66486 = OpExtInst %v2float %1 FMin %66463 %66485
-      %66487 = OpExtInst %v2float %1 FMin %66457 %66486
-      %66497 = OpExtInst %v2float %1 FMax %66469 %66475
-      %66498 = OpExtInst %v2float %1 FMax %66463 %66497
-      %66499 = OpExtInst %v2float %1 FMax %66457 %66498
-     %108410 = OpCompositeConstruct %_arr_v2float_uint_2 %66487 %66499
-      %75235 = OpIAdd %uint %156023 %int_1
-      %75237 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %156023
-               OpStore %75237 %108410
-               OpBranch %74338
-      %66377 = OpLabel
-      %66380 = OpLoad %uint %65920
-      %66381 = OpBitwiseAnd %uint %66380 %uint_32768
-      %66382 = OpUGreaterThan %bool %66381 %uint_0
-               OpSelectionMerge %75157 None
-               OpSwitch %uint_0 %75141
-      %75141 = OpLabel
-               OpSelectionMerge %75156 None
-               OpBranchConditional %66382 %75143 %75151
-      %75151 = OpLabel
-      %75153 = OpISub %uint %140443 %int_1
-      %75154 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %75153
-      %75155 = OpLoad %_arr_v2float_uint_2 %75154
-     %107936 = OpCompositeExtract %v2float %75155 0
-     %107937 = OpCompositeExtract %v2float %75155 1
-               OpBranch %75157
-      %75143 = OpLabel
-      %75145 = OpIAdd %uint %141789 %int_1
-      %75146 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %75147 = OpLoad %v2float %75146
-               OpBranch %75157
-      %75156 = OpLabel
-               OpUnreachable
-      %75157 = OpLabel
-     %156028 = OpPhi %uint %75145 %75143 %141789 %75151
-     %156027 = OpPhi %uint %140443 %75143 %75153 %75151
-     %156025 = OpPhi %v2float %75147 %75143 %107936 %75151
-     %156024 = OpPhi %v2float %75147 %75143 %107937 %75151
-      %66386 = OpLoad %uint %65920
-      %66387 = OpBitwiseAnd %uint %66386 %uint_16384
-      %66388 = OpUGreaterThan %bool %66387 %uint_0
-               OpSelectionMerge %75180 None
-               OpSwitch %uint_0 %75164
-      %75164 = OpLabel
-               OpSelectionMerge %75179 None
-               OpBranchConditional %66388 %75166 %75174
-      %75174 = OpLabel
-      %75176 = OpISub %uint %156027 %int_1
-      %75177 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %75176
-      %75178 = OpLoad %_arr_v2float_uint_2 %75177
-     %107927 = OpCompositeExtract %v2float %75178 0
-     %107928 = OpCompositeExtract %v2float %75178 1
-               OpBranch %75180
-      %75166 = OpLabel
-      %75168 = OpIAdd %uint %156028 %int_1
-      %75169 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %156028
-      %75170 = OpLoad %v2float %75169
-               OpBranch %75180
-      %75179 = OpLabel
-               OpUnreachable
-      %75180 = OpLabel
-     %226847 = OpPhi %uint %75168 %75166 %156028 %75174
-     %156033 = OpPhi %uint %156027 %75166 %75176 %75174
-     %156030 = OpPhi %v2float %75170 %75166 %107927 %75174
-     %156029 = OpPhi %v2float %75170 %75166 %107928 %75174
-      %66394 = OpFMul %v2float %156025 %156030
-      %66400 = OpFMul %v2float %156025 %156029
-      %66406 = OpFMul %v2float %156024 %156030
-      %66412 = OpFMul %v2float %156024 %156029
-      %66422 = OpExtInst %v2float %1 FMin %66406 %66412
-      %66423 = OpExtInst %v2float %1 FMin %66400 %66422
-      %66424 = OpExtInst %v2float %1 FMin %66394 %66423
-      %66434 = OpExtInst %v2float %1 FMax %66406 %66412
-      %66435 = OpExtInst %v2float %1 FMax %66400 %66434
-      %66436 = OpExtInst %v2float %1 FMax %66394 %66435
-     %108395 = OpCompositeConstruct %_arr_v2float_uint_2 %66424 %66436
-      %75184 = OpIAdd %uint %156033 %int_1
-      %75186 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %156033
-               OpStore %75186 %108395
-               OpBranch %74338
-      %66314 = OpLabel
-      %66317 = OpLoad %uint %65920
-      %66318 = OpBitwiseAnd %uint %66317 %uint_32768
-      %66319 = OpUGreaterThan %bool %66318 %uint_0
-               OpSelectionMerge %75106 None
-               OpSwitch %uint_0 %75090
-      %75090 = OpLabel
-               OpSelectionMerge %75105 None
-               OpBranchConditional %66319 %75092 %75100
-      %75100 = OpLabel
-      %75102 = OpISub %uint %140422 %int_1
-      %75103 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75102
-      %75104 = OpLoad %_arr_float_uint_2 %75103
-     %107954 = OpCompositeExtract %float %75104 0
-     %107955 = OpCompositeExtract %float %75104 1
-               OpBranch %75106
-      %75092 = OpLabel
-      %75094 = OpIAdd %uint %140424 %int_1
-      %75095 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %75096 = OpLoad %float %75095
-               OpBranch %75106
-      %75105 = OpLabel
-               OpUnreachable
-      %75106 = OpLabel
-     %156038 = OpPhi %uint %75094 %75092 %140424 %75100
-     %156037 = OpPhi %uint %140422 %75092 %75102 %75100
-     %156035 = OpPhi %float %75096 %75092 %107954 %75100
-     %156034 = OpPhi %float %75096 %75092 %107955 %75100
-      %66323 = OpLoad %uint %65920
-      %66324 = OpBitwiseAnd %uint %66323 %uint_16384
-      %66325 = OpUGreaterThan %bool %66324 %uint_0
-               OpSelectionMerge %75129 None
-               OpSwitch %uint_0 %75113
-      %75113 = OpLabel
-               OpSelectionMerge %75128 None
-               OpBranchConditional %66325 %75115 %75123
-      %75123 = OpLabel
-      %75125 = OpISub %uint %156037 %int_1
-      %75126 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75125
-      %75127 = OpLoad %_arr_float_uint_2 %75126
-     %107945 = OpCompositeExtract %float %75127 0
-     %107946 = OpCompositeExtract %float %75127 1
-               OpBranch %75129
-      %75115 = OpLabel
-      %75117 = OpIAdd %uint %156038 %int_1
-      %75118 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %156038
-      %75119 = OpLoad %float %75118
-               OpBranch %75129
-      %75128 = OpLabel
-               OpUnreachable
-      %75129 = OpLabel
-     %156932 = OpPhi %uint %75117 %75115 %156038 %75123
-     %156043 = OpPhi %uint %156037 %75115 %75125 %75123
-     %156040 = OpPhi %float %75119 %75115 %107945 %75123
-     %156039 = OpPhi %float %75119 %75115 %107946 %75123
-      %66331 = OpFMul %float %156035 %156040
-      %66337 = OpFMul %float %156035 %156039
-      %66343 = OpFMul %float %156034 %156040
-      %66349 = OpFMul %float %156034 %156039
-      %66359 = OpExtInst %float %1 FMin %66343 %66349
-      %66360 = OpExtInst %float %1 FMin %66337 %66359
-      %66361 = OpExtInst %float %1 FMin %66331 %66360
-      %66371 = OpExtInst %float %1 FMax %66343 %66349
-      %66372 = OpExtInst %float %1 FMax %66337 %66371
-      %66373 = OpExtInst %float %1 FMax %66331 %66372
-     %108380 = OpCompositeConstruct %_arr_float_uint_2 %66361 %66373
-      %75133 = OpIAdd %uint %156043 %int_1
-      %75135 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %156043
-               OpStore %75135 %108380
-               OpBranch %74338
-      %66285 = OpLabel
-      %66288 = OpLoad %uint %65920
-      %66289 = OpBitwiseAnd %uint %66288 %uint_32768
-      %66290 = OpUGreaterThan %bool %66289 %uint_0
-               OpSelectionMerge %75055 None
-               OpSwitch %uint_0 %75039
-      %75039 = OpLabel
-               OpSelectionMerge %75054 None
-               OpBranchConditional %66290 %75041 %75049
-      %75049 = OpLabel
-      %75051 = OpISub %uint %140441 %int_1
-      %75052 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %75051
-      %75053 = OpLoad %_arr_v4float_uint_2 %75052
-     %107972 = OpCompositeExtract %v4float %75053 0
-     %107973 = OpCompositeExtract %v4float %75053 1
-               OpBranch %75055
-      %75041 = OpLabel
-      %75043 = OpIAdd %uint %140467 %int_1
-      %75044 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %75045 = OpLoad %v4float %75044
-               OpBranch %75055
-      %75054 = OpLabel
-               OpUnreachable
-      %75055 = OpLabel
-     %225264 = OpPhi %uint %75043 %75041 %140467 %75049
-     %156054 = OpPhi %uint %140441 %75041 %75051 %75049
-     %156045 = OpPhi %v4float %75045 %75041 %107972 %75049
-     %156044 = OpPhi %v4float %75045 %75041 %107973 %75049
-      %66294 = OpLoad %uint %65920
-      %66295 = OpBitwiseAnd %uint %66294 %uint_16384
-      %66296 = OpUGreaterThan %bool %66295 %uint_0
-               OpSelectionMerge %75078 None
-               OpSwitch %uint_0 %75062
-      %75062 = OpLabel
-               OpSelectionMerge %75077 None
-               OpBranchConditional %66296 %75064 %75072
-      %75072 = OpLabel
-      %75074 = OpISub %uint %140422 %int_1
-      %75075 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %75074
-      %75076 = OpLoad %_arr_float_uint_2 %75075
-     %107963 = OpCompositeExtract %float %75076 0
-     %107964 = OpCompositeExtract %float %75076 1
-               OpBranch %75078
-      %75064 = OpLabel
-      %75066 = OpIAdd %uint %140424 %int_1
-      %75067 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %75068 = OpLoad %float %75067
-               OpBranch %75078
-      %75077 = OpLabel
-               OpUnreachable
-      %75078 = OpLabel
-     %156931 = OpPhi %uint %75066 %75064 %140424 %75072
-     %156733 = OpPhi %uint %140422 %75064 %75074 %75072
-     %156050 = OpPhi %float %75068 %75064 %107963 %75072
-     %156049 = OpPhi %float %75068 %75064 %107964 %75072
-      %66302 = OpCompositeConstruct %v4float %156049 %156049 %156049 %156049
-      %66303 = OpFSub %v4float %156045 %66302
-      %66309 = OpCompositeConstruct %v4float %156050 %156050 %156050 %156050
-      %66310 = OpFSub %v4float %156044 %66309
-     %108369 = OpCompositeConstruct %_arr_v4float_uint_2 %66303 %66310
-      %75082 = OpIAdd %uint %156054 %int_1
-      %75084 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %156054
-               OpStore %75084 %108369
-               OpBranch %74338
-      %66258 = OpLabel
-      %66261 = OpLoad %uint %65920
-      %66262 = OpBitwiseAnd %uint %66261 %uint_32768
-      %66263 = OpUGreaterThan %bool %66262 %uint_0
-               OpSelectionMerge %75004 None
-               OpSwitch %uint_0 %74988
-      %74988 = OpLabel
-               OpSelectionMerge %75003 None
-               OpBranchConditional %66263 %74990 %74998
-      %74998 = OpLabel
-      %75000 = OpISub %uint %140441 %int_1
-      %75001 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %75000
-      %75002 = OpLoad %_arr_v4float_uint_2 %75001
-     %107990 = OpCompositeExtract %v4float %75002 0
-     %107991 = OpCompositeExtract %v4float %75002 1
-               OpBranch %75004
-      %74990 = OpLabel
-      %74992 = OpIAdd %uint %140467 %int_1
-      %74993 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %74994 = OpLoad %v4float %74993
-               OpBranch %75004
-      %75003 = OpLabel
-               OpUnreachable
-      %75004 = OpLabel
-     %156059 = OpPhi %uint %74992 %74990 %140467 %74998
-     %156058 = OpPhi %uint %140441 %74990 %75000 %74998
-     %156056 = OpPhi %v4float %74994 %74990 %107990 %74998
-     %156055 = OpPhi %v4float %74994 %74990 %107991 %74998
-      %66267 = OpLoad %uint %65920
-      %66268 = OpBitwiseAnd %uint %66267 %uint_16384
-      %66269 = OpUGreaterThan %bool %66268 %uint_0
-               OpSelectionMerge %75027 None
-               OpSwitch %uint_0 %75011
-      %75011 = OpLabel
-               OpSelectionMerge %75026 None
-               OpBranchConditional %66269 %75013 %75021
-      %75021 = OpLabel
-      %75023 = OpISub %uint %156058 %int_1
-      %75024 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %75023
-      %75025 = OpLoad %_arr_v4float_uint_2 %75024
-     %107981 = OpCompositeExtract %v4float %75025 0
-     %107982 = OpCompositeExtract %v4float %75025 1
-               OpBranch %75027
-      %75013 = OpLabel
-      %75015 = OpIAdd %uint %156059 %int_1
-      %75016 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %156059
-      %75017 = OpLoad %v4float %75016
-               OpBranch %75027
-      %75026 = OpLabel
-               OpUnreachable
-      %75027 = OpLabel
-     %225262 = OpPhi %uint %75015 %75013 %156059 %75021
-     %156064 = OpPhi %uint %156058 %75013 %75023 %75021
-     %156061 = OpPhi %v4float %75017 %75013 %107981 %75021
-     %156060 = OpPhi %v4float %75017 %75013 %107982 %75021
-      %66275 = OpFSub %v4float %156056 %156060
-      %66281 = OpFSub %v4float %156055 %156061
-     %108358 = OpCompositeConstruct %_arr_v4float_uint_2 %66275 %66281
-      %75031 = OpIAdd %uint %156064 %int_1
-      %75033 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %156064
-               OpStore %75033 %108358
-               OpBranch %74338
-      %66229 = OpLabel
-      %66232 = OpLoad %uint %65920
-      %66233 = OpBitwiseAnd %uint %66232 %uint_32768
-      %66234 = OpUGreaterThan %bool %66233 %uint_0
-               OpSelectionMerge %74953 None
-               OpSwitch %uint_0 %74937
-      %74937 = OpLabel
-               OpSelectionMerge %74952 None
-               OpBranchConditional %66234 %74939 %74947
-      %74947 = OpLabel
-      %74949 = OpISub %uint %140432 %int_1
-      %74950 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74949
-      %74951 = OpLoad %_arr_v3float_uint_2 %74950
-     %108008 = OpCompositeExtract %v3float %74951 0
-     %108009 = OpCompositeExtract %v3float %74951 1
-               OpBranch %74953
-      %74939 = OpLabel
-      %74941 = OpIAdd %uint %140435 %int_1
-      %74942 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %74943 = OpLoad %v3float %74942
-               OpBranch %74953
-      %74952 = OpLabel
-               OpUnreachable
-      %74953 = OpLabel
-     %224487 = OpPhi %uint %74941 %74939 %140435 %74947
-     %156075 = OpPhi %uint %140432 %74939 %74949 %74947
-     %156066 = OpPhi %v3float %74943 %74939 %108008 %74947
-     %156065 = OpPhi %v3float %74943 %74939 %108009 %74947
-      %66238 = OpLoad %uint %65920
-      %66239 = OpBitwiseAnd %uint %66238 %uint_16384
-      %66240 = OpUGreaterThan %bool %66239 %uint_0
-               OpSelectionMerge %74976 None
-               OpSwitch %uint_0 %74960
-      %74960 = OpLabel
-               OpSelectionMerge %74975 None
-               OpBranchConditional %66240 %74962 %74970
-      %74970 = OpLabel
-      %74972 = OpISub %uint %140422 %int_1
-      %74973 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %74972
-      %74974 = OpLoad %_arr_float_uint_2 %74973
-     %107999 = OpCompositeExtract %float %74974 0
-     %108000 = OpCompositeExtract %float %74974 1
-               OpBranch %74976
-      %74962 = OpLabel
-      %74964 = OpIAdd %uint %140424 %int_1
-      %74965 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %74966 = OpLoad %float %74965
-               OpBranch %74976
-      %74975 = OpLabel
-               OpUnreachable
-      %74976 = OpLabel
-     %156928 = OpPhi %uint %74964 %74962 %140424 %74970
-     %156730 = OpPhi %uint %140422 %74962 %74972 %74970
-     %156071 = OpPhi %float %74966 %74962 %107999 %74970
-     %156070 = OpPhi %float %74966 %74962 %108000 %74970
-      %66246 = OpCompositeConstruct %v3float %156070 %156070 %156070
-      %66247 = OpFSub %v3float %156066 %66246
-      %66253 = OpCompositeConstruct %v3float %156071 %156071 %156071
-      %66254 = OpFSub %v3float %156065 %66253
-     %108347 = OpCompositeConstruct %_arr_v3float_uint_2 %66247 %66254
-      %74980 = OpIAdd %uint %156075 %int_1
-      %74982 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %156075
-               OpStore %74982 %108347
-               OpBranch %74338
-      %66202 = OpLabel
-      %66205 = OpLoad %uint %65920
-      %66206 = OpBitwiseAnd %uint %66205 %uint_32768
-      %66207 = OpUGreaterThan %bool %66206 %uint_0
-               OpSelectionMerge %74902 None
-               OpSwitch %uint_0 %74886
-      %74886 = OpLabel
-               OpSelectionMerge %74901 None
-               OpBranchConditional %66207 %74888 %74896
-      %74896 = OpLabel
-      %74898 = OpISub %uint %140432 %int_1
-      %74899 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74898
-      %74900 = OpLoad %_arr_v3float_uint_2 %74899
-     %108026 = OpCompositeExtract %v3float %74900 0
-     %108027 = OpCompositeExtract %v3float %74900 1
-               OpBranch %74902
-      %74888 = OpLabel
-      %74890 = OpIAdd %uint %140435 %int_1
-      %74891 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %74892 = OpLoad %v3float %74891
-               OpBranch %74902
-      %74901 = OpLabel
-               OpUnreachable
-      %74902 = OpLabel
-     %156080 = OpPhi %uint %74890 %74888 %140435 %74896
-     %156079 = OpPhi %uint %140432 %74888 %74898 %74896
-     %156077 = OpPhi %v3float %74892 %74888 %108026 %74896
-     %156076 = OpPhi %v3float %74892 %74888 %108027 %74896
-      %66211 = OpLoad %uint %65920
-      %66212 = OpBitwiseAnd %uint %66211 %uint_16384
-      %66213 = OpUGreaterThan %bool %66212 %uint_0
-               OpSelectionMerge %74925 None
-               OpSwitch %uint_0 %74909
-      %74909 = OpLabel
-               OpSelectionMerge %74924 None
-               OpBranchConditional %66213 %74911 %74919
-      %74919 = OpLabel
-      %74921 = OpISub %uint %156079 %int_1
-      %74922 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74921
-      %74923 = OpLoad %_arr_v3float_uint_2 %74922
-     %108017 = OpCompositeExtract %v3float %74923 0
-     %108018 = OpCompositeExtract %v3float %74923 1
-               OpBranch %74925
-      %74911 = OpLabel
-      %74913 = OpIAdd %uint %156080 %int_1
-      %74914 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %156080
-      %74915 = OpLoad %v3float %74914
-               OpBranch %74925
-      %74924 = OpLabel
-               OpUnreachable
-      %74925 = OpLabel
-     %224485 = OpPhi %uint %74913 %74911 %156080 %74919
-     %156085 = OpPhi %uint %156079 %74911 %74921 %74919
-     %156082 = OpPhi %v3float %74915 %74911 %108017 %74919
-     %156081 = OpPhi %v3float %74915 %74911 %108018 %74919
-      %66219 = OpFSub %v3float %156077 %156081
-      %66225 = OpFSub %v3float %156076 %156082
-     %108336 = OpCompositeConstruct %_arr_v3float_uint_2 %66219 %66225
-      %74929 = OpIAdd %uint %156085 %int_1
-      %74931 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %156085
-               OpStore %74931 %108336
-               OpBranch %74338
-      %66173 = OpLabel
-      %66176 = OpLoad %uint %65920
-      %66177 = OpBitwiseAnd %uint %66176 %uint_32768
-      %66178 = OpUGreaterThan %bool %66177 %uint_0
-               OpSelectionMerge %74851 None
-               OpSwitch %uint_0 %74835
-      %74835 = OpLabel
-               OpSelectionMerge %74850 None
-               OpBranchConditional %66178 %74837 %74845
-      %74845 = OpLabel
-      %74847 = OpISub %uint %140443 %int_1
-      %74848 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %74847
-      %74849 = OpLoad %_arr_v2float_uint_2 %74848
-     %108044 = OpCompositeExtract %v2float %74849 0
-     %108045 = OpCompositeExtract %v2float %74849 1
-               OpBranch %74851
-      %74837 = OpLabel
-      %74839 = OpIAdd %uint %141789 %int_1
-      %74840 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %74841 = OpLoad %v2float %74840
-               OpBranch %74851
-      %74850 = OpLabel
-               OpUnreachable
-      %74851 = OpLabel
-     %226836 = OpPhi %uint %74839 %74837 %141789 %74845
-     %156096 = OpPhi %uint %140443 %74837 %74847 %74845
-     %156087 = OpPhi %v2float %74841 %74837 %108044 %74845
-     %156086 = OpPhi %v2float %74841 %74837 %108045 %74845
-      %66182 = OpLoad %uint %65920
-      %66183 = OpBitwiseAnd %uint %66182 %uint_16384
-      %66184 = OpUGreaterThan %bool %66183 %uint_0
-               OpSelectionMerge %74874 None
-               OpSwitch %uint_0 %74858
-      %74858 = OpLabel
-               OpSelectionMerge %74873 None
-               OpBranchConditional %66184 %74860 %74868
-      %74868 = OpLabel
-      %74870 = OpISub %uint %140422 %int_1
-      %74871 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %74870
-      %74872 = OpLoad %_arr_float_uint_2 %74871
-     %108035 = OpCompositeExtract %float %74872 0
-     %108036 = OpCompositeExtract %float %74872 1
-               OpBranch %74874
-      %74860 = OpLabel
-      %74862 = OpIAdd %uint %140424 %int_1
-      %74863 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %74864 = OpLoad %float %74863
-               OpBranch %74874
-      %74873 = OpLabel
-               OpUnreachable
-      %74874 = OpLabel
-     %156925 = OpPhi %uint %74862 %74860 %140424 %74868
-     %156727 = OpPhi %uint %140422 %74860 %74870 %74868
-     %156092 = OpPhi %float %74864 %74860 %108035 %74868
-     %156091 = OpPhi %float %74864 %74860 %108036 %74868
-      %66190 = OpCompositeConstruct %v2float %156091 %156091
-      %66191 = OpFSub %v2float %156087 %66190
-      %66197 = OpCompositeConstruct %v2float %156092 %156092
-      %66198 = OpFSub %v2float %156086 %66197
-     %108325 = OpCompositeConstruct %_arr_v2float_uint_2 %66191 %66198
-      %74878 = OpIAdd %uint %156096 %int_1
-      %74880 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %156096
-               OpStore %74880 %108325
-               OpBranch %74338
-      %66146 = OpLabel
-      %66149 = OpLoad %uint %65920
-      %66150 = OpBitwiseAnd %uint %66149 %uint_32768
-      %66151 = OpUGreaterThan %bool %66150 %uint_0
-               OpSelectionMerge %74800 None
-               OpSwitch %uint_0 %74784
-      %74784 = OpLabel
-               OpSelectionMerge %74799 None
-               OpBranchConditional %66151 %74786 %74794
-      %74794 = OpLabel
-      %74796 = OpISub %uint %140443 %int_1
-      %74797 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %74796
-      %74798 = OpLoad %_arr_v2float_uint_2 %74797
-     %108062 = OpCompositeExtract %v2float %74798 0
-     %108063 = OpCompositeExtract %v2float %74798 1
-               OpBranch %74800
-      %74786 = OpLabel
-      %74788 = OpIAdd %uint %141789 %int_1
-      %74789 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %74790 = OpLoad %v2float %74789
-               OpBranch %74800
-      %74799 = OpLabel
-               OpUnreachable
-      %74800 = OpLabel
-     %156101 = OpPhi %uint %74788 %74786 %141789 %74794
-     %156100 = OpPhi %uint %140443 %74786 %74796 %74794
-     %156098 = OpPhi %v2float %74790 %74786 %108062 %74794
-     %156097 = OpPhi %v2float %74790 %74786 %108063 %74794
-      %66155 = OpLoad %uint %65920
-      %66156 = OpBitwiseAnd %uint %66155 %uint_16384
-      %66157 = OpUGreaterThan %bool %66156 %uint_0
-               OpSelectionMerge %74823 None
-               OpSwitch %uint_0 %74807
-      %74807 = OpLabel
-               OpSelectionMerge %74822 None
-               OpBranchConditional %66157 %74809 %74817
-      %74817 = OpLabel
-      %74819 = OpISub %uint %156100 %int_1
-      %74820 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %74819
-      %74821 = OpLoad %_arr_v2float_uint_2 %74820
-     %108053 = OpCompositeExtract %v2float %74821 0
-     %108054 = OpCompositeExtract %v2float %74821 1
-               OpBranch %74823
-      %74809 = OpLabel
-      %74811 = OpIAdd %uint %156101 %int_1
-      %74812 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %156101
-      %74813 = OpLoad %v2float %74812
-               OpBranch %74823
-      %74822 = OpLabel
-               OpUnreachable
-      %74823 = OpLabel
-     %226834 = OpPhi %uint %74811 %74809 %156101 %74817
-     %156106 = OpPhi %uint %156100 %74809 %74819 %74817
-     %156103 = OpPhi %v2float %74813 %74809 %108053 %74817
-     %156102 = OpPhi %v2float %74813 %74809 %108054 %74817
-      %66163 = OpFSub %v2float %156098 %156102
-      %66169 = OpFSub %v2float %156097 %156103
-     %108314 = OpCompositeConstruct %_arr_v2float_uint_2 %66163 %66169
-      %74827 = OpIAdd %uint %156106 %int_1
-      %74829 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %156106
-               OpStore %74829 %108314
-               OpBranch %74338
-      %66119 = OpLabel
-      %66122 = OpLoad %uint %65920
-      %66123 = OpBitwiseAnd %uint %66122 %uint_32768
-      %66124 = OpUGreaterThan %bool %66123 %uint_0
-               OpSelectionMerge %74749 None
-               OpSwitch %uint_0 %74733
-      %74733 = OpLabel
-               OpSelectionMerge %74748 None
-               OpBranchConditional %66124 %74735 %74743
-      %74743 = OpLabel
-      %74745 = OpISub %uint %140422 %int_1
-      %74746 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %74745
-      %74747 = OpLoad %_arr_float_uint_2 %74746
-     %108080 = OpCompositeExtract %float %74747 0
-     %108081 = OpCompositeExtract %float %74747 1
-               OpBranch %74749
-      %74735 = OpLabel
-      %74737 = OpIAdd %uint %140424 %int_1
-      %74738 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %74739 = OpLoad %float %74738
-               OpBranch %74749
-      %74748 = OpLabel
-               OpUnreachable
-      %74749 = OpLabel
-     %156111 = OpPhi %uint %74737 %74735 %140424 %74743
-     %156110 = OpPhi %uint %140422 %74735 %74745 %74743
-     %156108 = OpPhi %float %74739 %74735 %108080 %74743
-     %156107 = OpPhi %float %74739 %74735 %108081 %74743
-      %66128 = OpLoad %uint %65920
-      %66129 = OpBitwiseAnd %uint %66128 %uint_16384
-      %66130 = OpUGreaterThan %bool %66129 %uint_0
-               OpSelectionMerge %74772 None
-               OpSwitch %uint_0 %74756
-      %74756 = OpLabel
-               OpSelectionMerge %74771 None
-               OpBranchConditional %66130 %74758 %74766
-      %74766 = OpLabel
-      %74768 = OpISub %uint %156110 %int_1
-      %74769 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %74768
-      %74770 = OpLoad %_arr_float_uint_2 %74769
-     %108071 = OpCompositeExtract %float %74770 0
-     %108072 = OpCompositeExtract %float %74770 1
-               OpBranch %74772
-      %74758 = OpLabel
-      %74760 = OpIAdd %uint %156111 %int_1
-      %74761 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %156111
-      %74762 = OpLoad %float %74761
-               OpBranch %74772
-      %74771 = OpLabel
-               OpUnreachable
-      %74772 = OpLabel
-     %156922 = OpPhi %uint %74760 %74758 %156111 %74766
-     %156116 = OpPhi %uint %156110 %74758 %74768 %74766
-     %156113 = OpPhi %float %74762 %74758 %108071 %74766
-     %156112 = OpPhi %float %74762 %74758 %108072 %74766
-      %66136 = OpFSub %float %156108 %156112
-      %66142 = OpFSub %float %156107 %156113
-     %108303 = OpCompositeConstruct %_arr_float_uint_2 %66136 %66142
-      %74776 = OpIAdd %uint %156116 %int_1
-      %74778 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %156116
-               OpStore %74778 %108303
-               OpBranch %74338
-      %66090 = OpLabel
-      %66093 = OpLoad %uint %65920
-      %66094 = OpBitwiseAnd %uint %66093 %uint_32768
-      %66095 = OpUGreaterThan %bool %66094 %uint_0
-               OpSelectionMerge %74698 None
-               OpSwitch %uint_0 %74682
-      %74682 = OpLabel
-               OpSelectionMerge %74697 None
-               OpBranchConditional %66095 %74684 %74692
-      %74692 = OpLabel
-      %74694 = OpISub %uint %140441 %int_1
-      %74695 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74694
-      %74696 = OpLoad %_arr_v4float_uint_2 %74695
-     %108098 = OpCompositeExtract %v4float %74696 0
-     %108099 = OpCompositeExtract %v4float %74696 1
-               OpBranch %74698
-      %74684 = OpLabel
-      %74686 = OpIAdd %uint %140467 %int_1
-      %74687 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %74688 = OpLoad %v4float %74687
-               OpBranch %74698
-      %74697 = OpLabel
-               OpUnreachable
-      %74698 = OpLabel
-     %225251 = OpPhi %uint %74686 %74684 %140467 %74692
-     %156127 = OpPhi %uint %140441 %74684 %74694 %74692
-     %156118 = OpPhi %v4float %74688 %74684 %108098 %74692
-     %156117 = OpPhi %v4float %74688 %74684 %108099 %74692
-      %66099 = OpLoad %uint %65920
-      %66100 = OpBitwiseAnd %uint %66099 %uint_16384
-      %66101 = OpUGreaterThan %bool %66100 %uint_0
-               OpSelectionMerge %74721 None
-               OpSwitch %uint_0 %74705
-      %74705 = OpLabel
-               OpSelectionMerge %74720 None
-               OpBranchConditional %66101 %74707 %74715
-      %74715 = OpLabel
-      %74717 = OpISub %uint %140422 %int_1
-      %74718 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %74717
-      %74719 = OpLoad %_arr_float_uint_2 %74718
-     %108089 = OpCompositeExtract %float %74719 0
-     %108090 = OpCompositeExtract %float %74719 1
-               OpBranch %74721
-      %74707 = OpLabel
-      %74709 = OpIAdd %uint %140424 %int_1
-      %74710 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %74711 = OpLoad %float %74710
-               OpBranch %74721
-      %74720 = OpLabel
-               OpUnreachable
-      %74721 = OpLabel
-     %156921 = OpPhi %uint %74709 %74707 %140424 %74715
-     %156724 = OpPhi %uint %140422 %74707 %74717 %74715
-     %156123 = OpPhi %float %74711 %74707 %108089 %74715
-     %156122 = OpPhi %float %74711 %74707 %108090 %74715
-      %66107 = OpCompositeConstruct %v4float %156123 %156123 %156123 %156123
-      %66108 = OpFAdd %v4float %156118 %66107
-      %66114 = OpCompositeConstruct %v4float %156122 %156122 %156122 %156122
-      %66115 = OpFAdd %v4float %156117 %66114
-     %108292 = OpCompositeConstruct %_arr_v4float_uint_2 %66108 %66115
-      %74725 = OpIAdd %uint %156127 %int_1
-      %74727 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %156127
-               OpStore %74727 %108292
-               OpBranch %74338
-      %66063 = OpLabel
-      %66066 = OpLoad %uint %65920
-      %66067 = OpBitwiseAnd %uint %66066 %uint_32768
-      %66068 = OpUGreaterThan %bool %66067 %uint_0
-               OpSelectionMerge %74647 None
-               OpSwitch %uint_0 %74631
-      %74631 = OpLabel
-               OpSelectionMerge %74646 None
-               OpBranchConditional %66068 %74633 %74641
-      %74641 = OpLabel
-      %74643 = OpISub %uint %140441 %int_1
-      %74644 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74643
-      %74645 = OpLoad %_arr_v4float_uint_2 %74644
-     %108116 = OpCompositeExtract %v4float %74645 0
-     %108117 = OpCompositeExtract %v4float %74645 1
-               OpBranch %74647
-      %74633 = OpLabel
-      %74635 = OpIAdd %uint %140467 %int_1
-      %74636 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %140467
-      %74637 = OpLoad %v4float %74636
-               OpBranch %74647
-      %74646 = OpLabel
-               OpUnreachable
-      %74647 = OpLabel
-     %156132 = OpPhi %uint %74635 %74633 %140467 %74641
-     %156131 = OpPhi %uint %140441 %74633 %74643 %74641
-     %156129 = OpPhi %v4float %74637 %74633 %108116 %74641
-     %156128 = OpPhi %v4float %74637 %74633 %108117 %74641
-      %66072 = OpLoad %uint %65920
-      %66073 = OpBitwiseAnd %uint %66072 %uint_16384
-      %66074 = OpUGreaterThan %bool %66073 %uint_0
-               OpSelectionMerge %74670 None
-               OpSwitch %uint_0 %74654
-      %74654 = OpLabel
-               OpSelectionMerge %74669 None
-               OpBranchConditional %66074 %74656 %74664
-      %74664 = OpLabel
-      %74666 = OpISub %uint %156131 %int_1
-      %74667 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %74666
-      %74668 = OpLoad %_arr_v4float_uint_2 %74667
-     %108107 = OpCompositeExtract %v4float %74668 0
-     %108108 = OpCompositeExtract %v4float %74668 1
-               OpBranch %74670
-      %74656 = OpLabel
-      %74658 = OpIAdd %uint %156132 %int_1
-      %74659 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %156132
-      %74660 = OpLoad %v4float %74659
-               OpBranch %74670
-      %74669 = OpLabel
-               OpUnreachable
-      %74670 = OpLabel
-     %225249 = OpPhi %uint %74658 %74656 %156132 %74664
-     %156137 = OpPhi %uint %156131 %74656 %74666 %74664
-     %156134 = OpPhi %v4float %74660 %74656 %108107 %74664
-     %156133 = OpPhi %v4float %74660 %74656 %108108 %74664
-      %66080 = OpFAdd %v4float %156129 %156134
-      %66086 = OpFAdd %v4float %156128 %156133
-     %108281 = OpCompositeConstruct %_arr_v4float_uint_2 %66080 %66086
-      %74674 = OpIAdd %uint %156137 %int_1
-      %74676 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %156137
-               OpStore %74676 %108281
-               OpBranch %74338
-      %66034 = OpLabel
-      %66037 = OpLoad %uint %65920
-      %66038 = OpBitwiseAnd %uint %66037 %uint_32768
-      %66039 = OpUGreaterThan %bool %66038 %uint_0
-               OpSelectionMerge %74596 None
-               OpSwitch %uint_0 %74580
-      %74580 = OpLabel
-               OpSelectionMerge %74595 None
-               OpBranchConditional %66039 %74582 %74590
-      %74590 = OpLabel
-      %74592 = OpISub %uint %140432 %int_1
-      %74593 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74592
-      %74594 = OpLoad %_arr_v3float_uint_2 %74593
-     %108134 = OpCompositeExtract %v3float %74594 0
-     %108135 = OpCompositeExtract %v3float %74594 1
-               OpBranch %74596
-      %74582 = OpLabel
-      %74584 = OpIAdd %uint %140435 %int_1
-      %74585 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %74586 = OpLoad %v3float %74585
-               OpBranch %74596
-      %74595 = OpLabel
-               OpUnreachable
-      %74596 = OpLabel
-     %224474 = OpPhi %uint %74584 %74582 %140435 %74590
-     %156148 = OpPhi %uint %140432 %74582 %74592 %74590
-     %156139 = OpPhi %v3float %74586 %74582 %108134 %74590
-     %156138 = OpPhi %v3float %74586 %74582 %108135 %74590
-      %66043 = OpLoad %uint %65920
-      %66044 = OpBitwiseAnd %uint %66043 %uint_16384
-      %66045 = OpUGreaterThan %bool %66044 %uint_0
-               OpSelectionMerge %74619 None
-               OpSwitch %uint_0 %74603
-      %74603 = OpLabel
-               OpSelectionMerge %74618 None
-               OpBranchConditional %66045 %74605 %74613
-      %74613 = OpLabel
-      %74615 = OpISub %uint %140422 %int_1
-      %74616 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %74615
-      %74617 = OpLoad %_arr_float_uint_2 %74616
-     %108125 = OpCompositeExtract %float %74617 0
-     %108126 = OpCompositeExtract %float %74617 1
-               OpBranch %74619
-      %74605 = OpLabel
-      %74607 = OpIAdd %uint %140424 %int_1
-      %74608 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %74609 = OpLoad %float %74608
-               OpBranch %74619
-      %74618 = OpLabel
-               OpUnreachable
-      %74619 = OpLabel
-     %156918 = OpPhi %uint %74607 %74605 %140424 %74613
-     %156721 = OpPhi %uint %140422 %74605 %74615 %74613
-     %156144 = OpPhi %float %74609 %74605 %108125 %74613
-     %156143 = OpPhi %float %74609 %74605 %108126 %74613
-      %66051 = OpCompositeConstruct %v3float %156144 %156144 %156144
-      %66052 = OpFAdd %v3float %156139 %66051
-      %66058 = OpCompositeConstruct %v3float %156143 %156143 %156143
-      %66059 = OpFAdd %v3float %156138 %66058
-     %108270 = OpCompositeConstruct %_arr_v3float_uint_2 %66052 %66059
-      %74623 = OpIAdd %uint %156148 %int_1
-      %74625 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %156148
-               OpStore %74625 %108270
-               OpBranch %74338
-      %66007 = OpLabel
-      %66010 = OpLoad %uint %65920
-      %66011 = OpBitwiseAnd %uint %66010 %uint_32768
-      %66012 = OpUGreaterThan %bool %66011 %uint_0
-               OpSelectionMerge %74545 None
-               OpSwitch %uint_0 %74529
-      %74529 = OpLabel
-               OpSelectionMerge %74544 None
-               OpBranchConditional %66012 %74531 %74539
-      %74539 = OpLabel
-      %74541 = OpISub %uint %140432 %int_1
-      %74542 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74541
-      %74543 = OpLoad %_arr_v3float_uint_2 %74542
-     %108152 = OpCompositeExtract %v3float %74543 0
-     %108153 = OpCompositeExtract %v3float %74543 1
-               OpBranch %74545
-      %74531 = OpLabel
-      %74533 = OpIAdd %uint %140435 %int_1
-      %74534 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %140435
-      %74535 = OpLoad %v3float %74534
-               OpBranch %74545
-      %74544 = OpLabel
-               OpUnreachable
-      %74545 = OpLabel
-     %156153 = OpPhi %uint %74533 %74531 %140435 %74539
-     %156152 = OpPhi %uint %140432 %74531 %74541 %74539
-     %156150 = OpPhi %v3float %74535 %74531 %108152 %74539
-     %156149 = OpPhi %v3float %74535 %74531 %108153 %74539
-      %66016 = OpLoad %uint %65920
-      %66017 = OpBitwiseAnd %uint %66016 %uint_16384
-      %66018 = OpUGreaterThan %bool %66017 %uint_0
-               OpSelectionMerge %74568 None
-               OpSwitch %uint_0 %74552
-      %74552 = OpLabel
-               OpSelectionMerge %74567 None
-               OpBranchConditional %66018 %74554 %74562
-      %74562 = OpLabel
-      %74564 = OpISub %uint %156152 %int_1
-      %74565 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %74564
-      %74566 = OpLoad %_arr_v3float_uint_2 %74565
-     %108143 = OpCompositeExtract %v3float %74566 0
-     %108144 = OpCompositeExtract %v3float %74566 1
-               OpBranch %74568
-      %74554 = OpLabel
-      %74556 = OpIAdd %uint %156153 %int_1
-      %74557 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %156153
-      %74558 = OpLoad %v3float %74557
-               OpBranch %74568
-      %74567 = OpLabel
-               OpUnreachable
-      %74568 = OpLabel
-     %224472 = OpPhi %uint %74556 %74554 %156153 %74562
-     %156158 = OpPhi %uint %156152 %74554 %74564 %74562
-     %156155 = OpPhi %v3float %74558 %74554 %108143 %74562
-     %156154 = OpPhi %v3float %74558 %74554 %108144 %74562
-      %66024 = OpFAdd %v3float %156150 %156155
-      %66030 = OpFAdd %v3float %156149 %156154
-     %108259 = OpCompositeConstruct %_arr_v3float_uint_2 %66024 %66030
-      %74572 = OpIAdd %uint %156158 %int_1
-      %74574 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %156158
-               OpStore %74574 %108259
-               OpBranch %74338
-      %65978 = OpLabel
-      %65981 = OpLoad %uint %65920
-      %65982 = OpBitwiseAnd %uint %65981 %uint_32768
-      %65983 = OpUGreaterThan %bool %65982 %uint_0
-               OpSelectionMerge %74494 None
-               OpSwitch %uint_0 %74478
-      %74478 = OpLabel
-               OpSelectionMerge %74493 None
-               OpBranchConditional %65983 %74480 %74488
-      %74488 = OpLabel
-      %74490 = OpISub %uint %140443 %int_1
-      %74491 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %74490
-      %74492 = OpLoad %_arr_v2float_uint_2 %74491
-     %108170 = OpCompositeExtract %v2float %74492 0
-     %108171 = OpCompositeExtract %v2float %74492 1
-               OpBranch %74494
-      %74480 = OpLabel
-      %74482 = OpIAdd %uint %141789 %int_1
-      %74483 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %74484 = OpLoad %v2float %74483
-               OpBranch %74494
-      %74493 = OpLabel
-               OpUnreachable
-      %74494 = OpLabel
-     %226823 = OpPhi %uint %74482 %74480 %141789 %74488
-     %156169 = OpPhi %uint %140443 %74480 %74490 %74488
-     %156160 = OpPhi %v2float %74484 %74480 %108170 %74488
-     %156159 = OpPhi %v2float %74484 %74480 %108171 %74488
-      %65987 = OpLoad %uint %65920
-      %65988 = OpBitwiseAnd %uint %65987 %uint_16384
-      %65989 = OpUGreaterThan %bool %65988 %uint_0
-               OpSelectionMerge %74517 None
-               OpSwitch %uint_0 %74501
-      %74501 = OpLabel
-               OpSelectionMerge %74516 None
-               OpBranchConditional %65989 %74503 %74511
-      %74511 = OpLabel
-      %74513 = OpISub %uint %140422 %int_1
-      %74514 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %74513
-      %74515 = OpLoad %_arr_float_uint_2 %74514
-     %108161 = OpCompositeExtract %float %74515 0
-     %108162 = OpCompositeExtract %float %74515 1
-               OpBranch %74517
-      %74503 = OpLabel
-      %74505 = OpIAdd %uint %140424 %int_1
-      %74506 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %74507 = OpLoad %float %74506
-               OpBranch %74517
-      %74516 = OpLabel
-               OpUnreachable
-      %74517 = OpLabel
-     %156915 = OpPhi %uint %74505 %74503 %140424 %74511
-     %156718 = OpPhi %uint %140422 %74503 %74513 %74511
-     %156165 = OpPhi %float %74507 %74503 %108161 %74511
-     %156164 = OpPhi %float %74507 %74503 %108162 %74511
-      %65995 = OpCompositeConstruct %v2float %156165 %156165
-      %65996 = OpFAdd %v2float %156160 %65995
-      %66002 = OpCompositeConstruct %v2float %156164 %156164
-      %66003 = OpFAdd %v2float %156159 %66002
-     %108248 = OpCompositeConstruct %_arr_v2float_uint_2 %65996 %66003
-      %74521 = OpIAdd %uint %156169 %int_1
-      %74523 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %156169
-               OpStore %74523 %108248
-               OpBranch %74338
-      %65951 = OpLabel
-      %65954 = OpLoad %uint %65920
-      %65955 = OpBitwiseAnd %uint %65954 %uint_32768
-      %65956 = OpUGreaterThan %bool %65955 %uint_0
-               OpSelectionMerge %74443 None
-               OpSwitch %uint_0 %74427
-      %74427 = OpLabel
-               OpSelectionMerge %74442 None
-               OpBranchConditional %65956 %74429 %74437
-      %74437 = OpLabel
-      %74439 = OpISub %uint %140443 %int_1
-      %74440 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %74439
-      %74441 = OpLoad %_arr_v2float_uint_2 %74440
-     %108188 = OpCompositeExtract %v2float %74441 0
-     %108189 = OpCompositeExtract %v2float %74441 1
-               OpBranch %74443
-      %74429 = OpLabel
-      %74431 = OpIAdd %uint %141789 %int_1
-      %74432 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %141789
-      %74433 = OpLoad %v2float %74432
-               OpBranch %74443
-      %74442 = OpLabel
-               OpUnreachable
-      %74443 = OpLabel
-     %156174 = OpPhi %uint %74431 %74429 %141789 %74437
-     %156173 = OpPhi %uint %140443 %74429 %74439 %74437
-     %156171 = OpPhi %v2float %74433 %74429 %108188 %74437
-     %156170 = OpPhi %v2float %74433 %74429 %108189 %74437
-      %65960 = OpLoad %uint %65920
-      %65961 = OpBitwiseAnd %uint %65960 %uint_16384
-      %65962 = OpUGreaterThan %bool %65961 %uint_0
-               OpSelectionMerge %74466 None
-               OpSwitch %uint_0 %74450
-      %74450 = OpLabel
-               OpSelectionMerge %74465 None
-               OpBranchConditional %65962 %74452 %74460
-      %74460 = OpLabel
-      %74462 = OpISub %uint %156173 %int_1
-      %74463 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %74462
-      %74464 = OpLoad %_arr_v2float_uint_2 %74463
-     %108179 = OpCompositeExtract %v2float %74464 0
-     %108180 = OpCompositeExtract %v2float %74464 1
-               OpBranch %74466
-      %74452 = OpLabel
-      %74454 = OpIAdd %uint %156174 %int_1
-      %74455 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %156174
-      %74456 = OpLoad %v2float %74455
-               OpBranch %74466
-      %74465 = OpLabel
-               OpUnreachable
-      %74466 = OpLabel
-     %226821 = OpPhi %uint %74454 %74452 %156174 %74460
-     %156179 = OpPhi %uint %156173 %74452 %74462 %74460
-     %156176 = OpPhi %v2float %74456 %74452 %108179 %74460
-     %156175 = OpPhi %v2float %74456 %74452 %108180 %74460
-      %65968 = OpFAdd %v2float %156171 %156176
-      %65974 = OpFAdd %v2float %156170 %156175
-     %108237 = OpCompositeConstruct %_arr_v2float_uint_2 %65968 %65974
-      %74470 = OpIAdd %uint %156179 %int_1
-      %74472 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %156179
-               OpStore %74472 %108237
-               OpBranch %74338
-      %65924 = OpLabel
-      %65927 = OpLoad %uint %65920
-      %65928 = OpBitwiseAnd %uint %65927 %uint_32768
-      %65929 = OpUGreaterThan %bool %65928 %uint_0
-               OpSelectionMerge %74392 None
-               OpSwitch %uint_0 %74376
-      %74376 = OpLabel
-               OpSelectionMerge %74391 None
-               OpBranchConditional %65929 %74378 %74386
-      %74386 = OpLabel
-      %74388 = OpISub %uint %140422 %int_1
-      %74389 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %74388
-      %74390 = OpLoad %_arr_float_uint_2 %74389
-     %108206 = OpCompositeExtract %float %74390 0
-     %108207 = OpCompositeExtract %float %74390 1
-               OpBranch %74392
-      %74378 = OpLabel
-      %74380 = OpIAdd %uint %140424 %int_1
-      %74381 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %140424
-      %74382 = OpLoad %float %74381
-               OpBranch %74392
-      %74391 = OpLabel
-               OpUnreachable
-      %74392 = OpLabel
-     %156184 = OpPhi %uint %74380 %74378 %140424 %74386
-     %156183 = OpPhi %uint %140422 %74378 %74388 %74386
-     %156181 = OpPhi %float %74382 %74378 %108206 %74386
-     %156180 = OpPhi %float %74382 %74378 %108207 %74386
-      %65933 = OpLoad %uint %65920
-      %65934 = OpBitwiseAnd %uint %65933 %uint_16384
-      %65935 = OpUGreaterThan %bool %65934 %uint_0
-               OpSelectionMerge %74415 None
-               OpSwitch %uint_0 %74399
-      %74399 = OpLabel
-               OpSelectionMerge %74414 None
-               OpBranchConditional %65935 %74401 %74409
-      %74409 = OpLabel
-      %74411 = OpISub %uint %156183 %int_1
-      %74412 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %74411
-      %74413 = OpLoad %_arr_float_uint_2 %74412
-     %108197 = OpCompositeExtract %float %74413 0
-     %108198 = OpCompositeExtract %float %74413 1
-               OpBranch %74415
-      %74401 = OpLabel
-      %74403 = OpIAdd %uint %156184 %int_1
-      %74404 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %156184
-      %74405 = OpLoad %float %74404
-               OpBranch %74415
-      %74414 = OpLabel
-               OpUnreachable
-      %74415 = OpLabel
-     %156912 = OpPhi %uint %74403 %74401 %156184 %74409
-     %156189 = OpPhi %uint %156183 %74401 %74411 %74409
-     %156186 = OpPhi %float %74405 %74401 %108197 %74409
-     %156185 = OpPhi %float %74405 %74401 %108198 %74409
-      %65941 = OpFAdd %float %156181 %156186
-      %65947 = OpFAdd %float %156180 %156185
-     %108226 = OpCompositeConstruct %_arr_float_uint_2 %65941 %65947
-      %74419 = OpIAdd %uint %156189 %int_1
-      %74421 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %156189
-               OpStore %74421 %108226
-               OpBranch %74338
-      %65923 = OpLabel
-               OpBranch %74359
-      %74338 = OpLabel
-     %229982 = OpPhi %uint %143139 %74415 %143139 %74466 %143139 %74517 %143139 %74568 %143139 %74619 %143139 %74670 %143139 %74721 %143139 %74772 %143139 %74823 %143139 %74874 %143139 %74925 %143139 %74976 %143139 %75027 %143139 %75078 %143139 %75129 %143139 %75180 %143139 %75231 %143139 %75282 %143139 %75333 %143139 %75384 %143139 %75435 %143139 %75486 %143139 %75537 %143139 %75588 %143139 %75639 %143139 %75690 %143139 %75741 %143139 %75792 %143139 %75843 %143139 %75894 %143139 %75945 %143139 %75996 %143139 %76047 %143139 %76098 %143139 %76149 %143139 %76200 %143139 %76251 %143139 %76302 %143139 %76353 %143139 %76404 %143139 %76455 %143139 %76506 %143139 %76557 %143139 %76585 %143139 %76613 %143139 %76641 %143139 %76692 %143139 %76743 %143139 %76794 %143139 %76822 %143139 %76850 %143139 %76878 %143139 %76906 %143139 %76934 %143139 %76962 %143139 %76990 %143139 %77018 %143139 %77046 %143139 %77074 %143139 %77102 %143139 %77130 %143139 %77158 %143139 %77186 %143139 %77214 %143139 %77242 %143139 %77270 %143139 %77298 %143139 %77326 %143139 %77354 %143139 %77382 %143139 %77410 %143139 %77438 %143139 %77466 %143139 %77494 %143139 %77545 %143139 %77596 %143139 %77670 %143139 %77698 %143139 %77726 %143139 %77754 %143139 %77782 %143139 %77810 %143139 %77838 %143139 %77866 %143139 %77894 %143139 %77922 %143139 %77950 %143139 %77978 %143139 %78006 %143139 %78034 %143139 %78062 %143139 %78090 %143139 %78118 %143139 %78146 %143139 %78174 %143139 %78202 %143139 %78230 %143139 %78258 %143139 %78286 %143139 %78314 %143139 %78342 %143139 %78370 %143139 %78421 %143139 %78472 %143139 %78546 %143139 %78574 %143139 %78602 %143139 %78630 %143139 %78658 %143139 %78686 %143139 %78714 %143139 %78742 %143139 %78770 %143139 %78798 %143139 %78826 %143139 %78854 %143139 %78882 %143139 %78910 %143139 %78938 %143139 %78966 %143139 %78994 %143139 %79022 %143139 %79050 %143139 %79078 %143139 %79106 %143139 %79134 %143139 %79162 %143139 %79190 %143139 %79218 %143139 %79246 %143139 %79297 %143139 %79348 %143139 %79422 %143139 %79450 %143139 %79478 %143139 %79506 %143139 %79534 %143139 %79562 %143139 %79590 %143139 %79618 %143139 %79646 %143139 %79674 %143139 %79702 %143139 %79730 %143139 %79758 %143139 %79786 %143139 %79814 %143139 %79842 %143139 %79870 %143139 %79898 %143139 %79926 %143139 %79954 %143139 %79982 %143139 %80010 %143139 %80038 %143139 %80066 %143139 %80094 %143139 %80122 %143139 %80173 %143139 %80224 %143139 %80298 %143139 %80372 %143139 %80446 %143139 %80520 %143139 %80594 %143139 %80668 %143139 %80742 %143139 %80816 %143139 %80890 %143139 %80964 %143139 %81038 %143139 %81112 %143139 %81186 %143139 %81260 %143139 %81334 %143139 %81362 %143139 %81390 %143139 %81418 %143139 %81469 %143139 %81543 %143139 %81594 %143139 %81691 %143139 %81765 %143139 %81816 %143139 %81867 %143139 %81895 %143139 %81938 %230273 %81971 %143139 %82009 %143139 %82052 %143139 %82080 %143139 %82113 %143139 %82151 %143139 %73397 %143139 %82222 %143139 %82250 %143139 %82278 %143139 %82306 %143139 %82334 %143139 %82362 %143139 %82390 %143139 %82447 %143139 %82504 %143139 %73778 %143139 %73794 %143139 %73810 %143139 %73826 %143139 %73832 %143139 %73838 %143139 %73844 %143139 %73850 %143139 %73853 %143139 %73863 %143139 %73880 %143139 %73904 %143139 %73920 %143139 %73936 %143139 %73952 %143139 %73958 %143139 %73964 %143139 %73970 %143139 %73976 %143139 %73979 %143139 %73989 %143139 %74006 %143139 %74030 %143139 %74046 %143139 %74062 %143139 %74078 %143139 %74084 %143139 %74090 %143139 %74096 %143139 %74102 %143139 %74105 %143139 %74115 %143139 %74132 %143139 %74156 %143139 %74172 %143139 %74188 %143139 %74204 %143139 %74210 %143139 %74216 %143139 %74222 %143139 %74228 %143139 %74231 %143139 %74241 %143139 %74258 %143139 %82635 %143139 %74330
-     %229665 = OpPhi %uint %143137 %74415 %143137 %74466 %143137 %74517 %143137 %74568 %143137 %74619 %143137 %74670 %143137 %74721 %143137 %74772 %143137 %74823 %143137 %74874 %143137 %74925 %143137 %74976 %143137 %75027 %143137 %75078 %143137 %75129 %143137 %75180 %143137 %75231 %143137 %75282 %143137 %75333 %143137 %75384 %143137 %75435 %143137 %75486 %143137 %75537 %143137 %75588 %143137 %75639 %143137 %75690 %143137 %75741 %143137 %75792 %143137 %75843 %143137 %75894 %143137 %75945 %143137 %75996 %143137 %76047 %143137 %76098 %143137 %76149 %143137 %76200 %143137 %76251 %143137 %76302 %143137 %76353 %143137 %76404 %143137 %76455 %143137 %76506 %143137 %76557 %143137 %76585 %143137 %76613 %143137 %76641 %143137 %76692 %143137 %76743 %143137 %76794 %143137 %76822 %143137 %76850 %143137 %76878 %143137 %76906 %143137 %76934 %143137 %76962 %143137 %76990 %143137 %77018 %143137 %77046 %143137 %77074 %143137 %77102 %143137 %77130 %143137 %77158 %143137 %77186 %143137 %77214 %143137 %77242 %143137 %77270 %143137 %77298 %143137 %77326 %143137 %77354 %143137 %77382 %143137 %77410 %143137 %77438 %143137 %77466 %143137 %77494 %143137 %77545 %143137 %77596 %143137 %77670 %143137 %77698 %143137 %77726 %143137 %77754 %143137 %77782 %143137 %77810 %143137 %77838 %143137 %77866 %143137 %77894 %143137 %77922 %143137 %77950 %143137 %77978 %143137 %78006 %143137 %78034 %143137 %78062 %143137 %78090 %143137 %78118 %143137 %78146 %143137 %78174 %143137 %78202 %143137 %78230 %143137 %78258 %143137 %78286 %143137 %78314 %143137 %78342 %143137 %78370 %143137 %78421 %143137 %78472 %143137 %78546 %143137 %78574 %143137 %78602 %143137 %78630 %143137 %78658 %143137 %78686 %143137 %78714 %143137 %78742 %143137 %78770 %143137 %78798 %143137 %78826 %143137 %78854 %143137 %78882 %143137 %78910 %143137 %78938 %143137 %78966 %143137 %78994 %143137 %79022 %143137 %79050 %143137 %79078 %143137 %79106 %143137 %79134 %143137 %79162 %143137 %79190 %143137 %79218 %143137 %79246 %143137 %79297 %143137 %79348 %143137 %79422 %143137 %79450 %143137 %79478 %143137 %79506 %143137 %79534 %143137 %79562 %143137 %79590 %143137 %79618 %143137 %79646 %143137 %79674 %143137 %79702 %143137 %79730 %143137 %79758 %143137 %79786 %143137 %79814 %143137 %79842 %143137 %79870 %143137 %79898 %143137 %79926 %143137 %79954 %143137 %79982 %143137 %80010 %143137 %80038 %143137 %80066 %143137 %80094 %143137 %80122 %143137 %80173 %143137 %80224 %143137 %80298 %143137 %80372 %143137 %80446 %143137 %80520 %143137 %80594 %143137 %80668 %143137 %80742 %143137 %80816 %143137 %80890 %143137 %80964 %143137 %81038 %143137 %81112 %143137 %81186 %143137 %81260 %143137 %81334 %143137 %81362 %143137 %81390 %143137 %81418 %143137 %81469 %143137 %81543 %143137 %81594 %143137 %81691 %143137 %81765 %143137 %81816 %143137 %81867 %143137 %81895 %143137 %81938 %229956 %81971 %143137 %82009 %143137 %82052 %143137 %82080 %143137 %82113 %143137 %82151 %143137 %73397 %143137 %82222 %143137 %82250 %143137 %82278 %143137 %82306 %143137 %82334 %143137 %82362 %143137 %82390 %143137 %82447 %143137 %82504 %143137 %73778 %143137 %73794 %143137 %73810 %143137 %73826 %143137 %73832 %143137 %73838 %143137 %73844 %143137 %73850 %143137 %73853 %143137 %73863 %143137 %73880 %143137 %73904 %143137 %73920 %143137 %73936 %143137 %73952 %143137 %73958 %143137 %73964 %143137 %73970 %143137 %73976 %143137 %73979 %143137 %73989 %143137 %74006 %143137 %74030 %143137 %74046 %143137 %74062 %143137 %74078 %143137 %74084 %143137 %74090 %143137 %74096 %143137 %74102 %143137 %74105 %143137 %74115 %143137 %74132 %143137 %74156 %143137 %74172 %143137 %74188 %143137 %74204 %143137 %74210 %143137 %74216 %143137 %74222 %143137 %74228 %143137 %74231 %143137 %74241 %143137 %74258 %143137 %82635 %143137 %74330
-     %229348 = OpPhi %uint %143132 %74415 %143132 %74466 %143132 %74517 %143132 %74568 %143132 %74619 %143132 %74670 %143132 %74721 %143132 %74772 %143132 %74823 %143132 %74874 %143132 %74925 %143132 %74976 %143132 %75027 %143132 %75078 %143132 %75129 %143132 %75180 %143132 %75231 %143132 %75282 %143132 %75333 %143132 %75384 %143132 %75435 %143132 %75486 %143132 %75537 %143132 %75588 %143132 %75639 %143132 %75690 %143132 %75741 %143132 %75792 %143132 %75843 %143132 %75894 %143132 %75945 %143132 %75996 %143132 %76047 %143132 %76098 %143132 %76149 %143132 %76200 %143132 %76251 %143132 %76302 %143132 %76353 %143132 %76404 %143132 %76455 %143132 %76506 %143132 %76557 %143132 %76585 %143132 %76613 %143132 %76641 %143132 %76692 %143132 %76743 %143132 %76794 %143132 %76822 %143132 %76850 %143132 %76878 %143132 %76906 %143132 %76934 %143132 %76962 %143132 %76990 %143132 %77018 %143132 %77046 %143132 %77074 %143132 %77102 %143132 %77130 %143132 %77158 %143132 %77186 %143132 %77214 %143132 %77242 %143132 %77270 %143132 %77298 %143132 %77326 %143132 %77354 %143132 %77382 %143132 %77410 %143132 %77438 %143132 %77466 %143132 %77494 %143132 %77545 %143132 %77596 %143132 %77670 %143132 %77698 %143132 %77726 %143132 %77754 %143132 %77782 %143132 %77810 %143132 %77838 %143132 %77866 %143132 %77894 %143132 %77922 %143132 %77950 %143132 %77978 %143132 %78006 %143132 %78034 %143132 %78062 %143132 %78090 %143132 %78118 %143132 %78146 %143132 %78174 %143132 %78202 %143132 %78230 %143132 %78258 %143132 %78286 %143132 %78314 %143132 %78342 %143132 %78370 %143132 %78421 %143132 %78472 %143132 %78546 %143132 %78574 %143132 %78602 %143132 %78630 %143132 %78658 %143132 %78686 %143132 %78714 %143132 %78742 %143132 %78770 %143132 %78798 %143132 %78826 %143132 %78854 %143132 %78882 %143132 %78910 %143132 %78938 %143132 %78966 %143132 %78994 %143132 %79022 %143132 %79050 %143132 %79078 %143132 %79106 %143132 %79134 %143132 %79162 %143132 %79190 %143132 %79218 %143132 %79246 %143132 %79297 %143132 %79348 %143132 %79422 %143132 %79450 %143132 %79478 %143132 %79506 %143132 %79534 %143132 %79562 %143132 %79590 %143132 %79618 %143132 %79646 %143132 %79674 %143132 %79702 %143132 %79730 %143132 %79758 %143132 %79786 %143132 %79814 %143132 %79842 %143132 %79870 %143132 %79898 %143132 %79926 %143132 %79954 %143132 %79982 %143132 %80010 %143132 %80038 %143132 %80066 %143132 %80094 %143132 %80122 %143132 %80173 %143132 %80224 %143132 %80298 %143132 %80372 %143132 %80446 %143132 %80520 %143132 %80594 %143132 %80668 %143132 %80742 %143132 %80816 %143132 %80890 %143132 %80964 %143132 %81038 %143132 %81112 %143132 %81186 %143132 %81260 %143132 %81334 %143132 %81362 %143132 %81390 %143132 %81418 %143132 %81469 %143132 %81543 %143132 %81594 %143132 %81691 %143132 %81765 %143132 %81816 %143132 %81867 %143132 %81895 %143132 %81938 %143132 %81971 %229640 %82009 %143132 %82052 %143132 %82080 %143132 %82113 %143132 %82151 %143132 %73397 %143132 %82222 %143132 %82250 %143132 %82278 %143132 %82306 %143132 %82334 %143132 %82362 %143132 %82390 %143132 %82447 %143132 %82504 %143132 %73778 %143132 %73794 %143132 %73810 %143132 %73826 %143132 %73832 %143132 %73838 %143132 %73844 %143132 %73850 %143132 %73853 %143132 %73863 %143132 %73880 %143132 %73904 %143132 %73920 %143132 %73936 %143132 %73952 %143132 %73958 %143132 %73964 %143132 %73970 %143132 %73976 %143132 %73979 %143132 %73989 %143132 %74006 %143132 %74030 %143132 %74046 %143132 %74062 %143132 %74078 %143132 %74084 %143132 %74090 %143132 %74096 %143132 %74102 %143132 %74105 %143132 %74115 %143132 %74132 %143132 %74156 %143132 %74172 %143132 %74188 %143132 %74204 %143132 %74210 %143132 %74216 %143132 %74222 %143132 %74228 %143132 %74231 %143132 %74241 %143132 %74258 %143132 %82635 %143132 %74330
-     %229031 = OpPhi %uint %143130 %74415 %143130 %74466 %143130 %74517 %143130 %74568 %143130 %74619 %143130 %74670 %143130 %74721 %143130 %74772 %143130 %74823 %143130 %74874 %143130 %74925 %143130 %74976 %143130 %75027 %143130 %75078 %143130 %75129 %143130 %75180 %143130 %75231 %143130 %75282 %143130 %75333 %143130 %75384 %143130 %75435 %143130 %75486 %143130 %75537 %143130 %75588 %143130 %75639 %143130 %75690 %143130 %75741 %143130 %75792 %143130 %75843 %143130 %75894 %143130 %75945 %143130 %75996 %143130 %76047 %143130 %76098 %143130 %76149 %143130 %76200 %143130 %76251 %143130 %76302 %143130 %76353 %143130 %76404 %143130 %76455 %143130 %76506 %143130 %76557 %143130 %76585 %143130 %76613 %143130 %76641 %143130 %76692 %143130 %76743 %143130 %76794 %143130 %76822 %143130 %76850 %143130 %76878 %143130 %76906 %143130 %76934 %143130 %76962 %143130 %76990 %143130 %77018 %143130 %77046 %143130 %77074 %143130 %77102 %143130 %77130 %143130 %77158 %143130 %77186 %143130 %77214 %143130 %77242 %143130 %77270 %143130 %77298 %143130 %77326 %143130 %77354 %143130 %77382 %143130 %77410 %143130 %77438 %143130 %77466 %143130 %77494 %143130 %77545 %143130 %77596 %143130 %77670 %143130 %77698 %143130 %77726 %143130 %77754 %143130 %77782 %143130 %77810 %143130 %77838 %143130 %77866 %143130 %77894 %143130 %77922 %143130 %77950 %143130 %77978 %143130 %78006 %143130 %78034 %143130 %78062 %143130 %78090 %143130 %78118 %143130 %78146 %143130 %78174 %143130 %78202 %143130 %78230 %143130 %78258 %143130 %78286 %143130 %78314 %143130 %78342 %143130 %78370 %143130 %78421 %143130 %78472 %143130 %78546 %143130 %78574 %143130 %78602 %143130 %78630 %143130 %78658 %143130 %78686 %143130 %78714 %143130 %78742 %143130 %78770 %143130 %78798 %143130 %78826 %143130 %78854 %143130 %78882 %143130 %78910 %143130 %78938 %143130 %78966 %143130 %78994 %143130 %79022 %143130 %79050 %143130 %79078 %143130 %79106 %143130 %79134 %143130 %79162 %143130 %79190 %143130 %79218 %143130 %79246 %143130 %79297 %143130 %79348 %143130 %79422 %143130 %79450 %143130 %79478 %143130 %79506 %143130 %79534 %143130 %79562 %143130 %79590 %143130 %79618 %143130 %79646 %143130 %79674 %143130 %79702 %143130 %79730 %143130 %79758 %143130 %79786 %143130 %79814 %143130 %79842 %143130 %79870 %143130 %79898 %143130 %79926 %143130 %79954 %143130 %79982 %143130 %80010 %143130 %80038 %143130 %80066 %143130 %80094 %143130 %80122 %143130 %80173 %143130 %80224 %143130 %80298 %143130 %80372 %143130 %80446 %143130 %80520 %143130 %80594 %143130 %80668 %143130 %80742 %143130 %80816 %143130 %80890 %143130 %80964 %143130 %81038 %143130 %81112 %143130 %81186 %143130 %81260 %143130 %81334 %143130 %81362 %143130 %81390 %143130 %81418 %143130 %81469 %143130 %81543 %143130 %81594 %143130 %81691 %143130 %81765 %143130 %81816 %143130 %81867 %143130 %81895 %143130 %81938 %143130 %81971 %229323 %82009 %143130 %82052 %143130 %82080 %143130 %82113 %143130 %82151 %143130 %73397 %143130 %82222 %143130 %82250 %143130 %82278 %143130 %82306 %143130 %82334 %143130 %82362 %143130 %82390 %143130 %82447 %143130 %82504 %143130 %73778 %143130 %73794 %143130 %73810 %143130 %73826 %143130 %73832 %143130 %73838 %143130 %73844 %143130 %73850 %143130 %73853 %143130 %73863 %143130 %73880 %143130 %73904 %143130 %73920 %143130 %73936 %143130 %73952 %143130 %73958 %143130 %73964 %143130 %73970 %143130 %73976 %143130 %73979 %143130 %73989 %143130 %74006 %143130 %74030 %143130 %74046 %143130 %74062 %143130 %74078 %143130 %74084 %143130 %74090 %143130 %74096 %143130 %74102 %143130 %74105 %143130 %74115 %143130 %74132 %143130 %74156 %143130 %74172 %143130 %74188 %143130 %74204 %143130 %74210 %143130 %74216 %143130 %74222 %143130 %74228 %143130 %74231 %143130 %74241 %143130 %74258 %143130 %82635 %143130 %74330
-     %228714 = OpPhi %uint %143125 %74415 %143125 %74466 %143125 %74517 %143125 %74568 %143125 %74619 %143125 %74670 %143125 %74721 %143125 %74772 %143125 %74823 %143125 %74874 %143125 %74925 %143125 %74976 %143125 %75027 %143125 %75078 %143125 %75129 %143125 %75180 %143125 %75231 %143125 %75282 %143125 %75333 %143125 %75384 %143125 %75435 %143125 %75486 %143125 %75537 %143125 %75588 %143125 %75639 %143125 %75690 %143125 %75741 %143125 %75792 %143125 %75843 %143125 %75894 %143125 %75945 %143125 %75996 %143125 %76047 %143125 %76098 %143125 %76149 %143125 %76200 %143125 %76251 %143125 %76302 %143125 %76353 %143125 %76404 %143125 %76455 %143125 %76506 %143125 %76557 %143125 %76585 %143125 %76613 %143125 %76641 %143125 %76692 %143125 %76743 %143125 %76794 %143125 %76822 %143125 %76850 %143125 %76878 %143125 %76906 %143125 %76934 %143125 %76962 %143125 %76990 %143125 %77018 %143125 %77046 %143125 %77074 %143125 %77102 %143125 %77130 %143125 %77158 %143125 %77186 %143125 %77214 %143125 %77242 %143125 %77270 %143125 %77298 %143125 %77326 %143125 %77354 %143125 %77382 %143125 %77410 %143125 %77438 %143125 %77466 %143125 %77494 %143125 %77545 %143125 %77596 %143125 %77670 %143125 %77698 %143125 %77726 %143125 %77754 %143125 %77782 %143125 %77810 %143125 %77838 %143125 %77866 %143125 %77894 %143125 %77922 %143125 %77950 %143125 %77978 %143125 %78006 %143125 %78034 %143125 %78062 %143125 %78090 %143125 %78118 %143125 %78146 %143125 %78174 %143125 %78202 %143125 %78230 %143125 %78258 %143125 %78286 %143125 %78314 %143125 %78342 %143125 %78370 %143125 %78421 %143125 %78472 %143125 %78546 %143125 %78574 %143125 %78602 %143125 %78630 %143125 %78658 %143125 %78686 %143125 %78714 %143125 %78742 %143125 %78770 %143125 %78798 %143125 %78826 %143125 %78854 %143125 %78882 %143125 %78910 %143125 %78938 %143125 %78966 %143125 %78994 %143125 %79022 %143125 %79050 %143125 %79078 %143125 %79106 %143125 %79134 %143125 %79162 %143125 %79190 %143125 %79218 %143125 %79246 %143125 %79297 %143125 %79348 %143125 %79422 %143125 %79450 %143125 %79478 %143125 %79506 %143125 %79534 %143125 %79562 %143125 %79590 %143125 %79618 %143125 %79646 %143125 %79674 %143125 %79702 %143125 %79730 %143125 %79758 %143125 %79786 %143125 %79814 %143125 %79842 %143125 %79870 %143125 %79898 %143125 %79926 %143125 %79954 %143125 %79982 %143125 %80010 %143125 %80038 %143125 %80066 %143125 %80094 %143125 %80122 %143125 %80173 %143125 %80224 %143125 %80298 %143125 %80372 %143125 %80446 %143125 %80520 %143125 %80594 %143125 %80668 %143125 %80742 %143125 %80816 %143125 %80890 %143125 %80964 %143125 %81038 %143125 %81112 %143125 %81186 %143125 %81260 %143125 %81334 %143125 %81362 %143125 %81390 %143125 %81418 %143125 %81469 %143125 %81543 %143125 %81594 %143125 %81691 %143125 %81765 %143125 %81816 %143125 %81867 %229003 %81895 %229004 %81938 %143125 %81971 %143125 %82009 %229007 %82052 %143125 %82080 %143125 %82113 %143125 %82151 %143125 %73397 %143125 %82222 %143125 %82250 %143125 %82278 %143125 %82306 %143125 %82334 %143125 %82362 %143125 %82390 %143125 %82447 %143125 %82504 %143125 %73778 %143125 %73794 %143125 %73810 %143125 %73826 %143125 %73832 %143125 %73838 %143125 %73844 %143125 %73850 %143125 %73853 %143125 %73863 %143125 %73880 %143125 %73904 %143125 %73920 %143125 %73936 %143125 %73952 %143125 %73958 %143125 %73964 %143125 %73970 %143125 %73976 %143125 %73979 %143125 %73989 %143125 %74006 %143125 %74030 %143125 %74046 %143125 %74062 %143125 %74078 %143125 %74084 %143125 %74090 %143125 %74096 %143125 %74102 %143125 %74105 %143125 %74115 %143125 %74132 %143125 %74156 %143125 %74172 %143125 %74188 %143125 %74204 %143125 %74210 %143125 %74216 %143125 %74222 %143125 %74228 %143125 %74231 %143125 %74241 %143125 %74258 %143125 %82635 %143125 %74330
-     %228397 = OpPhi %uint %143123 %74415 %143123 %74466 %143123 %74517 %143123 %74568 %143123 %74619 %143123 %74670 %143123 %74721 %143123 %74772 %143123 %74823 %143123 %74874 %143123 %74925 %143123 %74976 %143123 %75027 %143123 %75078 %143123 %75129 %143123 %75180 %143123 %75231 %143123 %75282 %143123 %75333 %143123 %75384 %143123 %75435 %143123 %75486 %143123 %75537 %143123 %75588 %143123 %75639 %143123 %75690 %143123 %75741 %143123 %75792 %143123 %75843 %143123 %75894 %143123 %75945 %143123 %75996 %143123 %76047 %143123 %76098 %143123 %76149 %143123 %76200 %143123 %76251 %143123 %76302 %143123 %76353 %143123 %76404 %143123 %76455 %143123 %76506 %143123 %76557 %143123 %76585 %143123 %76613 %143123 %76641 %143123 %76692 %143123 %76743 %143123 %76794 %143123 %76822 %143123 %76850 %143123 %76878 %143123 %76906 %143123 %76934 %143123 %76962 %143123 %76990 %143123 %77018 %143123 %77046 %143123 %77074 %143123 %77102 %143123 %77130 %143123 %77158 %143123 %77186 %143123 %77214 %143123 %77242 %143123 %77270 %143123 %77298 %143123 %77326 %143123 %77354 %143123 %77382 %143123 %77410 %143123 %77438 %143123 %77466 %143123 %77494 %143123 %77545 %143123 %77596 %143123 %77670 %143123 %77698 %143123 %77726 %143123 %77754 %143123 %77782 %143123 %77810 %143123 %77838 %143123 %77866 %143123 %77894 %143123 %77922 %143123 %77950 %143123 %77978 %143123 %78006 %143123 %78034 %143123 %78062 %143123 %78090 %143123 %78118 %143123 %78146 %143123 %78174 %143123 %78202 %143123 %78230 %143123 %78258 %143123 %78286 %143123 %78314 %143123 %78342 %143123 %78370 %143123 %78421 %143123 %78472 %143123 %78546 %143123 %78574 %143123 %78602 %143123 %78630 %143123 %78658 %143123 %78686 %143123 %78714 %143123 %78742 %143123 %78770 %143123 %78798 %143123 %78826 %143123 %78854 %143123 %78882 %143123 %78910 %143123 %78938 %143123 %78966 %143123 %78994 %143123 %79022 %143123 %79050 %143123 %79078 %143123 %79106 %143123 %79134 %143123 %79162 %143123 %79190 %143123 %79218 %143123 %79246 %143123 %79297 %143123 %79348 %143123 %79422 %143123 %79450 %143123 %79478 %143123 %79506 %143123 %79534 %143123 %79562 %143123 %79590 %143123 %79618 %143123 %79646 %143123 %79674 %143123 %79702 %143123 %79730 %143123 %79758 %143123 %79786 %143123 %79814 %143123 %79842 %143123 %79870 %143123 %79898 %143123 %79926 %143123 %79954 %143123 %79982 %143123 %80010 %143123 %80038 %143123 %80066 %143123 %80094 %143123 %80122 %143123 %80173 %143123 %80224 %143123 %80298 %143123 %80372 %143123 %80446 %143123 %80520 %143123 %80594 %143123 %80668 %143123 %80742 %143123 %80816 %143123 %80890 %143123 %80964 %143123 %81038 %143123 %81112 %143123 %81186 %143123 %81260 %143123 %81334 %143123 %81362 %143123 %81390 %143123 %81418 %143123 %81469 %143123 %81543 %143123 %81594 %143123 %81691 %143123 %81765 %143123 %81816 %143123 %81867 %228686 %81895 %228687 %81938 %143123 %81971 %143123 %82009 %228690 %82052 %143123 %82080 %143123 %82113 %143123 %82151 %143123 %73397 %143123 %82222 %143123 %82250 %143123 %82278 %143123 %82306 %143123 %82334 %143123 %82362 %143123 %82390 %143123 %82447 %143123 %82504 %143123 %73778 %143123 %73794 %143123 %73810 %143123 %73826 %143123 %73832 %143123 %73838 %143123 %73844 %143123 %73850 %143123 %73853 %143123 %73863 %143123 %73880 %143123 %73904 %143123 %73920 %143123 %73936 %143123 %73952 %143123 %73958 %143123 %73964 %143123 %73970 %143123 %73976 %143123 %73979 %143123 %73989 %143123 %74006 %143123 %74030 %143123 %74046 %143123 %74062 %143123 %74078 %143123 %74084 %143123 %74090 %143123 %74096 %143123 %74102 %143123 %74105 %143123 %74115 %143123 %74132 %143123 %74156 %143123 %74172 %143123 %74188 %143123 %74204 %143123 %74210 %143123 %74216 %143123 %74222 %143123 %74228 %143123 %74231 %143123 %74241 %143123 %74258 %143123 %82635 %143123 %74330
-     %226818 = OpPhi %uint %141789 %74415 %226821 %74466 %226823 %74517 %141789 %74568 %141789 %74619 %141789 %74670 %141789 %74721 %141789 %74772 %226834 %74823 %226836 %74874 %141789 %74925 %141789 %74976 %141789 %75027 %141789 %75078 %141789 %75129 %226847 %75180 %226849 %75231 %141789 %75282 %141789 %75333 %141789 %75384 %141789 %75435 %141789 %75486 %226860 %75537 %226862 %75588 %141789 %75639 %141789 %75690 %141789 %75741 %141789 %75792 %141789 %75843 %226873 %75894 %141789 %75945 %141789 %75996 %141789 %76047 %226880 %76098 %226882 %76149 %141789 %76200 %141789 %76251 %141789 %76302 %141789 %76353 %141789 %76404 %226893 %76455 %141789 %76506 %141789 %76557 %226898 %76585 %141789 %76613 %141789 %76641 %226901 %76692 %141789 %76743 %141789 %76794 %141789 %76822 %141789 %76850 %141789 %76878 %141789 %76906 %141789 %76934 %141789 %76962 %141789 %76990 %141789 %77018 %141789 %77046 %141789 %77074 %141789 %77102 %141789 %77130 %141789 %77158 %141789 %77186 %141789 %77214 %141789 %77242 %141789 %77270 %141789 %77298 %141789 %77326 %141789 %77354 %141789 %77382 %141789 %77410 %141789 %77438 %141789 %77466 %141789 %77494 %141789 %77545 %141789 %77596 %141789 %77670 %226940 %77698 %226941 %77726 %226942 %77754 %226943 %77782 %226944 %77810 %226945 %77838 %226946 %77866 %226947 %77894 %226948 %77922 %226949 %77950 %226950 %77978 %226951 %78006 %226952 %78034 %226953 %78062 %226954 %78090 %226955 %78118 %226956 %78146 %226957 %78174 %226958 %78202 %226959 %78230 %226960 %78258 %226961 %78286 %226962 %78314 %226963 %78342 %226964 %78370 %226965 %78421 %226966 %78472 %226967 %78546 %141789 %78574 %141789 %78602 %141789 %78630 %141789 %78658 %141789 %78686 %141789 %78714 %141789 %78742 %141789 %78770 %141789 %78798 %141789 %78826 %141789 %78854 %141789 %78882 %141789 %78910 %141789 %78938 %141789 %78966 %141789 %78994 %141789 %79022 %141789 %79050 %141789 %79078 %141789 %79106 %141789 %79134 %141789 %79162 %141789 %79190 %141789 %79218 %141789 %79246 %141789 %79297 %141789 %79348 %141789 %79422 %141789 %79450 %141789 %79478 %141789 %79506 %141789 %79534 %141789 %79562 %141789 %79590 %141789 %79618 %141789 %79646 %141789 %79674 %141789 %79702 %141789 %79730 %141789 %79758 %141789 %79786 %141789 %79814 %141789 %79842 %141789 %79870 %141789 %79898 %141789 %79926 %141789 %79954 %141789 %79982 %141789 %80010 %141789 %80038 %141789 %80066 %141789 %80094 %141789 %80122 %141789 %80173 %141789 %80224 %141789 %80298 %141789 %80372 %141789 %80446 %227038 %80520 %227039 %80594 %227042 %80668 %227044 %80742 %141789 %80816 %141789 %80890 %141789 %80964 %141789 %81038 %141789 %81112 %141789 %81186 %141789 %81260 %141789 %81334 %227069 %81362 %141789 %81390 %141789 %81418 %141789 %81469 %141789 %81543 %227078 %81594 %141789 %81691 %227085 %81765 %141789 %81816 %227088 %81867 %141789 %81895 %141789 %81938 %141789 %81971 %141789 %82009 %141789 %82052 %227094 %82080 %141789 %82113 %141789 %82151 %141789 %73397 %141789 %82222 %227101 %82250 %227102 %82278 %141789 %82306 %141789 %82334 %141789 %82362 %141789 %82390 %141789 %82447 %141789 %82504 %141789 %73778 %141789 %73794 %141789 %73810 %141789 %73826 %141789 %73832 %141789 %73838 %141789 %73844 %141789 %73850 %141789 %73853 %141789 %73863 %141789 %73880 %141789 %73904 %141789 %73920 %141789 %73936 %141789 %73952 %141789 %73958 %141789 %73964 %141789 %73970 %141789 %73976 %141789 %73979 %141789 %73989 %141789 %74006 %141789 %74030 %141789 %74046 %141789 %74062 %141789 %74078 %141789 %74084 %141789 %74090 %141789 %74096 %141789 %74102 %141789 %74105 %141789 %74115 %141789 %74132 %141789 %74156 %141789 %74172 %141789 %74188 %141789 %74204 %141789 %74210 %141789 %74216 %141789 %74222 %141789 %74228 %141789 %74231 %141789 %74241 %141789 %74258 %141789 %82635 %141789 %74330
-     %225238 = OpPhi %uint %140467 %74415 %140467 %74466 %140467 %74517 %140467 %74568 %140467 %74619 %225249 %74670 %225251 %74721 %140467 %74772 %140467 %74823 %140467 %74874 %140467 %74925 %140467 %74976 %225262 %75027 %225264 %75078 %140467 %75129 %140467 %75180 %140467 %75231 %140467 %75282 %140467 %75333 %225275 %75384 %225277 %75435 %140467 %75486 %140467 %75537 %140467 %75588 %140467 %75639 %140467 %75690 %225288 %75741 %225290 %75792 %140467 %75843 %140467 %75894 %140467 %75945 %225297 %75996 %140467 %76047 %140467 %76098 %140467 %76149 %140467 %76200 %140467 %76251 %225308 %76302 %225310 %76353 %140467 %76404 %140467 %76455 %140467 %76506 %225317 %76557 %140467 %76585 %140467 %76613 %225320 %76641 %140467 %76692 %140467 %76743 %225325 %76794 %140467 %76822 %140467 %76850 %140467 %76878 %140467 %76906 %140467 %76934 %140467 %76962 %140467 %76990 %140467 %77018 %140467 %77046 %140467 %77074 %140467 %77102 %140467 %77130 %140467 %77158 %140467 %77186 %140467 %77214 %140467 %77242 %140467 %77270 %140467 %77298 %140467 %77326 %140467 %77354 %140467 %77382 %140467 %77410 %140467 %77438 %140467 %77466 %140467 %77494 %140467 %77545 %140467 %77596 %140467 %77670 %140467 %77698 %140467 %77726 %140467 %77754 %140467 %77782 %140467 %77810 %140467 %77838 %140467 %77866 %140467 %77894 %140467 %77922 %140467 %77950 %140467 %77978 %140467 %78006 %140467 %78034 %140467 %78062 %140467 %78090 %140467 %78118 %140467 %78146 %140467 %78174 %140467 %78202 %140467 %78230 %140467 %78258 %140467 %78286 %140467 %78314 %140467 %78342 %140467 %78370 %140467 %78421 %140467 %78472 %140467 %78546 %140467 %78574 %140467 %78602 %140467 %78630 %140467 %78658 %140467 %78686 %140467 %78714 %140467 %78742 %140467 %78770 %140467 %78798 %140467 %78826 %140467 %78854 %140467 %78882 %140467 %78910 %140467 %78938 %140467 %78966 %140467 %78994 %140467 %79022 %140467 %79050 %140467 %79078 %140467 %79106 %140467 %79134 %140467 %79162 %140467 %79190 %140467 %79218 %140467 %79246 %140467 %79297 %140467 %79348 %140467 %79422 %225424 %79450 %225425 %79478 %225426 %79506 %225427 %79534 %225428 %79562 %225429 %79590 %225430 %79618 %225431 %79646 %225432 %79674 %225433 %79702 %225434 %79730 %225435 %79758 %225436 %79786 %225437 %79814 %225438 %79842 %225439 %79870 %225440 %79898 %225441 %79926 %225442 %79954 %225443 %79982 %225444 %80010 %225445 %80038 %225446 %80066 %225447 %80094 %225448 %80122 %225449 %80173 %225450 %80224 %225451 %80298 %140467 %80372 %140467 %80446 %140467 %80520 %140467 %80594 %140467 %80668 %140467 %80742 %140467 %80816 %140467 %80890 %140467 %80964 %140467 %81038 %225482 %81112 %225483 %81186 %225486 %81260 %225488 %81334 %140467 %81362 %140467 %81390 %225491 %81418 %140467 %81469 %140467 %81543 %140467 %81594 %140467 %81691 %140467 %81765 %140467 %81816 %140467 %81867 %140467 %81895 %140467 %81938 %140467 %81971 %140467 %82009 %140467 %82052 %140467 %82080 %140467 %82113 %225517 %82151 %140467 %73397 %140467 %82222 %140467 %82250 %140467 %82278 %140467 %82306 %140467 %82334 %225526 %82362 %225527 %82390 %140467 %82447 %140467 %82504 %140467 %73778 %140467 %73794 %140467 %73810 %140467 %73826 %140467 %73832 %140467 %73838 %140467 %73844 %140467 %73850 %140467 %73853 %140467 %73863 %140467 %73880 %140467 %73904 %140467 %73920 %140467 %73936 %140467 %73952 %140467 %73958 %140467 %73964 %140467 %73970 %140467 %73976 %140467 %73979 %140467 %73989 %140467 %74006 %140467 %74030 %140467 %74046 %140467 %74062 %140467 %74078 %140467 %74084 %140467 %74090 %140467 %74096 %140467 %74102 %140467 %74105 %140467 %74115 %140467 %74132 %140467 %74156 %140467 %74172 %140467 %74188 %140467 %74204 %140467 %74210 %140467 %74216 %140467 %74222 %140467 %74228 %140467 %74231 %140467 %74241 %140467 %74258 %140467 %82635 %140467 %74330
-     %224996 = OpPhi %uint %140443 %74415 %74470 %74466 %74521 %74517 %140443 %74568 %140443 %74619 %140443 %74670 %140443 %74721 %140443 %74772 %74827 %74823 %74878 %74874 %140443 %74925 %140443 %74976 %140443 %75027 %140443 %75078 %140443 %75129 %75184 %75180 %75235 %75231 %140443 %75282 %140443 %75333 %140443 %75384 %140443 %75435 %140443 %75486 %75541 %75537 %75592 %75588 %140443 %75639 %140443 %75690 %140443 %75741 %140443 %75792 %140443 %75843 %75898 %75894 %140443 %75945 %140443 %75996 %140443 %76047 %76102 %76098 %76153 %76149 %140443 %76200 %140443 %76251 %140443 %76302 %140443 %76353 %140443 %76404 %225055 %76455 %140443 %76506 %140443 %76557 %225060 %76585 %140443 %76613 %140443 %76641 %225063 %76692 %140443 %76743 %140443 %76794 %140443 %76822 %140443 %76850 %140443 %76878 %140443 %76906 %140443 %76934 %140443 %76962 %140443 %76990 %140443 %77018 %140443 %77046 %140443 %77074 %140443 %77102 %140443 %77130 %140443 %77158 %140443 %77186 %140443 %77214 %140443 %77242 %140443 %77270 %140443 %77298 %140443 %77326 %140443 %77354 %140443 %77382 %140443 %77410 %140443 %77438 %140443 %77466 %140443 %77494 %140443 %77545 %140443 %77596 %140443 %77670 %77702 %77698 %77730 %77726 %77758 %77754 %77786 %77782 %77814 %77810 %77842 %77838 %77870 %77866 %77898 %77894 %77926 %77922 %77954 %77950 %77982 %77978 %78010 %78006 %78038 %78034 %78066 %78062 %78094 %78090 %78122 %78118 %78150 %78146 %78178 %78174 %78206 %78202 %78234 %78230 %78262 %78258 %78290 %78286 %78318 %78314 %78346 %78342 %78374 %78370 %78425 %78421 %78476 %78472 %78550 %78546 %140443 %78574 %140443 %78602 %140443 %78630 %140443 %78658 %140443 %78686 %140443 %78714 %140443 %78742 %140443 %78770 %140443 %78798 %140443 %78826 %140443 %78854 %140443 %78882 %140443 %78910 %140443 %78938 %140443 %78966 %140443 %78994 %140443 %79022 %140443 %79050 %140443 %79078 %140443 %79106 %140443 %79134 %140443 %79162 %140443 %79190 %140443 %79218 %140443 %79246 %140443 %79297 %140443 %79348 %140443 %79422 %140443 %79450 %140443 %79478 %140443 %79506 %140443 %79534 %140443 %79562 %140443 %79590 %140443 %79618 %140443 %79646 %140443 %79674 %140443 %79702 %140443 %79730 %140443 %79758 %140443 %79786 %140443 %79814 %140443 %79842 %140443 %79870 %140443 %79898 %140443 %79926 %140443 %79954 %140443 %79982 %140443 %80010 %140443 %80038 %140443 %80066 %140443 %80094 %140443 %80122 %140443 %80173 %140443 %80224 %140443 %80298 %140443 %80372 %140443 %80446 %80524 %80520 %80598 %80594 %80672 %80668 %80746 %80742 %140443 %80816 %140443 %80890 %140443 %80964 %140443 %81038 %140443 %81112 %140443 %81186 %140443 %81260 %140443 %81334 %81366 %81362 %140443 %81390 %140443 %81418 %81473 %81469 %140443 %81543 %225202 %81594 %140443 %81691 %225209 %81765 %140443 %81816 %225212 %81867 %140443 %81895 %81947 %81938 %140443 %81971 %140443 %82009 %140443 %82052 %225217 %82080 %140443 %82113 %140443 %82151 %140443 %73397 %140443 %82222 %82254 %82250 %82282 %82278 %140443 %82306 %140443 %82334 %140443 %82362 %140443 %82390 %140443 %82447 %140443 %82504 %140443 %73778 %140443 %73794 %140443 %73810 %140443 %73826 %140443 %73832 %140443 %73838 %140443 %73844 %140443 %73850 %140443 %73853 %140443 %73863 %140443 %73880 %140443 %73904 %140443 %73920 %140443 %73936 %82533 %73952 %82538 %73958 %82543 %73964 %82548 %73970 %73978 %73976 %73988 %73979 %74005 %73989 %74029 %74006 %140443 %74030 %140443 %74046 %140443 %74062 %140443 %74078 %140443 %74084 %140443 %74090 %140443 %74096 %140443 %74102 %140443 %74105 %140443 %74115 %140443 %74132 %140443 %74156 %140443 %74172 %140443 %74188 %140443 %74204 %140443 %74210 %140443 %74216 %140443 %74222 %140443 %74228 %140443 %74231 %140443 %74241 %140443 %74258 %140443 %82635 %140443 %74330
-     %224763 = OpPhi %uint %140441 %74415 %140441 %74466 %140441 %74517 %140441 %74568 %140441 %74619 %74674 %74670 %74725 %74721 %140441 %74772 %140441 %74823 %140441 %74874 %140441 %74925 %140441 %74976 %75031 %75027 %75082 %75078 %140441 %75129 %140441 %75180 %140441 %75231 %140441 %75282 %140441 %75333 %75388 %75384 %75439 %75435 %140441 %75486 %140441 %75537 %140441 %75588 %140441 %75639 %140441 %75690 %75745 %75741 %75796 %75792 %140441 %75843 %140441 %75894 %140441 %75945 %76000 %75996 %140441 %76047 %140441 %76098 %140441 %76149 %140441 %76200 %140441 %76251 %76306 %76302 %76357 %76353 %140441 %76404 %140441 %76455 %140441 %76506 %224826 %76557 %140441 %76585 %140441 %76613 %224829 %76641 %140441 %76692 %140441 %76743 %224834 %76794 %140441 %76822 %140441 %76850 %140441 %76878 %140441 %76906 %140441 %76934 %140441 %76962 %140441 %76990 %140441 %77018 %140441 %77046 %140441 %77074 %140441 %77102 %140441 %77130 %140441 %77158 %140441 %77186 %140441 %77214 %140441 %77242 %140441 %77270 %140441 %77298 %140441 %77326 %140441 %77354 %140441 %77382 %140441 %77410 %140441 %77438 %140441 %77466 %140441 %77494 %140441 %77545 %140441 %77596 %140441 %77670 %140441 %77698 %140441 %77726 %140441 %77754 %140441 %77782 %140441 %77810 %140441 %77838 %140441 %77866 %140441 %77894 %140441 %77922 %140441 %77950 %140441 %77978 %140441 %78006 %140441 %78034 %140441 %78062 %140441 %78090 %140441 %78118 %140441 %78146 %140441 %78174 %140441 %78202 %140441 %78230 %140441 %78258 %140441 %78286 %140441 %78314 %140441 %78342 %140441 %78370 %140441 %78421 %140441 %78472 %140441 %78546 %140441 %78574 %140441 %78602 %140441 %78630 %140441 %78658 %140441 %78686 %140441 %78714 %140441 %78742 %140441 %78770 %140441 %78798 %140441 %78826 %140441 %78854 %140441 %78882 %140441 %78910 %140441 %78938 %140441 %78966 %140441 %78994 %140441 %79022 %140441 %79050 %140441 %79078 %140441 %79106 %140441 %79134 %140441 %79162 %140441 %79190 %140441 %79218 %140441 %79246 %140441 %79297 %140441 %79348 %140441 %79422 %79454 %79450 %79482 %79478 %79510 %79506 %79538 %79534 %79566 %79562 %79594 %79590 %79622 %79618 %79650 %79646 %79678 %79674 %79706 %79702 %79734 %79730 %79762 %79758 %79790 %79786 %79818 %79814 %79846 %79842 %79874 %79870 %79902 %79898 %79930 %79926 %79958 %79954 %79986 %79982 %80014 %80010 %80042 %80038 %80070 %80066 %80098 %80094 %80126 %80122 %80177 %80173 %80228 %80224 %80302 %80298 %140441 %80372 %140441 %80446 %140441 %80520 %140441 %80594 %140441 %80668 %140441 %80742 %140441 %80816 %140441 %80890 %140441 %80964 %140441 %81038 %81116 %81112 %81190 %81186 %81264 %81260 %81338 %81334 %140441 %81362 %140441 %81390 %81422 %81418 %140441 %81469 %140441 %81543 %140441 %81594 %81695 %81691 %81769 %81765 %81820 %81816 %81871 %81867 %140441 %81895 %140441 %81938 %140441 %81971 %82028 %82009 %82056 %82052 %140441 %82080 %140441 %82113 %224977 %82151 %140441 %73397 %140441 %82222 %140441 %82250 %140441 %82278 %140441 %82306 %140441 %82334 %82366 %82362 %82394 %82390 %140441 %82447 %140441 %82504 %140441 %73778 %140441 %73794 %140441 %73810 %140441 %73826 %140441 %73832 %140441 %73838 %140441 %73844 %140441 %73850 %140441 %73853 %140441 %73863 %140441 %73880 %140441 %73904 %140441 %73920 %140441 %73936 %140441 %73952 %140441 %73958 %140441 %73964 %140441 %73970 %140441 %73976 %140441 %73979 %140441 %73989 %140441 %74006 %140441 %74030 %140441 %74046 %140441 %74062 %140441 %74078 %140441 %74084 %140441 %74090 %140441 %74096 %140441 %74102 %140441 %74105 %140441 %74115 %140441 %74132 %140441 %74156 %140441 %74172 %140441 %74188 %82573 %74204 %82578 %74210 %82583 %74216 %82588 %74222 %74230 %74228 %74240 %74231 %74257 %74241 %74281 %74258 %140441 %82635 %140441 %74330
-     %224465 = OpPhi %uint %140435 %74415 %140435 %74466 %140435 %74517 %224472 %74568 %224474 %74619 %140435 %74670 %140435 %74721 %140435 %74772 %140435 %74823 %140435 %74874 %224485 %74925 %224487 %74976 %140435 %75027 %140435 %75078 %140435 %75129 %140435 %75180 %140435 %75231 %224498 %75282 %224500 %75333 %140435 %75384 %140435 %75435 %140435 %75486 %140435 %75537 %140435 %75588 %224511 %75639 %224513 %75690 %140435 %75741 %140435 %75792 %140435 %75843 %140435 %75894 %224522 %75945 %140435 %75996 %140435 %76047 %140435 %76098 %140435 %76149 %224531 %76200 %224533 %76251 %140435 %76302 %140435 %76353 %224538 %76404 %140435 %76455 %224541 %76506 %140435 %76557 %140435 %76585 %224545 %76613 %140435 %76641 %140435 %76692 %224549 %76743 %140435 %76794 %140435 %76822 %140435 %76850 %140435 %76878 %140435 %76906 %140435 %76934 %140435 %76962 %140435 %76990 %140435 %77018 %140435 %77046 %140435 %77074 %140435 %77102 %140435 %77130 %140435 %77158 %140435 %77186 %140435 %77214 %140435 %77242 %140435 %77270 %140435 %77298 %140435 %77326 %140435 %77354 %140435 %77382 %140435 %77410 %140435 %77438 %140435 %77466 %140435 %77494 %140435 %77545 %140435 %77596 %140435 %77670 %140435 %77698 %140435 %77726 %140435 %77754 %140435 %77782 %140435 %77810 %140435 %77838 %140435 %77866 %140435 %77894 %140435 %77922 %140435 %77950 %140435 %77978 %140435 %78006 %140435 %78034 %140435 %78062 %140435 %78090 %140435 %78118 %140435 %78146 %140435 %78174 %140435 %78202 %140435 %78230 %140435 %78258 %140435 %78286 %140435 %78314 %140435 %78342 %140435 %78370 %140435 %78421 %140435 %78472 %140435 %78546 %224618 %78574 %224619 %78602 %224620 %78630 %224621 %78658 %224622 %78686 %224623 %78714 %224624 %78742 %224625 %78770 %224626 %78798 %224627 %78826 %224628 %78854 %224629 %78882 %224630 %78910 %224631 %78938 %224632 %78966 %224633 %78994 %224634 %79022 %224635 %79050 %224636 %79078 %224637 %79106 %224638 %79134 %224639 %79162 %224640 %79190 %224641 %79218 %224642 %79246 %224643 %79297 %224644 %79348 %224645 %79422 %140435 %79450 %140435 %79478 %140435 %79506 %140435 %79534 %140435 %79562 %140435 %79590 %140435 %79618 %140435 %79646 %140435 %79674 %140435 %79702 %140435 %79730 %140435 %79758 %140435 %79786 %140435 %79814 %140435 %79842 %140435 %79870 %140435 %79898 %140435 %79926 %140435 %79954 %140435 %79982 %140435 %80010 %140435 %80038 %140435 %80066 %140435 %80094 %140435 %80122 %140435 %80173 %140435 %80224 %140435 %80298 %140435 %80372 %140435 %80446 %140435 %80520 %140435 %80594 %140435 %80668 %140435 %80742 %224696 %80816 %224697 %80890 %224700 %80964 %224702 %81038 %140435 %81112 %140435 %81186 %140435 %81260 %140435 %81334 %140435 %81362 %224716 %81390 %140435 %81418 %140435 %81469 %140435 %81543 %140435 %81594 %140435 %81691 %140435 %81765 %224733 %81816 %140435 %81867 %140435 %81895 %140435 %81938 %140435 %81971 %140435 %82009 %140435 %82052 %140435 %82080 %224742 %82113 %140435 %82151 %140435 %73397 %140435 %82222 %140435 %82250 %140435 %82278 %224750 %82306 %224751 %82334 %140435 %82362 %140435 %82390 %140435 %82447 %140435 %82504 %140435 %73778 %140435 %73794 %140435 %73810 %140435 %73826 %140435 %73832 %140435 %73838 %140435 %73844 %140435 %73850 %140435 %73853 %140435 %73863 %140435 %73880 %140435 %73904 %140435 %73920 %140435 %73936 %140435 %73952 %140435 %73958 %140435 %73964 %140435 %73970 %140435 %73976 %140435 %73979 %140435 %73989 %140435 %74006 %140435 %74030 %140435 %74046 %140435 %74062 %140435 %74078 %140435 %74084 %140435 %74090 %140435 %74096 %140435 %74102 %140435 %74105 %140435 %74115 %140435 %74132 %140435 %74156 %140435 %74172 %140435 %74188 %140435 %74204 %140435 %74210 %140435 %74216 %140435 %74222 %140435 %74228 %140435 %74231 %140435 %74241 %140435 %74258 %224760 %82635 %140435 %74330
-     %224228 = OpPhi %uint %140432 %74415 %140432 %74466 %140432 %74517 %74572 %74568 %74623 %74619 %140432 %74670 %140432 %74721 %140432 %74772 %140432 %74823 %140432 %74874 %74929 %74925 %74980 %74976 %140432 %75027 %140432 %75078 %140432 %75129 %140432 %75180 %140432 %75231 %75286 %75282 %75337 %75333 %140432 %75384 %140432 %75435 %140432 %75486 %140432 %75537 %140432 %75588 %75643 %75639 %75694 %75690 %140432 %75741 %140432 %75792 %140432 %75843 %140432 %75894 %75949 %75945 %140432 %75996 %140432 %76047 %140432 %76098 %140432 %76149 %76204 %76200 %76255 %76251 %140432 %76302 %140432 %76353 %76408 %76404 %140432 %76455 %224287 %76506 %140432 %76557 %140432 %76585 %224291 %76613 %140432 %76641 %140432 %76692 %224295 %76743 %140432 %76794 %140432 %76822 %140432 %76850 %140432 %76878 %140432 %76906 %140432 %76934 %140432 %76962 %140432 %76990 %140432 %77018 %140432 %77046 %140432 %77074 %140432 %77102 %140432 %77130 %140432 %77158 %140432 %77186 %140432 %77214 %140432 %77242 %140432 %77270 %140432 %77298 %140432 %77326 %140432 %77354 %140432 %77382 %140432 %77410 %140432 %77438 %140432 %77466 %140432 %77494 %140432 %77545 %140432 %77596 %140432 %77670 %140432 %77698 %140432 %77726 %140432 %77754 %140432 %77782 %140432 %77810 %140432 %77838 %140432 %77866 %140432 %77894 %140432 %77922 %140432 %77950 %140432 %77978 %140432 %78006 %140432 %78034 %140432 %78062 %140432 %78090 %140432 %78118 %140432 %78146 %140432 %78174 %140432 %78202 %140432 %78230 %140432 %78258 %140432 %78286 %140432 %78314 %140432 %78342 %140432 %78370 %140432 %78421 %140432 %78472 %140432 %78546 %78578 %78574 %78606 %78602 %78634 %78630 %78662 %78658 %78690 %78686 %78718 %78714 %78746 %78742 %78774 %78770 %78802 %78798 %78830 %78826 %78858 %78854 %78886 %78882 %78914 %78910 %78942 %78938 %78970 %78966 %78998 %78994 %79026 %79022 %79054 %79050 %79082 %79078 %79110 %79106 %79138 %79134 %79166 %79162 %79194 %79190 %79222 %79218 %79250 %79246 %79301 %79297 %79352 %79348 %79426 %79422 %140432 %79450 %140432 %79478 %140432 %79506 %140432 %79534 %140432 %79562 %140432 %79590 %140432 %79618 %140432 %79646 %140432 %79674 %140432 %79702 %140432 %79730 %140432 %79758 %140432 %79786 %140432 %79814 %140432 %79842 %140432 %79870 %140432 %79898 %140432 %79926 %140432 %79954 %140432 %79982 %140432 %80010 %140432 %80038 %140432 %80066 %140432 %80094 %140432 %80122 %140432 %80173 %140432 %80224 %140432 %80298 %140432 %80372 %140432 %80446 %140432 %80520 %140432 %80594 %140432 %80668 %140432 %80742 %80820 %80816 %80894 %80890 %80968 %80964 %81042 %81038 %140432 %81112 %140432 %81186 %140432 %81260 %140432 %81334 %140432 %81362 %81394 %81390 %140432 %81418 %140432 %81469 %81547 %81543 %81598 %81594 %140432 %81691 %140432 %81765 %224438 %81816 %140432 %81867 %140432 %81895 %140432 %81938 %81985 %81971 %140432 %82009 %140432 %82052 %140432 %82080 %224446 %82113 %140432 %82151 %140432 %73397 %140432 %82222 %140432 %82250 %140432 %82278 %82310 %82306 %82338 %82334 %140432 %82362 %140432 %82390 %140432 %82447 %140432 %82504 %140432 %73778 %140432 %73794 %140432 %73810 %140432 %73826 %140432 %73832 %140432 %73838 %140432 %73844 %140432 %73850 %140432 %73853 %140432 %73863 %140432 %73880 %140432 %73904 %140432 %73920 %140432 %73936 %140432 %73952 %140432 %73958 %140432 %73964 %140432 %73970 %140432 %73976 %140432 %73979 %140432 %73989 %140432 %74006 %140432 %74030 %140432 %74046 %140432 %74062 %82553 %74078 %82558 %74084 %82563 %74090 %82568 %74096 %74104 %74102 %74114 %74105 %74131 %74115 %74155 %74132 %140432 %74156 %140432 %74172 %140432 %74188 %140432 %74204 %140432 %74210 %140432 %74216 %140432 %74222 %140432 %74228 %140432 %74231 %140432 %74241 %140432 %74258 %224462 %82635 %140432 %74330
-     %156911 = OpPhi %uint %156912 %74415 %140424 %74466 %156915 %74517 %140424 %74568 %156918 %74619 %140424 %74670 %156921 %74721 %156922 %74772 %140424 %74823 %156925 %74874 %140424 %74925 %156928 %74976 %140424 %75027 %156931 %75078 %156932 %75129 %140424 %75180 %156935 %75231 %140424 %75282 %156938 %75333 %140424 %75384 %156941 %75435 %156942 %75486 %140424 %75537 %156945 %75588 %140424 %75639 %156948 %75690 %140424 %75741 %156951 %75792 %156952 %75843 %140424 %75894 %140424 %75945 %140424 %75996 %156959 %76047 %140424 %76098 %156962 %76149 %140424 %76200 %156965 %76251 %140424 %76302 %156968 %76353 %140424 %76404 %140424 %76455 %140424 %76506 %140424 %76557 %140424 %76585 %140424 %76613 %140424 %76641 %140424 %76692 %140424 %76743 %140424 %76794 %156986 %76822 %156987 %76850 %156988 %76878 %156989 %76906 %156990 %76934 %156991 %76962 %156992 %76990 %156993 %77018 %156994 %77046 %156995 %77074 %156996 %77102 %156997 %77130 %156998 %77158 %156999 %77186 %157000 %77214 %157001 %77242 %157002 %77270 %157003 %77298 %157004 %77326 %157005 %77354 %157006 %77382 %157007 %77410 %157008 %77438 %157009 %77466 %157010 %77494 %157011 %77545 %157012 %77596 %157013 %77670 %140424 %77698 %140424 %77726 %140424 %77754 %140424 %77782 %140424 %77810 %140424 %77838 %140424 %77866 %140424 %77894 %140424 %77922 %140424 %77950 %140424 %77978 %140424 %78006 %140424 %78034 %140424 %78062 %140424 %78090 %140424 %78118 %140424 %78146 %140424 %78174 %140424 %78202 %140424 %78230 %140424 %78258 %140424 %78286 %140424 %78314 %140424 %78342 %140424 %78370 %140424 %78421 %140424 %78472 %140424 %78546 %140424 %78574 %140424 %78602 %140424 %78630 %140424 %78658 %140424 %78686 %140424 %78714 %140424 %78742 %140424 %78770 %140424 %78798 %140424 %78826 %140424 %78854 %140424 %78882 %140424 %78910 %140424 %78938 %140424 %78966 %140424 %78994 %140424 %79022 %140424 %79050 %140424 %79078 %140424 %79106 %140424 %79134 %140424 %79162 %140424 %79190 %140424 %79218 %140424 %79246 %140424 %79297 %140424 %79348 %140424 %79422 %140424 %79450 %140424 %79478 %140424 %79506 %140424 %79534 %140424 %79562 %140424 %79590 %140424 %79618 %140424 %79646 %140424 %79674 %140424 %79702 %140424 %79730 %140424 %79758 %140424 %79786 %140424 %79814 %140424 %79842 %140424 %79870 %140424 %79898 %140424 %79926 %140424 %79954 %140424 %79982 %140424 %80010 %140424 %80038 %140424 %80066 %140424 %80094 %140424 %80122 %140424 %80173 %140424 %80224 %140424 %80298 %157110 %80372 %157111 %80446 %140424 %80520 %140424 %80594 %157118 %80668 %157119 %80742 %140424 %80816 %140424 %80890 %157126 %80964 %157127 %81038 %140424 %81112 %140424 %81186 %157134 %81260 %157135 %81334 %140424 %81362 %140424 %81390 %140424 %81418 %157139 %81469 %157140 %81543 %157141 %81594 %157142 %81691 %157143 %81765 %157144 %81816 %140424 %81867 %140424 %81895 %140424 %81938 %140424 %81971 %140424 %82009 %140424 %82052 %140424 %82080 %140424 %82113 %140424 %82151 %157157 %73397 %157158 %82222 %140424 %82250 %140424 %82278 %140424 %82306 %140424 %82334 %140424 %82362 %140424 %82390 %157165 %82447 %157166 %82504 %140424 %73778 %140424 %73794 %140424 %73810 %140424 %73826 %140424 %73832 %140424 %73838 %140424 %73844 %140424 %73850 %140424 %73853 %140424 %73863 %140424 %73880 %140424 %73904 %140424 %73920 %140424 %73936 %140424 %73952 %140424 %73958 %140424 %73964 %140424 %73970 %140424 %73976 %140424 %73979 %140424 %73989 %140424 %74006 %140424 %74030 %140424 %74046 %140424 %74062 %140424 %74078 %140424 %74084 %140424 %74090 %140424 %74096 %140424 %74102 %140424 %74105 %140424 %74115 %140424 %74132 %140424 %74156 %140424 %74172 %140424 %74188 %140424 %74204 %140424 %74210 %140424 %74216 %140424 %74222 %140424 %74228 %140424 %74231 %140424 %74241 %140424 %74258 %157168 %82635 %140424 %74330
-     %156715 = OpPhi %uint %74419 %74415 %140422 %74466 %156718 %74517 %140422 %74568 %156721 %74619 %140422 %74670 %156724 %74721 %74776 %74772 %140422 %74823 %156727 %74874 %140422 %74925 %156730 %74976 %140422 %75027 %156733 %75078 %75133 %75129 %140422 %75180 %156736 %75231 %140422 %75282 %156739 %75333 %140422 %75384 %156742 %75435 %75490 %75486 %140422 %75537 %156745 %75588 %140422 %75639 %156748 %75690 %140422 %75741 %156751 %75792 %75847 %75843 %140422 %75894 %140422 %75945 %140422 %75996 %76051 %76047 %140422 %76098 %156760 %76149 %140422 %76200 %156763 %76251 %140422 %76302 %156766 %76353 %140422 %76404 %76459 %76455 %76510 %76506 %76561 %76557 %76589 %76585 %76617 %76613 %76645 %76641 %76696 %76692 %76747 %76743 %76798 %76794 %76826 %76822 %76854 %76850 %76882 %76878 %76910 %76906 %76938 %76934 %76966 %76962 %76994 %76990 %77022 %77018 %77050 %77046 %77078 %77074 %77106 %77102 %77134 %77130 %77162 %77158 %77190 %77186 %77218 %77214 %77246 %77242 %77274 %77270 %77302 %77298 %77330 %77326 %77358 %77354 %77386 %77382 %77414 %77410 %77442 %77438 %77470 %77466 %77498 %77494 %77549 %77545 %77600 %77596 %77674 %77670 %140422 %77698 %140422 %77726 %140422 %77754 %140422 %77782 %140422 %77810 %140422 %77838 %140422 %77866 %140422 %77894 %140422 %77922 %140422 %77950 %140422 %77978 %140422 %78006 %140422 %78034 %140422 %78062 %140422 %78090 %140422 %78118 %140422 %78146 %140422 %78174 %140422 %78202 %140422 %78230 %140422 %78258 %140422 %78286 %140422 %78314 %140422 %78342 %140422 %78370 %140422 %78421 %140422 %78472 %140422 %78546 %140422 %78574 %140422 %78602 %140422 %78630 %140422 %78658 %140422 %78686 %140422 %78714 %140422 %78742 %140422 %78770 %140422 %78798 %140422 %78826 %140422 %78854 %140422 %78882 %140422 %78910 %140422 %78938 %140422 %78966 %140422 %78994 %140422 %79022 %140422 %79050 %140422 %79078 %140422 %79106 %140422 %79134 %140422 %79162 %140422 %79190 %140422 %79218 %140422 %79246 %140422 %79297 %140422 %79348 %140422 %79422 %140422 %79450 %140422 %79478 %140422 %79506 %140422 %79534 %140422 %79562 %140422 %79590 %140422 %79618 %140422 %79646 %140422 %79674 %140422 %79702 %140422 %79730 %140422 %79758 %140422 %79786 %140422 %79814 %140422 %79842 %140422 %79870 %140422 %79898 %140422 %79926 %140422 %79954 %140422 %79982 %140422 %80010 %140422 %80038 %140422 %80066 %140422 %80094 %140422 %80122 %140422 %80173 %140422 %80224 %140422 %80298 %80376 %80372 %80450 %80446 %140422 %80520 %140422 %80594 %156871 %80668 %156872 %80742 %140422 %80816 %140422 %80890 %156879 %80964 %156880 %81038 %140422 %81112 %140422 %81186 %156887 %81260 %156888 %81334 %140422 %81362 %140422 %81390 %140422 %81418 %156892 %81469 %156893 %81543 %156894 %81594 %156895 %81691 %156896 %81765 %156897 %81816 %140422 %81867 %81914 %81895 %140422 %81938 %140422 %81971 %140422 %82009 %140422 %82052 %82089 %82080 %82127 %82113 %82170 %82151 %82198 %73397 %82226 %82222 %140422 %82250 %140422 %82278 %140422 %82306 %140422 %82334 %140422 %82362 %140422 %82390 %82451 %82447 %82508 %82504 %140422 %73778 %140422 %73794 %140422 %73810 %82513 %73826 %82518 %73832 %82523 %73838 %82528 %73844 %73852 %73850 %73862 %73853 %73879 %73863 %73903 %73880 %140422 %73904 %140422 %73920 %140422 %73936 %140422 %73952 %140422 %73958 %140422 %73964 %140422 %73970 %140422 %73976 %140422 %73979 %140422 %73989 %140422 %74006 %140422 %74030 %140422 %74046 %140422 %74062 %140422 %74078 %140422 %74084 %140422 %74090 %140422 %74096 %140422 %74102 %140422 %74105 %140422 %74115 %140422 %74132 %140422 %74156 %140422 %74172 %140422 %74188 %140422 %74204 %140422 %74210 %140422 %74216 %140422 %74222 %140422 %74228 %140422 %74231 %140422 %74241 %140422 %74258 %82639 %82635 %140422 %74330
-               OpBranch %74339
-      %74339 = OpLabel
-     %229981 = OpPhi %uint %143139 %65908 %229982 %74338
-     %229664 = OpPhi %uint %143137 %65908 %229665 %74338
-     %229347 = OpPhi %uint %143132 %65908 %229348 %74338
-     %229030 = OpPhi %uint %143130 %65908 %229031 %74338
-     %228713 = OpPhi %uint %143125 %65908 %228714 %74338
-     %228396 = OpPhi %uint %143123 %65908 %228397 %74338
-     %226817 = OpPhi %uint %141789 %65908 %226818 %74338
-     %225237 = OpPhi %uint %140467 %65908 %225238 %74338
-     %224995 = OpPhi %uint %140443 %65908 %224996 %74338
-     %224762 = OpPhi %uint %140441 %65908 %224763 %74338
-     %224464 = OpPhi %uint %140435 %65908 %224465 %74338
-     %224227 = OpPhi %uint %140432 %65908 %224228 %74338
-     %156910 = OpPhi %uint %140424 %65908 %156911 %74338
-     %156714 = OpPhi %uint %140422 %65908 %156715 %74338
-      %74341 = OpIAdd %uint %140417 %int_1
-      %74343 = OpIEqual %bool %74341 %uint_8
-               OpSelectionMerge %74357 None
-               OpBranchConditional %74343 %74344 %74357
-      %74344 = OpLabel
-      %74346 = OpIAdd %uint %140418 %int_1
-      %74348 = OpIEqual %bool %74346 %uint_13
-               OpSelectionMerge %74356 None
-               OpBranchConditional %74348 %74349 %74356
-      %74349 = OpLabel
-      %74351 = OpAccessChain %_ptr_Function_uint %64764 %uint_0
-      %74352 = OpLoad %uint %74351
-      %74353 = OpBitwiseAnd %uint %74352 %uint_32768
-      %74354 = OpUGreaterThan %bool %74353 %uint_0
-               OpSelectionMerge %82686 None
-               OpSwitch %uint_0 %82670
-      %82670 = OpLabel
-               OpSelectionMerge %82685 None
-               OpBranchConditional %74354 %82672 %82680
-      %82680 = OpLabel
-      %82682 = OpISub %uint %156714 %int_1
-      %82683 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %82682
-      %82684 = OpLoad %_arr_float_uint_2 %82683
-     %105560 = OpCompositeExtract %float %82684 0
-               OpBranch %82686
-      %82672 = OpLabel
-      %82675 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %156910
-      %82676 = OpLoad %float %82675
-               OpBranch %82686
-      %82685 = OpLabel
-               OpUnreachable
-      %82686 = OpLabel
-     %157170 = OpPhi %float %82676 %82672 %105560 %82680
-               OpBranch %74359
-      %74356 = OpLabel
-               OpBranch %74357
-      %74357 = OpLabel
-     %224223 = OpPhi %uint %140418 %74339 %74346 %74356
-     %270612 = OpSelect %uint %74343 %uint_0 %74341
-               OpBranch %74358
-      %74358 = OpLabel
-               OpBranch %65863
-      %74359 = OpLabel
-     %157492 = OpPhi %float %float_0 %65923 %140426 %82663 %157170 %82686
-     %270607 = OpCompositeConstruct %v3float %128849 %139446 %157492
-      %82693 = OpCompositeConstruct %_arr_v3float_uint_2 %126025 %126025
-      %83798 = OpLoad %_struct_446 %29977
-      %83799 = OpCopyLogical %_struct_443 %83798
-     %103370 = OpCompositeExtract %uint %83799 0
-               OpStore %38490 %82693
-               OpBranch %83803
-      %83803 = OpLabel
-     %162805 = OpPhi %uint %uint_0 %74359 %247888 %92298
-     %162803 = OpPhi %uint %uint_0 %74359 %247571 %92298
-     %162798 = OpPhi %uint %uint_0 %74359 %247254 %92298
-     %162796 = OpPhi %uint %uint_0 %74359 %246937 %92298
-     %162791 = OpPhi %uint %uint_0 %74359 %246620 %92298
-     %162789 = OpPhi %uint %uint_0 %74359 %246303 %92298
-     %160807 = OpPhi %uint %uint_0 %74359 %244724 %92298
-     %158837 = OpPhi %uint %uint_0 %74359 %243144 %92298
-     %158813 = OpPhi %uint %uint_0 %74359 %242902 %92298
-     %158811 = OpPhi %uint %uint_0 %74359 %242669 %92298
-     %158805 = OpPhi %uint %uint_0 %74359 %242371 %92298
-     %158802 = OpPhi %uint %uint_1 %74359 %242134 %92298
-     %158794 = OpPhi %uint %uint_0 %74359 %182408 %92298
-     %158792 = OpPhi %uint %uint_0 %74359 %182212 %92298
-     %158788 = OpPhi %uint %uint_0 %74359 %242130 %92298
-     %158787 = OpPhi %uint %uint_0 %74359 %270613 %92298
-               OpLoopMerge %92299 %92298 None
-               OpBranch %83806
-      %83806 = OpLabel
-      %83808 = OpIEqual %bool %158787 %uint_0
-               OpSelectionMerge %83848 None
-               OpBranchConditional %83808 %83809 %83848
-      %83809 = OpLabel
-      %83813 = OpIAdd %uint %158788 %103370
-      %83814 = OpAccessChain %_ptr_StorageBuffer_v4uint %477 %int_0 %83813
-      %83815 = OpLoad %v4uint %83814
-      %83817 = OpCompositeExtract %uint %83815 0
-      %83818 = OpBitwiseAnd %uint %83817 %uint_65535
-      %83819 = OpAccessChain %_ptr_Function_uint %82704 %int_0
-               OpStore %83819 %83818
-      %83822 = OpShiftRightLogical %uint %83817 %int_16
-      %83823 = OpAccessChain %_ptr_Function_uint %82704 %int_1
-               OpStore %83823 %83822
-      %83825 = OpCompositeExtract %uint %83815 1
-      %83826 = OpBitwiseAnd %uint %83825 %uint_65535
-      %83827 = OpAccessChain %_ptr_Function_uint %82704 %int_2
-               OpStore %83827 %83826
-      %83830 = OpShiftRightLogical %uint %83825 %int_16
-      %83831 = OpAccessChain %_ptr_Function_uint %82704 %int_3
-               OpStore %83831 %83830
-      %83833 = OpCompositeExtract %uint %83815 2
-      %83834 = OpBitwiseAnd %uint %83833 %uint_65535
-      %83835 = OpAccessChain %_ptr_Function_uint %82704 %int_4
-               OpStore %83835 %83834
-      %83838 = OpShiftRightLogical %uint %83833 %int_16
-      %83839 = OpAccessChain %_ptr_Function_uint %82704 %int_5
-               OpStore %83839 %83838
-      %83841 = OpCompositeExtract %uint %83815 3
-      %83842 = OpBitwiseAnd %uint %83841 %uint_65535
-      %83843 = OpAccessChain %_ptr_Function_uint %82704 %int_6
-               OpStore %83843 %83842
-      %83846 = OpShiftRightLogical %uint %83841 %int_16
-      %83847 = OpAccessChain %_ptr_Function_uint %82704 %int_7
-               OpStore %83847 %83846
-               OpBranch %83848
-      %83848 = OpLabel
-      %83850 = OpAccessChain %_ptr_Function_uchar %437 %158788
-      %83851 = OpLoad %uchar %83850
-      %83852 = OpUConvert %uint %83851
-      %83853 = OpBitcast %int %83852
-      %83855 = OpShiftLeftLogical %int %int_1 %158787
-      %83856 = OpBitwiseAnd %int %83853 %83855
-      %83857 = OpSGreaterThan %bool %83856 %int_0
-               OpSelectionMerge %92279 None
-               OpBranchConditional %83857 %83858 %92279
-      %83858 = OpLabel
-      %83860 = OpAccessChain %_ptr_Function_uint %82704 %158787
-      %83861 = OpLoad %uint %83860
-      %83862 = OpBitwiseAnd %uint %83861 %uint_1023
-               OpSelectionMerge %92278 None
-               OpSwitch %83862 %83863 2 %83864 3 %83891 4 %83918 5 %83947 6 %83974 7 %84003 8 %84030 9 %84059 10 %84086 11 %84113 12 %84142 13 %84169 14 %84198 15 %84225 16 %84254 17 %84317 18 %84380 19 %84443 20 %84506 21 %84569 22 %84632 23 %84695 24 %84758 25 %84821 26 %84888 27 %84951 28 %85018 29 %85081 37 %85148 38 %85211 39 %85274 40 %85337 30 %85400 31 %85463 32 %85526 33 %85593 34 %85656 35 %85723 36 %85786 41 %85853 42 %85902 43 %85953 44 %86004 45 %86055 46 %86095 47 %86135 48 %86175 49 %86239 50 %86285 54 %86349 55 %86378 56 %86407 57 %86436 58 %86465 59 %86494 60 %86523 61 %86552 62 %86581 63 %86610 64 %86639 65 %86668 66 %86697 67 %86726 68 %86755 69 %86784 70 %86813 195 %86842 199 %86871 203 %86900 207 %86929 211 %86958 215 %86987 223 %87016 227 %87045 75 %87074 71 %87074 76 %87101 72 %87101 219 %87128 90 %87210 91 %87239 92 %87268 93 %87297 94 %87326 95 %87355 96 %87384 97 %87413 98 %87442 99 %87471 100 %87500 101 %87529 102 %87558 103 %87587 104 %87616 105 %87645 106 %87674 196 %87703 200 %87732 204 %87761 208 %87790 212 %87819 216 %87848 224 %87877 228 %87906 107 %87935 108 %87962 220 %87989 120 %88071 121 %88100 122 %88129 123 %88158 124 %88187 125 %88216 126 %88245 127 %88274 128 %88303 129 %88332 130 %88361 131 %88390 132 %88419 133 %88448 134 %88477 135 %88506 136 %88535 197 %88564 201 %88593 205 %88622 209 %88651 213 %88680 217 %88709 225 %88738 229 %88767 137 %88796 138 %88823 221 %88850 150 %88932 151 %88961 152 %88990 153 %89019 154 %89048 155 %89077 156 %89106 157 %89135 158 %89164 159 %89193 160 %89222 161 %89251 162 %89280 163 %89309 164 %89338 165 %89367 166 %89396 198 %89425 202 %89454 206 %89483 210 %89512 214 %89541 218 %89570 226 %89599 230 %89628 167 %89657 168 %89684 222 %89711 231 %89793 238 %89830 232 %89867 239 %89904 233 %89941 240 %89982 234 %90021 241 %90058 235 %90095 242 %90136 236 %90175 243 %90212 237 %90249 244 %90290 51 %90329 52 %90441 53 %90613 180 %90861 181 %90886 183 %90921 182 %90950 184 %90995 186 %91034 185 %91065 190 %91098 191 %91129 192 %91148 193 %91173 194 %91204 187 %91231 188 %91250 189 %91275 245 %91306 246 %91352 247 %91379 248 %91425 249 %91452 250 %91498 251 %91525 252 %91571 77 %91598 73 %91598 78 %91658 74 %91658 79 %91718 80 %91734 81 %91750 82 %91766 83 %91772 84 %91778 85 %91784 86 %91790 87 %91793 88 %91803 89 %91820 109 %91844 110 %91860 111 %91876 112 %91892 113 %91898 114 %91904 115 %91910 116 %91916 117 %91919 118 %91929 119 %91946 139 %91970 140 %91986 141 %92002 142 %92018 143 %92024 144 %92030 145 %92036 146 %92042 147 %92045 148 %92055 149 %92072 169 %92096 170 %92112 171 %92128 172 %92144 173 %92150 174 %92156 175 %92162 176 %92168 177 %92171 178 %92181 179 %92198 253 %92222 0 %92270 1 %92271 254 %83863
-      %92271 = OpLabel
-      %92274 = OpLoad %uint %83860
-      %92275 = OpBitwiseAnd %uint %92274 %uint_32768
-      %92276 = OpUGreaterThan %bool %92275 %uint_0
-               OpSelectionMerge %100603 None
-               OpSwitch %uint_0 %100587
-     %100587 = OpLabel
-               OpSelectionMerge %100602 None
-               OpBranchConditional %92276 %100589 %100597
-     %100597 = OpLabel
-     %100599 = OpISub %uint %158792 %int_1
-     %100600 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100599
-     %100601 = OpLoad %_arr_float_uint_2 %100600
-     %100715 = OpCompositeExtract %float %100601 0
-               OpBranch %100603
-     %100589 = OpLabel
-     %100592 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-     %100593 = OpLoad %float %100592
-               OpBranch %100603
-     %100602 = OpLabel
-               OpUnreachable
-     %100603 = OpLabel
-     %158796 = OpPhi %float %100593 %100589 %100715 %100597
-               OpBranch %92299
-      %92270 = OpLabel
-               OpBranch %92278
-      %92222 = OpLabel
-      %92225 = OpLoad %uint %83860
-      %92226 = OpBitwiseAnd %uint %92225 %uint_32768
-      %92227 = OpUGreaterThan %bool %92226 %uint_0
-               OpSelectionMerge %100552 None
-               OpSwitch %uint_0 %100536
-     %100536 = OpLabel
-               OpSelectionMerge %100551 None
-               OpBranchConditional %92227 %100538 %100546
-     %100546 = OpLabel
-     %100548 = OpISub %uint %158792 %int_1
-     %100549 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100548
-     %100550 = OpLoad %_arr_float_uint_2 %100549
-     %100733 = OpCompositeExtract %float %100550 0
-     %100734 = OpCompositeExtract %float %100550 1
-               OpBranch %100552
-     %100538 = OpLabel
-     %100540 = OpIAdd %uint %158794 %int_1
-     %100541 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-     %100542 = OpLoad %float %100541
-               OpBranch %100552
-     %100551 = OpLabel
-               OpUnreachable
-     %100552 = OpLabel
-     %182666 = OpPhi %uint %100540 %100538 %158794 %100546
-     %158809 = OpPhi %uint %158792 %100538 %100548 %100546
-     %158798 = OpPhi %float %100542 %100538 %100733 %100546
-     %158797 = OpPhi %float %100542 %100538 %100734 %100546
-      %92231 = OpLoad %uint %83860
-      %92232 = OpBitwiseAnd %uint %92231 %uint_16384
-      %92233 = OpUGreaterThan %bool %92232 %uint_0
-               OpSelectionMerge %100575 None
-               OpSwitch %uint_0 %100559
-     %100559 = OpLabel
-               OpSelectionMerge %100574 None
-               OpBranchConditional %92233 %100561 %100569
-     %100569 = OpLabel
-     %100571 = OpISub %uint %158802 %int_1
-     %100572 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %100571
-     %100573 = OpLoad %_arr_v3float_uint_2 %100572
-     %100724 = OpCompositeExtract %v3float %100573 0
-     %100725 = OpCompositeExtract %v3float %100573 1
-               OpBranch %100575
-     %100561 = OpLabel
-     %100563 = OpIAdd %uint %158805 %int_1
-     %100564 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-     %100565 = OpLoad %v3float %100564
-               OpBranch %100575
-     %100574 = OpLabel
-               OpUnreachable
-     %100575 = OpLabel
-     %242667 = OpPhi %uint %100563 %100561 %158805 %100569
-     %242369 = OpPhi %uint %158802 %100561 %100571 %100569
-     %158807 = OpPhi %v3float %100565 %100561 %100724 %100569
-     %158806 = OpPhi %v3float %100565 %100561 %100725 %100569
-      %92237 = OpFOrdGreaterThan %v3bool %158806 %123
-      %92240 = OpFOrdLessThan %v3bool %158807 %123
-      %92241 = OpSelect %v3bool %92240 %92237 %3323
-      %92244 = OpExtInst %v3float %1 FAbs %158807
-      %92247 = OpExtInst %v3float %1 FAbs %158806
-      %92248 = OpExtInst %v3float %1 FMin %92244 %92247
-      %92250 = OpSelect %v3float %92241 %123 %92248
-      %92251 = OpExtInst %float %1 Length %92250
-      %92254 = OpFSub %float %92251 %158797
-      %92262 = OpExtInst %v3float %1 FMax %92244 %92247
-      %92263 = OpExtInst %float %1 Length %92262
-      %92266 = OpFSub %float %92263 %158798
-     %105555 = OpCompositeConstruct %_arr_float_uint_2 %92254 %92266
-     %100579 = OpIAdd %uint %158809 %int_1
-     %100581 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158809
-               OpStore %100581 %105555
-               OpBranch %92278
-      %92198 = OpLabel
-      %92200 = OpISub %uint %158811 %uint_4
-      %92202 = OpISub %uint %158811 %uint_3
-      %92203 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92202
-      %92204 = OpLoad %_arr_v4float_uint_2 %92203
-      %92205 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92200
-               OpStore %92205 %92204
-      %92209 = OpISub %uint %158811 %uint_2
-      %92210 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92209
-      %92211 = OpLoad %_arr_v4float_uint_2 %92210
-               OpStore %92203 %92211
-      %92216 = OpISub %uint %158811 %uint_1
-      %92217 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92216
-      %92218 = OpLoad %_arr_v4float_uint_2 %92217
-               OpStore %92210 %92218
-      %92221 = OpISub %uint %158811 %int_1
-               OpBranch %92278
-      %92181 = OpLabel
-      %92183 = OpISub %uint %158811 %uint_3
-      %92185 = OpISub %uint %158811 %uint_2
-      %92186 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92185
-      %92187 = OpLoad %_arr_v4float_uint_2 %92186
-      %92188 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92183
-               OpStore %92188 %92187
-      %92192 = OpISub %uint %158811 %uint_1
-      %92193 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92192
-      %92194 = OpLoad %_arr_v4float_uint_2 %92193
-               OpStore %92186 %92194
-      %92197 = OpISub %uint %158811 %int_1
-               OpBranch %92278
-      %92171 = OpLabel
-      %92173 = OpISub %uint %158811 %uint_2
-      %92175 = OpISub %uint %158811 %uint_1
-      %92176 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92175
-      %92177 = OpLoad %_arr_v4float_uint_2 %92176
-      %92178 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92173
-               OpStore %92178 %92177
-      %92180 = OpISub %uint %158811 %int_1
-               OpBranch %92278
-      %92168 = OpLabel
-      %92170 = OpISub %uint %158811 %int_1
-               OpBranch %92278
-      %92162 = OpLabel
-      %92164 = OpISub %uint %158811 %uint_4
-      %92165 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92164
-      %92166 = OpLoad %_arr_v4float_uint_2 %92165
-     %100528 = OpIAdd %uint %158811 %int_1
-     %100530 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %158811
-               OpStore %100530 %92166
-               OpBranch %92278
-      %92156 = OpLabel
-      %92158 = OpISub %uint %158811 %uint_3
-      %92159 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92158
-      %92160 = OpLoad %_arr_v4float_uint_2 %92159
-     %100523 = OpIAdd %uint %158811 %int_1
-     %100525 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %158811
-               OpStore %100525 %92160
-               OpBranch %92278
-      %92150 = OpLabel
-      %92152 = OpISub %uint %158811 %uint_2
-      %92153 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92152
-      %92154 = OpLoad %_arr_v4float_uint_2 %92153
-     %100518 = OpIAdd %uint %158811 %int_1
-     %100520 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %158811
-               OpStore %100520 %92154
-               OpBranch %92278
-      %92144 = OpLabel
-      %92146 = OpISub %uint %158811 %uint_1
-      %92147 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92146
-      %92148 = OpLoad %_arr_v4float_uint_2 %92147
-     %100513 = OpIAdd %uint %158811 %int_1
-     %100515 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %158811
-               OpStore %100515 %92148
-               OpBranch %92278
-      %92128 = OpLabel
-      %92130 = OpISub %uint %158811 %uint_1
-      %92131 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92130
-      %92132 = OpLoad %_arr_v4float_uint_2 %92131
-      %92136 = OpISub %uint %158811 %uint_4
-      %92137 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92136
-      %92138 = OpLoad %_arr_v4float_uint_2 %92137
-               OpStore %92131 %92138
-               OpStore %92137 %92132
-               OpBranch %92278
-      %92112 = OpLabel
-      %92114 = OpISub %uint %158811 %uint_1
-      %92115 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92114
-      %92116 = OpLoad %_arr_v4float_uint_2 %92115
-      %92120 = OpISub %uint %158811 %uint_3
-      %92121 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92120
-      %92122 = OpLoad %_arr_v4float_uint_2 %92121
-               OpStore %92115 %92122
-               OpStore %92121 %92116
-               OpBranch %92278
-      %92096 = OpLabel
-      %92098 = OpISub %uint %158811 %uint_1
-      %92099 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92098
-      %92100 = OpLoad %_arr_v4float_uint_2 %92099
-      %92104 = OpISub %uint %158811 %uint_2
-      %92105 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92104
-      %92106 = OpLoad %_arr_v4float_uint_2 %92105
-               OpStore %92099 %92106
-               OpStore %92105 %92100
-               OpBranch %92278
-      %92072 = OpLabel
-      %92074 = OpISub %uint %158802 %uint_4
-      %92076 = OpISub %uint %158802 %uint_3
-      %92077 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92076
-      %92078 = OpLoad %_arr_v3float_uint_2 %92077
-      %92079 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92074
-               OpStore %92079 %92078
-      %92083 = OpISub %uint %158802 %uint_2
-      %92084 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92083
-      %92085 = OpLoad %_arr_v3float_uint_2 %92084
-               OpStore %92077 %92085
-      %92090 = OpISub %uint %158802 %uint_1
-      %92091 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92090
-      %92092 = OpLoad %_arr_v3float_uint_2 %92091
-               OpStore %92084 %92092
-      %92095 = OpISub %uint %158802 %int_1
-               OpBranch %92278
-      %92055 = OpLabel
-      %92057 = OpISub %uint %158802 %uint_3
-      %92059 = OpISub %uint %158802 %uint_2
-      %92060 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92059
-      %92061 = OpLoad %_arr_v3float_uint_2 %92060
-      %92062 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92057
-               OpStore %92062 %92061
-      %92066 = OpISub %uint %158802 %uint_1
-      %92067 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92066
-      %92068 = OpLoad %_arr_v3float_uint_2 %92067
-               OpStore %92060 %92068
-      %92071 = OpISub %uint %158802 %int_1
-               OpBranch %92278
-      %92045 = OpLabel
-      %92047 = OpISub %uint %158802 %uint_2
-      %92049 = OpISub %uint %158802 %uint_1
-      %92050 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92049
-      %92051 = OpLoad %_arr_v3float_uint_2 %92050
-      %92052 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92047
-               OpStore %92052 %92051
-      %92054 = OpISub %uint %158802 %int_1
-               OpBranch %92278
-      %92042 = OpLabel
-      %92044 = OpISub %uint %158802 %int_1
-               OpBranch %92278
-      %92036 = OpLabel
-      %92038 = OpISub %uint %158802 %uint_4
-      %92039 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92038
-      %92040 = OpLoad %_arr_v3float_uint_2 %92039
-     %100508 = OpIAdd %uint %158802 %int_1
-     %100510 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %158802
-               OpStore %100510 %92040
-               OpBranch %92278
-      %92030 = OpLabel
-      %92032 = OpISub %uint %158802 %uint_3
-      %92033 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92032
-      %92034 = OpLoad %_arr_v3float_uint_2 %92033
-     %100503 = OpIAdd %uint %158802 %int_1
-     %100505 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %158802
-               OpStore %100505 %92034
-               OpBranch %92278
-      %92024 = OpLabel
-      %92026 = OpISub %uint %158802 %uint_2
-      %92027 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92026
-      %92028 = OpLoad %_arr_v3float_uint_2 %92027
-     %100498 = OpIAdd %uint %158802 %int_1
-     %100500 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %158802
-               OpStore %100500 %92028
-               OpBranch %92278
-      %92018 = OpLabel
-      %92020 = OpISub %uint %158802 %uint_1
-      %92021 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92020
-      %92022 = OpLoad %_arr_v3float_uint_2 %92021
-     %100493 = OpIAdd %uint %158802 %int_1
-     %100495 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %158802
-               OpStore %100495 %92022
-               OpBranch %92278
-      %92002 = OpLabel
-      %92004 = OpISub %uint %158802 %uint_1
-      %92005 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92004
-      %92006 = OpLoad %_arr_v3float_uint_2 %92005
-      %92010 = OpISub %uint %158802 %uint_4
-      %92011 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92010
-      %92012 = OpLoad %_arr_v3float_uint_2 %92011
-               OpStore %92005 %92012
-               OpStore %92011 %92006
-               OpBranch %92278
-      %91986 = OpLabel
-      %91988 = OpISub %uint %158802 %uint_1
-      %91989 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %91988
-      %91990 = OpLoad %_arr_v3float_uint_2 %91989
-      %91994 = OpISub %uint %158802 %uint_3
-      %91995 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %91994
-      %91996 = OpLoad %_arr_v3float_uint_2 %91995
-               OpStore %91989 %91996
-               OpStore %91995 %91990
-               OpBranch %92278
-      %91970 = OpLabel
-      %91972 = OpISub %uint %158802 %uint_1
-      %91973 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %91972
-      %91974 = OpLoad %_arr_v3float_uint_2 %91973
-      %91978 = OpISub %uint %158802 %uint_2
-      %91979 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %91978
-      %91980 = OpLoad %_arr_v3float_uint_2 %91979
-               OpStore %91973 %91980
-               OpStore %91979 %91974
-               OpBranch %92278
-      %91946 = OpLabel
-      %91948 = OpISub %uint %158813 %uint_4
-      %91950 = OpISub %uint %158813 %uint_3
-      %91951 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91950
-      %91952 = OpLoad %_arr_v2float_uint_2 %91951
-      %91953 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91948
-               OpStore %91953 %91952
-      %91957 = OpISub %uint %158813 %uint_2
-      %91958 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91957
-      %91959 = OpLoad %_arr_v2float_uint_2 %91958
-               OpStore %91951 %91959
-      %91964 = OpISub %uint %158813 %uint_1
-      %91965 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91964
-      %91966 = OpLoad %_arr_v2float_uint_2 %91965
-               OpStore %91958 %91966
-      %91969 = OpISub %uint %158813 %int_1
-               OpBranch %92278
-      %91929 = OpLabel
-      %91931 = OpISub %uint %158813 %uint_3
-      %91933 = OpISub %uint %158813 %uint_2
-      %91934 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91933
-      %91935 = OpLoad %_arr_v2float_uint_2 %91934
-      %91936 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91931
-               OpStore %91936 %91935
-      %91940 = OpISub %uint %158813 %uint_1
-      %91941 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91940
-      %91942 = OpLoad %_arr_v2float_uint_2 %91941
-               OpStore %91934 %91942
-      %91945 = OpISub %uint %158813 %int_1
-               OpBranch %92278
-      %91919 = OpLabel
-      %91921 = OpISub %uint %158813 %uint_2
-      %91923 = OpISub %uint %158813 %uint_1
-      %91924 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91923
-      %91925 = OpLoad %_arr_v2float_uint_2 %91924
-      %91926 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91921
-               OpStore %91926 %91925
-      %91928 = OpISub %uint %158813 %int_1
-               OpBranch %92278
-      %91916 = OpLabel
-      %91918 = OpISub %uint %158813 %int_1
-               OpBranch %92278
-      %91910 = OpLabel
-      %91912 = OpISub %uint %158813 %uint_4
-      %91913 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91912
-      %91914 = OpLoad %_arr_v2float_uint_2 %91913
-     %100488 = OpIAdd %uint %158813 %int_1
-     %100490 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %158813
-               OpStore %100490 %91914
-               OpBranch %92278
-      %91904 = OpLabel
-      %91906 = OpISub %uint %158813 %uint_3
-      %91907 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91906
-      %91908 = OpLoad %_arr_v2float_uint_2 %91907
-     %100483 = OpIAdd %uint %158813 %int_1
-     %100485 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %158813
-               OpStore %100485 %91908
-               OpBranch %92278
-      %91898 = OpLabel
-      %91900 = OpISub %uint %158813 %uint_2
-      %91901 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91900
-      %91902 = OpLoad %_arr_v2float_uint_2 %91901
-     %100478 = OpIAdd %uint %158813 %int_1
-     %100480 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %158813
-               OpStore %100480 %91902
-               OpBranch %92278
-      %91892 = OpLabel
-      %91894 = OpISub %uint %158813 %uint_1
-      %91895 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91894
-      %91896 = OpLoad %_arr_v2float_uint_2 %91895
-     %100473 = OpIAdd %uint %158813 %int_1
-     %100475 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %158813
-               OpStore %100475 %91896
-               OpBranch %92278
-      %91876 = OpLabel
-      %91878 = OpISub %uint %158813 %uint_1
-      %91879 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91878
-      %91880 = OpLoad %_arr_v2float_uint_2 %91879
-      %91884 = OpISub %uint %158813 %uint_4
-      %91885 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91884
-      %91886 = OpLoad %_arr_v2float_uint_2 %91885
-               OpStore %91879 %91886
-               OpStore %91885 %91880
-               OpBranch %92278
-      %91860 = OpLabel
-      %91862 = OpISub %uint %158813 %uint_1
-      %91863 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91862
-      %91864 = OpLoad %_arr_v2float_uint_2 %91863
-      %91868 = OpISub %uint %158813 %uint_3
-      %91869 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91868
-      %91870 = OpLoad %_arr_v2float_uint_2 %91869
-               OpStore %91863 %91870
-               OpStore %91869 %91864
-               OpBranch %92278
-      %91844 = OpLabel
-      %91846 = OpISub %uint %158813 %uint_1
-      %91847 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91846
-      %91848 = OpLoad %_arr_v2float_uint_2 %91847
-      %91852 = OpISub %uint %158813 %uint_2
-      %91853 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %91852
-      %91854 = OpLoad %_arr_v2float_uint_2 %91853
-               OpStore %91847 %91854
-               OpStore %91853 %91848
-               OpBranch %92278
-      %91820 = OpLabel
-      %91822 = OpISub %uint %158792 %uint_4
-      %91824 = OpISub %uint %158792 %uint_3
-      %91825 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91824
-      %91826 = OpLoad %_arr_float_uint_2 %91825
-      %91827 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91822
-               OpStore %91827 %91826
-      %91831 = OpISub %uint %158792 %uint_2
-      %91832 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91831
-      %91833 = OpLoad %_arr_float_uint_2 %91832
-               OpStore %91825 %91833
-      %91838 = OpISub %uint %158792 %uint_1
-      %91839 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91838
-      %91840 = OpLoad %_arr_float_uint_2 %91839
-               OpStore %91832 %91840
-      %91843 = OpISub %uint %158792 %int_1
-               OpBranch %92278
-      %91803 = OpLabel
-      %91805 = OpISub %uint %158792 %uint_3
-      %91807 = OpISub %uint %158792 %uint_2
-      %91808 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91807
-      %91809 = OpLoad %_arr_float_uint_2 %91808
-      %91810 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91805
-               OpStore %91810 %91809
-      %91814 = OpISub %uint %158792 %uint_1
-      %91815 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91814
-      %91816 = OpLoad %_arr_float_uint_2 %91815
-               OpStore %91808 %91816
-      %91819 = OpISub %uint %158792 %int_1
-               OpBranch %92278
-      %91793 = OpLabel
-      %91795 = OpISub %uint %158792 %uint_2
-      %91797 = OpISub %uint %158792 %uint_1
-      %91798 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91797
-      %91799 = OpLoad %_arr_float_uint_2 %91798
-      %91800 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91795
-               OpStore %91800 %91799
-      %91802 = OpISub %uint %158792 %int_1
-               OpBranch %92278
-      %91790 = OpLabel
-      %91792 = OpISub %uint %158792 %int_1
-               OpBranch %92278
-      %91784 = OpLabel
-      %91786 = OpISub %uint %158792 %uint_4
-      %91787 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91786
-      %91788 = OpLoad %_arr_float_uint_2 %91787
-     %100468 = OpIAdd %uint %158792 %int_1
-     %100470 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %100470 %91788
-               OpBranch %92278
-      %91778 = OpLabel
-      %91780 = OpISub %uint %158792 %uint_3
-      %91781 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91780
-      %91782 = OpLoad %_arr_float_uint_2 %91781
-     %100463 = OpIAdd %uint %158792 %int_1
-     %100465 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %100465 %91782
-               OpBranch %92278
-      %91772 = OpLabel
-      %91774 = OpISub %uint %158792 %uint_2
-      %91775 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91774
-      %91776 = OpLoad %_arr_float_uint_2 %91775
-     %100458 = OpIAdd %uint %158792 %int_1
-     %100460 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %100460 %91776
-               OpBranch %92278
-      %91766 = OpLabel
-      %91768 = OpISub %uint %158792 %uint_1
-      %91769 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91768
-      %91770 = OpLoad %_arr_float_uint_2 %91769
-     %100453 = OpIAdd %uint %158792 %int_1
-     %100455 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %100455 %91770
-               OpBranch %92278
-      %91750 = OpLabel
-      %91752 = OpISub %uint %158792 %uint_1
-      %91753 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91752
-      %91754 = OpLoad %_arr_float_uint_2 %91753
-      %91758 = OpISub %uint %158792 %uint_4
-      %91759 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91758
-      %91760 = OpLoad %_arr_float_uint_2 %91759
-               OpStore %91753 %91760
-               OpStore %91759 %91754
-               OpBranch %92278
-      %91734 = OpLabel
-      %91736 = OpISub %uint %158792 %uint_1
-      %91737 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91736
-      %91738 = OpLoad %_arr_float_uint_2 %91737
-      %91742 = OpISub %uint %158792 %uint_3
-      %91743 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91742
-      %91744 = OpLoad %_arr_float_uint_2 %91743
-               OpStore %91737 %91744
-               OpStore %91743 %91738
-               OpBranch %92278
-      %91718 = OpLabel
-      %91720 = OpISub %uint %158792 %uint_1
-      %91721 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91720
-      %91722 = OpLoad %_arr_float_uint_2 %91721
-      %91726 = OpISub %uint %158792 %uint_2
-      %91727 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %91726
-      %91728 = OpLoad %_arr_float_uint_2 %91727
-               OpStore %91721 %91728
-               OpStore %91727 %91722
-               OpBranch %92278
-      %91658 = OpLabel
-     %100397 = OpIAdd %uint %158794 %int_1
-     %100398 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-     %100399 = OpLoad %float %100398
-      %91662 = OpLoad %uint %83860
-      %91663 = OpBitwiseAnd %uint %91662 %uint_32768
-      %91664 = OpUGreaterThan %bool %91663 %uint_0
-               OpSelectionMerge %100421 None
-               OpSwitch %uint_0 %100405
-     %100405 = OpLabel
-               OpSelectionMerge %100420 None
-               OpBranchConditional %91664 %100407 %100415
-     %100415 = OpLabel
-     %100417 = OpISub %uint %158792 %int_1
-     %100418 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100417
-     %100419 = OpLoad %_arr_float_uint_2 %100418
-     %100751 = OpCompositeExtract %float %100419 0
-     %100752 = OpCompositeExtract %float %100419 1
-               OpBranch %100421
-     %100407 = OpLabel
-     %100409 = OpIAdd %uint %158794 %int_2
-     %100410 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %100397
-     %100411 = OpLoad %float %100410
-               OpBranch %100421
-     %100420 = OpLabel
-               OpUnreachable
-     %100421 = OpLabel
-     %158821 = OpPhi %uint %100409 %100407 %100397 %100415
-     %158820 = OpPhi %uint %158792 %100407 %100417 %100415
-     %158818 = OpPhi %float %100411 %100407 %100751 %100415
-     %158817 = OpPhi %float %100411 %100407 %100752 %100415
-      %91668 = OpLoad %uint %83860
-      %91669 = OpBitwiseAnd %uint %91668 %uint_16384
-      %91670 = OpUGreaterThan %bool %91669 %uint_0
-               OpSelectionMerge %100444 None
-               OpSwitch %uint_0 %100428
-     %100428 = OpLabel
-               OpSelectionMerge %100443 None
-               OpBranchConditional %91670 %100430 %100438
-     %100438 = OpLabel
-     %100440 = OpISub %uint %158820 %int_1
-     %100441 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100440
-     %100442 = OpLoad %_arr_float_uint_2 %100441
-     %100742 = OpCompositeExtract %float %100442 0
-     %100743 = OpCompositeExtract %float %100442 1
-               OpBranch %100444
-     %100430 = OpLabel
-     %100432 = OpIAdd %uint %158821 %int_1
-     %100433 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158821
-     %100434 = OpLoad %float %100433
-               OpBranch %100444
-     %100443 = OpLabel
-               OpUnreachable
-     %100444 = OpLabel
-     %182664 = OpPhi %uint %100432 %100430 %158821 %100438
-     %158824 = OpPhi %uint %158820 %100430 %100440 %100438
-     %158823 = OpPhi %float %100434 %100430 %100742 %100438
-     %158822 = OpPhi %float %100434 %100430 %100743 %100438
-      %91677 = OpFSub %float %158818 %158823
-      %91678 = OpExtInst %float %1 FAbs %91677
-      %91679 = OpFSub %float %100399 %91678
-      %91680 = OpExtInst %float %1 FMax %91679 %float_0
-      %91686 = OpFSub %float %158817 %158822
-      %91687 = OpExtInst %float %1 FAbs %91686
-      %91688 = OpFSub %float %100399 %91687
-      %91689 = OpExtInst %float %1 FMax %91688 %float_0
-      %91694 = OpExtInst %float %1 FMax %158818 %158823
-      %91697 = OpFMul %float %91680 %91680
-      %91698 = OpFMul %float %91697 %float_0_25
-      %91700 = OpFDiv %float %91698 %100399
-      %91701 = OpFAdd %float %91694 %91700
-      %91706 = OpExtInst %float %1 FMax %158817 %158822
-      %91709 = OpFMul %float %91689 %91689
-      %91710 = OpFMul %float %91709 %float_0_25
-      %91712 = OpFDiv %float %91710 %100399
-      %91713 = OpFAdd %float %91706 %91712
-      %91716 = OpCompositeConstruct %_arr_float_uint_2 %91701 %91713
-     %100448 = OpIAdd %uint %158824 %int_1
-     %100450 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158824
-               OpStore %100450 %91716
-               OpBranch %92278
-      %91598 = OpLabel
-     %100340 = OpIAdd %uint %158794 %int_1
-     %100341 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-     %100342 = OpLoad %float %100341
-      %91602 = OpLoad %uint %83860
-      %91603 = OpBitwiseAnd %uint %91602 %uint_32768
-      %91604 = OpUGreaterThan %bool %91603 %uint_0
-               OpSelectionMerge %100364 None
-               OpSwitch %uint_0 %100348
-     %100348 = OpLabel
-               OpSelectionMerge %100363 None
-               OpBranchConditional %91604 %100350 %100358
-     %100358 = OpLabel
-     %100360 = OpISub %uint %158792 %int_1
-     %100361 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100360
-     %100362 = OpLoad %_arr_float_uint_2 %100361
-     %100769 = OpCompositeExtract %float %100362 0
-     %100770 = OpCompositeExtract %float %100362 1
-               OpBranch %100364
-     %100350 = OpLabel
-     %100352 = OpIAdd %uint %158794 %int_2
-     %100353 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %100340
-     %100354 = OpLoad %float %100353
-               OpBranch %100364
-     %100363 = OpLabel
-               OpUnreachable
-     %100364 = OpLabel
-     %158832 = OpPhi %uint %100352 %100350 %100340 %100358
-     %158831 = OpPhi %uint %158792 %100350 %100360 %100358
-     %158829 = OpPhi %float %100354 %100350 %100769 %100358
-     %158828 = OpPhi %float %100354 %100350 %100770 %100358
-      %91608 = OpLoad %uint %83860
-      %91609 = OpBitwiseAnd %uint %91608 %uint_16384
-      %91610 = OpUGreaterThan %bool %91609 %uint_0
-               OpSelectionMerge %100387 None
-               OpSwitch %uint_0 %100371
-     %100371 = OpLabel
-               OpSelectionMerge %100386 None
-               OpBranchConditional %91610 %100373 %100381
-     %100381 = OpLabel
-     %100383 = OpISub %uint %158831 %int_1
-     %100384 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100383
-     %100385 = OpLoad %_arr_float_uint_2 %100384
-     %100760 = OpCompositeExtract %float %100385 0
-     %100761 = OpCompositeExtract %float %100385 1
-               OpBranch %100387
-     %100373 = OpLabel
-     %100375 = OpIAdd %uint %158832 %int_1
-     %100376 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158832
-     %100377 = OpLoad %float %100376
-               OpBranch %100387
-     %100386 = OpLabel
-               OpUnreachable
-     %100387 = OpLabel
-     %182663 = OpPhi %uint %100375 %100373 %158832 %100381
-     %158835 = OpPhi %uint %158831 %100373 %100383 %100381
-     %158834 = OpPhi %float %100377 %100373 %100760 %100381
-     %158833 = OpPhi %float %100377 %100373 %100761 %100381
-      %91617 = OpFSub %float %158829 %158834
-      %91618 = OpExtInst %float %1 FAbs %91617
-      %91619 = OpFSub %float %100342 %91618
-      %91620 = OpExtInst %float %1 FMax %91619 %float_0
-      %91626 = OpFSub %float %158828 %158833
-      %91627 = OpExtInst %float %1 FAbs %91626
-      %91628 = OpFSub %float %100342 %91627
-      %91629 = OpExtInst %float %1 FMax %91628 %float_0
-      %91634 = OpExtInst %float %1 FMin %158829 %158834
-      %91637 = OpFMul %float %91620 %91620
-      %91638 = OpFMul %float %91637 %float_0_25
-      %91640 = OpFDiv %float %91638 %100342
-      %91641 = OpFSub %float %91634 %91640
-      %91646 = OpExtInst %float %1 FMin %158828 %158833
-      %91649 = OpFMul %float %91629 %91629
-      %91650 = OpFMul %float %91649 %float_0_25
-      %91652 = OpFDiv %float %91650 %100342
-      %91653 = OpFSub %float %91646 %91652
-      %91656 = OpCompositeConstruct %_arr_float_uint_2 %91641 %91653
-     %100391 = OpIAdd %uint %158835 %int_1
-     %100393 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158835
-               OpStore %100393 %91656
-               OpBranch %92278
-      %91571 = OpLabel
-      %91574 = OpLoad %uint %83860
-      %91575 = OpBitwiseAnd %uint %91574 %uint_32768
-      %91576 = OpUGreaterThan %bool %91575 %uint_0
-               OpSelectionMerge %100330 None
-               OpSwitch %uint_0 %100314
-     %100314 = OpLabel
-               OpSelectionMerge %100329 None
-               OpBranchConditional %91576 %100316 %100324
-     %100324 = OpLabel
-     %100326 = OpISub %uint %158811 %int_1
-     %100327 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %100326
-     %100328 = OpLoad %_arr_v4float_uint_2 %100327
-     %100779 = OpCompositeExtract %v4float %100328 1
-               OpBranch %100330
-     %100316 = OpLabel
-     %100318 = OpIAdd %uint %158837 %int_1
-     %100319 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-     %100320 = OpLoad %v4float %100319
-               OpBranch %100330
-     %100329 = OpLabel
-               OpUnreachable
-     %100330 = OpLabel
-     %243434 = OpPhi %uint %100318 %100316 %158837 %100324
-     %159818 = OpPhi %uint %158811 %100316 %100326 %100324
-     %158838 = OpPhi %v4float %100320 %100316 %100779 %100324
-      %91591 = OpFMul %v4float %158838 %158838
-      %91594 = OpFMul %v4float %91591 %158838
-     %105526 = OpCompositeConstruct %_arr_v4float_uint_2 %91594 %126085
-     %100334 = OpIAdd %uint %159818 %int_1
-     %100336 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %159818
-               OpStore %100336 %105526
-               OpBranch %92278
-      %91525 = OpLabel
-      %91528 = OpLoad %uint %83860
-      %91529 = OpBitwiseAnd %uint %91528 %uint_32768
-      %91530 = OpUGreaterThan %bool %91529 %uint_0
-               OpSelectionMerge %100302 None
-               OpSwitch %uint_0 %100286
-     %100286 = OpLabel
-               OpSelectionMerge %100301 None
-               OpBranchConditional %91530 %100288 %100296
-     %100296 = OpLabel
-     %100298 = OpISub %uint %158811 %int_1
-     %100299 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %100298
-     %100300 = OpLoad %_arr_v4float_uint_2 %100299
-     %100787 = OpCompositeExtract %v4float %100300 0
-     %100788 = OpCompositeExtract %v4float %100300 1
-               OpBranch %100302
-     %100288 = OpLabel
-     %100290 = OpIAdd %uint %158837 %int_1
-     %100291 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-     %100292 = OpLoad %v4float %100291
-               OpBranch %100302
-     %100301 = OpLabel
-               OpUnreachable
-     %100302 = OpLabel
-     %243433 = OpPhi %uint %100290 %100288 %158837 %100296
-     %159821 = OpPhi %uint %158811 %100288 %100298 %100296
-     %159820 = OpPhi %v4float %100292 %100288 %100787 %100296
-     %159819 = OpPhi %v4float %100292 %100288 %100788 %100296
-      %91536 = OpFOrdGreaterThan %v4bool %159819 %3375
-      %91540 = OpFOrdLessThan %v4bool %159820 %3375
-      %91541 = OpSelect %v4bool %91540 %91536 %3373
-      %91546 = OpFMul %v4float %159820 %159820
-      %91551 = OpFMul %v4float %159819 %159819
-      %91552 = OpExtInst %v4float %1 FMin %91546 %91551
-      %91555 = OpSelect %v4float %91541 %3375 %91552
-      %91567 = OpExtInst %v4float %1 FMax %91546 %91551
-     %105517 = OpCompositeConstruct %_arr_v4float_uint_2 %91555 %91567
-     %100306 = OpIAdd %uint %159821 %int_1
-     %100308 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %159821
-               OpStore %100308 %105517
-               OpBranch %92278
-      %91498 = OpLabel
-      %91501 = OpLoad %uint %83860
-      %91502 = OpBitwiseAnd %uint %91501 %uint_32768
-      %91503 = OpUGreaterThan %bool %91502 %uint_0
-               OpSelectionMerge %100274 None
-               OpSwitch %uint_0 %100258
-     %100258 = OpLabel
-               OpSelectionMerge %100273 None
-               OpBranchConditional %91503 %100260 %100268
-     %100268 = OpLabel
-     %100270 = OpISub %uint %158802 %int_1
-     %100271 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %100270
-     %100272 = OpLoad %_arr_v3float_uint_2 %100271
-     %100797 = OpCompositeExtract %v3float %100272 1
-               OpBranch %100274
-     %100260 = OpLabel
-     %100262 = OpIAdd %uint %158805 %int_1
-     %100263 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-     %100264 = OpLoad %v3float %100263
-               OpBranch %100274
-     %100273 = OpLabel
-               OpUnreachable
-     %100274 = OpLabel
-     %242658 = OpPhi %uint %100262 %100260 %158805 %100268
-     %160802 = OpPhi %uint %158802 %100260 %100270 %100268
-     %159822 = OpPhi %v3float %100264 %100260 %100797 %100268
-      %91518 = OpFMul %v3float %159822 %159822
-      %91521 = OpFMul %v3float %91518 %159822
-     %105508 = OpCompositeConstruct %_arr_v3float_uint_2 %91521 %126098
-     %100278 = OpIAdd %uint %160802 %int_1
-     %100280 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %160802
-               OpStore %100280 %105508
-               OpBranch %92278
-      %91452 = OpLabel
-      %91455 = OpLoad %uint %83860
-      %91456 = OpBitwiseAnd %uint %91455 %uint_32768
-      %91457 = OpUGreaterThan %bool %91456 %uint_0
-               OpSelectionMerge %100246 None
-               OpSwitch %uint_0 %100230
-     %100230 = OpLabel
-               OpSelectionMerge %100245 None
-               OpBranchConditional %91457 %100232 %100240
-     %100240 = OpLabel
-     %100242 = OpISub %uint %158802 %int_1
-     %100243 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %100242
-     %100244 = OpLoad %_arr_v3float_uint_2 %100243
-     %100805 = OpCompositeExtract %v3float %100244 0
-     %100806 = OpCompositeExtract %v3float %100244 1
-               OpBranch %100246
-     %100232 = OpLabel
-     %100234 = OpIAdd %uint %158805 %int_1
-     %100235 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-     %100236 = OpLoad %v3float %100235
-               OpBranch %100246
-     %100245 = OpLabel
-               OpUnreachable
-     %100246 = OpLabel
-     %242657 = OpPhi %uint %100234 %100232 %158805 %100240
-     %160805 = OpPhi %uint %158802 %100232 %100242 %100240
-     %160804 = OpPhi %v3float %100236 %100232 %100805 %100240
-     %160803 = OpPhi %v3float %100236 %100232 %100806 %100240
-      %91463 = OpFOrdGreaterThan %v3bool %160803 %123
-      %91467 = OpFOrdLessThan %v3bool %160804 %123
-      %91468 = OpSelect %v3bool %91467 %91463 %3323
-      %91473 = OpFMul %v3float %160804 %160804
-      %91478 = OpFMul %v3float %160803 %160803
-      %91479 = OpExtInst %v3float %1 FMin %91473 %91478
-      %91482 = OpSelect %v3float %91468 %123 %91479
-      %91494 = OpExtInst %v3float %1 FMax %91473 %91478
-     %105499 = OpCompositeConstruct %_arr_v3float_uint_2 %91482 %91494
-     %100250 = OpIAdd %uint %160805 %int_1
-     %100252 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %160805
-               OpStore %100252 %105499
-               OpBranch %92278
-      %91425 = OpLabel
-      %91428 = OpLoad %uint %83860
-      %91429 = OpBitwiseAnd %uint %91428 %uint_32768
-      %91430 = OpUGreaterThan %bool %91429 %uint_0
-               OpSelectionMerge %100218 None
-               OpSwitch %uint_0 %100202
-     %100202 = OpLabel
-               OpSelectionMerge %100217 None
-               OpBranchConditional %91430 %100204 %100212
-     %100212 = OpLabel
-     %100214 = OpISub %uint %158813 %int_1
-     %100215 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %100214
-     %100216 = OpLoad %_arr_v2float_uint_2 %100215
-     %100815 = OpCompositeExtract %v2float %100216 1
-               OpBranch %100218
-     %100204 = OpLabel
-     %100206 = OpIAdd %uint %160807 %int_1
-     %100207 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-     %100208 = OpLoad %v2float %100207
-               OpBranch %100218
-     %100217 = OpLabel
-               OpUnreachable
-     %100218 = OpLabel
-     %245009 = OpPhi %uint %100206 %100204 %160807 %100212
-     %161788 = OpPhi %uint %158813 %100204 %100214 %100212
-     %160808 = OpPhi %v2float %100208 %100204 %100815 %100212
-      %91445 = OpFMul %v2float %160808 %160808
-      %91448 = OpFMul %v2float %91445 %160808
-     %105490 = OpCompositeConstruct %_arr_v2float_uint_2 %91448 %126113
-     %100222 = OpIAdd %uint %161788 %int_1
-     %100224 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %161788
-               OpStore %100224 %105490
-               OpBranch %92278
-      %91379 = OpLabel
-      %91382 = OpLoad %uint %83860
-      %91383 = OpBitwiseAnd %uint %91382 %uint_32768
-      %91384 = OpUGreaterThan %bool %91383 %uint_0
-               OpSelectionMerge %100190 None
-               OpSwitch %uint_0 %100174
-     %100174 = OpLabel
-               OpSelectionMerge %100189 None
-               OpBranchConditional %91384 %100176 %100184
-     %100184 = OpLabel
-     %100186 = OpISub %uint %158813 %int_1
-     %100187 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %100186
-     %100188 = OpLoad %_arr_v2float_uint_2 %100187
-     %100823 = OpCompositeExtract %v2float %100188 0
-     %100824 = OpCompositeExtract %v2float %100188 1
-               OpBranch %100190
-     %100176 = OpLabel
-     %100178 = OpIAdd %uint %160807 %int_1
-     %100179 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-     %100180 = OpLoad %v2float %100179
-               OpBranch %100190
-     %100189 = OpLabel
-               OpUnreachable
-     %100190 = OpLabel
-     %245008 = OpPhi %uint %100178 %100176 %160807 %100184
-     %161791 = OpPhi %uint %158813 %100176 %100186 %100184
-     %161790 = OpPhi %v2float %100180 %100176 %100823 %100184
-     %161789 = OpPhi %v2float %100180 %100176 %100824 %100184
-      %91390 = OpFOrdGreaterThan %v2bool %161789 %3274
-      %91394 = OpFOrdLessThan %v2bool %161790 %3274
-      %91395 = OpSelect %v2bool %91394 %91390 %3272
-      %91400 = OpFMul %v2float %161790 %161790
-      %91405 = OpFMul %v2float %161789 %161789
-      %91406 = OpExtInst %v2float %1 FMin %91400 %91405
-      %91409 = OpSelect %v2float %91395 %3274 %91406
-      %91421 = OpExtInst %v2float %1 FMax %91400 %91405
-     %105481 = OpCompositeConstruct %_arr_v2float_uint_2 %91409 %91421
-     %100194 = OpIAdd %uint %161791 %int_1
-     %100196 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %161791
-               OpStore %100196 %105481
-               OpBranch %92278
-      %91352 = OpLabel
-      %91355 = OpLoad %uint %83860
-      %91356 = OpBitwiseAnd %uint %91355 %uint_32768
-      %91357 = OpUGreaterThan %bool %91356 %uint_0
-               OpSelectionMerge %100162 None
-               OpSwitch %uint_0 %100146
-     %100146 = OpLabel
-               OpSelectionMerge %100161 None
-               OpBranchConditional %91357 %100148 %100156
-     %100156 = OpLabel
-     %100158 = OpISub %uint %158792 %int_1
-     %100159 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100158
-     %100160 = OpLoad %_arr_float_uint_2 %100159
-     %100833 = OpCompositeExtract %float %100160 1
-               OpBranch %100162
-     %100148 = OpLabel
-     %100150 = OpIAdd %uint %158794 %int_1
-     %100151 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-     %100152 = OpLoad %float %100151
-               OpBranch %100162
-     %100161 = OpLabel
-               OpUnreachable
-     %100162 = OpLabel
-     %182656 = OpPhi %uint %100150 %100148 %158794 %100156
-     %162772 = OpPhi %uint %158792 %100148 %100158 %100156
-     %161792 = OpPhi %float %100152 %100148 %100833 %100156
-      %91372 = OpFMul %float %161792 %161792
-      %91375 = OpFMul %float %91372 %161792
-     %105472 = OpCompositeConstruct %_arr_float_uint_2 %91375 %126126
-     %100166 = OpIAdd %uint %162772 %int_1
-     %100168 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %162772
-               OpStore %100168 %105472
-               OpBranch %92278
-      %91306 = OpLabel
-      %91309 = OpLoad %uint %83860
-      %91310 = OpBitwiseAnd %uint %91309 %uint_32768
-      %91311 = OpUGreaterThan %bool %91310 %uint_0
-               OpSelectionMerge %100134 None
-               OpSwitch %uint_0 %100118
-     %100118 = OpLabel
-               OpSelectionMerge %100133 None
-               OpBranchConditional %91311 %100120 %100128
-     %100128 = OpLabel
-     %100130 = OpISub %uint %158792 %int_1
-     %100131 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100130
-     %100132 = OpLoad %_arr_float_uint_2 %100131
-     %100841 = OpCompositeExtract %float %100132 0
-     %100842 = OpCompositeExtract %float %100132 1
-               OpBranch %100134
-     %100120 = OpLabel
-     %100122 = OpIAdd %uint %158794 %int_1
-     %100123 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-     %100124 = OpLoad %float %100123
-               OpBranch %100134
-     %100133 = OpLabel
-               OpUnreachable
-     %100134 = OpLabel
-     %182655 = OpPhi %uint %100122 %100120 %158794 %100128
-     %162778 = OpPhi %uint %158792 %100120 %100130 %100128
-     %162774 = OpPhi %float %100124 %100120 %100841 %100128
-     %162773 = OpPhi %float %100124 %100120 %100842 %100128
-      %91315 = OpFOrdGreaterThan %bool %162773 %float_0
-               OpSelectionMerge %91320 None
-               OpBranchConditional %91315 %91316 %91320
-      %91316 = OpLabel
-      %91319 = OpFOrdLessThan %bool %162774 %float_0
-               OpBranch %91320
-      %91320 = OpLabel
-      %91321 = OpPhi %bool %91315 %100134 %91319 %91316
-               OpSelectionMerge %91337 None
-               OpBranchConditional %91321 %91322 %91324
-      %91324 = OpLabel
-      %91329 = OpFMul %float %162774 %162774
-      %91334 = OpFMul %float %162773 %162773
-      %91335 = OpExtInst %float %1 FMin %91329 %91334
-               OpBranch %91337
-      %91322 = OpLabel
-               OpBranch %91337
-      %91337 = OpLabel
-     %162775 = OpPhi %float %float_0 %91322 %91335 %91324
-      %91342 = OpFMul %float %162774 %162774
-      %91347 = OpFMul %float %162773 %162773
-      %91348 = OpExtInst %float %1 FMax %91342 %91347
-     %105463 = OpCompositeConstruct %_arr_float_uint_2 %162775 %91348
-     %100138 = OpIAdd %uint %162778 %int_1
-     %100140 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %162778
-               OpStore %100140 %105463
-               OpBranch %92278
-      %91275 = OpLabel
-      %91278 = OpLoad %uint %83860
-      %91279 = OpBitwiseAnd %uint %91278 %uint_32768
-      %91280 = OpUGreaterThan %bool %91279 %uint_0
-               OpSelectionMerge %100091 None
-               OpSwitch %uint_0 %100075
-     %100075 = OpLabel
-               OpSelectionMerge %100090 None
-               OpBranchConditional %91280 %100077 %100085
-     %100085 = OpLabel
-     %100087 = OpISub %uint %158811 %int_1
-     %100088 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %100087
-     %100089 = OpLoad %_arr_v4float_uint_2 %100088
-     %100850 = OpCompositeExtract %v4float %100089 0
-     %100851 = OpCompositeExtract %v4float %100089 1
-               OpBranch %100091
-     %100077 = OpLabel
-     %100079 = OpIAdd %uint %158837 %int_1
-     %100080 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-     %100081 = OpLoad %v4float %100080
-               OpBranch %100091
-     %100090 = OpLabel
-               OpUnreachable
-     %100091 = OpLabel
-     %243424 = OpPhi %uint %100079 %100077 %158837 %100085
-     %242884 = OpPhi %uint %158811 %100077 %100087 %100085
-     %162780 = OpPhi %v4float %100081 %100077 %100850 %100085
-     %162779 = OpPhi %v4float %100081 %100077 %100851 %100085
-      %91283 = OpCompositeExtract %float %162780 3
-      %91285 = OpCompositeExtract %float %162779 3
-      %91286 = OpCompositeConstruct %_arr_float_uint_2 %91283 %91285
-     %100095 = OpIAdd %uint %158792 %int_1
-     %100097 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %100097 %91286
-      %91289 = OpCompositeExtract %float %162780 2
-      %91291 = OpCompositeExtract %float %162779 2
-      %91292 = OpCompositeConstruct %_arr_float_uint_2 %91289 %91291
-     %100100 = OpIAdd %uint %158792 %int_2
-     %100102 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100095
-               OpStore %100102 %91292
-      %91295 = OpCompositeExtract %float %162780 1
-      %91297 = OpCompositeExtract %float %162779 1
-      %91298 = OpCompositeConstruct %_arr_float_uint_2 %91295 %91297
-     %100105 = OpIAdd %uint %158792 %int_3
-     %100107 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100100
-               OpStore %100107 %91298
-      %91301 = OpCompositeExtract %float %162780 0
-      %91303 = OpCompositeExtract %float %162779 0
-      %91304 = OpCompositeConstruct %_arr_float_uint_2 %91301 %91303
-     %100110 = OpIAdd %uint %158792 %int_4
-     %100112 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100105
-               OpStore %100112 %91304
-               OpBranch %92278
-      %91250 = OpLabel
-      %91253 = OpLoad %uint %83860
-      %91254 = OpBitwiseAnd %uint %91253 %uint_32768
-      %91255 = OpUGreaterThan %bool %91254 %uint_0
-               OpSelectionMerge %100053 None
-               OpSwitch %uint_0 %100037
-     %100037 = OpLabel
-               OpSelectionMerge %100052 None
-               OpBranchConditional %91255 %100039 %100047
-     %100047 = OpLabel
-     %100049 = OpISub %uint %158802 %int_1
-     %100050 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %100049
-     %100051 = OpLoad %_arr_v3float_uint_2 %100050
-     %100859 = OpCompositeExtract %v3float %100051 0
-     %100860 = OpCompositeExtract %v3float %100051 1
-               OpBranch %100053
-     %100039 = OpLabel
-     %100041 = OpIAdd %uint %158805 %int_1
-     %100042 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-     %100043 = OpLoad %v3float %100042
-               OpBranch %100053
-     %100052 = OpLabel
-               OpUnreachable
-     %100053 = OpLabel
-     %242649 = OpPhi %uint %100041 %100039 %158805 %100047
-     %242353 = OpPhi %uint %158802 %100039 %100049 %100047
-     %162783 = OpPhi %v3float %100043 %100039 %100859 %100047
-     %162782 = OpPhi %v3float %100043 %100039 %100860 %100047
-      %91258 = OpCompositeExtract %float %162783 2
-      %91260 = OpCompositeExtract %float %162782 2
-      %91261 = OpCompositeConstruct %_arr_float_uint_2 %91258 %91260
-     %100057 = OpIAdd %uint %158792 %int_1
-     %100059 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %100059 %91261
-      %91264 = OpCompositeExtract %float %162783 1
-      %91266 = OpCompositeExtract %float %162782 1
-      %91267 = OpCompositeConstruct %_arr_float_uint_2 %91264 %91266
-     %100062 = OpIAdd %uint %158792 %int_2
-     %100064 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100057
-               OpStore %100064 %91267
-      %91270 = OpCompositeExtract %float %162783 0
-      %91272 = OpCompositeExtract %float %162782 0
-      %91273 = OpCompositeConstruct %_arr_float_uint_2 %91270 %91272
-     %100067 = OpIAdd %uint %158792 %int_3
-     %100069 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100062
-               OpStore %100069 %91273
-               OpBranch %92278
-      %91231 = OpLabel
-      %91234 = OpLoad %uint %83860
-      %91235 = OpBitwiseAnd %uint %91234 %uint_32768
-      %91236 = OpUGreaterThan %bool %91235 %uint_0
-               OpSelectionMerge %100020 None
-               OpSwitch %uint_0 %100004
-     %100004 = OpLabel
-               OpSelectionMerge %100019 None
-               OpBranchConditional %91236 %100006 %100014
-     %100014 = OpLabel
-     %100016 = OpISub %uint %158813 %int_1
-     %100017 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %100016
-     %100018 = OpLoad %_arr_v2float_uint_2 %100017
-     %100868 = OpCompositeExtract %v2float %100018 0
-     %100869 = OpCompositeExtract %v2float %100018 1
-               OpBranch %100020
-     %100006 = OpLabel
-     %100008 = OpIAdd %uint %160807 %int_1
-     %100009 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-     %100010 = OpLoad %v2float %100009
-               OpBranch %100020
-     %100019 = OpLabel
-               OpUnreachable
-     %100020 = OpLabel
-     %245001 = OpPhi %uint %100008 %100006 %160807 %100014
-     %243124 = OpPhi %uint %158813 %100006 %100016 %100014
-     %162786 = OpPhi %v2float %100010 %100006 %100868 %100014
-     %162785 = OpPhi %v2float %100010 %100006 %100869 %100014
-      %91239 = OpCompositeExtract %float %162786 1
-      %91241 = OpCompositeExtract %float %162785 1
-      %91242 = OpCompositeConstruct %_arr_float_uint_2 %91239 %91241
-     %100024 = OpIAdd %uint %158792 %int_1
-     %100026 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %100026 %91242
-      %91245 = OpCompositeExtract %float %162786 0
-      %91247 = OpCompositeExtract %float %162785 0
-      %91248 = OpCompositeConstruct %_arr_float_uint_2 %91245 %91247
-     %100029 = OpIAdd %uint %158792 %int_2
-     %100031 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100024
-               OpStore %100031 %91248
-               OpBranch %92278
-      %91204 = OpLabel
-      %91207 = OpLoad %uint %83860
-      %91208 = OpBitwiseAnd %uint %91207 %uint_32768
-      %91209 = OpUGreaterThan %bool %91208 %uint_0
-               OpSelectionMerge %99992 None
-               OpSwitch %uint_0 %99976
-      %99976 = OpLabel
-               OpSelectionMerge %99991 None
-               OpBranchConditional %91209 %99978 %99986
-      %99986 = OpLabel
-      %99988 = OpISub %uint %162789 %int_1
-      %99989 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %99988
-      %99990 = OpLoad %_arr_mat2v2float_uint_2 %99989
-     %100878 = OpCompositeExtract %mat2v2float %99990 0
-     %100879 = OpCompositeExtract %mat2v2float %99990 1
-               OpBranch %99992
-      %99978 = OpLabel
-      %99980 = OpIAdd %uint %162791 %int_1
-      %99981 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %162791
-      %99982 = OpLoad %mat2v2float %99981
-               OpBranch %99992
-      %99991 = OpLabel
-               OpUnreachable
-      %99992 = OpLabel
-     %246914 = OpPhi %uint %99980 %99978 %162791 %99986
-     %246597 = OpPhi %uint %162789 %99978 %99988 %99986
-     %162793 = OpPhi %mat2v2float %99982 %99978 %100878 %99986
-     %162792 = OpPhi %mat2v2float %99982 %99978 %100879 %99986
-      %91212 = OpCompositeExtract %v2float %162793 0
-      %91214 = OpCompositeExtract %v2float %162793 1
-      %91215 = OpCompositeExtract %float %91212 0
-      %91216 = OpCompositeExtract %float %91212 1
-      %91217 = OpCompositeExtract %float %91214 0
-      %91218 = OpCompositeExtract %float %91214 1
-      %91219 = OpCompositeConstruct %v4float %91215 %91216 %91217 %91218
-      %91221 = OpCompositeExtract %v2float %162792 0
-      %91223 = OpCompositeExtract %v2float %162792 1
-      %91224 = OpCompositeExtract %float %91221 0
-      %91225 = OpCompositeExtract %float %91221 1
-      %91226 = OpCompositeExtract %float %91223 0
-      %91227 = OpCompositeExtract %float %91223 1
-      %91228 = OpCompositeConstruct %v4float %91224 %91225 %91226 %91227
-      %91229 = OpCompositeConstruct %_arr_v4float_uint_2 %91219 %91228
-      %99996 = OpIAdd %uint %158811 %int_1
-      %99998 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %158811
-               OpStore %99998 %91229
-               OpBranch %92278
-      %91173 = OpLabel
-      %91176 = OpLoad %uint %83860
-      %91177 = OpBitwiseAnd %uint %91176 %uint_32768
-      %91178 = OpUGreaterThan %bool %91177 %uint_0
-               OpSelectionMerge %99949 None
-               OpSwitch %uint_0 %99933
-      %99933 = OpLabel
-               OpSelectionMerge %99948 None
-               OpBranchConditional %91178 %99935 %99943
-      %99943 = OpLabel
-      %99945 = OpISub %uint %162796 %int_1
-      %99946 = OpAccessChain %_ptr_Function__arr_mat4v4float_uint_2 %425 %99945
-      %99947 = OpLoad %_arr_mat4v4float_uint_2 %99946
-     %100888 = OpCompositeExtract %mat4v4float %99947 0
-     %100889 = OpCompositeExtract %mat4v4float %99947 1
-               OpBranch %99949
-      %99935 = OpLabel
-      %99937 = OpIAdd %uint %162798 %int_1
-      %99938 = OpAccessChain %_ptr_StorageBuffer_mat4v4float %412 %int_0 %162798
-      %99939 = OpLoad %mat4v4float %99938
-               OpBranch %99949
-      %99948 = OpLabel
-               OpUnreachable
-      %99949 = OpLabel
-     %247547 = OpPhi %uint %99937 %99935 %162798 %99943
-     %247230 = OpPhi %uint %162796 %99935 %99945 %99943
-     %162800 = OpPhi %mat4v4float %99939 %99935 %100888 %99943
-     %162799 = OpPhi %mat4v4float %99939 %99935 %100889 %99943
-      %91181 = OpCompositeExtract %v4float %162800 3
-      %91183 = OpCompositeExtract %v4float %162799 3
-      %91184 = OpCompositeConstruct %_arr_v4float_uint_2 %91181 %91183
-      %99953 = OpIAdd %uint %158811 %int_1
-      %99955 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %158811
-               OpStore %99955 %91184
-      %91187 = OpCompositeExtract %v4float %162800 2
-      %91189 = OpCompositeExtract %v4float %162799 2
-      %91190 = OpCompositeConstruct %_arr_v4float_uint_2 %91187 %91189
-      %99958 = OpIAdd %uint %158811 %int_2
-      %99960 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99953
-               OpStore %99960 %91190
-      %91193 = OpCompositeExtract %v4float %162800 1
-      %91195 = OpCompositeExtract %v4float %162799 1
-      %91196 = OpCompositeConstruct %_arr_v4float_uint_2 %91193 %91195
-      %99963 = OpIAdd %uint %158811 %int_3
-      %99965 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99958
-               OpStore %99965 %91196
-      %91199 = OpCompositeExtract %v4float %162800 0
-      %91201 = OpCompositeExtract %v4float %162799 0
-      %91202 = OpCompositeConstruct %_arr_v4float_uint_2 %91199 %91201
-      %99968 = OpIAdd %uint %158811 %int_4
-      %99970 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99963
-               OpStore %99970 %91202
-               OpBranch %92278
-      %91148 = OpLabel
-      %91151 = OpLoad %uint %83860
-      %91152 = OpBitwiseAnd %uint %91151 %uint_32768
-      %91153 = OpUGreaterThan %bool %91152 %uint_0
-               OpSelectionMerge %99911 None
-               OpSwitch %uint_0 %99895
-      %99895 = OpLabel
-               OpSelectionMerge %99910 None
-               OpBranchConditional %91153 %99897 %99905
-      %99905 = OpLabel
-      %99907 = OpISub %uint %162803 %int_1
-      %99908 = OpAccessChain %_ptr_Function__arr_mat3v3float_uint_2 %396 %99907
-      %99909 = OpLoad %_arr_mat3v3float_uint_2 %99908
-     %100898 = OpCompositeExtract %mat3v3float %99909 0
-     %100899 = OpCompositeExtract %mat3v3float %99909 1
-               OpBranch %99911
-      %99897 = OpLabel
-      %99899 = OpIAdd %uint %162805 %int_1
-      %99900 = OpAccessChain %_ptr_StorageBuffer_mat3v3float %383 %int_0 %162805
-      %99901 = OpLoad %mat3v3float %99900
-               OpBranch %99911
-      %99910 = OpLabel
-               OpUnreachable
-      %99911 = OpLabel
-     %248180 = OpPhi %uint %99899 %99897 %162805 %99905
-     %247863 = OpPhi %uint %162803 %99897 %99907 %99905
-     %162807 = OpPhi %mat3v3float %99901 %99897 %100898 %99905
-     %162806 = OpPhi %mat3v3float %99901 %99897 %100899 %99905
-      %91156 = OpCompositeExtract %v3float %162807 2
-      %91158 = OpCompositeExtract %v3float %162806 2
-      %91159 = OpCompositeConstruct %_arr_v3float_uint_2 %91156 %91158
-      %99915 = OpIAdd %uint %158802 %int_1
-      %99917 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %158802
-               OpStore %99917 %91159
-      %91162 = OpCompositeExtract %v3float %162807 1
-      %91164 = OpCompositeExtract %v3float %162806 1
-      %91165 = OpCompositeConstruct %_arr_v3float_uint_2 %91162 %91164
-      %99920 = OpIAdd %uint %158802 %int_2
-      %99922 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %99915
-               OpStore %99922 %91165
-      %91168 = OpCompositeExtract %v3float %162807 0
-      %91170 = OpCompositeExtract %v3float %162806 0
-      %91171 = OpCompositeConstruct %_arr_v3float_uint_2 %91168 %91170
-      %99925 = OpIAdd %uint %158802 %int_3
-      %99927 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %99920
-               OpStore %99927 %91171
-               OpBranch %92278
-      %91129 = OpLabel
-      %91132 = OpLoad %uint %83860
-      %91133 = OpBitwiseAnd %uint %91132 %uint_32768
-      %91134 = OpUGreaterThan %bool %91133 %uint_0
-               OpSelectionMerge %99878 None
-               OpSwitch %uint_0 %99862
-      %99862 = OpLabel
-               OpSelectionMerge %99877 None
-               OpBranchConditional %91134 %99864 %99872
-      %99872 = OpLabel
-      %99874 = OpISub %uint %162789 %int_1
-      %99875 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %99874
-      %99876 = OpLoad %_arr_mat2v2float_uint_2 %99875
-     %100907 = OpCompositeExtract %mat2v2float %99876 0
-     %100908 = OpCompositeExtract %mat2v2float %99876 1
-               OpBranch %99878
-      %99864 = OpLabel
-      %99866 = OpIAdd %uint %162791 %int_1
-      %99867 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %162791
-      %99868 = OpLoad %mat2v2float %99867
-               OpBranch %99878
-      %99877 = OpLabel
-               OpUnreachable
-      %99878 = OpLabel
-     %246911 = OpPhi %uint %99866 %99864 %162791 %99872
-     %246594 = OpPhi %uint %162789 %99864 %99874 %99872
-     %162810 = OpPhi %mat2v2float %99868 %99864 %100907 %99872
-     %162809 = OpPhi %mat2v2float %99868 %99864 %100908 %99872
-      %91137 = OpCompositeExtract %v2float %162810 1
-      %91139 = OpCompositeExtract %v2float %162809 1
-      %91140 = OpCompositeConstruct %_arr_v2float_uint_2 %91137 %91139
-      %99882 = OpIAdd %uint %158813 %int_1
-      %99884 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %158813
-               OpStore %99884 %91140
-      %91143 = OpCompositeExtract %v2float %162810 0
-      %91145 = OpCompositeExtract %v2float %162809 0
-      %91146 = OpCompositeConstruct %_arr_v2float_uint_2 %91143 %91145
-      %99887 = OpIAdd %uint %158813 %int_2
-      %99889 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %99882
-               OpStore %99889 %91146
-               OpBranch %92278
-      %91098 = OpLabel
-      %91101 = OpLoad %uint %83860
-      %91102 = OpBitwiseAnd %uint %91101 %uint_32768
-      %91103 = OpUGreaterThan %bool %91102 %uint_0
-               OpSelectionMerge %99835 None
-               OpSwitch %uint_0 %99819
-      %99819 = OpLabel
-               OpSelectionMerge %99834 None
-               OpBranchConditional %91103 %99821 %99829
-      %99829 = OpLabel
-      %99831 = OpISub %uint %162789 %int_1
-      %99832 = OpAccessChain %_ptr_Function__arr_mat2v2float_uint_2 %368 %99831
-      %99833 = OpLoad %_arr_mat2v2float_uint_2 %99832
-     %100916 = OpCompositeExtract %mat2v2float %99833 0
-     %100917 = OpCompositeExtract %mat2v2float %99833 1
-               OpBranch %99835
-      %99821 = OpLabel
-      %99823 = OpIAdd %uint %162791 %int_1
-      %99824 = OpAccessChain %_ptr_StorageBuffer_mat2v2float %354 %int_0 %162791
-      %99825 = OpLoad %mat2v2float %99824
-               OpBranch %99835
-      %99834 = OpLabel
-               OpUnreachable
-      %99835 = OpLabel
-     %246910 = OpPhi %uint %99823 %99821 %162791 %99829
-     %246593 = OpPhi %uint %162789 %99821 %99831 %99829
-     %162813 = OpPhi %mat2v2float %99825 %99821 %100916 %99829
-     %162812 = OpPhi %mat2v2float %99825 %99821 %100917 %99829
-      %91106 = OpCompositeExtract %float %162813 1 1
-      %91108 = OpCompositeExtract %float %162812 1 1
-      %91109 = OpCompositeConstruct %_arr_float_uint_2 %91106 %91108
-      %99839 = OpIAdd %uint %158792 %int_1
-      %99841 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %99841 %91109
-      %91112 = OpCompositeExtract %float %162813 1 0
-      %91114 = OpCompositeExtract %float %162812 1 0
-      %91115 = OpCompositeConstruct %_arr_float_uint_2 %91112 %91114
-      %99844 = OpIAdd %uint %158792 %int_2
-      %99846 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99839
-               OpStore %99846 %91115
-      %91118 = OpCompositeExtract %float %162813 0 1
-      %91120 = OpCompositeExtract %float %162812 0 1
-      %91121 = OpCompositeConstruct %_arr_float_uint_2 %91118 %91120
-      %99849 = OpIAdd %uint %158792 %int_3
-      %99851 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99844
-               OpStore %99851 %91121
-      %91124 = OpCompositeExtract %float %162813 0 0
-      %91126 = OpCompositeExtract %float %162812 0 0
-      %91127 = OpCompositeConstruct %_arr_float_uint_2 %91124 %91126
-      %99854 = OpIAdd %uint %158792 %int_4
-      %99856 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99849
-               OpStore %99856 %91127
-               OpBranch %92278
-      %91065 = OpLabel
-      %91068 = OpLoad %uint %83860
-      %91069 = OpBitwiseAnd %uint %91068 %uint_32768
-      %91070 = OpUGreaterThan %bool %91069 %uint_0
-               OpSelectionMerge %99784 None
-               OpSwitch %uint_0 %99768
-      %99768 = OpLabel
-               OpSelectionMerge %99783 None
-               OpBranchConditional %91070 %99770 %99778
-      %99778 = OpLabel
-      %99780 = OpISub %uint %158813 %int_1
-      %99781 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %99780
-      %99782 = OpLoad %_arr_v2float_uint_2 %99781
-     %100934 = OpCompositeExtract %v2float %99782 0
-     %100935 = OpCompositeExtract %v2float %99782 1
-               OpBranch %99784
-      %99770 = OpLabel
-      %99772 = OpIAdd %uint %160807 %int_1
-      %99773 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %99774 = OpLoad %v2float %99773
-               OpBranch %99784
-      %99783 = OpLabel
-               OpUnreachable
-      %99784 = OpLabel
-     %162819 = OpPhi %uint %99772 %99770 %160807 %99778
-     %162818 = OpPhi %uint %158813 %99770 %99780 %99778
-     %162816 = OpPhi %v2float %99774 %99770 %100934 %99778
-     %162815 = OpPhi %v2float %99774 %99770 %100935 %99778
-      %91074 = OpLoad %uint %83860
-      %91075 = OpBitwiseAnd %uint %91074 %uint_16384
-      %91076 = OpUGreaterThan %bool %91075 %uint_0
-               OpSelectionMerge %99807 None
-               OpSwitch %uint_0 %99791
-      %99791 = OpLabel
-               OpSelectionMerge %99806 None
-               OpBranchConditional %91076 %99793 %99801
-      %99801 = OpLabel
-      %99803 = OpISub %uint %162818 %int_1
-      %99804 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %99803
-      %99805 = OpLoad %_arr_v2float_uint_2 %99804
-     %100925 = OpCompositeExtract %v2float %99805 0
-     %100926 = OpCompositeExtract %v2float %99805 1
-               OpBranch %99807
-      %99793 = OpLabel
-      %99795 = OpIAdd %uint %162819 %int_1
-      %99796 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %162819
-      %99797 = OpLoad %v2float %99796
-               OpBranch %99807
-      %99806 = OpLabel
-               OpUnreachable
-      %99807 = OpLabel
-     %244995 = OpPhi %uint %99795 %99793 %162819 %99801
-     %243119 = OpPhi %uint %162818 %99793 %99803 %99801
-     %162821 = OpPhi %v2float %99797 %99793 %100925 %99801
-     %162820 = OpPhi %v2float %99797 %99793 %100926 %99801
-      %91082 = OpCompositeExtract %float %162816 0
-      %91083 = OpCompositeExtract %float %162816 1
-      %91084 = OpCompositeExtract %float %162821 0
-      %91085 = OpCompositeExtract %float %162821 1
-      %91086 = OpCompositeConstruct %v4float %91082 %91083 %91084 %91085
-      %91091 = OpCompositeExtract %float %162815 0
-      %91092 = OpCompositeExtract %float %162815 1
-      %91093 = OpCompositeExtract %float %162820 0
-      %91094 = OpCompositeExtract %float %162820 1
-      %91095 = OpCompositeConstruct %v4float %91091 %91092 %91093 %91094
-      %91096 = OpCompositeConstruct %_arr_v4float_uint_2 %91086 %91095
-      %99811 = OpIAdd %uint %158811 %int_1
-      %99813 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %158811
-               OpStore %99813 %91096
-               OpBranch %92278
-      %91034 = OpLabel
-      %91037 = OpLoad %uint %83860
-      %91038 = OpBitwiseAnd %uint %91037 %uint_32768
-      %91039 = OpUGreaterThan %bool %91038 %uint_0
-               OpSelectionMerge %99733 None
-               OpSwitch %uint_0 %99717
-      %99717 = OpLabel
-               OpSelectionMerge %99732 None
-               OpBranchConditional %91039 %99719 %99727
-      %99727 = OpLabel
-      %99729 = OpISub %uint %158802 %int_1
-      %99730 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %99729
-      %99731 = OpLoad %_arr_v3float_uint_2 %99730
-     %100952 = OpCompositeExtract %v3float %99731 0
-     %100953 = OpCompositeExtract %v3float %99731 1
-               OpBranch %99733
-      %99719 = OpLabel
-      %99721 = OpIAdd %uint %158805 %int_1
-      %99722 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %99723 = OpLoad %v3float %99722
-               OpBranch %99733
-      %99732 = OpLabel
-               OpUnreachable
-      %99733 = OpLabel
-     %242640 = OpPhi %uint %99721 %99719 %158805 %99727
-     %242345 = OpPhi %uint %158802 %99719 %99729 %99727
-     %162825 = OpPhi %v3float %99723 %99719 %100952 %99727
-     %162824 = OpPhi %v3float %99723 %99719 %100953 %99727
-      %91043 = OpLoad %uint %83860
-      %91044 = OpBitwiseAnd %uint %91043 %uint_16384
-      %91045 = OpUGreaterThan %bool %91044 %uint_0
-               OpSelectionMerge %99756 None
-               OpSwitch %uint_0 %99740
-      %99740 = OpLabel
-               OpSelectionMerge %99755 None
-               OpBranchConditional %91045 %99742 %99750
-      %99750 = OpLabel
-      %99752 = OpISub %uint %158792 %int_1
-      %99753 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99752
-      %99754 = OpLoad %_arr_float_uint_2 %99753
-     %100943 = OpCompositeExtract %float %99754 0
-     %100944 = OpCompositeExtract %float %99754 1
-               OpBranch %99756
-      %99742 = OpLabel
-      %99744 = OpIAdd %uint %158794 %int_1
-      %99745 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %99746 = OpLoad %float %99745
-               OpBranch %99756
-      %99755 = OpLabel
-               OpUnreachable
-      %99756 = OpLabel
-     %182642 = OpPhi %uint %99744 %99742 %158794 %99750
-     %182395 = OpPhi %uint %158792 %99742 %99752 %99750
-     %162830 = OpPhi %float %99746 %99742 %100943 %99750
-     %162829 = OpPhi %float %99746 %99742 %100944 %99750
-      %91051 = OpCompositeExtract %float %162825 0
-      %91052 = OpCompositeExtract %float %162825 1
-      %91053 = OpCompositeExtract %float %162825 2
-      %91054 = OpCompositeConstruct %v4float %91051 %91052 %91053 %162830
-      %91059 = OpCompositeExtract %float %162824 0
-      %91060 = OpCompositeExtract %float %162824 1
-      %91061 = OpCompositeExtract %float %162824 2
-      %91062 = OpCompositeConstruct %v4float %91059 %91060 %91061 %162829
-      %91063 = OpCompositeConstruct %_arr_v4float_uint_2 %91054 %91062
-      %99760 = OpIAdd %uint %158811 %int_1
-      %99762 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %158811
-               OpStore %99762 %91063
-               OpBranch %92278
-      %90995 = OpLabel
-      %90998 = OpLoad %uint %83860
-      %90999 = OpBitwiseAnd %uint %90998 %uint_32768
-      %91000 = OpUGreaterThan %bool %90999 %uint_0
-               OpSelectionMerge %99659 None
-               OpSwitch %uint_0 %99643
-      %99643 = OpLabel
-               OpSelectionMerge %99658 None
-               OpBranchConditional %91000 %99645 %99653
-      %99653 = OpLabel
-      %99655 = OpISub %uint %158813 %int_1
-      %99656 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %99655
-      %99657 = OpLoad %_arr_v2float_uint_2 %99656
-     %100979 = OpCompositeExtract %v2float %99657 0
-     %100980 = OpCompositeExtract %v2float %99657 1
-               OpBranch %99659
-      %99645 = OpLabel
-      %99647 = OpIAdd %uint %160807 %int_1
-      %99648 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %99649 = OpLoad %v2float %99648
-               OpBranch %99659
-      %99658 = OpLabel
-               OpUnreachable
-      %99659 = OpLabel
-     %244992 = OpPhi %uint %99647 %99645 %160807 %99653
-     %243116 = OpPhi %uint %158813 %99645 %99655 %99653
-     %162834 = OpPhi %v2float %99649 %99645 %100979 %99653
-     %162833 = OpPhi %v2float %99649 %99645 %100980 %99653
-      %91004 = OpLoad %uint %83860
-      %91005 = OpBitwiseAnd %uint %91004 %uint_16384
-      %91006 = OpUGreaterThan %bool %91005 %uint_0
-               OpSelectionMerge %99682 None
-               OpSwitch %uint_0 %99666
-      %99666 = OpLabel
-               OpSelectionMerge %99681 None
-               OpBranchConditional %91006 %99668 %99676
-      %99676 = OpLabel
-      %99678 = OpISub %uint %158792 %int_1
-      %99679 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99678
-      %99680 = OpLoad %_arr_float_uint_2 %99679
-     %100970 = OpCompositeExtract %float %99680 0
-     %100971 = OpCompositeExtract %float %99680 1
-               OpBranch %99682
-      %99668 = OpLabel
-      %99670 = OpIAdd %uint %158794 %int_1
-      %99671 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %99672 = OpLoad %float %99671
-               OpBranch %99682
-      %99681 = OpLabel
-               OpUnreachable
-      %99682 = OpLabel
-     %162842 = OpPhi %uint %99670 %99668 %158794 %99676
-     %162841 = OpPhi %uint %158792 %99668 %99678 %99676
-     %162839 = OpPhi %float %99672 %99668 %100970 %99676
-     %162838 = OpPhi %float %99672 %99668 %100971 %99676
-      %91010 = OpLoad %uint %83860
-      %91011 = OpBitwiseAnd %uint %91010 %uint_8192
-      %91012 = OpUGreaterThan %bool %91011 %uint_0
-               OpSelectionMerge %99705 None
-               OpSwitch %uint_0 %99689
-      %99689 = OpLabel
-               OpSelectionMerge %99704 None
-               OpBranchConditional %91012 %99691 %99699
-      %99699 = OpLabel
-      %99701 = OpISub %uint %162841 %int_1
-      %99702 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99701
-      %99703 = OpLoad %_arr_float_uint_2 %99702
-     %100961 = OpCompositeExtract %float %99703 0
-     %100962 = OpCompositeExtract %float %99703 1
-               OpBranch %99705
-      %99691 = OpLabel
-      %99693 = OpIAdd %uint %162842 %int_1
-      %99694 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %162842
-      %99695 = OpLoad %float %99694
-               OpBranch %99705
-      %99704 = OpLabel
-               OpUnreachable
-      %99705 = OpLabel
-     %182641 = OpPhi %uint %99693 %99691 %162842 %99699
-     %182394 = OpPhi %uint %162841 %99691 %99701 %99699
-     %162844 = OpPhi %float %99695 %99691 %100961 %99699
-     %162843 = OpPhi %float %99695 %99691 %100962 %99699
-      %91020 = OpCompositeExtract %float %162834 0
-      %91021 = OpCompositeExtract %float %162834 1
-      %91022 = OpCompositeConstruct %v4float %91020 %91021 %162839 %162844
-      %91029 = OpCompositeExtract %float %162833 0
-      %91030 = OpCompositeExtract %float %162833 1
-      %91031 = OpCompositeConstruct %v4float %91029 %91030 %162838 %162843
-      %91032 = OpCompositeConstruct %_arr_v4float_uint_2 %91022 %91031
-      %99709 = OpIAdd %uint %158811 %int_1
-      %99711 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %158811
-               OpStore %99711 %91032
-               OpBranch %92278
-      %90950 = OpLabel
-      %90953 = OpLoad %uint %83860
-      %90954 = OpBitwiseAnd %uint %90953 %uint_32768
-      %90955 = OpUGreaterThan %bool %90954 %uint_0
-               OpSelectionMerge %99562 None
-               OpSwitch %uint_0 %99546
-      %99546 = OpLabel
-               OpSelectionMerge %99561 None
-               OpBranchConditional %90955 %99548 %99556
-      %99556 = OpLabel
-      %99558 = OpISub %uint %158792 %int_1
-      %99559 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99558
-      %99560 = OpLoad %_arr_float_uint_2 %99559
-     %101015 = OpCompositeExtract %float %99560 0
-     %101016 = OpCompositeExtract %float %99560 1
-               OpBranch %99562
-      %99548 = OpLabel
-      %99550 = OpIAdd %uint %158794 %int_1
-      %99551 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %99552 = OpLoad %float %99551
-               OpBranch %99562
-      %99561 = OpLabel
-               OpUnreachable
-      %99562 = OpLabel
-     %162852 = OpPhi %uint %99550 %99548 %158794 %99556
-     %162851 = OpPhi %uint %158792 %99548 %99558 %99556
-     %162849 = OpPhi %float %99552 %99548 %101015 %99556
-     %162848 = OpPhi %float %99552 %99548 %101016 %99556
-      %90959 = OpLoad %uint %83860
-      %90960 = OpBitwiseAnd %uint %90959 %uint_16384
-      %90961 = OpUGreaterThan %bool %90960 %uint_0
-               OpSelectionMerge %99585 None
-               OpSwitch %uint_0 %99569
-      %99569 = OpLabel
-               OpSelectionMerge %99584 None
-               OpBranchConditional %90961 %99571 %99579
-      %99579 = OpLabel
-      %99581 = OpISub %uint %162851 %int_1
-      %99582 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99581
-      %99583 = OpLoad %_arr_float_uint_2 %99582
-     %101006 = OpCompositeExtract %float %99583 0
-     %101007 = OpCompositeExtract %float %99583 1
-               OpBranch %99585
-      %99571 = OpLabel
-      %99573 = OpIAdd %uint %162852 %int_1
-      %99574 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %162852
-      %99575 = OpLoad %float %99574
-               OpBranch %99585
-      %99584 = OpLabel
-               OpUnreachable
-      %99585 = OpLabel
-     %162857 = OpPhi %uint %99573 %99571 %162852 %99579
-     %162856 = OpPhi %uint %162851 %99571 %99581 %99579
-     %162854 = OpPhi %float %99575 %99571 %101006 %99579
-     %162853 = OpPhi %float %99575 %99571 %101007 %99579
-      %90965 = OpLoad %uint %83860
-      %90966 = OpBitwiseAnd %uint %90965 %uint_8192
-      %90967 = OpUGreaterThan %bool %90966 %uint_0
-               OpSelectionMerge %99608 None
-               OpSwitch %uint_0 %99592
-      %99592 = OpLabel
-               OpSelectionMerge %99607 None
-               OpBranchConditional %90967 %99594 %99602
-      %99602 = OpLabel
-      %99604 = OpISub %uint %162856 %int_1
-      %99605 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99604
-      %99606 = OpLoad %_arr_float_uint_2 %99605
-     %100997 = OpCompositeExtract %float %99606 0
-     %100998 = OpCompositeExtract %float %99606 1
-               OpBranch %99608
-      %99594 = OpLabel
-      %99596 = OpIAdd %uint %162857 %int_1
-      %99597 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %162857
-      %99598 = OpLoad %float %99597
-               OpBranch %99608
-      %99607 = OpLabel
-               OpUnreachable
-      %99608 = OpLabel
-     %162862 = OpPhi %uint %99596 %99594 %162857 %99602
-     %162861 = OpPhi %uint %162856 %99594 %99604 %99602
-     %162859 = OpPhi %float %99598 %99594 %100997 %99602
-     %162858 = OpPhi %float %99598 %99594 %100998 %99602
-      %90971 = OpLoad %uint %83860
-      %90972 = OpBitwiseAnd %uint %90971 %uint_4096
-      %90973 = OpUGreaterThan %bool %90972 %uint_0
-               OpSelectionMerge %99631 None
-               OpSwitch %uint_0 %99615
-      %99615 = OpLabel
-               OpSelectionMerge %99630 None
-               OpBranchConditional %90973 %99617 %99625
-      %99625 = OpLabel
-      %99627 = OpISub %uint %162861 %int_1
-      %99628 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99627
-      %99629 = OpLoad %_arr_float_uint_2 %99628
-     %100988 = OpCompositeExtract %float %99629 0
-     %100989 = OpCompositeExtract %float %99629 1
-               OpBranch %99631
-      %99617 = OpLabel
-      %99619 = OpIAdd %uint %162862 %int_1
-      %99620 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %162862
-      %99621 = OpLoad %float %99620
-               OpBranch %99631
-      %99630 = OpLabel
-               OpUnreachable
-      %99631 = OpLabel
-     %182640 = OpPhi %uint %99619 %99617 %162862 %99625
-     %182393 = OpPhi %uint %162861 %99617 %99627 %99625
-     %162864 = OpPhi %float %99621 %99617 %100988 %99625
-     %162863 = OpPhi %float %99621 %99617 %100989 %99625
-      %90983 = OpCompositeConstruct %v4float %162849 %162854 %162859 %162864
-      %90992 = OpCompositeConstruct %v4float %162848 %162853 %162858 %162863
-      %90993 = OpCompositeConstruct %_arr_v4float_uint_2 %90983 %90992
-      %99635 = OpIAdd %uint %158811 %int_1
-      %99637 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %158811
-               OpStore %99637 %90993
-               OpBranch %92278
-      %90921 = OpLabel
-      %90924 = OpLoad %uint %83860
-      %90925 = OpBitwiseAnd %uint %90924 %uint_32768
-      %90926 = OpUGreaterThan %bool %90925 %uint_0
-               OpSelectionMerge %99511 None
-               OpSwitch %uint_0 %99495
-      %99495 = OpLabel
-               OpSelectionMerge %99510 None
-               OpBranchConditional %90926 %99497 %99505
-      %99505 = OpLabel
-      %99507 = OpISub %uint %158813 %int_1
-      %99508 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %99507
-      %99509 = OpLoad %_arr_v2float_uint_2 %99508
-     %101033 = OpCompositeExtract %v2float %99509 0
-     %101034 = OpCompositeExtract %v2float %99509 1
-               OpBranch %99511
-      %99497 = OpLabel
-      %99499 = OpIAdd %uint %160807 %int_1
-      %99500 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %99501 = OpLoad %v2float %99500
-               OpBranch %99511
-      %99510 = OpLabel
-               OpUnreachable
-      %99511 = OpLabel
-     %244985 = OpPhi %uint %99499 %99497 %160807 %99505
-     %243109 = OpPhi %uint %158813 %99497 %99507 %99505
-     %162870 = OpPhi %v2float %99501 %99497 %101033 %99505
-     %162869 = OpPhi %v2float %99501 %99497 %101034 %99505
-      %90930 = OpLoad %uint %83860
-      %90931 = OpBitwiseAnd %uint %90930 %uint_16384
-      %90932 = OpUGreaterThan %bool %90931 %uint_0
-               OpSelectionMerge %99534 None
-               OpSwitch %uint_0 %99518
-      %99518 = OpLabel
-               OpSelectionMerge %99533 None
-               OpBranchConditional %90932 %99520 %99528
-      %99528 = OpLabel
-      %99530 = OpISub %uint %158792 %int_1
-      %99531 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99530
-      %99532 = OpLoad %_arr_float_uint_2 %99531
-     %101024 = OpCompositeExtract %float %99532 0
-     %101025 = OpCompositeExtract %float %99532 1
-               OpBranch %99534
-      %99520 = OpLabel
-      %99522 = OpIAdd %uint %158794 %int_1
-      %99523 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %99524 = OpLoad %float %99523
-               OpBranch %99534
-      %99533 = OpLabel
-               OpUnreachable
-      %99534 = OpLabel
-     %182639 = OpPhi %uint %99522 %99520 %158794 %99528
-     %182392 = OpPhi %uint %158792 %99520 %99530 %99528
-     %162875 = OpPhi %float %99524 %99520 %101024 %99528
-     %162874 = OpPhi %float %99524 %99520 %101025 %99528
-      %90938 = OpCompositeExtract %float %162870 0
-      %90939 = OpCompositeExtract %float %162870 1
-      %90940 = OpCompositeConstruct %v3float %90938 %90939 %162875
-      %90945 = OpCompositeExtract %float %162869 0
-      %90946 = OpCompositeExtract %float %162869 1
-      %90947 = OpCompositeConstruct %v3float %90945 %90946 %162874
-      %90948 = OpCompositeConstruct %_arr_v3float_uint_2 %90940 %90947
-      %99538 = OpIAdd %uint %158802 %int_1
-      %99540 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %158802
-               OpStore %99540 %90948
-               OpBranch %92278
-      %90886 = OpLabel
-      %90889 = OpLoad %uint %83860
-      %90890 = OpBitwiseAnd %uint %90889 %uint_32768
-      %90891 = OpUGreaterThan %bool %90890 %uint_0
-               OpSelectionMerge %99437 None
-               OpSwitch %uint_0 %99421
-      %99421 = OpLabel
-               OpSelectionMerge %99436 None
-               OpBranchConditional %90891 %99423 %99431
-      %99431 = OpLabel
-      %99433 = OpISub %uint %158792 %int_1
-      %99434 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99433
-      %99435 = OpLoad %_arr_float_uint_2 %99434
-     %101060 = OpCompositeExtract %float %99435 0
-     %101061 = OpCompositeExtract %float %99435 1
-               OpBranch %99437
-      %99423 = OpLabel
-      %99425 = OpIAdd %uint %158794 %int_1
-      %99426 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %99427 = OpLoad %float %99426
-               OpBranch %99437
-      %99436 = OpLabel
-               OpUnreachable
-      %99437 = OpLabel
-     %162882 = OpPhi %uint %99425 %99423 %158794 %99431
-     %162881 = OpPhi %uint %158792 %99423 %99433 %99431
-     %162879 = OpPhi %float %99427 %99423 %101060 %99431
-     %162878 = OpPhi %float %99427 %99423 %101061 %99431
-      %90895 = OpLoad %uint %83860
-      %90896 = OpBitwiseAnd %uint %90895 %uint_16384
-      %90897 = OpUGreaterThan %bool %90896 %uint_0
-               OpSelectionMerge %99460 None
-               OpSwitch %uint_0 %99444
-      %99444 = OpLabel
-               OpSelectionMerge %99459 None
-               OpBranchConditional %90897 %99446 %99454
-      %99454 = OpLabel
-      %99456 = OpISub %uint %162881 %int_1
-      %99457 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99456
-      %99458 = OpLoad %_arr_float_uint_2 %99457
-     %101051 = OpCompositeExtract %float %99458 0
-     %101052 = OpCompositeExtract %float %99458 1
-               OpBranch %99460
-      %99446 = OpLabel
-      %99448 = OpIAdd %uint %162882 %int_1
-      %99449 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %162882
-      %99450 = OpLoad %float %99449
-               OpBranch %99460
-      %99459 = OpLabel
-               OpUnreachable
-      %99460 = OpLabel
-     %162887 = OpPhi %uint %99448 %99446 %162882 %99454
-     %162886 = OpPhi %uint %162881 %99446 %99456 %99454
-     %162884 = OpPhi %float %99450 %99446 %101051 %99454
-     %162883 = OpPhi %float %99450 %99446 %101052 %99454
-      %90901 = OpLoad %uint %83860
-      %90902 = OpBitwiseAnd %uint %90901 %uint_8192
-      %90903 = OpUGreaterThan %bool %90902 %uint_0
-               OpSelectionMerge %99483 None
-               OpSwitch %uint_0 %99467
-      %99467 = OpLabel
-               OpSelectionMerge %99482 None
-               OpBranchConditional %90903 %99469 %99477
-      %99477 = OpLabel
-      %99479 = OpISub %uint %162886 %int_1
-      %99480 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99479
-      %99481 = OpLoad %_arr_float_uint_2 %99480
-     %101042 = OpCompositeExtract %float %99481 0
-     %101043 = OpCompositeExtract %float %99481 1
-               OpBranch %99483
-      %99469 = OpLabel
-      %99471 = OpIAdd %uint %162887 %int_1
-      %99472 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %162887
-      %99473 = OpLoad %float %99472
-               OpBranch %99483
-      %99482 = OpLabel
-               OpUnreachable
-      %99483 = OpLabel
-     %182638 = OpPhi %uint %99471 %99469 %162887 %99477
-     %182391 = OpPhi %uint %162886 %99469 %99479 %99477
-     %162889 = OpPhi %float %99473 %99469 %101042 %99477
-     %162888 = OpPhi %float %99473 %99469 %101043 %99477
-      %90911 = OpCompositeConstruct %v3float %162879 %162884 %162889
-      %90918 = OpCompositeConstruct %v3float %162878 %162883 %162888
-      %90919 = OpCompositeConstruct %_arr_v3float_uint_2 %90911 %90918
-      %99487 = OpIAdd %uint %158802 %int_1
-      %99489 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %158802
-               OpStore %99489 %90919
-               OpBranch %92278
-      %90861 = OpLabel
-      %90864 = OpLoad %uint %83860
-      %90865 = OpBitwiseAnd %uint %90864 %uint_32768
-      %90866 = OpUGreaterThan %bool %90865 %uint_0
-               OpSelectionMerge %99386 None
-               OpSwitch %uint_0 %99370
-      %99370 = OpLabel
-               OpSelectionMerge %99385 None
-               OpBranchConditional %90866 %99372 %99380
-      %99380 = OpLabel
-      %99382 = OpISub %uint %158792 %int_1
-      %99383 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99382
-      %99384 = OpLoad %_arr_float_uint_2 %99383
-     %101078 = OpCompositeExtract %float %99384 0
-     %101079 = OpCompositeExtract %float %99384 1
-               OpBranch %99386
-      %99372 = OpLabel
-      %99374 = OpIAdd %uint %158794 %int_1
-      %99375 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %99376 = OpLoad %float %99375
-               OpBranch %99386
-      %99385 = OpLabel
-               OpUnreachable
-      %99386 = OpLabel
-     %162897 = OpPhi %uint %99374 %99372 %158794 %99380
-     %162896 = OpPhi %uint %158792 %99372 %99382 %99380
-     %162894 = OpPhi %float %99376 %99372 %101078 %99380
-     %162893 = OpPhi %float %99376 %99372 %101079 %99380
-      %90870 = OpLoad %uint %83860
-      %90871 = OpBitwiseAnd %uint %90870 %uint_16384
-      %90872 = OpUGreaterThan %bool %90871 %uint_0
-               OpSelectionMerge %99409 None
-               OpSwitch %uint_0 %99393
-      %99393 = OpLabel
-               OpSelectionMerge %99408 None
-               OpBranchConditional %90872 %99395 %99403
-      %99403 = OpLabel
-      %99405 = OpISub %uint %162896 %int_1
-      %99406 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99405
-      %99407 = OpLoad %_arr_float_uint_2 %99406
-     %101069 = OpCompositeExtract %float %99407 0
-     %101070 = OpCompositeExtract %float %99407 1
-               OpBranch %99409
-      %99395 = OpLabel
-      %99397 = OpIAdd %uint %162897 %int_1
-      %99398 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %162897
-      %99399 = OpLoad %float %99398
-               OpBranch %99409
-      %99408 = OpLabel
-               OpUnreachable
-      %99409 = OpLabel
-     %182637 = OpPhi %uint %99397 %99395 %162897 %99403
-     %182390 = OpPhi %uint %162896 %99395 %99405 %99403
-     %162899 = OpPhi %float %99399 %99395 %101069 %99403
-     %162898 = OpPhi %float %99399 %99395 %101070 %99403
-      %90878 = OpCompositeConstruct %v2float %162894 %162899
-      %90883 = OpCompositeConstruct %v2float %162893 %162898
-      %90884 = OpCompositeConstruct %_arr_v2float_uint_2 %90878 %90883
-      %99413 = OpIAdd %uint %158813 %int_1
-      %99415 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %158813
-               OpStore %99415 %90884
-               OpBranch %92278
-      %90613 = OpLabel
-      %90616 = OpLoad %uint %83860
-      %90617 = OpBitwiseAnd %uint %90616 %uint_32768
-      %90618 = OpUGreaterThan %bool %90617 %uint_0
-               OpSelectionMerge %99358 None
-               OpSwitch %uint_0 %99342
-      %99342 = OpLabel
-               OpSelectionMerge %99357 None
-               OpBranchConditional %90618 %99344 %99352
-      %99352 = OpLabel
-      %99354 = OpISub %uint %158811 %int_1
-      %99355 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99354
-      %99356 = OpLoad %_arr_v4float_uint_2 %99355
-     %101087 = OpCompositeExtract %v4float %99356 0
-     %101088 = OpCompositeExtract %v4float %99356 1
-               OpBranch %99358
-      %99344 = OpLabel
-      %99346 = OpIAdd %uint %158837 %int_1
-      %99347 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %99348 = OpLoad %v4float %99347
-               OpBranch %99358
-      %99357 = OpLabel
-               OpUnreachable
-      %99358 = OpLabel
-     %243398 = OpPhi %uint %99346 %99344 %158837 %99352
-     %162904 = OpPhi %uint %158811 %99344 %99354 %99352
-     %162903 = OpPhi %v4float %99348 %99344 %101087 %99352
-     %162902 = OpPhi %v4float %99348 %99344 %101088 %99352
-      %90622 = OpFOrdGreaterThan %v4bool %162902 %3375
-      %90625 = OpFOrdLessThan %v4bool %162903 %3375
-      %90626 = OpSelect %v4bool %90625 %90622 %3373
-      %90629 = OpExtInst %v4float %1 FAbs %162903
-      %90632 = OpExtInst %v4float %1 FAbs %162902
-      %90633 = OpExtInst %v4float %1 FMin %90629 %90632
-      %90635 = OpSelect %v4float %90626 %3375 %90633
-      %90642 = OpExtInst %v4float %1 FMax %90629 %90632
-      %90644 = OpCompositeExtract %float %162902 0
-      %90648 = OpCompositeExtract %float %90635 1
-      %90650 = OpCompositeExtract %float %90635 2
-      %90652 = OpCompositeExtract %float %90635 3
-      %90653 = OpCompositeConstruct %v4float %90644 %90648 %90650 %90652
-      %90654 = OpExtInst %float %1 Length %90653
-      %90655 = OpFDiv %float %90644 %90654
-      %90657 = OpCompositeExtract %float %162902 1
-      %90659 = OpCompositeExtract %float %90635 0
-      %90666 = OpCompositeConstruct %v4float %90659 %90657 %90650 %90652
-      %90667 = OpExtInst %float %1 Length %90666
-      %90668 = OpFDiv %float %90657 %90667
-      %90670 = OpCompositeExtract %float %162902 2
-      %90679 = OpCompositeConstruct %v4float %90659 %90648 %90670 %90652
-      %90680 = OpExtInst %float %1 Length %90679
-      %90681 = OpFDiv %float %90670 %90680
-      %90683 = OpCompositeExtract %float %162902 3
-      %90692 = OpCompositeConstruct %v4float %90659 %90648 %90650 %90683
-      %90693 = OpExtInst %float %1 Length %90692
-      %90694 = OpFDiv %float %90683 %90693
-      %90695 = OpCompositeConstruct %v4float %90655 %90668 %90681 %90694
-      %90701 = OpCompositeExtract %float %90642 1
-      %90703 = OpCompositeExtract %float %90642 2
-      %90705 = OpCompositeExtract %float %90642 3
-      %90706 = OpCompositeConstruct %v4float %90644 %90701 %90703 %90705
-      %90707 = OpExtInst %float %1 Length %90706
-      %90708 = OpFDiv %float %90644 %90707
-      %90712 = OpCompositeExtract %float %90642 0
-      %90719 = OpCompositeConstruct %v4float %90712 %90657 %90703 %90705
-      %90720 = OpExtInst %float %1 Length %90719
-      %90721 = OpFDiv %float %90657 %90720
-      %90732 = OpCompositeConstruct %v4float %90712 %90701 %90670 %90705
-      %90733 = OpExtInst %float %1 Length %90732
-      %90734 = OpFDiv %float %90670 %90733
-      %90745 = OpCompositeConstruct %v4float %90712 %90701 %90703 %90683
-      %90746 = OpExtInst %float %1 Length %90745
-      %90747 = OpFDiv %float %90683 %90746
-      %90748 = OpCompositeConstruct %v4float %90708 %90721 %90734 %90747
-      %90749 = OpExtInst %v4float %1 FMax %90695 %90748
-      %90751 = OpCompositeExtract %float %162903 0
-      %90760 = OpCompositeConstruct %v4float %90751 %90648 %90650 %90652
-      %90761 = OpExtInst %float %1 Length %90760
-      %90762 = OpFDiv %float %90751 %90761
-      %90764 = OpCompositeExtract %float %162903 1
-      %90773 = OpCompositeConstruct %v4float %90659 %90764 %90650 %90652
-      %90774 = OpExtInst %float %1 Length %90773
-      %90775 = OpFDiv %float %90764 %90774
-      %90777 = OpCompositeExtract %float %162903 2
-      %90786 = OpCompositeConstruct %v4float %90659 %90648 %90777 %90652
-      %90787 = OpExtInst %float %1 Length %90786
-      %90788 = OpFDiv %float %90777 %90787
-      %90790 = OpCompositeExtract %float %162903 3
-      %90799 = OpCompositeConstruct %v4float %90659 %90648 %90650 %90790
-      %90800 = OpExtInst %float %1 Length %90799
-      %90801 = OpFDiv %float %90790 %90800
-      %90802 = OpCompositeConstruct %v4float %90762 %90775 %90788 %90801
-      %90813 = OpCompositeConstruct %v4float %90751 %90701 %90703 %90705
-      %90814 = OpExtInst %float %1 Length %90813
-      %90815 = OpFDiv %float %90751 %90814
-      %90826 = OpCompositeConstruct %v4float %90712 %90764 %90703 %90705
-      %90827 = OpExtInst %float %1 Length %90826
-      %90828 = OpFDiv %float %90764 %90827
-      %90839 = OpCompositeConstruct %v4float %90712 %90701 %90777 %90705
-      %90840 = OpExtInst %float %1 Length %90839
-      %90841 = OpFDiv %float %90777 %90840
-      %90852 = OpCompositeConstruct %v4float %90712 %90701 %90703 %90790
-      %90853 = OpExtInst %float %1 Length %90852
-      %90854 = OpFDiv %float %90790 %90853
-      %90855 = OpCompositeConstruct %v4float %90815 %90828 %90841 %90854
-      %90856 = OpExtInst %v4float %1 FMin %90802 %90855
-      %90859 = OpCompositeConstruct %_arr_v4float_uint_2 %90856 %90749
-      %99362 = OpIAdd %uint %162904 %int_1
-      %99364 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %162904
-               OpStore %99364 %90859
-               OpBranch %92278
-      %90441 = OpLabel
-      %90444 = OpLoad %uint %83860
-      %90445 = OpBitwiseAnd %uint %90444 %uint_32768
-      %90446 = OpUGreaterThan %bool %90445 %uint_0
-               OpSelectionMerge %99330 None
-               OpSwitch %uint_0 %99314
-      %99314 = OpLabel
-               OpSelectionMerge %99329 None
-               OpBranchConditional %90446 %99316 %99324
-      %99324 = OpLabel
-      %99326 = OpISub %uint %158802 %int_1
-      %99327 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %99326
-      %99328 = OpLoad %_arr_v3float_uint_2 %99327
-     %101096 = OpCompositeExtract %v3float %99328 0
-     %101097 = OpCompositeExtract %v3float %99328 1
-               OpBranch %99330
-      %99316 = OpLabel
-      %99318 = OpIAdd %uint %158805 %int_1
-      %99319 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %99320 = OpLoad %v3float %99319
-               OpBranch %99330
-      %99329 = OpLabel
-               OpUnreachable
-      %99330 = OpLabel
-     %242623 = OpPhi %uint %99318 %99316 %158805 %99324
-     %162907 = OpPhi %uint %158802 %99316 %99326 %99324
-     %162906 = OpPhi %v3float %99320 %99316 %101096 %99324
-     %162905 = OpPhi %v3float %99320 %99316 %101097 %99324
-      %90450 = OpFOrdGreaterThan %v3bool %162905 %123
-      %90453 = OpFOrdLessThan %v3bool %162906 %123
-      %90454 = OpSelect %v3bool %90453 %90450 %3323
-      %90457 = OpExtInst %v3float %1 FAbs %162906
-      %90460 = OpExtInst %v3float %1 FAbs %162905
-      %90461 = OpExtInst %v3float %1 FMin %90457 %90460
-      %90463 = OpSelect %v3float %90454 %123 %90461
-      %90470 = OpExtInst %v3float %1 FMax %90457 %90460
-      %90472 = OpCompositeExtract %float %162905 0
-      %90476 = OpCompositeExtract %float %90463 1
-      %90478 = OpCompositeExtract %float %90463 2
-      %90479 = OpCompositeConstruct %v3float %90472 %90476 %90478
-      %90480 = OpExtInst %float %1 Length %90479
-      %90481 = OpFDiv %float %90472 %90480
-      %90483 = OpCompositeExtract %float %162905 1
-      %90485 = OpCompositeExtract %float %90463 0
-      %90490 = OpCompositeConstruct %v3float %90485 %90483 %90478
-      %90491 = OpExtInst %float %1 Length %90490
-      %90492 = OpFDiv %float %90483 %90491
-      %90494 = OpCompositeExtract %float %162905 2
-      %90501 = OpCompositeConstruct %v3float %90485 %90476 %90494
-      %90502 = OpExtInst %float %1 Length %90501
-      %90503 = OpFDiv %float %90494 %90502
-      %90504 = OpCompositeConstruct %v3float %90481 %90492 %90503
-      %90510 = OpCompositeExtract %float %90470 1
-      %90512 = OpCompositeExtract %float %90470 2
-      %90513 = OpCompositeConstruct %v3float %90472 %90510 %90512
-      %90514 = OpExtInst %float %1 Length %90513
-      %90515 = OpFDiv %float %90472 %90514
-      %90519 = OpCompositeExtract %float %90470 0
-      %90524 = OpCompositeConstruct %v3float %90519 %90483 %90512
-      %90525 = OpExtInst %float %1 Length %90524
-      %90526 = OpFDiv %float %90483 %90525
-      %90535 = OpCompositeConstruct %v3float %90519 %90510 %90494
-      %90536 = OpExtInst %float %1 Length %90535
-      %90537 = OpFDiv %float %90494 %90536
-      %90538 = OpCompositeConstruct %v3float %90515 %90526 %90537
-      %90539 = OpExtInst %v3float %1 FMax %90504 %90538
-      %90541 = OpCompositeExtract %float %162906 0
-      %90548 = OpCompositeConstruct %v3float %90541 %90476 %90478
-      %90549 = OpExtInst %float %1 Length %90548
-      %90550 = OpFDiv %float %90541 %90549
-      %90552 = OpCompositeExtract %float %162906 1
-      %90559 = OpCompositeConstruct %v3float %90485 %90552 %90478
-      %90560 = OpExtInst %float %1 Length %90559
-      %90561 = OpFDiv %float %90552 %90560
-      %90563 = OpCompositeExtract %float %162906 2
-      %90570 = OpCompositeConstruct %v3float %90485 %90476 %90563
-      %90571 = OpExtInst %float %1 Length %90570
-      %90572 = OpFDiv %float %90563 %90571
-      %90573 = OpCompositeConstruct %v3float %90550 %90561 %90572
-      %90582 = OpCompositeConstruct %v3float %90541 %90510 %90512
-      %90583 = OpExtInst %float %1 Length %90582
-      %90584 = OpFDiv %float %90541 %90583
-      %90593 = OpCompositeConstruct %v3float %90519 %90552 %90512
-      %90594 = OpExtInst %float %1 Length %90593
-      %90595 = OpFDiv %float %90552 %90594
-      %90604 = OpCompositeConstruct %v3float %90519 %90510 %90563
-      %90605 = OpExtInst %float %1 Length %90604
-      %90606 = OpFDiv %float %90563 %90605
-      %90607 = OpCompositeConstruct %v3float %90584 %90595 %90606
-      %90608 = OpExtInst %v3float %1 FMin %90573 %90607
-      %90611 = OpCompositeConstruct %_arr_v3float_uint_2 %90608 %90539
-      %99334 = OpIAdd %uint %162907 %int_1
-      %99336 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %162907
-               OpStore %99336 %90611
-               OpBranch %92278
-      %90329 = OpLabel
-      %90332 = OpLoad %uint %83860
-      %90333 = OpBitwiseAnd %uint %90332 %uint_32768
-      %90334 = OpUGreaterThan %bool %90333 %uint_0
-               OpSelectionMerge %99302 None
-               OpSwitch %uint_0 %99286
-      %99286 = OpLabel
-               OpSelectionMerge %99301 None
-               OpBranchConditional %90334 %99288 %99296
-      %99296 = OpLabel
-      %99298 = OpISub %uint %158813 %int_1
-      %99299 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %99298
-      %99300 = OpLoad %_arr_v2float_uint_2 %99299
-     %101105 = OpCompositeExtract %v2float %99300 0
-     %101106 = OpCompositeExtract %v2float %99300 1
-               OpBranch %99302
-      %99288 = OpLabel
-      %99290 = OpIAdd %uint %160807 %int_1
-      %99291 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %99292 = OpLoad %v2float %99291
-               OpBranch %99302
-      %99301 = OpLabel
-               OpUnreachable
-      %99302 = OpLabel
-     %244976 = OpPhi %uint %99290 %99288 %160807 %99296
-     %162910 = OpPhi %uint %158813 %99288 %99298 %99296
-     %162909 = OpPhi %v2float %99292 %99288 %101105 %99296
-     %162908 = OpPhi %v2float %99292 %99288 %101106 %99296
-      %90338 = OpFOrdGreaterThan %v2bool %162908 %3274
-      %90341 = OpFOrdLessThan %v2bool %162909 %3274
-      %90342 = OpSelect %v2bool %90341 %90338 %3272
-      %90345 = OpExtInst %v2float %1 FAbs %162909
-      %90348 = OpExtInst %v2float %1 FAbs %162908
-      %90349 = OpExtInst %v2float %1 FMin %90345 %90348
-      %90351 = OpSelect %v2float %90342 %3274 %90349
-      %90358 = OpExtInst %v2float %1 FMax %90345 %90348
-      %90360 = OpCompositeExtract %float %162908 0
-      %90364 = OpCompositeExtract %float %90351 1
-      %90365 = OpCompositeConstruct %v2float %90360 %90364
-      %90366 = OpExtInst %float %1 Length %90365
-      %90367 = OpFDiv %float %90360 %90366
-      %90369 = OpCompositeExtract %float %162908 1
-      %90371 = OpCompositeExtract %float %90351 0
-      %90374 = OpCompositeConstruct %v2float %90371 %90369
-      %90375 = OpExtInst %float %1 Length %90374
-      %90376 = OpFDiv %float %90369 %90375
-      %90377 = OpCompositeConstruct %v2float %90367 %90376
-      %90383 = OpCompositeExtract %float %90358 1
-      %90384 = OpCompositeConstruct %v2float %90360 %90383
-      %90385 = OpExtInst %float %1 Length %90384
-      %90386 = OpFDiv %float %90360 %90385
-      %90390 = OpCompositeExtract %float %90358 0
-      %90393 = OpCompositeConstruct %v2float %90390 %90369
-      %90394 = OpExtInst %float %1 Length %90393
-      %90395 = OpFDiv %float %90369 %90394
-      %90396 = OpCompositeConstruct %v2float %90386 %90395
-      %90397 = OpExtInst %v2float %1 FMax %90377 %90396
-      %90399 = OpCompositeExtract %float %162909 0
-      %90404 = OpCompositeConstruct %v2float %90399 %90364
-      %90405 = OpExtInst %float %1 Length %90404
-      %90406 = OpFDiv %float %90399 %90405
-      %90408 = OpCompositeExtract %float %162909 1
-      %90413 = OpCompositeConstruct %v2float %90371 %90408
-      %90414 = OpExtInst %float %1 Length %90413
-      %90415 = OpFDiv %float %90408 %90414
-      %90416 = OpCompositeConstruct %v2float %90406 %90415
-      %90423 = OpCompositeConstruct %v2float %90399 %90383
-      %90424 = OpExtInst %float %1 Length %90423
-      %90425 = OpFDiv %float %90399 %90424
-      %90432 = OpCompositeConstruct %v2float %90390 %90408
-      %90433 = OpExtInst %float %1 Length %90432
-      %90434 = OpFDiv %float %90408 %90433
-      %90435 = OpCompositeConstruct %v2float %90425 %90434
-      %90436 = OpExtInst %v2float %1 FMin %90416 %90435
-      %90439 = OpCompositeConstruct %_arr_v2float_uint_2 %90436 %90397
-      %99306 = OpIAdd %uint %162910 %int_1
-      %99308 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %162910
-               OpStore %99308 %90439
-               OpBranch %92278
-      %90290 = OpLabel
-      %90293 = OpLoad %uint %83860
-      %90294 = OpBitwiseAnd %uint %90293 %uint_32768
-      %90295 = OpUGreaterThan %bool %90294 %uint_0
-               OpSelectionMerge %99228 None
-               OpSwitch %uint_0 %99212
-      %99212 = OpLabel
-               OpSelectionMerge %99227 None
-               OpBranchConditional %90295 %99214 %99222
-      %99222 = OpLabel
-      %99224 = OpISub %uint %158811 %int_1
-      %99225 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99224
-      %99226 = OpLoad %_arr_v4float_uint_2 %99225
-     %101132 = OpCompositeExtract %v4float %99226 0
-     %101133 = OpCompositeExtract %v4float %99226 1
-               OpBranch %99228
-      %99214 = OpLabel
-      %99216 = OpIAdd %uint %158837 %int_1
-      %99217 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %99218 = OpLoad %v4float %99217
-               OpBranch %99228
-      %99227 = OpLabel
-               OpUnreachable
-      %99228 = OpLabel
-     %162915 = OpPhi %uint %99216 %99214 %158837 %99222
-     %162914 = OpPhi %uint %158811 %99214 %99224 %99222
-     %162912 = OpPhi %v4float %99218 %99214 %101132 %99222
-     %162911 = OpPhi %v4float %99218 %99214 %101133 %99222
-      %90299 = OpLoad %uint %83860
-      %90300 = OpBitwiseAnd %uint %90299 %uint_16384
-      %90301 = OpUGreaterThan %bool %90300 %uint_0
-               OpSelectionMerge %99251 None
-               OpSwitch %uint_0 %99235
-      %99235 = OpLabel
-               OpSelectionMerge %99250 None
-               OpBranchConditional %90301 %99237 %99245
-      %99245 = OpLabel
-      %99247 = OpISub %uint %162914 %int_1
-      %99248 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99247
-      %99249 = OpLoad %_arr_v4float_uint_2 %99248
-     %101123 = OpCompositeExtract %v4float %99249 0
-     %101124 = OpCompositeExtract %v4float %99249 1
-               OpBranch %99251
-      %99237 = OpLabel
-      %99239 = OpIAdd %uint %162915 %int_1
-      %99240 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %162915
-      %99241 = OpLoad %v4float %99240
-               OpBranch %99251
-      %99250 = OpLabel
-               OpUnreachable
-      %99251 = OpLabel
-     %243395 = OpPhi %uint %99239 %99237 %162915 %99245
-     %162930 = OpPhi %uint %162914 %99237 %99247 %99245
-     %162917 = OpPhi %v4float %99241 %99237 %101123 %99245
-     %162916 = OpPhi %v4float %99241 %99237 %101124 %99245
-      %90305 = OpLoad %uint %83860
-      %90306 = OpBitwiseAnd %uint %90305 %uint_8192
-      %90307 = OpUGreaterThan %bool %90306 %uint_0
-               OpSelectionMerge %99274 None
-               OpSwitch %uint_0 %99258
-      %99258 = OpLabel
-               OpSelectionMerge %99273 None
-               OpBranchConditional %90307 %99260 %99268
-      %99268 = OpLabel
-      %99270 = OpISub %uint %158792 %int_1
-      %99271 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99270
-      %99272 = OpLoad %_arr_float_uint_2 %99271
-     %101114 = OpCompositeExtract %float %99272 0
-     %101115 = OpCompositeExtract %float %99272 1
-               OpBranch %99274
-      %99260 = OpLabel
-      %99262 = OpIAdd %uint %158794 %int_1
-      %99263 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %99264 = OpLoad %float %99263
-               OpBranch %99274
-      %99273 = OpLabel
-               OpUnreachable
-      %99274 = OpLabel
-     %182633 = OpPhi %uint %99262 %99260 %158794 %99268
-     %182386 = OpPhi %uint %158792 %99260 %99270 %99268
-     %162924 = OpPhi %float %99264 %99260 %101114 %99268
-     %162923 = OpPhi %float %99264 %99260 %101115 %99268
-      %90315 = OpCompositeConstruct %v4float %162924 %162924 %162924 %162924
-      %90316 = OpExtInst %v4float %1 FMix %162912 %162917 %90315
-      %90324 = OpCompositeConstruct %v4float %162923 %162923 %162923 %162923
-      %90325 = OpExtInst %v4float %1 FMix %162911 %162916 %90324
-     %105210 = OpCompositeConstruct %_arr_v4float_uint_2 %90316 %90325
-      %99278 = OpIAdd %uint %162930 %int_1
-      %99280 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %162930
-               OpStore %99280 %105210
-               OpBranch %92278
-      %90249 = OpLabel
-      %90252 = OpLoad %uint %83860
-      %90253 = OpBitwiseAnd %uint %90252 %uint_32768
-      %90254 = OpUGreaterThan %bool %90253 %uint_0
-               OpSelectionMerge %99154 None
-               OpSwitch %uint_0 %99138
-      %99138 = OpLabel
-               OpSelectionMerge %99153 None
-               OpBranchConditional %90254 %99140 %99148
-      %99148 = OpLabel
-      %99150 = OpISub %uint %158811 %int_1
-      %99151 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99150
-      %99152 = OpLoad %_arr_v4float_uint_2 %99151
-     %101159 = OpCompositeExtract %v4float %99152 0
-     %101160 = OpCompositeExtract %v4float %99152 1
-               OpBranch %99154
-      %99140 = OpLabel
-      %99142 = OpIAdd %uint %158837 %int_1
-      %99143 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %99144 = OpLoad %v4float %99143
-               OpBranch %99154
-      %99153 = OpLabel
-               OpUnreachable
-      %99154 = OpLabel
-     %243393 = OpPhi %uint %99142 %99140 %158837 %99148
-     %162949 = OpPhi %uint %158811 %99140 %99150 %99148
-     %162932 = OpPhi %v4float %99144 %99140 %101159 %99148
-     %162931 = OpPhi %v4float %99144 %99140 %101160 %99148
-      %90258 = OpLoad %uint %83860
-      %90259 = OpBitwiseAnd %uint %90258 %uint_16384
-      %90260 = OpUGreaterThan %bool %90259 %uint_0
-               OpSelectionMerge %99177 None
-               OpSwitch %uint_0 %99161
-      %99161 = OpLabel
-               OpSelectionMerge %99176 None
-               OpBranchConditional %90260 %99163 %99171
-      %99171 = OpLabel
-      %99173 = OpISub %uint %158792 %int_1
-      %99174 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99173
-      %99175 = OpLoad %_arr_float_uint_2 %99174
-     %101150 = OpCompositeExtract %float %99175 0
-     %101151 = OpCompositeExtract %float %99175 1
-               OpBranch %99177
-      %99163 = OpLabel
-      %99165 = OpIAdd %uint %158794 %int_1
-      %99166 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %99167 = OpLoad %float %99166
-               OpBranch %99177
-      %99176 = OpLabel
-               OpUnreachable
-      %99177 = OpLabel
-     %162940 = OpPhi %uint %99165 %99163 %158794 %99171
-     %162939 = OpPhi %uint %158792 %99163 %99173 %99171
-     %162937 = OpPhi %float %99167 %99163 %101150 %99171
-     %162936 = OpPhi %float %99167 %99163 %101151 %99171
-      %90264 = OpLoad %uint %83860
-      %90265 = OpBitwiseAnd %uint %90264 %uint_8192
-      %90266 = OpUGreaterThan %bool %90265 %uint_0
-               OpSelectionMerge %99200 None
-               OpSwitch %uint_0 %99184
-      %99184 = OpLabel
-               OpSelectionMerge %99199 None
-               OpBranchConditional %90266 %99186 %99194
-      %99194 = OpLabel
-      %99196 = OpISub %uint %162939 %int_1
-      %99197 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %99196
-      %99198 = OpLoad %_arr_float_uint_2 %99197
-     %101141 = OpCompositeExtract %float %99198 0
-     %101142 = OpCompositeExtract %float %99198 1
-               OpBranch %99200
-      %99186 = OpLabel
-      %99188 = OpIAdd %uint %162940 %int_1
-      %99189 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %162940
-      %99190 = OpLoad %float %99189
-               OpBranch %99200
-      %99199 = OpLabel
-               OpUnreachable
-      %99200 = OpLabel
-     %182632 = OpPhi %uint %99188 %99186 %162940 %99194
-     %182385 = OpPhi %uint %162939 %99186 %99196 %99194
-     %162942 = OpPhi %float %99190 %99186 %101141 %99194
-     %162941 = OpPhi %float %99190 %99186 %101142 %99194
-      %90274 = OpCompositeConstruct %v4float %162937 %162937 %162937 %162937
-      %90275 = OpCompositeConstruct %v4float %162942 %162942 %162942 %162942
-      %90276 = OpExtInst %v4float %1 FClamp %162932 %90274 %90275
-      %90284 = OpCompositeConstruct %v4float %162936 %162936 %162936 %162936
-      %90285 = OpCompositeConstruct %v4float %162941 %162941 %162941 %162941
-      %90286 = OpExtInst %v4float %1 FClamp %162931 %90284 %90285
-     %105195 = OpCompositeConstruct %_arr_v4float_uint_2 %90276 %90286
-      %99204 = OpIAdd %uint %162949 %int_1
-      %99206 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %162949
-               OpStore %99206 %105195
-               OpBranch %92278
-      %90212 = OpLabel
-      %90215 = OpLoad %uint %83860
-      %90216 = OpBitwiseAnd %uint %90215 %uint_32768
-      %90217 = OpUGreaterThan %bool %90216 %uint_0
-               OpSelectionMerge %99080 None
-               OpSwitch %uint_0 %99064
-      %99064 = OpLabel
-               OpSelectionMerge %99079 None
-               OpBranchConditional %90217 %99066 %99074
-      %99074 = OpLabel
-      %99076 = OpISub %uint %158811 %int_1
-      %99077 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99076
-      %99078 = OpLoad %_arr_v4float_uint_2 %99077
-     %101186 = OpCompositeExtract %v4float %99078 0
-     %101187 = OpCompositeExtract %v4float %99078 1
-               OpBranch %99080
-      %99066 = OpLabel
-      %99068 = OpIAdd %uint %158837 %int_1
-      %99069 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %99070 = OpLoad %v4float %99069
-               OpBranch %99080
-      %99079 = OpLabel
-               OpUnreachable
-      %99080 = OpLabel
-     %162954 = OpPhi %uint %99068 %99066 %158837 %99074
-     %162953 = OpPhi %uint %158811 %99066 %99076 %99074
-     %162951 = OpPhi %v4float %99070 %99066 %101186 %99074
-     %162950 = OpPhi %v4float %99070 %99066 %101187 %99074
-      %90221 = OpLoad %uint %83860
-      %90222 = OpBitwiseAnd %uint %90221 %uint_16384
-      %90223 = OpUGreaterThan %bool %90222 %uint_0
-               OpSelectionMerge %99103 None
-               OpSwitch %uint_0 %99087
-      %99087 = OpLabel
-               OpSelectionMerge %99102 None
-               OpBranchConditional %90223 %99089 %99097
-      %99097 = OpLabel
-      %99099 = OpISub %uint %162953 %int_1
-      %99100 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99099
-      %99101 = OpLoad %_arr_v4float_uint_2 %99100
-     %101177 = OpCompositeExtract %v4float %99101 0
-     %101178 = OpCompositeExtract %v4float %99101 1
-               OpBranch %99103
-      %99089 = OpLabel
-      %99091 = OpIAdd %uint %162954 %int_1
-      %99092 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %162954
-      %99093 = OpLoad %v4float %99092
-               OpBranch %99103
-      %99102 = OpLabel
-               OpUnreachable
-      %99103 = OpLabel
-     %162959 = OpPhi %uint %99091 %99089 %162954 %99097
-     %162958 = OpPhi %uint %162953 %99089 %99099 %99097
-     %162956 = OpPhi %v4float %99093 %99089 %101177 %99097
-     %162955 = OpPhi %v4float %99093 %99089 %101178 %99097
-      %90227 = OpLoad %uint %83860
-      %90228 = OpBitwiseAnd %uint %90227 %uint_8192
-      %90229 = OpUGreaterThan %bool %90228 %uint_0
-               OpSelectionMerge %99126 None
-               OpSwitch %uint_0 %99110
-      %99110 = OpLabel
-               OpSelectionMerge %99125 None
-               OpBranchConditional %90229 %99112 %99120
-      %99120 = OpLabel
-      %99122 = OpISub %uint %162958 %int_1
-      %99123 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99122
-      %99124 = OpLoad %_arr_v4float_uint_2 %99123
-     %101168 = OpCompositeExtract %v4float %99124 0
-     %101169 = OpCompositeExtract %v4float %99124 1
-               OpBranch %99126
-      %99112 = OpLabel
-      %99114 = OpIAdd %uint %162959 %int_1
-      %99115 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %162959
-      %99116 = OpLoad %v4float %99115
-               OpBranch %99126
-      %99125 = OpLabel
-               OpUnreachable
-      %99126 = OpLabel
-     %243390 = OpPhi %uint %99114 %99112 %162959 %99120
-     %162966 = OpPhi %uint %162958 %99112 %99122 %99120
-     %162961 = OpPhi %v4float %99116 %99112 %101168 %99120
-     %162960 = OpPhi %v4float %99116 %99112 %101169 %99120
-      %90237 = OpExtInst %v4float %1 FMix %162951 %162956 %162961
-      %90245 = OpExtInst %v4float %1 FMix %162950 %162955 %162960
-     %105180 = OpCompositeConstruct %_arr_v4float_uint_2 %90237 %90245
-      %99130 = OpIAdd %uint %162966 %int_1
-      %99132 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %162966
-               OpStore %99132 %105180
-               OpBranch %92278
-      %90175 = OpLabel
-      %90178 = OpLoad %uint %83860
-      %90179 = OpBitwiseAnd %uint %90178 %uint_32768
-      %90180 = OpUGreaterThan %bool %90179 %uint_0
-               OpSelectionMerge %99006 None
-               OpSwitch %uint_0 %98990
-      %98990 = OpLabel
-               OpSelectionMerge %99005 None
-               OpBranchConditional %90180 %98992 %99000
-      %99000 = OpLabel
-      %99002 = OpISub %uint %158811 %int_1
-      %99003 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99002
-      %99004 = OpLoad %_arr_v4float_uint_2 %99003
-     %101213 = OpCompositeExtract %v4float %99004 0
-     %101214 = OpCompositeExtract %v4float %99004 1
-               OpBranch %99006
-      %98992 = OpLabel
-      %98994 = OpIAdd %uint %158837 %int_1
-      %98995 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %98996 = OpLoad %v4float %98995
-               OpBranch %99006
-      %99005 = OpLabel
-               OpUnreachable
-      %99006 = OpLabel
-     %162971 = OpPhi %uint %98994 %98992 %158837 %99000
-     %162970 = OpPhi %uint %158811 %98992 %99002 %99000
-     %162968 = OpPhi %v4float %98996 %98992 %101213 %99000
-     %162967 = OpPhi %v4float %98996 %98992 %101214 %99000
-      %90184 = OpLoad %uint %83860
-      %90185 = OpBitwiseAnd %uint %90184 %uint_16384
-      %90186 = OpUGreaterThan %bool %90185 %uint_0
-               OpSelectionMerge %99029 None
-               OpSwitch %uint_0 %99013
-      %99013 = OpLabel
-               OpSelectionMerge %99028 None
-               OpBranchConditional %90186 %99015 %99023
-      %99023 = OpLabel
-      %99025 = OpISub %uint %162970 %int_1
-      %99026 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99025
-      %99027 = OpLoad %_arr_v4float_uint_2 %99026
-     %101204 = OpCompositeExtract %v4float %99027 0
-     %101205 = OpCompositeExtract %v4float %99027 1
-               OpBranch %99029
-      %99015 = OpLabel
-      %99017 = OpIAdd %uint %162971 %int_1
-      %99018 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %162971
-      %99019 = OpLoad %v4float %99018
-               OpBranch %99029
-      %99028 = OpLabel
-               OpUnreachable
-      %99029 = OpLabel
-     %162976 = OpPhi %uint %99017 %99015 %162971 %99023
-     %162975 = OpPhi %uint %162970 %99015 %99025 %99023
-     %162973 = OpPhi %v4float %99019 %99015 %101204 %99023
-     %162972 = OpPhi %v4float %99019 %99015 %101205 %99023
-      %90190 = OpLoad %uint %83860
-      %90191 = OpBitwiseAnd %uint %90190 %uint_8192
-      %90192 = OpUGreaterThan %bool %90191 %uint_0
-               OpSelectionMerge %99052 None
-               OpSwitch %uint_0 %99036
-      %99036 = OpLabel
-               OpSelectionMerge %99051 None
-               OpBranchConditional %90192 %99038 %99046
-      %99046 = OpLabel
-      %99048 = OpISub %uint %162975 %int_1
-      %99049 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %99048
-      %99050 = OpLoad %_arr_v4float_uint_2 %99049
-     %101195 = OpCompositeExtract %v4float %99050 0
-     %101196 = OpCompositeExtract %v4float %99050 1
-               OpBranch %99052
-      %99038 = OpLabel
-      %99040 = OpIAdd %uint %162976 %int_1
-      %99041 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %162976
-      %99042 = OpLoad %v4float %99041
-               OpBranch %99052
-      %99051 = OpLabel
-               OpUnreachable
-      %99052 = OpLabel
-     %243389 = OpPhi %uint %99040 %99038 %162976 %99046
-     %162983 = OpPhi %uint %162975 %99038 %99048 %99046
-     %162978 = OpPhi %v4float %99042 %99038 %101195 %99046
-     %162977 = OpPhi %v4float %99042 %99038 %101196 %99046
-      %90200 = OpExtInst %v4float %1 FClamp %162968 %162973 %162978
-      %90208 = OpExtInst %v4float %1 FClamp %162967 %162972 %162977
-     %105165 = OpCompositeConstruct %_arr_v4float_uint_2 %90200 %90208
-      %99056 = OpIAdd %uint %162983 %int_1
-      %99058 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %162983
-               OpStore %99058 %105165
-               OpBranch %92278
-      %90136 = OpLabel
-      %90139 = OpLoad %uint %83860
-      %90140 = OpBitwiseAnd %uint %90139 %uint_32768
-      %90141 = OpUGreaterThan %bool %90140 %uint_0
-               OpSelectionMerge %98932 None
-               OpSwitch %uint_0 %98916
-      %98916 = OpLabel
-               OpSelectionMerge %98931 None
-               OpBranchConditional %90141 %98918 %98926
-      %98926 = OpLabel
-      %98928 = OpISub %uint %158802 %int_1
-      %98929 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %98928
-      %98930 = OpLoad %_arr_v3float_uint_2 %98929
-     %101240 = OpCompositeExtract %v3float %98930 0
-     %101241 = OpCompositeExtract %v3float %98930 1
-               OpBranch %98932
-      %98918 = OpLabel
-      %98920 = OpIAdd %uint %158805 %int_1
-      %98921 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %98922 = OpLoad %v3float %98921
-               OpBranch %98932
-      %98931 = OpLabel
-               OpUnreachable
-      %98932 = OpLabel
-     %162988 = OpPhi %uint %98920 %98918 %158805 %98926
-     %162987 = OpPhi %uint %158802 %98918 %98928 %98926
-     %162985 = OpPhi %v3float %98922 %98918 %101240 %98926
-     %162984 = OpPhi %v3float %98922 %98918 %101241 %98926
-      %90145 = OpLoad %uint %83860
-      %90146 = OpBitwiseAnd %uint %90145 %uint_16384
-      %90147 = OpUGreaterThan %bool %90146 %uint_0
-               OpSelectionMerge %98955 None
-               OpSwitch %uint_0 %98939
-      %98939 = OpLabel
-               OpSelectionMerge %98954 None
-               OpBranchConditional %90147 %98941 %98949
-      %98949 = OpLabel
-      %98951 = OpISub %uint %162987 %int_1
-      %98952 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %98951
-      %98953 = OpLoad %_arr_v3float_uint_2 %98952
-     %101231 = OpCompositeExtract %v3float %98953 0
-     %101232 = OpCompositeExtract %v3float %98953 1
-               OpBranch %98955
-      %98941 = OpLabel
-      %98943 = OpIAdd %uint %162988 %int_1
-      %98944 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %162988
-      %98945 = OpLoad %v3float %98944
-               OpBranch %98955
-      %98954 = OpLabel
-               OpUnreachable
-      %98955 = OpLabel
-     %242609 = OpPhi %uint %98943 %98941 %162988 %98949
-     %163003 = OpPhi %uint %162987 %98941 %98951 %98949
-     %162990 = OpPhi %v3float %98945 %98941 %101231 %98949
-     %162989 = OpPhi %v3float %98945 %98941 %101232 %98949
-      %90151 = OpLoad %uint %83860
-      %90152 = OpBitwiseAnd %uint %90151 %uint_8192
-      %90153 = OpUGreaterThan %bool %90152 %uint_0
-               OpSelectionMerge %98978 None
-               OpSwitch %uint_0 %98962
-      %98962 = OpLabel
-               OpSelectionMerge %98977 None
-               OpBranchConditional %90153 %98964 %98972
-      %98972 = OpLabel
-      %98974 = OpISub %uint %158792 %int_1
-      %98975 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %98974
-      %98976 = OpLoad %_arr_float_uint_2 %98975
-     %101222 = OpCompositeExtract %float %98976 0
-     %101223 = OpCompositeExtract %float %98976 1
-               OpBranch %98978
-      %98964 = OpLabel
-      %98966 = OpIAdd %uint %158794 %int_1
-      %98967 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %98968 = OpLoad %float %98967
-               OpBranch %98978
-      %98977 = OpLabel
-               OpUnreachable
-      %98978 = OpLabel
-     %182625 = OpPhi %uint %98966 %98964 %158794 %98972
-     %182378 = OpPhi %uint %158792 %98964 %98974 %98972
-     %162997 = OpPhi %float %98968 %98964 %101222 %98972
-     %162996 = OpPhi %float %98968 %98964 %101223 %98972
-      %90161 = OpCompositeConstruct %v3float %162997 %162997 %162997
-      %90162 = OpExtInst %v3float %1 FMix %162985 %162990 %90161
-      %90170 = OpCompositeConstruct %v3float %162996 %162996 %162996
-      %90171 = OpExtInst %v3float %1 FMix %162984 %162989 %90170
-     %105150 = OpCompositeConstruct %_arr_v3float_uint_2 %90162 %90171
-      %98982 = OpIAdd %uint %163003 %int_1
-      %98984 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163003
-               OpStore %98984 %105150
-               OpBranch %92278
-      %90095 = OpLabel
-      %90098 = OpLoad %uint %83860
-      %90099 = OpBitwiseAnd %uint %90098 %uint_32768
-      %90100 = OpUGreaterThan %bool %90099 %uint_0
-               OpSelectionMerge %98858 None
-               OpSwitch %uint_0 %98842
-      %98842 = OpLabel
-               OpSelectionMerge %98857 None
-               OpBranchConditional %90100 %98844 %98852
-      %98852 = OpLabel
-      %98854 = OpISub %uint %158802 %int_1
-      %98855 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %98854
-      %98856 = OpLoad %_arr_v3float_uint_2 %98855
-     %101267 = OpCompositeExtract %v3float %98856 0
-     %101268 = OpCompositeExtract %v3float %98856 1
-               OpBranch %98858
-      %98844 = OpLabel
-      %98846 = OpIAdd %uint %158805 %int_1
-      %98847 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %98848 = OpLoad %v3float %98847
-               OpBranch %98858
-      %98857 = OpLabel
-               OpUnreachable
-      %98858 = OpLabel
-     %242607 = OpPhi %uint %98846 %98844 %158805 %98852
-     %163022 = OpPhi %uint %158802 %98844 %98854 %98852
-     %163005 = OpPhi %v3float %98848 %98844 %101267 %98852
-     %163004 = OpPhi %v3float %98848 %98844 %101268 %98852
-      %90104 = OpLoad %uint %83860
-      %90105 = OpBitwiseAnd %uint %90104 %uint_16384
-      %90106 = OpUGreaterThan %bool %90105 %uint_0
-               OpSelectionMerge %98881 None
-               OpSwitch %uint_0 %98865
-      %98865 = OpLabel
-               OpSelectionMerge %98880 None
-               OpBranchConditional %90106 %98867 %98875
-      %98875 = OpLabel
-      %98877 = OpISub %uint %158792 %int_1
-      %98878 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %98877
-      %98879 = OpLoad %_arr_float_uint_2 %98878
-     %101258 = OpCompositeExtract %float %98879 0
-     %101259 = OpCompositeExtract %float %98879 1
-               OpBranch %98881
-      %98867 = OpLabel
-      %98869 = OpIAdd %uint %158794 %int_1
-      %98870 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %98871 = OpLoad %float %98870
-               OpBranch %98881
-      %98880 = OpLabel
-               OpUnreachable
-      %98881 = OpLabel
-     %163013 = OpPhi %uint %98869 %98867 %158794 %98875
-     %163012 = OpPhi %uint %158792 %98867 %98877 %98875
-     %163010 = OpPhi %float %98871 %98867 %101258 %98875
-     %163009 = OpPhi %float %98871 %98867 %101259 %98875
-      %90110 = OpLoad %uint %83860
-      %90111 = OpBitwiseAnd %uint %90110 %uint_8192
-      %90112 = OpUGreaterThan %bool %90111 %uint_0
-               OpSelectionMerge %98904 None
-               OpSwitch %uint_0 %98888
-      %98888 = OpLabel
-               OpSelectionMerge %98903 None
-               OpBranchConditional %90112 %98890 %98898
-      %98898 = OpLabel
-      %98900 = OpISub %uint %163012 %int_1
-      %98901 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %98900
-      %98902 = OpLoad %_arr_float_uint_2 %98901
-     %101249 = OpCompositeExtract %float %98902 0
-     %101250 = OpCompositeExtract %float %98902 1
-               OpBranch %98904
-      %98890 = OpLabel
-      %98892 = OpIAdd %uint %163013 %int_1
-      %98893 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %163013
-      %98894 = OpLoad %float %98893
-               OpBranch %98904
-      %98903 = OpLabel
-               OpUnreachable
-      %98904 = OpLabel
-     %182624 = OpPhi %uint %98892 %98890 %163013 %98898
-     %182377 = OpPhi %uint %163012 %98890 %98900 %98898
-     %163015 = OpPhi %float %98894 %98890 %101249 %98898
-     %163014 = OpPhi %float %98894 %98890 %101250 %98898
-      %90120 = OpCompositeConstruct %v3float %163010 %163010 %163010
-      %90121 = OpCompositeConstruct %v3float %163015 %163015 %163015
-      %90122 = OpExtInst %v3float %1 FClamp %163005 %90120 %90121
-      %90130 = OpCompositeConstruct %v3float %163009 %163009 %163009
-      %90131 = OpCompositeConstruct %v3float %163014 %163014 %163014
-      %90132 = OpExtInst %v3float %1 FClamp %163004 %90130 %90131
-     %105135 = OpCompositeConstruct %_arr_v3float_uint_2 %90122 %90132
-      %98908 = OpIAdd %uint %163022 %int_1
-      %98910 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163022
-               OpStore %98910 %105135
-               OpBranch %92278
-      %90058 = OpLabel
-      %90061 = OpLoad %uint %83860
-      %90062 = OpBitwiseAnd %uint %90061 %uint_32768
-      %90063 = OpUGreaterThan %bool %90062 %uint_0
-               OpSelectionMerge %98784 None
-               OpSwitch %uint_0 %98768
-      %98768 = OpLabel
-               OpSelectionMerge %98783 None
-               OpBranchConditional %90063 %98770 %98778
-      %98778 = OpLabel
-      %98780 = OpISub %uint %158802 %int_1
-      %98781 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %98780
-      %98782 = OpLoad %_arr_v3float_uint_2 %98781
-     %101294 = OpCompositeExtract %v3float %98782 0
-     %101295 = OpCompositeExtract %v3float %98782 1
-               OpBranch %98784
-      %98770 = OpLabel
-      %98772 = OpIAdd %uint %158805 %int_1
-      %98773 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %98774 = OpLoad %v3float %98773
-               OpBranch %98784
-      %98783 = OpLabel
-               OpUnreachable
-      %98784 = OpLabel
-     %163027 = OpPhi %uint %98772 %98770 %158805 %98778
-     %163026 = OpPhi %uint %158802 %98770 %98780 %98778
-     %163024 = OpPhi %v3float %98774 %98770 %101294 %98778
-     %163023 = OpPhi %v3float %98774 %98770 %101295 %98778
-      %90067 = OpLoad %uint %83860
-      %90068 = OpBitwiseAnd %uint %90067 %uint_16384
-      %90069 = OpUGreaterThan %bool %90068 %uint_0
-               OpSelectionMerge %98807 None
-               OpSwitch %uint_0 %98791
-      %98791 = OpLabel
-               OpSelectionMerge %98806 None
-               OpBranchConditional %90069 %98793 %98801
-      %98801 = OpLabel
-      %98803 = OpISub %uint %163026 %int_1
-      %98804 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %98803
-      %98805 = OpLoad %_arr_v3float_uint_2 %98804
-     %101285 = OpCompositeExtract %v3float %98805 0
-     %101286 = OpCompositeExtract %v3float %98805 1
-               OpBranch %98807
-      %98793 = OpLabel
-      %98795 = OpIAdd %uint %163027 %int_1
-      %98796 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %163027
-      %98797 = OpLoad %v3float %98796
-               OpBranch %98807
-      %98806 = OpLabel
-               OpUnreachable
-      %98807 = OpLabel
-     %163032 = OpPhi %uint %98795 %98793 %163027 %98801
-     %163031 = OpPhi %uint %163026 %98793 %98803 %98801
-     %163029 = OpPhi %v3float %98797 %98793 %101285 %98801
-     %163028 = OpPhi %v3float %98797 %98793 %101286 %98801
-      %90073 = OpLoad %uint %83860
-      %90074 = OpBitwiseAnd %uint %90073 %uint_8192
-      %90075 = OpUGreaterThan %bool %90074 %uint_0
-               OpSelectionMerge %98830 None
-               OpSwitch %uint_0 %98814
-      %98814 = OpLabel
-               OpSelectionMerge %98829 None
-               OpBranchConditional %90075 %98816 %98824
-      %98824 = OpLabel
-      %98826 = OpISub %uint %163031 %int_1
-      %98827 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %98826
-      %98828 = OpLoad %_arr_v3float_uint_2 %98827
-     %101276 = OpCompositeExtract %v3float %98828 0
-     %101277 = OpCompositeExtract %v3float %98828 1
-               OpBranch %98830
-      %98816 = OpLabel
-      %98818 = OpIAdd %uint %163032 %int_1
-      %98819 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %163032
-      %98820 = OpLoad %v3float %98819
-               OpBranch %98830
-      %98829 = OpLabel
-               OpUnreachable
-      %98830 = OpLabel
-     %242604 = OpPhi %uint %98818 %98816 %163032 %98824
-     %163039 = OpPhi %uint %163031 %98816 %98826 %98824
-     %163034 = OpPhi %v3float %98820 %98816 %101276 %98824
-     %163033 = OpPhi %v3float %98820 %98816 %101277 %98824
-      %90083 = OpExtInst %v3float %1 FMix %163024 %163029 %163034
-      %90091 = OpExtInst %v3float %1 FMix %163023 %163028 %163033
-     %105120 = OpCompositeConstruct %_arr_v3float_uint_2 %90083 %90091
-      %98834 = OpIAdd %uint %163039 %int_1
-      %98836 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163039
-               OpStore %98836 %105120
-               OpBranch %92278
-      %90021 = OpLabel
-      %90024 = OpLoad %uint %83860
-      %90025 = OpBitwiseAnd %uint %90024 %uint_32768
-      %90026 = OpUGreaterThan %bool %90025 %uint_0
-               OpSelectionMerge %98710 None
-               OpSwitch %uint_0 %98694
-      %98694 = OpLabel
-               OpSelectionMerge %98709 None
-               OpBranchConditional %90026 %98696 %98704
-      %98704 = OpLabel
-      %98706 = OpISub %uint %158802 %int_1
-      %98707 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %98706
-      %98708 = OpLoad %_arr_v3float_uint_2 %98707
-     %101321 = OpCompositeExtract %v3float %98708 0
-     %101322 = OpCompositeExtract %v3float %98708 1
-               OpBranch %98710
-      %98696 = OpLabel
-      %98698 = OpIAdd %uint %158805 %int_1
-      %98699 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %98700 = OpLoad %v3float %98699
-               OpBranch %98710
-      %98709 = OpLabel
-               OpUnreachable
-      %98710 = OpLabel
-     %163044 = OpPhi %uint %98698 %98696 %158805 %98704
-     %163043 = OpPhi %uint %158802 %98696 %98706 %98704
-     %163041 = OpPhi %v3float %98700 %98696 %101321 %98704
-     %163040 = OpPhi %v3float %98700 %98696 %101322 %98704
-      %90030 = OpLoad %uint %83860
-      %90031 = OpBitwiseAnd %uint %90030 %uint_16384
-      %90032 = OpUGreaterThan %bool %90031 %uint_0
-               OpSelectionMerge %98733 None
-               OpSwitch %uint_0 %98717
-      %98717 = OpLabel
-               OpSelectionMerge %98732 None
-               OpBranchConditional %90032 %98719 %98727
-      %98727 = OpLabel
-      %98729 = OpISub %uint %163043 %int_1
-      %98730 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %98729
-      %98731 = OpLoad %_arr_v3float_uint_2 %98730
-     %101312 = OpCompositeExtract %v3float %98731 0
-     %101313 = OpCompositeExtract %v3float %98731 1
-               OpBranch %98733
-      %98719 = OpLabel
-      %98721 = OpIAdd %uint %163044 %int_1
-      %98722 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %163044
-      %98723 = OpLoad %v3float %98722
-               OpBranch %98733
-      %98732 = OpLabel
-               OpUnreachable
-      %98733 = OpLabel
-     %163049 = OpPhi %uint %98721 %98719 %163044 %98727
-     %163048 = OpPhi %uint %163043 %98719 %98729 %98727
-     %163046 = OpPhi %v3float %98723 %98719 %101312 %98727
-     %163045 = OpPhi %v3float %98723 %98719 %101313 %98727
-      %90036 = OpLoad %uint %83860
-      %90037 = OpBitwiseAnd %uint %90036 %uint_8192
-      %90038 = OpUGreaterThan %bool %90037 %uint_0
-               OpSelectionMerge %98756 None
-               OpSwitch %uint_0 %98740
-      %98740 = OpLabel
-               OpSelectionMerge %98755 None
-               OpBranchConditional %90038 %98742 %98750
-      %98750 = OpLabel
-      %98752 = OpISub %uint %163048 %int_1
-      %98753 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %98752
-      %98754 = OpLoad %_arr_v3float_uint_2 %98753
-     %101303 = OpCompositeExtract %v3float %98754 0
-     %101304 = OpCompositeExtract %v3float %98754 1
-               OpBranch %98756
-      %98742 = OpLabel
-      %98744 = OpIAdd %uint %163049 %int_1
-      %98745 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %163049
-      %98746 = OpLoad %v3float %98745
-               OpBranch %98756
-      %98755 = OpLabel
-               OpUnreachable
-      %98756 = OpLabel
-     %242603 = OpPhi %uint %98744 %98742 %163049 %98750
-     %163056 = OpPhi %uint %163048 %98742 %98752 %98750
-     %163051 = OpPhi %v3float %98746 %98742 %101303 %98750
-     %163050 = OpPhi %v3float %98746 %98742 %101304 %98750
-      %90046 = OpExtInst %v3float %1 FClamp %163041 %163046 %163051
-      %90054 = OpExtInst %v3float %1 FClamp %163040 %163045 %163050
-     %105105 = OpCompositeConstruct %_arr_v3float_uint_2 %90046 %90054
-      %98760 = OpIAdd %uint %163056 %int_1
-      %98762 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163056
-               OpStore %98762 %105105
-               OpBranch %92278
-      %89982 = OpLabel
-      %89985 = OpLoad %uint %83860
-      %89986 = OpBitwiseAnd %uint %89985 %uint_32768
-      %89987 = OpUGreaterThan %bool %89986 %uint_0
-               OpSelectionMerge %98636 None
-               OpSwitch %uint_0 %98620
-      %98620 = OpLabel
-               OpSelectionMerge %98635 None
-               OpBranchConditional %89987 %98622 %98630
-      %98630 = OpLabel
-      %98632 = OpISub %uint %158813 %int_1
-      %98633 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %98632
-      %98634 = OpLoad %_arr_v2float_uint_2 %98633
-     %101348 = OpCompositeExtract %v2float %98634 0
-     %101349 = OpCompositeExtract %v2float %98634 1
-               OpBranch %98636
-      %98622 = OpLabel
-      %98624 = OpIAdd %uint %160807 %int_1
-      %98625 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %98626 = OpLoad %v2float %98625
-               OpBranch %98636
-      %98635 = OpLabel
-               OpUnreachable
-      %98636 = OpLabel
-     %163061 = OpPhi %uint %98624 %98622 %160807 %98630
-     %163060 = OpPhi %uint %158813 %98622 %98632 %98630
-     %163058 = OpPhi %v2float %98626 %98622 %101348 %98630
-     %163057 = OpPhi %v2float %98626 %98622 %101349 %98630
-      %89991 = OpLoad %uint %83860
-      %89992 = OpBitwiseAnd %uint %89991 %uint_16384
-      %89993 = OpUGreaterThan %bool %89992 %uint_0
-               OpSelectionMerge %98659 None
-               OpSwitch %uint_0 %98643
-      %98643 = OpLabel
-               OpSelectionMerge %98658 None
-               OpBranchConditional %89993 %98645 %98653
-      %98653 = OpLabel
-      %98655 = OpISub %uint %163060 %int_1
-      %98656 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %98655
-      %98657 = OpLoad %_arr_v2float_uint_2 %98656
-     %101339 = OpCompositeExtract %v2float %98657 0
-     %101340 = OpCompositeExtract %v2float %98657 1
-               OpBranch %98659
-      %98645 = OpLabel
-      %98647 = OpIAdd %uint %163061 %int_1
-      %98648 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %163061
-      %98649 = OpLoad %v2float %98648
-               OpBranch %98659
-      %98658 = OpLabel
-               OpUnreachable
-      %98659 = OpLabel
-     %244951 = OpPhi %uint %98647 %98645 %163061 %98653
-     %163076 = OpPhi %uint %163060 %98645 %98655 %98653
-     %163063 = OpPhi %v2float %98649 %98645 %101339 %98653
-     %163062 = OpPhi %v2float %98649 %98645 %101340 %98653
-      %89997 = OpLoad %uint %83860
-      %89998 = OpBitwiseAnd %uint %89997 %uint_8192
-      %89999 = OpUGreaterThan %bool %89998 %uint_0
-               OpSelectionMerge %98682 None
-               OpSwitch %uint_0 %98666
-      %98666 = OpLabel
-               OpSelectionMerge %98681 None
-               OpBranchConditional %89999 %98668 %98676
-      %98676 = OpLabel
-      %98678 = OpISub %uint %158792 %int_1
-      %98679 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %98678
-      %98680 = OpLoad %_arr_float_uint_2 %98679
-     %101330 = OpCompositeExtract %float %98680 0
-     %101331 = OpCompositeExtract %float %98680 1
-               OpBranch %98682
-      %98668 = OpLabel
-      %98670 = OpIAdd %uint %158794 %int_1
-      %98671 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %98672 = OpLoad %float %98671
-               OpBranch %98682
-      %98681 = OpLabel
-               OpUnreachable
-      %98682 = OpLabel
-     %182617 = OpPhi %uint %98670 %98668 %158794 %98676
-     %182370 = OpPhi %uint %158792 %98668 %98678 %98676
-     %163070 = OpPhi %float %98672 %98668 %101330 %98676
-     %163069 = OpPhi %float %98672 %98668 %101331 %98676
-      %90007 = OpCompositeConstruct %v2float %163070 %163070
-      %90008 = OpExtInst %v2float %1 FMix %163058 %163063 %90007
-      %90016 = OpCompositeConstruct %v2float %163069 %163069
-      %90017 = OpExtInst %v2float %1 FMix %163057 %163062 %90016
-     %105090 = OpCompositeConstruct %_arr_v2float_uint_2 %90008 %90017
-      %98686 = OpIAdd %uint %163076 %int_1
-      %98688 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163076
-               OpStore %98688 %105090
-               OpBranch %92278
-      %89941 = OpLabel
-      %89944 = OpLoad %uint %83860
-      %89945 = OpBitwiseAnd %uint %89944 %uint_32768
-      %89946 = OpUGreaterThan %bool %89945 %uint_0
-               OpSelectionMerge %98562 None
-               OpSwitch %uint_0 %98546
-      %98546 = OpLabel
-               OpSelectionMerge %98561 None
-               OpBranchConditional %89946 %98548 %98556
-      %98556 = OpLabel
-      %98558 = OpISub %uint %158813 %int_1
-      %98559 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %98558
-      %98560 = OpLoad %_arr_v2float_uint_2 %98559
-     %101375 = OpCompositeExtract %v2float %98560 0
-     %101376 = OpCompositeExtract %v2float %98560 1
-               OpBranch %98562
-      %98548 = OpLabel
-      %98550 = OpIAdd %uint %160807 %int_1
-      %98551 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %98552 = OpLoad %v2float %98551
-               OpBranch %98562
-      %98561 = OpLabel
-               OpUnreachable
-      %98562 = OpLabel
-     %244949 = OpPhi %uint %98550 %98548 %160807 %98556
-     %163095 = OpPhi %uint %158813 %98548 %98558 %98556
-     %163078 = OpPhi %v2float %98552 %98548 %101375 %98556
-     %163077 = OpPhi %v2float %98552 %98548 %101376 %98556
-      %89950 = OpLoad %uint %83860
-      %89951 = OpBitwiseAnd %uint %89950 %uint_16384
-      %89952 = OpUGreaterThan %bool %89951 %uint_0
-               OpSelectionMerge %98585 None
-               OpSwitch %uint_0 %98569
-      %98569 = OpLabel
-               OpSelectionMerge %98584 None
-               OpBranchConditional %89952 %98571 %98579
-      %98579 = OpLabel
-      %98581 = OpISub %uint %158792 %int_1
-      %98582 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %98581
-      %98583 = OpLoad %_arr_float_uint_2 %98582
-     %101366 = OpCompositeExtract %float %98583 0
-     %101367 = OpCompositeExtract %float %98583 1
-               OpBranch %98585
-      %98571 = OpLabel
-      %98573 = OpIAdd %uint %158794 %int_1
-      %98574 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %98575 = OpLoad %float %98574
-               OpBranch %98585
-      %98584 = OpLabel
-               OpUnreachable
-      %98585 = OpLabel
-     %163086 = OpPhi %uint %98573 %98571 %158794 %98579
-     %163085 = OpPhi %uint %158792 %98571 %98581 %98579
-     %163083 = OpPhi %float %98575 %98571 %101366 %98579
-     %163082 = OpPhi %float %98575 %98571 %101367 %98579
-      %89956 = OpLoad %uint %83860
-      %89957 = OpBitwiseAnd %uint %89956 %uint_8192
-      %89958 = OpUGreaterThan %bool %89957 %uint_0
-               OpSelectionMerge %98608 None
-               OpSwitch %uint_0 %98592
-      %98592 = OpLabel
-               OpSelectionMerge %98607 None
-               OpBranchConditional %89958 %98594 %98602
-      %98602 = OpLabel
-      %98604 = OpISub %uint %163085 %int_1
-      %98605 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %98604
-      %98606 = OpLoad %_arr_float_uint_2 %98605
-     %101357 = OpCompositeExtract %float %98606 0
-     %101358 = OpCompositeExtract %float %98606 1
-               OpBranch %98608
-      %98594 = OpLabel
-      %98596 = OpIAdd %uint %163086 %int_1
-      %98597 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %163086
-      %98598 = OpLoad %float %98597
-               OpBranch %98608
-      %98607 = OpLabel
-               OpUnreachable
-      %98608 = OpLabel
-     %182616 = OpPhi %uint %98596 %98594 %163086 %98602
-     %182369 = OpPhi %uint %163085 %98594 %98604 %98602
-     %163088 = OpPhi %float %98598 %98594 %101357 %98602
-     %163087 = OpPhi %float %98598 %98594 %101358 %98602
-      %89966 = OpCompositeConstruct %v2float %163083 %163083
-      %89967 = OpCompositeConstruct %v2float %163088 %163088
-      %89968 = OpExtInst %v2float %1 FClamp %163078 %89966 %89967
-      %89976 = OpCompositeConstruct %v2float %163082 %163082
-      %89977 = OpCompositeConstruct %v2float %163087 %163087
-      %89978 = OpExtInst %v2float %1 FClamp %163077 %89976 %89977
-     %105075 = OpCompositeConstruct %_arr_v2float_uint_2 %89968 %89978
-      %98612 = OpIAdd %uint %163095 %int_1
-      %98614 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163095
-               OpStore %98614 %105075
-               OpBranch %92278
-      %89904 = OpLabel
-      %89907 = OpLoad %uint %83860
-      %89908 = OpBitwiseAnd %uint %89907 %uint_32768
-      %89909 = OpUGreaterThan %bool %89908 %uint_0
-               OpSelectionMerge %98488 None
-               OpSwitch %uint_0 %98472
-      %98472 = OpLabel
-               OpSelectionMerge %98487 None
-               OpBranchConditional %89909 %98474 %98482
-      %98482 = OpLabel
-      %98484 = OpISub %uint %158813 %int_1
-      %98485 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %98484
-      %98486 = OpLoad %_arr_v2float_uint_2 %98485
-     %101402 = OpCompositeExtract %v2float %98486 0
-     %101403 = OpCompositeExtract %v2float %98486 1
-               OpBranch %98488
-      %98474 = OpLabel
-      %98476 = OpIAdd %uint %160807 %int_1
-      %98477 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %98478 = OpLoad %v2float %98477
-               OpBranch %98488
-      %98487 = OpLabel
-               OpUnreachable
-      %98488 = OpLabel
-     %163100 = OpPhi %uint %98476 %98474 %160807 %98482
-     %163099 = OpPhi %uint %158813 %98474 %98484 %98482
-     %163097 = OpPhi %v2float %98478 %98474 %101402 %98482
-     %163096 = OpPhi %v2float %98478 %98474 %101403 %98482
-      %89913 = OpLoad %uint %83860
-      %89914 = OpBitwiseAnd %uint %89913 %uint_16384
-      %89915 = OpUGreaterThan %bool %89914 %uint_0
-               OpSelectionMerge %98511 None
-               OpSwitch %uint_0 %98495
-      %98495 = OpLabel
-               OpSelectionMerge %98510 None
-               OpBranchConditional %89915 %98497 %98505
-      %98505 = OpLabel
-      %98507 = OpISub %uint %163099 %int_1
-      %98508 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %98507
-      %98509 = OpLoad %_arr_v2float_uint_2 %98508
-     %101393 = OpCompositeExtract %v2float %98509 0
-     %101394 = OpCompositeExtract %v2float %98509 1
-               OpBranch %98511
-      %98497 = OpLabel
-      %98499 = OpIAdd %uint %163100 %int_1
-      %98500 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %163100
-      %98501 = OpLoad %v2float %98500
-               OpBranch %98511
-      %98510 = OpLabel
-               OpUnreachable
-      %98511 = OpLabel
-     %163105 = OpPhi %uint %98499 %98497 %163100 %98505
-     %163104 = OpPhi %uint %163099 %98497 %98507 %98505
-     %163102 = OpPhi %v2float %98501 %98497 %101393 %98505
-     %163101 = OpPhi %v2float %98501 %98497 %101394 %98505
-      %89919 = OpLoad %uint %83860
-      %89920 = OpBitwiseAnd %uint %89919 %uint_8192
-      %89921 = OpUGreaterThan %bool %89920 %uint_0
-               OpSelectionMerge %98534 None
-               OpSwitch %uint_0 %98518
-      %98518 = OpLabel
-               OpSelectionMerge %98533 None
-               OpBranchConditional %89921 %98520 %98528
-      %98528 = OpLabel
-      %98530 = OpISub %uint %163104 %int_1
-      %98531 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %98530
-      %98532 = OpLoad %_arr_v2float_uint_2 %98531
-     %101384 = OpCompositeExtract %v2float %98532 0
-     %101385 = OpCompositeExtract %v2float %98532 1
-               OpBranch %98534
-      %98520 = OpLabel
-      %98522 = OpIAdd %uint %163105 %int_1
-      %98523 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %163105
-      %98524 = OpLoad %v2float %98523
-               OpBranch %98534
-      %98533 = OpLabel
-               OpUnreachable
-      %98534 = OpLabel
-     %244946 = OpPhi %uint %98522 %98520 %163105 %98528
-     %163112 = OpPhi %uint %163104 %98520 %98530 %98528
-     %163107 = OpPhi %v2float %98524 %98520 %101384 %98528
-     %163106 = OpPhi %v2float %98524 %98520 %101385 %98528
-      %89929 = OpExtInst %v2float %1 FMix %163097 %163102 %163107
-      %89937 = OpExtInst %v2float %1 FMix %163096 %163101 %163106
-     %105060 = OpCompositeConstruct %_arr_v2float_uint_2 %89929 %89937
-      %98538 = OpIAdd %uint %163112 %int_1
-      %98540 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163112
-               OpStore %98540 %105060
-               OpBranch %92278
-      %89867 = OpLabel
-      %89870 = OpLoad %uint %83860
-      %89871 = OpBitwiseAnd %uint %89870 %uint_32768
-      %89872 = OpUGreaterThan %bool %89871 %uint_0
-               OpSelectionMerge %98414 None
-               OpSwitch %uint_0 %98398
-      %98398 = OpLabel
-               OpSelectionMerge %98413 None
-               OpBranchConditional %89872 %98400 %98408
-      %98408 = OpLabel
-      %98410 = OpISub %uint %158813 %int_1
-      %98411 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %98410
-      %98412 = OpLoad %_arr_v2float_uint_2 %98411
-     %101429 = OpCompositeExtract %v2float %98412 0
-     %101430 = OpCompositeExtract %v2float %98412 1
-               OpBranch %98414
-      %98400 = OpLabel
-      %98402 = OpIAdd %uint %160807 %int_1
-      %98403 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %98404 = OpLoad %v2float %98403
-               OpBranch %98414
-      %98413 = OpLabel
-               OpUnreachable
-      %98414 = OpLabel
-     %163117 = OpPhi %uint %98402 %98400 %160807 %98408
-     %163116 = OpPhi %uint %158813 %98400 %98410 %98408
-     %163114 = OpPhi %v2float %98404 %98400 %101429 %98408
-     %163113 = OpPhi %v2float %98404 %98400 %101430 %98408
-      %89876 = OpLoad %uint %83860
-      %89877 = OpBitwiseAnd %uint %89876 %uint_16384
-      %89878 = OpUGreaterThan %bool %89877 %uint_0
-               OpSelectionMerge %98437 None
-               OpSwitch %uint_0 %98421
-      %98421 = OpLabel
-               OpSelectionMerge %98436 None
-               OpBranchConditional %89878 %98423 %98431
-      %98431 = OpLabel
-      %98433 = OpISub %uint %163116 %int_1
-      %98434 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %98433
-      %98435 = OpLoad %_arr_v2float_uint_2 %98434
-     %101420 = OpCompositeExtract %v2float %98435 0
-     %101421 = OpCompositeExtract %v2float %98435 1
-               OpBranch %98437
-      %98423 = OpLabel
-      %98425 = OpIAdd %uint %163117 %int_1
-      %98426 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %163117
-      %98427 = OpLoad %v2float %98426
-               OpBranch %98437
-      %98436 = OpLabel
-               OpUnreachable
-      %98437 = OpLabel
-     %163122 = OpPhi %uint %98425 %98423 %163117 %98431
-     %163121 = OpPhi %uint %163116 %98423 %98433 %98431
-     %163119 = OpPhi %v2float %98427 %98423 %101420 %98431
-     %163118 = OpPhi %v2float %98427 %98423 %101421 %98431
-      %89882 = OpLoad %uint %83860
-      %89883 = OpBitwiseAnd %uint %89882 %uint_8192
-      %89884 = OpUGreaterThan %bool %89883 %uint_0
-               OpSelectionMerge %98460 None
-               OpSwitch %uint_0 %98444
-      %98444 = OpLabel
-               OpSelectionMerge %98459 None
-               OpBranchConditional %89884 %98446 %98454
-      %98454 = OpLabel
-      %98456 = OpISub %uint %163121 %int_1
-      %98457 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %98456
-      %98458 = OpLoad %_arr_v2float_uint_2 %98457
-     %101411 = OpCompositeExtract %v2float %98458 0
-     %101412 = OpCompositeExtract %v2float %98458 1
-               OpBranch %98460
-      %98446 = OpLabel
-      %98448 = OpIAdd %uint %163122 %int_1
-      %98449 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %163122
-      %98450 = OpLoad %v2float %98449
-               OpBranch %98460
-      %98459 = OpLabel
-               OpUnreachable
-      %98460 = OpLabel
-     %244945 = OpPhi %uint %98448 %98446 %163122 %98454
-     %163129 = OpPhi %uint %163121 %98446 %98456 %98454
-     %163124 = OpPhi %v2float %98450 %98446 %101411 %98454
-     %163123 = OpPhi %v2float %98450 %98446 %101412 %98454
-      %89892 = OpExtInst %v2float %1 FClamp %163114 %163119 %163124
-      %89900 = OpExtInst %v2float %1 FClamp %163113 %163118 %163123
-     %105045 = OpCompositeConstruct %_arr_v2float_uint_2 %89892 %89900
-      %98464 = OpIAdd %uint %163129 %int_1
-      %98466 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163129
-               OpStore %98466 %105045
-               OpBranch %92278
-      %89830 = OpLabel
-      %89833 = OpLoad %uint %83860
-      %89834 = OpBitwiseAnd %uint %89833 %uint_32768
-      %89835 = OpUGreaterThan %bool %89834 %uint_0
-               OpSelectionMerge %98340 None
-               OpSwitch %uint_0 %98324
-      %98324 = OpLabel
-               OpSelectionMerge %98339 None
-               OpBranchConditional %89835 %98326 %98334
-      %98334 = OpLabel
-      %98336 = OpISub %uint %158792 %int_1
-      %98337 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %98336
-      %98338 = OpLoad %_arr_float_uint_2 %98337
-     %101456 = OpCompositeExtract %float %98338 0
-     %101457 = OpCompositeExtract %float %98338 1
-               OpBranch %98340
-      %98326 = OpLabel
-      %98328 = OpIAdd %uint %158794 %int_1
-      %98329 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %98330 = OpLoad %float %98329
-               OpBranch %98340
-      %98339 = OpLabel
-               OpUnreachable
-      %98340 = OpLabel
-     %163134 = OpPhi %uint %98328 %98326 %158794 %98334
-     %163133 = OpPhi %uint %158792 %98326 %98336 %98334
-     %163131 = OpPhi %float %98330 %98326 %101456 %98334
-     %163130 = OpPhi %float %98330 %98326 %101457 %98334
-      %89839 = OpLoad %uint %83860
-      %89840 = OpBitwiseAnd %uint %89839 %uint_16384
-      %89841 = OpUGreaterThan %bool %89840 %uint_0
-               OpSelectionMerge %98363 None
-               OpSwitch %uint_0 %98347
-      %98347 = OpLabel
-               OpSelectionMerge %98362 None
-               OpBranchConditional %89841 %98349 %98357
-      %98357 = OpLabel
-      %98359 = OpISub %uint %163133 %int_1
-      %98360 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %98359
-      %98361 = OpLoad %_arr_float_uint_2 %98360
-     %101447 = OpCompositeExtract %float %98361 0
-     %101448 = OpCompositeExtract %float %98361 1
-               OpBranch %98363
-      %98349 = OpLabel
-      %98351 = OpIAdd %uint %163134 %int_1
-      %98352 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %163134
-      %98353 = OpLoad %float %98352
-               OpBranch %98363
-      %98362 = OpLabel
-               OpUnreachable
-      %98363 = OpLabel
-     %163139 = OpPhi %uint %98351 %98349 %163134 %98357
-     %163138 = OpPhi %uint %163133 %98349 %98359 %98357
-     %163136 = OpPhi %float %98353 %98349 %101447 %98357
-     %163135 = OpPhi %float %98353 %98349 %101448 %98357
-      %89845 = OpLoad %uint %83860
-      %89846 = OpBitwiseAnd %uint %89845 %uint_8192
-      %89847 = OpUGreaterThan %bool %89846 %uint_0
-               OpSelectionMerge %98386 None
-               OpSwitch %uint_0 %98370
-      %98370 = OpLabel
-               OpSelectionMerge %98385 None
-               OpBranchConditional %89847 %98372 %98380
-      %98380 = OpLabel
-      %98382 = OpISub %uint %163138 %int_1
-      %98383 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %98382
-      %98384 = OpLoad %_arr_float_uint_2 %98383
-     %101438 = OpCompositeExtract %float %98384 0
-     %101439 = OpCompositeExtract %float %98384 1
-               OpBranch %98386
-      %98372 = OpLabel
-      %98374 = OpIAdd %uint %163139 %int_1
-      %98375 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %163139
-      %98376 = OpLoad %float %98375
-               OpBranch %98386
-      %98385 = OpLabel
-               OpUnreachable
-      %98386 = OpLabel
-     %182609 = OpPhi %uint %98374 %98372 %163139 %98380
-     %163146 = OpPhi %uint %163138 %98372 %98382 %98380
-     %163141 = OpPhi %float %98376 %98372 %101438 %98380
-     %163140 = OpPhi %float %98376 %98372 %101439 %98380
-      %89855 = OpExtInst %float %1 FMix %163131 %163136 %163141
-      %89863 = OpExtInst %float %1 FMix %163130 %163135 %163140
-     %105030 = OpCompositeConstruct %_arr_float_uint_2 %89855 %89863
-      %98390 = OpIAdd %uint %163146 %int_1
-      %98392 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163146
-               OpStore %98392 %105030
-               OpBranch %92278
-      %89793 = OpLabel
-      %89796 = OpLoad %uint %83860
-      %89797 = OpBitwiseAnd %uint %89796 %uint_32768
-      %89798 = OpUGreaterThan %bool %89797 %uint_0
-               OpSelectionMerge %98266 None
-               OpSwitch %uint_0 %98250
-      %98250 = OpLabel
-               OpSelectionMerge %98265 None
-               OpBranchConditional %89798 %98252 %98260
-      %98260 = OpLabel
-      %98262 = OpISub %uint %158792 %int_1
-      %98263 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %98262
-      %98264 = OpLoad %_arr_float_uint_2 %98263
-     %101483 = OpCompositeExtract %float %98264 0
-     %101484 = OpCompositeExtract %float %98264 1
-               OpBranch %98266
-      %98252 = OpLabel
-      %98254 = OpIAdd %uint %158794 %int_1
-      %98255 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %98256 = OpLoad %float %98255
-               OpBranch %98266
-      %98265 = OpLabel
-               OpUnreachable
-      %98266 = OpLabel
-     %163151 = OpPhi %uint %98254 %98252 %158794 %98260
-     %163150 = OpPhi %uint %158792 %98252 %98262 %98260
-     %163148 = OpPhi %float %98256 %98252 %101483 %98260
-     %163147 = OpPhi %float %98256 %98252 %101484 %98260
-      %89802 = OpLoad %uint %83860
-      %89803 = OpBitwiseAnd %uint %89802 %uint_16384
-      %89804 = OpUGreaterThan %bool %89803 %uint_0
-               OpSelectionMerge %98289 None
-               OpSwitch %uint_0 %98273
-      %98273 = OpLabel
-               OpSelectionMerge %98288 None
-               OpBranchConditional %89804 %98275 %98283
-      %98283 = OpLabel
-      %98285 = OpISub %uint %163150 %int_1
-      %98286 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %98285
-      %98287 = OpLoad %_arr_float_uint_2 %98286
-     %101474 = OpCompositeExtract %float %98287 0
-     %101475 = OpCompositeExtract %float %98287 1
-               OpBranch %98289
-      %98275 = OpLabel
-      %98277 = OpIAdd %uint %163151 %int_1
-      %98278 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %163151
-      %98279 = OpLoad %float %98278
-               OpBranch %98289
-      %98288 = OpLabel
-               OpUnreachable
-      %98289 = OpLabel
-     %163156 = OpPhi %uint %98277 %98275 %163151 %98283
-     %163155 = OpPhi %uint %163150 %98275 %98285 %98283
-     %163153 = OpPhi %float %98279 %98275 %101474 %98283
-     %163152 = OpPhi %float %98279 %98275 %101475 %98283
-      %89808 = OpLoad %uint %83860
-      %89809 = OpBitwiseAnd %uint %89808 %uint_8192
-      %89810 = OpUGreaterThan %bool %89809 %uint_0
-               OpSelectionMerge %98312 None
-               OpSwitch %uint_0 %98296
-      %98296 = OpLabel
-               OpSelectionMerge %98311 None
-               OpBranchConditional %89810 %98298 %98306
-      %98306 = OpLabel
-      %98308 = OpISub %uint %163155 %int_1
-      %98309 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %98308
-      %98310 = OpLoad %_arr_float_uint_2 %98309
-     %101465 = OpCompositeExtract %float %98310 0
-     %101466 = OpCompositeExtract %float %98310 1
-               OpBranch %98312
-      %98298 = OpLabel
-      %98300 = OpIAdd %uint %163156 %int_1
-      %98301 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %163156
-      %98302 = OpLoad %float %98301
-               OpBranch %98312
-      %98311 = OpLabel
-               OpUnreachable
-      %98312 = OpLabel
-     %182608 = OpPhi %uint %98300 %98298 %163156 %98306
-     %163163 = OpPhi %uint %163155 %98298 %98308 %98306
-     %163158 = OpPhi %float %98302 %98298 %101465 %98306
-     %163157 = OpPhi %float %98302 %98298 %101466 %98306
-      %89818 = OpExtInst %float %1 FClamp %163148 %163153 %163158
-      %89826 = OpExtInst %float %1 FClamp %163147 %163152 %163157
-     %105015 = OpCompositeConstruct %_arr_float_uint_2 %89818 %89826
-      %98316 = OpIAdd %uint %163163 %int_1
-      %98318 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163163
-               OpStore %98318 %105015
-               OpBranch %92278
-      %89711 = OpLabel
-      %89714 = OpLoad %uint %83860
-      %89715 = OpBitwiseAnd %uint %89714 %uint_32768
-      %89716 = OpUGreaterThan %bool %89715 %uint_0
-               OpSelectionMerge %98192 None
-               OpSwitch %uint_0 %98176
-      %98176 = OpLabel
-               OpSelectionMerge %98191 None
-               OpBranchConditional %89716 %98178 %98186
-      %98186 = OpLabel
-      %98188 = OpISub %uint %158811 %int_1
-      %98189 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %98188
-      %98190 = OpLoad %_arr_v4float_uint_2 %98189
-     %101510 = OpCompositeExtract %v4float %98190 0
-     %101511 = OpCompositeExtract %v4float %98190 1
-               OpBranch %98192
-      %98178 = OpLabel
-      %98180 = OpIAdd %uint %158837 %int_1
-      %98181 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %98182 = OpLoad %v4float %98181
-               OpBranch %98192
-      %98191 = OpLabel
-               OpUnreachable
-      %98192 = OpLabel
-     %163168 = OpPhi %uint %98180 %98178 %158837 %98186
-     %163167 = OpPhi %uint %158811 %98178 %98188 %98186
-     %163165 = OpPhi %v4float %98182 %98178 %101510 %98186
-     %163164 = OpPhi %v4float %98182 %98178 %101511 %98186
-      %89720 = OpLoad %uint %83860
-      %89721 = OpBitwiseAnd %uint %89720 %uint_16384
-      %89722 = OpUGreaterThan %bool %89721 %uint_0
-               OpSelectionMerge %98215 None
-               OpSwitch %uint_0 %98199
-      %98199 = OpLabel
-               OpSelectionMerge %98214 None
-               OpBranchConditional %89722 %98201 %98209
-      %98209 = OpLabel
-      %98211 = OpISub %uint %163167 %int_1
-      %98212 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %98211
-      %98213 = OpLoad %_arr_v4float_uint_2 %98212
-     %101501 = OpCompositeExtract %v4float %98213 0
-     %101502 = OpCompositeExtract %v4float %98213 1
-               OpBranch %98215
-      %98201 = OpLabel
-      %98203 = OpIAdd %uint %163168 %int_1
-      %98204 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %163168
-      %98205 = OpLoad %v4float %98204
-               OpBranch %98215
-      %98214 = OpLabel
-               OpUnreachable
-      %98215 = OpLabel
-     %163173 = OpPhi %uint %98203 %98201 %163168 %98209
-     %163172 = OpPhi %uint %163167 %98201 %98211 %98209
-     %163170 = OpPhi %v4float %98205 %98201 %101501 %98209
-     %163169 = OpPhi %v4float %98205 %98201 %101502 %98209
-      %89726 = OpLoad %uint %83860
-      %89727 = OpBitwiseAnd %uint %89726 %uint_8192
-      %89728 = OpUGreaterThan %bool %89727 %uint_0
-               OpSelectionMerge %98238 None
-               OpSwitch %uint_0 %98222
-      %98222 = OpLabel
-               OpSelectionMerge %98237 None
-               OpBranchConditional %89728 %98224 %98232
-      %98232 = OpLabel
-      %98234 = OpISub %uint %163172 %int_1
-      %98235 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %98234
-      %98236 = OpLoad %_arr_v4float_uint_2 %98235
-     %101492 = OpCompositeExtract %v4float %98236 0
-     %101493 = OpCompositeExtract %v4float %98236 1
-               OpBranch %98238
-      %98224 = OpLabel
-      %98226 = OpIAdd %uint %163173 %int_1
-      %98227 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %163173
-      %98228 = OpLoad %v4float %98227
-               OpBranch %98238
-      %98237 = OpLabel
-               OpUnreachable
-      %98238 = OpLabel
-     %243358 = OpPhi %uint %98226 %98224 %163173 %98232
-     %163182 = OpPhi %uint %163172 %98224 %98234 %98232
-     %163175 = OpPhi %v4float %98228 %98224 %101492 %98232
-     %163174 = OpPhi %v4float %98228 %98224 %101493 %98232
-      %89734 = OpFMul %v4float %163165 %163170
-      %89740 = OpFMul %v4float %163165 %163169
-      %89746 = OpFMul %v4float %163164 %163170
-      %89752 = OpFMul %v4float %163164 %163169
-      %89762 = OpExtInst %v4float %1 FMin %89746 %89752
-      %89763 = OpExtInst %v4float %1 FMin %89740 %89762
-      %89764 = OpExtInst %v4float %1 FMin %89734 %89763
-      %89774 = OpExtInst %v4float %1 FMax %89746 %89752
-      %89775 = OpExtInst %v4float %1 FMax %89740 %89774
-      %89776 = OpExtInst %v4float %1 FMax %89734 %89775
-      %89783 = OpFAdd %v4float %89764 %163175
-      %89789 = OpFAdd %v4float %89776 %163174
-     %104998 = OpCompositeConstruct %_arr_v4float_uint_2 %89783 %89789
-      %98242 = OpIAdd %uint %163182 %int_1
-      %98244 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163182
-               OpStore %98244 %104998
-               OpBranch %92278
-      %89684 = OpLabel
-      %89687 = OpLoad %uint %83860
-      %89688 = OpBitwiseAnd %uint %89687 %uint_32768
-      %89689 = OpUGreaterThan %bool %89688 %uint_0
-               OpSelectionMerge %98141 None
-               OpSwitch %uint_0 %98125
-      %98125 = OpLabel
-               OpSelectionMerge %98140 None
-               OpBranchConditional %89689 %98127 %98135
-      %98135 = OpLabel
-      %98137 = OpISub %uint %158811 %int_1
-      %98138 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %98137
-      %98139 = OpLoad %_arr_v4float_uint_2 %98138
-     %101528 = OpCompositeExtract %v4float %98139 0
-     %101529 = OpCompositeExtract %v4float %98139 1
-               OpBranch %98141
-      %98127 = OpLabel
-      %98129 = OpIAdd %uint %158837 %int_1
-      %98130 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %98131 = OpLoad %v4float %98130
-               OpBranch %98141
-      %98140 = OpLabel
-               OpUnreachable
-      %98141 = OpLabel
-     %163187 = OpPhi %uint %98129 %98127 %158837 %98135
-     %163186 = OpPhi %uint %158811 %98127 %98137 %98135
-     %163184 = OpPhi %v4float %98131 %98127 %101528 %98135
-     %163183 = OpPhi %v4float %98131 %98127 %101529 %98135
-      %89693 = OpLoad %uint %83860
-      %89694 = OpBitwiseAnd %uint %89693 %uint_16384
-      %89695 = OpUGreaterThan %bool %89694 %uint_0
-               OpSelectionMerge %98164 None
-               OpSwitch %uint_0 %98148
-      %98148 = OpLabel
-               OpSelectionMerge %98163 None
-               OpBranchConditional %89695 %98150 %98158
-      %98158 = OpLabel
-      %98160 = OpISub %uint %163186 %int_1
-      %98161 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %98160
-      %98162 = OpLoad %_arr_v4float_uint_2 %98161
-     %101519 = OpCompositeExtract %v4float %98162 0
-     %101520 = OpCompositeExtract %v4float %98162 1
-               OpBranch %98164
-      %98150 = OpLabel
-      %98152 = OpIAdd %uint %163187 %int_1
-      %98153 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %163187
-      %98154 = OpLoad %v4float %98153
-               OpBranch %98164
-      %98163 = OpLabel
-               OpUnreachable
-      %98164 = OpLabel
-     %243357 = OpPhi %uint %98152 %98150 %163187 %98158
-     %163192 = OpPhi %uint %163186 %98150 %98160 %98158
-     %163189 = OpPhi %v4float %98154 %98150 %101519 %98158
-     %163188 = OpPhi %v4float %98154 %98150 %101520 %98158
-      %89701 = OpExtInst %v4float %1 FMax %163184 %163189
-      %89707 = OpExtInst %v4float %1 FMax %163183 %163188
-     %104987 = OpCompositeConstruct %_arr_v4float_uint_2 %89701 %89707
-      %98168 = OpIAdd %uint %163192 %int_1
-      %98170 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163192
-               OpStore %98170 %104987
-               OpBranch %92278
-      %89657 = OpLabel
-      %89660 = OpLoad %uint %83860
-      %89661 = OpBitwiseAnd %uint %89660 %uint_32768
-      %89662 = OpUGreaterThan %bool %89661 %uint_0
-               OpSelectionMerge %98090 None
-               OpSwitch %uint_0 %98074
-      %98074 = OpLabel
-               OpSelectionMerge %98089 None
-               OpBranchConditional %89662 %98076 %98084
-      %98084 = OpLabel
-      %98086 = OpISub %uint %158811 %int_1
-      %98087 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %98086
-      %98088 = OpLoad %_arr_v4float_uint_2 %98087
-     %101546 = OpCompositeExtract %v4float %98088 0
-     %101547 = OpCompositeExtract %v4float %98088 1
-               OpBranch %98090
-      %98076 = OpLabel
-      %98078 = OpIAdd %uint %158837 %int_1
-      %98079 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %98080 = OpLoad %v4float %98079
-               OpBranch %98090
-      %98089 = OpLabel
-               OpUnreachable
-      %98090 = OpLabel
-     %163197 = OpPhi %uint %98078 %98076 %158837 %98084
-     %163196 = OpPhi %uint %158811 %98076 %98086 %98084
-     %163194 = OpPhi %v4float %98080 %98076 %101546 %98084
-     %163193 = OpPhi %v4float %98080 %98076 %101547 %98084
-      %89666 = OpLoad %uint %83860
-      %89667 = OpBitwiseAnd %uint %89666 %uint_16384
-      %89668 = OpUGreaterThan %bool %89667 %uint_0
-               OpSelectionMerge %98113 None
-               OpSwitch %uint_0 %98097
-      %98097 = OpLabel
-               OpSelectionMerge %98112 None
-               OpBranchConditional %89668 %98099 %98107
-      %98107 = OpLabel
-      %98109 = OpISub %uint %163196 %int_1
-      %98110 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %98109
-      %98111 = OpLoad %_arr_v4float_uint_2 %98110
-     %101537 = OpCompositeExtract %v4float %98111 0
-     %101538 = OpCompositeExtract %v4float %98111 1
-               OpBranch %98113
-      %98099 = OpLabel
-      %98101 = OpIAdd %uint %163197 %int_1
-      %98102 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %163197
-      %98103 = OpLoad %v4float %98102
-               OpBranch %98113
-      %98112 = OpLabel
-               OpUnreachable
-      %98113 = OpLabel
-     %243356 = OpPhi %uint %98101 %98099 %163197 %98107
-     %163202 = OpPhi %uint %163196 %98099 %98109 %98107
-     %163199 = OpPhi %v4float %98103 %98099 %101537 %98107
-     %163198 = OpPhi %v4float %98103 %98099 %101538 %98107
-      %89674 = OpExtInst %v4float %1 FMin %163194 %163199
-      %89680 = OpExtInst %v4float %1 FMin %163193 %163198
-     %104976 = OpCompositeConstruct %_arr_v4float_uint_2 %89674 %89680
-      %98117 = OpIAdd %uint %163202 %int_1
-      %98119 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163202
-               OpStore %98119 %104976
-               OpBranch %92278
-      %89628 = OpLabel
-      %89631 = OpLoad %uint %83860
-      %89632 = OpBitwiseAnd %uint %89631 %uint_32768
-      %89633 = OpUGreaterThan %bool %89632 %uint_0
-               OpSelectionMerge %98062 None
-               OpSwitch %uint_0 %98046
-      %98046 = OpLabel
-               OpSelectionMerge %98061 None
-               OpBranchConditional %89633 %98048 %98056
-      %98056 = OpLabel
-      %98058 = OpISub %uint %158811 %int_1
-      %98059 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %98058
-      %98060 = OpLoad %_arr_v4float_uint_2 %98059
-     %101555 = OpCompositeExtract %v4float %98060 0
-     %101556 = OpCompositeExtract %v4float %98060 1
-               OpBranch %98062
-      %98048 = OpLabel
-      %98050 = OpIAdd %uint %158837 %int_1
-      %98051 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %98052 = OpLoad %v4float %98051
-               OpBranch %98062
-      %98061 = OpLabel
-               OpUnreachable
-      %98062 = OpLabel
-     %243355 = OpPhi %uint %98050 %98048 %158837 %98056
-     %163205 = OpPhi %uint %158811 %98048 %98058 %98056
-     %163204 = OpPhi %v4float %98052 %98048 %101555 %98056
-     %163203 = OpPhi %v4float %98052 %98048 %101556 %98056
-      %89637 = OpExtInst %v4float %1 Trunc %163204
-      %89641 = OpExtInst %v4float %1 Trunc %163203
-      %89647 = OpExtInst %v4float %1 FMin %89637 %89641
-      %89653 = OpExtInst %v4float %1 FMax %89637 %89641
-     %104967 = OpCompositeConstruct %_arr_v4float_uint_2 %89647 %89653
-      %98066 = OpIAdd %uint %163205 %int_1
-      %98068 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163205
-               OpStore %98068 %104967
-               OpBranch %92278
-      %89599 = OpLabel
-      %89602 = OpLoad %uint %83860
-      %89603 = OpBitwiseAnd %uint %89602 %uint_32768
-      %89604 = OpUGreaterThan %bool %89603 %uint_0
-               OpSelectionMerge %98034 None
-               OpSwitch %uint_0 %98018
-      %98018 = OpLabel
-               OpSelectionMerge %98033 None
-               OpBranchConditional %89604 %98020 %98028
-      %98028 = OpLabel
-      %98030 = OpISub %uint %158811 %int_1
-      %98031 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %98030
-      %98032 = OpLoad %_arr_v4float_uint_2 %98031
-     %101564 = OpCompositeExtract %v4float %98032 0
-     %101565 = OpCompositeExtract %v4float %98032 1
-               OpBranch %98034
-      %98020 = OpLabel
-      %98022 = OpIAdd %uint %158837 %int_1
-      %98023 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %98024 = OpLoad %v4float %98023
-               OpBranch %98034
-      %98033 = OpLabel
-               OpUnreachable
-      %98034 = OpLabel
-     %243354 = OpPhi %uint %98022 %98020 %158837 %98028
-     %163208 = OpPhi %uint %158811 %98020 %98030 %98028
-     %163207 = OpPhi %v4float %98024 %98020 %101564 %98028
-     %163206 = OpPhi %v4float %98024 %98020 %101565 %98028
-      %89608 = OpExtInst %v4float %1 Round %163207
-      %89612 = OpExtInst %v4float %1 Round %163206
-      %89618 = OpExtInst %v4float %1 FMin %89608 %89612
-      %89624 = OpExtInst %v4float %1 FMax %89608 %89612
-     %104958 = OpCompositeConstruct %_arr_v4float_uint_2 %89618 %89624
-      %98038 = OpIAdd %uint %163208 %int_1
-      %98040 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163208
-               OpStore %98040 %104958
-               OpBranch %92278
-      %89570 = OpLabel
-      %89573 = OpLoad %uint %83860
-      %89574 = OpBitwiseAnd %uint %89573 %uint_32768
-      %89575 = OpUGreaterThan %bool %89574 %uint_0
-               OpSelectionMerge %98006 None
-               OpSwitch %uint_0 %97990
-      %97990 = OpLabel
-               OpSelectionMerge %98005 None
-               OpBranchConditional %89575 %97992 %98000
-      %98000 = OpLabel
-      %98002 = OpISub %uint %158811 %int_1
-      %98003 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %98002
-      %98004 = OpLoad %_arr_v4float_uint_2 %98003
-     %101573 = OpCompositeExtract %v4float %98004 0
-     %101574 = OpCompositeExtract %v4float %98004 1
-               OpBranch %98006
-      %97992 = OpLabel
-      %97994 = OpIAdd %uint %158837 %int_1
-      %97995 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97996 = OpLoad %v4float %97995
-               OpBranch %98006
-      %98005 = OpLabel
-               OpUnreachable
-      %98006 = OpLabel
-     %243353 = OpPhi %uint %97994 %97992 %158837 %98000
-     %163211 = OpPhi %uint %158811 %97992 %98002 %98000
-     %163210 = OpPhi %v4float %97996 %97992 %101573 %98000
-     %163209 = OpPhi %v4float %97996 %97992 %101574 %98000
-      %89579 = OpExtInst %v4float %1 Tanh %163210
-      %89583 = OpExtInst %v4float %1 Tanh %163209
-      %89589 = OpExtInst %v4float %1 FMin %89579 %89583
-      %89595 = OpExtInst %v4float %1 FMax %89579 %89583
-     %104949 = OpCompositeConstruct %_arr_v4float_uint_2 %89589 %89595
-      %98010 = OpIAdd %uint %163211 %int_1
-      %98012 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163211
-               OpStore %98012 %104949
-               OpBranch %92278
-      %89541 = OpLabel
-      %89544 = OpLoad %uint %83860
-      %89545 = OpBitwiseAnd %uint %89544 %uint_32768
-      %89546 = OpUGreaterThan %bool %89545 %uint_0
-               OpSelectionMerge %97978 None
-               OpSwitch %uint_0 %97962
-      %97962 = OpLabel
-               OpSelectionMerge %97977 None
-               OpBranchConditional %89546 %97964 %97972
-      %97972 = OpLabel
-      %97974 = OpISub %uint %158811 %int_1
-      %97975 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97974
-      %97976 = OpLoad %_arr_v4float_uint_2 %97975
-     %101582 = OpCompositeExtract %v4float %97976 0
-     %101583 = OpCompositeExtract %v4float %97976 1
-               OpBranch %97978
-      %97964 = OpLabel
-      %97966 = OpIAdd %uint %158837 %int_1
-      %97967 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97968 = OpLoad %v4float %97967
-               OpBranch %97978
-      %97977 = OpLabel
-               OpUnreachable
-      %97978 = OpLabel
-     %243352 = OpPhi %uint %97966 %97964 %158837 %97972
-     %163214 = OpPhi %uint %158811 %97964 %97974 %97972
-     %163213 = OpPhi %v4float %97968 %97964 %101582 %97972
-     %163212 = OpPhi %v4float %97968 %97964 %101583 %97972
-      %89550 = OpExtInst %v4float %1 Sinh %163213
-      %89554 = OpExtInst %v4float %1 Sinh %163212
-      %89560 = OpExtInst %v4float %1 FMin %89550 %89554
-      %89566 = OpExtInst %v4float %1 FMax %89550 %89554
-     %104940 = OpCompositeConstruct %_arr_v4float_uint_2 %89560 %89566
-      %97982 = OpIAdd %uint %163214 %int_1
-      %97984 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163214
-               OpStore %97984 %104940
-               OpBranch %92278
-      %89512 = OpLabel
-      %89515 = OpLoad %uint %83860
-      %89516 = OpBitwiseAnd %uint %89515 %uint_32768
-      %89517 = OpUGreaterThan %bool %89516 %uint_0
-               OpSelectionMerge %97950 None
-               OpSwitch %uint_0 %97934
-      %97934 = OpLabel
-               OpSelectionMerge %97949 None
-               OpBranchConditional %89517 %97936 %97944
-      %97944 = OpLabel
-      %97946 = OpISub %uint %158811 %int_1
-      %97947 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97946
-      %97948 = OpLoad %_arr_v4float_uint_2 %97947
-     %101591 = OpCompositeExtract %v4float %97948 0
-     %101592 = OpCompositeExtract %v4float %97948 1
-               OpBranch %97950
-      %97936 = OpLabel
-      %97938 = OpIAdd %uint %158837 %int_1
-      %97939 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97940 = OpLoad %v4float %97939
-               OpBranch %97950
-      %97949 = OpLabel
-               OpUnreachable
-      %97950 = OpLabel
-     %243351 = OpPhi %uint %97938 %97936 %158837 %97944
-     %163217 = OpPhi %uint %158811 %97936 %97946 %97944
-     %163216 = OpPhi %v4float %97940 %97936 %101591 %97944
-     %163215 = OpPhi %v4float %97940 %97936 %101592 %97944
-      %89521 = OpExtInst %v4float %1 Cosh %163216
-      %89525 = OpExtInst %v4float %1 Cosh %163215
-      %89531 = OpExtInst %v4float %1 FMin %89521 %89525
-      %89537 = OpExtInst %v4float %1 FMax %89521 %89525
-     %104931 = OpCompositeConstruct %_arr_v4float_uint_2 %89531 %89537
-      %97954 = OpIAdd %uint %163217 %int_1
-      %97956 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163217
-               OpStore %97956 %104931
-               OpBranch %92278
-      %89483 = OpLabel
-      %89486 = OpLoad %uint %83860
-      %89487 = OpBitwiseAnd %uint %89486 %uint_32768
-      %89488 = OpUGreaterThan %bool %89487 %uint_0
-               OpSelectionMerge %97922 None
-               OpSwitch %uint_0 %97906
-      %97906 = OpLabel
-               OpSelectionMerge %97921 None
-               OpBranchConditional %89488 %97908 %97916
-      %97916 = OpLabel
-      %97918 = OpISub %uint %158811 %int_1
-      %97919 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97918
-      %97920 = OpLoad %_arr_v4float_uint_2 %97919
-     %101600 = OpCompositeExtract %v4float %97920 0
-     %101601 = OpCompositeExtract %v4float %97920 1
-               OpBranch %97922
-      %97908 = OpLabel
-      %97910 = OpIAdd %uint %158837 %int_1
-      %97911 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97912 = OpLoad %v4float %97911
-               OpBranch %97922
-      %97921 = OpLabel
-               OpUnreachable
-      %97922 = OpLabel
-     %243350 = OpPhi %uint %97910 %97908 %158837 %97916
-     %163220 = OpPhi %uint %158811 %97908 %97918 %97916
-     %163219 = OpPhi %v4float %97912 %97908 %101600 %97916
-     %163218 = OpPhi %v4float %97912 %97908 %101601 %97916
-      %89492 = OpExtInst %v4float %1 Atanh %163219
-      %89496 = OpExtInst %v4float %1 Atanh %163218
-      %89502 = OpExtInst %v4float %1 FMin %89492 %89496
-      %89508 = OpExtInst %v4float %1 FMax %89492 %89496
-     %104922 = OpCompositeConstruct %_arr_v4float_uint_2 %89502 %89508
-      %97926 = OpIAdd %uint %163220 %int_1
-      %97928 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163220
-               OpStore %97928 %104922
-               OpBranch %92278
-      %89454 = OpLabel
-      %89457 = OpLoad %uint %83860
-      %89458 = OpBitwiseAnd %uint %89457 %uint_32768
-      %89459 = OpUGreaterThan %bool %89458 %uint_0
-               OpSelectionMerge %97894 None
-               OpSwitch %uint_0 %97878
-      %97878 = OpLabel
-               OpSelectionMerge %97893 None
-               OpBranchConditional %89459 %97880 %97888
-      %97888 = OpLabel
-      %97890 = OpISub %uint %158811 %int_1
-      %97891 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97890
-      %97892 = OpLoad %_arr_v4float_uint_2 %97891
-     %101609 = OpCompositeExtract %v4float %97892 0
-     %101610 = OpCompositeExtract %v4float %97892 1
-               OpBranch %97894
-      %97880 = OpLabel
-      %97882 = OpIAdd %uint %158837 %int_1
-      %97883 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97884 = OpLoad %v4float %97883
-               OpBranch %97894
-      %97893 = OpLabel
-               OpUnreachable
-      %97894 = OpLabel
-     %243349 = OpPhi %uint %97882 %97880 %158837 %97888
-     %163223 = OpPhi %uint %158811 %97880 %97890 %97888
-     %163222 = OpPhi %v4float %97884 %97880 %101609 %97888
-     %163221 = OpPhi %v4float %97884 %97880 %101610 %97888
-      %89463 = OpExtInst %v4float %1 Asinh %163222
-      %89467 = OpExtInst %v4float %1 Asinh %163221
-      %89473 = OpExtInst %v4float %1 FMin %89463 %89467
-      %89479 = OpExtInst %v4float %1 FMax %89463 %89467
-     %104913 = OpCompositeConstruct %_arr_v4float_uint_2 %89473 %89479
-      %97898 = OpIAdd %uint %163223 %int_1
-      %97900 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163223
-               OpStore %97900 %104913
-               OpBranch %92278
-      %89425 = OpLabel
-      %89428 = OpLoad %uint %83860
-      %89429 = OpBitwiseAnd %uint %89428 %uint_32768
-      %89430 = OpUGreaterThan %bool %89429 %uint_0
-               OpSelectionMerge %97866 None
-               OpSwitch %uint_0 %97850
-      %97850 = OpLabel
-               OpSelectionMerge %97865 None
-               OpBranchConditional %89430 %97852 %97860
-      %97860 = OpLabel
-      %97862 = OpISub %uint %158811 %int_1
-      %97863 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97862
-      %97864 = OpLoad %_arr_v4float_uint_2 %97863
-     %101618 = OpCompositeExtract %v4float %97864 0
-     %101619 = OpCompositeExtract %v4float %97864 1
-               OpBranch %97866
-      %97852 = OpLabel
-      %97854 = OpIAdd %uint %158837 %int_1
-      %97855 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97856 = OpLoad %v4float %97855
-               OpBranch %97866
-      %97865 = OpLabel
-               OpUnreachable
-      %97866 = OpLabel
-     %243348 = OpPhi %uint %97854 %97852 %158837 %97860
-     %163226 = OpPhi %uint %158811 %97852 %97862 %97860
-     %163225 = OpPhi %v4float %97856 %97852 %101618 %97860
-     %163224 = OpPhi %v4float %97856 %97852 %101619 %97860
-      %89434 = OpExtInst %v4float %1 Acosh %163225
-      %89438 = OpExtInst %v4float %1 Acosh %163224
-      %89444 = OpExtInst %v4float %1 FMin %89434 %89438
-      %89450 = OpExtInst %v4float %1 FMax %89434 %89438
-     %104904 = OpCompositeConstruct %_arr_v4float_uint_2 %89444 %89450
-      %97870 = OpIAdd %uint %163226 %int_1
-      %97872 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163226
-               OpStore %97872 %104904
-               OpBranch %92278
-      %89396 = OpLabel
-      %89399 = OpLoad %uint %83860
-      %89400 = OpBitwiseAnd %uint %89399 %uint_32768
-      %89401 = OpUGreaterThan %bool %89400 %uint_0
-               OpSelectionMerge %97838 None
-               OpSwitch %uint_0 %97822
-      %97822 = OpLabel
-               OpSelectionMerge %97837 None
-               OpBranchConditional %89401 %97824 %97832
-      %97832 = OpLabel
-      %97834 = OpISub %uint %158811 %int_1
-      %97835 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97834
-      %97836 = OpLoad %_arr_v4float_uint_2 %97835
-     %101627 = OpCompositeExtract %v4float %97836 0
-     %101628 = OpCompositeExtract %v4float %97836 1
-               OpBranch %97838
-      %97824 = OpLabel
-      %97826 = OpIAdd %uint %158837 %int_1
-      %97827 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97828 = OpLoad %v4float %97827
-               OpBranch %97838
-      %97837 = OpLabel
-               OpUnreachable
-      %97838 = OpLabel
-     %243347 = OpPhi %uint %97826 %97824 %158837 %97832
-     %163229 = OpPhi %uint %158811 %97824 %97834 %97832
-     %163228 = OpPhi %v4float %97828 %97824 %101627 %97832
-     %163227 = OpPhi %v4float %97828 %97824 %101628 %97832
-      %89405 = OpExtInst %v4float %1 Atan %163228
-      %89409 = OpExtInst %v4float %1 Atan %163227
-      %89415 = OpExtInst %v4float %1 FMin %89405 %89409
-      %89421 = OpExtInst %v4float %1 FMax %89405 %89409
-     %104895 = OpCompositeConstruct %_arr_v4float_uint_2 %89415 %89421
-      %97842 = OpIAdd %uint %163229 %int_1
-      %97844 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163229
-               OpStore %97844 %104895
-               OpBranch %92278
-      %89367 = OpLabel
-      %89370 = OpLoad %uint %83860
-      %89371 = OpBitwiseAnd %uint %89370 %uint_32768
-      %89372 = OpUGreaterThan %bool %89371 %uint_0
-               OpSelectionMerge %97810 None
-               OpSwitch %uint_0 %97794
-      %97794 = OpLabel
-               OpSelectionMerge %97809 None
-               OpBranchConditional %89372 %97796 %97804
-      %97804 = OpLabel
-      %97806 = OpISub %uint %158811 %int_1
-      %97807 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97806
-      %97808 = OpLoad %_arr_v4float_uint_2 %97807
-     %101636 = OpCompositeExtract %v4float %97808 0
-     %101637 = OpCompositeExtract %v4float %97808 1
-               OpBranch %97810
-      %97796 = OpLabel
-      %97798 = OpIAdd %uint %158837 %int_1
-      %97799 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97800 = OpLoad %v4float %97799
-               OpBranch %97810
-      %97809 = OpLabel
-               OpUnreachable
-      %97810 = OpLabel
-     %243346 = OpPhi %uint %97798 %97796 %158837 %97804
-     %163232 = OpPhi %uint %158811 %97796 %97806 %97804
-     %163231 = OpPhi %v4float %97800 %97796 %101636 %97804
-     %163230 = OpPhi %v4float %97800 %97796 %101637 %97804
-      %89376 = OpExtInst %v4float %1 Acos %163231
-      %89380 = OpExtInst %v4float %1 Acos %163230
-      %89386 = OpExtInst %v4float %1 FMin %89376 %89380
-      %89392 = OpExtInst %v4float %1 FMax %89376 %89380
-     %104886 = OpCompositeConstruct %_arr_v4float_uint_2 %89386 %89392
-      %97814 = OpIAdd %uint %163232 %int_1
-      %97816 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163232
-               OpStore %97816 %104886
-               OpBranch %92278
-      %89338 = OpLabel
-      %89341 = OpLoad %uint %83860
-      %89342 = OpBitwiseAnd %uint %89341 %uint_32768
-      %89343 = OpUGreaterThan %bool %89342 %uint_0
-               OpSelectionMerge %97782 None
-               OpSwitch %uint_0 %97766
-      %97766 = OpLabel
-               OpSelectionMerge %97781 None
-               OpBranchConditional %89343 %97768 %97776
-      %97776 = OpLabel
-      %97778 = OpISub %uint %158811 %int_1
-      %97779 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97778
-      %97780 = OpLoad %_arr_v4float_uint_2 %97779
-     %101645 = OpCompositeExtract %v4float %97780 0
-     %101646 = OpCompositeExtract %v4float %97780 1
-               OpBranch %97782
-      %97768 = OpLabel
-      %97770 = OpIAdd %uint %158837 %int_1
-      %97771 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97772 = OpLoad %v4float %97771
-               OpBranch %97782
-      %97781 = OpLabel
-               OpUnreachable
-      %97782 = OpLabel
-     %243345 = OpPhi %uint %97770 %97768 %158837 %97776
-     %163235 = OpPhi %uint %158811 %97768 %97778 %97776
-     %163234 = OpPhi %v4float %97772 %97768 %101645 %97776
-     %163233 = OpPhi %v4float %97772 %97768 %101646 %97776
-      %89347 = OpExtInst %v4float %1 Asin %163234
-      %89351 = OpExtInst %v4float %1 Asin %163233
-      %89357 = OpExtInst %v4float %1 FMin %89347 %89351
-      %89363 = OpExtInst %v4float %1 FMax %89347 %89351
-     %104877 = OpCompositeConstruct %_arr_v4float_uint_2 %89357 %89363
-      %97786 = OpIAdd %uint %163235 %int_1
-      %97788 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163235
-               OpStore %97788 %104877
-               OpBranch %92278
-      %89309 = OpLabel
-      %89312 = OpLoad %uint %83860
-      %89313 = OpBitwiseAnd %uint %89312 %uint_32768
-      %89314 = OpUGreaterThan %bool %89313 %uint_0
-               OpSelectionMerge %97754 None
-               OpSwitch %uint_0 %97738
-      %97738 = OpLabel
-               OpSelectionMerge %97753 None
-               OpBranchConditional %89314 %97740 %97748
-      %97748 = OpLabel
-      %97750 = OpISub %uint %158811 %int_1
-      %97751 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97750
-      %97752 = OpLoad %_arr_v4float_uint_2 %97751
-     %101654 = OpCompositeExtract %v4float %97752 0
-     %101655 = OpCompositeExtract %v4float %97752 1
-               OpBranch %97754
-      %97740 = OpLabel
-      %97742 = OpIAdd %uint %158837 %int_1
-      %97743 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97744 = OpLoad %v4float %97743
-               OpBranch %97754
-      %97753 = OpLabel
-               OpUnreachable
-      %97754 = OpLabel
-     %243344 = OpPhi %uint %97742 %97740 %158837 %97748
-     %163238 = OpPhi %uint %158811 %97740 %97750 %97748
-     %163237 = OpPhi %v4float %97744 %97740 %101654 %97748
-     %163236 = OpPhi %v4float %97744 %97740 %101655 %97748
-      %89318 = OpExtInst %v4float %1 Tan %163237
-      %89322 = OpExtInst %v4float %1 Tan %163236
-      %89328 = OpExtInst %v4float %1 FMin %89318 %89322
-      %89334 = OpExtInst %v4float %1 FMax %89318 %89322
-     %104868 = OpCompositeConstruct %_arr_v4float_uint_2 %89328 %89334
-      %97758 = OpIAdd %uint %163238 %int_1
-      %97760 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163238
-               OpStore %97760 %104868
-               OpBranch %92278
-      %89280 = OpLabel
-      %89283 = OpLoad %uint %83860
-      %89284 = OpBitwiseAnd %uint %89283 %uint_32768
-      %89285 = OpUGreaterThan %bool %89284 %uint_0
-               OpSelectionMerge %97726 None
-               OpSwitch %uint_0 %97710
-      %97710 = OpLabel
-               OpSelectionMerge %97725 None
-               OpBranchConditional %89285 %97712 %97720
-      %97720 = OpLabel
-      %97722 = OpISub %uint %158811 %int_1
-      %97723 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97722
-      %97724 = OpLoad %_arr_v4float_uint_2 %97723
-     %101663 = OpCompositeExtract %v4float %97724 0
-     %101664 = OpCompositeExtract %v4float %97724 1
-               OpBranch %97726
-      %97712 = OpLabel
-      %97714 = OpIAdd %uint %158837 %int_1
-      %97715 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97716 = OpLoad %v4float %97715
-               OpBranch %97726
-      %97725 = OpLabel
-               OpUnreachable
-      %97726 = OpLabel
-     %243343 = OpPhi %uint %97714 %97712 %158837 %97720
-     %163241 = OpPhi %uint %158811 %97712 %97722 %97720
-     %163240 = OpPhi %v4float %97716 %97712 %101663 %97720
-     %163239 = OpPhi %v4float %97716 %97712 %101664 %97720
-      %89289 = OpExtInst %v4float %1 Cos %163240
-      %89293 = OpExtInst %v4float %1 Cos %163239
-      %89299 = OpExtInst %v4float %1 FMin %89289 %89293
-      %89305 = OpExtInst %v4float %1 FMax %89289 %89293
-     %104859 = OpCompositeConstruct %_arr_v4float_uint_2 %89299 %89305
-      %97730 = OpIAdd %uint %163241 %int_1
-      %97732 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163241
-               OpStore %97732 %104859
-               OpBranch %92278
-      %89251 = OpLabel
-      %89254 = OpLoad %uint %83860
-      %89255 = OpBitwiseAnd %uint %89254 %uint_32768
-      %89256 = OpUGreaterThan %bool %89255 %uint_0
-               OpSelectionMerge %97698 None
-               OpSwitch %uint_0 %97682
-      %97682 = OpLabel
-               OpSelectionMerge %97697 None
-               OpBranchConditional %89256 %97684 %97692
-      %97692 = OpLabel
-      %97694 = OpISub %uint %158811 %int_1
-      %97695 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97694
-      %97696 = OpLoad %_arr_v4float_uint_2 %97695
-     %101672 = OpCompositeExtract %v4float %97696 0
-     %101673 = OpCompositeExtract %v4float %97696 1
-               OpBranch %97698
-      %97684 = OpLabel
-      %97686 = OpIAdd %uint %158837 %int_1
-      %97687 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97688 = OpLoad %v4float %97687
-               OpBranch %97698
-      %97697 = OpLabel
-               OpUnreachable
-      %97698 = OpLabel
-     %243342 = OpPhi %uint %97686 %97684 %158837 %97692
-     %163244 = OpPhi %uint %158811 %97684 %97694 %97692
-     %163243 = OpPhi %v4float %97688 %97684 %101672 %97692
-     %163242 = OpPhi %v4float %97688 %97684 %101673 %97692
-      %89260 = OpExtInst %v4float %1 Sin %163243
-      %89264 = OpExtInst %v4float %1 Sin %163242
-      %89270 = OpExtInst %v4float %1 FMin %89260 %89264
-      %89276 = OpExtInst %v4float %1 FMax %89260 %89264
-     %104850 = OpCompositeConstruct %_arr_v4float_uint_2 %89270 %89276
-      %97702 = OpIAdd %uint %163244 %int_1
-      %97704 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163244
-               OpStore %97704 %104850
-               OpBranch %92278
-      %89222 = OpLabel
-      %89225 = OpLoad %uint %83860
-      %89226 = OpBitwiseAnd %uint %89225 %uint_32768
-      %89227 = OpUGreaterThan %bool %89226 %uint_0
-               OpSelectionMerge %97670 None
-               OpSwitch %uint_0 %97654
-      %97654 = OpLabel
-               OpSelectionMerge %97669 None
-               OpBranchConditional %89227 %97656 %97664
-      %97664 = OpLabel
-      %97666 = OpISub %uint %158811 %int_1
-      %97667 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97666
-      %97668 = OpLoad %_arr_v4float_uint_2 %97667
-     %101681 = OpCompositeExtract %v4float %97668 0
-     %101682 = OpCompositeExtract %v4float %97668 1
-               OpBranch %97670
-      %97656 = OpLabel
-      %97658 = OpIAdd %uint %158837 %int_1
-      %97659 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97660 = OpLoad %v4float %97659
-               OpBranch %97670
-      %97669 = OpLabel
-               OpUnreachable
-      %97670 = OpLabel
-     %243341 = OpPhi %uint %97658 %97656 %158837 %97664
-     %163247 = OpPhi %uint %158811 %97656 %97666 %97664
-     %163246 = OpPhi %v4float %97660 %97656 %101681 %97664
-     %163245 = OpPhi %v4float %97660 %97656 %101682 %97664
-      %89231 = OpExtInst %v4float %1 Log2 %163246
-      %89235 = OpExtInst %v4float %1 Log2 %163245
-      %89241 = OpExtInst %v4float %1 FMin %89231 %89235
-      %89247 = OpExtInst %v4float %1 FMax %89231 %89235
-     %104841 = OpCompositeConstruct %_arr_v4float_uint_2 %89241 %89247
-      %97674 = OpIAdd %uint %163247 %int_1
-      %97676 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163247
-               OpStore %97676 %104841
-               OpBranch %92278
-      %89193 = OpLabel
-      %89196 = OpLoad %uint %83860
-      %89197 = OpBitwiseAnd %uint %89196 %uint_32768
-      %89198 = OpUGreaterThan %bool %89197 %uint_0
-               OpSelectionMerge %97642 None
-               OpSwitch %uint_0 %97626
-      %97626 = OpLabel
-               OpSelectionMerge %97641 None
-               OpBranchConditional %89198 %97628 %97636
-      %97636 = OpLabel
-      %97638 = OpISub %uint %158811 %int_1
-      %97639 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97638
-      %97640 = OpLoad %_arr_v4float_uint_2 %97639
-     %101690 = OpCompositeExtract %v4float %97640 0
-     %101691 = OpCompositeExtract %v4float %97640 1
-               OpBranch %97642
-      %97628 = OpLabel
-      %97630 = OpIAdd %uint %158837 %int_1
-      %97631 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97632 = OpLoad %v4float %97631
-               OpBranch %97642
-      %97641 = OpLabel
-               OpUnreachable
-      %97642 = OpLabel
-     %243340 = OpPhi %uint %97630 %97628 %158837 %97636
-     %163250 = OpPhi %uint %158811 %97628 %97638 %97636
-     %163249 = OpPhi %v4float %97632 %97628 %101690 %97636
-     %163248 = OpPhi %v4float %97632 %97628 %101691 %97636
-      %89202 = OpExtInst %v4float %1 Log %163249
-      %89206 = OpExtInst %v4float %1 Log %163248
-      %89212 = OpExtInst %v4float %1 FMin %89202 %89206
-      %89218 = OpExtInst %v4float %1 FMax %89202 %89206
-     %104832 = OpCompositeConstruct %_arr_v4float_uint_2 %89212 %89218
-      %97646 = OpIAdd %uint %163250 %int_1
-      %97648 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163250
-               OpStore %97648 %104832
-               OpBranch %92278
-      %89164 = OpLabel
-      %89167 = OpLoad %uint %83860
-      %89168 = OpBitwiseAnd %uint %89167 %uint_32768
-      %89169 = OpUGreaterThan %bool %89168 %uint_0
-               OpSelectionMerge %97614 None
-               OpSwitch %uint_0 %97598
-      %97598 = OpLabel
-               OpSelectionMerge %97613 None
-               OpBranchConditional %89169 %97600 %97608
-      %97608 = OpLabel
-      %97610 = OpISub %uint %158811 %int_1
-      %97611 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97610
-      %97612 = OpLoad %_arr_v4float_uint_2 %97611
-     %101699 = OpCompositeExtract %v4float %97612 0
-     %101700 = OpCompositeExtract %v4float %97612 1
-               OpBranch %97614
-      %97600 = OpLabel
-      %97602 = OpIAdd %uint %158837 %int_1
-      %97603 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97604 = OpLoad %v4float %97603
-               OpBranch %97614
-      %97613 = OpLabel
-               OpUnreachable
-      %97614 = OpLabel
-     %243339 = OpPhi %uint %97602 %97600 %158837 %97608
-     %163253 = OpPhi %uint %158811 %97600 %97610 %97608
-     %163252 = OpPhi %v4float %97604 %97600 %101699 %97608
-     %163251 = OpPhi %v4float %97604 %97600 %101700 %97608
-      %89173 = OpExtInst %v4float %1 Exp2 %163252
-      %89177 = OpExtInst %v4float %1 Exp2 %163251
-      %89183 = OpExtInst %v4float %1 FMin %89173 %89177
-      %89189 = OpExtInst %v4float %1 FMax %89173 %89177
-     %104823 = OpCompositeConstruct %_arr_v4float_uint_2 %89183 %89189
-      %97618 = OpIAdd %uint %163253 %int_1
-      %97620 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163253
-               OpStore %97620 %104823
-               OpBranch %92278
-      %89135 = OpLabel
-      %89138 = OpLoad %uint %83860
-      %89139 = OpBitwiseAnd %uint %89138 %uint_32768
-      %89140 = OpUGreaterThan %bool %89139 %uint_0
-               OpSelectionMerge %97586 None
-               OpSwitch %uint_0 %97570
-      %97570 = OpLabel
-               OpSelectionMerge %97585 None
-               OpBranchConditional %89140 %97572 %97580
-      %97580 = OpLabel
-      %97582 = OpISub %uint %158811 %int_1
-      %97583 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97582
-      %97584 = OpLoad %_arr_v4float_uint_2 %97583
-     %101708 = OpCompositeExtract %v4float %97584 0
-     %101709 = OpCompositeExtract %v4float %97584 1
-               OpBranch %97586
-      %97572 = OpLabel
-      %97574 = OpIAdd %uint %158837 %int_1
-      %97575 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97576 = OpLoad %v4float %97575
-               OpBranch %97586
-      %97585 = OpLabel
-               OpUnreachable
-      %97586 = OpLabel
-     %243338 = OpPhi %uint %97574 %97572 %158837 %97580
-     %163256 = OpPhi %uint %158811 %97572 %97582 %97580
-     %163255 = OpPhi %v4float %97576 %97572 %101708 %97580
-     %163254 = OpPhi %v4float %97576 %97572 %101709 %97580
-      %89144 = OpExtInst %v4float %1 Exp %163255
-      %89148 = OpExtInst %v4float %1 Exp %163254
-      %89154 = OpExtInst %v4float %1 FMin %89144 %89148
-      %89160 = OpExtInst %v4float %1 FMax %89144 %89148
-     %104814 = OpCompositeConstruct %_arr_v4float_uint_2 %89154 %89160
-      %97590 = OpIAdd %uint %163256 %int_1
-      %97592 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163256
-               OpStore %97592 %104814
-               OpBranch %92278
-      %89106 = OpLabel
-      %89109 = OpLoad %uint %83860
-      %89110 = OpBitwiseAnd %uint %89109 %uint_32768
-      %89111 = OpUGreaterThan %bool %89110 %uint_0
-               OpSelectionMerge %97558 None
-               OpSwitch %uint_0 %97542
-      %97542 = OpLabel
-               OpSelectionMerge %97557 None
-               OpBranchConditional %89111 %97544 %97552
-      %97552 = OpLabel
-      %97554 = OpISub %uint %158811 %int_1
-      %97555 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97554
-      %97556 = OpLoad %_arr_v4float_uint_2 %97555
-     %101717 = OpCompositeExtract %v4float %97556 0
-     %101718 = OpCompositeExtract %v4float %97556 1
-               OpBranch %97558
-      %97544 = OpLabel
-      %97546 = OpIAdd %uint %158837 %int_1
-      %97547 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97548 = OpLoad %v4float %97547
-               OpBranch %97558
-      %97557 = OpLabel
-               OpUnreachable
-      %97558 = OpLabel
-     %243337 = OpPhi %uint %97546 %97544 %158837 %97552
-     %163259 = OpPhi %uint %158811 %97544 %97554 %97552
-     %163258 = OpPhi %v4float %97548 %97544 %101717 %97552
-     %163257 = OpPhi %v4float %97548 %97544 %101718 %97552
-      %89115 = OpExtInst %v4float %1 InverseSqrt %163258
-      %89119 = OpExtInst %v4float %1 InverseSqrt %163257
-      %89125 = OpExtInst %v4float %1 FMin %89115 %89119
-      %89131 = OpExtInst %v4float %1 FMax %89115 %89119
-     %104805 = OpCompositeConstruct %_arr_v4float_uint_2 %89125 %89131
-      %97562 = OpIAdd %uint %163259 %int_1
-      %97564 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163259
-               OpStore %97564 %104805
-               OpBranch %92278
-      %89077 = OpLabel
-      %89080 = OpLoad %uint %83860
-      %89081 = OpBitwiseAnd %uint %89080 %uint_32768
-      %89082 = OpUGreaterThan %bool %89081 %uint_0
-               OpSelectionMerge %97530 None
-               OpSwitch %uint_0 %97514
-      %97514 = OpLabel
-               OpSelectionMerge %97529 None
-               OpBranchConditional %89082 %97516 %97524
-      %97524 = OpLabel
-      %97526 = OpISub %uint %158811 %int_1
-      %97527 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97526
-      %97528 = OpLoad %_arr_v4float_uint_2 %97527
-     %101726 = OpCompositeExtract %v4float %97528 0
-     %101727 = OpCompositeExtract %v4float %97528 1
-               OpBranch %97530
-      %97516 = OpLabel
-      %97518 = OpIAdd %uint %158837 %int_1
-      %97519 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97520 = OpLoad %v4float %97519
-               OpBranch %97530
-      %97529 = OpLabel
-               OpUnreachable
-      %97530 = OpLabel
-     %243336 = OpPhi %uint %97518 %97516 %158837 %97524
-     %163262 = OpPhi %uint %158811 %97516 %97526 %97524
-     %163261 = OpPhi %v4float %97520 %97516 %101726 %97524
-     %163260 = OpPhi %v4float %97520 %97516 %101727 %97524
-      %89086 = OpExtInst %v4float %1 Sqrt %163261
-      %89090 = OpExtInst %v4float %1 Sqrt %163260
-      %89096 = OpExtInst %v4float %1 FMin %89086 %89090
-      %89102 = OpExtInst %v4float %1 FMax %89086 %89090
-     %104796 = OpCompositeConstruct %_arr_v4float_uint_2 %89096 %89102
-      %97534 = OpIAdd %uint %163262 %int_1
-      %97536 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163262
-               OpStore %97536 %104796
-               OpBranch %92278
-      %89048 = OpLabel
-      %89051 = OpLoad %uint %83860
-      %89052 = OpBitwiseAnd %uint %89051 %uint_32768
-      %89053 = OpUGreaterThan %bool %89052 %uint_0
-               OpSelectionMerge %97502 None
-               OpSwitch %uint_0 %97486
-      %97486 = OpLabel
-               OpSelectionMerge %97501 None
-               OpBranchConditional %89053 %97488 %97496
-      %97496 = OpLabel
-      %97498 = OpISub %uint %158811 %int_1
-      %97499 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97498
-      %97500 = OpLoad %_arr_v4float_uint_2 %97499
-     %101735 = OpCompositeExtract %v4float %97500 0
-     %101736 = OpCompositeExtract %v4float %97500 1
-               OpBranch %97502
-      %97488 = OpLabel
-      %97490 = OpIAdd %uint %158837 %int_1
-      %97491 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97492 = OpLoad %v4float %97491
-               OpBranch %97502
-      %97501 = OpLabel
-               OpUnreachable
-      %97502 = OpLabel
-     %243335 = OpPhi %uint %97490 %97488 %158837 %97496
-     %163265 = OpPhi %uint %158811 %97488 %97498 %97496
-     %163264 = OpPhi %v4float %97492 %97488 %101735 %97496
-     %163263 = OpPhi %v4float %97492 %97488 %101736 %97496
-      %89057 = OpExtInst %v4float %1 Fract %163264
-      %89061 = OpExtInst %v4float %1 Fract %163263
-      %89067 = OpExtInst %v4float %1 FMin %89057 %89061
-      %89073 = OpExtInst %v4float %1 FMax %89057 %89061
-     %104787 = OpCompositeConstruct %_arr_v4float_uint_2 %89067 %89073
-      %97506 = OpIAdd %uint %163265 %int_1
-      %97508 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163265
-               OpStore %97508 %104787
-               OpBranch %92278
-      %89019 = OpLabel
-      %89022 = OpLoad %uint %83860
-      %89023 = OpBitwiseAnd %uint %89022 %uint_32768
-      %89024 = OpUGreaterThan %bool %89023 %uint_0
-               OpSelectionMerge %97474 None
-               OpSwitch %uint_0 %97458
-      %97458 = OpLabel
-               OpSelectionMerge %97473 None
-               OpBranchConditional %89024 %97460 %97468
-      %97468 = OpLabel
-      %97470 = OpISub %uint %158811 %int_1
-      %97471 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97470
-      %97472 = OpLoad %_arr_v4float_uint_2 %97471
-     %101744 = OpCompositeExtract %v4float %97472 0
-     %101745 = OpCompositeExtract %v4float %97472 1
-               OpBranch %97474
-      %97460 = OpLabel
-      %97462 = OpIAdd %uint %158837 %int_1
-      %97463 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97464 = OpLoad %v4float %97463
-               OpBranch %97474
-      %97473 = OpLabel
-               OpUnreachable
-      %97474 = OpLabel
-     %243334 = OpPhi %uint %97462 %97460 %158837 %97468
-     %163268 = OpPhi %uint %158811 %97460 %97470 %97468
-     %163267 = OpPhi %v4float %97464 %97460 %101744 %97468
-     %163266 = OpPhi %v4float %97464 %97460 %101745 %97468
-      %89028 = OpExtInst %v4float %1 Ceil %163267
-      %89032 = OpExtInst %v4float %1 Ceil %163266
-      %89038 = OpExtInst %v4float %1 FMin %89028 %89032
-      %89044 = OpExtInst %v4float %1 FMax %89028 %89032
-     %104778 = OpCompositeConstruct %_arr_v4float_uint_2 %89038 %89044
-      %97478 = OpIAdd %uint %163268 %int_1
-      %97480 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163268
-               OpStore %97480 %104778
-               OpBranch %92278
-      %88990 = OpLabel
-      %88993 = OpLoad %uint %83860
-      %88994 = OpBitwiseAnd %uint %88993 %uint_32768
-      %88995 = OpUGreaterThan %bool %88994 %uint_0
-               OpSelectionMerge %97446 None
-               OpSwitch %uint_0 %97430
-      %97430 = OpLabel
-               OpSelectionMerge %97445 None
-               OpBranchConditional %88995 %97432 %97440
-      %97440 = OpLabel
-      %97442 = OpISub %uint %158811 %int_1
-      %97443 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97442
-      %97444 = OpLoad %_arr_v4float_uint_2 %97443
-     %101753 = OpCompositeExtract %v4float %97444 0
-     %101754 = OpCompositeExtract %v4float %97444 1
-               OpBranch %97446
-      %97432 = OpLabel
-      %97434 = OpIAdd %uint %158837 %int_1
-      %97435 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97436 = OpLoad %v4float %97435
-               OpBranch %97446
-      %97445 = OpLabel
-               OpUnreachable
-      %97446 = OpLabel
-     %243333 = OpPhi %uint %97434 %97432 %158837 %97440
-     %163271 = OpPhi %uint %158811 %97432 %97442 %97440
-     %163270 = OpPhi %v4float %97436 %97432 %101753 %97440
-     %163269 = OpPhi %v4float %97436 %97432 %101754 %97440
-      %88999 = OpExtInst %v4float %1 Floor %163270
-      %89003 = OpExtInst %v4float %1 Floor %163269
-      %89009 = OpExtInst %v4float %1 FMin %88999 %89003
-      %89015 = OpExtInst %v4float %1 FMax %88999 %89003
-     %104769 = OpCompositeConstruct %_arr_v4float_uint_2 %89009 %89015
-      %97450 = OpIAdd %uint %163271 %int_1
-      %97452 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163271
-               OpStore %97452 %104769
-               OpBranch %92278
-      %88961 = OpLabel
-      %88964 = OpLoad %uint %83860
-      %88965 = OpBitwiseAnd %uint %88964 %uint_32768
-      %88966 = OpUGreaterThan %bool %88965 %uint_0
-               OpSelectionMerge %97418 None
-               OpSwitch %uint_0 %97402
-      %97402 = OpLabel
-               OpSelectionMerge %97417 None
-               OpBranchConditional %88966 %97404 %97412
-      %97412 = OpLabel
-      %97414 = OpISub %uint %158811 %int_1
-      %97415 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97414
-      %97416 = OpLoad %_arr_v4float_uint_2 %97415
-     %101762 = OpCompositeExtract %v4float %97416 0
-     %101763 = OpCompositeExtract %v4float %97416 1
-               OpBranch %97418
-      %97404 = OpLabel
-      %97406 = OpIAdd %uint %158837 %int_1
-      %97407 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97408 = OpLoad %v4float %97407
-               OpBranch %97418
-      %97417 = OpLabel
-               OpUnreachable
-      %97418 = OpLabel
-     %243332 = OpPhi %uint %97406 %97404 %158837 %97412
-     %163274 = OpPhi %uint %158811 %97404 %97414 %97412
-     %163273 = OpPhi %v4float %97408 %97404 %101762 %97412
-     %163272 = OpPhi %v4float %97408 %97404 %101763 %97412
-      %88970 = OpExtInst %v4float %1 FSign %163273
-      %88974 = OpExtInst %v4float %1 FSign %163272
-      %88980 = OpExtInst %v4float %1 FMin %88970 %88974
-      %88986 = OpExtInst %v4float %1 FMax %88970 %88974
-     %104760 = OpCompositeConstruct %_arr_v4float_uint_2 %88980 %88986
-      %97422 = OpIAdd %uint %163274 %int_1
-      %97424 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163274
-               OpStore %97424 %104760
-               OpBranch %92278
-      %88932 = OpLabel
-      %88935 = OpLoad %uint %83860
-      %88936 = OpBitwiseAnd %uint %88935 %uint_32768
-      %88937 = OpUGreaterThan %bool %88936 %uint_0
-               OpSelectionMerge %97390 None
-               OpSwitch %uint_0 %97374
-      %97374 = OpLabel
-               OpSelectionMerge %97389 None
-               OpBranchConditional %88937 %97376 %97384
-      %97384 = OpLabel
-      %97386 = OpISub %uint %158811 %int_1
-      %97387 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %97386
-      %97388 = OpLoad %_arr_v4float_uint_2 %97387
-     %101771 = OpCompositeExtract %v4float %97388 0
-     %101772 = OpCompositeExtract %v4float %97388 1
-               OpBranch %97390
-      %97376 = OpLabel
-      %97378 = OpIAdd %uint %158837 %int_1
-      %97379 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %97380 = OpLoad %v4float %97379
-               OpBranch %97390
-      %97389 = OpLabel
-               OpUnreachable
-      %97390 = OpLabel
-     %243331 = OpPhi %uint %97378 %97376 %158837 %97384
-     %163277 = OpPhi %uint %158811 %97376 %97386 %97384
-     %163276 = OpPhi %v4float %97380 %97376 %101771 %97384
-     %163275 = OpPhi %v4float %97380 %97376 %101772 %97384
-      %88941 = OpExtInst %v4float %1 FAbs %163276
-      %88945 = OpExtInst %v4float %1 FAbs %163275
-      %88951 = OpExtInst %v4float %1 FMin %88941 %88945
-      %88957 = OpExtInst %v4float %1 FMax %88941 %88945
-     %104751 = OpCompositeConstruct %_arr_v4float_uint_2 %88951 %88957
-      %97394 = OpIAdd %uint %163277 %int_1
-      %97396 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %163277
-               OpStore %97396 %104751
-               OpBranch %92278
-      %88850 = OpLabel
-      %88853 = OpLoad %uint %83860
-      %88854 = OpBitwiseAnd %uint %88853 %uint_32768
-      %88855 = OpUGreaterThan %bool %88854 %uint_0
-               OpSelectionMerge %97316 None
-               OpSwitch %uint_0 %97300
-      %97300 = OpLabel
-               OpSelectionMerge %97315 None
-               OpBranchConditional %88855 %97302 %97310
-      %97310 = OpLabel
-      %97312 = OpISub %uint %158802 %int_1
-      %97313 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97312
-      %97314 = OpLoad %_arr_v3float_uint_2 %97313
-     %101798 = OpCompositeExtract %v3float %97314 0
-     %101799 = OpCompositeExtract %v3float %97314 1
-               OpBranch %97316
-      %97302 = OpLabel
-      %97304 = OpIAdd %uint %158805 %int_1
-      %97305 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %97306 = OpLoad %v3float %97305
-               OpBranch %97316
-      %97315 = OpLabel
-               OpUnreachable
-      %97316 = OpLabel
-     %163282 = OpPhi %uint %97304 %97302 %158805 %97310
-     %163281 = OpPhi %uint %158802 %97302 %97312 %97310
-     %163279 = OpPhi %v3float %97306 %97302 %101798 %97310
-     %163278 = OpPhi %v3float %97306 %97302 %101799 %97310
-      %88859 = OpLoad %uint %83860
-      %88860 = OpBitwiseAnd %uint %88859 %uint_16384
-      %88861 = OpUGreaterThan %bool %88860 %uint_0
-               OpSelectionMerge %97339 None
-               OpSwitch %uint_0 %97323
-      %97323 = OpLabel
-               OpSelectionMerge %97338 None
-               OpBranchConditional %88861 %97325 %97333
-      %97333 = OpLabel
-      %97335 = OpISub %uint %163281 %int_1
-      %97336 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97335
-      %97337 = OpLoad %_arr_v3float_uint_2 %97336
-     %101789 = OpCompositeExtract %v3float %97337 0
-     %101790 = OpCompositeExtract %v3float %97337 1
-               OpBranch %97339
-      %97325 = OpLabel
-      %97327 = OpIAdd %uint %163282 %int_1
-      %97328 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %163282
-      %97329 = OpLoad %v3float %97328
-               OpBranch %97339
-      %97338 = OpLabel
-               OpUnreachable
-      %97339 = OpLabel
-     %163287 = OpPhi %uint %97327 %97325 %163282 %97333
-     %163286 = OpPhi %uint %163281 %97325 %97335 %97333
-     %163284 = OpPhi %v3float %97329 %97325 %101789 %97333
-     %163283 = OpPhi %v3float %97329 %97325 %101790 %97333
-      %88865 = OpLoad %uint %83860
-      %88866 = OpBitwiseAnd %uint %88865 %uint_8192
-      %88867 = OpUGreaterThan %bool %88866 %uint_0
-               OpSelectionMerge %97362 None
-               OpSwitch %uint_0 %97346
-      %97346 = OpLabel
-               OpSelectionMerge %97361 None
-               OpBranchConditional %88867 %97348 %97356
-      %97356 = OpLabel
-      %97358 = OpISub %uint %163286 %int_1
-      %97359 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97358
-      %97360 = OpLoad %_arr_v3float_uint_2 %97359
-     %101780 = OpCompositeExtract %v3float %97360 0
-     %101781 = OpCompositeExtract %v3float %97360 1
-               OpBranch %97362
-      %97348 = OpLabel
-      %97350 = OpIAdd %uint %163287 %int_1
-      %97351 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %163287
-      %97352 = OpLoad %v3float %97351
-               OpBranch %97362
-      %97361 = OpLabel
-               OpUnreachable
-      %97362 = OpLabel
-     %242552 = OpPhi %uint %97350 %97348 %163287 %97356
-     %163296 = OpPhi %uint %163286 %97348 %97358 %97356
-     %163289 = OpPhi %v3float %97352 %97348 %101780 %97356
-     %163288 = OpPhi %v3float %97352 %97348 %101781 %97356
-      %88873 = OpFMul %v3float %163279 %163284
-      %88879 = OpFMul %v3float %163279 %163283
-      %88885 = OpFMul %v3float %163278 %163284
-      %88891 = OpFMul %v3float %163278 %163283
-      %88901 = OpExtInst %v3float %1 FMin %88885 %88891
-      %88902 = OpExtInst %v3float %1 FMin %88879 %88901
-      %88903 = OpExtInst %v3float %1 FMin %88873 %88902
-      %88913 = OpExtInst %v3float %1 FMax %88885 %88891
-      %88914 = OpExtInst %v3float %1 FMax %88879 %88913
-      %88915 = OpExtInst %v3float %1 FMax %88873 %88914
-      %88922 = OpFAdd %v3float %88903 %163289
-      %88928 = OpFAdd %v3float %88915 %163288
-     %104734 = OpCompositeConstruct %_arr_v3float_uint_2 %88922 %88928
-      %97366 = OpIAdd %uint %163296 %int_1
-      %97368 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163296
-               OpStore %97368 %104734
-               OpBranch %92278
-      %88823 = OpLabel
-      %88826 = OpLoad %uint %83860
-      %88827 = OpBitwiseAnd %uint %88826 %uint_32768
-      %88828 = OpUGreaterThan %bool %88827 %uint_0
-               OpSelectionMerge %97265 None
-               OpSwitch %uint_0 %97249
-      %97249 = OpLabel
-               OpSelectionMerge %97264 None
-               OpBranchConditional %88828 %97251 %97259
-      %97259 = OpLabel
-      %97261 = OpISub %uint %158802 %int_1
-      %97262 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97261
-      %97263 = OpLoad %_arr_v3float_uint_2 %97262
-     %101816 = OpCompositeExtract %v3float %97263 0
-     %101817 = OpCompositeExtract %v3float %97263 1
-               OpBranch %97265
-      %97251 = OpLabel
-      %97253 = OpIAdd %uint %158805 %int_1
-      %97254 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %97255 = OpLoad %v3float %97254
-               OpBranch %97265
-      %97264 = OpLabel
-               OpUnreachable
-      %97265 = OpLabel
-     %163301 = OpPhi %uint %97253 %97251 %158805 %97259
-     %163300 = OpPhi %uint %158802 %97251 %97261 %97259
-     %163298 = OpPhi %v3float %97255 %97251 %101816 %97259
-     %163297 = OpPhi %v3float %97255 %97251 %101817 %97259
-      %88832 = OpLoad %uint %83860
-      %88833 = OpBitwiseAnd %uint %88832 %uint_16384
-      %88834 = OpUGreaterThan %bool %88833 %uint_0
-               OpSelectionMerge %97288 None
-               OpSwitch %uint_0 %97272
-      %97272 = OpLabel
-               OpSelectionMerge %97287 None
-               OpBranchConditional %88834 %97274 %97282
-      %97282 = OpLabel
-      %97284 = OpISub %uint %163300 %int_1
-      %97285 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97284
-      %97286 = OpLoad %_arr_v3float_uint_2 %97285
-     %101807 = OpCompositeExtract %v3float %97286 0
-     %101808 = OpCompositeExtract %v3float %97286 1
-               OpBranch %97288
-      %97274 = OpLabel
-      %97276 = OpIAdd %uint %163301 %int_1
-      %97277 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %163301
-      %97278 = OpLoad %v3float %97277
-               OpBranch %97288
-      %97287 = OpLabel
-               OpUnreachable
-      %97288 = OpLabel
-     %242551 = OpPhi %uint %97276 %97274 %163301 %97282
-     %163306 = OpPhi %uint %163300 %97274 %97284 %97282
-     %163303 = OpPhi %v3float %97278 %97274 %101807 %97282
-     %163302 = OpPhi %v3float %97278 %97274 %101808 %97282
-      %88840 = OpExtInst %v3float %1 FMax %163298 %163303
-      %88846 = OpExtInst %v3float %1 FMax %163297 %163302
-     %104723 = OpCompositeConstruct %_arr_v3float_uint_2 %88840 %88846
-      %97292 = OpIAdd %uint %163306 %int_1
-      %97294 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163306
-               OpStore %97294 %104723
-               OpBranch %92278
-      %88796 = OpLabel
-      %88799 = OpLoad %uint %83860
-      %88800 = OpBitwiseAnd %uint %88799 %uint_32768
-      %88801 = OpUGreaterThan %bool %88800 %uint_0
-               OpSelectionMerge %97214 None
-               OpSwitch %uint_0 %97198
-      %97198 = OpLabel
-               OpSelectionMerge %97213 None
-               OpBranchConditional %88801 %97200 %97208
-      %97208 = OpLabel
-      %97210 = OpISub %uint %158802 %int_1
-      %97211 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97210
-      %97212 = OpLoad %_arr_v3float_uint_2 %97211
-     %101834 = OpCompositeExtract %v3float %97212 0
-     %101835 = OpCompositeExtract %v3float %97212 1
-               OpBranch %97214
-      %97200 = OpLabel
-      %97202 = OpIAdd %uint %158805 %int_1
-      %97203 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %97204 = OpLoad %v3float %97203
-               OpBranch %97214
-      %97213 = OpLabel
-               OpUnreachable
-      %97214 = OpLabel
-     %163311 = OpPhi %uint %97202 %97200 %158805 %97208
-     %163310 = OpPhi %uint %158802 %97200 %97210 %97208
-     %163308 = OpPhi %v3float %97204 %97200 %101834 %97208
-     %163307 = OpPhi %v3float %97204 %97200 %101835 %97208
-      %88805 = OpLoad %uint %83860
-      %88806 = OpBitwiseAnd %uint %88805 %uint_16384
-      %88807 = OpUGreaterThan %bool %88806 %uint_0
-               OpSelectionMerge %97237 None
-               OpSwitch %uint_0 %97221
-      %97221 = OpLabel
-               OpSelectionMerge %97236 None
-               OpBranchConditional %88807 %97223 %97231
-      %97231 = OpLabel
-      %97233 = OpISub %uint %163310 %int_1
-      %97234 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97233
-      %97235 = OpLoad %_arr_v3float_uint_2 %97234
-     %101825 = OpCompositeExtract %v3float %97235 0
-     %101826 = OpCompositeExtract %v3float %97235 1
-               OpBranch %97237
-      %97223 = OpLabel
-      %97225 = OpIAdd %uint %163311 %int_1
-      %97226 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %163311
-      %97227 = OpLoad %v3float %97226
-               OpBranch %97237
-      %97236 = OpLabel
-               OpUnreachable
-      %97237 = OpLabel
-     %242550 = OpPhi %uint %97225 %97223 %163311 %97231
-     %163316 = OpPhi %uint %163310 %97223 %97233 %97231
-     %163313 = OpPhi %v3float %97227 %97223 %101825 %97231
-     %163312 = OpPhi %v3float %97227 %97223 %101826 %97231
-      %88813 = OpExtInst %v3float %1 FMin %163308 %163313
-      %88819 = OpExtInst %v3float %1 FMin %163307 %163312
-     %104712 = OpCompositeConstruct %_arr_v3float_uint_2 %88813 %88819
-      %97241 = OpIAdd %uint %163316 %int_1
-      %97243 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163316
-               OpStore %97243 %104712
-               OpBranch %92278
-      %88767 = OpLabel
-      %88770 = OpLoad %uint %83860
-      %88771 = OpBitwiseAnd %uint %88770 %uint_32768
-      %88772 = OpUGreaterThan %bool %88771 %uint_0
-               OpSelectionMerge %97186 None
-               OpSwitch %uint_0 %97170
-      %97170 = OpLabel
-               OpSelectionMerge %97185 None
-               OpBranchConditional %88772 %97172 %97180
-      %97180 = OpLabel
-      %97182 = OpISub %uint %158802 %int_1
-      %97183 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97182
-      %97184 = OpLoad %_arr_v3float_uint_2 %97183
-     %101843 = OpCompositeExtract %v3float %97184 0
-     %101844 = OpCompositeExtract %v3float %97184 1
-               OpBranch %97186
-      %97172 = OpLabel
-      %97174 = OpIAdd %uint %158805 %int_1
-      %97175 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %97176 = OpLoad %v3float %97175
-               OpBranch %97186
-      %97185 = OpLabel
-               OpUnreachable
-      %97186 = OpLabel
-     %242549 = OpPhi %uint %97174 %97172 %158805 %97180
-     %163319 = OpPhi %uint %158802 %97172 %97182 %97180
-     %163318 = OpPhi %v3float %97176 %97172 %101843 %97180
-     %163317 = OpPhi %v3float %97176 %97172 %101844 %97180
-      %88776 = OpExtInst %v3float %1 Trunc %163318
-      %88780 = OpExtInst %v3float %1 Trunc %163317
-      %88786 = OpExtInst %v3float %1 FMin %88776 %88780
-      %88792 = OpExtInst %v3float %1 FMax %88776 %88780
-     %104703 = OpCompositeConstruct %_arr_v3float_uint_2 %88786 %88792
-      %97190 = OpIAdd %uint %163319 %int_1
-      %97192 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163319
-               OpStore %97192 %104703
-               OpBranch %92278
-      %88738 = OpLabel
-      %88741 = OpLoad %uint %83860
-      %88742 = OpBitwiseAnd %uint %88741 %uint_32768
-      %88743 = OpUGreaterThan %bool %88742 %uint_0
-               OpSelectionMerge %97158 None
-               OpSwitch %uint_0 %97142
-      %97142 = OpLabel
-               OpSelectionMerge %97157 None
-               OpBranchConditional %88743 %97144 %97152
-      %97152 = OpLabel
-      %97154 = OpISub %uint %158802 %int_1
-      %97155 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97154
-      %97156 = OpLoad %_arr_v3float_uint_2 %97155
-     %101852 = OpCompositeExtract %v3float %97156 0
-     %101853 = OpCompositeExtract %v3float %97156 1
-               OpBranch %97158
-      %97144 = OpLabel
-      %97146 = OpIAdd %uint %158805 %int_1
-      %97147 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %97148 = OpLoad %v3float %97147
-               OpBranch %97158
-      %97157 = OpLabel
-               OpUnreachable
-      %97158 = OpLabel
-     %242548 = OpPhi %uint %97146 %97144 %158805 %97152
-     %163322 = OpPhi %uint %158802 %97144 %97154 %97152
-     %163321 = OpPhi %v3float %97148 %97144 %101852 %97152
-     %163320 = OpPhi %v3float %97148 %97144 %101853 %97152
-      %88747 = OpExtInst %v3float %1 Round %163321
-      %88751 = OpExtInst %v3float %1 Round %163320
-      %88757 = OpExtInst %v3float %1 FMin %88747 %88751
-      %88763 = OpExtInst %v3float %1 FMax %88747 %88751
-     %104694 = OpCompositeConstruct %_arr_v3float_uint_2 %88757 %88763
-      %97162 = OpIAdd %uint %163322 %int_1
-      %97164 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163322
-               OpStore %97164 %104694
-               OpBranch %92278
-      %88709 = OpLabel
-      %88712 = OpLoad %uint %83860
-      %88713 = OpBitwiseAnd %uint %88712 %uint_32768
-      %88714 = OpUGreaterThan %bool %88713 %uint_0
-               OpSelectionMerge %97130 None
-               OpSwitch %uint_0 %97114
-      %97114 = OpLabel
-               OpSelectionMerge %97129 None
-               OpBranchConditional %88714 %97116 %97124
-      %97124 = OpLabel
-      %97126 = OpISub %uint %158802 %int_1
-      %97127 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97126
-      %97128 = OpLoad %_arr_v3float_uint_2 %97127
-     %101861 = OpCompositeExtract %v3float %97128 0
-     %101862 = OpCompositeExtract %v3float %97128 1
-               OpBranch %97130
-      %97116 = OpLabel
-      %97118 = OpIAdd %uint %158805 %int_1
-      %97119 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %97120 = OpLoad %v3float %97119
-               OpBranch %97130
-      %97129 = OpLabel
-               OpUnreachable
-      %97130 = OpLabel
-     %242547 = OpPhi %uint %97118 %97116 %158805 %97124
-     %163325 = OpPhi %uint %158802 %97116 %97126 %97124
-     %163324 = OpPhi %v3float %97120 %97116 %101861 %97124
-     %163323 = OpPhi %v3float %97120 %97116 %101862 %97124
-      %88718 = OpExtInst %v3float %1 Tanh %163324
-      %88722 = OpExtInst %v3float %1 Tanh %163323
-      %88728 = OpExtInst %v3float %1 FMin %88718 %88722
-      %88734 = OpExtInst %v3float %1 FMax %88718 %88722
-     %104685 = OpCompositeConstruct %_arr_v3float_uint_2 %88728 %88734
-      %97134 = OpIAdd %uint %163325 %int_1
-      %97136 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163325
-               OpStore %97136 %104685
-               OpBranch %92278
-      %88680 = OpLabel
-      %88683 = OpLoad %uint %83860
-      %88684 = OpBitwiseAnd %uint %88683 %uint_32768
-      %88685 = OpUGreaterThan %bool %88684 %uint_0
-               OpSelectionMerge %97102 None
-               OpSwitch %uint_0 %97086
-      %97086 = OpLabel
-               OpSelectionMerge %97101 None
-               OpBranchConditional %88685 %97088 %97096
-      %97096 = OpLabel
-      %97098 = OpISub %uint %158802 %int_1
-      %97099 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97098
-      %97100 = OpLoad %_arr_v3float_uint_2 %97099
-     %101870 = OpCompositeExtract %v3float %97100 0
-     %101871 = OpCompositeExtract %v3float %97100 1
-               OpBranch %97102
-      %97088 = OpLabel
-      %97090 = OpIAdd %uint %158805 %int_1
-      %97091 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %97092 = OpLoad %v3float %97091
-               OpBranch %97102
-      %97101 = OpLabel
-               OpUnreachable
-      %97102 = OpLabel
-     %242546 = OpPhi %uint %97090 %97088 %158805 %97096
-     %163328 = OpPhi %uint %158802 %97088 %97098 %97096
-     %163327 = OpPhi %v3float %97092 %97088 %101870 %97096
-     %163326 = OpPhi %v3float %97092 %97088 %101871 %97096
-      %88689 = OpExtInst %v3float %1 Sinh %163327
-      %88693 = OpExtInst %v3float %1 Sinh %163326
-      %88699 = OpExtInst %v3float %1 FMin %88689 %88693
-      %88705 = OpExtInst %v3float %1 FMax %88689 %88693
-     %104676 = OpCompositeConstruct %_arr_v3float_uint_2 %88699 %88705
-      %97106 = OpIAdd %uint %163328 %int_1
-      %97108 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163328
-               OpStore %97108 %104676
-               OpBranch %92278
-      %88651 = OpLabel
-      %88654 = OpLoad %uint %83860
-      %88655 = OpBitwiseAnd %uint %88654 %uint_32768
-      %88656 = OpUGreaterThan %bool %88655 %uint_0
-               OpSelectionMerge %97074 None
-               OpSwitch %uint_0 %97058
-      %97058 = OpLabel
-               OpSelectionMerge %97073 None
-               OpBranchConditional %88656 %97060 %97068
-      %97068 = OpLabel
-      %97070 = OpISub %uint %158802 %int_1
-      %97071 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97070
-      %97072 = OpLoad %_arr_v3float_uint_2 %97071
-     %101879 = OpCompositeExtract %v3float %97072 0
-     %101880 = OpCompositeExtract %v3float %97072 1
-               OpBranch %97074
-      %97060 = OpLabel
-      %97062 = OpIAdd %uint %158805 %int_1
-      %97063 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %97064 = OpLoad %v3float %97063
-               OpBranch %97074
-      %97073 = OpLabel
-               OpUnreachable
-      %97074 = OpLabel
-     %242545 = OpPhi %uint %97062 %97060 %158805 %97068
-     %163331 = OpPhi %uint %158802 %97060 %97070 %97068
-     %163330 = OpPhi %v3float %97064 %97060 %101879 %97068
-     %163329 = OpPhi %v3float %97064 %97060 %101880 %97068
-      %88660 = OpExtInst %v3float %1 Cosh %163330
-      %88664 = OpExtInst %v3float %1 Cosh %163329
-      %88670 = OpExtInst %v3float %1 FMin %88660 %88664
-      %88676 = OpExtInst %v3float %1 FMax %88660 %88664
-     %104667 = OpCompositeConstruct %_arr_v3float_uint_2 %88670 %88676
-      %97078 = OpIAdd %uint %163331 %int_1
-      %97080 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163331
-               OpStore %97080 %104667
-               OpBranch %92278
-      %88622 = OpLabel
-      %88625 = OpLoad %uint %83860
-      %88626 = OpBitwiseAnd %uint %88625 %uint_32768
-      %88627 = OpUGreaterThan %bool %88626 %uint_0
-               OpSelectionMerge %97046 None
-               OpSwitch %uint_0 %97030
-      %97030 = OpLabel
-               OpSelectionMerge %97045 None
-               OpBranchConditional %88627 %97032 %97040
-      %97040 = OpLabel
-      %97042 = OpISub %uint %158802 %int_1
-      %97043 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97042
-      %97044 = OpLoad %_arr_v3float_uint_2 %97043
-     %101888 = OpCompositeExtract %v3float %97044 0
-     %101889 = OpCompositeExtract %v3float %97044 1
-               OpBranch %97046
-      %97032 = OpLabel
-      %97034 = OpIAdd %uint %158805 %int_1
-      %97035 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %97036 = OpLoad %v3float %97035
-               OpBranch %97046
-      %97045 = OpLabel
-               OpUnreachable
-      %97046 = OpLabel
-     %242544 = OpPhi %uint %97034 %97032 %158805 %97040
-     %163334 = OpPhi %uint %158802 %97032 %97042 %97040
-     %163333 = OpPhi %v3float %97036 %97032 %101888 %97040
-     %163332 = OpPhi %v3float %97036 %97032 %101889 %97040
-      %88631 = OpExtInst %v3float %1 Atanh %163333
-      %88635 = OpExtInst %v3float %1 Atanh %163332
-      %88641 = OpExtInst %v3float %1 FMin %88631 %88635
-      %88647 = OpExtInst %v3float %1 FMax %88631 %88635
-     %104658 = OpCompositeConstruct %_arr_v3float_uint_2 %88641 %88647
-      %97050 = OpIAdd %uint %163334 %int_1
-      %97052 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163334
-               OpStore %97052 %104658
-               OpBranch %92278
-      %88593 = OpLabel
-      %88596 = OpLoad %uint %83860
-      %88597 = OpBitwiseAnd %uint %88596 %uint_32768
-      %88598 = OpUGreaterThan %bool %88597 %uint_0
-               OpSelectionMerge %97018 None
-               OpSwitch %uint_0 %97002
-      %97002 = OpLabel
-               OpSelectionMerge %97017 None
-               OpBranchConditional %88598 %97004 %97012
-      %97012 = OpLabel
-      %97014 = OpISub %uint %158802 %int_1
-      %97015 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %97014
-      %97016 = OpLoad %_arr_v3float_uint_2 %97015
-     %101897 = OpCompositeExtract %v3float %97016 0
-     %101898 = OpCompositeExtract %v3float %97016 1
-               OpBranch %97018
-      %97004 = OpLabel
-      %97006 = OpIAdd %uint %158805 %int_1
-      %97007 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %97008 = OpLoad %v3float %97007
-               OpBranch %97018
-      %97017 = OpLabel
-               OpUnreachable
-      %97018 = OpLabel
-     %242543 = OpPhi %uint %97006 %97004 %158805 %97012
-     %163337 = OpPhi %uint %158802 %97004 %97014 %97012
-     %163336 = OpPhi %v3float %97008 %97004 %101897 %97012
-     %163335 = OpPhi %v3float %97008 %97004 %101898 %97012
-      %88602 = OpExtInst %v3float %1 Asinh %163336
-      %88606 = OpExtInst %v3float %1 Asinh %163335
-      %88612 = OpExtInst %v3float %1 FMin %88602 %88606
-      %88618 = OpExtInst %v3float %1 FMax %88602 %88606
-     %104649 = OpCompositeConstruct %_arr_v3float_uint_2 %88612 %88618
-      %97022 = OpIAdd %uint %163337 %int_1
-      %97024 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163337
-               OpStore %97024 %104649
-               OpBranch %92278
-      %88564 = OpLabel
-      %88567 = OpLoad %uint %83860
-      %88568 = OpBitwiseAnd %uint %88567 %uint_32768
-      %88569 = OpUGreaterThan %bool %88568 %uint_0
-               OpSelectionMerge %96990 None
-               OpSwitch %uint_0 %96974
-      %96974 = OpLabel
-               OpSelectionMerge %96989 None
-               OpBranchConditional %88569 %96976 %96984
-      %96984 = OpLabel
-      %96986 = OpISub %uint %158802 %int_1
-      %96987 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96986
-      %96988 = OpLoad %_arr_v3float_uint_2 %96987
-     %101906 = OpCompositeExtract %v3float %96988 0
-     %101907 = OpCompositeExtract %v3float %96988 1
-               OpBranch %96990
-      %96976 = OpLabel
-      %96978 = OpIAdd %uint %158805 %int_1
-      %96979 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96980 = OpLoad %v3float %96979
-               OpBranch %96990
-      %96989 = OpLabel
-               OpUnreachable
-      %96990 = OpLabel
-     %242542 = OpPhi %uint %96978 %96976 %158805 %96984
-     %163340 = OpPhi %uint %158802 %96976 %96986 %96984
-     %163339 = OpPhi %v3float %96980 %96976 %101906 %96984
-     %163338 = OpPhi %v3float %96980 %96976 %101907 %96984
-      %88573 = OpExtInst %v3float %1 Acosh %163339
-      %88577 = OpExtInst %v3float %1 Acosh %163338
-      %88583 = OpExtInst %v3float %1 FMin %88573 %88577
-      %88589 = OpExtInst %v3float %1 FMax %88573 %88577
-     %104640 = OpCompositeConstruct %_arr_v3float_uint_2 %88583 %88589
-      %96994 = OpIAdd %uint %163340 %int_1
-      %96996 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163340
-               OpStore %96996 %104640
-               OpBranch %92278
-      %88535 = OpLabel
-      %88538 = OpLoad %uint %83860
-      %88539 = OpBitwiseAnd %uint %88538 %uint_32768
-      %88540 = OpUGreaterThan %bool %88539 %uint_0
-               OpSelectionMerge %96962 None
-               OpSwitch %uint_0 %96946
-      %96946 = OpLabel
-               OpSelectionMerge %96961 None
-               OpBranchConditional %88540 %96948 %96956
-      %96956 = OpLabel
-      %96958 = OpISub %uint %158802 %int_1
-      %96959 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96958
-      %96960 = OpLoad %_arr_v3float_uint_2 %96959
-     %101915 = OpCompositeExtract %v3float %96960 0
-     %101916 = OpCompositeExtract %v3float %96960 1
-               OpBranch %96962
-      %96948 = OpLabel
-      %96950 = OpIAdd %uint %158805 %int_1
-      %96951 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96952 = OpLoad %v3float %96951
-               OpBranch %96962
-      %96961 = OpLabel
-               OpUnreachable
-      %96962 = OpLabel
-     %242541 = OpPhi %uint %96950 %96948 %158805 %96956
-     %163343 = OpPhi %uint %158802 %96948 %96958 %96956
-     %163342 = OpPhi %v3float %96952 %96948 %101915 %96956
-     %163341 = OpPhi %v3float %96952 %96948 %101916 %96956
-      %88544 = OpExtInst %v3float %1 Atan %163342
-      %88548 = OpExtInst %v3float %1 Atan %163341
-      %88554 = OpExtInst %v3float %1 FMin %88544 %88548
-      %88560 = OpExtInst %v3float %1 FMax %88544 %88548
-     %104631 = OpCompositeConstruct %_arr_v3float_uint_2 %88554 %88560
-      %96966 = OpIAdd %uint %163343 %int_1
-      %96968 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163343
-               OpStore %96968 %104631
-               OpBranch %92278
-      %88506 = OpLabel
-      %88509 = OpLoad %uint %83860
-      %88510 = OpBitwiseAnd %uint %88509 %uint_32768
-      %88511 = OpUGreaterThan %bool %88510 %uint_0
-               OpSelectionMerge %96934 None
-               OpSwitch %uint_0 %96918
-      %96918 = OpLabel
-               OpSelectionMerge %96933 None
-               OpBranchConditional %88511 %96920 %96928
-      %96928 = OpLabel
-      %96930 = OpISub %uint %158802 %int_1
-      %96931 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96930
-      %96932 = OpLoad %_arr_v3float_uint_2 %96931
-     %101924 = OpCompositeExtract %v3float %96932 0
-     %101925 = OpCompositeExtract %v3float %96932 1
-               OpBranch %96934
-      %96920 = OpLabel
-      %96922 = OpIAdd %uint %158805 %int_1
-      %96923 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96924 = OpLoad %v3float %96923
-               OpBranch %96934
-      %96933 = OpLabel
-               OpUnreachable
-      %96934 = OpLabel
-     %242540 = OpPhi %uint %96922 %96920 %158805 %96928
-     %163346 = OpPhi %uint %158802 %96920 %96930 %96928
-     %163345 = OpPhi %v3float %96924 %96920 %101924 %96928
-     %163344 = OpPhi %v3float %96924 %96920 %101925 %96928
-      %88515 = OpExtInst %v3float %1 Acos %163345
-      %88519 = OpExtInst %v3float %1 Acos %163344
-      %88525 = OpExtInst %v3float %1 FMin %88515 %88519
-      %88531 = OpExtInst %v3float %1 FMax %88515 %88519
-     %104622 = OpCompositeConstruct %_arr_v3float_uint_2 %88525 %88531
-      %96938 = OpIAdd %uint %163346 %int_1
-      %96940 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163346
-               OpStore %96940 %104622
-               OpBranch %92278
-      %88477 = OpLabel
-      %88480 = OpLoad %uint %83860
-      %88481 = OpBitwiseAnd %uint %88480 %uint_32768
-      %88482 = OpUGreaterThan %bool %88481 %uint_0
-               OpSelectionMerge %96906 None
-               OpSwitch %uint_0 %96890
-      %96890 = OpLabel
-               OpSelectionMerge %96905 None
-               OpBranchConditional %88482 %96892 %96900
-      %96900 = OpLabel
-      %96902 = OpISub %uint %158802 %int_1
-      %96903 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96902
-      %96904 = OpLoad %_arr_v3float_uint_2 %96903
-     %101933 = OpCompositeExtract %v3float %96904 0
-     %101934 = OpCompositeExtract %v3float %96904 1
-               OpBranch %96906
-      %96892 = OpLabel
-      %96894 = OpIAdd %uint %158805 %int_1
-      %96895 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96896 = OpLoad %v3float %96895
-               OpBranch %96906
-      %96905 = OpLabel
-               OpUnreachable
-      %96906 = OpLabel
-     %242539 = OpPhi %uint %96894 %96892 %158805 %96900
-     %163349 = OpPhi %uint %158802 %96892 %96902 %96900
-     %163348 = OpPhi %v3float %96896 %96892 %101933 %96900
-     %163347 = OpPhi %v3float %96896 %96892 %101934 %96900
-      %88486 = OpExtInst %v3float %1 Asin %163348
-      %88490 = OpExtInst %v3float %1 Asin %163347
-      %88496 = OpExtInst %v3float %1 FMin %88486 %88490
-      %88502 = OpExtInst %v3float %1 FMax %88486 %88490
-     %104613 = OpCompositeConstruct %_arr_v3float_uint_2 %88496 %88502
-      %96910 = OpIAdd %uint %163349 %int_1
-      %96912 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163349
-               OpStore %96912 %104613
-               OpBranch %92278
-      %88448 = OpLabel
-      %88451 = OpLoad %uint %83860
-      %88452 = OpBitwiseAnd %uint %88451 %uint_32768
-      %88453 = OpUGreaterThan %bool %88452 %uint_0
-               OpSelectionMerge %96878 None
-               OpSwitch %uint_0 %96862
-      %96862 = OpLabel
-               OpSelectionMerge %96877 None
-               OpBranchConditional %88453 %96864 %96872
-      %96872 = OpLabel
-      %96874 = OpISub %uint %158802 %int_1
-      %96875 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96874
-      %96876 = OpLoad %_arr_v3float_uint_2 %96875
-     %101942 = OpCompositeExtract %v3float %96876 0
-     %101943 = OpCompositeExtract %v3float %96876 1
-               OpBranch %96878
-      %96864 = OpLabel
-      %96866 = OpIAdd %uint %158805 %int_1
-      %96867 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96868 = OpLoad %v3float %96867
-               OpBranch %96878
-      %96877 = OpLabel
-               OpUnreachable
-      %96878 = OpLabel
-     %242538 = OpPhi %uint %96866 %96864 %158805 %96872
-     %163352 = OpPhi %uint %158802 %96864 %96874 %96872
-     %163351 = OpPhi %v3float %96868 %96864 %101942 %96872
-     %163350 = OpPhi %v3float %96868 %96864 %101943 %96872
-      %88457 = OpExtInst %v3float %1 Tan %163351
-      %88461 = OpExtInst %v3float %1 Tan %163350
-      %88467 = OpExtInst %v3float %1 FMin %88457 %88461
-      %88473 = OpExtInst %v3float %1 FMax %88457 %88461
-     %104604 = OpCompositeConstruct %_arr_v3float_uint_2 %88467 %88473
-      %96882 = OpIAdd %uint %163352 %int_1
-      %96884 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163352
-               OpStore %96884 %104604
-               OpBranch %92278
-      %88419 = OpLabel
-      %88422 = OpLoad %uint %83860
-      %88423 = OpBitwiseAnd %uint %88422 %uint_32768
-      %88424 = OpUGreaterThan %bool %88423 %uint_0
-               OpSelectionMerge %96850 None
-               OpSwitch %uint_0 %96834
-      %96834 = OpLabel
-               OpSelectionMerge %96849 None
-               OpBranchConditional %88424 %96836 %96844
-      %96844 = OpLabel
-      %96846 = OpISub %uint %158802 %int_1
-      %96847 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96846
-      %96848 = OpLoad %_arr_v3float_uint_2 %96847
-     %101951 = OpCompositeExtract %v3float %96848 0
-     %101952 = OpCompositeExtract %v3float %96848 1
-               OpBranch %96850
-      %96836 = OpLabel
-      %96838 = OpIAdd %uint %158805 %int_1
-      %96839 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96840 = OpLoad %v3float %96839
-               OpBranch %96850
-      %96849 = OpLabel
-               OpUnreachable
-      %96850 = OpLabel
-     %242537 = OpPhi %uint %96838 %96836 %158805 %96844
-     %163355 = OpPhi %uint %158802 %96836 %96846 %96844
-     %163354 = OpPhi %v3float %96840 %96836 %101951 %96844
-     %163353 = OpPhi %v3float %96840 %96836 %101952 %96844
-      %88428 = OpExtInst %v3float %1 Cos %163354
-      %88432 = OpExtInst %v3float %1 Cos %163353
-      %88438 = OpExtInst %v3float %1 FMin %88428 %88432
-      %88444 = OpExtInst %v3float %1 FMax %88428 %88432
-     %104595 = OpCompositeConstruct %_arr_v3float_uint_2 %88438 %88444
-      %96854 = OpIAdd %uint %163355 %int_1
-      %96856 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163355
-               OpStore %96856 %104595
-               OpBranch %92278
-      %88390 = OpLabel
-      %88393 = OpLoad %uint %83860
-      %88394 = OpBitwiseAnd %uint %88393 %uint_32768
-      %88395 = OpUGreaterThan %bool %88394 %uint_0
-               OpSelectionMerge %96822 None
-               OpSwitch %uint_0 %96806
-      %96806 = OpLabel
-               OpSelectionMerge %96821 None
-               OpBranchConditional %88395 %96808 %96816
-      %96816 = OpLabel
-      %96818 = OpISub %uint %158802 %int_1
-      %96819 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96818
-      %96820 = OpLoad %_arr_v3float_uint_2 %96819
-     %101960 = OpCompositeExtract %v3float %96820 0
-     %101961 = OpCompositeExtract %v3float %96820 1
-               OpBranch %96822
-      %96808 = OpLabel
-      %96810 = OpIAdd %uint %158805 %int_1
-      %96811 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96812 = OpLoad %v3float %96811
-               OpBranch %96822
-      %96821 = OpLabel
-               OpUnreachable
-      %96822 = OpLabel
-     %242536 = OpPhi %uint %96810 %96808 %158805 %96816
-     %163358 = OpPhi %uint %158802 %96808 %96818 %96816
-     %163357 = OpPhi %v3float %96812 %96808 %101960 %96816
-     %163356 = OpPhi %v3float %96812 %96808 %101961 %96816
-      %88399 = OpExtInst %v3float %1 Sin %163357
-      %88403 = OpExtInst %v3float %1 Sin %163356
-      %88409 = OpExtInst %v3float %1 FMin %88399 %88403
-      %88415 = OpExtInst %v3float %1 FMax %88399 %88403
-     %104586 = OpCompositeConstruct %_arr_v3float_uint_2 %88409 %88415
-      %96826 = OpIAdd %uint %163358 %int_1
-      %96828 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163358
-               OpStore %96828 %104586
-               OpBranch %92278
-      %88361 = OpLabel
-      %88364 = OpLoad %uint %83860
-      %88365 = OpBitwiseAnd %uint %88364 %uint_32768
-      %88366 = OpUGreaterThan %bool %88365 %uint_0
-               OpSelectionMerge %96794 None
-               OpSwitch %uint_0 %96778
-      %96778 = OpLabel
-               OpSelectionMerge %96793 None
-               OpBranchConditional %88366 %96780 %96788
-      %96788 = OpLabel
-      %96790 = OpISub %uint %158802 %int_1
-      %96791 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96790
-      %96792 = OpLoad %_arr_v3float_uint_2 %96791
-     %101969 = OpCompositeExtract %v3float %96792 0
-     %101970 = OpCompositeExtract %v3float %96792 1
-               OpBranch %96794
-      %96780 = OpLabel
-      %96782 = OpIAdd %uint %158805 %int_1
-      %96783 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96784 = OpLoad %v3float %96783
-               OpBranch %96794
-      %96793 = OpLabel
-               OpUnreachable
-      %96794 = OpLabel
-     %242535 = OpPhi %uint %96782 %96780 %158805 %96788
-     %163361 = OpPhi %uint %158802 %96780 %96790 %96788
-     %163360 = OpPhi %v3float %96784 %96780 %101969 %96788
-     %163359 = OpPhi %v3float %96784 %96780 %101970 %96788
-      %88370 = OpExtInst %v3float %1 Log2 %163360
-      %88374 = OpExtInst %v3float %1 Log2 %163359
-      %88380 = OpExtInst %v3float %1 FMin %88370 %88374
-      %88386 = OpExtInst %v3float %1 FMax %88370 %88374
-     %104577 = OpCompositeConstruct %_arr_v3float_uint_2 %88380 %88386
-      %96798 = OpIAdd %uint %163361 %int_1
-      %96800 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163361
-               OpStore %96800 %104577
-               OpBranch %92278
-      %88332 = OpLabel
-      %88335 = OpLoad %uint %83860
-      %88336 = OpBitwiseAnd %uint %88335 %uint_32768
-      %88337 = OpUGreaterThan %bool %88336 %uint_0
-               OpSelectionMerge %96766 None
-               OpSwitch %uint_0 %96750
-      %96750 = OpLabel
-               OpSelectionMerge %96765 None
-               OpBranchConditional %88337 %96752 %96760
-      %96760 = OpLabel
-      %96762 = OpISub %uint %158802 %int_1
-      %96763 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96762
-      %96764 = OpLoad %_arr_v3float_uint_2 %96763
-     %101978 = OpCompositeExtract %v3float %96764 0
-     %101979 = OpCompositeExtract %v3float %96764 1
-               OpBranch %96766
-      %96752 = OpLabel
-      %96754 = OpIAdd %uint %158805 %int_1
-      %96755 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96756 = OpLoad %v3float %96755
-               OpBranch %96766
-      %96765 = OpLabel
-               OpUnreachable
-      %96766 = OpLabel
-     %242534 = OpPhi %uint %96754 %96752 %158805 %96760
-     %163364 = OpPhi %uint %158802 %96752 %96762 %96760
-     %163363 = OpPhi %v3float %96756 %96752 %101978 %96760
-     %163362 = OpPhi %v3float %96756 %96752 %101979 %96760
-      %88341 = OpExtInst %v3float %1 Log %163363
-      %88345 = OpExtInst %v3float %1 Log %163362
-      %88351 = OpExtInst %v3float %1 FMin %88341 %88345
-      %88357 = OpExtInst %v3float %1 FMax %88341 %88345
-     %104568 = OpCompositeConstruct %_arr_v3float_uint_2 %88351 %88357
-      %96770 = OpIAdd %uint %163364 %int_1
-      %96772 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163364
-               OpStore %96772 %104568
-               OpBranch %92278
-      %88303 = OpLabel
-      %88306 = OpLoad %uint %83860
-      %88307 = OpBitwiseAnd %uint %88306 %uint_32768
-      %88308 = OpUGreaterThan %bool %88307 %uint_0
-               OpSelectionMerge %96738 None
-               OpSwitch %uint_0 %96722
-      %96722 = OpLabel
-               OpSelectionMerge %96737 None
-               OpBranchConditional %88308 %96724 %96732
-      %96732 = OpLabel
-      %96734 = OpISub %uint %158802 %int_1
-      %96735 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96734
-      %96736 = OpLoad %_arr_v3float_uint_2 %96735
-     %101987 = OpCompositeExtract %v3float %96736 0
-     %101988 = OpCompositeExtract %v3float %96736 1
-               OpBranch %96738
-      %96724 = OpLabel
-      %96726 = OpIAdd %uint %158805 %int_1
-      %96727 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96728 = OpLoad %v3float %96727
-               OpBranch %96738
-      %96737 = OpLabel
-               OpUnreachable
-      %96738 = OpLabel
-     %242533 = OpPhi %uint %96726 %96724 %158805 %96732
-     %163367 = OpPhi %uint %158802 %96724 %96734 %96732
-     %163366 = OpPhi %v3float %96728 %96724 %101987 %96732
-     %163365 = OpPhi %v3float %96728 %96724 %101988 %96732
-      %88312 = OpExtInst %v3float %1 Exp2 %163366
-      %88316 = OpExtInst %v3float %1 Exp2 %163365
-      %88322 = OpExtInst %v3float %1 FMin %88312 %88316
-      %88328 = OpExtInst %v3float %1 FMax %88312 %88316
-     %104559 = OpCompositeConstruct %_arr_v3float_uint_2 %88322 %88328
-      %96742 = OpIAdd %uint %163367 %int_1
-      %96744 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163367
-               OpStore %96744 %104559
-               OpBranch %92278
-      %88274 = OpLabel
-      %88277 = OpLoad %uint %83860
-      %88278 = OpBitwiseAnd %uint %88277 %uint_32768
-      %88279 = OpUGreaterThan %bool %88278 %uint_0
-               OpSelectionMerge %96710 None
-               OpSwitch %uint_0 %96694
-      %96694 = OpLabel
-               OpSelectionMerge %96709 None
-               OpBranchConditional %88279 %96696 %96704
-      %96704 = OpLabel
-      %96706 = OpISub %uint %158802 %int_1
-      %96707 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96706
-      %96708 = OpLoad %_arr_v3float_uint_2 %96707
-     %101996 = OpCompositeExtract %v3float %96708 0
-     %101997 = OpCompositeExtract %v3float %96708 1
-               OpBranch %96710
-      %96696 = OpLabel
-      %96698 = OpIAdd %uint %158805 %int_1
-      %96699 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96700 = OpLoad %v3float %96699
-               OpBranch %96710
-      %96709 = OpLabel
-               OpUnreachable
-      %96710 = OpLabel
-     %242532 = OpPhi %uint %96698 %96696 %158805 %96704
-     %163370 = OpPhi %uint %158802 %96696 %96706 %96704
-     %163369 = OpPhi %v3float %96700 %96696 %101996 %96704
-     %163368 = OpPhi %v3float %96700 %96696 %101997 %96704
-      %88283 = OpExtInst %v3float %1 Exp %163369
-      %88287 = OpExtInst %v3float %1 Exp %163368
-      %88293 = OpExtInst %v3float %1 FMin %88283 %88287
-      %88299 = OpExtInst %v3float %1 FMax %88283 %88287
-     %104550 = OpCompositeConstruct %_arr_v3float_uint_2 %88293 %88299
-      %96714 = OpIAdd %uint %163370 %int_1
-      %96716 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163370
-               OpStore %96716 %104550
-               OpBranch %92278
-      %88245 = OpLabel
-      %88248 = OpLoad %uint %83860
-      %88249 = OpBitwiseAnd %uint %88248 %uint_32768
-      %88250 = OpUGreaterThan %bool %88249 %uint_0
-               OpSelectionMerge %96682 None
-               OpSwitch %uint_0 %96666
-      %96666 = OpLabel
-               OpSelectionMerge %96681 None
-               OpBranchConditional %88250 %96668 %96676
-      %96676 = OpLabel
-      %96678 = OpISub %uint %158802 %int_1
-      %96679 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96678
-      %96680 = OpLoad %_arr_v3float_uint_2 %96679
-     %102005 = OpCompositeExtract %v3float %96680 0
-     %102006 = OpCompositeExtract %v3float %96680 1
-               OpBranch %96682
-      %96668 = OpLabel
-      %96670 = OpIAdd %uint %158805 %int_1
-      %96671 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96672 = OpLoad %v3float %96671
-               OpBranch %96682
-      %96681 = OpLabel
-               OpUnreachable
-      %96682 = OpLabel
-     %242531 = OpPhi %uint %96670 %96668 %158805 %96676
-     %163373 = OpPhi %uint %158802 %96668 %96678 %96676
-     %163372 = OpPhi %v3float %96672 %96668 %102005 %96676
-     %163371 = OpPhi %v3float %96672 %96668 %102006 %96676
-      %88254 = OpExtInst %v3float %1 InverseSqrt %163372
-      %88258 = OpExtInst %v3float %1 InverseSqrt %163371
-      %88264 = OpExtInst %v3float %1 FMin %88254 %88258
-      %88270 = OpExtInst %v3float %1 FMax %88254 %88258
-     %104541 = OpCompositeConstruct %_arr_v3float_uint_2 %88264 %88270
-      %96686 = OpIAdd %uint %163373 %int_1
-      %96688 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163373
-               OpStore %96688 %104541
-               OpBranch %92278
-      %88216 = OpLabel
-      %88219 = OpLoad %uint %83860
-      %88220 = OpBitwiseAnd %uint %88219 %uint_32768
-      %88221 = OpUGreaterThan %bool %88220 %uint_0
-               OpSelectionMerge %96654 None
-               OpSwitch %uint_0 %96638
-      %96638 = OpLabel
-               OpSelectionMerge %96653 None
-               OpBranchConditional %88221 %96640 %96648
-      %96648 = OpLabel
-      %96650 = OpISub %uint %158802 %int_1
-      %96651 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96650
-      %96652 = OpLoad %_arr_v3float_uint_2 %96651
-     %102014 = OpCompositeExtract %v3float %96652 0
-     %102015 = OpCompositeExtract %v3float %96652 1
-               OpBranch %96654
-      %96640 = OpLabel
-      %96642 = OpIAdd %uint %158805 %int_1
-      %96643 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96644 = OpLoad %v3float %96643
-               OpBranch %96654
-      %96653 = OpLabel
-               OpUnreachable
-      %96654 = OpLabel
-     %242530 = OpPhi %uint %96642 %96640 %158805 %96648
-     %163376 = OpPhi %uint %158802 %96640 %96650 %96648
-     %163375 = OpPhi %v3float %96644 %96640 %102014 %96648
-     %163374 = OpPhi %v3float %96644 %96640 %102015 %96648
-      %88225 = OpExtInst %v3float %1 Sqrt %163375
-      %88229 = OpExtInst %v3float %1 Sqrt %163374
-      %88235 = OpExtInst %v3float %1 FMin %88225 %88229
-      %88241 = OpExtInst %v3float %1 FMax %88225 %88229
-     %104532 = OpCompositeConstruct %_arr_v3float_uint_2 %88235 %88241
-      %96658 = OpIAdd %uint %163376 %int_1
-      %96660 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163376
-               OpStore %96660 %104532
-               OpBranch %92278
-      %88187 = OpLabel
-      %88190 = OpLoad %uint %83860
-      %88191 = OpBitwiseAnd %uint %88190 %uint_32768
-      %88192 = OpUGreaterThan %bool %88191 %uint_0
-               OpSelectionMerge %96626 None
-               OpSwitch %uint_0 %96610
-      %96610 = OpLabel
-               OpSelectionMerge %96625 None
-               OpBranchConditional %88192 %96612 %96620
-      %96620 = OpLabel
-      %96622 = OpISub %uint %158802 %int_1
-      %96623 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96622
-      %96624 = OpLoad %_arr_v3float_uint_2 %96623
-     %102023 = OpCompositeExtract %v3float %96624 0
-     %102024 = OpCompositeExtract %v3float %96624 1
-               OpBranch %96626
-      %96612 = OpLabel
-      %96614 = OpIAdd %uint %158805 %int_1
-      %96615 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96616 = OpLoad %v3float %96615
-               OpBranch %96626
-      %96625 = OpLabel
-               OpUnreachable
-      %96626 = OpLabel
-     %242529 = OpPhi %uint %96614 %96612 %158805 %96620
-     %163379 = OpPhi %uint %158802 %96612 %96622 %96620
-     %163378 = OpPhi %v3float %96616 %96612 %102023 %96620
-     %163377 = OpPhi %v3float %96616 %96612 %102024 %96620
-      %88196 = OpExtInst %v3float %1 Fract %163378
-      %88200 = OpExtInst %v3float %1 Fract %163377
-      %88206 = OpExtInst %v3float %1 FMin %88196 %88200
-      %88212 = OpExtInst %v3float %1 FMax %88196 %88200
-     %104523 = OpCompositeConstruct %_arr_v3float_uint_2 %88206 %88212
-      %96630 = OpIAdd %uint %163379 %int_1
-      %96632 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163379
-               OpStore %96632 %104523
-               OpBranch %92278
-      %88158 = OpLabel
-      %88161 = OpLoad %uint %83860
-      %88162 = OpBitwiseAnd %uint %88161 %uint_32768
-      %88163 = OpUGreaterThan %bool %88162 %uint_0
-               OpSelectionMerge %96598 None
-               OpSwitch %uint_0 %96582
-      %96582 = OpLabel
-               OpSelectionMerge %96597 None
-               OpBranchConditional %88163 %96584 %96592
-      %96592 = OpLabel
-      %96594 = OpISub %uint %158802 %int_1
-      %96595 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96594
-      %96596 = OpLoad %_arr_v3float_uint_2 %96595
-     %102032 = OpCompositeExtract %v3float %96596 0
-     %102033 = OpCompositeExtract %v3float %96596 1
-               OpBranch %96598
-      %96584 = OpLabel
-      %96586 = OpIAdd %uint %158805 %int_1
-      %96587 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96588 = OpLoad %v3float %96587
-               OpBranch %96598
-      %96597 = OpLabel
-               OpUnreachable
-      %96598 = OpLabel
-     %242528 = OpPhi %uint %96586 %96584 %158805 %96592
-     %163382 = OpPhi %uint %158802 %96584 %96594 %96592
-     %163381 = OpPhi %v3float %96588 %96584 %102032 %96592
-     %163380 = OpPhi %v3float %96588 %96584 %102033 %96592
-      %88167 = OpExtInst %v3float %1 Ceil %163381
-      %88171 = OpExtInst %v3float %1 Ceil %163380
-      %88177 = OpExtInst %v3float %1 FMin %88167 %88171
-      %88183 = OpExtInst %v3float %1 FMax %88167 %88171
-     %104514 = OpCompositeConstruct %_arr_v3float_uint_2 %88177 %88183
-      %96602 = OpIAdd %uint %163382 %int_1
-      %96604 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163382
-               OpStore %96604 %104514
-               OpBranch %92278
-      %88129 = OpLabel
-      %88132 = OpLoad %uint %83860
-      %88133 = OpBitwiseAnd %uint %88132 %uint_32768
-      %88134 = OpUGreaterThan %bool %88133 %uint_0
-               OpSelectionMerge %96570 None
-               OpSwitch %uint_0 %96554
-      %96554 = OpLabel
-               OpSelectionMerge %96569 None
-               OpBranchConditional %88134 %96556 %96564
-      %96564 = OpLabel
-      %96566 = OpISub %uint %158802 %int_1
-      %96567 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96566
-      %96568 = OpLoad %_arr_v3float_uint_2 %96567
-     %102041 = OpCompositeExtract %v3float %96568 0
-     %102042 = OpCompositeExtract %v3float %96568 1
-               OpBranch %96570
-      %96556 = OpLabel
-      %96558 = OpIAdd %uint %158805 %int_1
-      %96559 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96560 = OpLoad %v3float %96559
-               OpBranch %96570
-      %96569 = OpLabel
-               OpUnreachable
-      %96570 = OpLabel
-     %242527 = OpPhi %uint %96558 %96556 %158805 %96564
-     %163385 = OpPhi %uint %158802 %96556 %96566 %96564
-     %163384 = OpPhi %v3float %96560 %96556 %102041 %96564
-     %163383 = OpPhi %v3float %96560 %96556 %102042 %96564
-      %88138 = OpExtInst %v3float %1 Floor %163384
-      %88142 = OpExtInst %v3float %1 Floor %163383
-      %88148 = OpExtInst %v3float %1 FMin %88138 %88142
-      %88154 = OpExtInst %v3float %1 FMax %88138 %88142
-     %104505 = OpCompositeConstruct %_arr_v3float_uint_2 %88148 %88154
-      %96574 = OpIAdd %uint %163385 %int_1
-      %96576 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163385
-               OpStore %96576 %104505
-               OpBranch %92278
-      %88100 = OpLabel
-      %88103 = OpLoad %uint %83860
-      %88104 = OpBitwiseAnd %uint %88103 %uint_32768
-      %88105 = OpUGreaterThan %bool %88104 %uint_0
-               OpSelectionMerge %96542 None
-               OpSwitch %uint_0 %96526
-      %96526 = OpLabel
-               OpSelectionMerge %96541 None
-               OpBranchConditional %88105 %96528 %96536
-      %96536 = OpLabel
-      %96538 = OpISub %uint %158802 %int_1
-      %96539 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96538
-      %96540 = OpLoad %_arr_v3float_uint_2 %96539
-     %102050 = OpCompositeExtract %v3float %96540 0
-     %102051 = OpCompositeExtract %v3float %96540 1
-               OpBranch %96542
-      %96528 = OpLabel
-      %96530 = OpIAdd %uint %158805 %int_1
-      %96531 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96532 = OpLoad %v3float %96531
-               OpBranch %96542
-      %96541 = OpLabel
-               OpUnreachable
-      %96542 = OpLabel
-     %242526 = OpPhi %uint %96530 %96528 %158805 %96536
-     %163388 = OpPhi %uint %158802 %96528 %96538 %96536
-     %163387 = OpPhi %v3float %96532 %96528 %102050 %96536
-     %163386 = OpPhi %v3float %96532 %96528 %102051 %96536
-      %88109 = OpExtInst %v3float %1 FSign %163387
-      %88113 = OpExtInst %v3float %1 FSign %163386
-      %88119 = OpExtInst %v3float %1 FMin %88109 %88113
-      %88125 = OpExtInst %v3float %1 FMax %88109 %88113
-     %104496 = OpCompositeConstruct %_arr_v3float_uint_2 %88119 %88125
-      %96546 = OpIAdd %uint %163388 %int_1
-      %96548 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163388
-               OpStore %96548 %104496
-               OpBranch %92278
-      %88071 = OpLabel
-      %88074 = OpLoad %uint %83860
-      %88075 = OpBitwiseAnd %uint %88074 %uint_32768
-      %88076 = OpUGreaterThan %bool %88075 %uint_0
-               OpSelectionMerge %96514 None
-               OpSwitch %uint_0 %96498
-      %96498 = OpLabel
-               OpSelectionMerge %96513 None
-               OpBranchConditional %88076 %96500 %96508
-      %96508 = OpLabel
-      %96510 = OpISub %uint %158802 %int_1
-      %96511 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %96510
-      %96512 = OpLoad %_arr_v3float_uint_2 %96511
-     %102059 = OpCompositeExtract %v3float %96512 0
-     %102060 = OpCompositeExtract %v3float %96512 1
-               OpBranch %96514
-      %96500 = OpLabel
-      %96502 = OpIAdd %uint %158805 %int_1
-      %96503 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %96504 = OpLoad %v3float %96503
-               OpBranch %96514
-      %96513 = OpLabel
-               OpUnreachable
-      %96514 = OpLabel
-     %242525 = OpPhi %uint %96502 %96500 %158805 %96508
-     %163391 = OpPhi %uint %158802 %96500 %96510 %96508
-     %163390 = OpPhi %v3float %96504 %96500 %102059 %96508
-     %163389 = OpPhi %v3float %96504 %96500 %102060 %96508
-      %88080 = OpExtInst %v3float %1 FAbs %163390
-      %88084 = OpExtInst %v3float %1 FAbs %163389
-      %88090 = OpExtInst %v3float %1 FMin %88080 %88084
-      %88096 = OpExtInst %v3float %1 FMax %88080 %88084
-     %104487 = OpCompositeConstruct %_arr_v3float_uint_2 %88090 %88096
-      %96518 = OpIAdd %uint %163391 %int_1
-      %96520 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %163391
-               OpStore %96520 %104487
-               OpBranch %92278
-      %87989 = OpLabel
-      %87992 = OpLoad %uint %83860
-      %87993 = OpBitwiseAnd %uint %87992 %uint_32768
-      %87994 = OpUGreaterThan %bool %87993 %uint_0
-               OpSelectionMerge %96440 None
-               OpSwitch %uint_0 %96424
-      %96424 = OpLabel
-               OpSelectionMerge %96439 None
-               OpBranchConditional %87994 %96426 %96434
-      %96434 = OpLabel
-      %96436 = OpISub %uint %158813 %int_1
-      %96437 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96436
-      %96438 = OpLoad %_arr_v2float_uint_2 %96437
-     %102086 = OpCompositeExtract %v2float %96438 0
-     %102087 = OpCompositeExtract %v2float %96438 1
-               OpBranch %96440
-      %96426 = OpLabel
-      %96428 = OpIAdd %uint %160807 %int_1
-      %96429 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96430 = OpLoad %v2float %96429
-               OpBranch %96440
-      %96439 = OpLabel
-               OpUnreachable
-      %96440 = OpLabel
-     %163396 = OpPhi %uint %96428 %96426 %160807 %96434
-     %163395 = OpPhi %uint %158813 %96426 %96436 %96434
-     %163393 = OpPhi %v2float %96430 %96426 %102086 %96434
-     %163392 = OpPhi %v2float %96430 %96426 %102087 %96434
-      %87998 = OpLoad %uint %83860
-      %87999 = OpBitwiseAnd %uint %87998 %uint_16384
-      %88000 = OpUGreaterThan %bool %87999 %uint_0
-               OpSelectionMerge %96463 None
-               OpSwitch %uint_0 %96447
-      %96447 = OpLabel
-               OpSelectionMerge %96462 None
-               OpBranchConditional %88000 %96449 %96457
-      %96457 = OpLabel
-      %96459 = OpISub %uint %163395 %int_1
-      %96460 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96459
-      %96461 = OpLoad %_arr_v2float_uint_2 %96460
-     %102077 = OpCompositeExtract %v2float %96461 0
-     %102078 = OpCompositeExtract %v2float %96461 1
-               OpBranch %96463
-      %96449 = OpLabel
-      %96451 = OpIAdd %uint %163396 %int_1
-      %96452 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %163396
-      %96453 = OpLoad %v2float %96452
-               OpBranch %96463
-      %96462 = OpLabel
-               OpUnreachable
-      %96463 = OpLabel
-     %163401 = OpPhi %uint %96451 %96449 %163396 %96457
-     %163400 = OpPhi %uint %163395 %96449 %96459 %96457
-     %163398 = OpPhi %v2float %96453 %96449 %102077 %96457
-     %163397 = OpPhi %v2float %96453 %96449 %102078 %96457
-      %88004 = OpLoad %uint %83860
-      %88005 = OpBitwiseAnd %uint %88004 %uint_8192
-      %88006 = OpUGreaterThan %bool %88005 %uint_0
-               OpSelectionMerge %96486 None
-               OpSwitch %uint_0 %96470
-      %96470 = OpLabel
-               OpSelectionMerge %96485 None
-               OpBranchConditional %88006 %96472 %96480
-      %96480 = OpLabel
-      %96482 = OpISub %uint %163400 %int_1
-      %96483 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96482
-      %96484 = OpLoad %_arr_v2float_uint_2 %96483
-     %102068 = OpCompositeExtract %v2float %96484 0
-     %102069 = OpCompositeExtract %v2float %96484 1
-               OpBranch %96486
-      %96472 = OpLabel
-      %96474 = OpIAdd %uint %163401 %int_1
-      %96475 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %163401
-      %96476 = OpLoad %v2float %96475
-               OpBranch %96486
-      %96485 = OpLabel
-               OpUnreachable
-      %96486 = OpLabel
-     %244874 = OpPhi %uint %96474 %96472 %163401 %96480
-     %163410 = OpPhi %uint %163400 %96472 %96482 %96480
-     %163403 = OpPhi %v2float %96476 %96472 %102068 %96480
-     %163402 = OpPhi %v2float %96476 %96472 %102069 %96480
-      %88012 = OpFMul %v2float %163393 %163398
-      %88018 = OpFMul %v2float %163393 %163397
-      %88024 = OpFMul %v2float %163392 %163398
-      %88030 = OpFMul %v2float %163392 %163397
-      %88040 = OpExtInst %v2float %1 FMin %88024 %88030
-      %88041 = OpExtInst %v2float %1 FMin %88018 %88040
-      %88042 = OpExtInst %v2float %1 FMin %88012 %88041
-      %88052 = OpExtInst %v2float %1 FMax %88024 %88030
-      %88053 = OpExtInst %v2float %1 FMax %88018 %88052
-      %88054 = OpExtInst %v2float %1 FMax %88012 %88053
-      %88061 = OpFAdd %v2float %88042 %163403
-      %88067 = OpFAdd %v2float %88054 %163402
-     %104470 = OpCompositeConstruct %_arr_v2float_uint_2 %88061 %88067
-      %96490 = OpIAdd %uint %163410 %int_1
-      %96492 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163410
-               OpStore %96492 %104470
-               OpBranch %92278
-      %87962 = OpLabel
-      %87965 = OpLoad %uint %83860
-      %87966 = OpBitwiseAnd %uint %87965 %uint_32768
-      %87967 = OpUGreaterThan %bool %87966 %uint_0
-               OpSelectionMerge %96389 None
-               OpSwitch %uint_0 %96373
-      %96373 = OpLabel
-               OpSelectionMerge %96388 None
-               OpBranchConditional %87967 %96375 %96383
-      %96383 = OpLabel
-      %96385 = OpISub %uint %158813 %int_1
-      %96386 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96385
-      %96387 = OpLoad %_arr_v2float_uint_2 %96386
-     %102104 = OpCompositeExtract %v2float %96387 0
-     %102105 = OpCompositeExtract %v2float %96387 1
-               OpBranch %96389
-      %96375 = OpLabel
-      %96377 = OpIAdd %uint %160807 %int_1
-      %96378 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96379 = OpLoad %v2float %96378
-               OpBranch %96389
-      %96388 = OpLabel
-               OpUnreachable
-      %96389 = OpLabel
-     %163415 = OpPhi %uint %96377 %96375 %160807 %96383
-     %163414 = OpPhi %uint %158813 %96375 %96385 %96383
-     %163412 = OpPhi %v2float %96379 %96375 %102104 %96383
-     %163411 = OpPhi %v2float %96379 %96375 %102105 %96383
-      %87971 = OpLoad %uint %83860
-      %87972 = OpBitwiseAnd %uint %87971 %uint_16384
-      %87973 = OpUGreaterThan %bool %87972 %uint_0
-               OpSelectionMerge %96412 None
-               OpSwitch %uint_0 %96396
-      %96396 = OpLabel
-               OpSelectionMerge %96411 None
-               OpBranchConditional %87973 %96398 %96406
-      %96406 = OpLabel
-      %96408 = OpISub %uint %163414 %int_1
-      %96409 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96408
-      %96410 = OpLoad %_arr_v2float_uint_2 %96409
-     %102095 = OpCompositeExtract %v2float %96410 0
-     %102096 = OpCompositeExtract %v2float %96410 1
-               OpBranch %96412
-      %96398 = OpLabel
-      %96400 = OpIAdd %uint %163415 %int_1
-      %96401 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %163415
-      %96402 = OpLoad %v2float %96401
-               OpBranch %96412
-      %96411 = OpLabel
-               OpUnreachable
-      %96412 = OpLabel
-     %244873 = OpPhi %uint %96400 %96398 %163415 %96406
-     %163420 = OpPhi %uint %163414 %96398 %96408 %96406
-     %163417 = OpPhi %v2float %96402 %96398 %102095 %96406
-     %163416 = OpPhi %v2float %96402 %96398 %102096 %96406
-      %87979 = OpExtInst %v2float %1 FMax %163412 %163417
-      %87985 = OpExtInst %v2float %1 FMax %163411 %163416
-     %104459 = OpCompositeConstruct %_arr_v2float_uint_2 %87979 %87985
-      %96416 = OpIAdd %uint %163420 %int_1
-      %96418 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163420
-               OpStore %96418 %104459
-               OpBranch %92278
-      %87935 = OpLabel
-      %87938 = OpLoad %uint %83860
-      %87939 = OpBitwiseAnd %uint %87938 %uint_32768
-      %87940 = OpUGreaterThan %bool %87939 %uint_0
-               OpSelectionMerge %96338 None
-               OpSwitch %uint_0 %96322
-      %96322 = OpLabel
-               OpSelectionMerge %96337 None
-               OpBranchConditional %87940 %96324 %96332
-      %96332 = OpLabel
-      %96334 = OpISub %uint %158813 %int_1
-      %96335 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96334
-      %96336 = OpLoad %_arr_v2float_uint_2 %96335
-     %102122 = OpCompositeExtract %v2float %96336 0
-     %102123 = OpCompositeExtract %v2float %96336 1
-               OpBranch %96338
-      %96324 = OpLabel
-      %96326 = OpIAdd %uint %160807 %int_1
-      %96327 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96328 = OpLoad %v2float %96327
-               OpBranch %96338
-      %96337 = OpLabel
-               OpUnreachable
-      %96338 = OpLabel
-     %163425 = OpPhi %uint %96326 %96324 %160807 %96332
-     %163424 = OpPhi %uint %158813 %96324 %96334 %96332
-     %163422 = OpPhi %v2float %96328 %96324 %102122 %96332
-     %163421 = OpPhi %v2float %96328 %96324 %102123 %96332
-      %87944 = OpLoad %uint %83860
-      %87945 = OpBitwiseAnd %uint %87944 %uint_16384
-      %87946 = OpUGreaterThan %bool %87945 %uint_0
-               OpSelectionMerge %96361 None
-               OpSwitch %uint_0 %96345
-      %96345 = OpLabel
-               OpSelectionMerge %96360 None
-               OpBranchConditional %87946 %96347 %96355
-      %96355 = OpLabel
-      %96357 = OpISub %uint %163424 %int_1
-      %96358 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96357
-      %96359 = OpLoad %_arr_v2float_uint_2 %96358
-     %102113 = OpCompositeExtract %v2float %96359 0
-     %102114 = OpCompositeExtract %v2float %96359 1
-               OpBranch %96361
-      %96347 = OpLabel
-      %96349 = OpIAdd %uint %163425 %int_1
-      %96350 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %163425
-      %96351 = OpLoad %v2float %96350
-               OpBranch %96361
-      %96360 = OpLabel
-               OpUnreachable
-      %96361 = OpLabel
-     %244872 = OpPhi %uint %96349 %96347 %163425 %96355
-     %163430 = OpPhi %uint %163424 %96347 %96357 %96355
-     %163427 = OpPhi %v2float %96351 %96347 %102113 %96355
-     %163426 = OpPhi %v2float %96351 %96347 %102114 %96355
-      %87952 = OpExtInst %v2float %1 FMin %163422 %163427
-      %87958 = OpExtInst %v2float %1 FMin %163421 %163426
-     %104448 = OpCompositeConstruct %_arr_v2float_uint_2 %87952 %87958
-      %96365 = OpIAdd %uint %163430 %int_1
-      %96367 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163430
-               OpStore %96367 %104448
-               OpBranch %92278
-      %87906 = OpLabel
-      %87909 = OpLoad %uint %83860
-      %87910 = OpBitwiseAnd %uint %87909 %uint_32768
-      %87911 = OpUGreaterThan %bool %87910 %uint_0
-               OpSelectionMerge %96310 None
-               OpSwitch %uint_0 %96294
-      %96294 = OpLabel
-               OpSelectionMerge %96309 None
-               OpBranchConditional %87911 %96296 %96304
-      %96304 = OpLabel
-      %96306 = OpISub %uint %158813 %int_1
-      %96307 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96306
-      %96308 = OpLoad %_arr_v2float_uint_2 %96307
-     %102131 = OpCompositeExtract %v2float %96308 0
-     %102132 = OpCompositeExtract %v2float %96308 1
-               OpBranch %96310
-      %96296 = OpLabel
-      %96298 = OpIAdd %uint %160807 %int_1
-      %96299 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96300 = OpLoad %v2float %96299
-               OpBranch %96310
-      %96309 = OpLabel
-               OpUnreachable
-      %96310 = OpLabel
-     %244871 = OpPhi %uint %96298 %96296 %160807 %96304
-     %163433 = OpPhi %uint %158813 %96296 %96306 %96304
-     %163432 = OpPhi %v2float %96300 %96296 %102131 %96304
-     %163431 = OpPhi %v2float %96300 %96296 %102132 %96304
-      %87915 = OpExtInst %v2float %1 Trunc %163432
-      %87919 = OpExtInst %v2float %1 Trunc %163431
-      %87925 = OpExtInst %v2float %1 FMin %87915 %87919
-      %87931 = OpExtInst %v2float %1 FMax %87915 %87919
-     %104439 = OpCompositeConstruct %_arr_v2float_uint_2 %87925 %87931
-      %96314 = OpIAdd %uint %163433 %int_1
-      %96316 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163433
-               OpStore %96316 %104439
-               OpBranch %92278
-      %87877 = OpLabel
-      %87880 = OpLoad %uint %83860
-      %87881 = OpBitwiseAnd %uint %87880 %uint_32768
-      %87882 = OpUGreaterThan %bool %87881 %uint_0
-               OpSelectionMerge %96282 None
-               OpSwitch %uint_0 %96266
-      %96266 = OpLabel
-               OpSelectionMerge %96281 None
-               OpBranchConditional %87882 %96268 %96276
-      %96276 = OpLabel
-      %96278 = OpISub %uint %158813 %int_1
-      %96279 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96278
-      %96280 = OpLoad %_arr_v2float_uint_2 %96279
-     %102140 = OpCompositeExtract %v2float %96280 0
-     %102141 = OpCompositeExtract %v2float %96280 1
-               OpBranch %96282
-      %96268 = OpLabel
-      %96270 = OpIAdd %uint %160807 %int_1
-      %96271 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96272 = OpLoad %v2float %96271
-               OpBranch %96282
-      %96281 = OpLabel
-               OpUnreachable
-      %96282 = OpLabel
-     %244870 = OpPhi %uint %96270 %96268 %160807 %96276
-     %163436 = OpPhi %uint %158813 %96268 %96278 %96276
-     %163435 = OpPhi %v2float %96272 %96268 %102140 %96276
-     %163434 = OpPhi %v2float %96272 %96268 %102141 %96276
-      %87886 = OpExtInst %v2float %1 Round %163435
-      %87890 = OpExtInst %v2float %1 Round %163434
-      %87896 = OpExtInst %v2float %1 FMin %87886 %87890
-      %87902 = OpExtInst %v2float %1 FMax %87886 %87890
-     %104430 = OpCompositeConstruct %_arr_v2float_uint_2 %87896 %87902
-      %96286 = OpIAdd %uint %163436 %int_1
-      %96288 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163436
-               OpStore %96288 %104430
-               OpBranch %92278
-      %87848 = OpLabel
-      %87851 = OpLoad %uint %83860
-      %87852 = OpBitwiseAnd %uint %87851 %uint_32768
-      %87853 = OpUGreaterThan %bool %87852 %uint_0
-               OpSelectionMerge %96254 None
-               OpSwitch %uint_0 %96238
-      %96238 = OpLabel
-               OpSelectionMerge %96253 None
-               OpBranchConditional %87853 %96240 %96248
-      %96248 = OpLabel
-      %96250 = OpISub %uint %158813 %int_1
-      %96251 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96250
-      %96252 = OpLoad %_arr_v2float_uint_2 %96251
-     %102149 = OpCompositeExtract %v2float %96252 0
-     %102150 = OpCompositeExtract %v2float %96252 1
-               OpBranch %96254
-      %96240 = OpLabel
-      %96242 = OpIAdd %uint %160807 %int_1
-      %96243 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96244 = OpLoad %v2float %96243
-               OpBranch %96254
-      %96253 = OpLabel
-               OpUnreachable
-      %96254 = OpLabel
-     %244869 = OpPhi %uint %96242 %96240 %160807 %96248
-     %163439 = OpPhi %uint %158813 %96240 %96250 %96248
-     %163438 = OpPhi %v2float %96244 %96240 %102149 %96248
-     %163437 = OpPhi %v2float %96244 %96240 %102150 %96248
-      %87857 = OpExtInst %v2float %1 Tanh %163438
-      %87861 = OpExtInst %v2float %1 Tanh %163437
-      %87867 = OpExtInst %v2float %1 FMin %87857 %87861
-      %87873 = OpExtInst %v2float %1 FMax %87857 %87861
-     %104421 = OpCompositeConstruct %_arr_v2float_uint_2 %87867 %87873
-      %96258 = OpIAdd %uint %163439 %int_1
-      %96260 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163439
-               OpStore %96260 %104421
-               OpBranch %92278
-      %87819 = OpLabel
-      %87822 = OpLoad %uint %83860
-      %87823 = OpBitwiseAnd %uint %87822 %uint_32768
-      %87824 = OpUGreaterThan %bool %87823 %uint_0
-               OpSelectionMerge %96226 None
-               OpSwitch %uint_0 %96210
-      %96210 = OpLabel
-               OpSelectionMerge %96225 None
-               OpBranchConditional %87824 %96212 %96220
-      %96220 = OpLabel
-      %96222 = OpISub %uint %158813 %int_1
-      %96223 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96222
-      %96224 = OpLoad %_arr_v2float_uint_2 %96223
-     %102158 = OpCompositeExtract %v2float %96224 0
-     %102159 = OpCompositeExtract %v2float %96224 1
-               OpBranch %96226
-      %96212 = OpLabel
-      %96214 = OpIAdd %uint %160807 %int_1
-      %96215 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96216 = OpLoad %v2float %96215
-               OpBranch %96226
-      %96225 = OpLabel
-               OpUnreachable
-      %96226 = OpLabel
-     %244868 = OpPhi %uint %96214 %96212 %160807 %96220
-     %163442 = OpPhi %uint %158813 %96212 %96222 %96220
-     %163441 = OpPhi %v2float %96216 %96212 %102158 %96220
-     %163440 = OpPhi %v2float %96216 %96212 %102159 %96220
-      %87828 = OpExtInst %v2float %1 Sinh %163441
-      %87832 = OpExtInst %v2float %1 Sinh %163440
-      %87838 = OpExtInst %v2float %1 FMin %87828 %87832
-      %87844 = OpExtInst %v2float %1 FMax %87828 %87832
-     %104412 = OpCompositeConstruct %_arr_v2float_uint_2 %87838 %87844
-      %96230 = OpIAdd %uint %163442 %int_1
-      %96232 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163442
-               OpStore %96232 %104412
-               OpBranch %92278
-      %87790 = OpLabel
-      %87793 = OpLoad %uint %83860
-      %87794 = OpBitwiseAnd %uint %87793 %uint_32768
-      %87795 = OpUGreaterThan %bool %87794 %uint_0
-               OpSelectionMerge %96198 None
-               OpSwitch %uint_0 %96182
-      %96182 = OpLabel
-               OpSelectionMerge %96197 None
-               OpBranchConditional %87795 %96184 %96192
-      %96192 = OpLabel
-      %96194 = OpISub %uint %158813 %int_1
-      %96195 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96194
-      %96196 = OpLoad %_arr_v2float_uint_2 %96195
-     %102167 = OpCompositeExtract %v2float %96196 0
-     %102168 = OpCompositeExtract %v2float %96196 1
-               OpBranch %96198
-      %96184 = OpLabel
-      %96186 = OpIAdd %uint %160807 %int_1
-      %96187 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96188 = OpLoad %v2float %96187
-               OpBranch %96198
-      %96197 = OpLabel
-               OpUnreachable
-      %96198 = OpLabel
-     %244867 = OpPhi %uint %96186 %96184 %160807 %96192
-     %163445 = OpPhi %uint %158813 %96184 %96194 %96192
-     %163444 = OpPhi %v2float %96188 %96184 %102167 %96192
-     %163443 = OpPhi %v2float %96188 %96184 %102168 %96192
-      %87799 = OpExtInst %v2float %1 Cosh %163444
-      %87803 = OpExtInst %v2float %1 Cosh %163443
-      %87809 = OpExtInst %v2float %1 FMin %87799 %87803
-      %87815 = OpExtInst %v2float %1 FMax %87799 %87803
-     %104403 = OpCompositeConstruct %_arr_v2float_uint_2 %87809 %87815
-      %96202 = OpIAdd %uint %163445 %int_1
-      %96204 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163445
-               OpStore %96204 %104403
-               OpBranch %92278
-      %87761 = OpLabel
-      %87764 = OpLoad %uint %83860
-      %87765 = OpBitwiseAnd %uint %87764 %uint_32768
-      %87766 = OpUGreaterThan %bool %87765 %uint_0
-               OpSelectionMerge %96170 None
-               OpSwitch %uint_0 %96154
-      %96154 = OpLabel
-               OpSelectionMerge %96169 None
-               OpBranchConditional %87766 %96156 %96164
-      %96164 = OpLabel
-      %96166 = OpISub %uint %158813 %int_1
-      %96167 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96166
-      %96168 = OpLoad %_arr_v2float_uint_2 %96167
-     %102176 = OpCompositeExtract %v2float %96168 0
-     %102177 = OpCompositeExtract %v2float %96168 1
-               OpBranch %96170
-      %96156 = OpLabel
-      %96158 = OpIAdd %uint %160807 %int_1
-      %96159 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96160 = OpLoad %v2float %96159
-               OpBranch %96170
-      %96169 = OpLabel
-               OpUnreachable
-      %96170 = OpLabel
-     %244866 = OpPhi %uint %96158 %96156 %160807 %96164
-     %163448 = OpPhi %uint %158813 %96156 %96166 %96164
-     %163447 = OpPhi %v2float %96160 %96156 %102176 %96164
-     %163446 = OpPhi %v2float %96160 %96156 %102177 %96164
-      %87770 = OpExtInst %v2float %1 Atanh %163447
-      %87774 = OpExtInst %v2float %1 Atanh %163446
-      %87780 = OpExtInst %v2float %1 FMin %87770 %87774
-      %87786 = OpExtInst %v2float %1 FMax %87770 %87774
-     %104394 = OpCompositeConstruct %_arr_v2float_uint_2 %87780 %87786
-      %96174 = OpIAdd %uint %163448 %int_1
-      %96176 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163448
-               OpStore %96176 %104394
-               OpBranch %92278
-      %87732 = OpLabel
-      %87735 = OpLoad %uint %83860
-      %87736 = OpBitwiseAnd %uint %87735 %uint_32768
-      %87737 = OpUGreaterThan %bool %87736 %uint_0
-               OpSelectionMerge %96142 None
-               OpSwitch %uint_0 %96126
-      %96126 = OpLabel
-               OpSelectionMerge %96141 None
-               OpBranchConditional %87737 %96128 %96136
-      %96136 = OpLabel
-      %96138 = OpISub %uint %158813 %int_1
-      %96139 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96138
-      %96140 = OpLoad %_arr_v2float_uint_2 %96139
-     %102185 = OpCompositeExtract %v2float %96140 0
-     %102186 = OpCompositeExtract %v2float %96140 1
-               OpBranch %96142
-      %96128 = OpLabel
-      %96130 = OpIAdd %uint %160807 %int_1
-      %96131 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96132 = OpLoad %v2float %96131
-               OpBranch %96142
-      %96141 = OpLabel
-               OpUnreachable
-      %96142 = OpLabel
-     %244865 = OpPhi %uint %96130 %96128 %160807 %96136
-     %163451 = OpPhi %uint %158813 %96128 %96138 %96136
-     %163450 = OpPhi %v2float %96132 %96128 %102185 %96136
-     %163449 = OpPhi %v2float %96132 %96128 %102186 %96136
-      %87741 = OpExtInst %v2float %1 Asinh %163450
-      %87745 = OpExtInst %v2float %1 Asinh %163449
-      %87751 = OpExtInst %v2float %1 FMin %87741 %87745
-      %87757 = OpExtInst %v2float %1 FMax %87741 %87745
-     %104385 = OpCompositeConstruct %_arr_v2float_uint_2 %87751 %87757
-      %96146 = OpIAdd %uint %163451 %int_1
-      %96148 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163451
-               OpStore %96148 %104385
-               OpBranch %92278
-      %87703 = OpLabel
-      %87706 = OpLoad %uint %83860
-      %87707 = OpBitwiseAnd %uint %87706 %uint_32768
-      %87708 = OpUGreaterThan %bool %87707 %uint_0
-               OpSelectionMerge %96114 None
-               OpSwitch %uint_0 %96098
-      %96098 = OpLabel
-               OpSelectionMerge %96113 None
-               OpBranchConditional %87708 %96100 %96108
-      %96108 = OpLabel
-      %96110 = OpISub %uint %158813 %int_1
-      %96111 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96110
-      %96112 = OpLoad %_arr_v2float_uint_2 %96111
-     %102194 = OpCompositeExtract %v2float %96112 0
-     %102195 = OpCompositeExtract %v2float %96112 1
-               OpBranch %96114
-      %96100 = OpLabel
-      %96102 = OpIAdd %uint %160807 %int_1
-      %96103 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96104 = OpLoad %v2float %96103
-               OpBranch %96114
-      %96113 = OpLabel
-               OpUnreachable
-      %96114 = OpLabel
-     %244864 = OpPhi %uint %96102 %96100 %160807 %96108
-     %163454 = OpPhi %uint %158813 %96100 %96110 %96108
-     %163453 = OpPhi %v2float %96104 %96100 %102194 %96108
-     %163452 = OpPhi %v2float %96104 %96100 %102195 %96108
-      %87712 = OpExtInst %v2float %1 Acosh %163453
-      %87716 = OpExtInst %v2float %1 Acosh %163452
-      %87722 = OpExtInst %v2float %1 FMin %87712 %87716
-      %87728 = OpExtInst %v2float %1 FMax %87712 %87716
-     %104376 = OpCompositeConstruct %_arr_v2float_uint_2 %87722 %87728
-      %96118 = OpIAdd %uint %163454 %int_1
-      %96120 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163454
-               OpStore %96120 %104376
-               OpBranch %92278
-      %87674 = OpLabel
-      %87677 = OpLoad %uint %83860
-      %87678 = OpBitwiseAnd %uint %87677 %uint_32768
-      %87679 = OpUGreaterThan %bool %87678 %uint_0
-               OpSelectionMerge %96086 None
-               OpSwitch %uint_0 %96070
-      %96070 = OpLabel
-               OpSelectionMerge %96085 None
-               OpBranchConditional %87679 %96072 %96080
-      %96080 = OpLabel
-      %96082 = OpISub %uint %158813 %int_1
-      %96083 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96082
-      %96084 = OpLoad %_arr_v2float_uint_2 %96083
-     %102203 = OpCompositeExtract %v2float %96084 0
-     %102204 = OpCompositeExtract %v2float %96084 1
-               OpBranch %96086
-      %96072 = OpLabel
-      %96074 = OpIAdd %uint %160807 %int_1
-      %96075 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96076 = OpLoad %v2float %96075
-               OpBranch %96086
-      %96085 = OpLabel
-               OpUnreachable
-      %96086 = OpLabel
-     %244863 = OpPhi %uint %96074 %96072 %160807 %96080
-     %163457 = OpPhi %uint %158813 %96072 %96082 %96080
-     %163456 = OpPhi %v2float %96076 %96072 %102203 %96080
-     %163455 = OpPhi %v2float %96076 %96072 %102204 %96080
-      %87683 = OpExtInst %v2float %1 Atan %163456
-      %87687 = OpExtInst %v2float %1 Atan %163455
-      %87693 = OpExtInst %v2float %1 FMin %87683 %87687
-      %87699 = OpExtInst %v2float %1 FMax %87683 %87687
-     %104367 = OpCompositeConstruct %_arr_v2float_uint_2 %87693 %87699
-      %96090 = OpIAdd %uint %163457 %int_1
-      %96092 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163457
-               OpStore %96092 %104367
-               OpBranch %92278
-      %87645 = OpLabel
-      %87648 = OpLoad %uint %83860
-      %87649 = OpBitwiseAnd %uint %87648 %uint_32768
-      %87650 = OpUGreaterThan %bool %87649 %uint_0
-               OpSelectionMerge %96058 None
-               OpSwitch %uint_0 %96042
-      %96042 = OpLabel
-               OpSelectionMerge %96057 None
-               OpBranchConditional %87650 %96044 %96052
-      %96052 = OpLabel
-      %96054 = OpISub %uint %158813 %int_1
-      %96055 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96054
-      %96056 = OpLoad %_arr_v2float_uint_2 %96055
-     %102212 = OpCompositeExtract %v2float %96056 0
-     %102213 = OpCompositeExtract %v2float %96056 1
-               OpBranch %96058
-      %96044 = OpLabel
-      %96046 = OpIAdd %uint %160807 %int_1
-      %96047 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96048 = OpLoad %v2float %96047
-               OpBranch %96058
-      %96057 = OpLabel
-               OpUnreachable
-      %96058 = OpLabel
-     %244862 = OpPhi %uint %96046 %96044 %160807 %96052
-     %163460 = OpPhi %uint %158813 %96044 %96054 %96052
-     %163459 = OpPhi %v2float %96048 %96044 %102212 %96052
-     %163458 = OpPhi %v2float %96048 %96044 %102213 %96052
-      %87654 = OpExtInst %v2float %1 Acos %163459
-      %87658 = OpExtInst %v2float %1 Acos %163458
-      %87664 = OpExtInst %v2float %1 FMin %87654 %87658
-      %87670 = OpExtInst %v2float %1 FMax %87654 %87658
-     %104358 = OpCompositeConstruct %_arr_v2float_uint_2 %87664 %87670
-      %96062 = OpIAdd %uint %163460 %int_1
-      %96064 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163460
-               OpStore %96064 %104358
-               OpBranch %92278
-      %87616 = OpLabel
-      %87619 = OpLoad %uint %83860
-      %87620 = OpBitwiseAnd %uint %87619 %uint_32768
-      %87621 = OpUGreaterThan %bool %87620 %uint_0
-               OpSelectionMerge %96030 None
-               OpSwitch %uint_0 %96014
-      %96014 = OpLabel
-               OpSelectionMerge %96029 None
-               OpBranchConditional %87621 %96016 %96024
-      %96024 = OpLabel
-      %96026 = OpISub %uint %158813 %int_1
-      %96027 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %96026
-      %96028 = OpLoad %_arr_v2float_uint_2 %96027
-     %102221 = OpCompositeExtract %v2float %96028 0
-     %102222 = OpCompositeExtract %v2float %96028 1
-               OpBranch %96030
-      %96016 = OpLabel
-      %96018 = OpIAdd %uint %160807 %int_1
-      %96019 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %96020 = OpLoad %v2float %96019
-               OpBranch %96030
-      %96029 = OpLabel
-               OpUnreachable
-      %96030 = OpLabel
-     %244861 = OpPhi %uint %96018 %96016 %160807 %96024
-     %163463 = OpPhi %uint %158813 %96016 %96026 %96024
-     %163462 = OpPhi %v2float %96020 %96016 %102221 %96024
-     %163461 = OpPhi %v2float %96020 %96016 %102222 %96024
-      %87625 = OpExtInst %v2float %1 Asin %163462
-      %87629 = OpExtInst %v2float %1 Asin %163461
-      %87635 = OpExtInst %v2float %1 FMin %87625 %87629
-      %87641 = OpExtInst %v2float %1 FMax %87625 %87629
-     %104349 = OpCompositeConstruct %_arr_v2float_uint_2 %87635 %87641
-      %96034 = OpIAdd %uint %163463 %int_1
-      %96036 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163463
-               OpStore %96036 %104349
-               OpBranch %92278
-      %87587 = OpLabel
-      %87590 = OpLoad %uint %83860
-      %87591 = OpBitwiseAnd %uint %87590 %uint_32768
-      %87592 = OpUGreaterThan %bool %87591 %uint_0
-               OpSelectionMerge %96002 None
-               OpSwitch %uint_0 %95986
-      %95986 = OpLabel
-               OpSelectionMerge %96001 None
-               OpBranchConditional %87592 %95988 %95996
-      %95996 = OpLabel
-      %95998 = OpISub %uint %158813 %int_1
-      %95999 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95998
-      %96000 = OpLoad %_arr_v2float_uint_2 %95999
-     %102230 = OpCompositeExtract %v2float %96000 0
-     %102231 = OpCompositeExtract %v2float %96000 1
-               OpBranch %96002
-      %95988 = OpLabel
-      %95990 = OpIAdd %uint %160807 %int_1
-      %95991 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95992 = OpLoad %v2float %95991
-               OpBranch %96002
-      %96001 = OpLabel
-               OpUnreachable
-      %96002 = OpLabel
-     %244860 = OpPhi %uint %95990 %95988 %160807 %95996
-     %163466 = OpPhi %uint %158813 %95988 %95998 %95996
-     %163465 = OpPhi %v2float %95992 %95988 %102230 %95996
-     %163464 = OpPhi %v2float %95992 %95988 %102231 %95996
-      %87596 = OpExtInst %v2float %1 Tan %163465
-      %87600 = OpExtInst %v2float %1 Tan %163464
-      %87606 = OpExtInst %v2float %1 FMin %87596 %87600
-      %87612 = OpExtInst %v2float %1 FMax %87596 %87600
-     %104340 = OpCompositeConstruct %_arr_v2float_uint_2 %87606 %87612
-      %96006 = OpIAdd %uint %163466 %int_1
-      %96008 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163466
-               OpStore %96008 %104340
-               OpBranch %92278
-      %87558 = OpLabel
-      %87561 = OpLoad %uint %83860
-      %87562 = OpBitwiseAnd %uint %87561 %uint_32768
-      %87563 = OpUGreaterThan %bool %87562 %uint_0
-               OpSelectionMerge %95974 None
-               OpSwitch %uint_0 %95958
-      %95958 = OpLabel
-               OpSelectionMerge %95973 None
-               OpBranchConditional %87563 %95960 %95968
-      %95968 = OpLabel
-      %95970 = OpISub %uint %158813 %int_1
-      %95971 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95970
-      %95972 = OpLoad %_arr_v2float_uint_2 %95971
-     %102239 = OpCompositeExtract %v2float %95972 0
-     %102240 = OpCompositeExtract %v2float %95972 1
-               OpBranch %95974
-      %95960 = OpLabel
-      %95962 = OpIAdd %uint %160807 %int_1
-      %95963 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95964 = OpLoad %v2float %95963
-               OpBranch %95974
-      %95973 = OpLabel
-               OpUnreachable
-      %95974 = OpLabel
-     %244859 = OpPhi %uint %95962 %95960 %160807 %95968
-     %163469 = OpPhi %uint %158813 %95960 %95970 %95968
-     %163468 = OpPhi %v2float %95964 %95960 %102239 %95968
-     %163467 = OpPhi %v2float %95964 %95960 %102240 %95968
-      %87567 = OpExtInst %v2float %1 Cos %163468
-      %87571 = OpExtInst %v2float %1 Cos %163467
-      %87577 = OpExtInst %v2float %1 FMin %87567 %87571
-      %87583 = OpExtInst %v2float %1 FMax %87567 %87571
-     %104331 = OpCompositeConstruct %_arr_v2float_uint_2 %87577 %87583
-      %95978 = OpIAdd %uint %163469 %int_1
-      %95980 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163469
-               OpStore %95980 %104331
-               OpBranch %92278
-      %87529 = OpLabel
-      %87532 = OpLoad %uint %83860
-      %87533 = OpBitwiseAnd %uint %87532 %uint_32768
-      %87534 = OpUGreaterThan %bool %87533 %uint_0
-               OpSelectionMerge %95946 None
-               OpSwitch %uint_0 %95930
-      %95930 = OpLabel
-               OpSelectionMerge %95945 None
-               OpBranchConditional %87534 %95932 %95940
-      %95940 = OpLabel
-      %95942 = OpISub %uint %158813 %int_1
-      %95943 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95942
-      %95944 = OpLoad %_arr_v2float_uint_2 %95943
-     %102248 = OpCompositeExtract %v2float %95944 0
-     %102249 = OpCompositeExtract %v2float %95944 1
-               OpBranch %95946
-      %95932 = OpLabel
-      %95934 = OpIAdd %uint %160807 %int_1
-      %95935 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95936 = OpLoad %v2float %95935
-               OpBranch %95946
-      %95945 = OpLabel
-               OpUnreachable
-      %95946 = OpLabel
-     %244858 = OpPhi %uint %95934 %95932 %160807 %95940
-     %163472 = OpPhi %uint %158813 %95932 %95942 %95940
-     %163471 = OpPhi %v2float %95936 %95932 %102248 %95940
-     %163470 = OpPhi %v2float %95936 %95932 %102249 %95940
-      %87538 = OpExtInst %v2float %1 Sin %163471
-      %87542 = OpExtInst %v2float %1 Sin %163470
-      %87548 = OpExtInst %v2float %1 FMin %87538 %87542
-      %87554 = OpExtInst %v2float %1 FMax %87538 %87542
-     %104322 = OpCompositeConstruct %_arr_v2float_uint_2 %87548 %87554
-      %95950 = OpIAdd %uint %163472 %int_1
-      %95952 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163472
-               OpStore %95952 %104322
-               OpBranch %92278
-      %87500 = OpLabel
-      %87503 = OpLoad %uint %83860
-      %87504 = OpBitwiseAnd %uint %87503 %uint_32768
-      %87505 = OpUGreaterThan %bool %87504 %uint_0
-               OpSelectionMerge %95918 None
-               OpSwitch %uint_0 %95902
-      %95902 = OpLabel
-               OpSelectionMerge %95917 None
-               OpBranchConditional %87505 %95904 %95912
-      %95912 = OpLabel
-      %95914 = OpISub %uint %158813 %int_1
-      %95915 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95914
-      %95916 = OpLoad %_arr_v2float_uint_2 %95915
-     %102257 = OpCompositeExtract %v2float %95916 0
-     %102258 = OpCompositeExtract %v2float %95916 1
-               OpBranch %95918
-      %95904 = OpLabel
-      %95906 = OpIAdd %uint %160807 %int_1
-      %95907 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95908 = OpLoad %v2float %95907
-               OpBranch %95918
-      %95917 = OpLabel
-               OpUnreachable
-      %95918 = OpLabel
-     %244857 = OpPhi %uint %95906 %95904 %160807 %95912
-     %163475 = OpPhi %uint %158813 %95904 %95914 %95912
-     %163474 = OpPhi %v2float %95908 %95904 %102257 %95912
-     %163473 = OpPhi %v2float %95908 %95904 %102258 %95912
-      %87509 = OpExtInst %v2float %1 Log2 %163474
-      %87513 = OpExtInst %v2float %1 Log2 %163473
-      %87519 = OpExtInst %v2float %1 FMin %87509 %87513
-      %87525 = OpExtInst %v2float %1 FMax %87509 %87513
-     %104313 = OpCompositeConstruct %_arr_v2float_uint_2 %87519 %87525
-      %95922 = OpIAdd %uint %163475 %int_1
-      %95924 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163475
-               OpStore %95924 %104313
-               OpBranch %92278
-      %87471 = OpLabel
-      %87474 = OpLoad %uint %83860
-      %87475 = OpBitwiseAnd %uint %87474 %uint_32768
-      %87476 = OpUGreaterThan %bool %87475 %uint_0
-               OpSelectionMerge %95890 None
-               OpSwitch %uint_0 %95874
-      %95874 = OpLabel
-               OpSelectionMerge %95889 None
-               OpBranchConditional %87476 %95876 %95884
-      %95884 = OpLabel
-      %95886 = OpISub %uint %158813 %int_1
-      %95887 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95886
-      %95888 = OpLoad %_arr_v2float_uint_2 %95887
-     %102266 = OpCompositeExtract %v2float %95888 0
-     %102267 = OpCompositeExtract %v2float %95888 1
-               OpBranch %95890
-      %95876 = OpLabel
-      %95878 = OpIAdd %uint %160807 %int_1
-      %95879 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95880 = OpLoad %v2float %95879
-               OpBranch %95890
-      %95889 = OpLabel
-               OpUnreachable
-      %95890 = OpLabel
-     %244856 = OpPhi %uint %95878 %95876 %160807 %95884
-     %163478 = OpPhi %uint %158813 %95876 %95886 %95884
-     %163477 = OpPhi %v2float %95880 %95876 %102266 %95884
-     %163476 = OpPhi %v2float %95880 %95876 %102267 %95884
-      %87480 = OpExtInst %v2float %1 Log %163477
-      %87484 = OpExtInst %v2float %1 Log %163476
-      %87490 = OpExtInst %v2float %1 FMin %87480 %87484
-      %87496 = OpExtInst %v2float %1 FMax %87480 %87484
-     %104304 = OpCompositeConstruct %_arr_v2float_uint_2 %87490 %87496
-      %95894 = OpIAdd %uint %163478 %int_1
-      %95896 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163478
-               OpStore %95896 %104304
-               OpBranch %92278
-      %87442 = OpLabel
-      %87445 = OpLoad %uint %83860
-      %87446 = OpBitwiseAnd %uint %87445 %uint_32768
-      %87447 = OpUGreaterThan %bool %87446 %uint_0
-               OpSelectionMerge %95862 None
-               OpSwitch %uint_0 %95846
-      %95846 = OpLabel
-               OpSelectionMerge %95861 None
-               OpBranchConditional %87447 %95848 %95856
-      %95856 = OpLabel
-      %95858 = OpISub %uint %158813 %int_1
-      %95859 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95858
-      %95860 = OpLoad %_arr_v2float_uint_2 %95859
-     %102275 = OpCompositeExtract %v2float %95860 0
-     %102276 = OpCompositeExtract %v2float %95860 1
-               OpBranch %95862
-      %95848 = OpLabel
-      %95850 = OpIAdd %uint %160807 %int_1
-      %95851 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95852 = OpLoad %v2float %95851
-               OpBranch %95862
-      %95861 = OpLabel
-               OpUnreachable
-      %95862 = OpLabel
-     %244855 = OpPhi %uint %95850 %95848 %160807 %95856
-     %163481 = OpPhi %uint %158813 %95848 %95858 %95856
-     %163480 = OpPhi %v2float %95852 %95848 %102275 %95856
-     %163479 = OpPhi %v2float %95852 %95848 %102276 %95856
-      %87451 = OpExtInst %v2float %1 Exp2 %163480
-      %87455 = OpExtInst %v2float %1 Exp2 %163479
-      %87461 = OpExtInst %v2float %1 FMin %87451 %87455
-      %87467 = OpExtInst %v2float %1 FMax %87451 %87455
-     %104295 = OpCompositeConstruct %_arr_v2float_uint_2 %87461 %87467
-      %95866 = OpIAdd %uint %163481 %int_1
-      %95868 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163481
-               OpStore %95868 %104295
-               OpBranch %92278
-      %87413 = OpLabel
-      %87416 = OpLoad %uint %83860
-      %87417 = OpBitwiseAnd %uint %87416 %uint_32768
-      %87418 = OpUGreaterThan %bool %87417 %uint_0
-               OpSelectionMerge %95834 None
-               OpSwitch %uint_0 %95818
-      %95818 = OpLabel
-               OpSelectionMerge %95833 None
-               OpBranchConditional %87418 %95820 %95828
-      %95828 = OpLabel
-      %95830 = OpISub %uint %158813 %int_1
-      %95831 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95830
-      %95832 = OpLoad %_arr_v2float_uint_2 %95831
-     %102284 = OpCompositeExtract %v2float %95832 0
-     %102285 = OpCompositeExtract %v2float %95832 1
-               OpBranch %95834
-      %95820 = OpLabel
-      %95822 = OpIAdd %uint %160807 %int_1
-      %95823 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95824 = OpLoad %v2float %95823
-               OpBranch %95834
-      %95833 = OpLabel
-               OpUnreachable
-      %95834 = OpLabel
-     %244854 = OpPhi %uint %95822 %95820 %160807 %95828
-     %163484 = OpPhi %uint %158813 %95820 %95830 %95828
-     %163483 = OpPhi %v2float %95824 %95820 %102284 %95828
-     %163482 = OpPhi %v2float %95824 %95820 %102285 %95828
-      %87422 = OpExtInst %v2float %1 Exp %163483
-      %87426 = OpExtInst %v2float %1 Exp %163482
-      %87432 = OpExtInst %v2float %1 FMin %87422 %87426
-      %87438 = OpExtInst %v2float %1 FMax %87422 %87426
-     %104286 = OpCompositeConstruct %_arr_v2float_uint_2 %87432 %87438
-      %95838 = OpIAdd %uint %163484 %int_1
-      %95840 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163484
-               OpStore %95840 %104286
-               OpBranch %92278
-      %87384 = OpLabel
-      %87387 = OpLoad %uint %83860
-      %87388 = OpBitwiseAnd %uint %87387 %uint_32768
-      %87389 = OpUGreaterThan %bool %87388 %uint_0
-               OpSelectionMerge %95806 None
-               OpSwitch %uint_0 %95790
-      %95790 = OpLabel
-               OpSelectionMerge %95805 None
-               OpBranchConditional %87389 %95792 %95800
-      %95800 = OpLabel
-      %95802 = OpISub %uint %158813 %int_1
-      %95803 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95802
-      %95804 = OpLoad %_arr_v2float_uint_2 %95803
-     %102293 = OpCompositeExtract %v2float %95804 0
-     %102294 = OpCompositeExtract %v2float %95804 1
-               OpBranch %95806
-      %95792 = OpLabel
-      %95794 = OpIAdd %uint %160807 %int_1
-      %95795 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95796 = OpLoad %v2float %95795
-               OpBranch %95806
-      %95805 = OpLabel
-               OpUnreachable
-      %95806 = OpLabel
-     %244853 = OpPhi %uint %95794 %95792 %160807 %95800
-     %163487 = OpPhi %uint %158813 %95792 %95802 %95800
-     %163486 = OpPhi %v2float %95796 %95792 %102293 %95800
-     %163485 = OpPhi %v2float %95796 %95792 %102294 %95800
-      %87393 = OpExtInst %v2float %1 InverseSqrt %163486
-      %87397 = OpExtInst %v2float %1 InverseSqrt %163485
-      %87403 = OpExtInst %v2float %1 FMin %87393 %87397
-      %87409 = OpExtInst %v2float %1 FMax %87393 %87397
-     %104277 = OpCompositeConstruct %_arr_v2float_uint_2 %87403 %87409
-      %95810 = OpIAdd %uint %163487 %int_1
-      %95812 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163487
-               OpStore %95812 %104277
-               OpBranch %92278
-      %87355 = OpLabel
-      %87358 = OpLoad %uint %83860
-      %87359 = OpBitwiseAnd %uint %87358 %uint_32768
-      %87360 = OpUGreaterThan %bool %87359 %uint_0
-               OpSelectionMerge %95778 None
-               OpSwitch %uint_0 %95762
-      %95762 = OpLabel
-               OpSelectionMerge %95777 None
-               OpBranchConditional %87360 %95764 %95772
-      %95772 = OpLabel
-      %95774 = OpISub %uint %158813 %int_1
-      %95775 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95774
-      %95776 = OpLoad %_arr_v2float_uint_2 %95775
-     %102302 = OpCompositeExtract %v2float %95776 0
-     %102303 = OpCompositeExtract %v2float %95776 1
-               OpBranch %95778
-      %95764 = OpLabel
-      %95766 = OpIAdd %uint %160807 %int_1
-      %95767 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95768 = OpLoad %v2float %95767
-               OpBranch %95778
-      %95777 = OpLabel
-               OpUnreachable
-      %95778 = OpLabel
-     %244852 = OpPhi %uint %95766 %95764 %160807 %95772
-     %163490 = OpPhi %uint %158813 %95764 %95774 %95772
-     %163489 = OpPhi %v2float %95768 %95764 %102302 %95772
-     %163488 = OpPhi %v2float %95768 %95764 %102303 %95772
-      %87364 = OpExtInst %v2float %1 Sqrt %163489
-      %87368 = OpExtInst %v2float %1 Sqrt %163488
-      %87374 = OpExtInst %v2float %1 FMin %87364 %87368
-      %87380 = OpExtInst %v2float %1 FMax %87364 %87368
-     %104268 = OpCompositeConstruct %_arr_v2float_uint_2 %87374 %87380
-      %95782 = OpIAdd %uint %163490 %int_1
-      %95784 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163490
-               OpStore %95784 %104268
-               OpBranch %92278
-      %87326 = OpLabel
-      %87329 = OpLoad %uint %83860
-      %87330 = OpBitwiseAnd %uint %87329 %uint_32768
-      %87331 = OpUGreaterThan %bool %87330 %uint_0
-               OpSelectionMerge %95750 None
-               OpSwitch %uint_0 %95734
-      %95734 = OpLabel
-               OpSelectionMerge %95749 None
-               OpBranchConditional %87331 %95736 %95744
-      %95744 = OpLabel
-      %95746 = OpISub %uint %158813 %int_1
-      %95747 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95746
-      %95748 = OpLoad %_arr_v2float_uint_2 %95747
-     %102311 = OpCompositeExtract %v2float %95748 0
-     %102312 = OpCompositeExtract %v2float %95748 1
-               OpBranch %95750
-      %95736 = OpLabel
-      %95738 = OpIAdd %uint %160807 %int_1
-      %95739 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95740 = OpLoad %v2float %95739
-               OpBranch %95750
-      %95749 = OpLabel
-               OpUnreachable
-      %95750 = OpLabel
-     %244851 = OpPhi %uint %95738 %95736 %160807 %95744
-     %163493 = OpPhi %uint %158813 %95736 %95746 %95744
-     %163492 = OpPhi %v2float %95740 %95736 %102311 %95744
-     %163491 = OpPhi %v2float %95740 %95736 %102312 %95744
-      %87335 = OpExtInst %v2float %1 Fract %163492
-      %87339 = OpExtInst %v2float %1 Fract %163491
-      %87345 = OpExtInst %v2float %1 FMin %87335 %87339
-      %87351 = OpExtInst %v2float %1 FMax %87335 %87339
-     %104259 = OpCompositeConstruct %_arr_v2float_uint_2 %87345 %87351
-      %95754 = OpIAdd %uint %163493 %int_1
-      %95756 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163493
-               OpStore %95756 %104259
-               OpBranch %92278
-      %87297 = OpLabel
-      %87300 = OpLoad %uint %83860
-      %87301 = OpBitwiseAnd %uint %87300 %uint_32768
-      %87302 = OpUGreaterThan %bool %87301 %uint_0
-               OpSelectionMerge %95722 None
-               OpSwitch %uint_0 %95706
-      %95706 = OpLabel
-               OpSelectionMerge %95721 None
-               OpBranchConditional %87302 %95708 %95716
-      %95716 = OpLabel
-      %95718 = OpISub %uint %158813 %int_1
-      %95719 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95718
-      %95720 = OpLoad %_arr_v2float_uint_2 %95719
-     %102320 = OpCompositeExtract %v2float %95720 0
-     %102321 = OpCompositeExtract %v2float %95720 1
-               OpBranch %95722
-      %95708 = OpLabel
-      %95710 = OpIAdd %uint %160807 %int_1
-      %95711 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95712 = OpLoad %v2float %95711
-               OpBranch %95722
-      %95721 = OpLabel
-               OpUnreachable
-      %95722 = OpLabel
-     %244850 = OpPhi %uint %95710 %95708 %160807 %95716
-     %163496 = OpPhi %uint %158813 %95708 %95718 %95716
-     %163495 = OpPhi %v2float %95712 %95708 %102320 %95716
-     %163494 = OpPhi %v2float %95712 %95708 %102321 %95716
-      %87306 = OpExtInst %v2float %1 Ceil %163495
-      %87310 = OpExtInst %v2float %1 Ceil %163494
-      %87316 = OpExtInst %v2float %1 FMin %87306 %87310
-      %87322 = OpExtInst %v2float %1 FMax %87306 %87310
-     %104250 = OpCompositeConstruct %_arr_v2float_uint_2 %87316 %87322
-      %95726 = OpIAdd %uint %163496 %int_1
-      %95728 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163496
-               OpStore %95728 %104250
-               OpBranch %92278
-      %87268 = OpLabel
-      %87271 = OpLoad %uint %83860
-      %87272 = OpBitwiseAnd %uint %87271 %uint_32768
-      %87273 = OpUGreaterThan %bool %87272 %uint_0
-               OpSelectionMerge %95694 None
-               OpSwitch %uint_0 %95678
-      %95678 = OpLabel
-               OpSelectionMerge %95693 None
-               OpBranchConditional %87273 %95680 %95688
-      %95688 = OpLabel
-      %95690 = OpISub %uint %158813 %int_1
-      %95691 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95690
-      %95692 = OpLoad %_arr_v2float_uint_2 %95691
-     %102329 = OpCompositeExtract %v2float %95692 0
-     %102330 = OpCompositeExtract %v2float %95692 1
-               OpBranch %95694
-      %95680 = OpLabel
-      %95682 = OpIAdd %uint %160807 %int_1
-      %95683 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95684 = OpLoad %v2float %95683
-               OpBranch %95694
-      %95693 = OpLabel
-               OpUnreachable
-      %95694 = OpLabel
-     %244849 = OpPhi %uint %95682 %95680 %160807 %95688
-     %163499 = OpPhi %uint %158813 %95680 %95690 %95688
-     %163498 = OpPhi %v2float %95684 %95680 %102329 %95688
-     %163497 = OpPhi %v2float %95684 %95680 %102330 %95688
-      %87277 = OpExtInst %v2float %1 Floor %163498
-      %87281 = OpExtInst %v2float %1 Floor %163497
-      %87287 = OpExtInst %v2float %1 FMin %87277 %87281
-      %87293 = OpExtInst %v2float %1 FMax %87277 %87281
-     %104241 = OpCompositeConstruct %_arr_v2float_uint_2 %87287 %87293
-      %95698 = OpIAdd %uint %163499 %int_1
-      %95700 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163499
-               OpStore %95700 %104241
-               OpBranch %92278
-      %87239 = OpLabel
-      %87242 = OpLoad %uint %83860
-      %87243 = OpBitwiseAnd %uint %87242 %uint_32768
-      %87244 = OpUGreaterThan %bool %87243 %uint_0
-               OpSelectionMerge %95666 None
-               OpSwitch %uint_0 %95650
-      %95650 = OpLabel
-               OpSelectionMerge %95665 None
-               OpBranchConditional %87244 %95652 %95660
-      %95660 = OpLabel
-      %95662 = OpISub %uint %158813 %int_1
-      %95663 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95662
-      %95664 = OpLoad %_arr_v2float_uint_2 %95663
-     %102338 = OpCompositeExtract %v2float %95664 0
-     %102339 = OpCompositeExtract %v2float %95664 1
-               OpBranch %95666
-      %95652 = OpLabel
-      %95654 = OpIAdd %uint %160807 %int_1
-      %95655 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95656 = OpLoad %v2float %95655
-               OpBranch %95666
-      %95665 = OpLabel
-               OpUnreachable
-      %95666 = OpLabel
-     %244848 = OpPhi %uint %95654 %95652 %160807 %95660
-     %163502 = OpPhi %uint %158813 %95652 %95662 %95660
-     %163501 = OpPhi %v2float %95656 %95652 %102338 %95660
-     %163500 = OpPhi %v2float %95656 %95652 %102339 %95660
-      %87248 = OpExtInst %v2float %1 FSign %163501
-      %87252 = OpExtInst %v2float %1 FSign %163500
-      %87258 = OpExtInst %v2float %1 FMin %87248 %87252
-      %87264 = OpExtInst %v2float %1 FMax %87248 %87252
-     %104232 = OpCompositeConstruct %_arr_v2float_uint_2 %87258 %87264
-      %95670 = OpIAdd %uint %163502 %int_1
-      %95672 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163502
-               OpStore %95672 %104232
-               OpBranch %92278
-      %87210 = OpLabel
-      %87213 = OpLoad %uint %83860
-      %87214 = OpBitwiseAnd %uint %87213 %uint_32768
-      %87215 = OpUGreaterThan %bool %87214 %uint_0
-               OpSelectionMerge %95638 None
-               OpSwitch %uint_0 %95622
-      %95622 = OpLabel
-               OpSelectionMerge %95637 None
-               OpBranchConditional %87215 %95624 %95632
-      %95632 = OpLabel
-      %95634 = OpISub %uint %158813 %int_1
-      %95635 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %95634
-      %95636 = OpLoad %_arr_v2float_uint_2 %95635
-     %102347 = OpCompositeExtract %v2float %95636 0
-     %102348 = OpCompositeExtract %v2float %95636 1
-               OpBranch %95638
-      %95624 = OpLabel
-      %95626 = OpIAdd %uint %160807 %int_1
-      %95627 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %95628 = OpLoad %v2float %95627
-               OpBranch %95638
-      %95637 = OpLabel
-               OpUnreachable
-      %95638 = OpLabel
-     %244847 = OpPhi %uint %95626 %95624 %160807 %95632
-     %163505 = OpPhi %uint %158813 %95624 %95634 %95632
-     %163504 = OpPhi %v2float %95628 %95624 %102347 %95632
-     %163503 = OpPhi %v2float %95628 %95624 %102348 %95632
-      %87219 = OpExtInst %v2float %1 FAbs %163504
-      %87223 = OpExtInst %v2float %1 FAbs %163503
-      %87229 = OpExtInst %v2float %1 FMin %87219 %87223
-      %87235 = OpExtInst %v2float %1 FMax %87219 %87223
-     %104223 = OpCompositeConstruct %_arr_v2float_uint_2 %87229 %87235
-      %95642 = OpIAdd %uint %163505 %int_1
-      %95644 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %163505
-               OpStore %95644 %104223
-               OpBranch %92278
-      %87128 = OpLabel
-      %87131 = OpLoad %uint %83860
-      %87132 = OpBitwiseAnd %uint %87131 %uint_32768
-      %87133 = OpUGreaterThan %bool %87132 %uint_0
-               OpSelectionMerge %95564 None
-               OpSwitch %uint_0 %95548
-      %95548 = OpLabel
-               OpSelectionMerge %95563 None
-               OpBranchConditional %87133 %95550 %95558
-      %95558 = OpLabel
-      %95560 = OpISub %uint %158792 %int_1
-      %95561 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95560
-      %95562 = OpLoad %_arr_float_uint_2 %95561
-     %102374 = OpCompositeExtract %float %95562 0
-     %102375 = OpCompositeExtract %float %95562 1
-               OpBranch %95564
-      %95550 = OpLabel
-      %95552 = OpIAdd %uint %158794 %int_1
-      %95553 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95554 = OpLoad %float %95553
-               OpBranch %95564
-      %95563 = OpLabel
-               OpUnreachable
-      %95564 = OpLabel
-     %163510 = OpPhi %uint %95552 %95550 %158794 %95558
-     %163509 = OpPhi %uint %158792 %95550 %95560 %95558
-     %163507 = OpPhi %float %95554 %95550 %102374 %95558
-     %163506 = OpPhi %float %95554 %95550 %102375 %95558
-      %87137 = OpLoad %uint %83860
-      %87138 = OpBitwiseAnd %uint %87137 %uint_16384
-      %87139 = OpUGreaterThan %bool %87138 %uint_0
-               OpSelectionMerge %95587 None
-               OpSwitch %uint_0 %95571
-      %95571 = OpLabel
-               OpSelectionMerge %95586 None
-               OpBranchConditional %87139 %95573 %95581
-      %95581 = OpLabel
-      %95583 = OpISub %uint %163509 %int_1
-      %95584 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95583
-      %95585 = OpLoad %_arr_float_uint_2 %95584
-     %102365 = OpCompositeExtract %float %95585 0
-     %102366 = OpCompositeExtract %float %95585 1
-               OpBranch %95587
-      %95573 = OpLabel
-      %95575 = OpIAdd %uint %163510 %int_1
-      %95576 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %163510
-      %95577 = OpLoad %float %95576
-               OpBranch %95587
-      %95586 = OpLabel
-               OpUnreachable
-      %95587 = OpLabel
-     %163515 = OpPhi %uint %95575 %95573 %163510 %95581
-     %163514 = OpPhi %uint %163509 %95573 %95583 %95581
-     %163512 = OpPhi %float %95577 %95573 %102365 %95581
-     %163511 = OpPhi %float %95577 %95573 %102366 %95581
-      %87143 = OpLoad %uint %83860
-      %87144 = OpBitwiseAnd %uint %87143 %uint_8192
-      %87145 = OpUGreaterThan %bool %87144 %uint_0
-               OpSelectionMerge %95610 None
-               OpSwitch %uint_0 %95594
-      %95594 = OpLabel
-               OpSelectionMerge %95609 None
-               OpBranchConditional %87145 %95596 %95604
-      %95604 = OpLabel
-      %95606 = OpISub %uint %163514 %int_1
-      %95607 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95606
-      %95608 = OpLoad %_arr_float_uint_2 %95607
-     %102356 = OpCompositeExtract %float %95608 0
-     %102357 = OpCompositeExtract %float %95608 1
-               OpBranch %95610
-      %95596 = OpLabel
-      %95598 = OpIAdd %uint %163515 %int_1
-      %95599 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %163515
-      %95600 = OpLoad %float %95599
-               OpBranch %95610
-      %95609 = OpLabel
-               OpUnreachable
-      %95610 = OpLabel
-     %182511 = OpPhi %uint %95598 %95596 %163515 %95604
-     %163524 = OpPhi %uint %163514 %95596 %95606 %95604
-     %163517 = OpPhi %float %95600 %95596 %102356 %95604
-     %163516 = OpPhi %float %95600 %95596 %102357 %95604
-      %87151 = OpFMul %float %163507 %163512
-      %87157 = OpFMul %float %163507 %163511
-      %87163 = OpFMul %float %163506 %163512
-      %87169 = OpFMul %float %163506 %163511
-      %87179 = OpExtInst %float %1 FMin %87163 %87169
-      %87180 = OpExtInst %float %1 FMin %87157 %87179
-      %87181 = OpExtInst %float %1 FMin %87151 %87180
-      %87191 = OpExtInst %float %1 FMax %87163 %87169
-      %87192 = OpExtInst %float %1 FMax %87157 %87191
-      %87193 = OpExtInst %float %1 FMax %87151 %87192
-      %87200 = OpFAdd %float %87181 %163517
-      %87206 = OpFAdd %float %87193 %163516
-     %104206 = OpCompositeConstruct %_arr_float_uint_2 %87200 %87206
-      %95614 = OpIAdd %uint %163524 %int_1
-      %95616 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163524
-               OpStore %95616 %104206
-               OpBranch %92278
-      %87101 = OpLabel
-      %87104 = OpLoad %uint %83860
-      %87105 = OpBitwiseAnd %uint %87104 %uint_32768
-      %87106 = OpUGreaterThan %bool %87105 %uint_0
-               OpSelectionMerge %95513 None
-               OpSwitch %uint_0 %95497
-      %95497 = OpLabel
-               OpSelectionMerge %95512 None
-               OpBranchConditional %87106 %95499 %95507
-      %95507 = OpLabel
-      %95509 = OpISub %uint %158792 %int_1
-      %95510 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95509
-      %95511 = OpLoad %_arr_float_uint_2 %95510
-     %102392 = OpCompositeExtract %float %95511 0
-     %102393 = OpCompositeExtract %float %95511 1
-               OpBranch %95513
-      %95499 = OpLabel
-      %95501 = OpIAdd %uint %158794 %int_1
-      %95502 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95503 = OpLoad %float %95502
-               OpBranch %95513
-      %95512 = OpLabel
-               OpUnreachable
-      %95513 = OpLabel
-     %163532 = OpPhi %uint %95501 %95499 %158794 %95507
-     %163531 = OpPhi %uint %158792 %95499 %95509 %95507
-     %163529 = OpPhi %float %95503 %95499 %102392 %95507
-     %163528 = OpPhi %float %95503 %95499 %102393 %95507
-      %87110 = OpLoad %uint %83860
-      %87111 = OpBitwiseAnd %uint %87110 %uint_16384
-      %87112 = OpUGreaterThan %bool %87111 %uint_0
-               OpSelectionMerge %95536 None
-               OpSwitch %uint_0 %95520
-      %95520 = OpLabel
-               OpSelectionMerge %95535 None
-               OpBranchConditional %87112 %95522 %95530
-      %95530 = OpLabel
-      %95532 = OpISub %uint %163531 %int_1
-      %95533 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95532
-      %95534 = OpLoad %_arr_float_uint_2 %95533
-     %102383 = OpCompositeExtract %float %95534 0
-     %102384 = OpCompositeExtract %float %95534 1
-               OpBranch %95536
-      %95522 = OpLabel
-      %95524 = OpIAdd %uint %163532 %int_1
-      %95525 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %163532
-      %95526 = OpLoad %float %95525
-               OpBranch %95536
-      %95535 = OpLabel
-               OpUnreachable
-      %95536 = OpLabel
-     %182510 = OpPhi %uint %95524 %95522 %163532 %95530
-     %163537 = OpPhi %uint %163531 %95522 %95532 %95530
-     %163534 = OpPhi %float %95526 %95522 %102383 %95530
-     %163533 = OpPhi %float %95526 %95522 %102384 %95530
-      %87118 = OpExtInst %float %1 FMax %163529 %163534
-      %87124 = OpExtInst %float %1 FMax %163528 %163533
-     %104195 = OpCompositeConstruct %_arr_float_uint_2 %87118 %87124
-      %95540 = OpIAdd %uint %163537 %int_1
-      %95542 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163537
-               OpStore %95542 %104195
-               OpBranch %92278
-      %87074 = OpLabel
-      %87077 = OpLoad %uint %83860
-      %87078 = OpBitwiseAnd %uint %87077 %uint_32768
-      %87079 = OpUGreaterThan %bool %87078 %uint_0
-               OpSelectionMerge %95462 None
-               OpSwitch %uint_0 %95446
-      %95446 = OpLabel
-               OpSelectionMerge %95461 None
-               OpBranchConditional %87079 %95448 %95456
-      %95456 = OpLabel
-      %95458 = OpISub %uint %158792 %int_1
-      %95459 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95458
-      %95460 = OpLoad %_arr_float_uint_2 %95459
-     %102410 = OpCompositeExtract %float %95460 0
-     %102411 = OpCompositeExtract %float %95460 1
-               OpBranch %95462
-      %95448 = OpLabel
-      %95450 = OpIAdd %uint %158794 %int_1
-      %95451 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95452 = OpLoad %float %95451
-               OpBranch %95462
-      %95461 = OpLabel
-               OpUnreachable
-      %95462 = OpLabel
-     %163545 = OpPhi %uint %95450 %95448 %158794 %95456
-     %163544 = OpPhi %uint %158792 %95448 %95458 %95456
-     %163542 = OpPhi %float %95452 %95448 %102410 %95456
-     %163541 = OpPhi %float %95452 %95448 %102411 %95456
-      %87083 = OpLoad %uint %83860
-      %87084 = OpBitwiseAnd %uint %87083 %uint_16384
-      %87085 = OpUGreaterThan %bool %87084 %uint_0
-               OpSelectionMerge %95485 None
-               OpSwitch %uint_0 %95469
-      %95469 = OpLabel
-               OpSelectionMerge %95484 None
-               OpBranchConditional %87085 %95471 %95479
-      %95479 = OpLabel
-      %95481 = OpISub %uint %163544 %int_1
-      %95482 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95481
-      %95483 = OpLoad %_arr_float_uint_2 %95482
-     %102401 = OpCompositeExtract %float %95483 0
-     %102402 = OpCompositeExtract %float %95483 1
-               OpBranch %95485
-      %95471 = OpLabel
-      %95473 = OpIAdd %uint %163545 %int_1
-      %95474 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %163545
-      %95475 = OpLoad %float %95474
-               OpBranch %95485
-      %95484 = OpLabel
-               OpUnreachable
-      %95485 = OpLabel
-     %182509 = OpPhi %uint %95473 %95471 %163545 %95479
-     %163550 = OpPhi %uint %163544 %95471 %95481 %95479
-     %163547 = OpPhi %float %95475 %95471 %102401 %95479
-     %163546 = OpPhi %float %95475 %95471 %102402 %95479
-      %87091 = OpExtInst %float %1 FMin %163542 %163547
-      %87097 = OpExtInst %float %1 FMin %163541 %163546
-     %104184 = OpCompositeConstruct %_arr_float_uint_2 %87091 %87097
-      %95489 = OpIAdd %uint %163550 %int_1
-      %95491 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163550
-               OpStore %95491 %104184
-               OpBranch %92278
-      %87045 = OpLabel
-      %87048 = OpLoad %uint %83860
-      %87049 = OpBitwiseAnd %uint %87048 %uint_32768
-      %87050 = OpUGreaterThan %bool %87049 %uint_0
-               OpSelectionMerge %95434 None
-               OpSwitch %uint_0 %95418
-      %95418 = OpLabel
-               OpSelectionMerge %95433 None
-               OpBranchConditional %87050 %95420 %95428
-      %95428 = OpLabel
-      %95430 = OpISub %uint %158792 %int_1
-      %95431 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95430
-      %95432 = OpLoad %_arr_float_uint_2 %95431
-     %102419 = OpCompositeExtract %float %95432 0
-     %102420 = OpCompositeExtract %float %95432 1
-               OpBranch %95434
-      %95420 = OpLabel
-      %95422 = OpIAdd %uint %158794 %int_1
-      %95423 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95424 = OpLoad %float %95423
-               OpBranch %95434
-      %95433 = OpLabel
-               OpUnreachable
-      %95434 = OpLabel
-     %182508 = OpPhi %uint %95422 %95420 %158794 %95428
-     %163553 = OpPhi %uint %158792 %95420 %95430 %95428
-     %163552 = OpPhi %float %95424 %95420 %102419 %95428
-     %163551 = OpPhi %float %95424 %95420 %102420 %95428
-      %87054 = OpExtInst %float %1 Trunc %163552
-      %87058 = OpExtInst %float %1 Trunc %163551
-      %87064 = OpExtInst %float %1 FMin %87054 %87058
-      %87070 = OpExtInst %float %1 FMax %87054 %87058
-     %104175 = OpCompositeConstruct %_arr_float_uint_2 %87064 %87070
-      %95438 = OpIAdd %uint %163553 %int_1
-      %95440 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163553
-               OpStore %95440 %104175
-               OpBranch %92278
-      %87016 = OpLabel
-      %87019 = OpLoad %uint %83860
-      %87020 = OpBitwiseAnd %uint %87019 %uint_32768
-      %87021 = OpUGreaterThan %bool %87020 %uint_0
-               OpSelectionMerge %95406 None
-               OpSwitch %uint_0 %95390
-      %95390 = OpLabel
-               OpSelectionMerge %95405 None
-               OpBranchConditional %87021 %95392 %95400
-      %95400 = OpLabel
-      %95402 = OpISub %uint %158792 %int_1
-      %95403 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95402
-      %95404 = OpLoad %_arr_float_uint_2 %95403
-     %102428 = OpCompositeExtract %float %95404 0
-     %102429 = OpCompositeExtract %float %95404 1
-               OpBranch %95406
-      %95392 = OpLabel
-      %95394 = OpIAdd %uint %158794 %int_1
-      %95395 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95396 = OpLoad %float %95395
-               OpBranch %95406
-      %95405 = OpLabel
-               OpUnreachable
-      %95406 = OpLabel
-     %182507 = OpPhi %uint %95394 %95392 %158794 %95400
-     %163556 = OpPhi %uint %158792 %95392 %95402 %95400
-     %163555 = OpPhi %float %95396 %95392 %102428 %95400
-     %163554 = OpPhi %float %95396 %95392 %102429 %95400
-      %87025 = OpExtInst %float %1 Round %163555
-      %87029 = OpExtInst %float %1 Round %163554
-      %87035 = OpExtInst %float %1 FMin %87025 %87029
-      %87041 = OpExtInst %float %1 FMax %87025 %87029
-     %104166 = OpCompositeConstruct %_arr_float_uint_2 %87035 %87041
-      %95410 = OpIAdd %uint %163556 %int_1
-      %95412 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163556
-               OpStore %95412 %104166
-               OpBranch %92278
-      %86987 = OpLabel
-      %86990 = OpLoad %uint %83860
-      %86991 = OpBitwiseAnd %uint %86990 %uint_32768
-      %86992 = OpUGreaterThan %bool %86991 %uint_0
-               OpSelectionMerge %95378 None
-               OpSwitch %uint_0 %95362
-      %95362 = OpLabel
-               OpSelectionMerge %95377 None
-               OpBranchConditional %86992 %95364 %95372
-      %95372 = OpLabel
-      %95374 = OpISub %uint %158792 %int_1
-      %95375 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95374
-      %95376 = OpLoad %_arr_float_uint_2 %95375
-     %102437 = OpCompositeExtract %float %95376 0
-     %102438 = OpCompositeExtract %float %95376 1
-               OpBranch %95378
-      %95364 = OpLabel
-      %95366 = OpIAdd %uint %158794 %int_1
-      %95367 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95368 = OpLoad %float %95367
-               OpBranch %95378
-      %95377 = OpLabel
-               OpUnreachable
-      %95378 = OpLabel
-     %182506 = OpPhi %uint %95366 %95364 %158794 %95372
-     %163559 = OpPhi %uint %158792 %95364 %95374 %95372
-     %163558 = OpPhi %float %95368 %95364 %102437 %95372
-     %163557 = OpPhi %float %95368 %95364 %102438 %95372
-      %86996 = OpExtInst %float %1 Tanh %163558
-      %87000 = OpExtInst %float %1 Tanh %163557
-      %87006 = OpExtInst %float %1 FMin %86996 %87000
-      %87012 = OpExtInst %float %1 FMax %86996 %87000
-     %104157 = OpCompositeConstruct %_arr_float_uint_2 %87006 %87012
-      %95382 = OpIAdd %uint %163559 %int_1
-      %95384 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163559
-               OpStore %95384 %104157
-               OpBranch %92278
-      %86958 = OpLabel
-      %86961 = OpLoad %uint %83860
-      %86962 = OpBitwiseAnd %uint %86961 %uint_32768
-      %86963 = OpUGreaterThan %bool %86962 %uint_0
-               OpSelectionMerge %95350 None
-               OpSwitch %uint_0 %95334
-      %95334 = OpLabel
-               OpSelectionMerge %95349 None
-               OpBranchConditional %86963 %95336 %95344
-      %95344 = OpLabel
-      %95346 = OpISub %uint %158792 %int_1
-      %95347 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95346
-      %95348 = OpLoad %_arr_float_uint_2 %95347
-     %102446 = OpCompositeExtract %float %95348 0
-     %102447 = OpCompositeExtract %float %95348 1
-               OpBranch %95350
-      %95336 = OpLabel
-      %95338 = OpIAdd %uint %158794 %int_1
-      %95339 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95340 = OpLoad %float %95339
-               OpBranch %95350
-      %95349 = OpLabel
-               OpUnreachable
-      %95350 = OpLabel
-     %182505 = OpPhi %uint %95338 %95336 %158794 %95344
-     %163562 = OpPhi %uint %158792 %95336 %95346 %95344
-     %163561 = OpPhi %float %95340 %95336 %102446 %95344
-     %163560 = OpPhi %float %95340 %95336 %102447 %95344
-      %86967 = OpExtInst %float %1 Sinh %163561
-      %86971 = OpExtInst %float %1 Sinh %163560
-      %86977 = OpExtInst %float %1 FMin %86967 %86971
-      %86983 = OpExtInst %float %1 FMax %86967 %86971
-     %104148 = OpCompositeConstruct %_arr_float_uint_2 %86977 %86983
-      %95354 = OpIAdd %uint %163562 %int_1
-      %95356 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163562
-               OpStore %95356 %104148
-               OpBranch %92278
-      %86929 = OpLabel
-      %86932 = OpLoad %uint %83860
-      %86933 = OpBitwiseAnd %uint %86932 %uint_32768
-      %86934 = OpUGreaterThan %bool %86933 %uint_0
-               OpSelectionMerge %95322 None
-               OpSwitch %uint_0 %95306
-      %95306 = OpLabel
-               OpSelectionMerge %95321 None
-               OpBranchConditional %86934 %95308 %95316
-      %95316 = OpLabel
-      %95318 = OpISub %uint %158792 %int_1
-      %95319 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95318
-      %95320 = OpLoad %_arr_float_uint_2 %95319
-     %102455 = OpCompositeExtract %float %95320 0
-     %102456 = OpCompositeExtract %float %95320 1
-               OpBranch %95322
-      %95308 = OpLabel
-      %95310 = OpIAdd %uint %158794 %int_1
-      %95311 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95312 = OpLoad %float %95311
-               OpBranch %95322
-      %95321 = OpLabel
-               OpUnreachable
-      %95322 = OpLabel
-     %182504 = OpPhi %uint %95310 %95308 %158794 %95316
-     %163565 = OpPhi %uint %158792 %95308 %95318 %95316
-     %163564 = OpPhi %float %95312 %95308 %102455 %95316
-     %163563 = OpPhi %float %95312 %95308 %102456 %95316
-      %86938 = OpExtInst %float %1 Cosh %163564
-      %86942 = OpExtInst %float %1 Cosh %163563
-      %86948 = OpExtInst %float %1 FMin %86938 %86942
-      %86954 = OpExtInst %float %1 FMax %86938 %86942
-     %104139 = OpCompositeConstruct %_arr_float_uint_2 %86948 %86954
-      %95326 = OpIAdd %uint %163565 %int_1
-      %95328 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163565
-               OpStore %95328 %104139
-               OpBranch %92278
-      %86900 = OpLabel
-      %86903 = OpLoad %uint %83860
-      %86904 = OpBitwiseAnd %uint %86903 %uint_32768
-      %86905 = OpUGreaterThan %bool %86904 %uint_0
-               OpSelectionMerge %95294 None
-               OpSwitch %uint_0 %95278
-      %95278 = OpLabel
-               OpSelectionMerge %95293 None
-               OpBranchConditional %86905 %95280 %95288
-      %95288 = OpLabel
-      %95290 = OpISub %uint %158792 %int_1
-      %95291 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95290
-      %95292 = OpLoad %_arr_float_uint_2 %95291
-     %102464 = OpCompositeExtract %float %95292 0
-     %102465 = OpCompositeExtract %float %95292 1
-               OpBranch %95294
-      %95280 = OpLabel
-      %95282 = OpIAdd %uint %158794 %int_1
-      %95283 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95284 = OpLoad %float %95283
-               OpBranch %95294
-      %95293 = OpLabel
-               OpUnreachable
-      %95294 = OpLabel
-     %182503 = OpPhi %uint %95282 %95280 %158794 %95288
-     %163568 = OpPhi %uint %158792 %95280 %95290 %95288
-     %163567 = OpPhi %float %95284 %95280 %102464 %95288
-     %163566 = OpPhi %float %95284 %95280 %102465 %95288
-      %86909 = OpExtInst %float %1 Atanh %163567
-      %86913 = OpExtInst %float %1 Atanh %163566
-      %86919 = OpExtInst %float %1 FMin %86909 %86913
-      %86925 = OpExtInst %float %1 FMax %86909 %86913
-     %104130 = OpCompositeConstruct %_arr_float_uint_2 %86919 %86925
-      %95298 = OpIAdd %uint %163568 %int_1
-      %95300 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163568
-               OpStore %95300 %104130
-               OpBranch %92278
-      %86871 = OpLabel
-      %86874 = OpLoad %uint %83860
-      %86875 = OpBitwiseAnd %uint %86874 %uint_32768
-      %86876 = OpUGreaterThan %bool %86875 %uint_0
-               OpSelectionMerge %95266 None
-               OpSwitch %uint_0 %95250
-      %95250 = OpLabel
-               OpSelectionMerge %95265 None
-               OpBranchConditional %86876 %95252 %95260
-      %95260 = OpLabel
-      %95262 = OpISub %uint %158792 %int_1
-      %95263 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95262
-      %95264 = OpLoad %_arr_float_uint_2 %95263
-     %102473 = OpCompositeExtract %float %95264 0
-     %102474 = OpCompositeExtract %float %95264 1
-               OpBranch %95266
-      %95252 = OpLabel
-      %95254 = OpIAdd %uint %158794 %int_1
-      %95255 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95256 = OpLoad %float %95255
-               OpBranch %95266
-      %95265 = OpLabel
-               OpUnreachable
-      %95266 = OpLabel
-     %182502 = OpPhi %uint %95254 %95252 %158794 %95260
-     %163571 = OpPhi %uint %158792 %95252 %95262 %95260
-     %163570 = OpPhi %float %95256 %95252 %102473 %95260
-     %163569 = OpPhi %float %95256 %95252 %102474 %95260
-      %86880 = OpExtInst %float %1 Asinh %163570
-      %86884 = OpExtInst %float %1 Asinh %163569
-      %86890 = OpExtInst %float %1 FMin %86880 %86884
-      %86896 = OpExtInst %float %1 FMax %86880 %86884
-     %104121 = OpCompositeConstruct %_arr_float_uint_2 %86890 %86896
-      %95270 = OpIAdd %uint %163571 %int_1
-      %95272 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163571
-               OpStore %95272 %104121
-               OpBranch %92278
-      %86842 = OpLabel
-      %86845 = OpLoad %uint %83860
-      %86846 = OpBitwiseAnd %uint %86845 %uint_32768
-      %86847 = OpUGreaterThan %bool %86846 %uint_0
-               OpSelectionMerge %95238 None
-               OpSwitch %uint_0 %95222
-      %95222 = OpLabel
-               OpSelectionMerge %95237 None
-               OpBranchConditional %86847 %95224 %95232
-      %95232 = OpLabel
-      %95234 = OpISub %uint %158792 %int_1
-      %95235 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95234
-      %95236 = OpLoad %_arr_float_uint_2 %95235
-     %102482 = OpCompositeExtract %float %95236 0
-     %102483 = OpCompositeExtract %float %95236 1
-               OpBranch %95238
-      %95224 = OpLabel
-      %95226 = OpIAdd %uint %158794 %int_1
-      %95227 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95228 = OpLoad %float %95227
-               OpBranch %95238
-      %95237 = OpLabel
-               OpUnreachable
-      %95238 = OpLabel
-     %182501 = OpPhi %uint %95226 %95224 %158794 %95232
-     %163574 = OpPhi %uint %158792 %95224 %95234 %95232
-     %163573 = OpPhi %float %95228 %95224 %102482 %95232
-     %163572 = OpPhi %float %95228 %95224 %102483 %95232
-      %86851 = OpExtInst %float %1 Acosh %163573
-      %86855 = OpExtInst %float %1 Acosh %163572
-      %86861 = OpExtInst %float %1 FMin %86851 %86855
-      %86867 = OpExtInst %float %1 FMax %86851 %86855
-     %104112 = OpCompositeConstruct %_arr_float_uint_2 %86861 %86867
-      %95242 = OpIAdd %uint %163574 %int_1
-      %95244 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163574
-               OpStore %95244 %104112
-               OpBranch %92278
-      %86813 = OpLabel
-      %86816 = OpLoad %uint %83860
-      %86817 = OpBitwiseAnd %uint %86816 %uint_32768
-      %86818 = OpUGreaterThan %bool %86817 %uint_0
-               OpSelectionMerge %95210 None
-               OpSwitch %uint_0 %95194
-      %95194 = OpLabel
-               OpSelectionMerge %95209 None
-               OpBranchConditional %86818 %95196 %95204
-      %95204 = OpLabel
-      %95206 = OpISub %uint %158792 %int_1
-      %95207 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95206
-      %95208 = OpLoad %_arr_float_uint_2 %95207
-     %102491 = OpCompositeExtract %float %95208 0
-     %102492 = OpCompositeExtract %float %95208 1
-               OpBranch %95210
-      %95196 = OpLabel
-      %95198 = OpIAdd %uint %158794 %int_1
-      %95199 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95200 = OpLoad %float %95199
-               OpBranch %95210
-      %95209 = OpLabel
-               OpUnreachable
-      %95210 = OpLabel
-     %182500 = OpPhi %uint %95198 %95196 %158794 %95204
-     %163577 = OpPhi %uint %158792 %95196 %95206 %95204
-     %163576 = OpPhi %float %95200 %95196 %102491 %95204
-     %163575 = OpPhi %float %95200 %95196 %102492 %95204
-      %86822 = OpExtInst %float %1 Atan %163576
-      %86826 = OpExtInst %float %1 Atan %163575
-      %86832 = OpExtInst %float %1 FMin %86822 %86826
-      %86838 = OpExtInst %float %1 FMax %86822 %86826
-     %104103 = OpCompositeConstruct %_arr_float_uint_2 %86832 %86838
-      %95214 = OpIAdd %uint %163577 %int_1
-      %95216 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163577
-               OpStore %95216 %104103
-               OpBranch %92278
-      %86784 = OpLabel
-      %86787 = OpLoad %uint %83860
-      %86788 = OpBitwiseAnd %uint %86787 %uint_32768
-      %86789 = OpUGreaterThan %bool %86788 %uint_0
-               OpSelectionMerge %95182 None
-               OpSwitch %uint_0 %95166
-      %95166 = OpLabel
-               OpSelectionMerge %95181 None
-               OpBranchConditional %86789 %95168 %95176
-      %95176 = OpLabel
-      %95178 = OpISub %uint %158792 %int_1
-      %95179 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95178
-      %95180 = OpLoad %_arr_float_uint_2 %95179
-     %102500 = OpCompositeExtract %float %95180 0
-     %102501 = OpCompositeExtract %float %95180 1
-               OpBranch %95182
-      %95168 = OpLabel
-      %95170 = OpIAdd %uint %158794 %int_1
-      %95171 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95172 = OpLoad %float %95171
-               OpBranch %95182
-      %95181 = OpLabel
-               OpUnreachable
-      %95182 = OpLabel
-     %182499 = OpPhi %uint %95170 %95168 %158794 %95176
-     %163580 = OpPhi %uint %158792 %95168 %95178 %95176
-     %163579 = OpPhi %float %95172 %95168 %102500 %95176
-     %163578 = OpPhi %float %95172 %95168 %102501 %95176
-      %86793 = OpExtInst %float %1 Acos %163579
-      %86797 = OpExtInst %float %1 Acos %163578
-      %86803 = OpExtInst %float %1 FMin %86793 %86797
-      %86809 = OpExtInst %float %1 FMax %86793 %86797
-     %104094 = OpCompositeConstruct %_arr_float_uint_2 %86803 %86809
-      %95186 = OpIAdd %uint %163580 %int_1
-      %95188 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163580
-               OpStore %95188 %104094
-               OpBranch %92278
-      %86755 = OpLabel
-      %86758 = OpLoad %uint %83860
-      %86759 = OpBitwiseAnd %uint %86758 %uint_32768
-      %86760 = OpUGreaterThan %bool %86759 %uint_0
-               OpSelectionMerge %95154 None
-               OpSwitch %uint_0 %95138
-      %95138 = OpLabel
-               OpSelectionMerge %95153 None
-               OpBranchConditional %86760 %95140 %95148
-      %95148 = OpLabel
-      %95150 = OpISub %uint %158792 %int_1
-      %95151 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95150
-      %95152 = OpLoad %_arr_float_uint_2 %95151
-     %102509 = OpCompositeExtract %float %95152 0
-     %102510 = OpCompositeExtract %float %95152 1
-               OpBranch %95154
-      %95140 = OpLabel
-      %95142 = OpIAdd %uint %158794 %int_1
-      %95143 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95144 = OpLoad %float %95143
-               OpBranch %95154
-      %95153 = OpLabel
-               OpUnreachable
-      %95154 = OpLabel
-     %182498 = OpPhi %uint %95142 %95140 %158794 %95148
-     %163583 = OpPhi %uint %158792 %95140 %95150 %95148
-     %163582 = OpPhi %float %95144 %95140 %102509 %95148
-     %163581 = OpPhi %float %95144 %95140 %102510 %95148
-      %86764 = OpExtInst %float %1 Asin %163582
-      %86768 = OpExtInst %float %1 Asin %163581
-      %86774 = OpExtInst %float %1 FMin %86764 %86768
-      %86780 = OpExtInst %float %1 FMax %86764 %86768
-     %104085 = OpCompositeConstruct %_arr_float_uint_2 %86774 %86780
-      %95158 = OpIAdd %uint %163583 %int_1
-      %95160 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163583
-               OpStore %95160 %104085
-               OpBranch %92278
-      %86726 = OpLabel
-      %86729 = OpLoad %uint %83860
-      %86730 = OpBitwiseAnd %uint %86729 %uint_32768
-      %86731 = OpUGreaterThan %bool %86730 %uint_0
-               OpSelectionMerge %95126 None
-               OpSwitch %uint_0 %95110
-      %95110 = OpLabel
-               OpSelectionMerge %95125 None
-               OpBranchConditional %86731 %95112 %95120
-      %95120 = OpLabel
-      %95122 = OpISub %uint %158792 %int_1
-      %95123 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95122
-      %95124 = OpLoad %_arr_float_uint_2 %95123
-     %102518 = OpCompositeExtract %float %95124 0
-     %102519 = OpCompositeExtract %float %95124 1
-               OpBranch %95126
-      %95112 = OpLabel
-      %95114 = OpIAdd %uint %158794 %int_1
-      %95115 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95116 = OpLoad %float %95115
-               OpBranch %95126
-      %95125 = OpLabel
-               OpUnreachable
-      %95126 = OpLabel
-     %182497 = OpPhi %uint %95114 %95112 %158794 %95120
-     %163586 = OpPhi %uint %158792 %95112 %95122 %95120
-     %163585 = OpPhi %float %95116 %95112 %102518 %95120
-     %163584 = OpPhi %float %95116 %95112 %102519 %95120
-      %86735 = OpExtInst %float %1 Tan %163585
-      %86739 = OpExtInst %float %1 Tan %163584
-      %86745 = OpExtInst %float %1 FMin %86735 %86739
-      %86751 = OpExtInst %float %1 FMax %86735 %86739
-     %104076 = OpCompositeConstruct %_arr_float_uint_2 %86745 %86751
-      %95130 = OpIAdd %uint %163586 %int_1
-      %95132 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163586
-               OpStore %95132 %104076
-               OpBranch %92278
-      %86697 = OpLabel
-      %86700 = OpLoad %uint %83860
-      %86701 = OpBitwiseAnd %uint %86700 %uint_32768
-      %86702 = OpUGreaterThan %bool %86701 %uint_0
-               OpSelectionMerge %95098 None
-               OpSwitch %uint_0 %95082
-      %95082 = OpLabel
-               OpSelectionMerge %95097 None
-               OpBranchConditional %86702 %95084 %95092
-      %95092 = OpLabel
-      %95094 = OpISub %uint %158792 %int_1
-      %95095 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95094
-      %95096 = OpLoad %_arr_float_uint_2 %95095
-     %102527 = OpCompositeExtract %float %95096 0
-     %102528 = OpCompositeExtract %float %95096 1
-               OpBranch %95098
-      %95084 = OpLabel
-      %95086 = OpIAdd %uint %158794 %int_1
-      %95087 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95088 = OpLoad %float %95087
-               OpBranch %95098
-      %95097 = OpLabel
-               OpUnreachable
-      %95098 = OpLabel
-     %182496 = OpPhi %uint %95086 %95084 %158794 %95092
-     %163589 = OpPhi %uint %158792 %95084 %95094 %95092
-     %163588 = OpPhi %float %95088 %95084 %102527 %95092
-     %163587 = OpPhi %float %95088 %95084 %102528 %95092
-      %86706 = OpExtInst %float %1 Cos %163588
-      %86710 = OpExtInst %float %1 Cos %163587
-      %86716 = OpExtInst %float %1 FMin %86706 %86710
-      %86722 = OpExtInst %float %1 FMax %86706 %86710
-     %104067 = OpCompositeConstruct %_arr_float_uint_2 %86716 %86722
-      %95102 = OpIAdd %uint %163589 %int_1
-      %95104 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163589
-               OpStore %95104 %104067
-               OpBranch %92278
-      %86668 = OpLabel
-      %86671 = OpLoad %uint %83860
-      %86672 = OpBitwiseAnd %uint %86671 %uint_32768
-      %86673 = OpUGreaterThan %bool %86672 %uint_0
-               OpSelectionMerge %95070 None
-               OpSwitch %uint_0 %95054
-      %95054 = OpLabel
-               OpSelectionMerge %95069 None
-               OpBranchConditional %86673 %95056 %95064
-      %95064 = OpLabel
-      %95066 = OpISub %uint %158792 %int_1
-      %95067 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95066
-      %95068 = OpLoad %_arr_float_uint_2 %95067
-     %102536 = OpCompositeExtract %float %95068 0
-     %102537 = OpCompositeExtract %float %95068 1
-               OpBranch %95070
-      %95056 = OpLabel
-      %95058 = OpIAdd %uint %158794 %int_1
-      %95059 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95060 = OpLoad %float %95059
-               OpBranch %95070
-      %95069 = OpLabel
-               OpUnreachable
-      %95070 = OpLabel
-     %182495 = OpPhi %uint %95058 %95056 %158794 %95064
-     %163592 = OpPhi %uint %158792 %95056 %95066 %95064
-     %163591 = OpPhi %float %95060 %95056 %102536 %95064
-     %163590 = OpPhi %float %95060 %95056 %102537 %95064
-      %86677 = OpExtInst %float %1 Sin %163591
-      %86681 = OpExtInst %float %1 Sin %163590
-      %86687 = OpExtInst %float %1 FMin %86677 %86681
-      %86693 = OpExtInst %float %1 FMax %86677 %86681
-     %104058 = OpCompositeConstruct %_arr_float_uint_2 %86687 %86693
-      %95074 = OpIAdd %uint %163592 %int_1
-      %95076 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163592
-               OpStore %95076 %104058
-               OpBranch %92278
-      %86639 = OpLabel
-      %86642 = OpLoad %uint %83860
-      %86643 = OpBitwiseAnd %uint %86642 %uint_32768
-      %86644 = OpUGreaterThan %bool %86643 %uint_0
-               OpSelectionMerge %95042 None
-               OpSwitch %uint_0 %95026
-      %95026 = OpLabel
-               OpSelectionMerge %95041 None
-               OpBranchConditional %86644 %95028 %95036
-      %95036 = OpLabel
-      %95038 = OpISub %uint %158792 %int_1
-      %95039 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95038
-      %95040 = OpLoad %_arr_float_uint_2 %95039
-     %102545 = OpCompositeExtract %float %95040 0
-     %102546 = OpCompositeExtract %float %95040 1
-               OpBranch %95042
-      %95028 = OpLabel
-      %95030 = OpIAdd %uint %158794 %int_1
-      %95031 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95032 = OpLoad %float %95031
-               OpBranch %95042
-      %95041 = OpLabel
-               OpUnreachable
-      %95042 = OpLabel
-     %182494 = OpPhi %uint %95030 %95028 %158794 %95036
-     %163595 = OpPhi %uint %158792 %95028 %95038 %95036
-     %163594 = OpPhi %float %95032 %95028 %102545 %95036
-     %163593 = OpPhi %float %95032 %95028 %102546 %95036
-      %86648 = OpExtInst %float %1 Log2 %163594
-      %86652 = OpExtInst %float %1 Log2 %163593
-      %86658 = OpExtInst %float %1 FMin %86648 %86652
-      %86664 = OpExtInst %float %1 FMax %86648 %86652
-     %104049 = OpCompositeConstruct %_arr_float_uint_2 %86658 %86664
-      %95046 = OpIAdd %uint %163595 %int_1
-      %95048 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163595
-               OpStore %95048 %104049
-               OpBranch %92278
-      %86610 = OpLabel
-      %86613 = OpLoad %uint %83860
-      %86614 = OpBitwiseAnd %uint %86613 %uint_32768
-      %86615 = OpUGreaterThan %bool %86614 %uint_0
-               OpSelectionMerge %95014 None
-               OpSwitch %uint_0 %94998
-      %94998 = OpLabel
-               OpSelectionMerge %95013 None
-               OpBranchConditional %86615 %95000 %95008
-      %95008 = OpLabel
-      %95010 = OpISub %uint %158792 %int_1
-      %95011 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %95010
-      %95012 = OpLoad %_arr_float_uint_2 %95011
-     %102554 = OpCompositeExtract %float %95012 0
-     %102555 = OpCompositeExtract %float %95012 1
-               OpBranch %95014
-      %95000 = OpLabel
-      %95002 = OpIAdd %uint %158794 %int_1
-      %95003 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %95004 = OpLoad %float %95003
-               OpBranch %95014
-      %95013 = OpLabel
-               OpUnreachable
-      %95014 = OpLabel
-     %182493 = OpPhi %uint %95002 %95000 %158794 %95008
-     %163598 = OpPhi %uint %158792 %95000 %95010 %95008
-     %163597 = OpPhi %float %95004 %95000 %102554 %95008
-     %163596 = OpPhi %float %95004 %95000 %102555 %95008
-      %86619 = OpExtInst %float %1 Log %163597
-      %86623 = OpExtInst %float %1 Log %163596
-      %86629 = OpExtInst %float %1 FMin %86619 %86623
-      %86635 = OpExtInst %float %1 FMax %86619 %86623
-     %104040 = OpCompositeConstruct %_arr_float_uint_2 %86629 %86635
-      %95018 = OpIAdd %uint %163598 %int_1
-      %95020 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163598
-               OpStore %95020 %104040
-               OpBranch %92278
-      %86581 = OpLabel
-      %86584 = OpLoad %uint %83860
-      %86585 = OpBitwiseAnd %uint %86584 %uint_32768
-      %86586 = OpUGreaterThan %bool %86585 %uint_0
-               OpSelectionMerge %94986 None
-               OpSwitch %uint_0 %94970
-      %94970 = OpLabel
-               OpSelectionMerge %94985 None
-               OpBranchConditional %86586 %94972 %94980
-      %94980 = OpLabel
-      %94982 = OpISub %uint %158792 %int_1
-      %94983 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %94982
-      %94984 = OpLoad %_arr_float_uint_2 %94983
-     %102563 = OpCompositeExtract %float %94984 0
-     %102564 = OpCompositeExtract %float %94984 1
-               OpBranch %94986
-      %94972 = OpLabel
-      %94974 = OpIAdd %uint %158794 %int_1
-      %94975 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %94976 = OpLoad %float %94975
-               OpBranch %94986
-      %94985 = OpLabel
-               OpUnreachable
-      %94986 = OpLabel
-     %182492 = OpPhi %uint %94974 %94972 %158794 %94980
-     %163601 = OpPhi %uint %158792 %94972 %94982 %94980
-     %163600 = OpPhi %float %94976 %94972 %102563 %94980
-     %163599 = OpPhi %float %94976 %94972 %102564 %94980
-      %86590 = OpExtInst %float %1 Exp2 %163600
-      %86594 = OpExtInst %float %1 Exp2 %163599
-      %86600 = OpExtInst %float %1 FMin %86590 %86594
-      %86606 = OpExtInst %float %1 FMax %86590 %86594
-     %104031 = OpCompositeConstruct %_arr_float_uint_2 %86600 %86606
-      %94990 = OpIAdd %uint %163601 %int_1
-      %94992 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163601
-               OpStore %94992 %104031
-               OpBranch %92278
-      %86552 = OpLabel
-      %86555 = OpLoad %uint %83860
-      %86556 = OpBitwiseAnd %uint %86555 %uint_32768
-      %86557 = OpUGreaterThan %bool %86556 %uint_0
-               OpSelectionMerge %94958 None
-               OpSwitch %uint_0 %94942
-      %94942 = OpLabel
-               OpSelectionMerge %94957 None
-               OpBranchConditional %86557 %94944 %94952
-      %94952 = OpLabel
-      %94954 = OpISub %uint %158792 %int_1
-      %94955 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %94954
-      %94956 = OpLoad %_arr_float_uint_2 %94955
-     %102572 = OpCompositeExtract %float %94956 0
-     %102573 = OpCompositeExtract %float %94956 1
-               OpBranch %94958
-      %94944 = OpLabel
-      %94946 = OpIAdd %uint %158794 %int_1
-      %94947 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %94948 = OpLoad %float %94947
-               OpBranch %94958
-      %94957 = OpLabel
-               OpUnreachable
-      %94958 = OpLabel
-     %182491 = OpPhi %uint %94946 %94944 %158794 %94952
-     %163604 = OpPhi %uint %158792 %94944 %94954 %94952
-     %163603 = OpPhi %float %94948 %94944 %102572 %94952
-     %163602 = OpPhi %float %94948 %94944 %102573 %94952
-      %86561 = OpExtInst %float %1 Exp %163603
-      %86565 = OpExtInst %float %1 Exp %163602
-      %86571 = OpExtInst %float %1 FMin %86561 %86565
-      %86577 = OpExtInst %float %1 FMax %86561 %86565
-     %104022 = OpCompositeConstruct %_arr_float_uint_2 %86571 %86577
-      %94962 = OpIAdd %uint %163604 %int_1
-      %94964 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163604
-               OpStore %94964 %104022
-               OpBranch %92278
-      %86523 = OpLabel
-      %86526 = OpLoad %uint %83860
-      %86527 = OpBitwiseAnd %uint %86526 %uint_32768
-      %86528 = OpUGreaterThan %bool %86527 %uint_0
-               OpSelectionMerge %94930 None
-               OpSwitch %uint_0 %94914
-      %94914 = OpLabel
-               OpSelectionMerge %94929 None
-               OpBranchConditional %86528 %94916 %94924
-      %94924 = OpLabel
-      %94926 = OpISub %uint %158792 %int_1
-      %94927 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %94926
-      %94928 = OpLoad %_arr_float_uint_2 %94927
-     %102581 = OpCompositeExtract %float %94928 0
-     %102582 = OpCompositeExtract %float %94928 1
-               OpBranch %94930
-      %94916 = OpLabel
-      %94918 = OpIAdd %uint %158794 %int_1
-      %94919 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %94920 = OpLoad %float %94919
-               OpBranch %94930
-      %94929 = OpLabel
-               OpUnreachable
-      %94930 = OpLabel
-     %182490 = OpPhi %uint %94918 %94916 %158794 %94924
-     %163607 = OpPhi %uint %158792 %94916 %94926 %94924
-     %163606 = OpPhi %float %94920 %94916 %102581 %94924
-     %163605 = OpPhi %float %94920 %94916 %102582 %94924
-      %86532 = OpExtInst %float %1 InverseSqrt %163606
-      %86536 = OpExtInst %float %1 InverseSqrt %163605
-      %86542 = OpExtInst %float %1 FMin %86532 %86536
-      %86548 = OpExtInst %float %1 FMax %86532 %86536
-     %104013 = OpCompositeConstruct %_arr_float_uint_2 %86542 %86548
-      %94934 = OpIAdd %uint %163607 %int_1
-      %94936 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163607
-               OpStore %94936 %104013
-               OpBranch %92278
-      %86494 = OpLabel
-      %86497 = OpLoad %uint %83860
-      %86498 = OpBitwiseAnd %uint %86497 %uint_32768
-      %86499 = OpUGreaterThan %bool %86498 %uint_0
-               OpSelectionMerge %94902 None
-               OpSwitch %uint_0 %94886
-      %94886 = OpLabel
-               OpSelectionMerge %94901 None
-               OpBranchConditional %86499 %94888 %94896
-      %94896 = OpLabel
-      %94898 = OpISub %uint %158792 %int_1
-      %94899 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %94898
-      %94900 = OpLoad %_arr_float_uint_2 %94899
-     %102590 = OpCompositeExtract %float %94900 0
-     %102591 = OpCompositeExtract %float %94900 1
-               OpBranch %94902
-      %94888 = OpLabel
-      %94890 = OpIAdd %uint %158794 %int_1
-      %94891 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %94892 = OpLoad %float %94891
-               OpBranch %94902
-      %94901 = OpLabel
-               OpUnreachable
-      %94902 = OpLabel
-     %182489 = OpPhi %uint %94890 %94888 %158794 %94896
-     %163610 = OpPhi %uint %158792 %94888 %94898 %94896
-     %163609 = OpPhi %float %94892 %94888 %102590 %94896
-     %163608 = OpPhi %float %94892 %94888 %102591 %94896
-      %86503 = OpExtInst %float %1 Sqrt %163609
-      %86507 = OpExtInst %float %1 Sqrt %163608
-      %86513 = OpExtInst %float %1 FMin %86503 %86507
-      %86519 = OpExtInst %float %1 FMax %86503 %86507
-     %104004 = OpCompositeConstruct %_arr_float_uint_2 %86513 %86519
-      %94906 = OpIAdd %uint %163610 %int_1
-      %94908 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163610
-               OpStore %94908 %104004
-               OpBranch %92278
-      %86465 = OpLabel
-      %86468 = OpLoad %uint %83860
-      %86469 = OpBitwiseAnd %uint %86468 %uint_32768
-      %86470 = OpUGreaterThan %bool %86469 %uint_0
-               OpSelectionMerge %94874 None
-               OpSwitch %uint_0 %94858
-      %94858 = OpLabel
-               OpSelectionMerge %94873 None
-               OpBranchConditional %86470 %94860 %94868
-      %94868 = OpLabel
-      %94870 = OpISub %uint %158792 %int_1
-      %94871 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %94870
-      %94872 = OpLoad %_arr_float_uint_2 %94871
-     %102599 = OpCompositeExtract %float %94872 0
-     %102600 = OpCompositeExtract %float %94872 1
-               OpBranch %94874
-      %94860 = OpLabel
-      %94862 = OpIAdd %uint %158794 %int_1
-      %94863 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %94864 = OpLoad %float %94863
-               OpBranch %94874
-      %94873 = OpLabel
-               OpUnreachable
-      %94874 = OpLabel
-     %182488 = OpPhi %uint %94862 %94860 %158794 %94868
-     %163613 = OpPhi %uint %158792 %94860 %94870 %94868
-     %163612 = OpPhi %float %94864 %94860 %102599 %94868
-     %163611 = OpPhi %float %94864 %94860 %102600 %94868
-      %86474 = OpExtInst %float %1 Fract %163612
-      %86478 = OpExtInst %float %1 Fract %163611
-      %86484 = OpExtInst %float %1 FMin %86474 %86478
-      %86490 = OpExtInst %float %1 FMax %86474 %86478
-     %103995 = OpCompositeConstruct %_arr_float_uint_2 %86484 %86490
-      %94878 = OpIAdd %uint %163613 %int_1
-      %94880 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163613
-               OpStore %94880 %103995
-               OpBranch %92278
-      %86436 = OpLabel
-      %86439 = OpLoad %uint %83860
-      %86440 = OpBitwiseAnd %uint %86439 %uint_32768
-      %86441 = OpUGreaterThan %bool %86440 %uint_0
-               OpSelectionMerge %94846 None
-               OpSwitch %uint_0 %94830
-      %94830 = OpLabel
-               OpSelectionMerge %94845 None
-               OpBranchConditional %86441 %94832 %94840
-      %94840 = OpLabel
-      %94842 = OpISub %uint %158792 %int_1
-      %94843 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %94842
-      %94844 = OpLoad %_arr_float_uint_2 %94843
-     %102608 = OpCompositeExtract %float %94844 0
-     %102609 = OpCompositeExtract %float %94844 1
-               OpBranch %94846
-      %94832 = OpLabel
-      %94834 = OpIAdd %uint %158794 %int_1
-      %94835 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %94836 = OpLoad %float %94835
-               OpBranch %94846
-      %94845 = OpLabel
-               OpUnreachable
-      %94846 = OpLabel
-     %182487 = OpPhi %uint %94834 %94832 %158794 %94840
-     %163616 = OpPhi %uint %158792 %94832 %94842 %94840
-     %163615 = OpPhi %float %94836 %94832 %102608 %94840
-     %163614 = OpPhi %float %94836 %94832 %102609 %94840
-      %86445 = OpExtInst %float %1 Ceil %163615
-      %86449 = OpExtInst %float %1 Ceil %163614
-      %86455 = OpExtInst %float %1 FMin %86445 %86449
-      %86461 = OpExtInst %float %1 FMax %86445 %86449
-     %103986 = OpCompositeConstruct %_arr_float_uint_2 %86455 %86461
-      %94850 = OpIAdd %uint %163616 %int_1
-      %94852 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163616
-               OpStore %94852 %103986
-               OpBranch %92278
-      %86407 = OpLabel
-      %86410 = OpLoad %uint %83860
-      %86411 = OpBitwiseAnd %uint %86410 %uint_32768
-      %86412 = OpUGreaterThan %bool %86411 %uint_0
-               OpSelectionMerge %94818 None
-               OpSwitch %uint_0 %94802
-      %94802 = OpLabel
-               OpSelectionMerge %94817 None
-               OpBranchConditional %86412 %94804 %94812
-      %94812 = OpLabel
-      %94814 = OpISub %uint %158792 %int_1
-      %94815 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %94814
-      %94816 = OpLoad %_arr_float_uint_2 %94815
-     %102617 = OpCompositeExtract %float %94816 0
-     %102618 = OpCompositeExtract %float %94816 1
-               OpBranch %94818
-      %94804 = OpLabel
-      %94806 = OpIAdd %uint %158794 %int_1
-      %94807 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %94808 = OpLoad %float %94807
-               OpBranch %94818
-      %94817 = OpLabel
-               OpUnreachable
-      %94818 = OpLabel
-     %182486 = OpPhi %uint %94806 %94804 %158794 %94812
-     %163619 = OpPhi %uint %158792 %94804 %94814 %94812
-     %163618 = OpPhi %float %94808 %94804 %102617 %94812
-     %163617 = OpPhi %float %94808 %94804 %102618 %94812
-      %86416 = OpExtInst %float %1 Floor %163618
-      %86420 = OpExtInst %float %1 Floor %163617
-      %86426 = OpExtInst %float %1 FMin %86416 %86420
-      %86432 = OpExtInst %float %1 FMax %86416 %86420
-     %103977 = OpCompositeConstruct %_arr_float_uint_2 %86426 %86432
-      %94822 = OpIAdd %uint %163619 %int_1
-      %94824 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163619
-               OpStore %94824 %103977
-               OpBranch %92278
-      %86378 = OpLabel
-      %86381 = OpLoad %uint %83860
-      %86382 = OpBitwiseAnd %uint %86381 %uint_32768
-      %86383 = OpUGreaterThan %bool %86382 %uint_0
-               OpSelectionMerge %94790 None
-               OpSwitch %uint_0 %94774
-      %94774 = OpLabel
-               OpSelectionMerge %94789 None
-               OpBranchConditional %86383 %94776 %94784
-      %94784 = OpLabel
-      %94786 = OpISub %uint %158792 %int_1
-      %94787 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %94786
-      %94788 = OpLoad %_arr_float_uint_2 %94787
-     %102626 = OpCompositeExtract %float %94788 0
-     %102627 = OpCompositeExtract %float %94788 1
-               OpBranch %94790
-      %94776 = OpLabel
-      %94778 = OpIAdd %uint %158794 %int_1
-      %94779 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %94780 = OpLoad %float %94779
-               OpBranch %94790
-      %94789 = OpLabel
-               OpUnreachable
-      %94790 = OpLabel
-     %182485 = OpPhi %uint %94778 %94776 %158794 %94784
-     %163622 = OpPhi %uint %158792 %94776 %94786 %94784
-     %163621 = OpPhi %float %94780 %94776 %102626 %94784
-     %163620 = OpPhi %float %94780 %94776 %102627 %94784
-      %86387 = OpExtInst %float %1 FSign %163621
-      %86391 = OpExtInst %float %1 FSign %163620
-      %86397 = OpExtInst %float %1 FMin %86387 %86391
-      %86403 = OpExtInst %float %1 FMax %86387 %86391
-     %103968 = OpCompositeConstruct %_arr_float_uint_2 %86397 %86403
-      %94794 = OpIAdd %uint %163622 %int_1
-      %94796 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163622
-               OpStore %94796 %103968
-               OpBranch %92278
-      %86349 = OpLabel
-      %86352 = OpLoad %uint %83860
-      %86353 = OpBitwiseAnd %uint %86352 %uint_32768
-      %86354 = OpUGreaterThan %bool %86353 %uint_0
-               OpSelectionMerge %94762 None
-               OpSwitch %uint_0 %94746
-      %94746 = OpLabel
-               OpSelectionMerge %94761 None
-               OpBranchConditional %86354 %94748 %94756
-      %94756 = OpLabel
-      %94758 = OpISub %uint %158792 %int_1
-      %94759 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %94758
-      %94760 = OpLoad %_arr_float_uint_2 %94759
-     %102635 = OpCompositeExtract %float %94760 0
-     %102636 = OpCompositeExtract %float %94760 1
-               OpBranch %94762
-      %94748 = OpLabel
-      %94750 = OpIAdd %uint %158794 %int_1
-      %94751 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %94752 = OpLoad %float %94751
-               OpBranch %94762
-      %94761 = OpLabel
-               OpUnreachable
-      %94762 = OpLabel
-     %182484 = OpPhi %uint %94750 %94748 %158794 %94756
-     %163625 = OpPhi %uint %158792 %94748 %94758 %94756
-     %163624 = OpPhi %float %94752 %94748 %102635 %94756
-     %163623 = OpPhi %float %94752 %94748 %102636 %94756
-      %86358 = OpExtInst %float %1 FAbs %163624
-      %86362 = OpExtInst %float %1 FAbs %163623
-      %86368 = OpExtInst %float %1 FMin %86358 %86362
-      %86374 = OpExtInst %float %1 FMax %86358 %86362
-     %103959 = OpCompositeConstruct %_arr_float_uint_2 %86368 %86374
-      %94766 = OpIAdd %uint %163625 %int_1
-      %94768 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %163625
-               OpStore %94768 %103959
-               OpBranch %92278
-      %86285 = OpLabel
-      %86288 = OpLoad %uint %83860
-      %86289 = OpBitwiseAnd %uint %86288 %uint_32768
-      %86290 = OpUGreaterThan %bool %86289 %uint_0
-               OpSelectionMerge %94711 None
-               OpSwitch %uint_0 %94695
-      %94695 = OpLabel
-               OpSelectionMerge %94710 None
-               OpBranchConditional %86290 %94697 %94705
-      %94705 = OpLabel
-      %94707 = OpISub %uint %158811 %int_1
-               OpBranch %94711
-      %94697 = OpLabel
-      %94699 = OpIAdd %uint %158837 %int_1
-               OpBranch %94711
-      %94710 = OpLabel
-               OpUnreachable
-      %94711 = OpLabel
-     %163628 = OpPhi %uint %94699 %94697 %158837 %94705
-     %163627 = OpPhi %uint %158811 %94697 %94707 %94705
-      %86294 = OpLoad %uint %83860
-      %86295 = OpBitwiseAnd %uint %86294 %uint_16384
-      %86296 = OpUGreaterThan %bool %86295 %uint_0
-               OpSelectionMerge %94734 None
-               OpSwitch %uint_0 %94718
-      %94718 = OpLabel
-               OpSelectionMerge %94733 None
-               OpBranchConditional %86296 %94720 %94728
-      %94728 = OpLabel
-      %94730 = OpISub %uint %163627 %int_1
-               OpBranch %94734
-      %94720 = OpLabel
-      %94722 = OpIAdd %uint %163628 %int_1
-               OpBranch %94734
-      %94733 = OpLabel
-               OpUnreachable
-      %94734 = OpLabel
-     %243232 = OpPhi %uint %94722 %94720 %163628 %94728
-     %242741 = OpPhi %uint %163627 %94720 %94730 %94728
-     %103952 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %94738 = OpIAdd %uint %158792 %int_1
-      %94740 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %94740 %103952
-               OpBranch %92278
-      %86239 = OpLabel
-      %86242 = OpLoad %uint %83860
-      %86243 = OpBitwiseAnd %uint %86242 %uint_32768
-      %86244 = OpUGreaterThan %bool %86243 %uint_0
-               OpSelectionMerge %94660 None
-               OpSwitch %uint_0 %94644
-      %94644 = OpLabel
-               OpSelectionMerge %94659 None
-               OpBranchConditional %86244 %94646 %94654
-      %94654 = OpLabel
-      %94656 = OpISub %uint %158802 %int_1
-               OpBranch %94660
-      %94646 = OpLabel
-      %94648 = OpIAdd %uint %158805 %int_1
-               OpBranch %94660
-      %94659 = OpLabel
-               OpUnreachable
-      %94660 = OpLabel
-     %165591 = OpPhi %uint %94648 %94646 %158805 %94654
-     %165590 = OpPhi %uint %158802 %94646 %94656 %94654
-      %86248 = OpLoad %uint %83860
-      %86249 = OpBitwiseAnd %uint %86248 %uint_16384
-      %86250 = OpUGreaterThan %bool %86249 %uint_0
-               OpSelectionMerge %94683 None
-               OpSwitch %uint_0 %94667
-      %94667 = OpLabel
-               OpSelectionMerge %94682 None
-               OpBranchConditional %86250 %94669 %94677
-      %94677 = OpLabel
-      %94679 = OpISub %uint %165590 %int_1
-               OpBranch %94683
-      %94669 = OpLabel
-      %94671 = OpIAdd %uint %165591 %int_1
-               OpBranch %94683
-      %94682 = OpLabel
-               OpUnreachable
-      %94683 = OpLabel
-     %242456 = OpPhi %uint %94671 %94669 %165591 %94677
-     %242202 = OpPhi %uint %165590 %94669 %94679 %94677
-     %103947 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %94687 = OpIAdd %uint %158792 %int_1
-      %94689 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %94689 %103947
-               OpBranch %92278
-      %86175 = OpLabel
-      %86178 = OpLoad %uint %83860
-      %86179 = OpBitwiseAnd %uint %86178 %uint_32768
-      %86180 = OpUGreaterThan %bool %86179 %uint_0
-               OpSelectionMerge %94609 None
-               OpSwitch %uint_0 %94593
-      %94593 = OpLabel
-               OpSelectionMerge %94608 None
-               OpBranchConditional %86180 %94595 %94603
-      %94603 = OpLabel
-      %94605 = OpISub %uint %158813 %int_1
-               OpBranch %94609
-      %94595 = OpLabel
-      %94597 = OpIAdd %uint %160807 %int_1
-               OpBranch %94609
-      %94608 = OpLabel
-               OpUnreachable
-      %94609 = OpLabel
-     %167554 = OpPhi %uint %94597 %94595 %160807 %94603
-     %167553 = OpPhi %uint %158813 %94595 %94605 %94603
-      %86184 = OpLoad %uint %83860
-      %86185 = OpBitwiseAnd %uint %86184 %uint_16384
-      %86186 = OpUGreaterThan %bool %86185 %uint_0
-               OpSelectionMerge %94632 None
-               OpSwitch %uint_0 %94616
-      %94616 = OpLabel
-               OpSelectionMerge %94631 None
-               OpBranchConditional %86186 %94618 %94626
-      %94626 = OpLabel
-      %94628 = OpISub %uint %167553 %int_1
-               OpBranch %94632
-      %94618 = OpLabel
-      %94620 = OpIAdd %uint %167554 %int_1
-               OpBranch %94632
-      %94631 = OpLabel
-               OpUnreachable
-      %94632 = OpLabel
-     %244808 = OpPhi %uint %94620 %94618 %167554 %94626
-     %242970 = OpPhi %uint %167553 %94618 %94628 %94626
-     %103942 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %94636 = OpIAdd %uint %158792 %int_1
-      %94638 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %94638 %103942
-               OpBranch %92278
-      %86135 = OpLabel
-      %86138 = OpLoad %uint %83860
-      %86139 = OpBitwiseAnd %uint %86138 %uint_32768
-      %86140 = OpUGreaterThan %bool %86139 %uint_0
-               OpSelectionMerge %94581 None
-               OpSwitch %uint_0 %94565
-      %94565 = OpLabel
-               OpSelectionMerge %94580 None
-               OpBranchConditional %86140 %94567 %94575
-      %94575 = OpLabel
-      %94577 = OpISub %uint %158811 %int_1
-               OpBranch %94581
-      %94567 = OpLabel
-      %94569 = OpIAdd %uint %158837 %int_1
-               OpBranch %94581
-      %94580 = OpLabel
-               OpUnreachable
-      %94581 = OpLabel
-     %243227 = OpPhi %uint %94569 %94567 %158837 %94575
-     %242736 = OpPhi %uint %158811 %94567 %94577 %94575
-     %103937 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %94585 = OpIAdd %uint %158792 %int_1
-      %94587 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %94587 %103937
-               OpBranch %92278
-      %86095 = OpLabel
-      %86098 = OpLoad %uint %83860
-      %86099 = OpBitwiseAnd %uint %86098 %uint_32768
-      %86100 = OpUGreaterThan %bool %86099 %uint_0
-               OpSelectionMerge %94553 None
-               OpSwitch %uint_0 %94537
-      %94537 = OpLabel
-               OpSelectionMerge %94552 None
-               OpBranchConditional %86100 %94539 %94547
-      %94547 = OpLabel
-      %94549 = OpISub %uint %158802 %int_1
-               OpBranch %94553
-      %94539 = OpLabel
-      %94541 = OpIAdd %uint %158805 %int_1
-               OpBranch %94553
-      %94552 = OpLabel
-               OpUnreachable
-      %94553 = OpLabel
-     %242452 = OpPhi %uint %94541 %94539 %158805 %94547
-     %242198 = OpPhi %uint %158802 %94539 %94549 %94547
-     %103932 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %94557 = OpIAdd %uint %158792 %int_1
-      %94559 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %94559 %103932
-               OpBranch %92278
-      %86055 = OpLabel
-      %86058 = OpLoad %uint %83860
-      %86059 = OpBitwiseAnd %uint %86058 %uint_32768
-      %86060 = OpUGreaterThan %bool %86059 %uint_0
-               OpSelectionMerge %94525 None
-               OpSwitch %uint_0 %94509
-      %94509 = OpLabel
-               OpSelectionMerge %94524 None
-               OpBranchConditional %86060 %94511 %94519
-      %94519 = OpLabel
-      %94521 = OpISub %uint %158813 %int_1
-               OpBranch %94525
-      %94511 = OpLabel
-      %94513 = OpIAdd %uint %160807 %int_1
-               OpBranch %94525
-      %94524 = OpLabel
-               OpUnreachable
-      %94525 = OpLabel
-     %244805 = OpPhi %uint %94513 %94511 %160807 %94519
-     %242967 = OpPhi %uint %158813 %94511 %94521 %94519
-     %103927 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %94529 = OpIAdd %uint %158792 %int_1
-      %94531 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %94531 %103927
-               OpBranch %92278
-      %86004 = OpLabel
-      %86007 = OpLoad %uint %83860
-      %86008 = OpBitwiseAnd %uint %86007 %uint_32768
-      %86009 = OpUGreaterThan %bool %86008 %uint_0
-               OpSelectionMerge %94474 None
-               OpSwitch %uint_0 %94458
-      %94458 = OpLabel
-               OpSelectionMerge %94473 None
-               OpBranchConditional %86009 %94460 %94468
-      %94468 = OpLabel
-      %94470 = OpISub %uint %158811 %int_1
-               OpBranch %94474
-      %94460 = OpLabel
-      %94462 = OpIAdd %uint %158837 %int_1
-               OpBranch %94474
-      %94473 = OpLabel
-               OpUnreachable
-      %94474 = OpLabel
-     %175388 = OpPhi %uint %94462 %94460 %158837 %94468
-     %175387 = OpPhi %uint %158811 %94460 %94470 %94468
-      %86013 = OpLoad %uint %83860
-      %86014 = OpBitwiseAnd %uint %86013 %uint_16384
-      %86015 = OpUGreaterThan %bool %86014 %uint_0
-               OpSelectionMerge %94497 None
-               OpSwitch %uint_0 %94481
-      %94481 = OpLabel
-               OpSelectionMerge %94496 None
-               OpBranchConditional %86015 %94483 %94491
-      %94491 = OpLabel
-      %94493 = OpISub %uint %175387 %int_1
-               OpBranch %94497
-      %94483 = OpLabel
-      %94485 = OpIAdd %uint %175388 %int_1
-               OpBranch %94497
-      %94496 = OpLabel
-               OpUnreachable
-      %94497 = OpLabel
-     %243224 = OpPhi %uint %94485 %94483 %175388 %94491
-     %242733 = OpPhi %uint %175387 %94483 %94493 %94491
-     %103922 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %94501 = OpIAdd %uint %158792 %int_1
-      %94503 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %94503 %103922
-               OpBranch %92278
-      %85953 = OpLabel
-      %85956 = OpLoad %uint %83860
-      %85957 = OpBitwiseAnd %uint %85956 %uint_32768
-      %85958 = OpUGreaterThan %bool %85957 %uint_0
-               OpSelectionMerge %94423 None
-               OpSwitch %uint_0 %94407
-      %94407 = OpLabel
-               OpSelectionMerge %94422 None
-               OpBranchConditional %85958 %94409 %94417
-      %94417 = OpLabel
-      %94419 = OpISub %uint %158802 %int_1
-               OpBranch %94423
-      %94409 = OpLabel
-      %94411 = OpIAdd %uint %158805 %int_1
-               OpBranch %94423
-      %94422 = OpLabel
-               OpUnreachable
-      %94423 = OpLabel
-     %177351 = OpPhi %uint %94411 %94409 %158805 %94417
-     %177350 = OpPhi %uint %158802 %94409 %94419 %94417
-      %85962 = OpLoad %uint %83860
-      %85963 = OpBitwiseAnd %uint %85962 %uint_16384
-      %85964 = OpUGreaterThan %bool %85963 %uint_0
-               OpSelectionMerge %94446 None
-               OpSwitch %uint_0 %94430
-      %94430 = OpLabel
-               OpSelectionMerge %94445 None
-               OpBranchConditional %85964 %94432 %94440
-      %94440 = OpLabel
-      %94442 = OpISub %uint %177350 %int_1
-               OpBranch %94446
-      %94432 = OpLabel
-      %94434 = OpIAdd %uint %177351 %int_1
-               OpBranch %94446
-      %94445 = OpLabel
-               OpUnreachable
-      %94446 = OpLabel
-     %242448 = OpPhi %uint %94434 %94432 %177351 %94440
-     %242194 = OpPhi %uint %177350 %94432 %94442 %94440
-     %103917 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %94450 = OpIAdd %uint %158792 %int_1
-      %94452 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %94452 %103917
-               OpBranch %92278
-      %85902 = OpLabel
-      %85905 = OpLoad %uint %83860
-      %85906 = OpBitwiseAnd %uint %85905 %uint_32768
-      %85907 = OpUGreaterThan %bool %85906 %uint_0
-               OpSelectionMerge %94372 None
-               OpSwitch %uint_0 %94356
-      %94356 = OpLabel
-               OpSelectionMerge %94371 None
-               OpBranchConditional %85907 %94358 %94366
-      %94366 = OpLabel
-      %94368 = OpISub %uint %158813 %int_1
-               OpBranch %94372
-      %94358 = OpLabel
-      %94360 = OpIAdd %uint %160807 %int_1
-               OpBranch %94372
-      %94371 = OpLabel
-               OpUnreachable
-      %94372 = OpLabel
-     %179314 = OpPhi %uint %94360 %94358 %160807 %94366
-     %179313 = OpPhi %uint %158813 %94358 %94368 %94366
-      %85911 = OpLoad %uint %83860
-      %85912 = OpBitwiseAnd %uint %85911 %uint_16384
-      %85913 = OpUGreaterThan %bool %85912 %uint_0
-               OpSelectionMerge %94395 None
-               OpSwitch %uint_0 %94379
-      %94379 = OpLabel
-               OpSelectionMerge %94394 None
-               OpBranchConditional %85913 %94381 %94389
-      %94389 = OpLabel
-      %94391 = OpISub %uint %179313 %int_1
-               OpBranch %94395
-      %94381 = OpLabel
-      %94383 = OpIAdd %uint %179314 %int_1
-               OpBranch %94395
-      %94394 = OpLabel
-               OpUnreachable
-      %94395 = OpLabel
-     %244800 = OpPhi %uint %94383 %94381 %179314 %94389
-     %242962 = OpPhi %uint %179313 %94381 %94391 %94389
-     %103912 = OpCompositeConstruct %_arr_float_uint_2 %126126 %126126
-      %94399 = OpIAdd %uint %158792 %int_1
-      %94401 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %158792
-               OpStore %94401 %103912
-               OpBranch %92278
-      %85853 = OpLabel
-      %85856 = OpLoad %uint %83860
-      %85857 = OpBitwiseAnd %uint %85856 %uint_32768
-      %85858 = OpUGreaterThan %bool %85857 %uint_0
-               OpSelectionMerge %94321 None
-               OpSwitch %uint_0 %94305
-      %94305 = OpLabel
-               OpSelectionMerge %94320 None
-               OpBranchConditional %85858 %94307 %94315
-      %94315 = OpLabel
-      %94317 = OpISub %uint %158802 %int_1
-      %94318 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %94317
-      %94319 = OpLoad %_arr_v3float_uint_2 %94318
-     %102653 = OpCompositeExtract %v3float %94319 0
-     %102654 = OpCompositeExtract %v3float %94319 1
-               OpBranch %94321
-      %94307 = OpLabel
-      %94309 = OpIAdd %uint %158805 %int_1
-      %94310 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %94311 = OpLoad %v3float %94310
-               OpBranch %94321
-      %94320 = OpLabel
-               OpUnreachable
-      %94321 = OpLabel
-     %181279 = OpPhi %uint %94309 %94307 %158805 %94315
-     %181278 = OpPhi %uint %158802 %94307 %94317 %94315
-     %181276 = OpPhi %v3float %94311 %94307 %102653 %94315
-     %181275 = OpPhi %v3float %94311 %94307 %102654 %94315
-      %85862 = OpLoad %uint %83860
-      %85863 = OpBitwiseAnd %uint %85862 %uint_16384
-      %85864 = OpUGreaterThan %bool %85863 %uint_0
-               OpSelectionMerge %94344 None
-               OpSwitch %uint_0 %94328
-      %94328 = OpLabel
-               OpSelectionMerge %94343 None
-               OpBranchConditional %85864 %94330 %94338
-      %94338 = OpLabel
-      %94340 = OpISub %uint %181278 %int_1
-      %94341 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %94340
-      %94342 = OpLoad %_arr_v3float_uint_2 %94341
-     %102644 = OpCompositeExtract %v3float %94342 0
-     %102645 = OpCompositeExtract %v3float %94342 1
-               OpBranch %94344
-      %94330 = OpLabel
-      %94332 = OpIAdd %uint %181279 %int_1
-      %94333 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %181279
-      %94334 = OpLoad %v3float %94333
-               OpBranch %94344
-      %94343 = OpLabel
-               OpUnreachable
-      %94344 = OpLabel
-     %242445 = OpPhi %uint %94332 %94330 %181279 %94338
-     %181282 = OpPhi %uint %181278 %94330 %94340 %94338
-     %181281 = OpPhi %v3float %94334 %94330 %102644 %94338
-     %181280 = OpPhi %v3float %94334 %94330 %102645 %94338
-      %85870 = OpExtInst %v3float %1 Cross %181276 %181281
-      %85875 = OpExtInst %v3float %1 Cross %181276 %181280
-      %85880 = OpExtInst %v3float %1 Cross %181275 %181281
-      %85885 = OpExtInst %v3float %1 Cross %181275 %181280
-      %85890 = OpExtInst %v3float %1 FMin %85880 %85885
-      %85891 = OpExtInst %v3float %1 FMin %85875 %85890
-      %85892 = OpExtInst %v3float %1 FMin %85870 %85891
-      %85897 = OpExtInst %v3float %1 FMax %85880 %85885
-      %85898 = OpExtInst %v3float %1 FMax %85875 %85897
-      %85899 = OpExtInst %v3float %1 FMax %85870 %85898
-      %85900 = OpCompositeConstruct %_arr_v3float_uint_2 %85892 %85899
-      %94348 = OpIAdd %uint %181282 %int_1
-      %94350 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %181282
-               OpStore %94350 %85900
-               OpBranch %92278
-      %85786 = OpLabel
-      %85789 = OpLoad %uint %83860
-      %85790 = OpBitwiseAnd %uint %85789 %uint_32768
-      %85791 = OpUGreaterThan %bool %85790 %uint_0
-               OpSelectionMerge %94270 None
-               OpSwitch %uint_0 %94254
-      %94254 = OpLabel
-               OpSelectionMerge %94269 None
-               OpBranchConditional %85791 %94256 %94264
-      %94264 = OpLabel
-      %94266 = OpISub %uint %158811 %int_1
-      %94267 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %94266
-      %94268 = OpLoad %_arr_v4float_uint_2 %94267
-     %102671 = OpCompositeExtract %v4float %94268 0
-     %102672 = OpCompositeExtract %v4float %94268 1
-               OpBranch %94270
-      %94256 = OpLabel
-      %94258 = OpIAdd %uint %158837 %int_1
-      %94259 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %94260 = OpLoad %v4float %94259
-               OpBranch %94270
-      %94269 = OpLabel
-               OpUnreachable
-      %94270 = OpLabel
-     %243217 = OpPhi %uint %94258 %94256 %158837 %94264
-     %181293 = OpPhi %uint %158811 %94256 %94266 %94264
-     %181284 = OpPhi %v4float %94260 %94256 %102671 %94264
-     %181283 = OpPhi %v4float %94260 %94256 %102672 %94264
-      %85795 = OpLoad %uint %83860
-      %85796 = OpBitwiseAnd %uint %85795 %uint_16384
-      %85797 = OpUGreaterThan %bool %85796 %uint_0
-               OpSelectionMerge %94293 None
-               OpSwitch %uint_0 %94277
-      %94277 = OpLabel
-               OpSelectionMerge %94292 None
-               OpBranchConditional %85797 %94279 %94287
-      %94287 = OpLabel
-      %94289 = OpISub %uint %158792 %int_1
-      %94290 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %94289
-      %94291 = OpLoad %_arr_float_uint_2 %94290
-     %102662 = OpCompositeExtract %float %94291 0
-     %102663 = OpCompositeExtract %float %94291 1
-               OpBranch %94293
-      %94279 = OpLabel
-      %94281 = OpIAdd %uint %158794 %int_1
-      %94282 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %94283 = OpLoad %float %94282
-               OpBranch %94293
-      %94292 = OpLabel
-               OpUnreachable
-      %94293 = OpLabel
-     %182466 = OpPhi %uint %94281 %94279 %158794 %94287
-     %182264 = OpPhi %uint %158792 %94279 %94289 %94287
-     %181289 = OpPhi %float %94283 %94279 %102662 %94287
-     %181288 = OpPhi %float %94283 %94279 %102663 %94287
-      %85803 = OpCompositeConstruct %v4float %181289 %181289 %181289 %181289
-      %85804 = OpFMod %v4float %181284 %85803
-      %85810 = OpCompositeConstruct %v4float %181288 %181288 %181288 %181288
-      %85811 = OpFMod %v4float %181284 %85810
-      %85818 = OpFMod %v4float %181283 %85803
-      %85825 = OpFMod %v4float %181283 %85810
-      %85835 = OpExtInst %v4float %1 FMin %85818 %85825
-      %85836 = OpExtInst %v4float %1 FMin %85811 %85835
-      %85837 = OpExtInst %v4float %1 FMin %85804 %85836
-      %85847 = OpExtInst %v4float %1 FMax %85818 %85825
-      %85848 = OpExtInst %v4float %1 FMax %85811 %85847
-      %85849 = OpExtInst %v4float %1 FMax %85804 %85848
-     %103891 = OpCompositeConstruct %_arr_v4float_uint_2 %85837 %85849
-      %94297 = OpIAdd %uint %181293 %int_1
-      %94299 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %181293
-               OpStore %94299 %103891
-               OpBranch %92278
-      %85723 = OpLabel
-      %85726 = OpLoad %uint %83860
-      %85727 = OpBitwiseAnd %uint %85726 %uint_32768
-      %85728 = OpUGreaterThan %bool %85727 %uint_0
-               OpSelectionMerge %94219 None
-               OpSwitch %uint_0 %94203
-      %94203 = OpLabel
-               OpSelectionMerge %94218 None
-               OpBranchConditional %85728 %94205 %94213
-      %94213 = OpLabel
-      %94215 = OpISub %uint %158811 %int_1
-      %94216 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %94215
-      %94217 = OpLoad %_arr_v4float_uint_2 %94216
-     %102689 = OpCompositeExtract %v4float %94217 0
-     %102690 = OpCompositeExtract %v4float %94217 1
-               OpBranch %94219
-      %94205 = OpLabel
-      %94207 = OpIAdd %uint %158837 %int_1
-      %94208 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %94209 = OpLoad %v4float %94208
-               OpBranch %94219
-      %94218 = OpLabel
-               OpUnreachable
-      %94219 = OpLabel
-     %181298 = OpPhi %uint %94207 %94205 %158837 %94213
-     %181297 = OpPhi %uint %158811 %94205 %94215 %94213
-     %181295 = OpPhi %v4float %94209 %94205 %102689 %94213
-     %181294 = OpPhi %v4float %94209 %94205 %102690 %94213
-      %85732 = OpLoad %uint %83860
-      %85733 = OpBitwiseAnd %uint %85732 %uint_16384
-      %85734 = OpUGreaterThan %bool %85733 %uint_0
-               OpSelectionMerge %94242 None
-               OpSwitch %uint_0 %94226
-      %94226 = OpLabel
-               OpSelectionMerge %94241 None
-               OpBranchConditional %85734 %94228 %94236
-      %94236 = OpLabel
-      %94238 = OpISub %uint %181297 %int_1
-      %94239 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %94238
-      %94240 = OpLoad %_arr_v4float_uint_2 %94239
-     %102680 = OpCompositeExtract %v4float %94240 0
-     %102681 = OpCompositeExtract %v4float %94240 1
-               OpBranch %94242
-      %94228 = OpLabel
-      %94230 = OpIAdd %uint %181298 %int_1
-      %94231 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %181298
-      %94232 = OpLoad %v4float %94231
-               OpBranch %94242
-      %94241 = OpLabel
-               OpUnreachable
-      %94242 = OpLabel
-     %243215 = OpPhi %uint %94230 %94228 %181298 %94236
-     %181303 = OpPhi %uint %181297 %94228 %94238 %94236
-     %181300 = OpPhi %v4float %94232 %94228 %102680 %94236
-     %181299 = OpPhi %v4float %94232 %94228 %102681 %94236
-      %85740 = OpFMod %v4float %181295 %181300
-      %85746 = OpFMod %v4float %181295 %181299
-      %85752 = OpFMod %v4float %181294 %181300
-      %85758 = OpFMod %v4float %181294 %181299
-      %85768 = OpExtInst %v4float %1 FMin %85752 %85758
-      %85769 = OpExtInst %v4float %1 FMin %85746 %85768
-      %85770 = OpExtInst %v4float %1 FMin %85740 %85769
-      %85780 = OpExtInst %v4float %1 FMax %85752 %85758
-      %85781 = OpExtInst %v4float %1 FMax %85746 %85780
-      %85782 = OpExtInst %v4float %1 FMax %85740 %85781
-     %103876 = OpCompositeConstruct %_arr_v4float_uint_2 %85770 %85782
-      %94246 = OpIAdd %uint %181303 %int_1
-      %94248 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %181303
-               OpStore %94248 %103876
-               OpBranch %92278
-      %85656 = OpLabel
-      %85659 = OpLoad %uint %83860
-      %85660 = OpBitwiseAnd %uint %85659 %uint_32768
-      %85661 = OpUGreaterThan %bool %85660 %uint_0
-               OpSelectionMerge %94168 None
-               OpSwitch %uint_0 %94152
-      %94152 = OpLabel
-               OpSelectionMerge %94167 None
-               OpBranchConditional %85661 %94154 %94162
-      %94162 = OpLabel
-      %94164 = OpISub %uint %158802 %int_1
-      %94165 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %94164
-      %94166 = OpLoad %_arr_v3float_uint_2 %94165
-     %102707 = OpCompositeExtract %v3float %94166 0
-     %102708 = OpCompositeExtract %v3float %94166 1
-               OpBranch %94168
-      %94154 = OpLabel
-      %94156 = OpIAdd %uint %158805 %int_1
-      %94157 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %94158 = OpLoad %v3float %94157
-               OpBranch %94168
-      %94167 = OpLabel
-               OpUnreachable
-      %94168 = OpLabel
-     %242440 = OpPhi %uint %94156 %94154 %158805 %94162
-     %181314 = OpPhi %uint %158802 %94154 %94164 %94162
-     %181305 = OpPhi %v3float %94158 %94154 %102707 %94162
-     %181304 = OpPhi %v3float %94158 %94154 %102708 %94162
-      %85665 = OpLoad %uint %83860
-      %85666 = OpBitwiseAnd %uint %85665 %uint_16384
-      %85667 = OpUGreaterThan %bool %85666 %uint_0
-               OpSelectionMerge %94191 None
-               OpSwitch %uint_0 %94175
-      %94175 = OpLabel
-               OpSelectionMerge %94190 None
-               OpBranchConditional %85667 %94177 %94185
-      %94185 = OpLabel
-      %94187 = OpISub %uint %158792 %int_1
-      %94188 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %94187
-      %94189 = OpLoad %_arr_float_uint_2 %94188
-     %102698 = OpCompositeExtract %float %94189 0
-     %102699 = OpCompositeExtract %float %94189 1
-               OpBranch %94191
-      %94177 = OpLabel
-      %94179 = OpIAdd %uint %158794 %int_1
-      %94180 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %94181 = OpLoad %float %94180
-               OpBranch %94191
-      %94190 = OpLabel
-               OpUnreachable
-      %94191 = OpLabel
-     %182463 = OpPhi %uint %94179 %94177 %158794 %94185
-     %182261 = OpPhi %uint %158792 %94177 %94187 %94185
-     %181310 = OpPhi %float %94181 %94177 %102698 %94185
-     %181309 = OpPhi %float %94181 %94177 %102699 %94185
-      %85673 = OpCompositeConstruct %v3float %181310 %181310 %181310
-      %85674 = OpFMod %v3float %181305 %85673
-      %85680 = OpCompositeConstruct %v3float %181309 %181309 %181309
-      %85681 = OpFMod %v3float %181305 %85680
-      %85688 = OpFMod %v3float %181304 %85673
-      %85695 = OpFMod %v3float %181304 %85680
-      %85705 = OpExtInst %v3float %1 FMin %85688 %85695
-      %85706 = OpExtInst %v3float %1 FMin %85681 %85705
-      %85707 = OpExtInst %v3float %1 FMin %85674 %85706
-      %85717 = OpExtInst %v3float %1 FMax %85688 %85695
-      %85718 = OpExtInst %v3float %1 FMax %85681 %85717
-      %85719 = OpExtInst %v3float %1 FMax %85674 %85718
-     %103861 = OpCompositeConstruct %_arr_v3float_uint_2 %85707 %85719
-      %94195 = OpIAdd %uint %181314 %int_1
-      %94197 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %181314
-               OpStore %94197 %103861
-               OpBranch %92278
-      %85593 = OpLabel
-      %85596 = OpLoad %uint %83860
-      %85597 = OpBitwiseAnd %uint %85596 %uint_32768
-      %85598 = OpUGreaterThan %bool %85597 %uint_0
-               OpSelectionMerge %94117 None
-               OpSwitch %uint_0 %94101
-      %94101 = OpLabel
-               OpSelectionMerge %94116 None
-               OpBranchConditional %85598 %94103 %94111
-      %94111 = OpLabel
-      %94113 = OpISub %uint %158802 %int_1
-      %94114 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %94113
-      %94115 = OpLoad %_arr_v3float_uint_2 %94114
-     %102725 = OpCompositeExtract %v3float %94115 0
-     %102726 = OpCompositeExtract %v3float %94115 1
-               OpBranch %94117
-      %94103 = OpLabel
-      %94105 = OpIAdd %uint %158805 %int_1
-      %94106 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %94107 = OpLoad %v3float %94106
-               OpBranch %94117
-      %94116 = OpLabel
-               OpUnreachable
-      %94117 = OpLabel
-     %181319 = OpPhi %uint %94105 %94103 %158805 %94111
-     %181318 = OpPhi %uint %158802 %94103 %94113 %94111
-     %181316 = OpPhi %v3float %94107 %94103 %102725 %94111
-     %181315 = OpPhi %v3float %94107 %94103 %102726 %94111
-      %85602 = OpLoad %uint %83860
-      %85603 = OpBitwiseAnd %uint %85602 %uint_16384
-      %85604 = OpUGreaterThan %bool %85603 %uint_0
-               OpSelectionMerge %94140 None
-               OpSwitch %uint_0 %94124
-      %94124 = OpLabel
-               OpSelectionMerge %94139 None
-               OpBranchConditional %85604 %94126 %94134
-      %94134 = OpLabel
-      %94136 = OpISub %uint %181318 %int_1
-      %94137 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %94136
-      %94138 = OpLoad %_arr_v3float_uint_2 %94137
-     %102716 = OpCompositeExtract %v3float %94138 0
-     %102717 = OpCompositeExtract %v3float %94138 1
-               OpBranch %94140
-      %94126 = OpLabel
-      %94128 = OpIAdd %uint %181319 %int_1
-      %94129 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %181319
-      %94130 = OpLoad %v3float %94129
-               OpBranch %94140
-      %94139 = OpLabel
-               OpUnreachable
-      %94140 = OpLabel
-     %242438 = OpPhi %uint %94128 %94126 %181319 %94134
-     %181324 = OpPhi %uint %181318 %94126 %94136 %94134
-     %181321 = OpPhi %v3float %94130 %94126 %102716 %94134
-     %181320 = OpPhi %v3float %94130 %94126 %102717 %94134
-      %85610 = OpFMod %v3float %181316 %181321
-      %85616 = OpFMod %v3float %181316 %181320
-      %85622 = OpFMod %v3float %181315 %181321
-      %85628 = OpFMod %v3float %181315 %181320
-      %85638 = OpExtInst %v3float %1 FMin %85622 %85628
-      %85639 = OpExtInst %v3float %1 FMin %85616 %85638
-      %85640 = OpExtInst %v3float %1 FMin %85610 %85639
-      %85650 = OpExtInst %v3float %1 FMax %85622 %85628
-      %85651 = OpExtInst %v3float %1 FMax %85616 %85650
-      %85652 = OpExtInst %v3float %1 FMax %85610 %85651
-     %103846 = OpCompositeConstruct %_arr_v3float_uint_2 %85640 %85652
-      %94144 = OpIAdd %uint %181324 %int_1
-      %94146 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %181324
-               OpStore %94146 %103846
-               OpBranch %92278
-      %85526 = OpLabel
-      %85529 = OpLoad %uint %83860
-      %85530 = OpBitwiseAnd %uint %85529 %uint_32768
-      %85531 = OpUGreaterThan %bool %85530 %uint_0
-               OpSelectionMerge %94066 None
-               OpSwitch %uint_0 %94050
-      %94050 = OpLabel
-               OpSelectionMerge %94065 None
-               OpBranchConditional %85531 %94052 %94060
-      %94060 = OpLabel
-      %94062 = OpISub %uint %158813 %int_1
-      %94063 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %94062
-      %94064 = OpLoad %_arr_v2float_uint_2 %94063
-     %102743 = OpCompositeExtract %v2float %94064 0
-     %102744 = OpCompositeExtract %v2float %94064 1
-               OpBranch %94066
-      %94052 = OpLabel
-      %94054 = OpIAdd %uint %160807 %int_1
-      %94055 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %94056 = OpLoad %v2float %94055
-               OpBranch %94066
-      %94065 = OpLabel
-               OpUnreachable
-      %94066 = OpLabel
-     %244789 = OpPhi %uint %94054 %94052 %160807 %94060
-     %181335 = OpPhi %uint %158813 %94052 %94062 %94060
-     %181326 = OpPhi %v2float %94056 %94052 %102743 %94060
-     %181325 = OpPhi %v2float %94056 %94052 %102744 %94060
-      %85535 = OpLoad %uint %83860
-      %85536 = OpBitwiseAnd %uint %85535 %uint_16384
-      %85537 = OpUGreaterThan %bool %85536 %uint_0
-               OpSelectionMerge %94089 None
-               OpSwitch %uint_0 %94073
-      %94073 = OpLabel
-               OpSelectionMerge %94088 None
-               OpBranchConditional %85537 %94075 %94083
-      %94083 = OpLabel
-      %94085 = OpISub %uint %158792 %int_1
-      %94086 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %94085
-      %94087 = OpLoad %_arr_float_uint_2 %94086
-     %102734 = OpCompositeExtract %float %94087 0
-     %102735 = OpCompositeExtract %float %94087 1
-               OpBranch %94089
-      %94075 = OpLabel
-      %94077 = OpIAdd %uint %158794 %int_1
-      %94078 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %94079 = OpLoad %float %94078
-               OpBranch %94089
-      %94088 = OpLabel
-               OpUnreachable
-      %94089 = OpLabel
-     %182460 = OpPhi %uint %94077 %94075 %158794 %94083
-     %182258 = OpPhi %uint %158792 %94075 %94085 %94083
-     %181331 = OpPhi %float %94079 %94075 %102734 %94083
-     %181330 = OpPhi %float %94079 %94075 %102735 %94083
-      %85543 = OpCompositeConstruct %v2float %181331 %181331
-      %85544 = OpFMod %v2float %181326 %85543
-      %85550 = OpCompositeConstruct %v2float %181330 %181330
-      %85551 = OpFMod %v2float %181326 %85550
-      %85558 = OpFMod %v2float %181325 %85543
-      %85565 = OpFMod %v2float %181325 %85550
-      %85575 = OpExtInst %v2float %1 FMin %85558 %85565
-      %85576 = OpExtInst %v2float %1 FMin %85551 %85575
-      %85577 = OpExtInst %v2float %1 FMin %85544 %85576
-      %85587 = OpExtInst %v2float %1 FMax %85558 %85565
-      %85588 = OpExtInst %v2float %1 FMax %85551 %85587
-      %85589 = OpExtInst %v2float %1 FMax %85544 %85588
-     %103831 = OpCompositeConstruct %_arr_v2float_uint_2 %85577 %85589
-      %94093 = OpIAdd %uint %181335 %int_1
-      %94095 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %181335
-               OpStore %94095 %103831
-               OpBranch %92278
-      %85463 = OpLabel
-      %85466 = OpLoad %uint %83860
-      %85467 = OpBitwiseAnd %uint %85466 %uint_32768
-      %85468 = OpUGreaterThan %bool %85467 %uint_0
-               OpSelectionMerge %94015 None
-               OpSwitch %uint_0 %93999
-      %93999 = OpLabel
-               OpSelectionMerge %94014 None
-               OpBranchConditional %85468 %94001 %94009
-      %94009 = OpLabel
-      %94011 = OpISub %uint %158813 %int_1
-      %94012 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %94011
-      %94013 = OpLoad %_arr_v2float_uint_2 %94012
-     %102761 = OpCompositeExtract %v2float %94013 0
-     %102762 = OpCompositeExtract %v2float %94013 1
-               OpBranch %94015
-      %94001 = OpLabel
-      %94003 = OpIAdd %uint %160807 %int_1
-      %94004 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %94005 = OpLoad %v2float %94004
-               OpBranch %94015
-      %94014 = OpLabel
-               OpUnreachable
-      %94015 = OpLabel
-     %181340 = OpPhi %uint %94003 %94001 %160807 %94009
-     %181339 = OpPhi %uint %158813 %94001 %94011 %94009
-     %181337 = OpPhi %v2float %94005 %94001 %102761 %94009
-     %181336 = OpPhi %v2float %94005 %94001 %102762 %94009
-      %85472 = OpLoad %uint %83860
-      %85473 = OpBitwiseAnd %uint %85472 %uint_16384
-      %85474 = OpUGreaterThan %bool %85473 %uint_0
-               OpSelectionMerge %94038 None
-               OpSwitch %uint_0 %94022
-      %94022 = OpLabel
-               OpSelectionMerge %94037 None
-               OpBranchConditional %85474 %94024 %94032
-      %94032 = OpLabel
-      %94034 = OpISub %uint %181339 %int_1
-      %94035 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %94034
-      %94036 = OpLoad %_arr_v2float_uint_2 %94035
-     %102752 = OpCompositeExtract %v2float %94036 0
-     %102753 = OpCompositeExtract %v2float %94036 1
-               OpBranch %94038
-      %94024 = OpLabel
-      %94026 = OpIAdd %uint %181340 %int_1
-      %94027 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %181340
-      %94028 = OpLoad %v2float %94027
-               OpBranch %94038
-      %94037 = OpLabel
-               OpUnreachable
-      %94038 = OpLabel
-     %244787 = OpPhi %uint %94026 %94024 %181340 %94032
-     %181345 = OpPhi %uint %181339 %94024 %94034 %94032
-     %181342 = OpPhi %v2float %94028 %94024 %102752 %94032
-     %181341 = OpPhi %v2float %94028 %94024 %102753 %94032
-      %85480 = OpFMod %v2float %181337 %181342
-      %85486 = OpFMod %v2float %181337 %181341
-      %85492 = OpFMod %v2float %181336 %181342
-      %85498 = OpFMod %v2float %181336 %181341
-      %85508 = OpExtInst %v2float %1 FMin %85492 %85498
-      %85509 = OpExtInst %v2float %1 FMin %85486 %85508
-      %85510 = OpExtInst %v2float %1 FMin %85480 %85509
-      %85520 = OpExtInst %v2float %1 FMax %85492 %85498
-      %85521 = OpExtInst %v2float %1 FMax %85486 %85520
-      %85522 = OpExtInst %v2float %1 FMax %85480 %85521
-     %103816 = OpCompositeConstruct %_arr_v2float_uint_2 %85510 %85522
-      %94042 = OpIAdd %uint %181345 %int_1
-      %94044 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %181345
-               OpStore %94044 %103816
-               OpBranch %92278
-      %85400 = OpLabel
-      %85403 = OpLoad %uint %83860
-      %85404 = OpBitwiseAnd %uint %85403 %uint_32768
-      %85405 = OpUGreaterThan %bool %85404 %uint_0
-               OpSelectionMerge %93964 None
-               OpSwitch %uint_0 %93948
-      %93948 = OpLabel
-               OpSelectionMerge %93963 None
-               OpBranchConditional %85405 %93950 %93958
-      %93958 = OpLabel
-      %93960 = OpISub %uint %158792 %int_1
-      %93961 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93960
-      %93962 = OpLoad %_arr_float_uint_2 %93961
-     %102779 = OpCompositeExtract %float %93962 0
-     %102780 = OpCompositeExtract %float %93962 1
-               OpBranch %93964
-      %93950 = OpLabel
-      %93952 = OpIAdd %uint %158794 %int_1
-      %93953 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %93954 = OpLoad %float %93953
-               OpBranch %93964
-      %93963 = OpLabel
-               OpUnreachable
-      %93964 = OpLabel
-     %181350 = OpPhi %uint %93952 %93950 %158794 %93958
-     %181349 = OpPhi %uint %158792 %93950 %93960 %93958
-     %181347 = OpPhi %float %93954 %93950 %102779 %93958
-     %181346 = OpPhi %float %93954 %93950 %102780 %93958
-      %85409 = OpLoad %uint %83860
-      %85410 = OpBitwiseAnd %uint %85409 %uint_16384
-      %85411 = OpUGreaterThan %bool %85410 %uint_0
-               OpSelectionMerge %93987 None
-               OpSwitch %uint_0 %93971
-      %93971 = OpLabel
-               OpSelectionMerge %93986 None
-               OpBranchConditional %85411 %93973 %93981
-      %93981 = OpLabel
-      %93983 = OpISub %uint %181349 %int_1
-      %93984 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93983
-      %93985 = OpLoad %_arr_float_uint_2 %93984
-     %102770 = OpCompositeExtract %float %93985 0
-     %102771 = OpCompositeExtract %float %93985 1
-               OpBranch %93987
-      %93973 = OpLabel
-      %93975 = OpIAdd %uint %181350 %int_1
-      %93976 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %181350
-      %93977 = OpLoad %float %93976
-               OpBranch %93987
-      %93986 = OpLabel
-               OpUnreachable
-      %93987 = OpLabel
-     %182457 = OpPhi %uint %93975 %93973 %181350 %93981
-     %181355 = OpPhi %uint %181349 %93973 %93983 %93981
-     %181352 = OpPhi %float %93977 %93973 %102770 %93981
-     %181351 = OpPhi %float %93977 %93973 %102771 %93981
-      %85417 = OpFMod %float %181347 %181352
-      %85423 = OpFMod %float %181347 %181351
-      %85429 = OpFMod %float %181346 %181352
-      %85435 = OpFMod %float %181346 %181351
-      %85445 = OpExtInst %float %1 FMin %85429 %85435
-      %85446 = OpExtInst %float %1 FMin %85423 %85445
-      %85447 = OpExtInst %float %1 FMin %85417 %85446
-      %85457 = OpExtInst %float %1 FMax %85429 %85435
-      %85458 = OpExtInst %float %1 FMax %85423 %85457
-      %85459 = OpExtInst %float %1 FMax %85417 %85458
-     %103801 = OpCompositeConstruct %_arr_float_uint_2 %85447 %85459
-      %93991 = OpIAdd %uint %181355 %int_1
-      %93993 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %181355
-               OpStore %93993 %103801
-               OpBranch %92278
-      %85337 = OpLabel
-      %85340 = OpLoad %uint %83860
-      %85341 = OpBitwiseAnd %uint %85340 %uint_32768
-      %85342 = OpUGreaterThan %bool %85341 %uint_0
-               OpSelectionMerge %93913 None
-               OpSwitch %uint_0 %93897
-      %93897 = OpLabel
-               OpSelectionMerge %93912 None
-               OpBranchConditional %85342 %93899 %93907
-      %93907 = OpLabel
-      %93909 = OpISub %uint %158811 %int_1
-      %93910 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %93909
-      %93911 = OpLoad %_arr_v4float_uint_2 %93910
-     %102797 = OpCompositeExtract %v4float %93911 0
-     %102798 = OpCompositeExtract %v4float %93911 1
-               OpBranch %93913
-      %93899 = OpLabel
-      %93901 = OpIAdd %uint %158837 %int_1
-      %93902 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %93903 = OpLoad %v4float %93902
-               OpBranch %93913
-      %93912 = OpLabel
-               OpUnreachable
-      %93913 = OpLabel
-     %181360 = OpPhi %uint %93901 %93899 %158837 %93907
-     %181359 = OpPhi %uint %158811 %93899 %93909 %93907
-     %181357 = OpPhi %v4float %93903 %93899 %102797 %93907
-     %181356 = OpPhi %v4float %93903 %93899 %102798 %93907
-      %85346 = OpLoad %uint %83860
-      %85347 = OpBitwiseAnd %uint %85346 %uint_16384
-      %85348 = OpUGreaterThan %bool %85347 %uint_0
-               OpSelectionMerge %93936 None
-               OpSwitch %uint_0 %93920
-      %93920 = OpLabel
-               OpSelectionMerge %93935 None
-               OpBranchConditional %85348 %93922 %93930
-      %93930 = OpLabel
-      %93932 = OpISub %uint %181359 %int_1
-      %93933 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %93932
-      %93934 = OpLoad %_arr_v4float_uint_2 %93933
-     %102788 = OpCompositeExtract %v4float %93934 0
-     %102789 = OpCompositeExtract %v4float %93934 1
-               OpBranch %93936
-      %93922 = OpLabel
-      %93924 = OpIAdd %uint %181360 %int_1
-      %93925 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %181360
-      %93926 = OpLoad %v4float %93925
-               OpBranch %93936
-      %93935 = OpLabel
-               OpUnreachable
-      %93936 = OpLabel
-     %243204 = OpPhi %uint %93924 %93922 %181360 %93930
-     %181365 = OpPhi %uint %181359 %93922 %93932 %93930
-     %181362 = OpPhi %v4float %93926 %93922 %102788 %93930
-     %181361 = OpPhi %v4float %93926 %93922 %102789 %93930
-      %85354 = OpExtInst %v4float %1 Pow %181357 %181362
-      %85360 = OpExtInst %v4float %1 Pow %181357 %181361
-      %85366 = OpExtInst %v4float %1 Pow %181356 %181362
-      %85372 = OpExtInst %v4float %1 Pow %181356 %181361
-      %85382 = OpExtInst %v4float %1 FMin %85366 %85372
-      %85383 = OpExtInst %v4float %1 FMin %85360 %85382
-      %85384 = OpExtInst %v4float %1 FMin %85354 %85383
-      %85394 = OpExtInst %v4float %1 FMax %85366 %85372
-      %85395 = OpExtInst %v4float %1 FMax %85360 %85394
-      %85396 = OpExtInst %v4float %1 FMax %85354 %85395
-     %103786 = OpCompositeConstruct %_arr_v4float_uint_2 %85384 %85396
-      %93940 = OpIAdd %uint %181365 %int_1
-      %93942 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %181365
-               OpStore %93942 %103786
-               OpBranch %92278
-      %85274 = OpLabel
-      %85277 = OpLoad %uint %83860
-      %85278 = OpBitwiseAnd %uint %85277 %uint_32768
-      %85279 = OpUGreaterThan %bool %85278 %uint_0
-               OpSelectionMerge %93862 None
-               OpSwitch %uint_0 %93846
-      %93846 = OpLabel
-               OpSelectionMerge %93861 None
-               OpBranchConditional %85279 %93848 %93856
-      %93856 = OpLabel
-      %93858 = OpISub %uint %158802 %int_1
-      %93859 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %93858
-      %93860 = OpLoad %_arr_v3float_uint_2 %93859
-     %102815 = OpCompositeExtract %v3float %93860 0
-     %102816 = OpCompositeExtract %v3float %93860 1
-               OpBranch %93862
-      %93848 = OpLabel
-      %93850 = OpIAdd %uint %158805 %int_1
-      %93851 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %93852 = OpLoad %v3float %93851
-               OpBranch %93862
-      %93861 = OpLabel
-               OpUnreachable
-      %93862 = OpLabel
-     %181370 = OpPhi %uint %93850 %93848 %158805 %93856
-     %181369 = OpPhi %uint %158802 %93848 %93858 %93856
-     %181367 = OpPhi %v3float %93852 %93848 %102815 %93856
-     %181366 = OpPhi %v3float %93852 %93848 %102816 %93856
-      %85283 = OpLoad %uint %83860
-      %85284 = OpBitwiseAnd %uint %85283 %uint_16384
-      %85285 = OpUGreaterThan %bool %85284 %uint_0
-               OpSelectionMerge %93885 None
-               OpSwitch %uint_0 %93869
-      %93869 = OpLabel
-               OpSelectionMerge %93884 None
-               OpBranchConditional %85285 %93871 %93879
-      %93879 = OpLabel
-      %93881 = OpISub %uint %181369 %int_1
-      %93882 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %93881
-      %93883 = OpLoad %_arr_v3float_uint_2 %93882
-     %102806 = OpCompositeExtract %v3float %93883 0
-     %102807 = OpCompositeExtract %v3float %93883 1
-               OpBranch %93885
-      %93871 = OpLabel
-      %93873 = OpIAdd %uint %181370 %int_1
-      %93874 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %181370
-      %93875 = OpLoad %v3float %93874
-               OpBranch %93885
-      %93884 = OpLabel
-               OpUnreachable
-      %93885 = OpLabel
-     %242429 = OpPhi %uint %93873 %93871 %181370 %93879
-     %181375 = OpPhi %uint %181369 %93871 %93881 %93879
-     %181372 = OpPhi %v3float %93875 %93871 %102806 %93879
-     %181371 = OpPhi %v3float %93875 %93871 %102807 %93879
-      %85291 = OpExtInst %v3float %1 Pow %181367 %181372
-      %85297 = OpExtInst %v3float %1 Pow %181367 %181371
-      %85303 = OpExtInst %v3float %1 Pow %181366 %181372
-      %85309 = OpExtInst %v3float %1 Pow %181366 %181371
-      %85319 = OpExtInst %v3float %1 FMin %85303 %85309
-      %85320 = OpExtInst %v3float %1 FMin %85297 %85319
-      %85321 = OpExtInst %v3float %1 FMin %85291 %85320
-      %85331 = OpExtInst %v3float %1 FMax %85303 %85309
-      %85332 = OpExtInst %v3float %1 FMax %85297 %85331
-      %85333 = OpExtInst %v3float %1 FMax %85291 %85332
-     %103771 = OpCompositeConstruct %_arr_v3float_uint_2 %85321 %85333
-      %93889 = OpIAdd %uint %181375 %int_1
-      %93891 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %181375
-               OpStore %93891 %103771
-               OpBranch %92278
-      %85211 = OpLabel
-      %85214 = OpLoad %uint %83860
-      %85215 = OpBitwiseAnd %uint %85214 %uint_32768
-      %85216 = OpUGreaterThan %bool %85215 %uint_0
-               OpSelectionMerge %93811 None
-               OpSwitch %uint_0 %93795
-      %93795 = OpLabel
-               OpSelectionMerge %93810 None
-               OpBranchConditional %85216 %93797 %93805
-      %93805 = OpLabel
-      %93807 = OpISub %uint %158813 %int_1
-      %93808 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %93807
-      %93809 = OpLoad %_arr_v2float_uint_2 %93808
-     %102833 = OpCompositeExtract %v2float %93809 0
-     %102834 = OpCompositeExtract %v2float %93809 1
-               OpBranch %93811
-      %93797 = OpLabel
-      %93799 = OpIAdd %uint %160807 %int_1
-      %93800 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %93801 = OpLoad %v2float %93800
-               OpBranch %93811
-      %93810 = OpLabel
-               OpUnreachable
-      %93811 = OpLabel
-     %181380 = OpPhi %uint %93799 %93797 %160807 %93805
-     %181379 = OpPhi %uint %158813 %93797 %93807 %93805
-     %181377 = OpPhi %v2float %93801 %93797 %102833 %93805
-     %181376 = OpPhi %v2float %93801 %93797 %102834 %93805
-      %85220 = OpLoad %uint %83860
-      %85221 = OpBitwiseAnd %uint %85220 %uint_16384
-      %85222 = OpUGreaterThan %bool %85221 %uint_0
-               OpSelectionMerge %93834 None
-               OpSwitch %uint_0 %93818
-      %93818 = OpLabel
-               OpSelectionMerge %93833 None
-               OpBranchConditional %85222 %93820 %93828
-      %93828 = OpLabel
-      %93830 = OpISub %uint %181379 %int_1
-      %93831 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %93830
-      %93832 = OpLoad %_arr_v2float_uint_2 %93831
-     %102824 = OpCompositeExtract %v2float %93832 0
-     %102825 = OpCompositeExtract %v2float %93832 1
-               OpBranch %93834
-      %93820 = OpLabel
-      %93822 = OpIAdd %uint %181380 %int_1
-      %93823 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %181380
-      %93824 = OpLoad %v2float %93823
-               OpBranch %93834
-      %93833 = OpLabel
-               OpUnreachable
-      %93834 = OpLabel
-     %244780 = OpPhi %uint %93822 %93820 %181380 %93828
-     %181385 = OpPhi %uint %181379 %93820 %93830 %93828
-     %181382 = OpPhi %v2float %93824 %93820 %102824 %93828
-     %181381 = OpPhi %v2float %93824 %93820 %102825 %93828
-      %85228 = OpExtInst %v2float %1 Pow %181377 %181382
-      %85234 = OpExtInst %v2float %1 Pow %181377 %181381
-      %85240 = OpExtInst %v2float %1 Pow %181376 %181382
-      %85246 = OpExtInst %v2float %1 Pow %181376 %181381
-      %85256 = OpExtInst %v2float %1 FMin %85240 %85246
-      %85257 = OpExtInst %v2float %1 FMin %85234 %85256
-      %85258 = OpExtInst %v2float %1 FMin %85228 %85257
-      %85268 = OpExtInst %v2float %1 FMax %85240 %85246
-      %85269 = OpExtInst %v2float %1 FMax %85234 %85268
-      %85270 = OpExtInst %v2float %1 FMax %85228 %85269
-     %103756 = OpCompositeConstruct %_arr_v2float_uint_2 %85258 %85270
-      %93838 = OpIAdd %uint %181385 %int_1
-      %93840 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %181385
-               OpStore %93840 %103756
-               OpBranch %92278
-      %85148 = OpLabel
-      %85151 = OpLoad %uint %83860
-      %85152 = OpBitwiseAnd %uint %85151 %uint_32768
-      %85153 = OpUGreaterThan %bool %85152 %uint_0
-               OpSelectionMerge %93760 None
-               OpSwitch %uint_0 %93744
-      %93744 = OpLabel
-               OpSelectionMerge %93759 None
-               OpBranchConditional %85153 %93746 %93754
-      %93754 = OpLabel
-      %93756 = OpISub %uint %158792 %int_1
-      %93757 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93756
-      %93758 = OpLoad %_arr_float_uint_2 %93757
-     %102851 = OpCompositeExtract %float %93758 0
-     %102852 = OpCompositeExtract %float %93758 1
-               OpBranch %93760
-      %93746 = OpLabel
-      %93748 = OpIAdd %uint %158794 %int_1
-      %93749 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %93750 = OpLoad %float %93749
-               OpBranch %93760
-      %93759 = OpLabel
-               OpUnreachable
-      %93760 = OpLabel
-     %181390 = OpPhi %uint %93748 %93746 %158794 %93754
-     %181389 = OpPhi %uint %158792 %93746 %93756 %93754
-     %181387 = OpPhi %float %93750 %93746 %102851 %93754
-     %181386 = OpPhi %float %93750 %93746 %102852 %93754
-      %85157 = OpLoad %uint %83860
-      %85158 = OpBitwiseAnd %uint %85157 %uint_16384
-      %85159 = OpUGreaterThan %bool %85158 %uint_0
-               OpSelectionMerge %93783 None
-               OpSwitch %uint_0 %93767
-      %93767 = OpLabel
-               OpSelectionMerge %93782 None
-               OpBranchConditional %85159 %93769 %93777
-      %93777 = OpLabel
-      %93779 = OpISub %uint %181389 %int_1
-      %93780 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93779
-      %93781 = OpLoad %_arr_float_uint_2 %93780
-     %102842 = OpCompositeExtract %float %93781 0
-     %102843 = OpCompositeExtract %float %93781 1
-               OpBranch %93783
-      %93769 = OpLabel
-      %93771 = OpIAdd %uint %181390 %int_1
-      %93772 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %181390
-      %93773 = OpLoad %float %93772
-               OpBranch %93783
-      %93782 = OpLabel
-               OpUnreachable
-      %93783 = OpLabel
-     %182450 = OpPhi %uint %93771 %93769 %181390 %93777
-     %181395 = OpPhi %uint %181389 %93769 %93779 %93777
-     %181392 = OpPhi %float %93773 %93769 %102842 %93777
-     %181391 = OpPhi %float %93773 %93769 %102843 %93777
-      %85165 = OpExtInst %float %1 Pow %181387 %181392
-      %85171 = OpExtInst %float %1 Pow %181387 %181391
-      %85177 = OpExtInst %float %1 Pow %181386 %181392
-      %85183 = OpExtInst %float %1 Pow %181386 %181391
-      %85193 = OpExtInst %float %1 FMin %85177 %85183
-      %85194 = OpExtInst %float %1 FMin %85171 %85193
-      %85195 = OpExtInst %float %1 FMin %85165 %85194
-      %85205 = OpExtInst %float %1 FMax %85177 %85183
-      %85206 = OpExtInst %float %1 FMax %85171 %85205
-      %85207 = OpExtInst %float %1 FMax %85165 %85206
-     %103741 = OpCompositeConstruct %_arr_float_uint_2 %85195 %85207
-      %93787 = OpIAdd %uint %181395 %int_1
-      %93789 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %181395
-               OpStore %93789 %103741
-               OpBranch %92278
-      %85081 = OpLabel
-      %85084 = OpLoad %uint %83860
-      %85085 = OpBitwiseAnd %uint %85084 %uint_32768
-      %85086 = OpUGreaterThan %bool %85085 %uint_0
-               OpSelectionMerge %93709 None
-               OpSwitch %uint_0 %93693
-      %93693 = OpLabel
-               OpSelectionMerge %93708 None
-               OpBranchConditional %85086 %93695 %93703
-      %93703 = OpLabel
-      %93705 = OpISub %uint %158811 %int_1
-      %93706 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %93705
-      %93707 = OpLoad %_arr_v4float_uint_2 %93706
-     %102869 = OpCompositeExtract %v4float %93707 0
-     %102870 = OpCompositeExtract %v4float %93707 1
-               OpBranch %93709
-      %93695 = OpLabel
-      %93697 = OpIAdd %uint %158837 %int_1
-      %93698 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %93699 = OpLoad %v4float %93698
-               OpBranch %93709
-      %93708 = OpLabel
-               OpUnreachable
-      %93709 = OpLabel
-     %243197 = OpPhi %uint %93697 %93695 %158837 %93703
-     %181406 = OpPhi %uint %158811 %93695 %93705 %93703
-     %181397 = OpPhi %v4float %93699 %93695 %102869 %93703
-     %181396 = OpPhi %v4float %93699 %93695 %102870 %93703
-      %85090 = OpLoad %uint %83860
-      %85091 = OpBitwiseAnd %uint %85090 %uint_16384
-      %85092 = OpUGreaterThan %bool %85091 %uint_0
-               OpSelectionMerge %93732 None
-               OpSwitch %uint_0 %93716
-      %93716 = OpLabel
-               OpSelectionMerge %93731 None
-               OpBranchConditional %85092 %93718 %93726
-      %93726 = OpLabel
-      %93728 = OpISub %uint %158792 %int_1
-      %93729 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93728
-      %93730 = OpLoad %_arr_float_uint_2 %93729
-     %102860 = OpCompositeExtract %float %93730 0
-     %102861 = OpCompositeExtract %float %93730 1
-               OpBranch %93732
-      %93718 = OpLabel
-      %93720 = OpIAdd %uint %158794 %int_1
-      %93721 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %93722 = OpLoad %float %93721
-               OpBranch %93732
-      %93731 = OpLabel
-               OpUnreachable
-      %93732 = OpLabel
-     %182449 = OpPhi %uint %93720 %93718 %158794 %93726
-     %182249 = OpPhi %uint %158792 %93718 %93728 %93726
-     %181402 = OpPhi %float %93722 %93718 %102860 %93726
-     %181401 = OpPhi %float %93722 %93718 %102861 %93726
-      %85098 = OpCompositeConstruct %v4float %181402 %181402 %181402 %181402
-      %85099 = OpFDiv %v4float %181397 %85098
-      %85105 = OpCompositeConstruct %v4float %181401 %181401 %181401 %181401
-      %85106 = OpFDiv %v4float %181397 %85105
-      %85113 = OpFDiv %v4float %181396 %85098
-      %85120 = OpFDiv %v4float %181396 %85105
-      %85130 = OpExtInst %v4float %1 FMin %85113 %85120
-      %85131 = OpExtInst %v4float %1 FMin %85106 %85130
-      %85132 = OpExtInst %v4float %1 FMin %85099 %85131
-      %85142 = OpExtInst %v4float %1 FMax %85113 %85120
-      %85143 = OpExtInst %v4float %1 FMax %85106 %85142
-      %85144 = OpExtInst %v4float %1 FMax %85099 %85143
-     %103726 = OpCompositeConstruct %_arr_v4float_uint_2 %85132 %85144
-      %93736 = OpIAdd %uint %181406 %int_1
-      %93738 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %181406
-               OpStore %93738 %103726
-               OpBranch %92278
-      %85018 = OpLabel
-      %85021 = OpLoad %uint %83860
-      %85022 = OpBitwiseAnd %uint %85021 %uint_32768
-      %85023 = OpUGreaterThan %bool %85022 %uint_0
-               OpSelectionMerge %93658 None
-               OpSwitch %uint_0 %93642
-      %93642 = OpLabel
-               OpSelectionMerge %93657 None
-               OpBranchConditional %85023 %93644 %93652
-      %93652 = OpLabel
-      %93654 = OpISub %uint %158811 %int_1
-      %93655 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %93654
-      %93656 = OpLoad %_arr_v4float_uint_2 %93655
-     %102887 = OpCompositeExtract %v4float %93656 0
-     %102888 = OpCompositeExtract %v4float %93656 1
-               OpBranch %93658
-      %93644 = OpLabel
-      %93646 = OpIAdd %uint %158837 %int_1
-      %93647 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %93648 = OpLoad %v4float %93647
-               OpBranch %93658
-      %93657 = OpLabel
-               OpUnreachable
-      %93658 = OpLabel
-     %181411 = OpPhi %uint %93646 %93644 %158837 %93652
-     %181410 = OpPhi %uint %158811 %93644 %93654 %93652
-     %181408 = OpPhi %v4float %93648 %93644 %102887 %93652
-     %181407 = OpPhi %v4float %93648 %93644 %102888 %93652
-      %85027 = OpLoad %uint %83860
-      %85028 = OpBitwiseAnd %uint %85027 %uint_16384
-      %85029 = OpUGreaterThan %bool %85028 %uint_0
-               OpSelectionMerge %93681 None
-               OpSwitch %uint_0 %93665
-      %93665 = OpLabel
-               OpSelectionMerge %93680 None
-               OpBranchConditional %85029 %93667 %93675
-      %93675 = OpLabel
-      %93677 = OpISub %uint %181410 %int_1
-      %93678 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %93677
-      %93679 = OpLoad %_arr_v4float_uint_2 %93678
-     %102878 = OpCompositeExtract %v4float %93679 0
-     %102879 = OpCompositeExtract %v4float %93679 1
-               OpBranch %93681
-      %93667 = OpLabel
-      %93669 = OpIAdd %uint %181411 %int_1
-      %93670 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %181411
-      %93671 = OpLoad %v4float %93670
-               OpBranch %93681
-      %93680 = OpLabel
-               OpUnreachable
-      %93681 = OpLabel
-     %243195 = OpPhi %uint %93669 %93667 %181411 %93675
-     %181416 = OpPhi %uint %181410 %93667 %93677 %93675
-     %181413 = OpPhi %v4float %93671 %93667 %102878 %93675
-     %181412 = OpPhi %v4float %93671 %93667 %102879 %93675
-      %85035 = OpFDiv %v4float %181408 %181413
-      %85041 = OpFDiv %v4float %181408 %181412
-      %85047 = OpFDiv %v4float %181407 %181413
-      %85053 = OpFDiv %v4float %181407 %181412
-      %85063 = OpExtInst %v4float %1 FMin %85047 %85053
-      %85064 = OpExtInst %v4float %1 FMin %85041 %85063
-      %85065 = OpExtInst %v4float %1 FMin %85035 %85064
-      %85075 = OpExtInst %v4float %1 FMax %85047 %85053
-      %85076 = OpExtInst %v4float %1 FMax %85041 %85075
-      %85077 = OpExtInst %v4float %1 FMax %85035 %85076
-     %103711 = OpCompositeConstruct %_arr_v4float_uint_2 %85065 %85077
-      %93685 = OpIAdd %uint %181416 %int_1
-      %93687 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %181416
-               OpStore %93687 %103711
-               OpBranch %92278
-      %84951 = OpLabel
-      %84954 = OpLoad %uint %83860
-      %84955 = OpBitwiseAnd %uint %84954 %uint_32768
-      %84956 = OpUGreaterThan %bool %84955 %uint_0
-               OpSelectionMerge %93607 None
-               OpSwitch %uint_0 %93591
-      %93591 = OpLabel
-               OpSelectionMerge %93606 None
-               OpBranchConditional %84956 %93593 %93601
-      %93601 = OpLabel
-      %93603 = OpISub %uint %158802 %int_1
-      %93604 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %93603
-      %93605 = OpLoad %_arr_v3float_uint_2 %93604
-     %102905 = OpCompositeExtract %v3float %93605 0
-     %102906 = OpCompositeExtract %v3float %93605 1
-               OpBranch %93607
-      %93593 = OpLabel
-      %93595 = OpIAdd %uint %158805 %int_1
-      %93596 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %93597 = OpLoad %v3float %93596
-               OpBranch %93607
-      %93606 = OpLabel
-               OpUnreachable
-      %93607 = OpLabel
-     %242420 = OpPhi %uint %93595 %93593 %158805 %93601
-     %181427 = OpPhi %uint %158802 %93593 %93603 %93601
-     %181418 = OpPhi %v3float %93597 %93593 %102905 %93601
-     %181417 = OpPhi %v3float %93597 %93593 %102906 %93601
-      %84960 = OpLoad %uint %83860
-      %84961 = OpBitwiseAnd %uint %84960 %uint_16384
-      %84962 = OpUGreaterThan %bool %84961 %uint_0
-               OpSelectionMerge %93630 None
-               OpSwitch %uint_0 %93614
-      %93614 = OpLabel
-               OpSelectionMerge %93629 None
-               OpBranchConditional %84962 %93616 %93624
-      %93624 = OpLabel
-      %93626 = OpISub %uint %158792 %int_1
-      %93627 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93626
-      %93628 = OpLoad %_arr_float_uint_2 %93627
-     %102896 = OpCompositeExtract %float %93628 0
-     %102897 = OpCompositeExtract %float %93628 1
-               OpBranch %93630
-      %93616 = OpLabel
-      %93618 = OpIAdd %uint %158794 %int_1
-      %93619 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %93620 = OpLoad %float %93619
-               OpBranch %93630
-      %93629 = OpLabel
-               OpUnreachable
-      %93630 = OpLabel
-     %182446 = OpPhi %uint %93618 %93616 %158794 %93624
-     %182246 = OpPhi %uint %158792 %93616 %93626 %93624
-     %181423 = OpPhi %float %93620 %93616 %102896 %93624
-     %181422 = OpPhi %float %93620 %93616 %102897 %93624
-      %84968 = OpCompositeConstruct %v3float %181423 %181423 %181423
-      %84969 = OpFDiv %v3float %181418 %84968
-      %84975 = OpCompositeConstruct %v3float %181422 %181422 %181422
-      %84976 = OpFDiv %v3float %181418 %84975
-      %84983 = OpFDiv %v3float %181417 %84968
-      %84990 = OpFDiv %v3float %181417 %84975
-      %85000 = OpExtInst %v3float %1 FMin %84983 %84990
-      %85001 = OpExtInst %v3float %1 FMin %84976 %85000
-      %85002 = OpExtInst %v3float %1 FMin %84969 %85001
-      %85012 = OpExtInst %v3float %1 FMax %84983 %84990
-      %85013 = OpExtInst %v3float %1 FMax %84976 %85012
-      %85014 = OpExtInst %v3float %1 FMax %84969 %85013
-     %103696 = OpCompositeConstruct %_arr_v3float_uint_2 %85002 %85014
-      %93634 = OpIAdd %uint %181427 %int_1
-      %93636 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %181427
-               OpStore %93636 %103696
-               OpBranch %92278
-      %84888 = OpLabel
-      %84891 = OpLoad %uint %83860
-      %84892 = OpBitwiseAnd %uint %84891 %uint_32768
-      %84893 = OpUGreaterThan %bool %84892 %uint_0
-               OpSelectionMerge %93556 None
-               OpSwitch %uint_0 %93540
-      %93540 = OpLabel
-               OpSelectionMerge %93555 None
-               OpBranchConditional %84893 %93542 %93550
-      %93550 = OpLabel
-      %93552 = OpISub %uint %158802 %int_1
-      %93553 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %93552
-      %93554 = OpLoad %_arr_v3float_uint_2 %93553
-     %102923 = OpCompositeExtract %v3float %93554 0
-     %102924 = OpCompositeExtract %v3float %93554 1
-               OpBranch %93556
-      %93542 = OpLabel
-      %93544 = OpIAdd %uint %158805 %int_1
-      %93545 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %93546 = OpLoad %v3float %93545
-               OpBranch %93556
-      %93555 = OpLabel
-               OpUnreachable
-      %93556 = OpLabel
-     %181432 = OpPhi %uint %93544 %93542 %158805 %93550
-     %181431 = OpPhi %uint %158802 %93542 %93552 %93550
-     %181429 = OpPhi %v3float %93546 %93542 %102923 %93550
-     %181428 = OpPhi %v3float %93546 %93542 %102924 %93550
-      %84897 = OpLoad %uint %83860
-      %84898 = OpBitwiseAnd %uint %84897 %uint_16384
-      %84899 = OpUGreaterThan %bool %84898 %uint_0
-               OpSelectionMerge %93579 None
-               OpSwitch %uint_0 %93563
-      %93563 = OpLabel
-               OpSelectionMerge %93578 None
-               OpBranchConditional %84899 %93565 %93573
-      %93573 = OpLabel
-      %93575 = OpISub %uint %181431 %int_1
-      %93576 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %93575
-      %93577 = OpLoad %_arr_v3float_uint_2 %93576
-     %102914 = OpCompositeExtract %v3float %93577 0
-     %102915 = OpCompositeExtract %v3float %93577 1
-               OpBranch %93579
-      %93565 = OpLabel
-      %93567 = OpIAdd %uint %181432 %int_1
-      %93568 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %181432
-      %93569 = OpLoad %v3float %93568
-               OpBranch %93579
-      %93578 = OpLabel
-               OpUnreachable
-      %93579 = OpLabel
-     %242418 = OpPhi %uint %93567 %93565 %181432 %93573
-     %181437 = OpPhi %uint %181431 %93565 %93575 %93573
-     %181434 = OpPhi %v3float %93569 %93565 %102914 %93573
-     %181433 = OpPhi %v3float %93569 %93565 %102915 %93573
-      %84905 = OpFDiv %v3float %181429 %181434
-      %84911 = OpFDiv %v3float %181429 %181433
-      %84917 = OpFDiv %v3float %181428 %181434
-      %84923 = OpFDiv %v3float %181428 %181433
-      %84933 = OpExtInst %v3float %1 FMin %84917 %84923
-      %84934 = OpExtInst %v3float %1 FMin %84911 %84933
-      %84935 = OpExtInst %v3float %1 FMin %84905 %84934
-      %84945 = OpExtInst %v3float %1 FMax %84917 %84923
-      %84946 = OpExtInst %v3float %1 FMax %84911 %84945
-      %84947 = OpExtInst %v3float %1 FMax %84905 %84946
-     %103681 = OpCompositeConstruct %_arr_v3float_uint_2 %84935 %84947
-      %93583 = OpIAdd %uint %181437 %int_1
-      %93585 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %181437
-               OpStore %93585 %103681
-               OpBranch %92278
-      %84821 = OpLabel
-      %84824 = OpLoad %uint %83860
-      %84825 = OpBitwiseAnd %uint %84824 %uint_32768
-      %84826 = OpUGreaterThan %bool %84825 %uint_0
-               OpSelectionMerge %93505 None
-               OpSwitch %uint_0 %93489
-      %93489 = OpLabel
-               OpSelectionMerge %93504 None
-               OpBranchConditional %84826 %93491 %93499
-      %93499 = OpLabel
-      %93501 = OpISub %uint %158813 %int_1
-      %93502 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %93501
-      %93503 = OpLoad %_arr_v2float_uint_2 %93502
-     %102941 = OpCompositeExtract %v2float %93503 0
-     %102942 = OpCompositeExtract %v2float %93503 1
-               OpBranch %93505
-      %93491 = OpLabel
-      %93493 = OpIAdd %uint %160807 %int_1
-      %93494 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %93495 = OpLoad %v2float %93494
-               OpBranch %93505
-      %93504 = OpLabel
-               OpUnreachable
-      %93505 = OpLabel
-     %244769 = OpPhi %uint %93493 %93491 %160807 %93499
-     %181448 = OpPhi %uint %158813 %93491 %93501 %93499
-     %181439 = OpPhi %v2float %93495 %93491 %102941 %93499
-     %181438 = OpPhi %v2float %93495 %93491 %102942 %93499
-      %84830 = OpLoad %uint %83860
-      %84831 = OpBitwiseAnd %uint %84830 %uint_16384
-      %84832 = OpUGreaterThan %bool %84831 %uint_0
-               OpSelectionMerge %93528 None
-               OpSwitch %uint_0 %93512
-      %93512 = OpLabel
-               OpSelectionMerge %93527 None
-               OpBranchConditional %84832 %93514 %93522
-      %93522 = OpLabel
-      %93524 = OpISub %uint %158792 %int_1
-      %93525 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93524
-      %93526 = OpLoad %_arr_float_uint_2 %93525
-     %102932 = OpCompositeExtract %float %93526 0
-     %102933 = OpCompositeExtract %float %93526 1
-               OpBranch %93528
-      %93514 = OpLabel
-      %93516 = OpIAdd %uint %158794 %int_1
-      %93517 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %93518 = OpLoad %float %93517
-               OpBranch %93528
-      %93527 = OpLabel
-               OpUnreachable
-      %93528 = OpLabel
-     %182443 = OpPhi %uint %93516 %93514 %158794 %93522
-     %182243 = OpPhi %uint %158792 %93514 %93524 %93522
-     %181444 = OpPhi %float %93518 %93514 %102932 %93522
-     %181443 = OpPhi %float %93518 %93514 %102933 %93522
-      %84838 = OpCompositeConstruct %v2float %181444 %181444
-      %84839 = OpFDiv %v2float %181439 %84838
-      %84845 = OpCompositeConstruct %v2float %181443 %181443
-      %84846 = OpFDiv %v2float %181439 %84845
-      %84853 = OpFDiv %v2float %181438 %84838
-      %84860 = OpFDiv %v2float %181438 %84845
-      %84870 = OpExtInst %v2float %1 FMin %84853 %84860
-      %84871 = OpExtInst %v2float %1 FMin %84846 %84870
-      %84872 = OpExtInst %v2float %1 FMin %84839 %84871
-      %84882 = OpExtInst %v2float %1 FMax %84853 %84860
-      %84883 = OpExtInst %v2float %1 FMax %84846 %84882
-      %84884 = OpExtInst %v2float %1 FMax %84839 %84883
-     %103666 = OpCompositeConstruct %_arr_v2float_uint_2 %84872 %84884
-      %93532 = OpIAdd %uint %181448 %int_1
-      %93534 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %181448
-               OpStore %93534 %103666
-               OpBranch %92278
-      %84758 = OpLabel
-      %84761 = OpLoad %uint %83860
-      %84762 = OpBitwiseAnd %uint %84761 %uint_32768
-      %84763 = OpUGreaterThan %bool %84762 %uint_0
-               OpSelectionMerge %93454 None
-               OpSwitch %uint_0 %93438
-      %93438 = OpLabel
-               OpSelectionMerge %93453 None
-               OpBranchConditional %84763 %93440 %93448
-      %93448 = OpLabel
-      %93450 = OpISub %uint %158813 %int_1
-      %93451 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %93450
-      %93452 = OpLoad %_arr_v2float_uint_2 %93451
-     %102959 = OpCompositeExtract %v2float %93452 0
-     %102960 = OpCompositeExtract %v2float %93452 1
-               OpBranch %93454
-      %93440 = OpLabel
-      %93442 = OpIAdd %uint %160807 %int_1
-      %93443 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %93444 = OpLoad %v2float %93443
-               OpBranch %93454
-      %93453 = OpLabel
-               OpUnreachable
-      %93454 = OpLabel
-     %181453 = OpPhi %uint %93442 %93440 %160807 %93448
-     %181452 = OpPhi %uint %158813 %93440 %93450 %93448
-     %181450 = OpPhi %v2float %93444 %93440 %102959 %93448
-     %181449 = OpPhi %v2float %93444 %93440 %102960 %93448
-      %84767 = OpLoad %uint %83860
-      %84768 = OpBitwiseAnd %uint %84767 %uint_16384
-      %84769 = OpUGreaterThan %bool %84768 %uint_0
-               OpSelectionMerge %93477 None
-               OpSwitch %uint_0 %93461
-      %93461 = OpLabel
-               OpSelectionMerge %93476 None
-               OpBranchConditional %84769 %93463 %93471
-      %93471 = OpLabel
-      %93473 = OpISub %uint %181452 %int_1
-      %93474 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %93473
-      %93475 = OpLoad %_arr_v2float_uint_2 %93474
-     %102950 = OpCompositeExtract %v2float %93475 0
-     %102951 = OpCompositeExtract %v2float %93475 1
-               OpBranch %93477
-      %93463 = OpLabel
-      %93465 = OpIAdd %uint %181453 %int_1
-      %93466 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %181453
-      %93467 = OpLoad %v2float %93466
-               OpBranch %93477
-      %93476 = OpLabel
-               OpUnreachable
-      %93477 = OpLabel
-     %244767 = OpPhi %uint %93465 %93463 %181453 %93471
-     %181458 = OpPhi %uint %181452 %93463 %93473 %93471
-     %181455 = OpPhi %v2float %93467 %93463 %102950 %93471
-     %181454 = OpPhi %v2float %93467 %93463 %102951 %93471
-      %84775 = OpFDiv %v2float %181450 %181455
-      %84781 = OpFDiv %v2float %181450 %181454
-      %84787 = OpFDiv %v2float %181449 %181455
-      %84793 = OpFDiv %v2float %181449 %181454
-      %84803 = OpExtInst %v2float %1 FMin %84787 %84793
-      %84804 = OpExtInst %v2float %1 FMin %84781 %84803
-      %84805 = OpExtInst %v2float %1 FMin %84775 %84804
-      %84815 = OpExtInst %v2float %1 FMax %84787 %84793
-      %84816 = OpExtInst %v2float %1 FMax %84781 %84815
-      %84817 = OpExtInst %v2float %1 FMax %84775 %84816
-     %103651 = OpCompositeConstruct %_arr_v2float_uint_2 %84805 %84817
-      %93481 = OpIAdd %uint %181458 %int_1
-      %93483 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %181458
-               OpStore %93483 %103651
-               OpBranch %92278
-      %84695 = OpLabel
-      %84698 = OpLoad %uint %83860
-      %84699 = OpBitwiseAnd %uint %84698 %uint_32768
-      %84700 = OpUGreaterThan %bool %84699 %uint_0
-               OpSelectionMerge %93403 None
-               OpSwitch %uint_0 %93387
-      %93387 = OpLabel
-               OpSelectionMerge %93402 None
-               OpBranchConditional %84700 %93389 %93397
-      %93397 = OpLabel
-      %93399 = OpISub %uint %158792 %int_1
-      %93400 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93399
-      %93401 = OpLoad %_arr_float_uint_2 %93400
-     %102977 = OpCompositeExtract %float %93401 0
-     %102978 = OpCompositeExtract %float %93401 1
-               OpBranch %93403
-      %93389 = OpLabel
-      %93391 = OpIAdd %uint %158794 %int_1
-      %93392 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %93393 = OpLoad %float %93392
-               OpBranch %93403
-      %93402 = OpLabel
-               OpUnreachable
-      %93403 = OpLabel
-     %181463 = OpPhi %uint %93391 %93389 %158794 %93397
-     %181462 = OpPhi %uint %158792 %93389 %93399 %93397
-     %181460 = OpPhi %float %93393 %93389 %102977 %93397
-     %181459 = OpPhi %float %93393 %93389 %102978 %93397
-      %84704 = OpLoad %uint %83860
-      %84705 = OpBitwiseAnd %uint %84704 %uint_16384
-      %84706 = OpUGreaterThan %bool %84705 %uint_0
-               OpSelectionMerge %93426 None
-               OpSwitch %uint_0 %93410
-      %93410 = OpLabel
-               OpSelectionMerge %93425 None
-               OpBranchConditional %84706 %93412 %93420
-      %93420 = OpLabel
-      %93422 = OpISub %uint %181462 %int_1
-      %93423 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93422
-      %93424 = OpLoad %_arr_float_uint_2 %93423
-     %102968 = OpCompositeExtract %float %93424 0
-     %102969 = OpCompositeExtract %float %93424 1
-               OpBranch %93426
-      %93412 = OpLabel
-      %93414 = OpIAdd %uint %181463 %int_1
-      %93415 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %181463
-      %93416 = OpLoad %float %93415
-               OpBranch %93426
-      %93425 = OpLabel
-               OpUnreachable
-      %93426 = OpLabel
-     %182440 = OpPhi %uint %93414 %93412 %181463 %93420
-     %181468 = OpPhi %uint %181462 %93412 %93422 %93420
-     %181465 = OpPhi %float %93416 %93412 %102968 %93420
-     %181464 = OpPhi %float %93416 %93412 %102969 %93420
-      %84712 = OpFDiv %float %181460 %181465
-      %84718 = OpFDiv %float %181460 %181464
-      %84724 = OpFDiv %float %181459 %181465
-      %84730 = OpFDiv %float %181459 %181464
-      %84740 = OpExtInst %float %1 FMin %84724 %84730
-      %84741 = OpExtInst %float %1 FMin %84718 %84740
-      %84742 = OpExtInst %float %1 FMin %84712 %84741
-      %84752 = OpExtInst %float %1 FMax %84724 %84730
-      %84753 = OpExtInst %float %1 FMax %84718 %84752
-      %84754 = OpExtInst %float %1 FMax %84712 %84753
-     %103636 = OpCompositeConstruct %_arr_float_uint_2 %84742 %84754
-      %93430 = OpIAdd %uint %181468 %int_1
-      %93432 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %181468
-               OpStore %93432 %103636
-               OpBranch %92278
-      %84632 = OpLabel
-      %84635 = OpLoad %uint %83860
-      %84636 = OpBitwiseAnd %uint %84635 %uint_32768
-      %84637 = OpUGreaterThan %bool %84636 %uint_0
-               OpSelectionMerge %93352 None
-               OpSwitch %uint_0 %93336
-      %93336 = OpLabel
-               OpSelectionMerge %93351 None
-               OpBranchConditional %84637 %93338 %93346
-      %93346 = OpLabel
-      %93348 = OpISub %uint %158811 %int_1
-      %93349 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %93348
-      %93350 = OpLoad %_arr_v4float_uint_2 %93349
-     %102995 = OpCompositeExtract %v4float %93350 0
-     %102996 = OpCompositeExtract %v4float %93350 1
-               OpBranch %93352
-      %93338 = OpLabel
-      %93340 = OpIAdd %uint %158837 %int_1
-      %93341 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %93342 = OpLoad %v4float %93341
-               OpBranch %93352
-      %93351 = OpLabel
-               OpUnreachable
-      %93352 = OpLabel
-     %243184 = OpPhi %uint %93340 %93338 %158837 %93346
-     %181479 = OpPhi %uint %158811 %93338 %93348 %93346
-     %181470 = OpPhi %v4float %93342 %93338 %102995 %93346
-     %181469 = OpPhi %v4float %93342 %93338 %102996 %93346
-      %84641 = OpLoad %uint %83860
-      %84642 = OpBitwiseAnd %uint %84641 %uint_16384
-      %84643 = OpUGreaterThan %bool %84642 %uint_0
-               OpSelectionMerge %93375 None
-               OpSwitch %uint_0 %93359
-      %93359 = OpLabel
-               OpSelectionMerge %93374 None
-               OpBranchConditional %84643 %93361 %93369
-      %93369 = OpLabel
-      %93371 = OpISub %uint %158792 %int_1
-      %93372 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93371
-      %93373 = OpLoad %_arr_float_uint_2 %93372
-     %102986 = OpCompositeExtract %float %93373 0
-     %102987 = OpCompositeExtract %float %93373 1
-               OpBranch %93375
-      %93361 = OpLabel
-      %93363 = OpIAdd %uint %158794 %int_1
-      %93364 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %93365 = OpLoad %float %93364
-               OpBranch %93375
-      %93374 = OpLabel
-               OpUnreachable
-      %93375 = OpLabel
-     %182439 = OpPhi %uint %93363 %93361 %158794 %93369
-     %182240 = OpPhi %uint %158792 %93361 %93371 %93369
-     %181475 = OpPhi %float %93365 %93361 %102986 %93369
-     %181474 = OpPhi %float %93365 %93361 %102987 %93369
-      %84649 = OpVectorTimesScalar %v4float %181470 %181475
-      %84655 = OpVectorTimesScalar %v4float %181470 %181474
-      %84661 = OpVectorTimesScalar %v4float %181469 %181475
-      %84667 = OpVectorTimesScalar %v4float %181469 %181474
-      %84677 = OpExtInst %v4float %1 FMin %84661 %84667
-      %84678 = OpExtInst %v4float %1 FMin %84655 %84677
-      %84679 = OpExtInst %v4float %1 FMin %84649 %84678
-      %84689 = OpExtInst %v4float %1 FMax %84661 %84667
-      %84690 = OpExtInst %v4float %1 FMax %84655 %84689
-      %84691 = OpExtInst %v4float %1 FMax %84649 %84690
-     %103621 = OpCompositeConstruct %_arr_v4float_uint_2 %84679 %84691
-      %93379 = OpIAdd %uint %181479 %int_1
-      %93381 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %181479
-               OpStore %93381 %103621
-               OpBranch %92278
-      %84569 = OpLabel
-      %84572 = OpLoad %uint %83860
-      %84573 = OpBitwiseAnd %uint %84572 %uint_32768
-      %84574 = OpUGreaterThan %bool %84573 %uint_0
-               OpSelectionMerge %93301 None
-               OpSwitch %uint_0 %93285
-      %93285 = OpLabel
-               OpSelectionMerge %93300 None
-               OpBranchConditional %84574 %93287 %93295
-      %93295 = OpLabel
-      %93297 = OpISub %uint %158811 %int_1
-      %93298 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %93297
-      %93299 = OpLoad %_arr_v4float_uint_2 %93298
-     %103013 = OpCompositeExtract %v4float %93299 0
-     %103014 = OpCompositeExtract %v4float %93299 1
-               OpBranch %93301
-      %93287 = OpLabel
-      %93289 = OpIAdd %uint %158837 %int_1
-      %93290 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %93291 = OpLoad %v4float %93290
-               OpBranch %93301
-      %93300 = OpLabel
-               OpUnreachable
-      %93301 = OpLabel
-     %181484 = OpPhi %uint %93289 %93287 %158837 %93295
-     %181483 = OpPhi %uint %158811 %93287 %93297 %93295
-     %181481 = OpPhi %v4float %93291 %93287 %103013 %93295
-     %181480 = OpPhi %v4float %93291 %93287 %103014 %93295
-      %84578 = OpLoad %uint %83860
-      %84579 = OpBitwiseAnd %uint %84578 %uint_16384
-      %84580 = OpUGreaterThan %bool %84579 %uint_0
-               OpSelectionMerge %93324 None
-               OpSwitch %uint_0 %93308
-      %93308 = OpLabel
-               OpSelectionMerge %93323 None
-               OpBranchConditional %84580 %93310 %93318
-      %93318 = OpLabel
-      %93320 = OpISub %uint %181483 %int_1
-      %93321 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %93320
-      %93322 = OpLoad %_arr_v4float_uint_2 %93321
-     %103004 = OpCompositeExtract %v4float %93322 0
-     %103005 = OpCompositeExtract %v4float %93322 1
-               OpBranch %93324
-      %93310 = OpLabel
-      %93312 = OpIAdd %uint %181484 %int_1
-      %93313 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %181484
-      %93314 = OpLoad %v4float %93313
-               OpBranch %93324
-      %93323 = OpLabel
-               OpUnreachable
-      %93324 = OpLabel
-     %243182 = OpPhi %uint %93312 %93310 %181484 %93318
-     %181489 = OpPhi %uint %181483 %93310 %93320 %93318
-     %181486 = OpPhi %v4float %93314 %93310 %103004 %93318
-     %181485 = OpPhi %v4float %93314 %93310 %103005 %93318
-      %84586 = OpFMul %v4float %181481 %181486
-      %84592 = OpFMul %v4float %181481 %181485
-      %84598 = OpFMul %v4float %181480 %181486
-      %84604 = OpFMul %v4float %181480 %181485
-      %84614 = OpExtInst %v4float %1 FMin %84598 %84604
-      %84615 = OpExtInst %v4float %1 FMin %84592 %84614
-      %84616 = OpExtInst %v4float %1 FMin %84586 %84615
-      %84626 = OpExtInst %v4float %1 FMax %84598 %84604
-      %84627 = OpExtInst %v4float %1 FMax %84592 %84626
-      %84628 = OpExtInst %v4float %1 FMax %84586 %84627
-     %103606 = OpCompositeConstruct %_arr_v4float_uint_2 %84616 %84628
-      %93328 = OpIAdd %uint %181489 %int_1
-      %93330 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %181489
-               OpStore %93330 %103606
-               OpBranch %92278
-      %84506 = OpLabel
-      %84509 = OpLoad %uint %83860
-      %84510 = OpBitwiseAnd %uint %84509 %uint_32768
-      %84511 = OpUGreaterThan %bool %84510 %uint_0
-               OpSelectionMerge %93250 None
-               OpSwitch %uint_0 %93234
-      %93234 = OpLabel
-               OpSelectionMerge %93249 None
-               OpBranchConditional %84511 %93236 %93244
-      %93244 = OpLabel
-      %93246 = OpISub %uint %158802 %int_1
-      %93247 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %93246
-      %93248 = OpLoad %_arr_v3float_uint_2 %93247
-     %103031 = OpCompositeExtract %v3float %93248 0
-     %103032 = OpCompositeExtract %v3float %93248 1
-               OpBranch %93250
-      %93236 = OpLabel
-      %93238 = OpIAdd %uint %158805 %int_1
-      %93239 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %93240 = OpLoad %v3float %93239
-               OpBranch %93250
-      %93249 = OpLabel
-               OpUnreachable
-      %93250 = OpLabel
-     %242407 = OpPhi %uint %93238 %93236 %158805 %93244
-     %181500 = OpPhi %uint %158802 %93236 %93246 %93244
-     %181491 = OpPhi %v3float %93240 %93236 %103031 %93244
-     %181490 = OpPhi %v3float %93240 %93236 %103032 %93244
-      %84515 = OpLoad %uint %83860
-      %84516 = OpBitwiseAnd %uint %84515 %uint_16384
-      %84517 = OpUGreaterThan %bool %84516 %uint_0
-               OpSelectionMerge %93273 None
-               OpSwitch %uint_0 %93257
-      %93257 = OpLabel
-               OpSelectionMerge %93272 None
-               OpBranchConditional %84517 %93259 %93267
-      %93267 = OpLabel
-      %93269 = OpISub %uint %158792 %int_1
-      %93270 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93269
-      %93271 = OpLoad %_arr_float_uint_2 %93270
-     %103022 = OpCompositeExtract %float %93271 0
-     %103023 = OpCompositeExtract %float %93271 1
-               OpBranch %93273
-      %93259 = OpLabel
-      %93261 = OpIAdd %uint %158794 %int_1
-      %93262 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %93263 = OpLoad %float %93262
-               OpBranch %93273
-      %93272 = OpLabel
-               OpUnreachable
-      %93273 = OpLabel
-     %182436 = OpPhi %uint %93261 %93259 %158794 %93267
-     %182237 = OpPhi %uint %158792 %93259 %93269 %93267
-     %181496 = OpPhi %float %93263 %93259 %103022 %93267
-     %181495 = OpPhi %float %93263 %93259 %103023 %93267
-      %84523 = OpVectorTimesScalar %v3float %181491 %181496
-      %84529 = OpVectorTimesScalar %v3float %181491 %181495
-      %84535 = OpVectorTimesScalar %v3float %181490 %181496
-      %84541 = OpVectorTimesScalar %v3float %181490 %181495
-      %84551 = OpExtInst %v3float %1 FMin %84535 %84541
-      %84552 = OpExtInst %v3float %1 FMin %84529 %84551
-      %84553 = OpExtInst %v3float %1 FMin %84523 %84552
-      %84563 = OpExtInst %v3float %1 FMax %84535 %84541
-      %84564 = OpExtInst %v3float %1 FMax %84529 %84563
-      %84565 = OpExtInst %v3float %1 FMax %84523 %84564
-     %103591 = OpCompositeConstruct %_arr_v3float_uint_2 %84553 %84565
-      %93277 = OpIAdd %uint %181500 %int_1
-      %93279 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %181500
-               OpStore %93279 %103591
-               OpBranch %92278
-      %84443 = OpLabel
-      %84446 = OpLoad %uint %83860
-      %84447 = OpBitwiseAnd %uint %84446 %uint_32768
-      %84448 = OpUGreaterThan %bool %84447 %uint_0
-               OpSelectionMerge %93199 None
-               OpSwitch %uint_0 %93183
-      %93183 = OpLabel
-               OpSelectionMerge %93198 None
-               OpBranchConditional %84448 %93185 %93193
-      %93193 = OpLabel
-      %93195 = OpISub %uint %158802 %int_1
-      %93196 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %93195
-      %93197 = OpLoad %_arr_v3float_uint_2 %93196
-     %103049 = OpCompositeExtract %v3float %93197 0
-     %103050 = OpCompositeExtract %v3float %93197 1
-               OpBranch %93199
-      %93185 = OpLabel
-      %93187 = OpIAdd %uint %158805 %int_1
-      %93188 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %93189 = OpLoad %v3float %93188
-               OpBranch %93199
-      %93198 = OpLabel
-               OpUnreachable
-      %93199 = OpLabel
-     %181505 = OpPhi %uint %93187 %93185 %158805 %93193
-     %181504 = OpPhi %uint %158802 %93185 %93195 %93193
-     %181502 = OpPhi %v3float %93189 %93185 %103049 %93193
-     %181501 = OpPhi %v3float %93189 %93185 %103050 %93193
-      %84452 = OpLoad %uint %83860
-      %84453 = OpBitwiseAnd %uint %84452 %uint_16384
-      %84454 = OpUGreaterThan %bool %84453 %uint_0
-               OpSelectionMerge %93222 None
-               OpSwitch %uint_0 %93206
-      %93206 = OpLabel
-               OpSelectionMerge %93221 None
-               OpBranchConditional %84454 %93208 %93216
-      %93216 = OpLabel
-      %93218 = OpISub %uint %181504 %int_1
-      %93219 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %93218
-      %93220 = OpLoad %_arr_v3float_uint_2 %93219
-     %103040 = OpCompositeExtract %v3float %93220 0
-     %103041 = OpCompositeExtract %v3float %93220 1
-               OpBranch %93222
-      %93208 = OpLabel
-      %93210 = OpIAdd %uint %181505 %int_1
-      %93211 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %181505
-      %93212 = OpLoad %v3float %93211
-               OpBranch %93222
-      %93221 = OpLabel
-               OpUnreachable
-      %93222 = OpLabel
-     %242405 = OpPhi %uint %93210 %93208 %181505 %93216
-     %181510 = OpPhi %uint %181504 %93208 %93218 %93216
-     %181507 = OpPhi %v3float %93212 %93208 %103040 %93216
-     %181506 = OpPhi %v3float %93212 %93208 %103041 %93216
-      %84460 = OpFMul %v3float %181502 %181507
-      %84466 = OpFMul %v3float %181502 %181506
-      %84472 = OpFMul %v3float %181501 %181507
-      %84478 = OpFMul %v3float %181501 %181506
-      %84488 = OpExtInst %v3float %1 FMin %84472 %84478
-      %84489 = OpExtInst %v3float %1 FMin %84466 %84488
-      %84490 = OpExtInst %v3float %1 FMin %84460 %84489
-      %84500 = OpExtInst %v3float %1 FMax %84472 %84478
-      %84501 = OpExtInst %v3float %1 FMax %84466 %84500
-      %84502 = OpExtInst %v3float %1 FMax %84460 %84501
-     %103576 = OpCompositeConstruct %_arr_v3float_uint_2 %84490 %84502
-      %93226 = OpIAdd %uint %181510 %int_1
-      %93228 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %181510
-               OpStore %93228 %103576
-               OpBranch %92278
-      %84380 = OpLabel
-      %84383 = OpLoad %uint %83860
-      %84384 = OpBitwiseAnd %uint %84383 %uint_32768
-      %84385 = OpUGreaterThan %bool %84384 %uint_0
-               OpSelectionMerge %93148 None
-               OpSwitch %uint_0 %93132
-      %93132 = OpLabel
-               OpSelectionMerge %93147 None
-               OpBranchConditional %84385 %93134 %93142
-      %93142 = OpLabel
-      %93144 = OpISub %uint %158813 %int_1
-      %93145 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %93144
-      %93146 = OpLoad %_arr_v2float_uint_2 %93145
-     %103067 = OpCompositeExtract %v2float %93146 0
-     %103068 = OpCompositeExtract %v2float %93146 1
-               OpBranch %93148
-      %93134 = OpLabel
-      %93136 = OpIAdd %uint %160807 %int_1
-      %93137 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %93138 = OpLoad %v2float %93137
-               OpBranch %93148
-      %93147 = OpLabel
-               OpUnreachable
-      %93148 = OpLabel
-     %244756 = OpPhi %uint %93136 %93134 %160807 %93142
-     %181521 = OpPhi %uint %158813 %93134 %93144 %93142
-     %181512 = OpPhi %v2float %93138 %93134 %103067 %93142
-     %181511 = OpPhi %v2float %93138 %93134 %103068 %93142
-      %84389 = OpLoad %uint %83860
-      %84390 = OpBitwiseAnd %uint %84389 %uint_16384
-      %84391 = OpUGreaterThan %bool %84390 %uint_0
-               OpSelectionMerge %93171 None
-               OpSwitch %uint_0 %93155
-      %93155 = OpLabel
-               OpSelectionMerge %93170 None
-               OpBranchConditional %84391 %93157 %93165
-      %93165 = OpLabel
-      %93167 = OpISub %uint %158792 %int_1
-      %93168 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93167
-      %93169 = OpLoad %_arr_float_uint_2 %93168
-     %103058 = OpCompositeExtract %float %93169 0
-     %103059 = OpCompositeExtract %float %93169 1
-               OpBranch %93171
-      %93157 = OpLabel
-      %93159 = OpIAdd %uint %158794 %int_1
-      %93160 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %93161 = OpLoad %float %93160
-               OpBranch %93171
-      %93170 = OpLabel
-               OpUnreachable
-      %93171 = OpLabel
-     %182433 = OpPhi %uint %93159 %93157 %158794 %93165
-     %182234 = OpPhi %uint %158792 %93157 %93167 %93165
-     %181517 = OpPhi %float %93161 %93157 %103058 %93165
-     %181516 = OpPhi %float %93161 %93157 %103059 %93165
-      %84397 = OpVectorTimesScalar %v2float %181512 %181517
-      %84403 = OpVectorTimesScalar %v2float %181512 %181516
-      %84409 = OpVectorTimesScalar %v2float %181511 %181517
-      %84415 = OpVectorTimesScalar %v2float %181511 %181516
-      %84425 = OpExtInst %v2float %1 FMin %84409 %84415
-      %84426 = OpExtInst %v2float %1 FMin %84403 %84425
-      %84427 = OpExtInst %v2float %1 FMin %84397 %84426
-      %84437 = OpExtInst %v2float %1 FMax %84409 %84415
-      %84438 = OpExtInst %v2float %1 FMax %84403 %84437
-      %84439 = OpExtInst %v2float %1 FMax %84397 %84438
-     %103561 = OpCompositeConstruct %_arr_v2float_uint_2 %84427 %84439
-      %93175 = OpIAdd %uint %181521 %int_1
-      %93177 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %181521
-               OpStore %93177 %103561
-               OpBranch %92278
-      %84317 = OpLabel
-      %84320 = OpLoad %uint %83860
-      %84321 = OpBitwiseAnd %uint %84320 %uint_32768
-      %84322 = OpUGreaterThan %bool %84321 %uint_0
-               OpSelectionMerge %93097 None
-               OpSwitch %uint_0 %93081
-      %93081 = OpLabel
-               OpSelectionMerge %93096 None
-               OpBranchConditional %84322 %93083 %93091
-      %93091 = OpLabel
-      %93093 = OpISub %uint %158813 %int_1
-      %93094 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %93093
-      %93095 = OpLoad %_arr_v2float_uint_2 %93094
-     %103085 = OpCompositeExtract %v2float %93095 0
-     %103086 = OpCompositeExtract %v2float %93095 1
-               OpBranch %93097
-      %93083 = OpLabel
-      %93085 = OpIAdd %uint %160807 %int_1
-      %93086 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %93087 = OpLoad %v2float %93086
-               OpBranch %93097
-      %93096 = OpLabel
-               OpUnreachable
-      %93097 = OpLabel
-     %181526 = OpPhi %uint %93085 %93083 %160807 %93091
-     %181525 = OpPhi %uint %158813 %93083 %93093 %93091
-     %181523 = OpPhi %v2float %93087 %93083 %103085 %93091
-     %181522 = OpPhi %v2float %93087 %93083 %103086 %93091
-      %84326 = OpLoad %uint %83860
-      %84327 = OpBitwiseAnd %uint %84326 %uint_16384
-      %84328 = OpUGreaterThan %bool %84327 %uint_0
-               OpSelectionMerge %93120 None
-               OpSwitch %uint_0 %93104
-      %93104 = OpLabel
-               OpSelectionMerge %93119 None
-               OpBranchConditional %84328 %93106 %93114
-      %93114 = OpLabel
-      %93116 = OpISub %uint %181525 %int_1
-      %93117 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %93116
-      %93118 = OpLoad %_arr_v2float_uint_2 %93117
-     %103076 = OpCompositeExtract %v2float %93118 0
-     %103077 = OpCompositeExtract %v2float %93118 1
-               OpBranch %93120
-      %93106 = OpLabel
-      %93108 = OpIAdd %uint %181526 %int_1
-      %93109 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %181526
-      %93110 = OpLoad %v2float %93109
-               OpBranch %93120
-      %93119 = OpLabel
-               OpUnreachable
-      %93120 = OpLabel
-     %244754 = OpPhi %uint %93108 %93106 %181526 %93114
-     %181531 = OpPhi %uint %181525 %93106 %93116 %93114
-     %181528 = OpPhi %v2float %93110 %93106 %103076 %93114
-     %181527 = OpPhi %v2float %93110 %93106 %103077 %93114
-      %84334 = OpFMul %v2float %181523 %181528
-      %84340 = OpFMul %v2float %181523 %181527
-      %84346 = OpFMul %v2float %181522 %181528
-      %84352 = OpFMul %v2float %181522 %181527
-      %84362 = OpExtInst %v2float %1 FMin %84346 %84352
-      %84363 = OpExtInst %v2float %1 FMin %84340 %84362
-      %84364 = OpExtInst %v2float %1 FMin %84334 %84363
-      %84374 = OpExtInst %v2float %1 FMax %84346 %84352
-      %84375 = OpExtInst %v2float %1 FMax %84340 %84374
-      %84376 = OpExtInst %v2float %1 FMax %84334 %84375
-     %103546 = OpCompositeConstruct %_arr_v2float_uint_2 %84364 %84376
-      %93124 = OpIAdd %uint %181531 %int_1
-      %93126 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %181531
-               OpStore %93126 %103546
-               OpBranch %92278
-      %84254 = OpLabel
-      %84257 = OpLoad %uint %83860
-      %84258 = OpBitwiseAnd %uint %84257 %uint_32768
-      %84259 = OpUGreaterThan %bool %84258 %uint_0
-               OpSelectionMerge %93046 None
-               OpSwitch %uint_0 %93030
-      %93030 = OpLabel
-               OpSelectionMerge %93045 None
-               OpBranchConditional %84259 %93032 %93040
-      %93040 = OpLabel
-      %93042 = OpISub %uint %158792 %int_1
-      %93043 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93042
-      %93044 = OpLoad %_arr_float_uint_2 %93043
-     %103103 = OpCompositeExtract %float %93044 0
-     %103104 = OpCompositeExtract %float %93044 1
-               OpBranch %93046
-      %93032 = OpLabel
-      %93034 = OpIAdd %uint %158794 %int_1
-      %93035 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %93036 = OpLoad %float %93035
-               OpBranch %93046
-      %93045 = OpLabel
-               OpUnreachable
-      %93046 = OpLabel
-     %181536 = OpPhi %uint %93034 %93032 %158794 %93040
-     %181535 = OpPhi %uint %158792 %93032 %93042 %93040
-     %181533 = OpPhi %float %93036 %93032 %103103 %93040
-     %181532 = OpPhi %float %93036 %93032 %103104 %93040
-      %84263 = OpLoad %uint %83860
-      %84264 = OpBitwiseAnd %uint %84263 %uint_16384
-      %84265 = OpUGreaterThan %bool %84264 %uint_0
-               OpSelectionMerge %93069 None
-               OpSwitch %uint_0 %93053
-      %93053 = OpLabel
-               OpSelectionMerge %93068 None
-               OpBranchConditional %84265 %93055 %93063
-      %93063 = OpLabel
-      %93065 = OpISub %uint %181535 %int_1
-      %93066 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93065
-      %93067 = OpLoad %_arr_float_uint_2 %93066
-     %103094 = OpCompositeExtract %float %93067 0
-     %103095 = OpCompositeExtract %float %93067 1
-               OpBranch %93069
-      %93055 = OpLabel
-      %93057 = OpIAdd %uint %181536 %int_1
-      %93058 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %181536
-      %93059 = OpLoad %float %93058
-               OpBranch %93069
-      %93068 = OpLabel
-               OpUnreachable
-      %93069 = OpLabel
-     %182430 = OpPhi %uint %93057 %93055 %181536 %93063
-     %181541 = OpPhi %uint %181535 %93055 %93065 %93063
-     %181538 = OpPhi %float %93059 %93055 %103094 %93063
-     %181537 = OpPhi %float %93059 %93055 %103095 %93063
-      %84271 = OpFMul %float %181533 %181538
-      %84277 = OpFMul %float %181533 %181537
-      %84283 = OpFMul %float %181532 %181538
-      %84289 = OpFMul %float %181532 %181537
-      %84299 = OpExtInst %float %1 FMin %84283 %84289
-      %84300 = OpExtInst %float %1 FMin %84277 %84299
-      %84301 = OpExtInst %float %1 FMin %84271 %84300
-      %84311 = OpExtInst %float %1 FMax %84283 %84289
-      %84312 = OpExtInst %float %1 FMax %84277 %84311
-      %84313 = OpExtInst %float %1 FMax %84271 %84312
-     %103531 = OpCompositeConstruct %_arr_float_uint_2 %84301 %84313
-      %93073 = OpIAdd %uint %181541 %int_1
-      %93075 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %181541
-               OpStore %93075 %103531
-               OpBranch %92278
-      %84225 = OpLabel
-      %84228 = OpLoad %uint %83860
-      %84229 = OpBitwiseAnd %uint %84228 %uint_32768
-      %84230 = OpUGreaterThan %bool %84229 %uint_0
-               OpSelectionMerge %92995 None
-               OpSwitch %uint_0 %92979
-      %92979 = OpLabel
-               OpSelectionMerge %92994 None
-               OpBranchConditional %84230 %92981 %92989
-      %92989 = OpLabel
-      %92991 = OpISub %uint %158811 %int_1
-      %92992 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92991
-      %92993 = OpLoad %_arr_v4float_uint_2 %92992
-     %103121 = OpCompositeExtract %v4float %92993 0
-     %103122 = OpCompositeExtract %v4float %92993 1
-               OpBranch %92995
-      %92981 = OpLabel
-      %92983 = OpIAdd %uint %158837 %int_1
-      %92984 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %92985 = OpLoad %v4float %92984
-               OpBranch %92995
-      %92994 = OpLabel
-               OpUnreachable
-      %92995 = OpLabel
-     %243171 = OpPhi %uint %92983 %92981 %158837 %92989
-     %181552 = OpPhi %uint %158811 %92981 %92991 %92989
-     %181543 = OpPhi %v4float %92985 %92981 %103121 %92989
-     %181542 = OpPhi %v4float %92985 %92981 %103122 %92989
-      %84234 = OpLoad %uint %83860
-      %84235 = OpBitwiseAnd %uint %84234 %uint_16384
-      %84236 = OpUGreaterThan %bool %84235 %uint_0
-               OpSelectionMerge %93018 None
-               OpSwitch %uint_0 %93002
-      %93002 = OpLabel
-               OpSelectionMerge %93017 None
-               OpBranchConditional %84236 %93004 %93012
-      %93012 = OpLabel
-      %93014 = OpISub %uint %158792 %int_1
-      %93015 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %93014
-      %93016 = OpLoad %_arr_float_uint_2 %93015
-     %103112 = OpCompositeExtract %float %93016 0
-     %103113 = OpCompositeExtract %float %93016 1
-               OpBranch %93018
-      %93004 = OpLabel
-      %93006 = OpIAdd %uint %158794 %int_1
-      %93007 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %93008 = OpLoad %float %93007
-               OpBranch %93018
-      %93017 = OpLabel
-               OpUnreachable
-      %93018 = OpLabel
-     %182429 = OpPhi %uint %93006 %93004 %158794 %93012
-     %182231 = OpPhi %uint %158792 %93004 %93014 %93012
-     %181548 = OpPhi %float %93008 %93004 %103112 %93012
-     %181547 = OpPhi %float %93008 %93004 %103113 %93012
-      %84242 = OpCompositeConstruct %v4float %181547 %181547 %181547 %181547
-      %84243 = OpFSub %v4float %181543 %84242
-      %84249 = OpCompositeConstruct %v4float %181548 %181548 %181548 %181548
-      %84250 = OpFSub %v4float %181542 %84249
-     %103520 = OpCompositeConstruct %_arr_v4float_uint_2 %84243 %84250
-      %93022 = OpIAdd %uint %181552 %int_1
-      %93024 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %181552
-               OpStore %93024 %103520
-               OpBranch %92278
-      %84198 = OpLabel
-      %84201 = OpLoad %uint %83860
-      %84202 = OpBitwiseAnd %uint %84201 %uint_32768
-      %84203 = OpUGreaterThan %bool %84202 %uint_0
-               OpSelectionMerge %92944 None
-               OpSwitch %uint_0 %92928
-      %92928 = OpLabel
-               OpSelectionMerge %92943 None
-               OpBranchConditional %84203 %92930 %92938
-      %92938 = OpLabel
-      %92940 = OpISub %uint %158811 %int_1
-      %92941 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92940
-      %92942 = OpLoad %_arr_v4float_uint_2 %92941
-     %103139 = OpCompositeExtract %v4float %92942 0
-     %103140 = OpCompositeExtract %v4float %92942 1
-               OpBranch %92944
-      %92930 = OpLabel
-      %92932 = OpIAdd %uint %158837 %int_1
-      %92933 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %92934 = OpLoad %v4float %92933
-               OpBranch %92944
-      %92943 = OpLabel
-               OpUnreachable
-      %92944 = OpLabel
-     %181557 = OpPhi %uint %92932 %92930 %158837 %92938
-     %181556 = OpPhi %uint %158811 %92930 %92940 %92938
-     %181554 = OpPhi %v4float %92934 %92930 %103139 %92938
-     %181553 = OpPhi %v4float %92934 %92930 %103140 %92938
-      %84207 = OpLoad %uint %83860
-      %84208 = OpBitwiseAnd %uint %84207 %uint_16384
-      %84209 = OpUGreaterThan %bool %84208 %uint_0
-               OpSelectionMerge %92967 None
-               OpSwitch %uint_0 %92951
-      %92951 = OpLabel
-               OpSelectionMerge %92966 None
-               OpBranchConditional %84209 %92953 %92961
-      %92961 = OpLabel
-      %92963 = OpISub %uint %181556 %int_1
-      %92964 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92963
-      %92965 = OpLoad %_arr_v4float_uint_2 %92964
-     %103130 = OpCompositeExtract %v4float %92965 0
-     %103131 = OpCompositeExtract %v4float %92965 1
-               OpBranch %92967
-      %92953 = OpLabel
-      %92955 = OpIAdd %uint %181557 %int_1
-      %92956 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %181557
-      %92957 = OpLoad %v4float %92956
-               OpBranch %92967
-      %92966 = OpLabel
-               OpUnreachable
-      %92967 = OpLabel
-     %243169 = OpPhi %uint %92955 %92953 %181557 %92961
-     %181562 = OpPhi %uint %181556 %92953 %92963 %92961
-     %181559 = OpPhi %v4float %92957 %92953 %103130 %92961
-     %181558 = OpPhi %v4float %92957 %92953 %103131 %92961
-      %84215 = OpFSub %v4float %181554 %181558
-      %84221 = OpFSub %v4float %181553 %181559
-     %103509 = OpCompositeConstruct %_arr_v4float_uint_2 %84215 %84221
-      %92971 = OpIAdd %uint %181562 %int_1
-      %92973 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %181562
-               OpStore %92973 %103509
-               OpBranch %92278
-      %84169 = OpLabel
-      %84172 = OpLoad %uint %83860
-      %84173 = OpBitwiseAnd %uint %84172 %uint_32768
-      %84174 = OpUGreaterThan %bool %84173 %uint_0
-               OpSelectionMerge %92893 None
-               OpSwitch %uint_0 %92877
-      %92877 = OpLabel
-               OpSelectionMerge %92892 None
-               OpBranchConditional %84174 %92879 %92887
-      %92887 = OpLabel
-      %92889 = OpISub %uint %158802 %int_1
-      %92890 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92889
-      %92891 = OpLoad %_arr_v3float_uint_2 %92890
-     %103157 = OpCompositeExtract %v3float %92891 0
-     %103158 = OpCompositeExtract %v3float %92891 1
-               OpBranch %92893
-      %92879 = OpLabel
-      %92881 = OpIAdd %uint %158805 %int_1
-      %92882 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %92883 = OpLoad %v3float %92882
-               OpBranch %92893
-      %92892 = OpLabel
-               OpUnreachable
-      %92893 = OpLabel
-     %242394 = OpPhi %uint %92881 %92879 %158805 %92887
-     %181573 = OpPhi %uint %158802 %92879 %92889 %92887
-     %181564 = OpPhi %v3float %92883 %92879 %103157 %92887
-     %181563 = OpPhi %v3float %92883 %92879 %103158 %92887
-      %84178 = OpLoad %uint %83860
-      %84179 = OpBitwiseAnd %uint %84178 %uint_16384
-      %84180 = OpUGreaterThan %bool %84179 %uint_0
-               OpSelectionMerge %92916 None
-               OpSwitch %uint_0 %92900
-      %92900 = OpLabel
-               OpSelectionMerge %92915 None
-               OpBranchConditional %84180 %92902 %92910
-      %92910 = OpLabel
-      %92912 = OpISub %uint %158792 %int_1
-      %92913 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %92912
-      %92914 = OpLoad %_arr_float_uint_2 %92913
-     %103148 = OpCompositeExtract %float %92914 0
-     %103149 = OpCompositeExtract %float %92914 1
-               OpBranch %92916
-      %92902 = OpLabel
-      %92904 = OpIAdd %uint %158794 %int_1
-      %92905 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %92906 = OpLoad %float %92905
-               OpBranch %92916
-      %92915 = OpLabel
-               OpUnreachable
-      %92916 = OpLabel
-     %182426 = OpPhi %uint %92904 %92902 %158794 %92910
-     %182228 = OpPhi %uint %158792 %92902 %92912 %92910
-     %181569 = OpPhi %float %92906 %92902 %103148 %92910
-     %181568 = OpPhi %float %92906 %92902 %103149 %92910
-      %84186 = OpCompositeConstruct %v3float %181568 %181568 %181568
-      %84187 = OpFSub %v3float %181564 %84186
-      %84193 = OpCompositeConstruct %v3float %181569 %181569 %181569
-      %84194 = OpFSub %v3float %181563 %84193
-     %103498 = OpCompositeConstruct %_arr_v3float_uint_2 %84187 %84194
-      %92920 = OpIAdd %uint %181573 %int_1
-      %92922 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %181573
-               OpStore %92922 %103498
-               OpBranch %92278
-      %84142 = OpLabel
-      %84145 = OpLoad %uint %83860
-      %84146 = OpBitwiseAnd %uint %84145 %uint_32768
-      %84147 = OpUGreaterThan %bool %84146 %uint_0
-               OpSelectionMerge %92842 None
-               OpSwitch %uint_0 %92826
-      %92826 = OpLabel
-               OpSelectionMerge %92841 None
-               OpBranchConditional %84147 %92828 %92836
-      %92836 = OpLabel
-      %92838 = OpISub %uint %158802 %int_1
-      %92839 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92838
-      %92840 = OpLoad %_arr_v3float_uint_2 %92839
-     %103175 = OpCompositeExtract %v3float %92840 0
-     %103176 = OpCompositeExtract %v3float %92840 1
-               OpBranch %92842
-      %92828 = OpLabel
-      %92830 = OpIAdd %uint %158805 %int_1
-      %92831 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %92832 = OpLoad %v3float %92831
-               OpBranch %92842
-      %92841 = OpLabel
-               OpUnreachable
-      %92842 = OpLabel
-     %181578 = OpPhi %uint %92830 %92828 %158805 %92836
-     %181577 = OpPhi %uint %158802 %92828 %92838 %92836
-     %181575 = OpPhi %v3float %92832 %92828 %103175 %92836
-     %181574 = OpPhi %v3float %92832 %92828 %103176 %92836
-      %84151 = OpLoad %uint %83860
-      %84152 = OpBitwiseAnd %uint %84151 %uint_16384
-      %84153 = OpUGreaterThan %bool %84152 %uint_0
-               OpSelectionMerge %92865 None
-               OpSwitch %uint_0 %92849
-      %92849 = OpLabel
-               OpSelectionMerge %92864 None
-               OpBranchConditional %84153 %92851 %92859
-      %92859 = OpLabel
-      %92861 = OpISub %uint %181577 %int_1
-      %92862 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92861
-      %92863 = OpLoad %_arr_v3float_uint_2 %92862
-     %103166 = OpCompositeExtract %v3float %92863 0
-     %103167 = OpCompositeExtract %v3float %92863 1
-               OpBranch %92865
-      %92851 = OpLabel
-      %92853 = OpIAdd %uint %181578 %int_1
-      %92854 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %181578
-      %92855 = OpLoad %v3float %92854
-               OpBranch %92865
-      %92864 = OpLabel
-               OpUnreachable
-      %92865 = OpLabel
-     %242392 = OpPhi %uint %92853 %92851 %181578 %92859
-     %181583 = OpPhi %uint %181577 %92851 %92861 %92859
-     %181580 = OpPhi %v3float %92855 %92851 %103166 %92859
-     %181579 = OpPhi %v3float %92855 %92851 %103167 %92859
-      %84159 = OpFSub %v3float %181575 %181579
-      %84165 = OpFSub %v3float %181574 %181580
-     %103487 = OpCompositeConstruct %_arr_v3float_uint_2 %84159 %84165
-      %92869 = OpIAdd %uint %181583 %int_1
-      %92871 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %181583
-               OpStore %92871 %103487
-               OpBranch %92278
-      %84113 = OpLabel
-      %84116 = OpLoad %uint %83860
-      %84117 = OpBitwiseAnd %uint %84116 %uint_32768
-      %84118 = OpUGreaterThan %bool %84117 %uint_0
-               OpSelectionMerge %92791 None
-               OpSwitch %uint_0 %92775
-      %92775 = OpLabel
-               OpSelectionMerge %92790 None
-               OpBranchConditional %84118 %92777 %92785
-      %92785 = OpLabel
-      %92787 = OpISub %uint %158813 %int_1
-      %92788 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %92787
-      %92789 = OpLoad %_arr_v2float_uint_2 %92788
-     %103193 = OpCompositeExtract %v2float %92789 0
-     %103194 = OpCompositeExtract %v2float %92789 1
-               OpBranch %92791
-      %92777 = OpLabel
-      %92779 = OpIAdd %uint %160807 %int_1
-      %92780 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %92781 = OpLoad %v2float %92780
-               OpBranch %92791
-      %92790 = OpLabel
-               OpUnreachable
-      %92791 = OpLabel
-     %244743 = OpPhi %uint %92779 %92777 %160807 %92785
-     %181594 = OpPhi %uint %158813 %92777 %92787 %92785
-     %181585 = OpPhi %v2float %92781 %92777 %103193 %92785
-     %181584 = OpPhi %v2float %92781 %92777 %103194 %92785
-      %84122 = OpLoad %uint %83860
-      %84123 = OpBitwiseAnd %uint %84122 %uint_16384
-      %84124 = OpUGreaterThan %bool %84123 %uint_0
-               OpSelectionMerge %92814 None
-               OpSwitch %uint_0 %92798
-      %92798 = OpLabel
-               OpSelectionMerge %92813 None
-               OpBranchConditional %84124 %92800 %92808
-      %92808 = OpLabel
-      %92810 = OpISub %uint %158792 %int_1
-      %92811 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %92810
-      %92812 = OpLoad %_arr_float_uint_2 %92811
-     %103184 = OpCompositeExtract %float %92812 0
-     %103185 = OpCompositeExtract %float %92812 1
-               OpBranch %92814
-      %92800 = OpLabel
-      %92802 = OpIAdd %uint %158794 %int_1
-      %92803 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %92804 = OpLoad %float %92803
-               OpBranch %92814
-      %92813 = OpLabel
-               OpUnreachable
-      %92814 = OpLabel
-     %182423 = OpPhi %uint %92802 %92800 %158794 %92808
-     %182225 = OpPhi %uint %158792 %92800 %92810 %92808
-     %181590 = OpPhi %float %92804 %92800 %103184 %92808
-     %181589 = OpPhi %float %92804 %92800 %103185 %92808
-      %84130 = OpCompositeConstruct %v2float %181589 %181589
-      %84131 = OpFSub %v2float %181585 %84130
-      %84137 = OpCompositeConstruct %v2float %181590 %181590
-      %84138 = OpFSub %v2float %181584 %84137
-     %103476 = OpCompositeConstruct %_arr_v2float_uint_2 %84131 %84138
-      %92818 = OpIAdd %uint %181594 %int_1
-      %92820 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %181594
-               OpStore %92820 %103476
-               OpBranch %92278
-      %84086 = OpLabel
-      %84089 = OpLoad %uint %83860
-      %84090 = OpBitwiseAnd %uint %84089 %uint_32768
-      %84091 = OpUGreaterThan %bool %84090 %uint_0
-               OpSelectionMerge %92740 None
-               OpSwitch %uint_0 %92724
-      %92724 = OpLabel
-               OpSelectionMerge %92739 None
-               OpBranchConditional %84091 %92726 %92734
-      %92734 = OpLabel
-      %92736 = OpISub %uint %158813 %int_1
-      %92737 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %92736
-      %92738 = OpLoad %_arr_v2float_uint_2 %92737
-     %103211 = OpCompositeExtract %v2float %92738 0
-     %103212 = OpCompositeExtract %v2float %92738 1
-               OpBranch %92740
-      %92726 = OpLabel
-      %92728 = OpIAdd %uint %160807 %int_1
-      %92729 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %92730 = OpLoad %v2float %92729
-               OpBranch %92740
-      %92739 = OpLabel
-               OpUnreachable
-      %92740 = OpLabel
-     %181599 = OpPhi %uint %92728 %92726 %160807 %92734
-     %181598 = OpPhi %uint %158813 %92726 %92736 %92734
-     %181596 = OpPhi %v2float %92730 %92726 %103211 %92734
-     %181595 = OpPhi %v2float %92730 %92726 %103212 %92734
-      %84095 = OpLoad %uint %83860
-      %84096 = OpBitwiseAnd %uint %84095 %uint_16384
-      %84097 = OpUGreaterThan %bool %84096 %uint_0
-               OpSelectionMerge %92763 None
-               OpSwitch %uint_0 %92747
-      %92747 = OpLabel
-               OpSelectionMerge %92762 None
-               OpBranchConditional %84097 %92749 %92757
-      %92757 = OpLabel
-      %92759 = OpISub %uint %181598 %int_1
-      %92760 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %92759
-      %92761 = OpLoad %_arr_v2float_uint_2 %92760
-     %103202 = OpCompositeExtract %v2float %92761 0
-     %103203 = OpCompositeExtract %v2float %92761 1
-               OpBranch %92763
-      %92749 = OpLabel
-      %92751 = OpIAdd %uint %181599 %int_1
-      %92752 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %181599
-      %92753 = OpLoad %v2float %92752
-               OpBranch %92763
-      %92762 = OpLabel
-               OpUnreachable
-      %92763 = OpLabel
-     %244741 = OpPhi %uint %92751 %92749 %181599 %92757
-     %181604 = OpPhi %uint %181598 %92749 %92759 %92757
-     %181601 = OpPhi %v2float %92753 %92749 %103202 %92757
-     %181600 = OpPhi %v2float %92753 %92749 %103203 %92757
-      %84103 = OpFSub %v2float %181596 %181600
-      %84109 = OpFSub %v2float %181595 %181601
-     %103465 = OpCompositeConstruct %_arr_v2float_uint_2 %84103 %84109
-      %92767 = OpIAdd %uint %181604 %int_1
-      %92769 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %181604
-               OpStore %92769 %103465
-               OpBranch %92278
-      %84059 = OpLabel
-      %84062 = OpLoad %uint %83860
-      %84063 = OpBitwiseAnd %uint %84062 %uint_32768
-      %84064 = OpUGreaterThan %bool %84063 %uint_0
-               OpSelectionMerge %92689 None
-               OpSwitch %uint_0 %92673
-      %92673 = OpLabel
-               OpSelectionMerge %92688 None
-               OpBranchConditional %84064 %92675 %92683
-      %92683 = OpLabel
-      %92685 = OpISub %uint %158792 %int_1
-      %92686 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %92685
-      %92687 = OpLoad %_arr_float_uint_2 %92686
-     %103229 = OpCompositeExtract %float %92687 0
-     %103230 = OpCompositeExtract %float %92687 1
-               OpBranch %92689
-      %92675 = OpLabel
-      %92677 = OpIAdd %uint %158794 %int_1
-      %92678 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %92679 = OpLoad %float %92678
-               OpBranch %92689
-      %92688 = OpLabel
-               OpUnreachable
-      %92689 = OpLabel
-     %181609 = OpPhi %uint %92677 %92675 %158794 %92683
-     %181608 = OpPhi %uint %158792 %92675 %92685 %92683
-     %181606 = OpPhi %float %92679 %92675 %103229 %92683
-     %181605 = OpPhi %float %92679 %92675 %103230 %92683
-      %84068 = OpLoad %uint %83860
-      %84069 = OpBitwiseAnd %uint %84068 %uint_16384
-      %84070 = OpUGreaterThan %bool %84069 %uint_0
-               OpSelectionMerge %92712 None
-               OpSwitch %uint_0 %92696
-      %92696 = OpLabel
-               OpSelectionMerge %92711 None
-               OpBranchConditional %84070 %92698 %92706
-      %92706 = OpLabel
-      %92708 = OpISub %uint %181608 %int_1
-      %92709 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %92708
-      %92710 = OpLoad %_arr_float_uint_2 %92709
-     %103220 = OpCompositeExtract %float %92710 0
-     %103221 = OpCompositeExtract %float %92710 1
-               OpBranch %92712
-      %92698 = OpLabel
-      %92700 = OpIAdd %uint %181609 %int_1
-      %92701 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %181609
-      %92702 = OpLoad %float %92701
-               OpBranch %92712
-      %92711 = OpLabel
-               OpUnreachable
-      %92712 = OpLabel
-     %182420 = OpPhi %uint %92700 %92698 %181609 %92706
-     %181614 = OpPhi %uint %181608 %92698 %92708 %92706
-     %181611 = OpPhi %float %92702 %92698 %103220 %92706
-     %181610 = OpPhi %float %92702 %92698 %103221 %92706
-      %84076 = OpFSub %float %181606 %181610
-      %84082 = OpFSub %float %181605 %181611
-     %103454 = OpCompositeConstruct %_arr_float_uint_2 %84076 %84082
-      %92716 = OpIAdd %uint %181614 %int_1
-      %92718 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %181614
-               OpStore %92718 %103454
-               OpBranch %92278
-      %84030 = OpLabel
-      %84033 = OpLoad %uint %83860
-      %84034 = OpBitwiseAnd %uint %84033 %uint_32768
-      %84035 = OpUGreaterThan %bool %84034 %uint_0
-               OpSelectionMerge %92638 None
-               OpSwitch %uint_0 %92622
-      %92622 = OpLabel
-               OpSelectionMerge %92637 None
-               OpBranchConditional %84035 %92624 %92632
-      %92632 = OpLabel
-      %92634 = OpISub %uint %158811 %int_1
-      %92635 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92634
-      %92636 = OpLoad %_arr_v4float_uint_2 %92635
-     %103247 = OpCompositeExtract %v4float %92636 0
-     %103248 = OpCompositeExtract %v4float %92636 1
-               OpBranch %92638
-      %92624 = OpLabel
-      %92626 = OpIAdd %uint %158837 %int_1
-      %92627 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %92628 = OpLoad %v4float %92627
-               OpBranch %92638
-      %92637 = OpLabel
-               OpUnreachable
-      %92638 = OpLabel
-     %243158 = OpPhi %uint %92626 %92624 %158837 %92632
-     %181625 = OpPhi %uint %158811 %92624 %92634 %92632
-     %181616 = OpPhi %v4float %92628 %92624 %103247 %92632
-     %181615 = OpPhi %v4float %92628 %92624 %103248 %92632
-      %84039 = OpLoad %uint %83860
-      %84040 = OpBitwiseAnd %uint %84039 %uint_16384
-      %84041 = OpUGreaterThan %bool %84040 %uint_0
-               OpSelectionMerge %92661 None
-               OpSwitch %uint_0 %92645
-      %92645 = OpLabel
-               OpSelectionMerge %92660 None
-               OpBranchConditional %84041 %92647 %92655
-      %92655 = OpLabel
-      %92657 = OpISub %uint %158792 %int_1
-      %92658 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %92657
-      %92659 = OpLoad %_arr_float_uint_2 %92658
-     %103238 = OpCompositeExtract %float %92659 0
-     %103239 = OpCompositeExtract %float %92659 1
-               OpBranch %92661
-      %92647 = OpLabel
-      %92649 = OpIAdd %uint %158794 %int_1
-      %92650 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %92651 = OpLoad %float %92650
-               OpBranch %92661
-      %92660 = OpLabel
-               OpUnreachable
-      %92661 = OpLabel
-     %182419 = OpPhi %uint %92649 %92647 %158794 %92655
-     %182222 = OpPhi %uint %158792 %92647 %92657 %92655
-     %181621 = OpPhi %float %92651 %92647 %103238 %92655
-     %181620 = OpPhi %float %92651 %92647 %103239 %92655
-      %84047 = OpCompositeConstruct %v4float %181621 %181621 %181621 %181621
-      %84048 = OpFAdd %v4float %181616 %84047
-      %84054 = OpCompositeConstruct %v4float %181620 %181620 %181620 %181620
-      %84055 = OpFAdd %v4float %181615 %84054
-     %103443 = OpCompositeConstruct %_arr_v4float_uint_2 %84048 %84055
-      %92665 = OpIAdd %uint %181625 %int_1
-      %92667 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %181625
-               OpStore %92667 %103443
-               OpBranch %92278
-      %84003 = OpLabel
-      %84006 = OpLoad %uint %83860
-      %84007 = OpBitwiseAnd %uint %84006 %uint_32768
-      %84008 = OpUGreaterThan %bool %84007 %uint_0
-               OpSelectionMerge %92587 None
-               OpSwitch %uint_0 %92571
-      %92571 = OpLabel
-               OpSelectionMerge %92586 None
-               OpBranchConditional %84008 %92573 %92581
-      %92581 = OpLabel
-      %92583 = OpISub %uint %158811 %int_1
-      %92584 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92583
-      %92585 = OpLoad %_arr_v4float_uint_2 %92584
-     %103265 = OpCompositeExtract %v4float %92585 0
-     %103266 = OpCompositeExtract %v4float %92585 1
-               OpBranch %92587
-      %92573 = OpLabel
-      %92575 = OpIAdd %uint %158837 %int_1
-      %92576 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %158837
-      %92577 = OpLoad %v4float %92576
-               OpBranch %92587
-      %92586 = OpLabel
-               OpUnreachable
-      %92587 = OpLabel
-     %181630 = OpPhi %uint %92575 %92573 %158837 %92581
-     %181629 = OpPhi %uint %158811 %92573 %92583 %92581
-     %181627 = OpPhi %v4float %92577 %92573 %103265 %92581
-     %181626 = OpPhi %v4float %92577 %92573 %103266 %92581
-      %84012 = OpLoad %uint %83860
-      %84013 = OpBitwiseAnd %uint %84012 %uint_16384
-      %84014 = OpUGreaterThan %bool %84013 %uint_0
-               OpSelectionMerge %92610 None
-               OpSwitch %uint_0 %92594
-      %92594 = OpLabel
-               OpSelectionMerge %92609 None
-               OpBranchConditional %84014 %92596 %92604
-      %92604 = OpLabel
-      %92606 = OpISub %uint %181629 %int_1
-      %92607 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %92606
-      %92608 = OpLoad %_arr_v4float_uint_2 %92607
-     %103256 = OpCompositeExtract %v4float %92608 0
-     %103257 = OpCompositeExtract %v4float %92608 1
-               OpBranch %92610
-      %92596 = OpLabel
-      %92598 = OpIAdd %uint %181630 %int_1
-      %92599 = OpAccessChain %_ptr_StorageBuffer_v4float %329 %int_0 %181630
-      %92600 = OpLoad %v4float %92599
-               OpBranch %92610
-      %92609 = OpLabel
-               OpUnreachable
-      %92610 = OpLabel
-     %243156 = OpPhi %uint %92598 %92596 %181630 %92604
-     %181635 = OpPhi %uint %181629 %92596 %92606 %92604
-     %181632 = OpPhi %v4float %92600 %92596 %103256 %92604
-     %181631 = OpPhi %v4float %92600 %92596 %103257 %92604
-      %84020 = OpFAdd %v4float %181627 %181632
-      %84026 = OpFAdd %v4float %181626 %181631
-     %103432 = OpCompositeConstruct %_arr_v4float_uint_2 %84020 %84026
-      %92614 = OpIAdd %uint %181635 %int_1
-      %92616 = OpAccessChain %_ptr_Function__arr_v4float_uint_2 %315 %181635
-               OpStore %92616 %103432
-               OpBranch %92278
-      %83974 = OpLabel
-      %83977 = OpLoad %uint %83860
-      %83978 = OpBitwiseAnd %uint %83977 %uint_32768
-      %83979 = OpUGreaterThan %bool %83978 %uint_0
-               OpSelectionMerge %92536 None
-               OpSwitch %uint_0 %92520
-      %92520 = OpLabel
-               OpSelectionMerge %92535 None
-               OpBranchConditional %83979 %92522 %92530
-      %92530 = OpLabel
-      %92532 = OpISub %uint %158802 %int_1
-      %92533 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92532
-      %92534 = OpLoad %_arr_v3float_uint_2 %92533
-     %103283 = OpCompositeExtract %v3float %92534 0
-     %103284 = OpCompositeExtract %v3float %92534 1
-               OpBranch %92536
-      %92522 = OpLabel
-      %92524 = OpIAdd %uint %158805 %int_1
-      %92525 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %92526 = OpLoad %v3float %92525
-               OpBranch %92536
-      %92535 = OpLabel
-               OpUnreachable
-      %92536 = OpLabel
-     %242381 = OpPhi %uint %92524 %92522 %158805 %92530
-     %181646 = OpPhi %uint %158802 %92522 %92532 %92530
-     %181637 = OpPhi %v3float %92526 %92522 %103283 %92530
-     %181636 = OpPhi %v3float %92526 %92522 %103284 %92530
-      %83983 = OpLoad %uint %83860
-      %83984 = OpBitwiseAnd %uint %83983 %uint_16384
-      %83985 = OpUGreaterThan %bool %83984 %uint_0
-               OpSelectionMerge %92559 None
-               OpSwitch %uint_0 %92543
-      %92543 = OpLabel
-               OpSelectionMerge %92558 None
-               OpBranchConditional %83985 %92545 %92553
-      %92553 = OpLabel
-      %92555 = OpISub %uint %158792 %int_1
-      %92556 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %92555
-      %92557 = OpLoad %_arr_float_uint_2 %92556
-     %103274 = OpCompositeExtract %float %92557 0
-     %103275 = OpCompositeExtract %float %92557 1
-               OpBranch %92559
-      %92545 = OpLabel
-      %92547 = OpIAdd %uint %158794 %int_1
-      %92548 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %92549 = OpLoad %float %92548
-               OpBranch %92559
-      %92558 = OpLabel
-               OpUnreachable
-      %92559 = OpLabel
-     %182416 = OpPhi %uint %92547 %92545 %158794 %92553
-     %182219 = OpPhi %uint %158792 %92545 %92555 %92553
-     %181642 = OpPhi %float %92549 %92545 %103274 %92553
-     %181641 = OpPhi %float %92549 %92545 %103275 %92553
-      %83991 = OpCompositeConstruct %v3float %181642 %181642 %181642
-      %83992 = OpFAdd %v3float %181637 %83991
-      %83998 = OpCompositeConstruct %v3float %181641 %181641 %181641
-      %83999 = OpFAdd %v3float %181636 %83998
-     %103421 = OpCompositeConstruct %_arr_v3float_uint_2 %83992 %83999
-      %92563 = OpIAdd %uint %181646 %int_1
-      %92565 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %181646
-               OpStore %92565 %103421
-               OpBranch %92278
-      %83947 = OpLabel
-      %83950 = OpLoad %uint %83860
-      %83951 = OpBitwiseAnd %uint %83950 %uint_32768
-      %83952 = OpUGreaterThan %bool %83951 %uint_0
-               OpSelectionMerge %92485 None
-               OpSwitch %uint_0 %92469
-      %92469 = OpLabel
-               OpSelectionMerge %92484 None
-               OpBranchConditional %83952 %92471 %92479
-      %92479 = OpLabel
-      %92481 = OpISub %uint %158802 %int_1
-      %92482 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92481
-      %92483 = OpLoad %_arr_v3float_uint_2 %92482
-     %103301 = OpCompositeExtract %v3float %92483 0
-     %103302 = OpCompositeExtract %v3float %92483 1
-               OpBranch %92485
-      %92471 = OpLabel
-      %92473 = OpIAdd %uint %158805 %int_1
-      %92474 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %158805
-      %92475 = OpLoad %v3float %92474
-               OpBranch %92485
-      %92484 = OpLabel
-               OpUnreachable
-      %92485 = OpLabel
-     %181651 = OpPhi %uint %92473 %92471 %158805 %92479
-     %181650 = OpPhi %uint %158802 %92471 %92481 %92479
-     %181648 = OpPhi %v3float %92475 %92471 %103301 %92479
-     %181647 = OpPhi %v3float %92475 %92471 %103302 %92479
-      %83956 = OpLoad %uint %83860
-      %83957 = OpBitwiseAnd %uint %83956 %uint_16384
-      %83958 = OpUGreaterThan %bool %83957 %uint_0
-               OpSelectionMerge %92508 None
-               OpSwitch %uint_0 %92492
-      %92492 = OpLabel
-               OpSelectionMerge %92507 None
-               OpBranchConditional %83958 %92494 %92502
-      %92502 = OpLabel
-      %92504 = OpISub %uint %181650 %int_1
-      %92505 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %92504
-      %92506 = OpLoad %_arr_v3float_uint_2 %92505
-     %103292 = OpCompositeExtract %v3float %92506 0
-     %103293 = OpCompositeExtract %v3float %92506 1
-               OpBranch %92508
-      %92494 = OpLabel
-      %92496 = OpIAdd %uint %181651 %int_1
-      %92497 = OpAccessChain %_ptr_StorageBuffer_v3float %296 %int_0 %181651
-      %92498 = OpLoad %v3float %92497
-               OpBranch %92508
-      %92507 = OpLabel
-               OpUnreachable
-      %92508 = OpLabel
-     %242379 = OpPhi %uint %92496 %92494 %181651 %92502
-     %181656 = OpPhi %uint %181650 %92494 %92504 %92502
-     %181653 = OpPhi %v3float %92498 %92494 %103292 %92502
-     %181652 = OpPhi %v3float %92498 %92494 %103293 %92502
-      %83964 = OpFAdd %v3float %181648 %181653
-      %83970 = OpFAdd %v3float %181647 %181652
-     %103410 = OpCompositeConstruct %_arr_v3float_uint_2 %83964 %83970
-      %92512 = OpIAdd %uint %181656 %int_1
-      %92514 = OpAccessChain %_ptr_Function__arr_v3float_uint_2 %283 %181656
-               OpStore %92514 %103410
-               OpBranch %92278
-      %83918 = OpLabel
-      %83921 = OpLoad %uint %83860
-      %83922 = OpBitwiseAnd %uint %83921 %uint_32768
-      %83923 = OpUGreaterThan %bool %83922 %uint_0
-               OpSelectionMerge %92434 None
-               OpSwitch %uint_0 %92418
-      %92418 = OpLabel
-               OpSelectionMerge %92433 None
-               OpBranchConditional %83923 %92420 %92428
-      %92428 = OpLabel
-      %92430 = OpISub %uint %158813 %int_1
-      %92431 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %92430
-      %92432 = OpLoad %_arr_v2float_uint_2 %92431
-     %103319 = OpCompositeExtract %v2float %92432 0
-     %103320 = OpCompositeExtract %v2float %92432 1
-               OpBranch %92434
-      %92420 = OpLabel
-      %92422 = OpIAdd %uint %160807 %int_1
-      %92423 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %92424 = OpLoad %v2float %92423
-               OpBranch %92434
-      %92433 = OpLabel
-               OpUnreachable
-      %92434 = OpLabel
-     %244730 = OpPhi %uint %92422 %92420 %160807 %92428
-     %181667 = OpPhi %uint %158813 %92420 %92430 %92428
-     %181658 = OpPhi %v2float %92424 %92420 %103319 %92428
-     %181657 = OpPhi %v2float %92424 %92420 %103320 %92428
-      %83927 = OpLoad %uint %83860
-      %83928 = OpBitwiseAnd %uint %83927 %uint_16384
-      %83929 = OpUGreaterThan %bool %83928 %uint_0
-               OpSelectionMerge %92457 None
-               OpSwitch %uint_0 %92441
-      %92441 = OpLabel
-               OpSelectionMerge %92456 None
-               OpBranchConditional %83929 %92443 %92451
-      %92451 = OpLabel
-      %92453 = OpISub %uint %158792 %int_1
-      %92454 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %92453
-      %92455 = OpLoad %_arr_float_uint_2 %92454
-     %103310 = OpCompositeExtract %float %92455 0
-     %103311 = OpCompositeExtract %float %92455 1
-               OpBranch %92457
-      %92443 = OpLabel
-      %92445 = OpIAdd %uint %158794 %int_1
-      %92446 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %92447 = OpLoad %float %92446
-               OpBranch %92457
-      %92456 = OpLabel
-               OpUnreachable
-      %92457 = OpLabel
-     %182413 = OpPhi %uint %92445 %92443 %158794 %92451
-     %182216 = OpPhi %uint %158792 %92443 %92453 %92451
-     %181663 = OpPhi %float %92447 %92443 %103310 %92451
-     %181662 = OpPhi %float %92447 %92443 %103311 %92451
-      %83935 = OpCompositeConstruct %v2float %181663 %181663
-      %83936 = OpFAdd %v2float %181658 %83935
-      %83942 = OpCompositeConstruct %v2float %181662 %181662
-      %83943 = OpFAdd %v2float %181657 %83942
-     %103399 = OpCompositeConstruct %_arr_v2float_uint_2 %83936 %83943
-      %92461 = OpIAdd %uint %181667 %int_1
-      %92463 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %181667
-               OpStore %92463 %103399
-               OpBranch %92278
-      %83891 = OpLabel
-      %83894 = OpLoad %uint %83860
-      %83895 = OpBitwiseAnd %uint %83894 %uint_32768
-      %83896 = OpUGreaterThan %bool %83895 %uint_0
-               OpSelectionMerge %92383 None
-               OpSwitch %uint_0 %92367
-      %92367 = OpLabel
-               OpSelectionMerge %92382 None
-               OpBranchConditional %83896 %92369 %92377
-      %92377 = OpLabel
-      %92379 = OpISub %uint %158813 %int_1
-      %92380 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %92379
-      %92381 = OpLoad %_arr_v2float_uint_2 %92380
-     %103337 = OpCompositeExtract %v2float %92381 0
-     %103338 = OpCompositeExtract %v2float %92381 1
-               OpBranch %92383
-      %92369 = OpLabel
-      %92371 = OpIAdd %uint %160807 %int_1
-      %92372 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %160807
-      %92373 = OpLoad %v2float %92372
-               OpBranch %92383
-      %92382 = OpLabel
-               OpUnreachable
-      %92383 = OpLabel
-     %181672 = OpPhi %uint %92371 %92369 %160807 %92377
-     %181671 = OpPhi %uint %158813 %92369 %92379 %92377
-     %181669 = OpPhi %v2float %92373 %92369 %103337 %92377
-     %181668 = OpPhi %v2float %92373 %92369 %103338 %92377
-      %83900 = OpLoad %uint %83860
-      %83901 = OpBitwiseAnd %uint %83900 %uint_16384
-      %83902 = OpUGreaterThan %bool %83901 %uint_0
-               OpSelectionMerge %92406 None
-               OpSwitch %uint_0 %92390
-      %92390 = OpLabel
-               OpSelectionMerge %92405 None
-               OpBranchConditional %83902 %92392 %92400
-      %92400 = OpLabel
-      %92402 = OpISub %uint %181671 %int_1
-      %92403 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %92402
-      %92404 = OpLoad %_arr_v2float_uint_2 %92403
-     %103328 = OpCompositeExtract %v2float %92404 0
-     %103329 = OpCompositeExtract %v2float %92404 1
-               OpBranch %92406
-      %92392 = OpLabel
-      %92394 = OpIAdd %uint %181672 %int_1
-      %92395 = OpAccessChain %_ptr_StorageBuffer_v2float %264 %int_0 %181672
-      %92396 = OpLoad %v2float %92395
-               OpBranch %92406
-      %92405 = OpLabel
-               OpUnreachable
-      %92406 = OpLabel
-     %244728 = OpPhi %uint %92394 %92392 %181672 %92400
-     %181677 = OpPhi %uint %181671 %92392 %92402 %92400
-     %181674 = OpPhi %v2float %92396 %92392 %103328 %92400
-     %181673 = OpPhi %v2float %92396 %92392 %103329 %92400
-      %83908 = OpFAdd %v2float %181669 %181674
-      %83914 = OpFAdd %v2float %181668 %181673
-     %103388 = OpCompositeConstruct %_arr_v2float_uint_2 %83908 %83914
-      %92410 = OpIAdd %uint %181677 %int_1
-      %92412 = OpAccessChain %_ptr_Function__arr_v2float_uint_2 %250 %181677
-               OpStore %92412 %103388
-               OpBranch %92278
-      %83864 = OpLabel
-      %83867 = OpLoad %uint %83860
-      %83868 = OpBitwiseAnd %uint %83867 %uint_32768
-      %83869 = OpUGreaterThan %bool %83868 %uint_0
-               OpSelectionMerge %92332 None
-               OpSwitch %uint_0 %92316
-      %92316 = OpLabel
-               OpSelectionMerge %92331 None
-               OpBranchConditional %83869 %92318 %92326
-      %92326 = OpLabel
-      %92328 = OpISub %uint %158792 %int_1
-      %92329 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %92328
-      %92330 = OpLoad %_arr_float_uint_2 %92329
-     %103355 = OpCompositeExtract %float %92330 0
-     %103356 = OpCompositeExtract %float %92330 1
-               OpBranch %92332
-      %92318 = OpLabel
-      %92320 = OpIAdd %uint %158794 %int_1
-      %92321 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %158794
-      %92322 = OpLoad %float %92321
-               OpBranch %92332
-      %92331 = OpLabel
-               OpUnreachable
-      %92332 = OpLabel
-     %181682 = OpPhi %uint %92320 %92318 %158794 %92326
-     %181681 = OpPhi %uint %158792 %92318 %92328 %92326
-     %181679 = OpPhi %float %92322 %92318 %103355 %92326
-     %181678 = OpPhi %float %92322 %92318 %103356 %92326
-      %83873 = OpLoad %uint %83860
-      %83874 = OpBitwiseAnd %uint %83873 %uint_16384
-      %83875 = OpUGreaterThan %bool %83874 %uint_0
-               OpSelectionMerge %92355 None
-               OpSwitch %uint_0 %92339
-      %92339 = OpLabel
-               OpSelectionMerge %92354 None
-               OpBranchConditional %83875 %92341 %92349
-      %92349 = OpLabel
-      %92351 = OpISub %uint %181681 %int_1
-      %92352 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %92351
-      %92353 = OpLoad %_arr_float_uint_2 %92352
-     %103346 = OpCompositeExtract %float %92353 0
-     %103347 = OpCompositeExtract %float %92353 1
-               OpBranch %92355
-      %92341 = OpLabel
-      %92343 = OpIAdd %uint %181682 %int_1
-      %92344 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %181682
-      %92345 = OpLoad %float %92344
-               OpBranch %92355
-      %92354 = OpLabel
-               OpUnreachable
-      %92355 = OpLabel
-     %182410 = OpPhi %uint %92343 %92341 %181682 %92349
-     %181687 = OpPhi %uint %181681 %92341 %92351 %92349
-     %181684 = OpPhi %float %92345 %92341 %103346 %92349
-     %181683 = OpPhi %float %92345 %92341 %103347 %92349
-      %83881 = OpFAdd %float %181679 %181684
-      %83887 = OpFAdd %float %181678 %181683
-     %103377 = OpCompositeConstruct %_arr_float_uint_2 %83881 %83887
-      %92359 = OpIAdd %uint %181687 %int_1
-      %92361 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %181687
-               OpStore %92361 %103377
-               OpBranch %92278
-      %83863 = OpLabel
-               OpBranch %92299
-      %92278 = OpLabel
-     %247889 = OpPhi %uint %162805 %92355 %162805 %92406 %162805 %92457 %162805 %92508 %162805 %92559 %162805 %92610 %162805 %92661 %162805 %92712 %162805 %92763 %162805 %92814 %162805 %92865 %162805 %92916 %162805 %92967 %162805 %93018 %162805 %93069 %162805 %93120 %162805 %93171 %162805 %93222 %162805 %93273 %162805 %93324 %162805 %93375 %162805 %93426 %162805 %93477 %162805 %93528 %162805 %93579 %162805 %93630 %162805 %93681 %162805 %93732 %162805 %93783 %162805 %93834 %162805 %93885 %162805 %93936 %162805 %93987 %162805 %94038 %162805 %94089 %162805 %94140 %162805 %94191 %162805 %94242 %162805 %94293 %162805 %94344 %162805 %94395 %162805 %94446 %162805 %94497 %162805 %94525 %162805 %94553 %162805 %94581 %162805 %94632 %162805 %94683 %162805 %94734 %162805 %94762 %162805 %94790 %162805 %94818 %162805 %94846 %162805 %94874 %162805 %94902 %162805 %94930 %162805 %94958 %162805 %94986 %162805 %95014 %162805 %95042 %162805 %95070 %162805 %95098 %162805 %95126 %162805 %95154 %162805 %95182 %162805 %95210 %162805 %95238 %162805 %95266 %162805 %95294 %162805 %95322 %162805 %95350 %162805 %95378 %162805 %95406 %162805 %95434 %162805 %95485 %162805 %95536 %162805 %95610 %162805 %95638 %162805 %95666 %162805 %95694 %162805 %95722 %162805 %95750 %162805 %95778 %162805 %95806 %162805 %95834 %162805 %95862 %162805 %95890 %162805 %95918 %162805 %95946 %162805 %95974 %162805 %96002 %162805 %96030 %162805 %96058 %162805 %96086 %162805 %96114 %162805 %96142 %162805 %96170 %162805 %96198 %162805 %96226 %162805 %96254 %162805 %96282 %162805 %96310 %162805 %96361 %162805 %96412 %162805 %96486 %162805 %96514 %162805 %96542 %162805 %96570 %162805 %96598 %162805 %96626 %162805 %96654 %162805 %96682 %162805 %96710 %162805 %96738 %162805 %96766 %162805 %96794 %162805 %96822 %162805 %96850 %162805 %96878 %162805 %96906 %162805 %96934 %162805 %96962 %162805 %96990 %162805 %97018 %162805 %97046 %162805 %97074 %162805 %97102 %162805 %97130 %162805 %97158 %162805 %97186 %162805 %97237 %162805 %97288 %162805 %97362 %162805 %97390 %162805 %97418 %162805 %97446 %162805 %97474 %162805 %97502 %162805 %97530 %162805 %97558 %162805 %97586 %162805 %97614 %162805 %97642 %162805 %97670 %162805 %97698 %162805 %97726 %162805 %97754 %162805 %97782 %162805 %97810 %162805 %97838 %162805 %97866 %162805 %97894 %162805 %97922 %162805 %97950 %162805 %97978 %162805 %98006 %162805 %98034 %162805 %98062 %162805 %98113 %162805 %98164 %162805 %98238 %162805 %98312 %162805 %98386 %162805 %98460 %162805 %98534 %162805 %98608 %162805 %98682 %162805 %98756 %162805 %98830 %162805 %98904 %162805 %98978 %162805 %99052 %162805 %99126 %162805 %99200 %162805 %99274 %162805 %99302 %162805 %99330 %162805 %99358 %162805 %99409 %162805 %99483 %162805 %99534 %162805 %99631 %162805 %99705 %162805 %99756 %162805 %99807 %162805 %99835 %162805 %99878 %248180 %99911 %162805 %99949 %162805 %99992 %162805 %100020 %162805 %100053 %162805 %100091 %162805 %91337 %162805 %100162 %162805 %100190 %162805 %100218 %162805 %100246 %162805 %100274 %162805 %100302 %162805 %100330 %162805 %100387 %162805 %100444 %162805 %91718 %162805 %91734 %162805 %91750 %162805 %91766 %162805 %91772 %162805 %91778 %162805 %91784 %162805 %91790 %162805 %91793 %162805 %91803 %162805 %91820 %162805 %91844 %162805 %91860 %162805 %91876 %162805 %91892 %162805 %91898 %162805 %91904 %162805 %91910 %162805 %91916 %162805 %91919 %162805 %91929 %162805 %91946 %162805 %91970 %162805 %91986 %162805 %92002 %162805 %92018 %162805 %92024 %162805 %92030 %162805 %92036 %162805 %92042 %162805 %92045 %162805 %92055 %162805 %92072 %162805 %92096 %162805 %92112 %162805 %92128 %162805 %92144 %162805 %92150 %162805 %92156 %162805 %92162 %162805 %92168 %162805 %92171 %162805 %92181 %162805 %92198 %162805 %100575 %162805 %92270
-     %247572 = OpPhi %uint %162803 %92355 %162803 %92406 %162803 %92457 %162803 %92508 %162803 %92559 %162803 %92610 %162803 %92661 %162803 %92712 %162803 %92763 %162803 %92814 %162803 %92865 %162803 %92916 %162803 %92967 %162803 %93018 %162803 %93069 %162803 %93120 %162803 %93171 %162803 %93222 %162803 %93273 %162803 %93324 %162803 %93375 %162803 %93426 %162803 %93477 %162803 %93528 %162803 %93579 %162803 %93630 %162803 %93681 %162803 %93732 %162803 %93783 %162803 %93834 %162803 %93885 %162803 %93936 %162803 %93987 %162803 %94038 %162803 %94089 %162803 %94140 %162803 %94191 %162803 %94242 %162803 %94293 %162803 %94344 %162803 %94395 %162803 %94446 %162803 %94497 %162803 %94525 %162803 %94553 %162803 %94581 %162803 %94632 %162803 %94683 %162803 %94734 %162803 %94762 %162803 %94790 %162803 %94818 %162803 %94846 %162803 %94874 %162803 %94902 %162803 %94930 %162803 %94958 %162803 %94986 %162803 %95014 %162803 %95042 %162803 %95070 %162803 %95098 %162803 %95126 %162803 %95154 %162803 %95182 %162803 %95210 %162803 %95238 %162803 %95266 %162803 %95294 %162803 %95322 %162803 %95350 %162803 %95378 %162803 %95406 %162803 %95434 %162803 %95485 %162803 %95536 %162803 %95610 %162803 %95638 %162803 %95666 %162803 %95694 %162803 %95722 %162803 %95750 %162803 %95778 %162803 %95806 %162803 %95834 %162803 %95862 %162803 %95890 %162803 %95918 %162803 %95946 %162803 %95974 %162803 %96002 %162803 %96030 %162803 %96058 %162803 %96086 %162803 %96114 %162803 %96142 %162803 %96170 %162803 %96198 %162803 %96226 %162803 %96254 %162803 %96282 %162803 %96310 %162803 %96361 %162803 %96412 %162803 %96486 %162803 %96514 %162803 %96542 %162803 %96570 %162803 %96598 %162803 %96626 %162803 %96654 %162803 %96682 %162803 %96710 %162803 %96738 %162803 %96766 %162803 %96794 %162803 %96822 %162803 %96850 %162803 %96878 %162803 %96906 %162803 %96934 %162803 %96962 %162803 %96990 %162803 %97018 %162803 %97046 %162803 %97074 %162803 %97102 %162803 %97130 %162803 %97158 %162803 %97186 %162803 %97237 %162803 %97288 %162803 %97362 %162803 %97390 %162803 %97418 %162803 %97446 %162803 %97474 %162803 %97502 %162803 %97530 %162803 %97558 %162803 %97586 %162803 %97614 %162803 %97642 %162803 %97670 %162803 %97698 %162803 %97726 %162803 %97754 %162803 %97782 %162803 %97810 %162803 %97838 %162803 %97866 %162803 %97894 %162803 %97922 %162803 %97950 %162803 %97978 %162803 %98006 %162803 %98034 %162803 %98062 %162803 %98113 %162803 %98164 %162803 %98238 %162803 %98312 %162803 %98386 %162803 %98460 %162803 %98534 %162803 %98608 %162803 %98682 %162803 %98756 %162803 %98830 %162803 %98904 %162803 %98978 %162803 %99052 %162803 %99126 %162803 %99200 %162803 %99274 %162803 %99302 %162803 %99330 %162803 %99358 %162803 %99409 %162803 %99483 %162803 %99534 %162803 %99631 %162803 %99705 %162803 %99756 %162803 %99807 %162803 %99835 %162803 %99878 %247863 %99911 %162803 %99949 %162803 %99992 %162803 %100020 %162803 %100053 %162803 %100091 %162803 %91337 %162803 %100162 %162803 %100190 %162803 %100218 %162803 %100246 %162803 %100274 %162803 %100302 %162803 %100330 %162803 %100387 %162803 %100444 %162803 %91718 %162803 %91734 %162803 %91750 %162803 %91766 %162803 %91772 %162803 %91778 %162803 %91784 %162803 %91790 %162803 %91793 %162803 %91803 %162803 %91820 %162803 %91844 %162803 %91860 %162803 %91876 %162803 %91892 %162803 %91898 %162803 %91904 %162803 %91910 %162803 %91916 %162803 %91919 %162803 %91929 %162803 %91946 %162803 %91970 %162803 %91986 %162803 %92002 %162803 %92018 %162803 %92024 %162803 %92030 %162803 %92036 %162803 %92042 %162803 %92045 %162803 %92055 %162803 %92072 %162803 %92096 %162803 %92112 %162803 %92128 %162803 %92144 %162803 %92150 %162803 %92156 %162803 %92162 %162803 %92168 %162803 %92171 %162803 %92181 %162803 %92198 %162803 %100575 %162803 %92270
-     %247255 = OpPhi %uint %162798 %92355 %162798 %92406 %162798 %92457 %162798 %92508 %162798 %92559 %162798 %92610 %162798 %92661 %162798 %92712 %162798 %92763 %162798 %92814 %162798 %92865 %162798 %92916 %162798 %92967 %162798 %93018 %162798 %93069 %162798 %93120 %162798 %93171 %162798 %93222 %162798 %93273 %162798 %93324 %162798 %93375 %162798 %93426 %162798 %93477 %162798 %93528 %162798 %93579 %162798 %93630 %162798 %93681 %162798 %93732 %162798 %93783 %162798 %93834 %162798 %93885 %162798 %93936 %162798 %93987 %162798 %94038 %162798 %94089 %162798 %94140 %162798 %94191 %162798 %94242 %162798 %94293 %162798 %94344 %162798 %94395 %162798 %94446 %162798 %94497 %162798 %94525 %162798 %94553 %162798 %94581 %162798 %94632 %162798 %94683 %162798 %94734 %162798 %94762 %162798 %94790 %162798 %94818 %162798 %94846 %162798 %94874 %162798 %94902 %162798 %94930 %162798 %94958 %162798 %94986 %162798 %95014 %162798 %95042 %162798 %95070 %162798 %95098 %162798 %95126 %162798 %95154 %162798 %95182 %162798 %95210 %162798 %95238 %162798 %95266 %162798 %95294 %162798 %95322 %162798 %95350 %162798 %95378 %162798 %95406 %162798 %95434 %162798 %95485 %162798 %95536 %162798 %95610 %162798 %95638 %162798 %95666 %162798 %95694 %162798 %95722 %162798 %95750 %162798 %95778 %162798 %95806 %162798 %95834 %162798 %95862 %162798 %95890 %162798 %95918 %162798 %95946 %162798 %95974 %162798 %96002 %162798 %96030 %162798 %96058 %162798 %96086 %162798 %96114 %162798 %96142 %162798 %96170 %162798 %96198 %162798 %96226 %162798 %96254 %162798 %96282 %162798 %96310 %162798 %96361 %162798 %96412 %162798 %96486 %162798 %96514 %162798 %96542 %162798 %96570 %162798 %96598 %162798 %96626 %162798 %96654 %162798 %96682 %162798 %96710 %162798 %96738 %162798 %96766 %162798 %96794 %162798 %96822 %162798 %96850 %162798 %96878 %162798 %96906 %162798 %96934 %162798 %96962 %162798 %96990 %162798 %97018 %162798 %97046 %162798 %97074 %162798 %97102 %162798 %97130 %162798 %97158 %162798 %97186 %162798 %97237 %162798 %97288 %162798 %97362 %162798 %97390 %162798 %97418 %162798 %97446 %162798 %97474 %162798 %97502 %162798 %97530 %162798 %97558 %162798 %97586 %162798 %97614 %162798 %97642 %162798 %97670 %162798 %97698 %162798 %97726 %162798 %97754 %162798 %97782 %162798 %97810 %162798 %97838 %162798 %97866 %162798 %97894 %162798 %97922 %162798 %97950 %162798 %97978 %162798 %98006 %162798 %98034 %162798 %98062 %162798 %98113 %162798 %98164 %162798 %98238 %162798 %98312 %162798 %98386 %162798 %98460 %162798 %98534 %162798 %98608 %162798 %98682 %162798 %98756 %162798 %98830 %162798 %98904 %162798 %98978 %162798 %99052 %162798 %99126 %162798 %99200 %162798 %99274 %162798 %99302 %162798 %99330 %162798 %99358 %162798 %99409 %162798 %99483 %162798 %99534 %162798 %99631 %162798 %99705 %162798 %99756 %162798 %99807 %162798 %99835 %162798 %99878 %162798 %99911 %247547 %99949 %162798 %99992 %162798 %100020 %162798 %100053 %162798 %100091 %162798 %91337 %162798 %100162 %162798 %100190 %162798 %100218 %162798 %100246 %162798 %100274 %162798 %100302 %162798 %100330 %162798 %100387 %162798 %100444 %162798 %91718 %162798 %91734 %162798 %91750 %162798 %91766 %162798 %91772 %162798 %91778 %162798 %91784 %162798 %91790 %162798 %91793 %162798 %91803 %162798 %91820 %162798 %91844 %162798 %91860 %162798 %91876 %162798 %91892 %162798 %91898 %162798 %91904 %162798 %91910 %162798 %91916 %162798 %91919 %162798 %91929 %162798 %91946 %162798 %91970 %162798 %91986 %162798 %92002 %162798 %92018 %162798 %92024 %162798 %92030 %162798 %92036 %162798 %92042 %162798 %92045 %162798 %92055 %162798 %92072 %162798 %92096 %162798 %92112 %162798 %92128 %162798 %92144 %162798 %92150 %162798 %92156 %162798 %92162 %162798 %92168 %162798 %92171 %162798 %92181 %162798 %92198 %162798 %100575 %162798 %92270
-     %246938 = OpPhi %uint %162796 %92355 %162796 %92406 %162796 %92457 %162796 %92508 %162796 %92559 %162796 %92610 %162796 %92661 %162796 %92712 %162796 %92763 %162796 %92814 %162796 %92865 %162796 %92916 %162796 %92967 %162796 %93018 %162796 %93069 %162796 %93120 %162796 %93171 %162796 %93222 %162796 %93273 %162796 %93324 %162796 %93375 %162796 %93426 %162796 %93477 %162796 %93528 %162796 %93579 %162796 %93630 %162796 %93681 %162796 %93732 %162796 %93783 %162796 %93834 %162796 %93885 %162796 %93936 %162796 %93987 %162796 %94038 %162796 %94089 %162796 %94140 %162796 %94191 %162796 %94242 %162796 %94293 %162796 %94344 %162796 %94395 %162796 %94446 %162796 %94497 %162796 %94525 %162796 %94553 %162796 %94581 %162796 %94632 %162796 %94683 %162796 %94734 %162796 %94762 %162796 %94790 %162796 %94818 %162796 %94846 %162796 %94874 %162796 %94902 %162796 %94930 %162796 %94958 %162796 %94986 %162796 %95014 %162796 %95042 %162796 %95070 %162796 %95098 %162796 %95126 %162796 %95154 %162796 %95182 %162796 %95210 %162796 %95238 %162796 %95266 %162796 %95294 %162796 %95322 %162796 %95350 %162796 %95378 %162796 %95406 %162796 %95434 %162796 %95485 %162796 %95536 %162796 %95610 %162796 %95638 %162796 %95666 %162796 %95694 %162796 %95722 %162796 %95750 %162796 %95778 %162796 %95806 %162796 %95834 %162796 %95862 %162796 %95890 %162796 %95918 %162796 %95946 %162796 %95974 %162796 %96002 %162796 %96030 %162796 %96058 %162796 %96086 %162796 %96114 %162796 %96142 %162796 %96170 %162796 %96198 %162796 %96226 %162796 %96254 %162796 %96282 %162796 %96310 %162796 %96361 %162796 %96412 %162796 %96486 %162796 %96514 %162796 %96542 %162796 %96570 %162796 %96598 %162796 %96626 %162796 %96654 %162796 %96682 %162796 %96710 %162796 %96738 %162796 %96766 %162796 %96794 %162796 %96822 %162796 %96850 %162796 %96878 %162796 %96906 %162796 %96934 %162796 %96962 %162796 %96990 %162796 %97018 %162796 %97046 %162796 %97074 %162796 %97102 %162796 %97130 %162796 %97158 %162796 %97186 %162796 %97237 %162796 %97288 %162796 %97362 %162796 %97390 %162796 %97418 %162796 %97446 %162796 %97474 %162796 %97502 %162796 %97530 %162796 %97558 %162796 %97586 %162796 %97614 %162796 %97642 %162796 %97670 %162796 %97698 %162796 %97726 %162796 %97754 %162796 %97782 %162796 %97810 %162796 %97838 %162796 %97866 %162796 %97894 %162796 %97922 %162796 %97950 %162796 %97978 %162796 %98006 %162796 %98034 %162796 %98062 %162796 %98113 %162796 %98164 %162796 %98238 %162796 %98312 %162796 %98386 %162796 %98460 %162796 %98534 %162796 %98608 %162796 %98682 %162796 %98756 %162796 %98830 %162796 %98904 %162796 %98978 %162796 %99052 %162796 %99126 %162796 %99200 %162796 %99274 %162796 %99302 %162796 %99330 %162796 %99358 %162796 %99409 %162796 %99483 %162796 %99534 %162796 %99631 %162796 %99705 %162796 %99756 %162796 %99807 %162796 %99835 %162796 %99878 %162796 %99911 %247230 %99949 %162796 %99992 %162796 %100020 %162796 %100053 %162796 %100091 %162796 %91337 %162796 %100162 %162796 %100190 %162796 %100218 %162796 %100246 %162796 %100274 %162796 %100302 %162796 %100330 %162796 %100387 %162796 %100444 %162796 %91718 %162796 %91734 %162796 %91750 %162796 %91766 %162796 %91772 %162796 %91778 %162796 %91784 %162796 %91790 %162796 %91793 %162796 %91803 %162796 %91820 %162796 %91844 %162796 %91860 %162796 %91876 %162796 %91892 %162796 %91898 %162796 %91904 %162796 %91910 %162796 %91916 %162796 %91919 %162796 %91929 %162796 %91946 %162796 %91970 %162796 %91986 %162796 %92002 %162796 %92018 %162796 %92024 %162796 %92030 %162796 %92036 %162796 %92042 %162796 %92045 %162796 %92055 %162796 %92072 %162796 %92096 %162796 %92112 %162796 %92128 %162796 %92144 %162796 %92150 %162796 %92156 %162796 %92162 %162796 %92168 %162796 %92171 %162796 %92181 %162796 %92198 %162796 %100575 %162796 %92270
-     %246621 = OpPhi %uint %162791 %92355 %162791 %92406 %162791 %92457 %162791 %92508 %162791 %92559 %162791 %92610 %162791 %92661 %162791 %92712 %162791 %92763 %162791 %92814 %162791 %92865 %162791 %92916 %162791 %92967 %162791 %93018 %162791 %93069 %162791 %93120 %162791 %93171 %162791 %93222 %162791 %93273 %162791 %93324 %162791 %93375 %162791 %93426 %162791 %93477 %162791 %93528 %162791 %93579 %162791 %93630 %162791 %93681 %162791 %93732 %162791 %93783 %162791 %93834 %162791 %93885 %162791 %93936 %162791 %93987 %162791 %94038 %162791 %94089 %162791 %94140 %162791 %94191 %162791 %94242 %162791 %94293 %162791 %94344 %162791 %94395 %162791 %94446 %162791 %94497 %162791 %94525 %162791 %94553 %162791 %94581 %162791 %94632 %162791 %94683 %162791 %94734 %162791 %94762 %162791 %94790 %162791 %94818 %162791 %94846 %162791 %94874 %162791 %94902 %162791 %94930 %162791 %94958 %162791 %94986 %162791 %95014 %162791 %95042 %162791 %95070 %162791 %95098 %162791 %95126 %162791 %95154 %162791 %95182 %162791 %95210 %162791 %95238 %162791 %95266 %162791 %95294 %162791 %95322 %162791 %95350 %162791 %95378 %162791 %95406 %162791 %95434 %162791 %95485 %162791 %95536 %162791 %95610 %162791 %95638 %162791 %95666 %162791 %95694 %162791 %95722 %162791 %95750 %162791 %95778 %162791 %95806 %162791 %95834 %162791 %95862 %162791 %95890 %162791 %95918 %162791 %95946 %162791 %95974 %162791 %96002 %162791 %96030 %162791 %96058 %162791 %96086 %162791 %96114 %162791 %96142 %162791 %96170 %162791 %96198 %162791 %96226 %162791 %96254 %162791 %96282 %162791 %96310 %162791 %96361 %162791 %96412 %162791 %96486 %162791 %96514 %162791 %96542 %162791 %96570 %162791 %96598 %162791 %96626 %162791 %96654 %162791 %96682 %162791 %96710 %162791 %96738 %162791 %96766 %162791 %96794 %162791 %96822 %162791 %96850 %162791 %96878 %162791 %96906 %162791 %96934 %162791 %96962 %162791 %96990 %162791 %97018 %162791 %97046 %162791 %97074 %162791 %97102 %162791 %97130 %162791 %97158 %162791 %97186 %162791 %97237 %162791 %97288 %162791 %97362 %162791 %97390 %162791 %97418 %162791 %97446 %162791 %97474 %162791 %97502 %162791 %97530 %162791 %97558 %162791 %97586 %162791 %97614 %162791 %97642 %162791 %97670 %162791 %97698 %162791 %97726 %162791 %97754 %162791 %97782 %162791 %97810 %162791 %97838 %162791 %97866 %162791 %97894 %162791 %97922 %162791 %97950 %162791 %97978 %162791 %98006 %162791 %98034 %162791 %98062 %162791 %98113 %162791 %98164 %162791 %98238 %162791 %98312 %162791 %98386 %162791 %98460 %162791 %98534 %162791 %98608 %162791 %98682 %162791 %98756 %162791 %98830 %162791 %98904 %162791 %98978 %162791 %99052 %162791 %99126 %162791 %99200 %162791 %99274 %162791 %99302 %162791 %99330 %162791 %99358 %162791 %99409 %162791 %99483 %162791 %99534 %162791 %99631 %162791 %99705 %162791 %99756 %162791 %99807 %246910 %99835 %246911 %99878 %162791 %99911 %162791 %99949 %246914 %99992 %162791 %100020 %162791 %100053 %162791 %100091 %162791 %91337 %162791 %100162 %162791 %100190 %162791 %100218 %162791 %100246 %162791 %100274 %162791 %100302 %162791 %100330 %162791 %100387 %162791 %100444 %162791 %91718 %162791 %91734 %162791 %91750 %162791 %91766 %162791 %91772 %162791 %91778 %162791 %91784 %162791 %91790 %162791 %91793 %162791 %91803 %162791 %91820 %162791 %91844 %162791 %91860 %162791 %91876 %162791 %91892 %162791 %91898 %162791 %91904 %162791 %91910 %162791 %91916 %162791 %91919 %162791 %91929 %162791 %91946 %162791 %91970 %162791 %91986 %162791 %92002 %162791 %92018 %162791 %92024 %162791 %92030 %162791 %92036 %162791 %92042 %162791 %92045 %162791 %92055 %162791 %92072 %162791 %92096 %162791 %92112 %162791 %92128 %162791 %92144 %162791 %92150 %162791 %92156 %162791 %92162 %162791 %92168 %162791 %92171 %162791 %92181 %162791 %92198 %162791 %100575 %162791 %92270
-     %246304 = OpPhi %uint %162789 %92355 %162789 %92406 %162789 %92457 %162789 %92508 %162789 %92559 %162789 %92610 %162789 %92661 %162789 %92712 %162789 %92763 %162789 %92814 %162789 %92865 %162789 %92916 %162789 %92967 %162789 %93018 %162789 %93069 %162789 %93120 %162789 %93171 %162789 %93222 %162789 %93273 %162789 %93324 %162789 %93375 %162789 %93426 %162789 %93477 %162789 %93528 %162789 %93579 %162789 %93630 %162789 %93681 %162789 %93732 %162789 %93783 %162789 %93834 %162789 %93885 %162789 %93936 %162789 %93987 %162789 %94038 %162789 %94089 %162789 %94140 %162789 %94191 %162789 %94242 %162789 %94293 %162789 %94344 %162789 %94395 %162789 %94446 %162789 %94497 %162789 %94525 %162789 %94553 %162789 %94581 %162789 %94632 %162789 %94683 %162789 %94734 %162789 %94762 %162789 %94790 %162789 %94818 %162789 %94846 %162789 %94874 %162789 %94902 %162789 %94930 %162789 %94958 %162789 %94986 %162789 %95014 %162789 %95042 %162789 %95070 %162789 %95098 %162789 %95126 %162789 %95154 %162789 %95182 %162789 %95210 %162789 %95238 %162789 %95266 %162789 %95294 %162789 %95322 %162789 %95350 %162789 %95378 %162789 %95406 %162789 %95434 %162789 %95485 %162789 %95536 %162789 %95610 %162789 %95638 %162789 %95666 %162789 %95694 %162789 %95722 %162789 %95750 %162789 %95778 %162789 %95806 %162789 %95834 %162789 %95862 %162789 %95890 %162789 %95918 %162789 %95946 %162789 %95974 %162789 %96002 %162789 %96030 %162789 %96058 %162789 %96086 %162789 %96114 %162789 %96142 %162789 %96170 %162789 %96198 %162789 %96226 %162789 %96254 %162789 %96282 %162789 %96310 %162789 %96361 %162789 %96412 %162789 %96486 %162789 %96514 %162789 %96542 %162789 %96570 %162789 %96598 %162789 %96626 %162789 %96654 %162789 %96682 %162789 %96710 %162789 %96738 %162789 %96766 %162789 %96794 %162789 %96822 %162789 %96850 %162789 %96878 %162789 %96906 %162789 %96934 %162789 %96962 %162789 %96990 %162789 %97018 %162789 %97046 %162789 %97074 %162789 %97102 %162789 %97130 %162789 %97158 %162789 %97186 %162789 %97237 %162789 %97288 %162789 %97362 %162789 %97390 %162789 %97418 %162789 %97446 %162789 %97474 %162789 %97502 %162789 %97530 %162789 %97558 %162789 %97586 %162789 %97614 %162789 %97642 %162789 %97670 %162789 %97698 %162789 %97726 %162789 %97754 %162789 %97782 %162789 %97810 %162789 %97838 %162789 %97866 %162789 %97894 %162789 %97922 %162789 %97950 %162789 %97978 %162789 %98006 %162789 %98034 %162789 %98062 %162789 %98113 %162789 %98164 %162789 %98238 %162789 %98312 %162789 %98386 %162789 %98460 %162789 %98534 %162789 %98608 %162789 %98682 %162789 %98756 %162789 %98830 %162789 %98904 %162789 %98978 %162789 %99052 %162789 %99126 %162789 %99200 %162789 %99274 %162789 %99302 %162789 %99330 %162789 %99358 %162789 %99409 %162789 %99483 %162789 %99534 %162789 %99631 %162789 %99705 %162789 %99756 %162789 %99807 %246593 %99835 %246594 %99878 %162789 %99911 %162789 %99949 %246597 %99992 %162789 %100020 %162789 %100053 %162789 %100091 %162789 %91337 %162789 %100162 %162789 %100190 %162789 %100218 %162789 %100246 %162789 %100274 %162789 %100302 %162789 %100330 %162789 %100387 %162789 %100444 %162789 %91718 %162789 %91734 %162789 %91750 %162789 %91766 %162789 %91772 %162789 %91778 %162789 %91784 %162789 %91790 %162789 %91793 %162789 %91803 %162789 %91820 %162789 %91844 %162789 %91860 %162789 %91876 %162789 %91892 %162789 %91898 %162789 %91904 %162789 %91910 %162789 %91916 %162789 %91919 %162789 %91929 %162789 %91946 %162789 %91970 %162789 %91986 %162789 %92002 %162789 %92018 %162789 %92024 %162789 %92030 %162789 %92036 %162789 %92042 %162789 %92045 %162789 %92055 %162789 %92072 %162789 %92096 %162789 %92112 %162789 %92128 %162789 %92144 %162789 %92150 %162789 %92156 %162789 %92162 %162789 %92168 %162789 %92171 %162789 %92181 %162789 %92198 %162789 %100575 %162789 %92270
-     %244725 = OpPhi %uint %160807 %92355 %244728 %92406 %244730 %92457 %160807 %92508 %160807 %92559 %160807 %92610 %160807 %92661 %160807 %92712 %244741 %92763 %244743 %92814 %160807 %92865 %160807 %92916 %160807 %92967 %160807 %93018 %160807 %93069 %244754 %93120 %244756 %93171 %160807 %93222 %160807 %93273 %160807 %93324 %160807 %93375 %160807 %93426 %244767 %93477 %244769 %93528 %160807 %93579 %160807 %93630 %160807 %93681 %160807 %93732 %160807 %93783 %244780 %93834 %160807 %93885 %160807 %93936 %160807 %93987 %244787 %94038 %244789 %94089 %160807 %94140 %160807 %94191 %160807 %94242 %160807 %94293 %160807 %94344 %244800 %94395 %160807 %94446 %160807 %94497 %244805 %94525 %160807 %94553 %160807 %94581 %244808 %94632 %160807 %94683 %160807 %94734 %160807 %94762 %160807 %94790 %160807 %94818 %160807 %94846 %160807 %94874 %160807 %94902 %160807 %94930 %160807 %94958 %160807 %94986 %160807 %95014 %160807 %95042 %160807 %95070 %160807 %95098 %160807 %95126 %160807 %95154 %160807 %95182 %160807 %95210 %160807 %95238 %160807 %95266 %160807 %95294 %160807 %95322 %160807 %95350 %160807 %95378 %160807 %95406 %160807 %95434 %160807 %95485 %160807 %95536 %160807 %95610 %244847 %95638 %244848 %95666 %244849 %95694 %244850 %95722 %244851 %95750 %244852 %95778 %244853 %95806 %244854 %95834 %244855 %95862 %244856 %95890 %244857 %95918 %244858 %95946 %244859 %95974 %244860 %96002 %244861 %96030 %244862 %96058 %244863 %96086 %244864 %96114 %244865 %96142 %244866 %96170 %244867 %96198 %244868 %96226 %244869 %96254 %244870 %96282 %244871 %96310 %244872 %96361 %244873 %96412 %244874 %96486 %160807 %96514 %160807 %96542 %160807 %96570 %160807 %96598 %160807 %96626 %160807 %96654 %160807 %96682 %160807 %96710 %160807 %96738 %160807 %96766 %160807 %96794 %160807 %96822 %160807 %96850 %160807 %96878 %160807 %96906 %160807 %96934 %160807 %96962 %160807 %96990 %160807 %97018 %160807 %97046 %160807 %97074 %160807 %97102 %160807 %97130 %160807 %97158 %160807 %97186 %160807 %97237 %160807 %97288 %160807 %97362 %160807 %97390 %160807 %97418 %160807 %97446 %160807 %97474 %160807 %97502 %160807 %97530 %160807 %97558 %160807 %97586 %160807 %97614 %160807 %97642 %160807 %97670 %160807 %97698 %160807 %97726 %160807 %97754 %160807 %97782 %160807 %97810 %160807 %97838 %160807 %97866 %160807 %97894 %160807 %97922 %160807 %97950 %160807 %97978 %160807 %98006 %160807 %98034 %160807 %98062 %160807 %98113 %160807 %98164 %160807 %98238 %160807 %98312 %160807 %98386 %244945 %98460 %244946 %98534 %244949 %98608 %244951 %98682 %160807 %98756 %160807 %98830 %160807 %98904 %160807 %98978 %160807 %99052 %160807 %99126 %160807 %99200 %160807 %99274 %244976 %99302 %160807 %99330 %160807 %99358 %160807 %99409 %160807 %99483 %244985 %99534 %160807 %99631 %244992 %99705 %160807 %99756 %244995 %99807 %160807 %99835 %160807 %99878 %160807 %99911 %160807 %99949 %160807 %99992 %245001 %100020 %160807 %100053 %160807 %100091 %160807 %91337 %160807 %100162 %245008 %100190 %245009 %100218 %160807 %100246 %160807 %100274 %160807 %100302 %160807 %100330 %160807 %100387 %160807 %100444 %160807 %91718 %160807 %91734 %160807 %91750 %160807 %91766 %160807 %91772 %160807 %91778 %160807 %91784 %160807 %91790 %160807 %91793 %160807 %91803 %160807 %91820 %160807 %91844 %160807 %91860 %160807 %91876 %160807 %91892 %160807 %91898 %160807 %91904 %160807 %91910 %160807 %91916 %160807 %91919 %160807 %91929 %160807 %91946 %160807 %91970 %160807 %91986 %160807 %92002 %160807 %92018 %160807 %92024 %160807 %92030 %160807 %92036 %160807 %92042 %160807 %92045 %160807 %92055 %160807 %92072 %160807 %92096 %160807 %92112 %160807 %92128 %160807 %92144 %160807 %92150 %160807 %92156 %160807 %92162 %160807 %92168 %160807 %92171 %160807 %92181 %160807 %92198 %160807 %100575 %160807 %92270
-     %243145 = OpPhi %uint %158837 %92355 %158837 %92406 %158837 %92457 %158837 %92508 %158837 %92559 %243156 %92610 %243158 %92661 %158837 %92712 %158837 %92763 %158837 %92814 %158837 %92865 %158837 %92916 %243169 %92967 %243171 %93018 %158837 %93069 %158837 %93120 %158837 %93171 %158837 %93222 %158837 %93273 %243182 %93324 %243184 %93375 %158837 %93426 %158837 %93477 %158837 %93528 %158837 %93579 %158837 %93630 %243195 %93681 %243197 %93732 %158837 %93783 %158837 %93834 %158837 %93885 %243204 %93936 %158837 %93987 %158837 %94038 %158837 %94089 %158837 %94140 %158837 %94191 %243215 %94242 %243217 %94293 %158837 %94344 %158837 %94395 %158837 %94446 %243224 %94497 %158837 %94525 %158837 %94553 %243227 %94581 %158837 %94632 %158837 %94683 %243232 %94734 %158837 %94762 %158837 %94790 %158837 %94818 %158837 %94846 %158837 %94874 %158837 %94902 %158837 %94930 %158837 %94958 %158837 %94986 %158837 %95014 %158837 %95042 %158837 %95070 %158837 %95098 %158837 %95126 %158837 %95154 %158837 %95182 %158837 %95210 %158837 %95238 %158837 %95266 %158837 %95294 %158837 %95322 %158837 %95350 %158837 %95378 %158837 %95406 %158837 %95434 %158837 %95485 %158837 %95536 %158837 %95610 %158837 %95638 %158837 %95666 %158837 %95694 %158837 %95722 %158837 %95750 %158837 %95778 %158837 %95806 %158837 %95834 %158837 %95862 %158837 %95890 %158837 %95918 %158837 %95946 %158837 %95974 %158837 %96002 %158837 %96030 %158837 %96058 %158837 %96086 %158837 %96114 %158837 %96142 %158837 %96170 %158837 %96198 %158837 %96226 %158837 %96254 %158837 %96282 %158837 %96310 %158837 %96361 %158837 %96412 %158837 %96486 %158837 %96514 %158837 %96542 %158837 %96570 %158837 %96598 %158837 %96626 %158837 %96654 %158837 %96682 %158837 %96710 %158837 %96738 %158837 %96766 %158837 %96794 %158837 %96822 %158837 %96850 %158837 %96878 %158837 %96906 %158837 %96934 %158837 %96962 %158837 %96990 %158837 %97018 %158837 %97046 %158837 %97074 %158837 %97102 %158837 %97130 %158837 %97158 %158837 %97186 %158837 %97237 %158837 %97288 %158837 %97362 %243331 %97390 %243332 %97418 %243333 %97446 %243334 %97474 %243335 %97502 %243336 %97530 %243337 %97558 %243338 %97586 %243339 %97614 %243340 %97642 %243341 %97670 %243342 %97698 %243343 %97726 %243344 %97754 %243345 %97782 %243346 %97810 %243347 %97838 %243348 %97866 %243349 %97894 %243350 %97922 %243351 %97950 %243352 %97978 %243353 %98006 %243354 %98034 %243355 %98062 %243356 %98113 %243357 %98164 %243358 %98238 %158837 %98312 %158837 %98386 %158837 %98460 %158837 %98534 %158837 %98608 %158837 %98682 %158837 %98756 %158837 %98830 %158837 %98904 %158837 %98978 %243389 %99052 %243390 %99126 %243393 %99200 %243395 %99274 %158837 %99302 %158837 %99330 %243398 %99358 %158837 %99409 %158837 %99483 %158837 %99534 %158837 %99631 %158837 %99705 %158837 %99756 %158837 %99807 %158837 %99835 %158837 %99878 %158837 %99911 %158837 %99949 %158837 %99992 %158837 %100020 %158837 %100053 %243424 %100091 %158837 %91337 %158837 %100162 %158837 %100190 %158837 %100218 %158837 %100246 %158837 %100274 %243433 %100302 %243434 %100330 %158837 %100387 %158837 %100444 %158837 %91718 %158837 %91734 %158837 %91750 %158837 %91766 %158837 %91772 %158837 %91778 %158837 %91784 %158837 %91790 %158837 %91793 %158837 %91803 %158837 %91820 %158837 %91844 %158837 %91860 %158837 %91876 %158837 %91892 %158837 %91898 %158837 %91904 %158837 %91910 %158837 %91916 %158837 %91919 %158837 %91929 %158837 %91946 %158837 %91970 %158837 %91986 %158837 %92002 %158837 %92018 %158837 %92024 %158837 %92030 %158837 %92036 %158837 %92042 %158837 %92045 %158837 %92055 %158837 %92072 %158837 %92096 %158837 %92112 %158837 %92128 %158837 %92144 %158837 %92150 %158837 %92156 %158837 %92162 %158837 %92168 %158837 %92171 %158837 %92181 %158837 %92198 %158837 %100575 %158837 %92270
-     %242903 = OpPhi %uint %158813 %92355 %92410 %92406 %92461 %92457 %158813 %92508 %158813 %92559 %158813 %92610 %158813 %92661 %158813 %92712 %92767 %92763 %92818 %92814 %158813 %92865 %158813 %92916 %158813 %92967 %158813 %93018 %158813 %93069 %93124 %93120 %93175 %93171 %158813 %93222 %158813 %93273 %158813 %93324 %158813 %93375 %158813 %93426 %93481 %93477 %93532 %93528 %158813 %93579 %158813 %93630 %158813 %93681 %158813 %93732 %158813 %93783 %93838 %93834 %158813 %93885 %158813 %93936 %158813 %93987 %94042 %94038 %94093 %94089 %158813 %94140 %158813 %94191 %158813 %94242 %158813 %94293 %158813 %94344 %242962 %94395 %158813 %94446 %158813 %94497 %242967 %94525 %158813 %94553 %158813 %94581 %242970 %94632 %158813 %94683 %158813 %94734 %158813 %94762 %158813 %94790 %158813 %94818 %158813 %94846 %158813 %94874 %158813 %94902 %158813 %94930 %158813 %94958 %158813 %94986 %158813 %95014 %158813 %95042 %158813 %95070 %158813 %95098 %158813 %95126 %158813 %95154 %158813 %95182 %158813 %95210 %158813 %95238 %158813 %95266 %158813 %95294 %158813 %95322 %158813 %95350 %158813 %95378 %158813 %95406 %158813 %95434 %158813 %95485 %158813 %95536 %158813 %95610 %95642 %95638 %95670 %95666 %95698 %95694 %95726 %95722 %95754 %95750 %95782 %95778 %95810 %95806 %95838 %95834 %95866 %95862 %95894 %95890 %95922 %95918 %95950 %95946 %95978 %95974 %96006 %96002 %96034 %96030 %96062 %96058 %96090 %96086 %96118 %96114 %96146 %96142 %96174 %96170 %96202 %96198 %96230 %96226 %96258 %96254 %96286 %96282 %96314 %96310 %96365 %96361 %96416 %96412 %96490 %96486 %158813 %96514 %158813 %96542 %158813 %96570 %158813 %96598 %158813 %96626 %158813 %96654 %158813 %96682 %158813 %96710 %158813 %96738 %158813 %96766 %158813 %96794 %158813 %96822 %158813 %96850 %158813 %96878 %158813 %96906 %158813 %96934 %158813 %96962 %158813 %96990 %158813 %97018 %158813 %97046 %158813 %97074 %158813 %97102 %158813 %97130 %158813 %97158 %158813 %97186 %158813 %97237 %158813 %97288 %158813 %97362 %158813 %97390 %158813 %97418 %158813 %97446 %158813 %97474 %158813 %97502 %158813 %97530 %158813 %97558 %158813 %97586 %158813 %97614 %158813 %97642 %158813 %97670 %158813 %97698 %158813 %97726 %158813 %97754 %158813 %97782 %158813 %97810 %158813 %97838 %158813 %97866 %158813 %97894 %158813 %97922 %158813 %97950 %158813 %97978 %158813 %98006 %158813 %98034 %158813 %98062 %158813 %98113 %158813 %98164 %158813 %98238 %158813 %98312 %158813 %98386 %98464 %98460 %98538 %98534 %98612 %98608 %98686 %98682 %158813 %98756 %158813 %98830 %158813 %98904 %158813 %98978 %158813 %99052 %158813 %99126 %158813 %99200 %158813 %99274 %99306 %99302 %158813 %99330 %158813 %99358 %99413 %99409 %158813 %99483 %243109 %99534 %158813 %99631 %243116 %99705 %158813 %99756 %243119 %99807 %158813 %99835 %99887 %99878 %158813 %99911 %158813 %99949 %158813 %99992 %243124 %100020 %158813 %100053 %158813 %100091 %158813 %91337 %158813 %100162 %100194 %100190 %100222 %100218 %158813 %100246 %158813 %100274 %158813 %100302 %158813 %100330 %158813 %100387 %158813 %100444 %158813 %91718 %158813 %91734 %158813 %91750 %158813 %91766 %158813 %91772 %158813 %91778 %158813 %91784 %158813 %91790 %158813 %91793 %158813 %91803 %158813 %91820 %158813 %91844 %158813 %91860 %158813 %91876 %100473 %91892 %100478 %91898 %100483 %91904 %100488 %91910 %91918 %91916 %91928 %91919 %91945 %91929 %91969 %91946 %158813 %91970 %158813 %91986 %158813 %92002 %158813 %92018 %158813 %92024 %158813 %92030 %158813 %92036 %158813 %92042 %158813 %92045 %158813 %92055 %158813 %92072 %158813 %92096 %158813 %92112 %158813 %92128 %158813 %92144 %158813 %92150 %158813 %92156 %158813 %92162 %158813 %92168 %158813 %92171 %158813 %92181 %158813 %92198 %158813 %100575 %158813 %92270
-     %242670 = OpPhi %uint %158811 %92355 %158811 %92406 %158811 %92457 %158811 %92508 %158811 %92559 %92614 %92610 %92665 %92661 %158811 %92712 %158811 %92763 %158811 %92814 %158811 %92865 %158811 %92916 %92971 %92967 %93022 %93018 %158811 %93069 %158811 %93120 %158811 %93171 %158811 %93222 %158811 %93273 %93328 %93324 %93379 %93375 %158811 %93426 %158811 %93477 %158811 %93528 %158811 %93579 %158811 %93630 %93685 %93681 %93736 %93732 %158811 %93783 %158811 %93834 %158811 %93885 %93940 %93936 %158811 %93987 %158811 %94038 %158811 %94089 %158811 %94140 %158811 %94191 %94246 %94242 %94297 %94293 %158811 %94344 %158811 %94395 %158811 %94446 %242733 %94497 %158811 %94525 %158811 %94553 %242736 %94581 %158811 %94632 %158811 %94683 %242741 %94734 %158811 %94762 %158811 %94790 %158811 %94818 %158811 %94846 %158811 %94874 %158811 %94902 %158811 %94930 %158811 %94958 %158811 %94986 %158811 %95014 %158811 %95042 %158811 %95070 %158811 %95098 %158811 %95126 %158811 %95154 %158811 %95182 %158811 %95210 %158811 %95238 %158811 %95266 %158811 %95294 %158811 %95322 %158811 %95350 %158811 %95378 %158811 %95406 %158811 %95434 %158811 %95485 %158811 %95536 %158811 %95610 %158811 %95638 %158811 %95666 %158811 %95694 %158811 %95722 %158811 %95750 %158811 %95778 %158811 %95806 %158811 %95834 %158811 %95862 %158811 %95890 %158811 %95918 %158811 %95946 %158811 %95974 %158811 %96002 %158811 %96030 %158811 %96058 %158811 %96086 %158811 %96114 %158811 %96142 %158811 %96170 %158811 %96198 %158811 %96226 %158811 %96254 %158811 %96282 %158811 %96310 %158811 %96361 %158811 %96412 %158811 %96486 %158811 %96514 %158811 %96542 %158811 %96570 %158811 %96598 %158811 %96626 %158811 %96654 %158811 %96682 %158811 %96710 %158811 %96738 %158811 %96766 %158811 %96794 %158811 %96822 %158811 %96850 %158811 %96878 %158811 %96906 %158811 %96934 %158811 %96962 %158811 %96990 %158811 %97018 %158811 %97046 %158811 %97074 %158811 %97102 %158811 %97130 %158811 %97158 %158811 %97186 %158811 %97237 %158811 %97288 %158811 %97362 %97394 %97390 %97422 %97418 %97450 %97446 %97478 %97474 %97506 %97502 %97534 %97530 %97562 %97558 %97590 %97586 %97618 %97614 %97646 %97642 %97674 %97670 %97702 %97698 %97730 %97726 %97758 %97754 %97786 %97782 %97814 %97810 %97842 %97838 %97870 %97866 %97898 %97894 %97926 %97922 %97954 %97950 %97982 %97978 %98010 %98006 %98038 %98034 %98066 %98062 %98117 %98113 %98168 %98164 %98242 %98238 %158811 %98312 %158811 %98386 %158811 %98460 %158811 %98534 %158811 %98608 %158811 %98682 %158811 %98756 %158811 %98830 %158811 %98904 %158811 %98978 %99056 %99052 %99130 %99126 %99204 %99200 %99278 %99274 %158811 %99302 %158811 %99330 %99362 %99358 %158811 %99409 %158811 %99483 %158811 %99534 %99635 %99631 %99709 %99705 %99760 %99756 %99811 %99807 %158811 %99835 %158811 %99878 %158811 %99911 %99968 %99949 %99996 %99992 %158811 %100020 %158811 %100053 %242884 %100091 %158811 %91337 %158811 %100162 %158811 %100190 %158811 %100218 %158811 %100246 %158811 %100274 %100306 %100302 %100334 %100330 %158811 %100387 %158811 %100444 %158811 %91718 %158811 %91734 %158811 %91750 %158811 %91766 %158811 %91772 %158811 %91778 %158811 %91784 %158811 %91790 %158811 %91793 %158811 %91803 %158811 %91820 %158811 %91844 %158811 %91860 %158811 %91876 %158811 %91892 %158811 %91898 %158811 %91904 %158811 %91910 %158811 %91916 %158811 %91919 %158811 %91929 %158811 %91946 %158811 %91970 %158811 %91986 %158811 %92002 %158811 %92018 %158811 %92024 %158811 %92030 %158811 %92036 %158811 %92042 %158811 %92045 %158811 %92055 %158811 %92072 %158811 %92096 %158811 %92112 %158811 %92128 %100513 %92144 %100518 %92150 %100523 %92156 %100528 %92162 %92170 %92168 %92180 %92171 %92197 %92181 %92221 %92198 %158811 %100575 %158811 %92270
-     %242372 = OpPhi %uint %158805 %92355 %158805 %92406 %158805 %92457 %242379 %92508 %242381 %92559 %158805 %92610 %158805 %92661 %158805 %92712 %158805 %92763 %158805 %92814 %242392 %92865 %242394 %92916 %158805 %92967 %158805 %93018 %158805 %93069 %158805 %93120 %158805 %93171 %242405 %93222 %242407 %93273 %158805 %93324 %158805 %93375 %158805 %93426 %158805 %93477 %158805 %93528 %242418 %93579 %242420 %93630 %158805 %93681 %158805 %93732 %158805 %93783 %158805 %93834 %242429 %93885 %158805 %93936 %158805 %93987 %158805 %94038 %158805 %94089 %242438 %94140 %242440 %94191 %158805 %94242 %158805 %94293 %242445 %94344 %158805 %94395 %242448 %94446 %158805 %94497 %158805 %94525 %242452 %94553 %158805 %94581 %158805 %94632 %242456 %94683 %158805 %94734 %158805 %94762 %158805 %94790 %158805 %94818 %158805 %94846 %158805 %94874 %158805 %94902 %158805 %94930 %158805 %94958 %158805 %94986 %158805 %95014 %158805 %95042 %158805 %95070 %158805 %95098 %158805 %95126 %158805 %95154 %158805 %95182 %158805 %95210 %158805 %95238 %158805 %95266 %158805 %95294 %158805 %95322 %158805 %95350 %158805 %95378 %158805 %95406 %158805 %95434 %158805 %95485 %158805 %95536 %158805 %95610 %158805 %95638 %158805 %95666 %158805 %95694 %158805 %95722 %158805 %95750 %158805 %95778 %158805 %95806 %158805 %95834 %158805 %95862 %158805 %95890 %158805 %95918 %158805 %95946 %158805 %95974 %158805 %96002 %158805 %96030 %158805 %96058 %158805 %96086 %158805 %96114 %158805 %96142 %158805 %96170 %158805 %96198 %158805 %96226 %158805 %96254 %158805 %96282 %158805 %96310 %158805 %96361 %158805 %96412 %158805 %96486 %242525 %96514 %242526 %96542 %242527 %96570 %242528 %96598 %242529 %96626 %242530 %96654 %242531 %96682 %242532 %96710 %242533 %96738 %242534 %96766 %242535 %96794 %242536 %96822 %242537 %96850 %242538 %96878 %242539 %96906 %242540 %96934 %242541 %96962 %242542 %96990 %242543 %97018 %242544 %97046 %242545 %97074 %242546 %97102 %242547 %97130 %242548 %97158 %242549 %97186 %242550 %97237 %242551 %97288 %242552 %97362 %158805 %97390 %158805 %97418 %158805 %97446 %158805 %97474 %158805 %97502 %158805 %97530 %158805 %97558 %158805 %97586 %158805 %97614 %158805 %97642 %158805 %97670 %158805 %97698 %158805 %97726 %158805 %97754 %158805 %97782 %158805 %97810 %158805 %97838 %158805 %97866 %158805 %97894 %158805 %97922 %158805 %97950 %158805 %97978 %158805 %98006 %158805 %98034 %158805 %98062 %158805 %98113 %158805 %98164 %158805 %98238 %158805 %98312 %158805 %98386 %158805 %98460 %158805 %98534 %158805 %98608 %158805 %98682 %242603 %98756 %242604 %98830 %242607 %98904 %242609 %98978 %158805 %99052 %158805 %99126 %158805 %99200 %158805 %99274 %158805 %99302 %242623 %99330 %158805 %99358 %158805 %99409 %158805 %99483 %158805 %99534 %158805 %99631 %158805 %99705 %242640 %99756 %158805 %99807 %158805 %99835 %158805 %99878 %158805 %99911 %158805 %99949 %158805 %99992 %158805 %100020 %242649 %100053 %158805 %100091 %158805 %91337 %158805 %100162 %158805 %100190 %158805 %100218 %242657 %100246 %242658 %100274 %158805 %100302 %158805 %100330 %158805 %100387 %158805 %100444 %158805 %91718 %158805 %91734 %158805 %91750 %158805 %91766 %158805 %91772 %158805 %91778 %158805 %91784 %158805 %91790 %158805 %91793 %158805 %91803 %158805 %91820 %158805 %91844 %158805 %91860 %158805 %91876 %158805 %91892 %158805 %91898 %158805 %91904 %158805 %91910 %158805 %91916 %158805 %91919 %158805 %91929 %158805 %91946 %158805 %91970 %158805 %91986 %158805 %92002 %158805 %92018 %158805 %92024 %158805 %92030 %158805 %92036 %158805 %92042 %158805 %92045 %158805 %92055 %158805 %92072 %158805 %92096 %158805 %92112 %158805 %92128 %158805 %92144 %158805 %92150 %158805 %92156 %158805 %92162 %158805 %92168 %158805 %92171 %158805 %92181 %158805 %92198 %242667 %100575 %158805 %92270
-     %242135 = OpPhi %uint %158802 %92355 %158802 %92406 %158802 %92457 %92512 %92508 %92563 %92559 %158802 %92610 %158802 %92661 %158802 %92712 %158802 %92763 %158802 %92814 %92869 %92865 %92920 %92916 %158802 %92967 %158802 %93018 %158802 %93069 %158802 %93120 %158802 %93171 %93226 %93222 %93277 %93273 %158802 %93324 %158802 %93375 %158802 %93426 %158802 %93477 %158802 %93528 %93583 %93579 %93634 %93630 %158802 %93681 %158802 %93732 %158802 %93783 %158802 %93834 %93889 %93885 %158802 %93936 %158802 %93987 %158802 %94038 %158802 %94089 %94144 %94140 %94195 %94191 %158802 %94242 %158802 %94293 %94348 %94344 %158802 %94395 %242194 %94446 %158802 %94497 %158802 %94525 %242198 %94553 %158802 %94581 %158802 %94632 %242202 %94683 %158802 %94734 %158802 %94762 %158802 %94790 %158802 %94818 %158802 %94846 %158802 %94874 %158802 %94902 %158802 %94930 %158802 %94958 %158802 %94986 %158802 %95014 %158802 %95042 %158802 %95070 %158802 %95098 %158802 %95126 %158802 %95154 %158802 %95182 %158802 %95210 %158802 %95238 %158802 %95266 %158802 %95294 %158802 %95322 %158802 %95350 %158802 %95378 %158802 %95406 %158802 %95434 %158802 %95485 %158802 %95536 %158802 %95610 %158802 %95638 %158802 %95666 %158802 %95694 %158802 %95722 %158802 %95750 %158802 %95778 %158802 %95806 %158802 %95834 %158802 %95862 %158802 %95890 %158802 %95918 %158802 %95946 %158802 %95974 %158802 %96002 %158802 %96030 %158802 %96058 %158802 %96086 %158802 %96114 %158802 %96142 %158802 %96170 %158802 %96198 %158802 %96226 %158802 %96254 %158802 %96282 %158802 %96310 %158802 %96361 %158802 %96412 %158802 %96486 %96518 %96514 %96546 %96542 %96574 %96570 %96602 %96598 %96630 %96626 %96658 %96654 %96686 %96682 %96714 %96710 %96742 %96738 %96770 %96766 %96798 %96794 %96826 %96822 %96854 %96850 %96882 %96878 %96910 %96906 %96938 %96934 %96966 %96962 %96994 %96990 %97022 %97018 %97050 %97046 %97078 %97074 %97106 %97102 %97134 %97130 %97162 %97158 %97190 %97186 %97241 %97237 %97292 %97288 %97366 %97362 %158802 %97390 %158802 %97418 %158802 %97446 %158802 %97474 %158802 %97502 %158802 %97530 %158802 %97558 %158802 %97586 %158802 %97614 %158802 %97642 %158802 %97670 %158802 %97698 %158802 %97726 %158802 %97754 %158802 %97782 %158802 %97810 %158802 %97838 %158802 %97866 %158802 %97894 %158802 %97922 %158802 %97950 %158802 %97978 %158802 %98006 %158802 %98034 %158802 %98062 %158802 %98113 %158802 %98164 %158802 %98238 %158802 %98312 %158802 %98386 %158802 %98460 %158802 %98534 %158802 %98608 %158802 %98682 %98760 %98756 %98834 %98830 %98908 %98904 %98982 %98978 %158802 %99052 %158802 %99126 %158802 %99200 %158802 %99274 %158802 %99302 %99334 %99330 %158802 %99358 %158802 %99409 %99487 %99483 %99538 %99534 %158802 %99631 %158802 %99705 %242345 %99756 %158802 %99807 %158802 %99835 %158802 %99878 %99925 %99911 %158802 %99949 %158802 %99992 %158802 %100020 %242353 %100053 %158802 %100091 %158802 %91337 %158802 %100162 %158802 %100190 %158802 %100218 %100250 %100246 %100278 %100274 %158802 %100302 %158802 %100330 %158802 %100387 %158802 %100444 %158802 %91718 %158802 %91734 %158802 %91750 %158802 %91766 %158802 %91772 %158802 %91778 %158802 %91784 %158802 %91790 %158802 %91793 %158802 %91803 %158802 %91820 %158802 %91844 %158802 %91860 %158802 %91876 %158802 %91892 %158802 %91898 %158802 %91904 %158802 %91910 %158802 %91916 %158802 %91919 %158802 %91929 %158802 %91946 %158802 %91970 %158802 %91986 %158802 %92002 %100493 %92018 %100498 %92024 %100503 %92030 %100508 %92036 %92044 %92042 %92054 %92045 %92071 %92055 %92095 %92072 %158802 %92096 %158802 %92112 %158802 %92128 %158802 %92144 %158802 %92150 %158802 %92156 %158802 %92162 %158802 %92168 %158802 %92171 %158802 %92181 %158802 %92198 %242369 %100575 %158802 %92270
-     %182409 = OpPhi %uint %182410 %92355 %158794 %92406 %182413 %92457 %158794 %92508 %182416 %92559 %158794 %92610 %182419 %92661 %182420 %92712 %158794 %92763 %182423 %92814 %158794 %92865 %182426 %92916 %158794 %92967 %182429 %93018 %182430 %93069 %158794 %93120 %182433 %93171 %158794 %93222 %182436 %93273 %158794 %93324 %182439 %93375 %182440 %93426 %158794 %93477 %182443 %93528 %158794 %93579 %182446 %93630 %158794 %93681 %182449 %93732 %182450 %93783 %158794 %93834 %158794 %93885 %158794 %93936 %182457 %93987 %158794 %94038 %182460 %94089 %158794 %94140 %182463 %94191 %158794 %94242 %182466 %94293 %158794 %94344 %158794 %94395 %158794 %94446 %158794 %94497 %158794 %94525 %158794 %94553 %158794 %94581 %158794 %94632 %158794 %94683 %158794 %94734 %182484 %94762 %182485 %94790 %182486 %94818 %182487 %94846 %182488 %94874 %182489 %94902 %182490 %94930 %182491 %94958 %182492 %94986 %182493 %95014 %182494 %95042 %182495 %95070 %182496 %95098 %182497 %95126 %182498 %95154 %182499 %95182 %182500 %95210 %182501 %95238 %182502 %95266 %182503 %95294 %182504 %95322 %182505 %95350 %182506 %95378 %182507 %95406 %182508 %95434 %182509 %95485 %182510 %95536 %182511 %95610 %158794 %95638 %158794 %95666 %158794 %95694 %158794 %95722 %158794 %95750 %158794 %95778 %158794 %95806 %158794 %95834 %158794 %95862 %158794 %95890 %158794 %95918 %158794 %95946 %158794 %95974 %158794 %96002 %158794 %96030 %158794 %96058 %158794 %96086 %158794 %96114 %158794 %96142 %158794 %96170 %158794 %96198 %158794 %96226 %158794 %96254 %158794 %96282 %158794 %96310 %158794 %96361 %158794 %96412 %158794 %96486 %158794 %96514 %158794 %96542 %158794 %96570 %158794 %96598 %158794 %96626 %158794 %96654 %158794 %96682 %158794 %96710 %158794 %96738 %158794 %96766 %158794 %96794 %158794 %96822 %158794 %96850 %158794 %96878 %158794 %96906 %158794 %96934 %158794 %96962 %158794 %96990 %158794 %97018 %158794 %97046 %158794 %97074 %158794 %97102 %158794 %97130 %158794 %97158 %158794 %97186 %158794 %97237 %158794 %97288 %158794 %97362 %158794 %97390 %158794 %97418 %158794 %97446 %158794 %97474 %158794 %97502 %158794 %97530 %158794 %97558 %158794 %97586 %158794 %97614 %158794 %97642 %158794 %97670 %158794 %97698 %158794 %97726 %158794 %97754 %158794 %97782 %158794 %97810 %158794 %97838 %158794 %97866 %158794 %97894 %158794 %97922 %158794 %97950 %158794 %97978 %158794 %98006 %158794 %98034 %158794 %98062 %158794 %98113 %158794 %98164 %158794 %98238 %182608 %98312 %182609 %98386 %158794 %98460 %158794 %98534 %182616 %98608 %182617 %98682 %158794 %98756 %158794 %98830 %182624 %98904 %182625 %98978 %158794 %99052 %158794 %99126 %182632 %99200 %182633 %99274 %158794 %99302 %158794 %99330 %158794 %99358 %182637 %99409 %182638 %99483 %182639 %99534 %182640 %99631 %182641 %99705 %182642 %99756 %158794 %99807 %158794 %99835 %158794 %99878 %158794 %99911 %158794 %99949 %158794 %99992 %158794 %100020 %158794 %100053 %158794 %100091 %182655 %91337 %182656 %100162 %158794 %100190 %158794 %100218 %158794 %100246 %158794 %100274 %158794 %100302 %158794 %100330 %182663 %100387 %182664 %100444 %158794 %91718 %158794 %91734 %158794 %91750 %158794 %91766 %158794 %91772 %158794 %91778 %158794 %91784 %158794 %91790 %158794 %91793 %158794 %91803 %158794 %91820 %158794 %91844 %158794 %91860 %158794 %91876 %158794 %91892 %158794 %91898 %158794 %91904 %158794 %91910 %158794 %91916 %158794 %91919 %158794 %91929 %158794 %91946 %158794 %91970 %158794 %91986 %158794 %92002 %158794 %92018 %158794 %92024 %158794 %92030 %158794 %92036 %158794 %92042 %158794 %92045 %158794 %92055 %158794 %92072 %158794 %92096 %158794 %92112 %158794 %92128 %158794 %92144 %158794 %92150 %158794 %92156 %158794 %92162 %158794 %92168 %158794 %92171 %158794 %92181 %158794 %92198 %182666 %100575 %158794 %92270
-     %182213 = OpPhi %uint %92359 %92355 %158792 %92406 %182216 %92457 %158792 %92508 %182219 %92559 %158792 %92610 %182222 %92661 %92716 %92712 %158792 %92763 %182225 %92814 %158792 %92865 %182228 %92916 %158792 %92967 %182231 %93018 %93073 %93069 %158792 %93120 %182234 %93171 %158792 %93222 %182237 %93273 %158792 %93324 %182240 %93375 %93430 %93426 %158792 %93477 %182243 %93528 %158792 %93579 %182246 %93630 %158792 %93681 %182249 %93732 %93787 %93783 %158792 %93834 %158792 %93885 %158792 %93936 %93991 %93987 %158792 %94038 %182258 %94089 %158792 %94140 %182261 %94191 %158792 %94242 %182264 %94293 %158792 %94344 %94399 %94395 %94450 %94446 %94501 %94497 %94529 %94525 %94557 %94553 %94585 %94581 %94636 %94632 %94687 %94683 %94738 %94734 %94766 %94762 %94794 %94790 %94822 %94818 %94850 %94846 %94878 %94874 %94906 %94902 %94934 %94930 %94962 %94958 %94990 %94986 %95018 %95014 %95046 %95042 %95074 %95070 %95102 %95098 %95130 %95126 %95158 %95154 %95186 %95182 %95214 %95210 %95242 %95238 %95270 %95266 %95298 %95294 %95326 %95322 %95354 %95350 %95382 %95378 %95410 %95406 %95438 %95434 %95489 %95485 %95540 %95536 %95614 %95610 %158792 %95638 %158792 %95666 %158792 %95694 %158792 %95722 %158792 %95750 %158792 %95778 %158792 %95806 %158792 %95834 %158792 %95862 %158792 %95890 %158792 %95918 %158792 %95946 %158792 %95974 %158792 %96002 %158792 %96030 %158792 %96058 %158792 %96086 %158792 %96114 %158792 %96142 %158792 %96170 %158792 %96198 %158792 %96226 %158792 %96254 %158792 %96282 %158792 %96310 %158792 %96361 %158792 %96412 %158792 %96486 %158792 %96514 %158792 %96542 %158792 %96570 %158792 %96598 %158792 %96626 %158792 %96654 %158792 %96682 %158792 %96710 %158792 %96738 %158792 %96766 %158792 %96794 %158792 %96822 %158792 %96850 %158792 %96878 %158792 %96906 %158792 %96934 %158792 %96962 %158792 %96990 %158792 %97018 %158792 %97046 %158792 %97074 %158792 %97102 %158792 %97130 %158792 %97158 %158792 %97186 %158792 %97237 %158792 %97288 %158792 %97362 %158792 %97390 %158792 %97418 %158792 %97446 %158792 %97474 %158792 %97502 %158792 %97530 %158792 %97558 %158792 %97586 %158792 %97614 %158792 %97642 %158792 %97670 %158792 %97698 %158792 %97726 %158792 %97754 %158792 %97782 %158792 %97810 %158792 %97838 %158792 %97866 %158792 %97894 %158792 %97922 %158792 %97950 %158792 %97978 %158792 %98006 %158792 %98034 %158792 %98062 %158792 %98113 %158792 %98164 %158792 %98238 %98316 %98312 %98390 %98386 %158792 %98460 %158792 %98534 %182369 %98608 %182370 %98682 %158792 %98756 %158792 %98830 %182377 %98904 %182378 %98978 %158792 %99052 %158792 %99126 %182385 %99200 %182386 %99274 %158792 %99302 %158792 %99330 %158792 %99358 %182390 %99409 %182391 %99483 %182392 %99534 %182393 %99631 %182394 %99705 %182395 %99756 %158792 %99807 %99854 %99835 %158792 %99878 %158792 %99911 %158792 %99949 %158792 %99992 %100029 %100020 %100067 %100053 %100110 %100091 %100138 %91337 %100166 %100162 %158792 %100190 %158792 %100218 %158792 %100246 %158792 %100274 %158792 %100302 %158792 %100330 %100391 %100387 %100448 %100444 %158792 %91718 %158792 %91734 %158792 %91750 %100453 %91766 %100458 %91772 %100463 %91778 %100468 %91784 %91792 %91790 %91802 %91793 %91819 %91803 %91843 %91820 %158792 %91844 %158792 %91860 %158792 %91876 %158792 %91892 %158792 %91898 %158792 %91904 %158792 %91910 %158792 %91916 %158792 %91919 %158792 %91929 %158792 %91946 %158792 %91970 %158792 %91986 %158792 %92002 %158792 %92018 %158792 %92024 %158792 %92030 %158792 %92036 %158792 %92042 %158792 %92045 %158792 %92055 %158792 %92072 %158792 %92096 %158792 %92112 %158792 %92128 %158792 %92144 %158792 %92150 %158792 %92156 %158792 %92162 %158792 %92168 %158792 %92171 %158792 %92181 %158792 %92198 %100579 %100575 %158792 %92270
-               OpBranch %92279
-      %92279 = OpLabel
-     %247888 = OpPhi %uint %162805 %83848 %247889 %92278
-     %247571 = OpPhi %uint %162803 %83848 %247572 %92278
-     %247254 = OpPhi %uint %162798 %83848 %247255 %92278
-     %246937 = OpPhi %uint %162796 %83848 %246938 %92278
-     %246620 = OpPhi %uint %162791 %83848 %246621 %92278
-     %246303 = OpPhi %uint %162789 %83848 %246304 %92278
-     %244724 = OpPhi %uint %160807 %83848 %244725 %92278
-     %243144 = OpPhi %uint %158837 %83848 %243145 %92278
-     %242902 = OpPhi %uint %158813 %83848 %242903 %92278
-     %242669 = OpPhi %uint %158811 %83848 %242670 %92278
-     %242371 = OpPhi %uint %158805 %83848 %242372 %92278
-     %242134 = OpPhi %uint %158802 %83848 %242135 %92278
-     %182408 = OpPhi %uint %158794 %83848 %182409 %92278
-     %182212 = OpPhi %uint %158792 %83848 %182213 %92278
-      %92281 = OpIAdd %uint %158787 %int_1
-      %92283 = OpIEqual %bool %92281 %uint_8
-               OpSelectionMerge %92297 None
-               OpBranchConditional %92283 %92284 %92297
-      %92284 = OpLabel
-      %92286 = OpIAdd %uint %158788 %int_1
-      %92288 = OpIEqual %bool %92286 %uint_13
-               OpSelectionMerge %92296 None
-               OpBranchConditional %92288 %92289 %92296
-      %92289 = OpLabel
-      %92291 = OpAccessChain %_ptr_Function_uint %82704 %uint_0
-      %92292 = OpLoad %uint %92291
-      %92293 = OpBitwiseAnd %uint %92292 %uint_32768
-      %92294 = OpUGreaterThan %bool %92293 %uint_0
-               OpSelectionMerge %100626 None
-               OpSwitch %uint_0 %100610
-     %100610 = OpLabel
-               OpSelectionMerge %100625 None
-               OpBranchConditional %92294 %100612 %100620
-     %100620 = OpLabel
-     %100622 = OpISub %uint %182212 %int_1
-     %100623 = OpAccessChain %_ptr_Function__arr_float_uint_2 %212 %100622
-     %100624 = OpLoad %_arr_float_uint_2 %100623
-     %100706 = OpCompositeExtract %float %100624 0
-               OpBranch %100626
-     %100612 = OpLabel
-     %100615 = OpAccessChain %_ptr_StorageBuffer_float %225 %int_0 %182408
-     %100616 = OpLoad %float %100615
-               OpBranch %100626
-     %100625 = OpLabel
-               OpUnreachable
-     %100626 = OpLabel
-     %182668 = OpPhi %float %100616 %100612 %100706 %100620
-               OpBranch %92299
-      %92296 = OpLabel
-               OpBranch %92297
-      %92297 = OpLabel
-     %242130 = OpPhi %uint %158788 %92279 %92286 %92296
-     %270613 = OpSelect %uint %92283 %uint_0 %92281
-               OpBranch %92298
-      %92298 = OpLabel
-               OpBranch %83803
-      %92299 = OpLabel
-     %182990 = OpPhi %float %float_0 %83863 %158796 %100603 %182668 %100626
-      %28865 = OpCompositeConstruct %v3float %182990 %182990 %182990
-      %28866 = OpFSub %v3float %270607 %28865
-      %28867 = OpExtInst %v3float %1 Normalize %28866
-      %10504 = OpCompositeExtract %float %126020 1
-      %10505 = OpFOrdLessThan %bool %10504 %float_9_99999975en05
-               OpSelectionMerge %10507 None
-               OpBranchConditional %10505 %10506 %10541
-      %10541 = OpLabel
-               OpTerminateInvocation
-      %10506 = OpLabel
-               OpStore %10509 %10510
-     %100634 = OpAccessChain %_ptr_PushConstant_v4float %128 %int_0 %int_0
-     %100635 = OpLoad %v4float %100634
-     %100637 = OpAccessChain %_ptr_PushConstant_v4float %128 %int_0 %int_1
-     %100638 = OpLoad %v4float %100637
-     %100640 = OpAccessChain %_ptr_PushConstant_v4float %128 %int_0 %int_2
-     %100641 = OpLoad %v4float %100640
-     %100643 = OpCompositeExtract %float %100635 0
-     %100644 = OpCompositeExtract %float %100635 1
-     %100645 = OpCompositeExtract %float %100635 2
-     %100646 = OpCompositeExtract %float %100638 0
-     %100647 = OpCompositeExtract %float %100638 1
-     %100648 = OpCompositeExtract %float %100638 2
-     %100649 = OpCompositeExtract %float %100641 0
-     %100650 = OpCompositeExtract %float %100641 1
-     %100651 = OpCompositeExtract %float %100641 2
-     %100652 = OpCompositeConstruct %v3float %100643 %100644 %100645
-     %100653 = OpCompositeConstruct %v3float %100646 %100647 %100648
-     %100654 = OpCompositeConstruct %v3float %100649 %100650 %100651
-     %100655 = OpCompositeConstruct %mat3v3float %100652 %100653 %100654
-     %100656 = OpAccessChain %_ptr_PushConstant_v4float %128 %int_0 %int_3
-     %100657 = OpLoad %v4float %100656
-     %100658 = OpVectorShuffle %v3float %100657 %100657 0 1 2
-               OpBranch %100659
-     %100659 = OpLabel
-     %184286 = OpPhi %v3float %123 %10506 %100687 %100666
-     %184285 = OpPhi %int %int_0 %10506 %100690 %100666
-     %100662 = OpBitcast %uint %184285
-     %100663 = OpAccessChain %_ptr_Uniform_uint %176 %int_2
-     %100664 = OpLoad %uint %100663
-     %100665 = OpULessThan %bool %100662 %100664
-               OpLoopMerge %100691 %100666 None
-               OpBranchConditional %100665 %100666 %100691
-     %100666 = OpLabel
-     %100668 = OpAccessChain %_ptr_Uniform_v4float %176 %int_1 %184285
-     %100669 = OpLoad %v4float %100668
-     %100670 = OpVectorShuffle %v3float %100669 %100669 0 1 2
-     %100673 = OpMatrixTimesVector %v3float %100655 %28867
-     %100674 = OpExtInst %v3float %1 Normalize %100673
-     %100676 = OpAccessChain %_ptr_Uniform_v4float %176 %int_0 %184285
-     %100677 = OpLoad %v4float %100676
-     %100678 = OpVectorShuffle %v3float %100677 %100677 0 1 2
-     %100680 = OpFSub %v3float %100678 %100658
-     %100681 = OpExtInst %v3float %1 Normalize %100680
-     %100682 = OpDot %float %100674 %100681
-     %100684 = OpExtInst %float %1 Fma %100682 %float_0_5 %float_0_5
-     %100685 = OpVectorTimesScalar %v3float %100670 %100684
-     %100687 = OpFAdd %v3float %184286 %100685
-     %100690 = OpIAdd %int %184285 %int_1
-               OpBranch %100659
-     %100691 = OpLabel
-      %10514 = OpCompositeExtract %float %184286 0
-      %10515 = OpCompositeExtract %float %184286 1
-      %10516 = OpCompositeExtract %float %184286 2
-      %10517 = OpCompositeConstruct %v4float %10514 %10515 %10516 %float_1
-               OpStore %10509 %10517
-      %10520 = OpAccessChain %_ptr_Uniform_mat4v4float %10475 %int_1
-      %10521 = OpLoad %mat4v4float %10520
-      %10522 = OpAccessChain %_ptr_Uniform_mat4v4float %10475 %int_0
-      %10523 = OpLoad %mat4v4float %10522
-      %10524 = OpMatrixTimesMatrix %mat4v4float %10521 %10523
-      %10527 = OpMatrixTimesMatrix %mat4v4float %10524 %10471
-      %10532 = OpCompositeConstruct %v4float %28833 %28836 %28838 %float_1
-      %10533 = OpMatrixTimesVector %v4float %10527 %10532
-      %10537 = OpCompositeExtract %float %10533 2
-      %10539 = OpCompositeExtract %float %10533 3
-      %10540 = OpFDiv %float %10537 %10539
-               OpStore %gl_FragDepth %10540
-               OpBranch %10507
-      %10507 = OpLabel
-               OpReturn
-               OpFunctionEnd
diff --git a/src/test.asm b/src/test.asm
deleted file mode 100644
index 9e621779229ae0b365efdcb42d4df107fdd61f09..0000000000000000000000000000000000000000
--- a/src/test.asm
+++ /dev/null
@@ -1,49 +0,0 @@
-; SPIR-V
-; Version: 1.5
-; Generator: Google Shaderc over Glslang; 11
-; Bound: 127
-; Schema: 0
-               OpCapability Shader
-          %1 = OpExtInstImport "GLSL.std.450"
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %4 "main" %67 %72
-               OpExecutionMode %4 OriginUpperLeft
-               OpDecorate %67 Location 0
-               OpDecorate %72 Location 0
-       %void = OpTypeVoid
-          %3 = OpTypeFunction %void
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-       %uint = OpTypeInt 32 0
-     %uint_2 = OpConstant %uint 2
-%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2
-       %bool = OpTypeBool
-     %v4bool = OpTypeVector %bool 4
-      %false = OpConstantFalse %bool
-         %34 = OpConstantComposite %v4bool %false %false %false %false
-    %float_0 = OpConstant %float 0
-         %38 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-%_ptr_Input__arr_v4float_uint_2 = OpTypePointer Input %_arr_v4float_uint_2
-         %67 = OpVariable %_ptr_Input__arr_v4float_uint_2 Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %72 = OpVariable %_ptr_Output_v4float Output
-    %float_1 = OpConstant %float 1
-          %4 = OpFunction %void None %3
-          %5 = OpLabel
-         %69 = OpLoad %_arr_v4float_uint_2 %67
-        %125 = OpCompositeExtract %v4float %69 0
-        %126 = OpCompositeExtract %v4float %69 1
-         %86 = OpExtInst %v4float %1 FAbs %125
-         %89 = OpExtInst %v4float %1 FAbs %126
-         %90 = OpExtInst %v4float %1 FMin %86 %89
-         %93 = OpFOrdLessThan %v4bool %125 %38
-         %96 = OpFOrdGreaterThan %v4bool %126 %38
-         %97 = OpSelect %v4bool %96 %93 %34
-        %100 = OpSelect %v4float %97 %38 %90
-        %102 = OpExtInst %float %1 Length %100
-        %110 = OpExtInst %v4float %1 FMax %86 %89
-        %111 = OpExtInst %float %1 Length %110
-         %78 = OpCompositeConstruct %v4float %102 %111 %float_0 %float_1
-               OpStore %72 %78
-               OpReturn
-               OpFunctionEnd