2019-03-31 18:08:21.839: App Version: 01_189_044 2019-03-31 18:08:21.839: Is official: True [NO][IS][NAMP] 2019-03-31 18:08:21.839: Environment.ProcessorCount: 16 2019-03-31 18:08:21.865: Environment.OSVersion: Microsoft Windows 7 Professional (Microsoft Windows NT 6.1.7601 Service Pack 1) 2019-03-31 18:08:21.865: Environment.CommandLine: "C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\SpaceEngineers.exe" 2019-03-31 18:08:21.865: Environment.Is64BitProcess: True 2019-03-31 18:08:21.865: Environment.Is64BitOperatingSystem: True 2019-03-31 18:08:21.866: Environment.Version: 4.6.2 or later (461814) 2019-03-31 18:08:21.866: Environment.CurrentDirectory: Z:\home\zuriel 2019-03-31 18:08:22.062: CPU Info: AMD Ryzen 7 2700X Eight-Core Processor ***************************************************************************** * WARNING: RADV_TRACE_FILE is costly and should only be used for debugging! * ***************************************************************************** Trace file will be dumped to /tmp/radv-trace.txt Enabled debug options: allbos, vmfaults, syncshaders, ***************************************************************************** * WARNING: RADV_TRACE_FILE is costly and should only be used for debugging! * ***************************************************************************** Trace file will be dumped to /tmp/radv-trace.txt Enabled debug options: allbos, vmfaults, syncshaders, ***************************************************************************** * WARNING: RADV_TRACE_FILE is costly and should only be used for debugging! * ***************************************************************************** Trace file will be dumped to /tmp/radv-trace.txt Enabled debug options: allbos, vmfaults, syncshaders, ***************************************************************************** * WARNING: RADV_TRACE_FILE is costly and should only be used for debugging! * ***************************************************************************** Trace file will be dumped to /tmp/radv-trace.txt Enabled debug options: allbos, vmfaults, syncshaders, ***************************************************************************** * WARNING: RADV_TRACE_FILE is costly and should only be used for debugging! * ***************************************************************************** Trace file will be dumped to /tmp/radv-trace.txt Enabled debug options: allbos, vmfaults, syncshaders, ***************************************************************************** * WARNING: RADV_TRACE_FILE is costly and should only be used for debugging! * ***************************************************************************** Trace file will be dumped to /tmp/radv-trace.txt Enabled debug options: allbos, vmfaults, syncshaders, ***************************************************************************** * WARNING: RADV_TRACE_FILE is costly and should only be used for debugging! * ***************************************************************************** Trace file will be dumped to /tmp/radv-trace.txt Enabled debug options: allbos, vmfaults, syncshaders, GPU hang report: Device name: Radeon RX Vega (AMD RADV VEGA10 (LLVM 9.0.0) DRM 3.27.0 / 5.0.1, LLVM 9.0.0) Enabled debug options: allbos, vmfaults, syncshaders, Last 60 lines of dmesg: [ 76.557754] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 76.690152] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 78.858651] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 83.707695] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 85.574153] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 89.057781] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 92.859747] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 103.340647] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 104.633474] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 153.224836] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 153.632125] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 203.025181] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 205.085423] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 205.240371] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 209.684813] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 209.783792] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 211.276122] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 211.374430] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 213.171922] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR packet update: crtc=47 enabled=0 state=2 [ 213.171981] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 247.273768] [drm:drm_mode_addfb2 [drm]] [FB:117] [ 247.358292] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR packet update: crtc=47 enabled=0 state=2 [ 247.358335] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 247.490456] [drm:drm_mode_addfb2 [drm]] [FB:95] [ 247.494302] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR packet update: crtc=47 enabled=1 state=3 [ 247.494331] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 247.576862] [drm:drm_mode_addfb2 [drm]] [FB:110] [ 247.668157] [drm:drm_mode_addfb2 [drm]] [FB:120] [ 247.755894] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 288.004590] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR packet update: crtc=47 enabled=0 state=2 [ 288.086756] [drm:drm_mode_addfb2 [drm]] [FB:110] [ 288.103395] [drm:drm_mode_addfb2 [drm]] [FB:117] [ 288.143431] [drm:drm_mode_addfb2 [drm]] [FB:119] [ 288.214367] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 289.797835] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR packet update: crtc=47 enabled=0 state=2 [ 289.797892] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 350.285888] [drm:drm_mode_addfb2 [drm]] [FB:110] [ 350.303426] [drm:drm_mode_addfb2 [drm]] [FB:119] [ 350.339811] [drm:drm_mode_addfb2 [drm]] [FB:120] [ 383.028567] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 449.014116] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 454.025824] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 582.042877] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 584.927196] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 585.034693] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 588.866912] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 589.001788] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 591.370178] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 591.504577] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 592.130182] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR packet update: crtc=47 enabled=0 state=2 [ 592.130250] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 630.648697] [drm:drm_mode_addfb2 [drm]] [FB:110] [ 630.708241] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR packet update: crtc=47 enabled=0 state=2 [ 630.708299] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 [ 630.773697] [drm:drm_mode_addfb2 [drm]] [FB:110] [ 630.777643] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR packet update: crtc=47 enabled=1 state=3 [ 630.777703] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=3332 [ 630.891823] [drm:drm_mode_addfb2 [drm]] [FB:117] [ 630.981333] [drm:drm_mode_addfb2 [drm]] [FB:120] [ 631.174454] [drm:update_freesync_state_on_stream.isra.45 [amdgpu]] VRR timing update: crtc=47 min=2222 max=2222 Memory-mapped registers: GRBM_STATUS <- ME0PIPE0_CMDFIFO_AVAIL = 8 RSMU_RQ_PENDING = 1 ME0PIPE0_CF_RQ_PENDING = 0 ME0PIPE0_PF_RQ_PENDING = 0 GDS_DMA_RQ_PENDING = 0 DB_CLEAN = 1 CB_CLEAN = 1 TA_BUSY = 0 GDS_BUSY = 0 WD_BUSY_NO_DMA = 0 VGT_BUSY = 0 IA_BUSY_NO_DMA = 0 IA_BUSY = 0 SX_BUSY = 0 WD_BUSY = 0 SPI_BUSY = 1 BCI_BUSY = 0 SC_BUSY = 1 PA_BUSY = 0 DB_BUSY = 0 CP_COHERENCY_BUSY = 0 CP_BUSY = 1 CB_BUSY = 0 GUI_ACTIVE = 1 GRBM_STATUS2 <- ME0PIPE1_CMDFIFO_AVAIL = 8 ME0PIPE1_CF_RQ_PENDING = 0 ME0PIPE1_PF_RQ_PENDING = 0 ME1PIPE0_RQ_PENDING = 0 ME1PIPE1_RQ_PENDING = 0 ME1PIPE2_RQ_PENDING = 0 ME1PIPE3_RQ_PENDING = 0 ME2PIPE0_RQ_PENDING = 0 ME2PIPE1_RQ_PENDING = 0 ME2PIPE2_RQ_PENDING = 0 ME2PIPE3_RQ_PENDING = 0 RLC_RQ_PENDING = 0 UTCL2_BUSY = 0 EA_BUSY = 0 RMI_BUSY = 0 UTCL2_RQ_PENDING = 0 CPF_RQ_PENDING = 0 EA_LINK_BUSY = 0 RLC_BUSY = 0 TC_BUSY = 0 TCC_CC_RESIDENT = 0 CPF_BUSY = 1 CPC_BUSY = 0 CPG_BUSY = 1 CPAXI_BUSY = 0 GRBM_STATUS_SE0 <- DB_CLEAN = 1 CB_CLEAN = 1 RMI_BUSY = 0 BCI_BUSY = 0 VGT_BUSY = 0 PA_BUSY = 0 TA_BUSY = 0 SX_BUSY = 0 SPI_BUSY = 0 SC_BUSY = 1 DB_BUSY = 0 CB_BUSY = 0 GRBM_STATUS_SE1 <- DB_CLEAN = 1 CB_CLEAN = 1 RMI_BUSY = 0 BCI_BUSY = 0 VGT_BUSY = 0 PA_BUSY = 0 TA_BUSY = 0 SX_BUSY = 0 SPI_BUSY = 0 SC_BUSY = 0 DB_BUSY = 0 CB_BUSY = 0 GRBM_STATUS_SE2 <- DB_CLEAN = 1 CB_CLEAN = 1 RMI_BUSY = 0 BCI_BUSY = 0 VGT_BUSY = 0 PA_BUSY = 0 TA_BUSY = 0 SX_BUSY = 0 SPI_BUSY = 1 SC_BUSY = 1 DB_BUSY = 0 CB_BUSY = 0 GRBM_STATUS_SE3 <- DB_CLEAN = 1 CB_CLEAN = 1 RMI_BUSY = 0 BCI_BUSY = 0 VGT_BUSY = 0 PA_BUSY = 0 TA_BUSY = 0 SX_BUSY = 0 SPI_BUSY = 1 SC_BUSY = 0 DB_BUSY = 0 CB_BUSY = 0 CP_STAT <- ROQ_RING_BUSY = 1 ROQ_INDIRECT1_BUSY = 1 ROQ_INDIRECT2_BUSY = 0 ROQ_STATE_BUSY = 0 DC_BUSY = 0 UTCL2IU_BUSY = 0 PFP_BUSY = 1 MEQ_BUSY = 1 ME_BUSY = 1 QUERY_BUSY = 0 SEMAPHORE_BUSY = 0 INTERRUPT_BUSY = 0 SURFACE_SYNC_BUSY = 0 DMA_BUSY = 0 RCIU_BUSY = 0 SCRATCH_RAM_BUSY = 0 CE_BUSY = 0 TCIU_BUSY = 0 ROQ_CE_RING_BUSY = 0 ROQ_CE_INDIRECT1_BUSY = 0 ROQ_CE_INDIRECT2_BUSY = 0 CP_BUSY = 1 CP_STALLED_STAT1 <- RBIU_TO_DMA_NOT_RDY_TO_RCV = 0 RBIU_TO_SEM_NOT_RDY_TO_RCV = 0 RBIU_TO_MEMWR_NOT_RDY_TO_RCV = 0 ME_HAS_ACTIVE_CE_BUFFER_FLAG = 1 ME_HAS_ACTIVE_DE_BUFFER_FLAG = 1 ME_STALLED_ON_TC_WR_CONFIRM = 0 ME_STALLED_ON_ATOMIC_RTN_DATA = 0 ME_WAITING_ON_TC_READ_DATA = 0 ME_WAITING_ON_REG_READ_DATA = 0 RCIU_WAITING_ON_GDS_FREE = 0 RCIU_WAITING_ON_GRBM_FREE = 0 RCIU_WAITING_ON_VGT_FREE = 0 RCIU_STALLED_ON_ME_READ = 0 RCIU_STALLED_ON_DMA_READ = 0 RCIU_STALLED_ON_APPEND_READ = 0 RCIU_HALTED_BY_REG_VIOLATION = 0 CP_STALLED_STAT2 <- PFP_TO_CSF_NOT_RDY_TO_RCV = 0 PFP_TO_MEQ_NOT_RDY_TO_RCV = 0 PFP_TO_RCIU_NOT_RDY_TO_RCV = 0 PFP_TO_VGT_WRITES_PENDING = 0 PFP_RCIU_READ_PENDING = 0 PFP_WAITING_ON_BUFFER_DATA = 0 ME_WAIT_ON_CE_COUNTER = 0 ME_WAIT_ON_AVAIL_BUFFER = 0 GFX_CNTX_NOT_AVAIL_TO_ME = 0 ME_RCIU_NOT_RDY_TO_RCV = 0 ME_TO_CONST_NOT_RDY_TO_RCV = 0 ME_WAITING_DATA_FROM_PFP = 0 ME_WAITING_ON_PARTIAL_FLUSH = 1 MEQ_TO_ME_NOT_RDY_TO_RCV = 1 STQ_TO_ME_NOT_RDY_TO_RCV = 0 ME_WAITING_DATA_FROM_STQ = 0 PFP_STALLED_ON_TC_WR_CONFIRM = 0 PFP_STALLED_ON_ATOMIC_RTN_DATA = 0 EOPD_FIFO_NEEDS_SC_EOP_DONE = 0 EOPD_FIFO_NEEDS_WR_CONFIRM = 0 STRMO_WR_OF_PRIM_DATA_PENDING = 0 PIPE_STATS_WR_DATA_PENDING = 0 APPEND_RDY_WAIT_ON_CS_DONE = 0 APPEND_RDY_WAIT_ON_PS_DONE = 0 APPEND_WAIT_ON_WR_CONFIRM = 0 APPEND_ACTIVE_PARTITION = 0 APPEND_WAITING_TO_SEND_MEMWRITE = 0 SURF_SYNC_NEEDS_IDLE_CNTXS = 0 SURF_SYNC_NEEDS_ALL_CLEAN = 0 CP_STALLED_STAT3 <- CE_TO_CSF_NOT_RDY_TO_RCV = 0 CE_TO_RAM_INIT_FETCHER_NOT_RDY_TO_RCV = 0 CE_WAITING_ON_DATA_FROM_RAM_INIT_FETCHER = 0 CE_TO_RAM_INIT_NOT_RDY = 0 CE_TO_RAM_DUMP_NOT_RDY = 0 CE_TO_RAM_WRITE_NOT_RDY = 0 CE_TO_INC_FIFO_NOT_RDY_TO_RCV = 0 CE_TO_WR_FIFO_NOT_RDY_TO_RCV = 0 CE_WAITING_ON_BUFFER_DATA = 0 CE_WAITING_ON_CE_BUFFER_FLAG = 0 CE_WAITING_ON_DE_COUNTER = 0 CE_WAITING_ON_DE_COUNTER_UNDERFLOW = 0 TCIU_WAITING_ON_FREE = 0 TCIU_WAITING_ON_TAGS = 0 CE_STALLED_ON_TC_WR_CONFIRM = 0 CE_STALLED_ON_ATOMIC_RTN_DATA = 0 UTCL2IU_WAITING_ON_FREE = 0 UTCL2IU_WAITING_ON_TAGS = 0 UTCL1_WAITING_ON_TRANS = 0 CP_CPC_STATUS <- MEC1_BUSY = 0 MEC2_BUSY = 0 DC0_BUSY = 0 DC1_BUSY = 0 RCIU1_BUSY = 0 RCIU2_BUSY = 0 ROQ1_BUSY = 0 ROQ2_BUSY = 0 TCIU_BUSY = 0 SCRATCH_RAM_BUSY = 0 QU_BUSY = 0 UTCL2IU_BUSY = 0 SAVE_RESTORE_BUSY = 0 CPG_CPC_BUSY = 0 CPF_CPC_BUSY = 0 CPC_BUSY = 0 CP_CPC_STALLED_STAT1 <- RCIU_TX_FREE_STALL = 0 RCIU_PRIV_VIOLATION = 0 TCIU_TX_FREE_STALL = 0 MEC1_DECODING_PACKET = 0 MEC1_WAIT_ON_RCIU = 0 MEC1_WAIT_ON_RCIU_READ = 0 MEC1_WAIT_ON_ROQ_DATA = 0 MEC2_DECODING_PACKET = 0 MEC2_WAIT_ON_RCIU = 0 MEC2_WAIT_ON_RCIU_READ = 0 MEC2_WAIT_ON_ROQ_DATA = 0 UTCL2IU_WAITING_ON_FREE = 0 UTCL2IU_WAITING_ON_TAGS = 0 UTCL1_WAITING_ON_TRANS = 0 CP_CPF_STATUS <- POST_WPTR_GFX_BUSY = 1 CSF_BUSY = 1 ROQ_ALIGN_BUSY = 0 ROQ_RING_BUSY = 1 ROQ_INDIRECT1_BUSY = 1 ROQ_INDIRECT2_BUSY = 0 ROQ_STATE_BUSY = 0 ROQ_CE_RING_BUSY = 0 ROQ_CE_INDIRECT1_BUSY = 0 ROQ_CE_INDIRECT2_BUSY = 0 SEMAPHORE_BUSY = 0 INTERRUPT_BUSY = 0 TCIU_BUSY = 0 HQD_BUSY = 0 PRT_BUSY = 0 UTCL2IU_BUSY = 0 CPF_GFX_BUSY = 1 CPF_CMP_BUSY = 0 GRBM_CPF_STAT_BUSY = 3 CPC_CPF_BUSY = 0 CPF_BUSY = 1 CP_CPF_BUSY_STAT <- REG_BUS_FIFO_BUSY = 0 CSF_RING_BUSY = 1 CSF_INDIRECT1_BUSY = 1 CSF_INDIRECT2_BUSY = 0 CSF_STATE_BUSY = 0 CSF_CE_INDR1_BUSY = 0 CSF_CE_INDR2_BUSY = 0 CSF_ARBITER_BUSY = 0 CSF_INPUT_BUSY = 0 OUTSTANDING_READ_TAGS = 0 HPD_PROCESSING_EOP_BUSY = 0 HQD_DISPATCH_BUSY = 0 HQD_IQ_TIMER_BUSY = 0 HQD_DMA_OFFLOAD_BUSY = 0 HQD_WAIT_SEMAPHORE_BUSY = 0 HQD_SIGNAL_SEMAPHORE_BUSY = 0 HQD_MESSAGE_BUSY = 0 HQD_PQ_FETCHER_BUSY = 0 HQD_IB_FETCHER_BUSY = 0 HQD_IQ_FETCHER_BUSY = 0 HQD_EOP_FETCHER_BUSY = 0 HQD_CONSUMED_RPTR_BUSY = 0 HQD_FETCHER_ARB_BUSY = 0 HQD_ROQ_ALIGN_BUSY = 0 HQD_ROQ_EOP_BUSY = 0 HQD_ROQ_IQ_BUSY = 0 HQD_ROQ_PQ_BUSY = 0 HQD_ROQ_IB_BUSY = 0 HQD_WPTR_POLL_BUSY = 0 HQD_PQ_BUSY = 0 HQD_IB_BUSY = 0 CP_CPF_STALLED_STAT1 <- RING_FETCHING_DATA = 1 INDR1_FETCHING_DATA = 1 INDR2_FETCHING_DATA = 0 STATE_FETCHING_DATA = 0 TCIU_WAITING_ON_FREE = 0 TCIU_WAITING_ON_TAGS = 0 UTCL2IU_WAITING_ON_FREE = 0 UTCL2IU_WAITING_ON_TAGS = 0 GFX_UTCL1_WAITING_ON_TRANS = 0 CMP_UTCL1_WAITING_ON_TRANS = 0 RCIU_WAITING_ON_FREE = 0 Geometry Shader: SPIRV (sha1: d0c4ed43ce688ecb1cd4b4df66fa56b4aa24d9a7): ; SPIR-V ; Version: 1.3 ; Generator: Khronos; 0 ; Bound: 2074 ; Schema: 0 OpCapability Shader OpCapability ImageQuery OpCapability Geometry OpCapability ClipDistance OpCapability CullDistance %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Geometry %main "main" %gs_vertex_out %v0 %v1 %v2 %v3 %gs_vertex_in %o0 %o1 %o2 %o3 OpExecutionMode %main InputPoints OpExecutionMode %main OutputTriangleStrip OpExecutionMode %main OutputVertices 4 %3 = OpString "GS_d7a383106a857ecb7dcafd6c2b1ff3443c58bc21" OpSource Unknown 0 %3 OpName %s_per_vertex "s_per_vertex" OpMemberName %s_per_vertex 0 "position" OpName %gs_vertex_out "gs_vertex_out" OpName %gs_main "gs_main" OpName %cb0_t "cb0_t" OpMemberName %cb0_t 0 "m" OpName %cb0 "cb0" OpName %cb0_bound "cb0_bound" OpName %cb1_t "cb1_t" OpMemberName %cb1_t 0 "m" OpName %cb1 "cb1" OpName %cb1_bound "cb1_bound" OpName %cb2_t "cb2_t" OpMemberName %cb2_t 0 "m" OpName %cb2 "cb2" OpName %cb2_bound "cb2_bound" OpName %cb4_t "cb4_t" OpMemberName %cb4_t 0 "m" OpName %cb4 "cb4" OpName %cb4_bound "cb4_bound" OpName %v0 "v0" OpName %v1 "v1" OpName %v2 "v2" OpName %v3 "v3" OpName %r0 "r0" OpName %r1 "r1" OpName %r2 "r2" OpName %r3 "r3" OpName %r4 "r4" OpName %r5 "r5" OpName %r6 "r6" OpName %x0 "x0" OpName %x1 "x1" OpName %shader_in "shader_in" OpName %s_per_vertex_0 "s_per_vertex" OpMemberName %s_per_vertex_0 0 "position" OpName %gs_vertex_in "gs_vertex_in" OpName %o0 "o0" OpName %o1 "o1" OpName %o2 "o2" OpName %o3 "o3" OpName %main "main" OpMemberDecorate %s_per_vertex 0 BuiltIn Position OpDecorate %s_per_vertex Block OpDecorate %_arr_v4float_uint_79 ArrayStride 16 OpDecorate %cb0_t Block OpMemberDecorate %cb0_t 0 Offset 0 OpDecorate %cb0 DescriptorSet 0 OpDecorate %cb0 Binding 1 OpDecorate %cb0_bound SpecId 1 OpDecorate %_arr_v4float_uint_4 ArrayStride 16 OpDecorate %cb1_t Block OpMemberDecorate %cb1_t 0 Offset 0 OpDecorate %cb1 DescriptorSet 0 OpDecorate %cb1 Binding 2 OpDecorate %cb1_bound SpecId 2 OpDecorate %_arr_v4float_uint_1 ArrayStride 16 OpDecorate %cb2_t Block OpMemberDecorate %cb2_t 0 Offset 0 OpDecorate %cb2 DescriptorSet 0 OpDecorate %cb2 Binding 3 OpDecorate %cb2_bound SpecId 3 OpDecorate %_arr_v4float_uint_256 ArrayStride 16 OpDecorate %cb4_t Block OpMemberDecorate %cb4_t 0 Offset 0 OpDecorate %cb4 DescriptorSet 0 OpDecorate %cb4 Binding 4 OpDecorate %cb4_bound SpecId 4 OpDecorate %v0 Location 0 OpDecorate %v1 Location 1 OpDecorate %v2 Location 2 OpDecorate %v3 Location 3 OpMemberDecorate %s_per_vertex_0 0 BuiltIn Position OpDecorate %s_per_vertex_0 Block OpDecorate %o0 Location 0 OpDecorate %o1 Location 1 OpDecorate %o2 Location 2 OpDecorate %o3 Location 3 %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %s_per_vertex = OpTypeStruct %v4float %_ptr_Output_s_per_vertex = OpTypePointer Output %s_per_vertex %void = OpTypeVoid %11 = OpTypeFunction %void %uint = OpTypeInt 32 0 %uint_79 = OpConstant %uint 79 %_arr_v4float_uint_79 = OpTypeArray %v4float %uint_79 %cb0_t = OpTypeStruct %_arr_v4float_uint_79 %_ptr_Uniform_cb0_t = OpTypePointer Uniform %cb0_t %bool = OpTypeBool %cb0_bound = OpSpecConstantTrue %bool %uint_4 = OpConstant %uint 4 %_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 %cb1_t = OpTypeStruct %_arr_v4float_uint_4 %_ptr_Uniform_cb1_t = OpTypePointer Uniform %cb1_t %cb1_bound = OpSpecConstantTrue %bool %uint_1 = OpConstant %uint 1 %_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 %cb2_t = OpTypeStruct %_arr_v4float_uint_1 %_ptr_Uniform_cb2_t = OpTypePointer Uniform %cb2_t %cb2_bound = OpSpecConstantTrue %bool %uint_256 = OpConstant %uint 256 %_arr_v4float_uint_256 = OpTypeArray %v4float %uint_256 %cb4_t = OpTypeStruct %_arr_v4float_uint_256 %_ptr_Uniform_cb4_t = OpTypePointer Uniform %cb4_t %cb4_bound = OpSpecConstantTrue %bool %_ptr_Input__arr_v4float_uint_1 = OpTypePointer Input %_arr_v4float_uint_1 %v3float = OpTypeVector %float 3 %_arr_v3float_uint_1 = OpTypeArray %v3float %uint_1 %_ptr_Input__arr_v3float_uint_1 = OpTypePointer Input %_arr_v3float_uint_1 %_arr_float_uint_1 = OpTypeArray %float %uint_1 %_ptr_Input__arr_float_uint_1 = OpTypePointer Input %_arr_float_uint_1 %_ptr_Private_v4float = OpTypePointer Private %v4float %uint_16 = OpConstant %uint 16 %_arr_v4float_uint_16 = OpTypeArray %v4float %uint_16 %_ptr_Private__arr_v4float_uint_16 = OpTypePointer Private %_arr_v4float_uint_16 %_arr__arr_v4float_uint_4_uint_1 = OpTypeArray %_arr_v4float_uint_4 %uint_1 %_ptr_Private__arr__arr_v4float_uint_4_uint_1 = OpTypePointer Private %_arr__arr_v4float_uint_4_uint_1 %s_per_vertex_0 = OpTypeStruct %v4float %_arr_s_per_vertex_0_uint_1 = OpTypeArray %s_per_vertex_0 %uint_1 %_ptr_Input__arr_s_per_vertex_0_uint_1 = OpTypePointer Input %_arr_s_per_vertex_0_uint_1 %_ptr_Output_v4float = OpTypePointer Output %v4float %_ptr_Output_v3float = OpTypePointer Output %v3float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %int_37 = OpConstant %int 37 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %uint_0 = OpConstant %uint 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %uint_4294967295 = OpConstant %uint 4294967295 %uint_255 = OpConstant %uint 255 %int_3 = OpConstant %int 3 %uint_8 = OpConstant %uint 8 %uint_123459876 = OpConstant %uint 123459876 %uint_127773 = OpConstant %uint 127773 %uint_4294964460 = OpConstant %uint 4294964460 %uint_4294839523 = OpConstant %uint 4294839523 %uint_16807 = OpConstant %uint 16807 %uint_2147483647 = OpConstant %uint 2147483647 %v2float = OpTypeVector %float 2 %v2uint = OpTypeVector %uint 2 %311 = OpConstantComposite %v2uint %uint_123459876 %uint_0 %uint_805306368 = OpConstant %uint 805306368 %uint_3 = OpConstant %uint 3 %uint_1065353216 = OpConstant %uint 1065353216 %uint_2 = OpConstant %uint 2 %int_1 = OpConstant %int 1 %uint_1065336439 = OpConstant %uint 1065336439 %v3uint = OpTypeVector %uint 3 %508 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1065353216 %510 = OpConstantComposite %v3uint %uint_0 %uint_1065353216 %uint_0 %v3bool = OpTypeVector %bool 3 %513 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_0 %uint_826871771 = OpConstant %uint 826871771 %uint_1056964608 = OpConstant %uint 1056964608 %float_0 = OpConstant %float 0 %float_1 = OpConstant %float 1 %uint_3221225472 = OpConstant %uint 3221225472 %uint_1077936128 = OpConstant %uint 1077936128 %uint_1069547520 = OpConstant %uint 1069547520 %uint_3212836864 = OpConstant %uint 3212836864 %uint_1098907648 = OpConstant %uint 1098907648 %int_2 = OpConstant %int 2 %uint_4294967292 = OpConstant %uint 4294967292 %int_4 = OpConstant %int 4 %uint_4294967288 = OpConstant %uint 4294967288 %int_5 = OpConstant %int 5 %int_6 = OpConstant %int 6 %uint_4294967280 = OpConstant %uint 4294967280 %int_7 = OpConstant %int 7 %int_8 = OpConstant %int 8 %uint_4294967264 = OpConstant %uint 4294967264 %int_9 = OpConstant %int 9 %int_10 = OpConstant %int 10 %int_11 = OpConstant %int 11 %int_12 = OpConstant %int 12 %int_13 = OpConstant %int 13 %int_14 = OpConstant %int 14 %int_15 = OpConstant %int 15 %uint_15 = OpConstant %uint 15 %v2bool = OpTypeVector %bool 2 %1285 = OpConstantComposite %v2uint %uint_0 %uint_0 %uint_3204448256 = OpConstant %uint 3204448256 %uint_3175926989 = OpConstant %uint 3175926989 %uint_1028443341 = OpConstant %uint 1028443341 %1347 = OpConstantComposite %v2uint %uint_1028443341 %uint_3175926989 %1350 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 %uint_1101004800 = OpConstant %uint 1101004800 %int_38 = OpConstant %int 38 %int_78 = OpConstant %int 78 %uint_1073532109 = OpConstant %uint 1073532109 %uint_1064900231 = OpConstant %uint 1064900231 %uint_1052770304 = OpConstant %uint 1052770304 %uint_1044750795 = OpConstant %uint 1044750795 %v4uint = OpTypeVector %uint 4 %1533 = OpConstantComposite %v4uint %uint_1073532109 %uint_1064900231 %uint_1052770304 %uint_1044750795 %1535 = OpConstantComposite %v4uint %uint_1056964608 %uint_1056964608 %uint_1056964608 %uint_1056964608 %uint_1073741824 = OpConstant %uint 1073741824 %1542 = OpConstantComposite %v4uint %uint_1073741824 %uint_1073741824 %uint_1073741824 %uint_1073741824 %1544 = OpConstantComposite %v4uint %uint_3212836864 %uint_3212836864 %uint_3212836864 %uint_3212836864 %1556 = OpConstantComposite %v4uint %uint_1077936128 %uint_1077936128 %uint_1077936128 %uint_1077936128 %uint_1048576000 = OpConstant %uint 1048576000 %1564 = OpConstantComposite %v4uint %uint_1048576000 %uint_1048576000 %uint_1048576000 %uint_1048576000 %1777 = OpConstantComposite %v2uint %uint_0 %uint_1065353216 %1866 = OpConstantComposite %v2uint %uint_1065353216 %uint_1065353216 %2043 = OpConstantComposite %v2uint %uint_1065353216 %uint_0 %_ptr_Input_v4float = OpTypePointer Input %v4float %_ptr_Input_v3float = OpTypePointer Input %v3float %_ptr_Input_float = OpTypePointer Input %float %gs_vertex_out = OpVariable %_ptr_Output_s_per_vertex Output %cb0 = OpVariable %_ptr_Uniform_cb0_t Uniform %cb1 = OpVariable %_ptr_Uniform_cb1_t Uniform %cb2 = OpVariable %_ptr_Uniform_cb2_t Uniform %cb4 = OpVariable %_ptr_Uniform_cb4_t Uniform %v0 = OpVariable %_ptr_Input__arr_v4float_uint_1 Input %v1 = OpVariable %_ptr_Input__arr_v3float_uint_1 Input %v2 = OpVariable %_ptr_Input__arr_v4float_uint_1 Input %v3 = OpVariable %_ptr_Input__arr_float_uint_1 Input %r0 = OpVariable %_ptr_Private_v4float Private %r1 = OpVariable %_ptr_Private_v4float Private %r2 = OpVariable %_ptr_Private_v4float Private %r3 = OpVariable %_ptr_Private_v4float Private %r4 = OpVariable %_ptr_Private_v4float Private %r5 = OpVariable %_ptr_Private_v4float Private %r6 = OpVariable %_ptr_Private_v4float Private %x0 = OpVariable %_ptr_Private__arr_v4float_uint_16 Private %x1 = OpVariable %_ptr_Private__arr_v4float_uint_16 Private %shader_in = OpVariable %_ptr_Private__arr__arr_v4float_uint_4_uint_1 Private %gs_vertex_in = OpVariable %_ptr_Input__arr_s_per_vertex_0_uint_1 Input %o0 = OpVariable %_ptr_Output_v4float Output %o1 = OpVariable %_ptr_Output_v3float Output %o2 = OpVariable %_ptr_Output_v3float Output %o3 = OpVariable %_ptr_Output_v3float Output %gs_main = OpFunction %void None %11 %12 = OpLabel %77 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_0 %78 = OpLoad %v4float %77 %79 = OpVectorShuffle %v3float %78 %78 0 1 2 %80 = OpFNegate %v3float %79 %81 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_0 %82 = OpLoad %v4float %81 %83 = OpVectorShuffle %v3float %82 %82 0 1 2 %84 = OpFNegate %v3float %83 %85 = OpDot %float %80 %84 %86 = OpLoad %v4float %r0 %87 = OpCompositeInsert %v4float %85 %86 0 OpStore %r0 %87 %88 = OpLoad %v4float %r0 %89 = OpCompositeExtract %float %88 0 %90 = OpExtInst %float %1 Sqrt %89 %91 = OpLoad %v4float %r0 %92 = OpCompositeInsert %v4float %90 %91 0 OpStore %r0 %92 %93 = OpLoad %v4float %r0 %94 = OpCompositeExtract %float %93 0 %97 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_37 %100 = OpAccessChain %_ptr_Uniform_float %97 %uint_0 %101 = OpLoad %float %100 %102 = OpFOrdLessThan %bool %94 %101 %104 = OpSelect %uint %102 %uint_4294967295 %uint_0 %105 = OpBitcast %float %104 %106 = OpLoad %v4float %r0 %107 = OpCompositeInsert %v4float %105 %106 1 OpStore %r0 %107 %108 = OpBitcast %float %uint_0 %109 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_0 %110 = OpLoad %v4float %109 %111 = OpCompositeExtract %float %110 3 %112 = OpFOrdNotEqual %bool %108 %111 %113 = OpSelect %uint %112 %uint_4294967295 %uint_0 %114 = OpBitcast %float %113 %115 = OpLoad %v4float %r0 %116 = OpCompositeInsert %v4float %114 %115 2 OpStore %r0 %116 %117 = OpLoad %v4float %r0 %118 = OpCompositeExtract %float %117 2 %119 = OpBitcast %uint %118 %120 = OpLoad %v4float %r0 %121 = OpCompositeExtract %float %120 1 %122 = OpBitcast %uint %121 %123 = OpBitwiseAnd %uint %119 %122 %124 = OpBitcast %float %123 %125 = OpLoad %v4float %r0 %126 = OpCompositeInsert %v4float %124 %125 1 OpStore %r0 %126 %127 = OpLoad %v4float %r0 %128 = OpCompositeExtract %float %127 1 %129 = OpBitcast %uint %128 %130 = OpINotEqual %bool %129 %uint_0 OpSelectionMerge %132 None OpBranchConditional %130 %131 %132 %131 = OpLabel %135 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_3 %136 = OpLoad %v4float %135 %137 = OpCompositeExtract %float %136 0 %138 = OpBitcast %uint %137 %139 = OpBitwiseAnd %uint %uint_255 %138 %140 = OpBitcast %float %139 %141 = OpLoad %v4float %r0 %142 = OpCompositeInsert %v4float %140 %141 1 OpStore %r0 %142 %143 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_3 %144 = OpLoad %v4float %143 %145 = OpCompositeExtract %float %144 0 %146 = OpBitcast %uint %145 %148 = OpShiftRightLogical %uint %146 %uint_8 %149 = OpBitcast %float %148 %150 = OpLoad %v4float %r0 %151 = OpCompositeInsert %v4float %149 %150 2 OpStore %r0 %151 %152 = OpLoad %v4float %r0 %153 = OpCompositeExtract %float %152 2 %154 = OpBitcast %uint %153 %156 = OpBitwiseXor %uint %154 %uint_123459876 %157 = OpBitcast %float %156 %158 = OpLoad %v4float %r0 %159 = OpCompositeInsert %v4float %157 %158 3 OpStore %r0 %159 %160 = OpLoad %v4float %r0 %161 = OpCompositeExtract %float %160 3 %162 = OpBitcast %uint %161 %164 = OpUDiv %uint %162 %uint_127773 %165 = OpBitcast %float %164 %166 = OpLoad %v4float %r1 %167 = OpCompositeInsert %v4float %165 %166 0 OpStore %r1 %167 %168 = OpLoad %v4float %r1 %169 = OpCompositeExtract %float %168 0 %170 = OpBitcast %int %169 %172 = OpBitcast %int %uint_4294964460 %173 = OpIMul %int %170 %172 %174 = OpBitcast %float %173 %175 = OpLoad %v4float %r1 %176 = OpCompositeInsert %v4float %174 %175 1 OpStore %r1 %176 %177 = OpLoad %v4float %r1 %178 = OpCompositeExtract %float %177 0 %179 = OpBitcast %int %178 %181 = OpBitcast %int %uint_4294839523 %182 = OpLoad %v4float %r0 %183 = OpCompositeExtract %float %182 3 %184 = OpBitcast %int %183 %185 = OpIMul %int %179 %181 %186 = OpIAdd %int %185 %184 %187 = OpBitcast %float %186 %188 = OpLoad %v4float %r0 %189 = OpCompositeInsert %v4float %187 %188 3 OpStore %r0 %189 %191 = OpBitcast %int %uint_16807 %192 = OpLoad %v4float %r0 %193 = OpCompositeExtract %float %192 3 %194 = OpBitcast %int %193 %195 = OpLoad %v4float %r1 %196 = OpCompositeExtract %float %195 1 %197 = OpBitcast %int %196 %198 = OpIMul %int %191 %194 %199 = OpIAdd %int %198 %197 %200 = OpBitcast %float %199 %201 = OpLoad %v4float %r0 %202 = OpCompositeInsert %v4float %200 %201 3 OpStore %r0 %202 %203 = OpLoad %v4float %r0 %204 = OpCompositeExtract %float %203 3 %205 = OpBitcast %int %204 %206 = OpBitcast %int %uint_0 %207 = OpSLessThan %bool %205 %206 %208 = OpSelect %uint %207 %uint_4294967295 %uint_0 %209 = OpBitcast %float %208 %210 = OpLoad %v4float %r1 %211 = OpCompositeInsert %v4float %209 %210 0 OpStore %r1 %211 %212 = OpLoad %v4float %r0 %213 = OpCompositeExtract %float %212 3 %214 = OpBitcast %int %213 %216 = OpBitcast %int %uint_2147483647 %217 = OpIAdd %int %214 %216 %218 = OpBitcast %float %217 %219 = OpLoad %v4float %r1 %220 = OpCompositeInsert %v4float %218 %219 1 OpStore %r1 %220 %221 = OpLoad %v4float %r1 %222 = OpCompositeExtract %float %221 0 %223 = OpBitcast %uint %222 %224 = OpLoad %v4float %r1 %225 = OpCompositeExtract %float %224 1 %226 = OpLoad %v4float %r0 %227 = OpCompositeExtract %float %226 3 %228 = OpINotEqual %bool %223 %uint_0 %229 = OpSelect %float %228 %225 %227 %230 = OpLoad %v4float %r0 %231 = OpCompositeInsert %v4float %229 %230 3 OpStore %r0 %231 %232 = OpLoad %v4float %r0 %233 = OpCompositeExtract %float %232 3 %234 = OpBitcast %uint %233 %235 = OpBitwiseXor %uint %234 %uint_0 %236 = OpBitcast %float %235 %237 = OpLoad %v4float %r0 %238 = OpCompositeInsert %v4float %236 %237 3 OpStore %r0 %238 %239 = OpLoad %v4float %r0 %240 = OpCompositeExtract %float %239 3 %241 = OpBitcast %uint %240 %242 = OpUDiv %uint %241 %uint_127773 %243 = OpBitcast %float %242 %244 = OpLoad %v4float %r1 %245 = OpCompositeInsert %v4float %243 %244 0 OpStore %r1 %245 %246 = OpLoad %v4float %r1 %247 = OpCompositeExtract %float %246 0 %248 = OpBitcast %int %247 %249 = OpBitcast %int %uint_4294964460 %250 = OpIMul %int %248 %249 %251 = OpBitcast %float %250 %252 = OpLoad %v4float %r1 %253 = OpCompositeInsert %v4float %251 %252 1 OpStore %r1 %253 %254 = OpLoad %v4float %r1 %255 = OpCompositeExtract %float %254 0 %256 = OpBitcast %int %255 %257 = OpBitcast %int %uint_4294839523 %258 = OpLoad %v4float %r0 %259 = OpCompositeExtract %float %258 3 %260 = OpBitcast %int %259 %261 = OpIMul %int %256 %257 %262 = OpIAdd %int %261 %260 %263 = OpBitcast %float %262 %264 = OpLoad %v4float %r0 %265 = OpCompositeInsert %v4float %263 %264 3 OpStore %r0 %265 %266 = OpBitcast %int %uint_16807 %267 = OpLoad %v4float %r0 %268 = OpCompositeExtract %float %267 3 %269 = OpBitcast %int %268 %270 = OpLoad %v4float %r1 %271 = OpCompositeExtract %float %270 1 %272 = OpBitcast %int %271 %273 = OpIMul %int %266 %269 %274 = OpIAdd %int %273 %272 %275 = OpBitcast %float %274 %276 = OpLoad %v4float %r0 %277 = OpCompositeInsert %v4float %275 %276 3 OpStore %r0 %277 %278 = OpLoad %v4float %r0 %279 = OpCompositeExtract %float %278 3 %280 = OpBitcast %int %279 %281 = OpBitcast %int %uint_0 %282 = OpSLessThan %bool %280 %281 %283 = OpSelect %uint %282 %uint_4294967295 %uint_0 %284 = OpBitcast %float %283 %285 = OpLoad %v4float %r1 %286 = OpCompositeInsert %v4float %284 %285 0 OpStore %r1 %286 %287 = OpLoad %v4float %r0 %288 = OpCompositeExtract %float %287 3 %289 = OpBitcast %int %288 %290 = OpBitcast %int %uint_2147483647 %291 = OpIAdd %int %289 %290 %292 = OpBitcast %float %291 %293 = OpLoad %v4float %r1 %294 = OpCompositeInsert %v4float %292 %293 1 OpStore %r1 %294 %295 = OpLoad %v4float %r1 %296 = OpCompositeExtract %float %295 0 %297 = OpBitcast %uint %296 %298 = OpLoad %v4float %r1 %299 = OpCompositeExtract %float %298 1 %300 = OpLoad %v4float %r0 %301 = OpCompositeExtract %float %300 3 %302 = OpINotEqual %bool %297 %uint_0 %303 = OpSelect %float %302 %299 %301 %304 = OpLoad %v4float %r0 %305 = OpCompositeInsert %v4float %303 %304 3 OpStore %r0 %305 %306 = OpLoad %v4float %r0 %308 = OpVectorShuffle %v2float %306 %306 3 3 %310 = OpBitcast %v2uint %308 %312 = OpBitwiseXor %v2uint %310 %311 %313 = OpBitcast %v2float %312 %314 = OpLoad %v4float %r1 %315 = OpVectorShuffle %v4float %314 %313 4 5 2 3 OpStore %r1 %315 %316 = OpLoad %v4float %r1 %317 = OpCompositeExtract %float %316 0 %318 = OpBitcast %int %317 %319 = OpConvertSToF %float %318 %320 = OpLoad %v4float %r0 %321 = OpCompositeInsert %v4float %319 %320 3 OpStore %r0 %321 %322 = OpLoad %v4float %r0 %323 = OpCompositeExtract %float %322 3 %325 = OpBitcast %float %uint_805306368 %326 = OpFMul %float %323 %325 %327 = OpLoad %v4float %r0 %328 = OpCompositeInsert %v4float %326 %327 3 OpStore %r0 %328 %329 = OpLoad %v4float %r0 %330 = OpCompositeExtract %float %329 1 %331 = OpBitcast %int %330 %332 = OpAccessChain %_ptr_Uniform_v4float %cb4 %int_0 %331 %334 = OpAccessChain %_ptr_Uniform_float %332 %uint_3 %335 = OpLoad %float %334 %336 = OpBitcast %uint %335 %337 = OpConvertUToF %float %336 %338 = OpLoad %v4float %r1 %339 = OpCompositeInsert %v4float %337 %338 0 OpStore %r1 %339 %340 = OpLoad %v4float %r0 %341 = OpCompositeExtract %float %340 3 %342 = OpLoad %v4float %r1 %343 = OpCompositeExtract %float %342 0 %344 = OpFMul %float %341 %343 %345 = OpLoad %v4float %r0 %346 = OpCompositeInsert %v4float %344 %345 3 OpStore %r0 %346 %347 = OpLoad %v4float %r1 %348 = OpCompositeExtract %float %347 0 %349 = OpLoad %v4float %r0 %350 = OpCompositeExtract %float %349 3 %351 = OpExtInst %float %1 NMin %348 %350 %352 = OpLoad %v4float %r0 %353 = OpCompositeInsert %v4float %351 %352 3 OpStore %r0 %353 %354 = OpLoad %v4float %r0 %355 = OpCompositeExtract %float %354 3 %356 = OpConvertFToU %uint %355 %357 = OpBitcast %float %356 %358 = OpLoad %v4float %r0 %359 = OpCompositeInsert %v4float %357 %358 3 OpStore %r0 %359 %360 = OpLoad %v4float %r1 %361 = OpCompositeExtract %float %360 1 %362 = OpBitcast %uint %361 %363 = OpUDiv %uint %362 %uint_127773 %364 = OpBitcast %float %363 %365 = OpLoad %v4float %r1 %366 = OpCompositeInsert %v4float %364 %365 0 OpStore %r1 %366 %367 = OpLoad %v4float %r1 %368 = OpCompositeExtract %float %367 0 %369 = OpBitcast %int %368 %370 = OpBitcast %int %uint_4294964460 %371 = OpIMul %int %369 %370 %372 = OpBitcast %float %371 %373 = OpLoad %v4float %r1 %374 = OpCompositeInsert %v4float %372 %373 2 OpStore %r1 %374 %375 = OpLoad %v4float %r1 %376 = OpCompositeExtract %float %375 0 %377 = OpBitcast %int %376 %378 = OpBitcast %int %uint_4294839523 %379 = OpLoad %v4float %r1 %380 = OpCompositeExtract %float %379 1 %381 = OpBitcast %int %380 %382 = OpIMul %int %377 %378 %383 = OpIAdd %int %382 %381 %384 = OpBitcast %float %383 %385 = OpLoad %v4float %r1 %386 = OpCompositeInsert %v4float %384 %385 0 OpStore %r1 %386 %387 = OpBitcast %int %uint_16807 %388 = OpLoad %v4float %r1 %389 = OpCompositeExtract %float %388 0 %390 = OpBitcast %int %389 %391 = OpLoad %v4float %r1 %392 = OpCompositeExtract %float %391 2 %393 = OpBitcast %int %392 %394 = OpIMul %int %387 %390 %395 = OpIAdd %int %394 %393 %396 = OpBitcast %float %395 %397 = OpLoad %v4float %r1 %398 = OpCompositeInsert %v4float %396 %397 0 OpStore %r1 %398 %399 = OpLoad %v4float %r1 %400 = OpCompositeExtract %float %399 0 %401 = OpBitcast %int %400 %402 = OpBitcast %int %uint_0 %403 = OpSLessThan %bool %401 %402 %404 = OpSelect %uint %403 %uint_4294967295 %uint_0 %405 = OpBitcast %float %404 %406 = OpLoad %v4float %r1 %407 = OpCompositeInsert %v4float %405 %406 1 OpStore %r1 %407 %408 = OpLoad %v4float %r1 %409 = OpCompositeExtract %float %408 0 %410 = OpBitcast %int %409 %411 = OpBitcast %int %uint_2147483647 %412 = OpIAdd %int %410 %411 %413 = OpBitcast %float %412 %414 = OpLoad %v4float %r1 %415 = OpCompositeInsert %v4float %413 %414 2 OpStore %r1 %415 %416 = OpLoad %v4float %r1 %417 = OpCompositeExtract %float %416 1 %418 = OpBitcast %uint %417 %419 = OpLoad %v4float %r1 %420 = OpCompositeExtract %float %419 2 %421 = OpLoad %v4float %r1 %422 = OpCompositeExtract %float %421 0 %423 = OpINotEqual %bool %418 %uint_0 %424 = OpSelect %float %423 %420 %422 %425 = OpLoad %v4float %r1 %426 = OpCompositeInsert %v4float %424 %425 0 OpStore %r1 %426 %427 = OpLoad %v4float %r1 %428 = OpVectorShuffle %v2float %427 %427 0 0 %429 = OpBitcast %v2uint %428 %430 = OpBitwiseXor %v2uint %429 %311 %431 = OpBitcast %v2float %430 %432 = OpLoad %v4float %r1 %433 = OpVectorShuffle %v4float %432 %431 4 5 2 3 OpStore %r1 %433 %434 = OpLoad %v4float %r1 %435 = OpCompositeExtract %float %434 0 %436 = OpBitcast %int %435 %437 = OpConvertSToF %float %436 %438 = OpLoad %v4float %r1 %439 = OpCompositeInsert %v4float %437 %438 0 OpStore %r1 %439 %440 = OpLoad %v4float %r1 %441 = OpCompositeExtract %float %440 0 %442 = OpFNegate %float %441 %443 = OpBitcast %float %uint_805306368 %445 = OpBitcast %float %uint_1065353216 %446 = OpExtInst %float %1 Fma %442 %443 %445 %447 = OpLoad %v4float %r1 %448 = OpCompositeInsert %v4float %446 %447 2 OpStore %r1 %448 %449 = OpLoad %v4float %r1 %450 = OpCompositeExtract %float %449 0 %451 = OpBitcast %float %uint_805306368 %452 = OpLoad %v4float %r1 %453 = OpCompositeExtract %float %452 2 %454 = OpFNegate %float %453 %455 = OpExtInst %float %1 Fma %450 %451 %454 %456 = OpLoad %v4float %r1 %457 = OpCompositeInsert %v4float %455 %456 0 OpStore %r1 %457 %458 = OpLoad %v4float %r1 %459 = OpCompositeExtract %float %458 0 %460 = OpLoad %v4float %r0 %461 = OpCompositeExtract %float %460 1 %462 = OpBitcast %int %461 %463 = OpAccessChain %_ptr_Uniform_v4float %cb4 %int_0 %462 %465 = OpAccessChain %_ptr_Uniform_float %463 %uint_2 %466 = OpLoad %float %465 %467 = OpFMul %float %459 %466 %468 = OpLoad %v4float %r1 %469 = OpCompositeInsert %v4float %467 %468 0 OpStore %r1 %469 %470 = OpLoad %v4float %r1 %471 = OpVectorShuffle %v2float %470 %470 0 0 %472 = OpLoad %v4float %r0 %473 = OpCompositeExtract %float %472 1 %474 = OpBitcast %int %473 %475 = OpAccessChain %_ptr_Uniform_v4float %cb4 %int_0 %474 %476 = OpAccessChain %_ptr_Uniform_float %475 %uint_0 %477 = OpLoad %float %476 %478 = OpAccessChain %_ptr_Uniform_float %475 %uint_1 %479 = OpLoad %float %478 %480 = OpCompositeConstruct %v2float %477 %479 %481 = OpLoad %v4float %r0 %482 = OpCompositeExtract %float %481 1 %483 = OpBitcast %int %482 %484 = OpAccessChain %_ptr_Uniform_v4float %cb4 %int_0 %483 %485 = OpAccessChain %_ptr_Uniform_float %484 %uint_0 %486 = OpLoad %float %485 %487 = OpAccessChain %_ptr_Uniform_float %484 %uint_1 %488 = OpLoad %float %487 %489 = OpCompositeConstruct %v2float %486 %488 %490 = OpExtInst %v2float %1 Fma %471 %480 %489 %491 = OpLoad %v4float %r1 %492 = OpVectorShuffle %v4float %491 %490 4 1 5 3 OpStore %r1 %492 %494 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_1 %495 = OpLoad %v4float %494 %496 = OpCompositeExtract %float %495 1 %498 = OpBitcast %float %uint_1065336439 %499 = OpFOrdLessThan %bool %496 %498 %500 = OpSelect %uint %499 %uint_4294967295 %uint_0 %501 = OpBitcast %float %500 %502 = OpLoad %v4float %r0 %503 = OpCompositeInsert %v4float %501 %502 1 OpStore %r0 %503 %504 = OpLoad %v4float %r0 %505 = OpVectorShuffle %v3float %504 %504 1 1 1 %507 = OpBitcast %v3uint %505 %509 = OpBitcast %v3float %508 %511 = OpBitcast %v3float %510 %514 = OpINotEqual %v3bool %507 %513 %515 = OpSelect %v3float %514 %509 %511 %516 = OpLoad %v4float %r2 %517 = OpVectorShuffle %v4float %516 %515 4 5 6 3 OpStore %r2 %517 %518 = OpLoad %v4float %r2 %519 = OpVectorShuffle %v3float %518 %518 0 1 2 %520 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_1 %521 = OpLoad %v4float %520 %522 = OpVectorShuffle %v3float %521 %521 1 2 0 %523 = OpFMul %v3float %519 %522 %524 = OpLoad %v4float %r3 %525 = OpVectorShuffle %v4float %524 %523 4 5 6 3 OpStore %r3 %525 %526 = OpLoad %v4float %r2 %527 = OpVectorShuffle %v3float %526 %526 2 0 1 %528 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_1 %529 = OpLoad %v4float %528 %530 = OpVectorShuffle %v3float %529 %529 2 0 1 %531 = OpLoad %v4float %r3 %532 = OpVectorShuffle %v3float %531 %531 0 1 2 %533 = OpFNegate %v3float %532 %534 = OpExtInst %v3float %1 Fma %527 %530 %533 %535 = OpLoad %v4float %r2 %536 = OpVectorShuffle %v4float %535 %534 4 5 6 3 OpStore %r2 %536 %537 = OpLoad %v4float %r2 %538 = OpVectorShuffle %v3float %537 %537 0 1 2 %539 = OpLoad %v4float %r2 %540 = OpVectorShuffle %v3float %539 %539 0 1 2 %541 = OpDot %float %538 %540 %542 = OpLoad %v4float %r0 %543 = OpCompositeInsert %v4float %541 %542 1 OpStore %r0 %543 %544 = OpLoad %v4float %r0 %545 = OpCompositeExtract %float %544 1 %546 = OpExtInst %float %1 InverseSqrt %545 %547 = OpLoad %v4float %r0 %548 = OpCompositeInsert %v4float %546 %547 1 OpStore %r0 %548 %549 = OpLoad %v4float %r0 %550 = OpVectorShuffle %v3float %549 %549 1 1 1 %551 = OpLoad %v4float %r2 %552 = OpVectorShuffle %v3float %551 %551 0 1 2 %553 = OpFMul %v3float %550 %552 %554 = OpLoad %v4float %r2 %555 = OpVectorShuffle %v4float %554 %553 4 5 6 3 OpStore %r2 %555 %556 = OpLoad %v4float %r2 %557 = OpVectorShuffle %v3float %556 %556 1 2 0 %558 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_1 %559 = OpLoad %v4float %558 %560 = OpVectorShuffle %v3float %559 %559 2 0 1 %561 = OpFMul %v3float %557 %560 %562 = OpLoad %v4float %r3 %563 = OpVectorShuffle %v4float %562 %561 4 5 6 3 OpStore %r3 %563 %564 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_1 %565 = OpLoad %v4float %564 %566 = OpVectorShuffle %v3float %565 %565 1 2 0 %567 = OpLoad %v4float %r2 %568 = OpVectorShuffle %v3float %567 %567 2 0 1 %569 = OpLoad %v4float %r3 %570 = OpVectorShuffle %v3float %569 %569 0 1 2 %571 = OpFNegate %v3float %570 %572 = OpExtInst %v3float %1 Fma %566 %568 %571 %573 = OpLoad %v4float %r3 %574 = OpVectorShuffle %v4float %573 %572 4 5 6 3 OpStore %r3 %574 %575 = OpLoad %v4float %r1 %576 = OpCompositeExtract %float %575 1 %577 = OpBitcast %uint %576 %578 = OpUDiv %uint %577 %uint_127773 %579 = OpBitcast %float %578 %580 = OpLoad %v4float %r0 %581 = OpCompositeInsert %v4float %579 %580 1 OpStore %r0 %581 %582 = OpLoad %v4float %r0 %583 = OpCompositeExtract %float %582 1 %584 = OpBitcast %int %583 %585 = OpBitcast %int %uint_4294964460 %586 = OpIMul %int %584 %585 %587 = OpBitcast %float %586 %588 = OpLoad %v4float %r1 %589 = OpCompositeInsert %v4float %587 %588 3 OpStore %r1 %589 %590 = OpLoad %v4float %r0 %591 = OpCompositeExtract %float %590 1 %592 = OpBitcast %int %591 %593 = OpBitcast %int %uint_4294839523 %594 = OpLoad %v4float %r1 %595 = OpCompositeExtract %float %594 1 %596 = OpBitcast %int %595 %597 = OpIMul %int %592 %593 %598 = OpIAdd %int %597 %596 %599 = OpBitcast %float %598 %600 = OpLoad %v4float %r0 %601 = OpCompositeInsert %v4float %599 %600 1 OpStore %r0 %601 %602 = OpBitcast %int %uint_16807 %603 = OpLoad %v4float %r0 %604 = OpCompositeExtract %float %603 1 %605 = OpBitcast %int %604 %606 = OpLoad %v4float %r1 %607 = OpCompositeExtract %float %606 3 %608 = OpBitcast %int %607 %609 = OpIMul %int %602 %605 %610 = OpIAdd %int %609 %608 %611 = OpBitcast %float %610 %612 = OpLoad %v4float %r0 %613 = OpCompositeInsert %v4float %611 %612 1 OpStore %r0 %613 %614 = OpLoad %v4float %r0 %615 = OpCompositeExtract %float %614 1 %616 = OpBitcast %int %615 %617 = OpBitcast %int %uint_0 %618 = OpSLessThan %bool %616 %617 %619 = OpSelect %uint %618 %uint_4294967295 %uint_0 %620 = OpBitcast %float %619 %621 = OpLoad %v4float %r1 %622 = OpCompositeInsert %v4float %620 %621 1 OpStore %r1 %622 %623 = OpLoad %v4float %r0 %624 = OpCompositeExtract %float %623 1 %625 = OpBitcast %int %624 %626 = OpBitcast %int %uint_2147483647 %627 = OpIAdd %int %625 %626 %628 = OpBitcast %float %627 %629 = OpLoad %v4float %r1 %630 = OpCompositeInsert %v4float %628 %629 3 OpStore %r1 %630 %631 = OpLoad %v4float %r1 %632 = OpCompositeExtract %float %631 1 %633 = OpBitcast %uint %632 %634 = OpLoad %v4float %r1 %635 = OpCompositeExtract %float %634 3 %636 = OpLoad %v4float %r0 %637 = OpCompositeExtract %float %636 1 %638 = OpINotEqual %bool %633 %uint_0 %639 = OpSelect %float %638 %635 %637 %640 = OpLoad %v4float %r0 %641 = OpCompositeInsert %v4float %639 %640 1 OpStore %r0 %641 %642 = OpLoad %v4float %r0 %643 = OpCompositeExtract %float %642 1 %644 = OpBitcast %uint %643 %645 = OpBitwiseXor %uint %644 %uint_123459876 %646 = OpBitcast %float %645 %647 = OpLoad %v4float %r0 %648 = OpCompositeInsert %v4float %646 %647 1 OpStore %r0 %648 %649 = OpLoad %v4float %r0 %650 = OpCompositeExtract %float %649 1 %651 = OpBitcast %int %650 %652 = OpConvertSToF %float %651 %653 = OpLoad %v4float %r0 %654 = OpCompositeInsert %v4float %652 %653 1 OpStore %r0 %654 %655 = OpLoad %v4float %r0 %656 = OpCompositeExtract %float %655 1 %658 = OpBitcast %float %uint_826871771 %659 = OpFMul %float %656 %658 %660 = OpLoad %v4float %r0 %661 = OpCompositeInsert %v4float %659 %660 1 OpStore %r0 %661 %662 = OpLoad %v4float %r0 %663 = OpVectorShuffle %v4float %662 %662 1 1 1 1 %664 = OpCompositeExtract %float %663 0 %665 = OpExtInst %float %1 Sin %664 %666 = OpLoad %v4float %r4 %667 = OpCompositeInsert %v4float %665 %666 0 OpStore %r4 %667 %668 = OpCompositeExtract %float %663 0 %669 = OpExtInst %float %1 Cos %668 %670 = OpLoad %v4float %r5 %671 = OpCompositeInsert %v4float %669 %670 0 OpStore %r5 %671 %672 = OpLoad %v4float %r3 %673 = OpVectorShuffle %v3float %672 %672 0 1 2 %674 = OpLoad %v4float %r4 %675 = OpVectorShuffle %v3float %674 %674 0 0 0 %676 = OpFMul %v3float %673 %675 %677 = OpLoad %v4float %r4 %678 = OpVectorShuffle %v4float %677 %676 0 4 5 6 OpStore %r4 %678 %679 = OpLoad %v4float %r5 %680 = OpVectorShuffle %v3float %679 %679 0 0 0 %681 = OpLoad %v4float %r2 %682 = OpVectorShuffle %v3float %681 %681 0 1 2 %683 = OpLoad %v4float %r4 %684 = OpVectorShuffle %v3float %683 %683 1 2 3 %685 = OpExtInst %v3float %1 Fma %680 %682 %684 %686 = OpLoad %v4float %r4 %687 = OpVectorShuffle %v4float %686 %685 0 4 5 6 OpStore %r4 %687 %688 = OpLoad %v4float %r3 %689 = OpVectorShuffle %v3float %688 %688 0 1 2 %690 = OpLoad %v4float %r5 %691 = OpVectorShuffle %v3float %690 %690 0 0 0 %692 = OpFMul %v3float %689 %691 %693 = OpLoad %v4float %r3 %694 = OpVectorShuffle %v4float %693 %692 4 5 6 3 OpStore %r3 %694 %695 = OpLoad %v4float %r4 %696 = OpVectorShuffle %v3float %695 %695 0 0 0 %697 = OpFNegate %v3float %696 %698 = OpLoad %v4float %r2 %699 = OpVectorShuffle %v3float %698 %698 0 1 2 %700 = OpLoad %v4float %r3 %701 = OpVectorShuffle %v3float %700 %700 0 1 2 %702 = OpExtInst %v3float %1 Fma %697 %699 %701 %703 = OpLoad %v4float %r2 %704 = OpVectorShuffle %v4float %703 %702 4 5 6 3 OpStore %r2 %704 %705 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_37 %706 = OpAccessChain %_ptr_Uniform_float %705 %uint_0 %707 = OpLoad %float %706 %709 = OpBitcast %float %uint_1056964608 %710 = OpFMul %float %707 %709 %711 = OpLoad %v4float %r0 %712 = OpCompositeInsert %v4float %710 %711 1 OpStore %r0 %712 %713 = OpBitcast %float %uint_1065353216 %714 = OpLoad %v4float %r0 %715 = OpCompositeExtract %float %714 1 %716 = OpFDiv %float %713 %715 %717 = OpLoad %v4float %r0 %718 = OpCompositeInsert %v4float %716 %717 1 OpStore %r0 %718 %719 = OpLoad %v4float %r0 %720 = OpCompositeExtract %float %719 1 %721 = OpLoad %v4float %r0 %722 = OpCompositeExtract %float %721 0 %723 = OpFMul %float %720 %722 %726 = OpExtInst %float %1 NClamp %723 %float_0 %float_1 %727 = OpLoad %v4float %r1 %728 = OpCompositeInsert %v4float %726 %727 1 OpStore %r1 %728 %729 = OpLoad %v4float %r1 %730 = OpCompositeExtract %float %729 1 %732 = OpBitcast %float %uint_3221225472 %734 = OpBitcast %float %uint_1077936128 %735 = OpExtInst %float %1 Fma %730 %732 %734 %736 = OpLoad %v4float %r1 %737 = OpCompositeInsert %v4float %735 %736 3 OpStore %r1 %737 %738 = OpLoad %v4float %r1 %739 = OpCompositeExtract %float %738 1 %740 = OpLoad %v4float %r1 %741 = OpCompositeExtract %float %740 1 %742 = OpFMul %float %739 %741 %743 = OpLoad %v4float %r1 %744 = OpCompositeInsert %v4float %742 %743 1 OpStore %r1 %744 %745 = OpLoad %v4float %r1 %746 = OpCompositeExtract %float %745 1 %747 = OpLoad %v4float %r1 %748 = OpCompositeExtract %float %747 3 %749 = OpFMul %float %746 %748 %750 = OpLoad %v4float %r1 %751 = OpCompositeInsert %v4float %749 %750 1 OpStore %r1 %751 %752 = OpLoad %v4float %r1 %753 = OpCompositeExtract %float %752 1 %754 = OpBitcast %float %uint_1056964608 %755 = OpBitcast %float %uint_1065353216 %756 = OpExtInst %float %1 Fma %753 %754 %755 %757 = OpLoad %v4float %r1 %758 = OpCompositeInsert %v4float %756 %757 1 OpStore %r1 %758 %759 = OpLoad %v4float %r0 %760 = OpCompositeExtract %float %759 0 %761 = OpFNegate %float %760 %762 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_37 %763 = OpAccessChain %_ptr_Uniform_float %762 %uint_0 %764 = OpLoad %float %763 %765 = OpFAdd %float %761 %764 %766 = OpLoad %v4float %r1 %767 = OpCompositeInsert %v4float %765 %766 3 OpStore %r1 %767 %768 = OpLoad %v4float %r0 %769 = OpCompositeExtract %float %768 1 %770 = OpLoad %v4float %r1 %771 = OpCompositeExtract %float %770 3 %772 = OpFMul %float %769 %771 %773 = OpExtInst %float %1 NClamp %772 %float_0 %float_1 %774 = OpLoad %v4float %r0 %775 = OpCompositeInsert %v4float %773 %774 1 OpStore %r0 %775 %776 = OpLoad %v4float %r0 %777 = OpCompositeExtract %float %776 1 %778 = OpBitcast %float %uint_3221225472 %779 = OpBitcast %float %uint_1077936128 %780 = OpExtInst %float %1 Fma %777 %778 %779 %781 = OpLoad %v4float %r1 %782 = OpCompositeInsert %v4float %780 %781 3 OpStore %r1 %782 %783 = OpLoad %v4float %r0 %784 = OpCompositeExtract %float %783 1 %785 = OpLoad %v4float %r0 %786 = OpCompositeExtract %float %785 1 %787 = OpFMul %float %784 %786 %788 = OpLoad %v4float %r0 %789 = OpCompositeInsert %v4float %787 %788 1 OpStore %r0 %789 %790 = OpLoad %v4float %r0 %791 = OpCompositeExtract %float %790 1 %792 = OpLoad %v4float %r1 %793 = OpCompositeExtract %float %792 3 %794 = OpFMul %float %791 %793 %795 = OpLoad %v4float %r0 %796 = OpCompositeInsert %v4float %794 %795 1 OpStore %r0 %796 %797 = OpLoad %v4float %r0 %798 = OpCompositeExtract %float %797 1 %800 = OpBitcast %float %uint_1069547520 %801 = OpFMul %float %798 %800 %802 = OpLoad %v4float %r0 %803 = OpCompositeInsert %v4float %801 %802 1 OpStore %r0 %803 %804 = OpLoad %v4float %r0 %805 = OpCompositeExtract %float %804 1 %806 = OpLoad %v4float %r1 %807 = OpCompositeExtract %float %806 1 %808 = OpExtInst %float %1 NMin %805 %807 %809 = OpLoad %v4float %r0 %810 = OpCompositeInsert %v4float %808 %809 1 OpStore %r0 %810 %811 = OpLoad %v4float %r0 %812 = OpVectorShuffle %v2float %811 %811 1 1 %813 = OpLoad %v4float %r1 %814 = OpVectorShuffle %v2float %813 %813 0 2 %815 = OpFMul %v2float %812 %814 %816 = OpLoad %v4float %r1 %817 = OpVectorShuffle %v4float %816 %815 4 5 2 3 OpStore %r1 %817 %818 = OpLoad %v4float %r0 %819 = OpCompositeExtract %float %818 0 %820 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_37 %821 = OpAccessChain %_ptr_Uniform_float %820 %uint_1 %822 = OpLoad %float %821 %823 = OpFNegate %float %822 %824 = OpFAdd %float %819 %823 %825 = OpLoad %v4float %r0 %826 = OpCompositeInsert %v4float %824 %825 1 OpStore %r0 %826 %827 = OpLoad %v4float %r0 %828 = OpCompositeExtract %float %827 1 %829 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_37 %830 = OpAccessChain %_ptr_Uniform_float %829 %uint_2 %831 = OpLoad %float %830 %832 = OpFDiv %float %828 %831 %833 = OpExtInst %float %1 NClamp %832 %float_0 %float_1 %834 = OpLoad %v4float %r0 %835 = OpCompositeInsert %v4float %833 %834 1 OpStore %r0 %835 %836 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_37 %837 = OpAccessChain %_ptr_Uniform_float %836 %uint_3 %838 = OpLoad %float %837 %840 = OpBitcast %float %uint_3212836864 %841 = OpFAdd %float %838 %840 %842 = OpLoad %v4float %r1 %843 = OpCompositeInsert %v4float %841 %842 2 OpStore %r1 %843 %844 = OpLoad %v4float %r0 %845 = OpCompositeExtract %float %844 1 %846 = OpLoad %v4float %r1 %847 = OpCompositeExtract %float %846 2 %848 = OpBitcast %float %uint_1065353216 %849 = OpExtInst %float %1 Fma %845 %847 %848 %850 = OpLoad %v4float %r0 %851 = OpCompositeInsert %v4float %849 %850 1 OpStore %r0 %851 %852 = OpLoad %v4float %r0 %853 = OpVectorShuffle %v2float %852 %852 1 1 %854 = OpLoad %v4float %r1 %855 = OpVectorShuffle %v2float %854 %854 0 1 %856 = OpFMul %v2float %853 %855 %857 = OpLoad %v4float %r1 %858 = OpVectorShuffle %v4float %857 %856 4 5 2 3 OpStore %r1 %858 %859 = OpLoad %v4float %r0 %860 = OpCompositeExtract %float %859 0 %861 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_37 %862 = OpAccessChain %_ptr_Uniform_float %861 %uint_2 %863 = OpLoad %float %862 %864 = OpFDiv %float %860 %863 %865 = OpLoad %v4float %r0 %866 = OpCompositeInsert %v4float %864 %865 1 OpStore %r0 %866 %867 = OpLoad %v4float %r0 %868 = OpCompositeExtract %float %867 1 %869 = OpAccessChain %_ptr_Uniform_v4float %cb2 %int_0 %int_0 %870 = OpAccessChain %_ptr_Uniform_float %869 %uint_3 %871 = OpLoad %float %870 %872 = OpFMul %float %868 %871 %873 = OpLoad %v4float %r0 %874 = OpCompositeInsert %v4float %872 %873 1 OpStore %r0 %874 %875 = OpLoad %v4float %r0 %876 = OpCompositeExtract %float %875 1 %878 = OpBitcast %float %uint_1098907648 %879 = OpFMul %float %876 %878 %880 = OpLoad %v4float %r1 %881 = OpCompositeInsert %v4float %879 %880 2 OpStore %r1 %881 %882 = OpLoad %v4float %r1 %883 = OpCompositeExtract %float %882 2 %884 = OpConvertFToS %int %883 %885 = OpBitcast %float %884 %886 = OpLoad %v4float %r1 %887 = OpCompositeInsert %v4float %885 %886 3 OpStore %r1 %887 %888 = OpBitcast %float %uint_0 %889 = OpAccessChain %_ptr_Private_v4float %x0 %int_0 %890 = OpLoad %v4float %889 %891 = OpCompositeInsert %v4float %888 %890 0 OpStore %889 %891 %892 = OpBitcast %float %uint_4 %893 = OpAccessChain %_ptr_Private_v4float %x0 %int_1 %894 = OpLoad %v4float %893 %895 = OpCompositeInsert %v4float %892 %894 0 OpStore %893 %895 %896 = OpBitcast %float %uint_4 %898 = OpAccessChain %_ptr_Private_v4float %x0 %int_2 %899 = OpLoad %v4float %898 %900 = OpCompositeInsert %v4float %896 %899 0 OpStore %898 %900 %901 = OpBitcast %float %uint_2 %902 = OpAccessChain %_ptr_Private_v4float %x0 %int_3 %903 = OpLoad %v4float %902 %904 = OpCompositeInsert %v4float %901 %903 0 OpStore %902 %904 %906 = OpBitcast %float %uint_4294967292 %908 = OpAccessChain %_ptr_Private_v4float %x0 %int_4 %909 = OpLoad %v4float %908 %910 = OpCompositeInsert %v4float %906 %909 0 OpStore %908 %910 %912 = OpBitcast %float %uint_4294967288 %914 = OpAccessChain %_ptr_Private_v4float %x0 %int_5 %915 = OpLoad %v4float %914 %916 = OpCompositeInsert %v4float %912 %915 0 OpStore %914 %916 %917 = OpBitcast %float %uint_4294967288 %919 = OpAccessChain %_ptr_Private_v4float %x0 %int_6 %920 = OpLoad %v4float %919 %921 = OpCompositeInsert %v4float %917 %920 0 OpStore %919 %921 %923 = OpBitcast %float %uint_4294967280 %925 = OpAccessChain %_ptr_Private_v4float %x0 %int_7 %926 = OpLoad %v4float %925 %927 = OpCompositeInsert %v4float %923 %926 0 OpStore %925 %927 %928 = OpBitcast %float %uint_4294967280 %930 = OpAccessChain %_ptr_Private_v4float %x0 %int_8 %931 = OpLoad %v4float %930 %932 = OpCompositeInsert %v4float %928 %931 0 OpStore %930 %932 %934 = OpBitcast %float %uint_4294967264 %936 = OpAccessChain %_ptr_Private_v4float %x0 %int_9 %937 = OpLoad %v4float %936 %938 = OpCompositeInsert %v4float %934 %937 0 OpStore %936 %938 %939 = OpBitcast %float %uint_4294967264 %941 = OpAccessChain %_ptr_Private_v4float %x0 %int_10 %942 = OpLoad %v4float %941 %943 = OpCompositeInsert %v4float %939 %942 0 OpStore %941 %943 %944 = OpBitcast %float %uint_4294967264 %946 = OpAccessChain %_ptr_Private_v4float %x0 %int_11 %947 = OpLoad %v4float %946 %948 = OpCompositeInsert %v4float %944 %947 0 OpStore %946 %948 %949 = OpBitcast %float %uint_4294967264 %951 = OpAccessChain %_ptr_Private_v4float %x0 %int_12 %952 = OpLoad %v4float %951 %953 = OpCompositeInsert %v4float %949 %952 0 OpStore %951 %953 %954 = OpBitcast %float %uint_4294967264 %956 = OpAccessChain %_ptr_Private_v4float %x0 %int_13 %957 = OpLoad %v4float %956 %958 = OpCompositeInsert %v4float %954 %957 0 OpStore %956 %958 %959 = OpBitcast %float %uint_4294967264 %961 = OpAccessChain %_ptr_Private_v4float %x0 %int_14 %962 = OpLoad %v4float %961 %963 = OpCompositeInsert %v4float %959 %962 0 OpStore %961 %963 %964 = OpBitcast %float %uint_4294967264 %966 = OpAccessChain %_ptr_Private_v4float %x0 %int_15 %967 = OpLoad %v4float %966 %968 = OpCompositeInsert %v4float %964 %967 0 OpStore %966 %968 %969 = OpLoad %v4float %r1 %970 = OpCompositeExtract %float %969 3 %971 = OpBitcast %uint %970 %973 = OpExtInst %uint %1 UMin %971 %uint_15 %974 = OpBitcast %float %973 %975 = OpLoad %v4float %r2 %976 = OpCompositeInsert %v4float %974 %975 3 OpStore %r2 %976 %977 = OpLoad %v4float %r2 %978 = OpCompositeExtract %float %977 3 %979 = OpBitcast %int %978 %980 = OpAccessChain %_ptr_Private_v4float %x0 %979 %981 = OpLoad %v4float %980 %982 = OpCompositeExtract %float %981 0 %983 = OpLoad %v4float %r2 %984 = OpCompositeInsert %v4float %982 %983 3 OpStore %r2 %984 %985 = OpBitcast %int %uint_0 %986 = OpLoad %v4float %r2 %987 = OpCompositeExtract %float %986 3 %988 = OpBitcast %int %987 %989 = OpSLessThan %bool %985 %988 %990 = OpSelect %uint %989 %uint_4294967295 %uint_0 %991 = OpBitcast %float %990 %992 = OpLoad %v4float %r3 %993 = OpCompositeInsert %v4float %991 %992 0 OpStore %r3 %993 %994 = OpLoad %v4float %r0 %995 = OpCompositeExtract %float %994 2 %996 = OpBitcast %uint %995 %997 = OpLoad %v4float %r2 %998 = OpCompositeExtract %float %997 3 %999 = OpBitcast %uint %998 %1000 = OpUMod %uint %996 %999 %1001 = OpBitcast %float %1000 %1002 = OpLoad %v4float %r3 %1003 = OpCompositeInsert %v4float %1001 %1002 1 OpStore %r3 %1003 %1004 = OpLoad %v4float %r3 %1005 = OpCompositeExtract %float %1004 1 %1006 = OpBitcast %int %1005 %1007 = OpBitcast %int %uint_0 %1008 = OpIEqual %bool %1006 %1007 %1009 = OpSelect %uint %1008 %uint_4294967295 %uint_0 %1010 = OpBitcast %float %1009 %1011 = OpLoad %v4float %r3 %1012 = OpCompositeInsert %v4float %1010 %1011 1 OpStore %r3 %1012 %1013 = OpLoad %v4float %r0 %1014 = OpCompositeExtract %float %1013 2 %1015 = OpBitcast %int %1014 %1016 = OpBitcast %int %uint_1 %1017 = OpIAdd %int %1015 %1016 %1018 = OpBitcast %float %1017 %1019 = OpLoad %v4float %r3 %1020 = OpCompositeInsert %v4float %1018 %1019 2 OpStore %r3 %1020 %1021 = OpLoad %v4float %r2 %1022 = OpCompositeExtract %float %1021 3 %1023 = OpBitcast %int %1022 %1024 = OpSNegate %int %1023 %1025 = OpLoad %v4float %r2 %1026 = OpCompositeExtract %float %1025 3 %1027 = OpBitcast %int %1026 %1028 = OpExtInst %int %1 SMax %1024 %1027 %1029 = OpBitcast %float %1028 %1030 = OpLoad %v4float %r3 %1031 = OpCompositeInsert %v4float %1029 %1030 3 OpStore %r3 %1031 %1032 = OpLoad %v4float %r3 %1033 = OpCompositeExtract %float %1032 2 %1034 = OpBitcast %uint %1033 %1035 = OpLoad %v4float %r3 %1036 = OpCompositeExtract %float %1035 3 %1037 = OpBitcast %uint %1036 %1038 = OpUMod %uint %1034 %1037 %1039 = OpBitcast %float %1038 %1040 = OpLoad %v4float %r3 %1041 = OpCompositeInsert %v4float %1039 %1040 3 OpStore %r3 %1041 %1042 = OpLoad %v4float %r3 %1043 = OpCompositeExtract %float %1042 3 %1044 = OpBitcast %int %1043 %1045 = OpBitcast %int %uint_0 %1046 = OpINotEqual %bool %1044 %1045 %1047 = OpSelect %uint %1046 %uint_4294967295 %uint_0 %1048 = OpBitcast %float %1047 %1049 = OpLoad %v4float %r3 %1050 = OpCompositeInsert %v4float %1048 %1049 3 OpStore %r3 %1050 %1051 = OpLoad %v4float %r3 %1052 = OpCompositeExtract %float %1051 0 %1053 = OpBitcast %uint %1052 %1054 = OpLoad %v4float %r3 %1055 = OpCompositeExtract %float %1054 1 %1056 = OpLoad %v4float %r3 %1057 = OpCompositeExtract %float %1056 3 %1058 = OpINotEqual %bool %1053 %uint_0 %1059 = OpSelect %float %1058 %1055 %1057 %1060 = OpLoad %v4float %r3 %1061 = OpCompositeInsert %v4float %1059 %1060 0 OpStore %r3 %1061 %1062 = OpLoad %v4float %r2 %1063 = OpCompositeExtract %float %1062 3 %1064 = OpBitcast %uint %1063 %1065 = OpLoad %v4float %r3 %1066 = OpCompositeExtract %float %1065 0 %1067 = OpBitcast %float %uint_0 %1068 = OpINotEqual %bool %1064 %uint_0 %1069 = OpSelect %float %1068 %1066 %1067 %1070 = OpLoad %v4float %r2 %1071 = OpCompositeInsert %v4float %1069 %1070 3 OpStore %r2 %1071 %1072 = OpLoad %v4float %r1 %1073 = OpCompositeExtract %float %1072 3 %1074 = OpBitcast %int %1073 %1075 = OpBitcast %int %uint_1 %1076 = OpIAdd %int %1074 %1075 %1077 = OpBitcast %float %1076 %1078 = OpLoad %v4float %r1 %1079 = OpCompositeInsert %v4float %1077 %1078 3 OpStore %r1 %1079 %1080 = OpBitcast %float %uint_0 %1081 = OpAccessChain %_ptr_Private_v4float %x1 %int_0 %1082 = OpLoad %v4float %1081 %1083 = OpCompositeInsert %v4float %1080 %1082 0 OpStore %1081 %1083 %1084 = OpBitcast %float %uint_4 %1085 = OpAccessChain %_ptr_Private_v4float %x1 %int_1 %1086 = OpLoad %v4float %1085 %1087 = OpCompositeInsert %v4float %1084 %1086 0 OpStore %1085 %1087 %1088 = OpBitcast %float %uint_4 %1089 = OpAccessChain %_ptr_Private_v4float %x1 %int_2 %1090 = OpLoad %v4float %1089 %1091 = OpCompositeInsert %v4float %1088 %1090 0 OpStore %1089 %1091 %1092 = OpBitcast %float %uint_2 %1093 = OpAccessChain %_ptr_Private_v4float %x1 %int_3 %1094 = OpLoad %v4float %1093 %1095 = OpCompositeInsert %v4float %1092 %1094 0 OpStore %1093 %1095 %1096 = OpBitcast %float %uint_4294967292 %1097 = OpAccessChain %_ptr_Private_v4float %x1 %int_4 %1098 = OpLoad %v4float %1097 %1099 = OpCompositeInsert %v4float %1096 %1098 0 OpStore %1097 %1099 %1100 = OpBitcast %float %uint_4294967288 %1101 = OpAccessChain %_ptr_Private_v4float %x1 %int_5 %1102 = OpLoad %v4float %1101 %1103 = OpCompositeInsert %v4float %1100 %1102 0 OpStore %1101 %1103 %1104 = OpBitcast %float %uint_4294967288 %1105 = OpAccessChain %_ptr_Private_v4float %x1 %int_6 %1106 = OpLoad %v4float %1105 %1107 = OpCompositeInsert %v4float %1104 %1106 0 OpStore %1105 %1107 %1108 = OpBitcast %float %uint_4294967280 %1109 = OpAccessChain %_ptr_Private_v4float %x1 %int_7 %1110 = OpLoad %v4float %1109 %1111 = OpCompositeInsert %v4float %1108 %1110 0 OpStore %1109 %1111 %1112 = OpBitcast %float %uint_4294967280 %1113 = OpAccessChain %_ptr_Private_v4float %x1 %int_8 %1114 = OpLoad %v4float %1113 %1115 = OpCompositeInsert %v4float %1112 %1114 0 OpStore %1113 %1115 %1116 = OpBitcast %float %uint_4294967264 %1117 = OpAccessChain %_ptr_Private_v4float %x1 %int_9 %1118 = OpLoad %v4float %1117 %1119 = OpCompositeInsert %v4float %1116 %1118 0 OpStore %1117 %1119 %1120 = OpBitcast %float %uint_4294967264 %1121 = OpAccessChain %_ptr_Private_v4float %x1 %int_10 %1122 = OpLoad %v4float %1121 %1123 = OpCompositeInsert %v4float %1120 %1122 0 OpStore %1121 %1123 %1124 = OpBitcast %float %uint_4294967264 %1125 = OpAccessChain %_ptr_Private_v4float %x1 %int_11 %1126 = OpLoad %v4float %1125 %1127 = OpCompositeInsert %v4float %1124 %1126 0 OpStore %1125 %1127 %1128 = OpBitcast %float %uint_4294967264 %1129 = OpAccessChain %_ptr_Private_v4float %x1 %int_12 %1130 = OpLoad %v4float %1129 %1131 = OpCompositeInsert %v4float %1128 %1130 0 OpStore %1129 %1131 %1132 = OpBitcast %float %uint_4294967264 %1133 = OpAccessChain %_ptr_Private_v4float %x1 %int_13 %1134 = OpLoad %v4float %1133 %1135 = OpCompositeInsert %v4float %1132 %1134 0 OpStore %1133 %1135 %1136 = OpBitcast %float %uint_4294967264 %1137 = OpAccessChain %_ptr_Private_v4float %x1 %int_14 %1138 = OpLoad %v4float %1137 %1139 = OpCompositeInsert %v4float %1136 %1138 0 OpStore %1137 %1139 %1140 = OpBitcast %float %uint_4294967264 %1141 = OpAccessChain %_ptr_Private_v4float %x1 %int_15 %1142 = OpLoad %v4float %1141 %1143 = OpCompositeInsert %v4float %1140 %1142 0 OpStore %1141 %1143 %1144 = OpLoad %v4float %r1 %1145 = OpCompositeExtract %float %1144 3 %1146 = OpBitcast %uint %1145 %1147 = OpExtInst %uint %1 UMin %1146 %uint_15 %1148 = OpBitcast %float %1147 %1149 = OpLoad %v4float %r1 %1150 = OpCompositeInsert %v4float %1148 %1149 3 OpStore %r1 %1150 %1151 = OpLoad %v4float %r1 %1152 = OpCompositeExtract %float %1151 3 %1153 = OpBitcast %int %1152 %1154 = OpAccessChain %_ptr_Private_v4float %x1 %1153 %1155 = OpLoad %v4float %1154 %1156 = OpCompositeExtract %float %1155 0 %1157 = OpLoad %v4float %r1 %1158 = OpCompositeInsert %v4float %1156 %1157 3 OpStore %r1 %1158 %1159 = OpBitcast %int %uint_0 %1160 = OpLoad %v4float %r1 %1161 = OpCompositeExtract %float %1160 3 %1162 = OpBitcast %int %1161 %1163 = OpSLessThan %bool %1159 %1162 %1164 = OpSelect %uint %1163 %uint_4294967295 %uint_0 %1165 = OpBitcast %float %1164 %1166 = OpLoad %v4float %r3 %1167 = OpCompositeInsert %v4float %1165 %1166 0 OpStore %r3 %1167 %1168 = OpLoad %v4float %r0 %1169 = OpCompositeExtract %float %1168 2 %1170 = OpBitcast %uint %1169 %1171 = OpLoad %v4float %r1 %1172 = OpCompositeExtract %float %1171 3 %1173 = OpBitcast %uint %1172 %1174 = OpUMod %uint %1170 %1173 %1175 = OpBitcast %float %1174 %1176 = OpLoad %v4float %r0 %1177 = OpCompositeInsert %v4float %1175 %1176 2 OpStore %r0 %1177 %1178 = OpLoad %v4float %r0 %1179 = OpCompositeExtract %float %1178 2 %1180 = OpBitcast %int %1179 %1181 = OpBitcast %int %uint_0 %1182 = OpIEqual %bool %1180 %1181 %1183 = OpSelect %uint %1182 %uint_4294967295 %uint_0 %1184 = OpBitcast %float %1183 %1185 = OpLoad %v4float %r0 %1186 = OpCompositeInsert %v4float %1184 %1185 2 OpStore %r0 %1186 %1187 = OpLoad %v4float %r1 %1188 = OpCompositeExtract %float %1187 3 %1189 = OpBitcast %int %1188 %1190 = OpSNegate %int %1189 %1191 = OpLoad %v4float %r1 %1192 = OpCompositeExtract %float %1191 3 %1193 = OpBitcast %int %1192 %1194 = OpExtInst %int %1 SMax %1190 %1193 %1195 = OpBitcast %float %1194 %1196 = OpLoad %v4float %r3 %1197 = OpCompositeInsert %v4float %1195 %1196 1 OpStore %r3 %1197 %1198 = OpLoad %v4float %r3 %1199 = OpCompositeExtract %float %1198 2 %1200 = OpBitcast %uint %1199 %1201 = OpLoad %v4float %r3 %1202 = OpCompositeExtract %float %1201 1 %1203 = OpBitcast %uint %1202 %1204 = OpUMod %uint %1200 %1203 %1205 = OpBitcast %float %1204 %1206 = OpLoad %v4float %r3 %1207 = OpCompositeInsert %v4float %1205 %1206 1 OpStore %r3 %1207 %1208 = OpLoad %v4float %r3 %1209 = OpCompositeExtract %float %1208 1 %1210 = OpBitcast %int %1209 %1211 = OpBitcast %int %uint_0 %1212 = OpINotEqual %bool %1210 %1211 %1213 = OpSelect %uint %1212 %uint_4294967295 %uint_0 %1214 = OpBitcast %float %1213 %1215 = OpLoad %v4float %r3 %1216 = OpCompositeInsert %v4float %1214 %1215 1 OpStore %r3 %1216 %1217 = OpLoad %v4float %r3 %1218 = OpCompositeExtract %float %1217 0 %1219 = OpBitcast %uint %1218 %1220 = OpLoad %v4float %r0 %1221 = OpCompositeExtract %float %1220 2 %1222 = OpLoad %v4float %r3 %1223 = OpCompositeExtract %float %1222 1 %1224 = OpINotEqual %bool %1219 %uint_0 %1225 = OpSelect %float %1224 %1221 %1223 %1226 = OpLoad %v4float %r0 %1227 = OpCompositeInsert %v4float %1225 %1226 2 OpStore %r0 %1227 %1228 = OpLoad %v4float %r1 %1229 = OpCompositeExtract %float %1228 3 %1230 = OpBitcast %uint %1229 %1231 = OpLoad %v4float %r0 %1232 = OpCompositeExtract %float %1231 2 %1233 = OpBitcast %float %uint_0 %1234 = OpINotEqual %bool %1230 %uint_0 %1235 = OpSelect %float %1234 %1232 %1233 %1236 = OpLoad %v4float %r0 %1237 = OpCompositeInsert %v4float %1235 %1236 2 OpStore %r0 %1237 %1238 = OpLoad %v4float %r0 %1239 = OpCompositeExtract %float %1238 2 %1240 = OpBitcast %int %1239 %1241 = OpLoad %v4float %r2 %1242 = OpCompositeExtract %float %1241 3 %1243 = OpBitcast %int %1242 %1244 = OpINotEqual %bool %1240 %1243 %1245 = OpSelect %uint %1244 %uint_4294967295 %uint_0 %1246 = OpBitcast %float %1245 %1247 = OpLoad %v4float %r0 %1248 = OpCompositeInsert %v4float %1246 %1247 2 OpStore %r0 %1248 %1249 = OpLoad %v4float %r1 %1250 = OpCompositeExtract %float %1249 2 %1251 = OpExtInst %float %1 Trunc %1250 %1252 = OpLoad %v4float %r1 %1253 = OpCompositeInsert %v4float %1251 %1252 2 OpStore %r1 %1253 %1254 = OpLoad %v4float %r0 %1255 = OpCompositeExtract %float %1254 1 %1256 = OpBitcast %float %uint_1098907648 %1257 = OpLoad %v4float %r1 %1258 = OpCompositeExtract %float %1257 2 %1259 = OpFNegate %float %1258 %1260 = OpExtInst %float %1 Fma %1255 %1256 %1259 %1261 = OpLoad %v4float %r0 %1262 = OpCompositeInsert %v4float %1260 %1261 1 OpStore %r0 %1262 %1263 = OpLoad %v4float %r0 %1264 = OpCompositeExtract %float %1263 1 %1265 = OpFNegate %float %1264 %1266 = OpBitcast %float %uint_1065353216 %1267 = OpFAdd %float %1265 %1266 %1268 = OpLoad %v4float %r0 %1269 = OpCompositeInsert %v4float %1267 %1268 1 OpStore %r0 %1269 %1270 = OpLoad %v4float %r0 %1271 = OpVectorShuffle %v2float %1270 %1270 1 1 %1272 = OpLoad %v4float %r1 %1273 = OpVectorShuffle %v2float %1272 %1272 0 1 %1274 = OpFMul %v2float %1271 %1273 %1275 = OpLoad %v4float %r1 %1276 = OpVectorShuffle %v4float %1275 %1274 0 1 4 5 OpStore %r1 %1276 %1277 = OpLoad %v4float %r0 %1278 = OpVectorShuffle %v2float %1277 %1277 2 2 %1279 = OpBitcast %v2uint %1278 %1280 = OpLoad %v4float %r1 %1281 = OpVectorShuffle %v2float %1280 %1280 2 3 %1282 = OpLoad %v4float %r1 %1283 = OpVectorShuffle %v2float %1282 %1282 0 1 %1286 = OpINotEqual %v2bool %1279 %1285 %1287 = OpSelect %v2float %1286 %1281 %1283 %1288 = OpLoad %v4float %r0 %1289 = OpVectorShuffle %v4float %1288 %1287 0 4 5 3 OpStore %r0 %1289 %1290 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_0 %1291 = OpLoad %v4float %1290 %1292 = OpVectorShuffle %v3float %1291 %1291 0 1 2 %1293 = OpFNegate %v3float %1292 %1294 = OpLoad %v4float %r0 %1295 = OpVectorShuffle %v3float %1294 %1294 0 0 0 %1296 = OpFDiv %v3float %1293 %1295 %1297 = OpLoad %v4float %r1 %1298 = OpVectorShuffle %v4float %1297 %1296 4 5 6 3 OpStore %r1 %1298 %1299 = OpLoad %v4float %r1 %1300 = OpVectorShuffle %v3float %1299 %1299 0 1 2 %1301 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_1 %1302 = OpLoad %v4float %1301 %1303 = OpVectorShuffle %v3float %1302 %1302 0 1 2 %1304 = OpDot %float %1300 %1303 %1305 = OpLoad %v4float %r0 %1306 = OpCompositeInsert %v4float %1304 %1305 0 OpStore %r0 %1306 %1307 = OpBitcast %float %uint_1056964608 %1308 = OpLoad %v4float %r0 %1309 = OpCompositeExtract %float %1308 0 %1310 = OpFOrdLessThan %bool %1307 %1309 %1311 = OpSelect %uint %1310 %uint_4294967295 %uint_0 %1312 = OpBitcast %float %1311 %1313 = OpLoad %v4float %r1 %1314 = OpCompositeInsert %v4float %1312 %1313 3 OpStore %r1 %1314 %1315 = OpLoad %v4float %r0 %1316 = OpCompositeExtract %float %1315 0 %1318 = OpBitcast %float %uint_3204448256 %1319 = OpFAdd %float %1316 %1318 %1320 = OpLoad %v4float %r0 %1321 = OpCompositeInsert %v4float %1319 %1320 0 OpStore %r0 %1321 %1322 = OpLoad %v4float %r0 %1323 = OpCompositeExtract %float %1322 0 %1324 = OpBitcast %float %uint_1069547520 %1325 = OpFMul %float %1323 %1324 %1326 = OpLoad %v4float %r0 %1327 = OpCompositeInsert %v4float %1325 %1326 0 OpStore %r0 %1327 %1328 = OpLoad %v4float %r2 %1329 = OpVectorShuffle %v3float %1328 %1328 0 1 2 %1330 = OpLoad %v4float %r1 %1331 = OpVectorShuffle %v3float %1330 %1330 0 1 2 %1332 = OpDot %float %1329 %1331 %1333 = OpLoad %v4float %r1 %1334 = OpCompositeInsert %v4float %1332 %1333 0 OpStore %r1 %1334 %1336 = OpBitcast %float %uint_3175926989 %1337 = OpLoad %v4float %r1 %1338 = OpCompositeExtract %float %1337 0 %1339 = OpFOrdLessThan %bool %1336 %1338 %1340 = OpSelect %uint %1339 %uint_4294967295 %uint_0 %1341 = OpBitcast %float %1340 %1342 = OpLoad %v4float %r1 %1343 = OpCompositeInsert %v4float %1341 %1342 1 OpStore %r1 %1343 %1344 = OpLoad %v4float %r1 %1345 = OpVectorShuffle %v2float %1344 %1344 0 0 %1348 = OpBitcast %v2float %1347 %1349 = OpFOrdLessThan %v2bool %1345 %1348 %1351 = OpSelect %v2uint %1349 %1350 %1285 %1352 = OpBitcast %v2float %1351 %1353 = OpLoad %v4float %r3 %1354 = OpVectorShuffle %v4float %1353 %1352 4 5 2 3 OpStore %r3 %1354 %1355 = OpLoad %v4float %r1 %1356 = OpCompositeExtract %float %1355 1 %1357 = OpBitcast %uint %1356 %1358 = OpLoad %v4float %r3 %1359 = OpCompositeExtract %float %1358 0 %1360 = OpBitcast %uint %1359 %1361 = OpBitwiseAnd %uint %1357 %1360 %1362 = OpBitcast %float %1361 %1363 = OpLoad %v4float %r1 %1364 = OpCompositeInsert %v4float %1362 %1363 1 OpStore %r1 %1364 %1365 = OpLoad %v4float %r0 %1366 = OpCompositeExtract %float %1365 0 %1367 = OpLoad %v4float %r1 %1368 = OpCompositeExtract %float %1367 0 %1369 = OpFMul %float %1366 %1368 %1370 = OpLoad %v4float %r1 %1371 = OpCompositeInsert %v4float %1369 %1370 0 OpStore %r1 %1371 %1372 = OpLoad %v4float %r1 %1373 = OpCompositeExtract %float %1372 0 %1375 = OpBitcast %float %uint_1101004800 %1376 = OpFMul %float %1373 %1375 %1377 = OpLoad %v4float %r1 %1378 = OpCompositeInsert %v4float %1376 %1377 0 OpStore %r1 %1378 %1379 = OpLoad %v4float %r3 %1380 = OpCompositeExtract %float %1379 1 %1381 = OpBitcast %uint %1380 %1382 = OpLoad %v4float %r0 %1383 = OpCompositeExtract %float %1382 0 %1384 = OpFNegate %float %1383 %1385 = OpLoad %v4float %r0 %1386 = OpCompositeExtract %float %1385 0 %1387 = OpINotEqual %bool %1381 %uint_0 %1388 = OpSelect %float %1387 %1384 %1386 %1389 = OpLoad %v4float %r0 %1390 = OpCompositeInsert %v4float %1388 %1389 0 OpStore %r0 %1390 %1391 = OpLoad %v4float %r1 %1392 = OpCompositeExtract %float %1391 1 %1393 = OpBitcast %uint %1392 %1394 = OpLoad %v4float %r1 %1395 = OpCompositeExtract %float %1394 0 %1396 = OpLoad %v4float %r0 %1397 = OpCompositeExtract %float %1396 0 %1398 = OpINotEqual %bool %1393 %uint_0 %1399 = OpSelect %float %1398 %1395 %1397 %1400 = OpLoad %v4float %r0 %1401 = OpCompositeInsert %v4float %1399 %1400 0 OpStore %r0 %1401 %1402 = OpLoad %v4float %r0 %1403 = OpVectorShuffle %v4float %1402 %1402 0 0 0 0 %1404 = OpCompositeExtract %float %1403 0 %1405 = OpExtInst %float %1 Cos %1404 %1406 = OpLoad %v4float %r1 %1407 = OpCompositeInsert %v4float %1405 %1406 0 OpStore %r1 %1407 %1408 = OpLoad %v4float %r0 %1409 = OpVectorShuffle %v4float %1408 %1408 0 0 0 0 %1410 = OpFNegate %v4float %1409 %1411 = OpCompositeExtract %float %1410 0 %1412 = OpExtInst %float %1 Sin %1411 %1413 = OpLoad %v4float %r0 %1414 = OpCompositeInsert %v4float %1412 %1413 0 OpStore %r0 %1414 %1415 = OpLoad %v4float %r1 %1416 = OpVectorShuffle %v3float %1415 %1415 0 0 0 %1417 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_1 %1418 = OpLoad %v4float %1417 %1419 = OpVectorShuffle %v3float %1418 %1418 0 1 2 %1420 = OpFMul %v3float %1416 %1419 %1421 = OpLoad %v4float %r1 %1422 = OpVectorShuffle %v4float %1421 %1420 4 5 6 3 OpStore %r1 %1422 %1423 = OpLoad %v4float %r0 %1424 = OpVectorShuffle %v3float %1423 %1423 0 0 0 %1425 = OpLoad %v4float %r2 %1426 = OpVectorShuffle %v3float %1425 %1425 0 1 2 %1427 = OpLoad %v4float %r1 %1428 = OpVectorShuffle %v3float %1427 %1427 0 1 2 %1429 = OpExtInst %v3float %1 Fma %1424 %1426 %1428 %1430 = OpLoad %v4float %r1 %1431 = OpVectorShuffle %v4float %1430 %1429 4 5 6 3 OpStore %r1 %1431 %1432 = OpLoad %v4float %r1 %1433 = OpVectorShuffle %v3float %1432 %1432 3 3 3 %1434 = OpBitcast %v3uint %1433 %1435 = OpLoad %v4float %r1 %1436 = OpVectorShuffle %v3float %1435 %1435 0 1 2 %1437 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_1 %1438 = OpLoad %v4float %1437 %1439 = OpVectorShuffle %v3float %1438 %1438 0 1 2 %1440 = OpINotEqual %v3bool %1434 %513 %1441 = OpSelect %v3float %1440 %1436 %1439 %1442 = OpLoad %v4float %r1 %1443 = OpVectorShuffle %v4float %1442 %1441 4 5 6 3 OpStore %r1 %1443 %1444 = OpLoad %v4float %r2 %1445 = OpCompositeExtract %float %1444 3 %1446 = OpBitcast %uint %1445 %1447 = OpIEqual %bool %1446 %uint_0 OpSelectionMerge %1449 None OpBranchConditional %1447 %1448 %1449 %1448 = OpLabel %1450 = OpLoad %v4float %r0 %1451 = OpCompositeExtract %float %1450 1 %1452 = OpBitcast %float %uint_1056964608 %1453 = OpFMul %float %1451 %1452 %1454 = OpLoad %v4float %r0 %1455 = OpCompositeInsert %v4float %1453 %1454 0 OpStore %r0 %1455 %1457 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_38 %1458 = OpAccessChain %_ptr_Uniform_float %1457 %uint_0 %1459 = OpLoad %float %1458 %1460 = OpAccessChain %_ptr_Uniform_float %1457 %uint_1 %1461 = OpLoad %float %1460 %1462 = OpAccessChain %_ptr_Uniform_float %1457 %uint_2 %1463 = OpLoad %float %1462 %1464 = OpCompositeConstruct %v3float %1459 %1461 %1463 %1465 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_38 %1466 = OpAccessChain %_ptr_Uniform_float %1465 %uint_0 %1467 = OpLoad %float %1466 %1468 = OpAccessChain %_ptr_Uniform_float %1465 %uint_1 %1469 = OpLoad %float %1468 %1470 = OpAccessChain %_ptr_Uniform_float %1465 %uint_2 %1471 = OpLoad %float %1470 %1472 = OpCompositeConstruct %v3float %1467 %1469 %1471 %1473 = OpDot %float %1464 %1472 %1474 = OpLoad %v4float %r0 %1475 = OpCompositeInsert %v4float %1473 %1474 1 OpStore %r0 %1475 %1476 = OpLoad %v4float %r0 %1477 = OpCompositeExtract %float %1476 1 %1478 = OpBitcast %float %uint_0 %1479 = OpFOrdNotEqual %bool %1477 %1478 %1480 = OpSelect %uint %1479 %uint_4294967295 %uint_0 %1481 = OpBitcast %float %1480 %1482 = OpLoad %v4float %r1 %1483 = OpCompositeInsert %v4float %1481 %1482 3 OpStore %r1 %1483 %1484 = OpLoad %v4float %r0 %1485 = OpCompositeExtract %float %1484 1 %1486 = OpExtInst %float %1 Sqrt %1485 %1487 = OpLoad %v4float %r2 %1488 = OpCompositeInsert %v4float %1486 %1487 0 OpStore %r2 %1488 %1489 = OpLoad %v4float %r0 %1490 = OpCompositeExtract %float %1489 1 %1491 = OpExtInst %float %1 InverseSqrt %1490 %1492 = OpLoad %v4float %r0 %1493 = OpCompositeInsert %v4float %1491 %1492 1 OpStore %r0 %1493 %1494 = OpLoad %v4float %r0 %1495 = OpVectorShuffle %v3float %1494 %1494 1 1 1 %1496 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_38 %1497 = OpAccessChain %_ptr_Uniform_float %1496 %uint_0 %1498 = OpLoad %float %1497 %1499 = OpAccessChain %_ptr_Uniform_float %1496 %uint_1 %1500 = OpLoad %float %1499 %1501 = OpAccessChain %_ptr_Uniform_float %1496 %uint_2 %1502 = OpLoad %float %1501 %1503 = OpCompositeConstruct %v3float %1498 %1500 %1502 %1504 = OpFMul %v3float %1495 %1503 %1505 = OpLoad %v4float %r2 %1506 = OpVectorShuffle %v4float %1505 %1504 0 4 5 6 OpStore %r2 %1506 %1507 = OpLoad %v4float %r2 %1508 = OpVectorShuffle %v3float %1507 %1507 1 2 3 %1509 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_2 %1510 = OpLoad %v4float %1509 %1511 = OpVectorShuffle %v3float %1510 %1510 0 1 2 %1512 = OpDot %float %1508 %1511 %1513 = OpLoad %v4float %r0 %1514 = OpCompositeInsert %v4float %1512 %1513 1 OpStore %r0 %1514 %1516 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_78 %1517 = OpAccessChain %_ptr_Uniform_float %1516 %uint_0 %1518 = OpLoad %float %1517 %1519 = OpLoad %v4float %r2 %1520 = OpCompositeExtract %float %1519 0 %1521 = OpLoad %v4float %r0 %1522 = OpCompositeExtract %float %1521 1 %1523 = OpExtInst %float %1 Fma %1518 %1520 %1522 %1524 = OpLoad %v4float %r0 %1525 = OpCompositeInsert %v4float %1523 %1524 1 OpStore %r0 %1525 %1526 = OpLoad %v4float %r0 %1527 = OpVectorShuffle %v4float %1526 %1526 1 1 1 1 %1534 = OpBitcast %v4float %1533 %1536 = OpBitcast %v4float %1535 %1537 = OpExtInst %v4float %1 Fma %1527 %1534 %1536 OpStore %r3 %1537 %1538 = OpLoad %v4float %r3 %1539 = OpExtInst %v4float %1 Fract %1538 OpStore %r3 %1539 %1540 = OpLoad %v4float %r3 %1543 = OpBitcast %v4float %1542 %1545 = OpBitcast %v4float %1544 %1546 = OpExtInst %v4float %1 Fma %1540 %1543 %1545 OpStore %r3 %1546 %1547 = OpLoad %v4float %r3 %1548 = OpExtInst %v4float %1 FAbs %1547 %1549 = OpLoad %v4float %r3 %1550 = OpExtInst %v4float %1 FAbs %1549 %1551 = OpFMul %v4float %1548 %1550 OpStore %r5 %1551 %1552 = OpLoad %v4float %r3 %1553 = OpExtInst %v4float %1 FAbs %1552 %1554 = OpFNegate %v4float %1553 %1555 = OpBitcast %v4float %1542 %1557 = OpBitcast %v4float %1556 %1558 = OpExtInst %v4float %1 Fma %1554 %1555 %1557 OpStore %r3 %1558 %1559 = OpLoad %v4float %r3 %1560 = OpLoad %v4float %r5 %1561 = OpFMul %v4float %1559 %1560 OpStore %r3 %1561 %1562 = OpLoad %v4float %r3 %1565 = OpBitcast %v4float %1564 %1566 = OpDot %float %1562 %1565 %1567 = OpLoad %v4float %r0 %1568 = OpCompositeInsert %v4float %1566 %1567 1 OpStore %r0 %1568 %1569 = OpLoad %v4float %r0 %1570 = OpVectorShuffle %v3float %1569 %1569 1 1 1 %1571 = OpLoad %v4float %r2 %1572 = OpVectorShuffle %v3float %1571 %1571 1 2 3 %1573 = OpFMul %v3float %1570 %1572 %1574 = OpLoad %v4float %r2 %1575 = OpVectorShuffle %v4float %1574 %1573 4 5 6 3 OpStore %r2 %1575 %1576 = OpLoad %v4float %r1 %1577 = OpVectorShuffle %v3float %1576 %1576 3 3 3 %1578 = OpBitcast %v3uint %1577 %1579 = OpLoad %v4float %r2 %1580 = OpVectorShuffle %v3float %1579 %1579 0 1 2 %1581 = OpBitcast %v3uint %1580 %1582 = OpBitwiseAnd %v3uint %1578 %1581 %1583 = OpBitcast %v3float %1582 %1584 = OpLoad %v4float %r2 %1585 = OpVectorShuffle %v4float %1584 %1583 4 5 6 3 OpStore %r2 %1585 %1586 = OpLoad %v4float %r1 %1587 = OpVectorShuffle %v3float %1586 %1586 0 1 2 %1588 = OpLoad %v4float %r2 %1589 = OpVectorShuffle %v3float %1588 %1588 0 1 2 %1590 = OpFAdd %v3float %1587 %1589 %1591 = OpLoad %v4float %r1 %1592 = OpVectorShuffle %v4float %1591 %1590 4 5 6 3 OpStore %r1 %1592 %1593 = OpLoad %v4float %r1 %1594 = OpVectorShuffle %v3float %1593 %1593 0 1 2 %1595 = OpLoad %v4float %r1 %1596 = OpVectorShuffle %v3float %1595 %1595 0 1 2 %1597 = OpDot %float %1594 %1596 %1598 = OpLoad %v4float %r0 %1599 = OpCompositeInsert %v4float %1597 %1598 1 OpStore %r0 %1599 %1600 = OpLoad %v4float %r0 %1601 = OpCompositeExtract %float %1600 1 %1602 = OpExtInst %float %1 InverseSqrt %1601 %1603 = OpLoad %v4float %r0 %1604 = OpCompositeInsert %v4float %1602 %1603 1 OpStore %r0 %1604 %1605 = OpLoad %v4float %r0 %1606 = OpVectorShuffle %v3float %1605 %1605 1 1 1 %1607 = OpLoad %v4float %r1 %1608 = OpVectorShuffle %v3float %1607 %1607 0 1 2 %1609 = OpFMul %v3float %1606 %1608 %1610 = OpLoad %v4float %r1 %1611 = OpVectorShuffle %v4float %1610 %1609 4 5 6 3 OpStore %r1 %1611 %1612 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_1 %1613 = OpLoad %v4float %1612 %1614 = OpVectorShuffle %v3float %1613 %1613 0 1 2 %1615 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_1 %1616 = OpLoad %v4float %1615 %1617 = OpVectorShuffle %v3float %1616 %1616 0 1 2 %1618 = OpDot %float %1614 %1617 %1619 = OpLoad %v4float %r0 %1620 = OpCompositeInsert %v4float %1618 %1619 1 OpStore %r0 %1620 %1621 = OpLoad %v4float %r0 %1622 = OpCompositeExtract %float %1621 1 %1623 = OpExtInst %float %1 InverseSqrt %1622 %1624 = OpLoad %v4float %r0 %1625 = OpCompositeInsert %v4float %1623 %1624 1 OpStore %r0 %1625 %1626 = OpLoad %v4float %r0 %1627 = OpVectorShuffle %v3float %1626 %1626 1 1 1 %1628 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_1 %1629 = OpLoad %v4float %1628 %1630 = OpVectorShuffle %v3float %1629 %1629 0 1 2 %1631 = OpFMul %v3float %1627 %1630 %1632 = OpLoad %v4float %r2 %1633 = OpVectorShuffle %v4float %1632 %1631 4 5 6 3 OpStore %r2 %1633 %1634 = OpLoad %v4float %r4 %1635 = OpVectorShuffle %v3float %1634 %1634 1 2 3 %1636 = OpLoad %v4float %r4 %1637 = OpVectorShuffle %v3float %1636 %1636 1 2 3 %1638 = OpDot %float %1635 %1637 %1639 = OpLoad %v4float %r0 %1640 = OpCompositeInsert %v4float %1638 %1639 1 OpStore %r0 %1640 %1641 = OpLoad %v4float %r0 %1642 = OpCompositeExtract %float %1641 1 %1643 = OpExtInst %float %1 InverseSqrt %1642 %1644 = OpLoad %v4float %r0 %1645 = OpCompositeInsert %v4float %1643 %1644 1 OpStore %r0 %1645 %1646 = OpLoad %v4float %r0 %1647 = OpVectorShuffle %v3float %1646 %1646 1 1 1 %1648 = OpLoad %v4float %r4 %1649 = OpVectorShuffle %v3float %1648 %1648 1 2 3 %1650 = OpFMul %v3float %1647 %1649 %1651 = OpLoad %v4float %r3 %1652 = OpVectorShuffle %v4float %1651 %1650 4 5 6 3 OpStore %r3 %1652 %1653 = OpLoad %v4float %r0 %1654 = OpVectorShuffle %v3float %1653 %1653 0 0 0 %1655 = OpLoad %v4float %r4 %1656 = OpVectorShuffle %v3float %1655 %1655 1 2 3 %1657 = OpFNegate %v3float %1656 %1658 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_0 %1659 = OpLoad %v4float %1658 %1660 = OpVectorShuffle %v3float %1659 %1659 0 1 2 %1661 = OpExtInst %v3float %1 Fma %1654 %1657 %1660 %1662 = OpLoad %v4float %r5 %1663 = OpVectorShuffle %v4float %1662 %1661 4 5 6 3 OpStore %r5 %1663 %1664 = OpLoad %v4float %r0 %1665 = OpVectorShuffle %v3float %1664 %1664 0 0 0 %1666 = OpLoad %v4float %r4 %1667 = OpVectorShuffle %v3float %1666 %1666 1 2 3 %1668 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_0 %1669 = OpLoad %v4float %1668 %1670 = OpVectorShuffle %v3float %1669 %1669 0 1 2 %1671 = OpExtInst %v3float %1 Fma %1665 %1667 %1670 %1672 = OpLoad %v4float %r4 %1673 = OpVectorShuffle %v4float %1672 %1671 4 5 6 3 OpStore %r4 %1673 %1674 = OpLoad %v4float %r1 %1675 = OpVectorShuffle %v3float %1674 %1674 0 1 2 %1676 = OpLoad %v4float %r0 %1677 = OpVectorShuffle %v3float %1676 %1676 2 2 2 %1678 = OpLoad %v4float %r5 %1679 = OpVectorShuffle %v3float %1678 %1678 0 1 2 %1680 = OpExtInst %v3float %1 Fma %1675 %1677 %1679 %1681 = OpLoad %v4float %r6 %1682 = OpVectorShuffle %v4float %1681 %1680 4 5 6 3 OpStore %r6 %1682 %1683 = OpLoad %v4float %r1 %1684 = OpVectorShuffle %v3float %1683 %1683 0 1 2 %1685 = OpLoad %v4float %r0 %1686 = OpVectorShuffle %v3float %1685 %1685 2 2 2 %1687 = OpLoad %v4float %r4 %1688 = OpVectorShuffle %v3float %1687 %1687 0 1 2 %1689 = OpExtInst %v3float %1 Fma %1684 %1686 %1688 %1690 = OpLoad %v4float %r1 %1691 = OpVectorShuffle %v4float %1690 %1689 4 5 6 3 OpStore %r1 %1691 %1692 = OpBitcast %float %uint_1065353216 %1693 = OpLoad %v4float %r5 %1694 = OpCompositeInsert %v4float %1692 %1693 3 OpStore %r5 %1694 %1695 = OpLoad %v4float %r5 %1696 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_0 %1697 = OpAccessChain %_ptr_Uniform_float %1696 %uint_0 %1698 = OpLoad %float %1697 %1699 = OpAccessChain %_ptr_Uniform_float %1696 %uint_1 %1700 = OpLoad %float %1699 %1701 = OpAccessChain %_ptr_Uniform_float %1696 %uint_2 %1702 = OpLoad %float %1701 %1703 = OpAccessChain %_ptr_Uniform_float %1696 %uint_3 %1704 = OpLoad %float %1703 %1705 = OpCompositeConstruct %v4float %1698 %1700 %1702 %1704 %1706 = OpDot %float %1695 %1705 %1707 = OpLoad %v4float %r0 %1708 = OpCompositeInsert %v4float %1706 %1707 0 OpStore %r0 %1708 %1709 = OpLoad %v4float %r5 %1710 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_1 %1711 = OpAccessChain %_ptr_Uniform_float %1710 %uint_0 %1712 = OpLoad %float %1711 %1713 = OpAccessChain %_ptr_Uniform_float %1710 %uint_1 %1714 = OpLoad %float %1713 %1715 = OpAccessChain %_ptr_Uniform_float %1710 %uint_2 %1716 = OpLoad %float %1715 %1717 = OpAccessChain %_ptr_Uniform_float %1710 %uint_3 %1718 = OpLoad %float %1717 %1719 = OpCompositeConstruct %v4float %1712 %1714 %1716 %1718 %1720 = OpDot %float %1709 %1719 %1721 = OpLoad %v4float %r0 %1722 = OpCompositeInsert %v4float %1720 %1721 1 OpStore %r0 %1722 %1723 = OpLoad %v4float %r5 %1724 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_2 %1725 = OpAccessChain %_ptr_Uniform_float %1724 %uint_0 %1726 = OpLoad %float %1725 %1727 = OpAccessChain %_ptr_Uniform_float %1724 %uint_1 %1728 = OpLoad %float %1727 %1729 = OpAccessChain %_ptr_Uniform_float %1724 %uint_2 %1730 = OpLoad %float %1729 %1731 = OpAccessChain %_ptr_Uniform_float %1724 %uint_3 %1732 = OpLoad %float %1731 %1733 = OpCompositeConstruct %v4float %1726 %1728 %1730 %1732 %1734 = OpDot %float %1723 %1733 %1735 = OpLoad %v4float %r0 %1736 = OpCompositeInsert %v4float %1734 %1735 2 OpStore %r0 %1736 %1737 = OpLoad %v4float %r5 %1738 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_3 %1739 = OpAccessChain %_ptr_Uniform_float %1738 %uint_0 %1740 = OpLoad %float %1739 %1741 = OpAccessChain %_ptr_Uniform_float %1738 %uint_1 %1742 = OpLoad %float %1741 %1743 = OpAccessChain %_ptr_Uniform_float %1738 %uint_2 %1744 = OpLoad %float %1743 %1745 = OpAccessChain %_ptr_Uniform_float %1738 %uint_3 %1746 = OpLoad %float %1745 %1747 = OpCompositeConstruct %v4float %1740 %1742 %1744 %1746 %1748 = OpDot %float %1737 %1747 %1749 = OpLoad %v4float %r2 %1750 = OpCompositeInsert %v4float %1748 %1749 3 OpStore %r2 %1750 %1751 = OpLoad %v4float %r0 %1752 = OpCompositeExtract %float %1751 3 %1753 = OpBitcast %uint %1752 %1754 = OpConvertUToF %float %1753 %1755 = OpLoad %v4float %r0 %1756 = OpCompositeInsert %v4float %1754 %1755 3 OpStore %r0 %1756 %1757 = OpLoad %v4float %r0 %1758 = OpCompositeExtract %float %1757 0 %1759 = OpLoad %v4float %o0 %1760 = OpCompositeInsert %v4float %1758 %1759 0 OpStore %o0 %1760 %1761 = OpLoad %v4float %r0 %1762 = OpCompositeExtract %float %1761 1 %1763 = OpLoad %v4float %o0 %1764 = OpCompositeInsert %v4float %1762 %1763 1 OpStore %o0 %1764 %1765 = OpLoad %v4float %r0 %1766 = OpCompositeExtract %float %1765 2 %1767 = OpLoad %v4float %o0 %1768 = OpCompositeInsert %v4float %1766 %1767 2 OpStore %o0 %1768 %1769 = OpLoad %v4float %r2 %1770 = OpCompositeExtract %float %1769 3 %1771 = OpLoad %v4float %o0 %1772 = OpCompositeInsert %v4float %1770 %1771 3 OpStore %o0 %1772 %1773 = OpLoad %v4float %r2 %1774 = OpVectorShuffle %v3float %1773 %1773 0 1 2 OpStore %o1 %1774 %1775 = OpLoad %v4float %r3 %1776 = OpVectorShuffle %v3float %1775 %1775 0 1 2 OpStore %o2 %1776 %1778 = OpBitcast %v2float %1777 %1779 = OpLoad %v3float %o3 %1780 = OpVectorShuffle %v3float %1779 %1778 3 4 2 OpStore %o3 %1780 %1781 = OpLoad %v4float %r0 %1782 = OpCompositeExtract %float %1781 3 %1783 = OpLoad %v3float %o3 %1784 = OpCompositeInsert %v3float %1782 %1783 2 OpStore %o3 %1784 %1785 = OpLoad %v4float %o0 %1786 = OpAccessChain %_ptr_Output_v4float %gs_vertex_out %int_0 OpStore %1786 %1785 OpEmitVertex %1787 = OpBitcast %float %uint_1065353216 %1788 = OpLoad %v4float %r4 %1789 = OpCompositeInsert %v4float %1787 %1788 3 OpStore %r4 %1789 %1790 = OpLoad %v4float %r4 %1791 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_0 %1792 = OpAccessChain %_ptr_Uniform_float %1791 %uint_0 %1793 = OpLoad %float %1792 %1794 = OpAccessChain %_ptr_Uniform_float %1791 %uint_1 %1795 = OpLoad %float %1794 %1796 = OpAccessChain %_ptr_Uniform_float %1791 %uint_2 %1797 = OpLoad %float %1796 %1798 = OpAccessChain %_ptr_Uniform_float %1791 %uint_3 %1799 = OpLoad %float %1798 %1800 = OpCompositeConstruct %v4float %1793 %1795 %1797 %1799 %1801 = OpDot %float %1790 %1800 %1802 = OpLoad %v4float %r0 %1803 = OpCompositeInsert %v4float %1801 %1802 0 OpStore %r0 %1803 %1804 = OpLoad %v4float %r4 %1805 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_1 %1806 = OpAccessChain %_ptr_Uniform_float %1805 %uint_0 %1807 = OpLoad %float %1806 %1808 = OpAccessChain %_ptr_Uniform_float %1805 %uint_1 %1809 = OpLoad %float %1808 %1810 = OpAccessChain %_ptr_Uniform_float %1805 %uint_2 %1811 = OpLoad %float %1810 %1812 = OpAccessChain %_ptr_Uniform_float %1805 %uint_3 %1813 = OpLoad %float %1812 %1814 = OpCompositeConstruct %v4float %1807 %1809 %1811 %1813 %1815 = OpDot %float %1804 %1814 %1816 = OpLoad %v4float %r0 %1817 = OpCompositeInsert %v4float %1815 %1816 1 OpStore %r0 %1817 %1818 = OpLoad %v4float %r4 %1819 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_2 %1820 = OpAccessChain %_ptr_Uniform_float %1819 %uint_0 %1821 = OpLoad %float %1820 %1822 = OpAccessChain %_ptr_Uniform_float %1819 %uint_1 %1823 = OpLoad %float %1822 %1824 = OpAccessChain %_ptr_Uniform_float %1819 %uint_2 %1825 = OpLoad %float %1824 %1826 = OpAccessChain %_ptr_Uniform_float %1819 %uint_3 %1827 = OpLoad %float %1826 %1828 = OpCompositeConstruct %v4float %1821 %1823 %1825 %1827 %1829 = OpDot %float %1818 %1828 %1830 = OpLoad %v4float %r0 %1831 = OpCompositeInsert %v4float %1829 %1830 2 OpStore %r0 %1831 %1832 = OpLoad %v4float %r4 %1833 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_3 %1834 = OpAccessChain %_ptr_Uniform_float %1833 %uint_0 %1835 = OpLoad %float %1834 %1836 = OpAccessChain %_ptr_Uniform_float %1833 %uint_1 %1837 = OpLoad %float %1836 %1838 = OpAccessChain %_ptr_Uniform_float %1833 %uint_2 %1839 = OpLoad %float %1838 %1840 = OpAccessChain %_ptr_Uniform_float %1833 %uint_3 %1841 = OpLoad %float %1840 %1842 = OpCompositeConstruct %v4float %1835 %1837 %1839 %1841 %1843 = OpDot %float %1832 %1842 %1844 = OpLoad %v4float %r2 %1845 = OpCompositeInsert %v4float %1843 %1844 3 OpStore %r2 %1845 %1846 = OpLoad %v4float %r0 %1847 = OpCompositeExtract %float %1846 0 %1848 = OpLoad %v4float %o0 %1849 = OpCompositeInsert %v4float %1847 %1848 0 OpStore %o0 %1849 %1850 = OpLoad %v4float %r0 %1851 = OpCompositeExtract %float %1850 1 %1852 = OpLoad %v4float %o0 %1853 = OpCompositeInsert %v4float %1851 %1852 1 OpStore %o0 %1853 %1854 = OpLoad %v4float %r0 %1855 = OpCompositeExtract %float %1854 2 %1856 = OpLoad %v4float %o0 %1857 = OpCompositeInsert %v4float %1855 %1856 2 OpStore %o0 %1857 %1858 = OpLoad %v4float %r2 %1859 = OpCompositeExtract %float %1858 3 %1860 = OpLoad %v4float %o0 %1861 = OpCompositeInsert %v4float %1859 %1860 3 OpStore %o0 %1861 %1862 = OpLoad %v4float %r2 %1863 = OpVectorShuffle %v3float %1862 %1862 0 1 2 OpStore %o1 %1863 %1864 = OpLoad %v4float %r3 %1865 = OpVectorShuffle %v3float %1864 %1864 0 1 2 OpStore %o2 %1865 %1867 = OpBitcast %v2float %1866 %1868 = OpLoad %v3float %o3 %1869 = OpVectorShuffle %v3float %1868 %1867 3 4 2 OpStore %o3 %1869 %1870 = OpLoad %v4float %r0 %1871 = OpCompositeExtract %float %1870 3 %1872 = OpLoad %v3float %o3 %1873 = OpCompositeInsert %v3float %1871 %1872 2 OpStore %o3 %1873 %1874 = OpLoad %v4float %o0 %1875 = OpAccessChain %_ptr_Output_v4float %gs_vertex_out %int_0 OpStore %1875 %1874 OpEmitVertex %1876 = OpBitcast %float %uint_1065353216 %1877 = OpLoad %v4float %r6 %1878 = OpCompositeInsert %v4float %1876 %1877 3 OpStore %r6 %1878 %1879 = OpLoad %v4float %r6 %1880 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_0 %1881 = OpAccessChain %_ptr_Uniform_float %1880 %uint_0 %1882 = OpLoad %float %1881 %1883 = OpAccessChain %_ptr_Uniform_float %1880 %uint_1 %1884 = OpLoad %float %1883 %1885 = OpAccessChain %_ptr_Uniform_float %1880 %uint_2 %1886 = OpLoad %float %1885 %1887 = OpAccessChain %_ptr_Uniform_float %1880 %uint_3 %1888 = OpLoad %float %1887 %1889 = OpCompositeConstruct %v4float %1882 %1884 %1886 %1888 %1890 = OpDot %float %1879 %1889 %1891 = OpLoad %v4float %r0 %1892 = OpCompositeInsert %v4float %1890 %1891 0 OpStore %r0 %1892 %1893 = OpLoad %v4float %r6 %1894 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_1 %1895 = OpAccessChain %_ptr_Uniform_float %1894 %uint_0 %1896 = OpLoad %float %1895 %1897 = OpAccessChain %_ptr_Uniform_float %1894 %uint_1 %1898 = OpLoad %float %1897 %1899 = OpAccessChain %_ptr_Uniform_float %1894 %uint_2 %1900 = OpLoad %float %1899 %1901 = OpAccessChain %_ptr_Uniform_float %1894 %uint_3 %1902 = OpLoad %float %1901 %1903 = OpCompositeConstruct %v4float %1896 %1898 %1900 %1902 %1904 = OpDot %float %1893 %1903 %1905 = OpLoad %v4float %r0 %1906 = OpCompositeInsert %v4float %1904 %1905 1 OpStore %r0 %1906 %1907 = OpLoad %v4float %r6 %1908 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_2 %1909 = OpAccessChain %_ptr_Uniform_float %1908 %uint_0 %1910 = OpLoad %float %1909 %1911 = OpAccessChain %_ptr_Uniform_float %1908 %uint_1 %1912 = OpLoad %float %1911 %1913 = OpAccessChain %_ptr_Uniform_float %1908 %uint_2 %1914 = OpLoad %float %1913 %1915 = OpAccessChain %_ptr_Uniform_float %1908 %uint_3 %1916 = OpLoad %float %1915 %1917 = OpCompositeConstruct %v4float %1910 %1912 %1914 %1916 %1918 = OpDot %float %1907 %1917 %1919 = OpLoad %v4float %r0 %1920 = OpCompositeInsert %v4float %1918 %1919 2 OpStore %r0 %1920 %1921 = OpLoad %v4float %r6 %1922 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_3 %1923 = OpAccessChain %_ptr_Uniform_float %1922 %uint_0 %1924 = OpLoad %float %1923 %1925 = OpAccessChain %_ptr_Uniform_float %1922 %uint_1 %1926 = OpLoad %float %1925 %1927 = OpAccessChain %_ptr_Uniform_float %1922 %uint_2 %1928 = OpLoad %float %1927 %1929 = OpAccessChain %_ptr_Uniform_float %1922 %uint_3 %1930 = OpLoad %float %1929 %1931 = OpCompositeConstruct %v4float %1924 %1926 %1928 %1930 %1932 = OpDot %float %1921 %1931 %1933 = OpLoad %v4float %r2 %1934 = OpCompositeInsert %v4float %1932 %1933 3 OpStore %r2 %1934 %1935 = OpLoad %v4float %r0 %1936 = OpCompositeExtract %float %1935 0 %1937 = OpLoad %v4float %o0 %1938 = OpCompositeInsert %v4float %1936 %1937 0 OpStore %o0 %1938 %1939 = OpLoad %v4float %r0 %1940 = OpCompositeExtract %float %1939 1 %1941 = OpLoad %v4float %o0 %1942 = OpCompositeInsert %v4float %1940 %1941 1 OpStore %o0 %1942 %1943 = OpLoad %v4float %r0 %1944 = OpCompositeExtract %float %1943 2 %1945 = OpLoad %v4float %o0 %1946 = OpCompositeInsert %v4float %1944 %1945 2 OpStore %o0 %1946 %1947 = OpLoad %v4float %r2 %1948 = OpCompositeExtract %float %1947 3 %1949 = OpLoad %v4float %o0 %1950 = OpCompositeInsert %v4float %1948 %1949 3 OpStore %o0 %1950 %1951 = OpLoad %v4float %r2 %1952 = OpVectorShuffle %v3float %1951 %1951 0 1 2 OpStore %o1 %1952 %1953 = OpLoad %v4float %r3 %1954 = OpVectorShuffle %v3float %1953 %1953 0 1 2 OpStore %o2 %1954 %1955 = OpBitcast %v2float %1285 %1956 = OpLoad %v3float %o3 %1957 = OpVectorShuffle %v3float %1956 %1955 3 4 2 OpStore %o3 %1957 %1958 = OpLoad %v4float %r0 %1959 = OpCompositeExtract %float %1958 3 %1960 = OpLoad %v3float %o3 %1961 = OpCompositeInsert %v3float %1959 %1960 2 OpStore %o3 %1961 %1962 = OpLoad %v4float %o0 %1963 = OpAccessChain %_ptr_Output_v4float %gs_vertex_out %int_0 OpStore %1963 %1962 OpEmitVertex %1964 = OpBitcast %float %uint_1065353216 %1965 = OpLoad %v4float %r1 %1966 = OpCompositeInsert %v4float %1964 %1965 3 OpStore %r1 %1966 %1967 = OpLoad %v4float %r1 %1968 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_0 %1969 = OpAccessChain %_ptr_Uniform_float %1968 %uint_0 %1970 = OpLoad %float %1969 %1971 = OpAccessChain %_ptr_Uniform_float %1968 %uint_1 %1972 = OpLoad %float %1971 %1973 = OpAccessChain %_ptr_Uniform_float %1968 %uint_2 %1974 = OpLoad %float %1973 %1975 = OpAccessChain %_ptr_Uniform_float %1968 %uint_3 %1976 = OpLoad %float %1975 %1977 = OpCompositeConstruct %v4float %1970 %1972 %1974 %1976 %1978 = OpDot %float %1967 %1977 %1979 = OpLoad %v4float %r0 %1980 = OpCompositeInsert %v4float %1978 %1979 0 OpStore %r0 %1980 %1981 = OpLoad %v4float %r1 %1982 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_1 %1983 = OpAccessChain %_ptr_Uniform_float %1982 %uint_0 %1984 = OpLoad %float %1983 %1985 = OpAccessChain %_ptr_Uniform_float %1982 %uint_1 %1986 = OpLoad %float %1985 %1987 = OpAccessChain %_ptr_Uniform_float %1982 %uint_2 %1988 = OpLoad %float %1987 %1989 = OpAccessChain %_ptr_Uniform_float %1982 %uint_3 %1990 = OpLoad %float %1989 %1991 = OpCompositeConstruct %v4float %1984 %1986 %1988 %1990 %1992 = OpDot %float %1981 %1991 %1993 = OpLoad %v4float %r0 %1994 = OpCompositeInsert %v4float %1992 %1993 1 OpStore %r0 %1994 %1995 = OpLoad %v4float %r1 %1996 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_2 %1997 = OpAccessChain %_ptr_Uniform_float %1996 %uint_0 %1998 = OpLoad %float %1997 %1999 = OpAccessChain %_ptr_Uniform_float %1996 %uint_1 %2000 = OpLoad %float %1999 %2001 = OpAccessChain %_ptr_Uniform_float %1996 %uint_2 %2002 = OpLoad %float %2001 %2003 = OpAccessChain %_ptr_Uniform_float %1996 %uint_3 %2004 = OpLoad %float %2003 %2005 = OpCompositeConstruct %v4float %1998 %2000 %2002 %2004 %2006 = OpDot %float %1995 %2005 %2007 = OpLoad %v4float %r0 %2008 = OpCompositeInsert %v4float %2006 %2007 2 OpStore %r0 %2008 %2009 = OpLoad %v4float %r1 %2010 = OpAccessChain %_ptr_Uniform_v4float %cb1 %int_0 %int_3 %2011 = OpAccessChain %_ptr_Uniform_float %2010 %uint_0 %2012 = OpLoad %float %2011 %2013 = OpAccessChain %_ptr_Uniform_float %2010 %uint_1 %2014 = OpLoad %float %2013 %2015 = OpAccessChain %_ptr_Uniform_float %2010 %uint_2 %2016 = OpLoad %float %2015 %2017 = OpAccessChain %_ptr_Uniform_float %2010 %uint_3 %2018 = OpLoad %float %2017 %2019 = OpCompositeConstruct %v4float %2012 %2014 %2016 %2018 %2020 = OpDot %float %2009 %2019 %2021 = OpLoad %v4float %r1 %2022 = OpCompositeInsert %v4float %2020 %2021 0 OpStore %r1 %2022 %2023 = OpLoad %v4float %r0 %2024 = OpCompositeExtract %float %2023 0 %2025 = OpLoad %v4float %o0 %2026 = OpCompositeInsert %v4float %2024 %2025 0 OpStore %o0 %2026 %2027 = OpLoad %v4float %r0 %2028 = OpCompositeExtract %float %2027 1 %2029 = OpLoad %v4float %o0 %2030 = OpCompositeInsert %v4float %2028 %2029 1 OpStore %o0 %2030 %2031 = OpLoad %v4float %r0 %2032 = OpCompositeExtract %float %2031 2 %2033 = OpLoad %v4float %o0 %2034 = OpCompositeInsert %v4float %2032 %2033 2 OpStore %o0 %2034 %2035 = OpLoad %v4float %r1 %2036 = OpCompositeExtract %float %2035 0 %2037 = OpLoad %v4float %o0 %2038 = OpCompositeInsert %v4float %2036 %2037 3 OpStore %o0 %2038 %2039 = OpLoad %v4float %r2 %2040 = OpVectorShuffle %v3float %2039 %2039 0 1 2 OpStore %o1 %2040 %2041 = OpLoad %v4float %r3 %2042 = OpVectorShuffle %v3float %2041 %2041 0 1 2 OpStore %o2 %2042 %2044 = OpBitcast %v2float %2043 %2045 = OpLoad %v3float %o3 %2046 = OpVectorShuffle %v3float %2045 %2044 3 4 2 OpStore %o3 %2046 %2047 = OpLoad %v4float %r0 %2048 = OpCompositeExtract %float %2047 3 %2049 = OpLoad %v3float %o3 %2050 = OpCompositeInsert %v3float %2048 %2049 2 OpStore %o3 %2050 %2051 = OpLoad %v4float %o0 %2052 = OpAccessChain %_ptr_Output_v4float %gs_vertex_out %int_0 OpStore %2052 %2051 OpEmitVertex OpEndPrimitive OpBranch %1449 %1449 = OpLabel OpBranch %132 %132 = OpLabel OpReturn OpFunctionEnd %main = OpFunction %void None %11 %2053 = OpLabel %2055 = OpAccessChain %_ptr_Input_v4float %v0 %int_0 %2056 = OpLoad %v4float %2055 %2057 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_0 OpStore %2057 %2056 %2059 = OpAccessChain %_ptr_Input_v3float %v1 %int_0 %2060 = OpLoad %v3float %2059 %2061 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_1 %2062 = OpLoad %v4float %2061 %2063 = OpVectorShuffle %v4float %2062 %2060 4 5 6 3 OpStore %2061 %2063 %2064 = OpAccessChain %_ptr_Input_v4float %v2 %int_0 %2065 = OpLoad %v4float %2064 %2066 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_2 OpStore %2066 %2065 %2068 = OpAccessChain %_ptr_Input_float %v3 %int_0 %2069 = OpLoad %float %2068 %2070 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %int_3 %2071 = OpLoad %v4float %2070 %2072 = OpCompositeInsert %v4float %2069 %2071 0 OpStore %2070 %2072 %2073 = OpFunctionCall %void %gs_main OpReturn OpFunctionEnd NIR: shader: MESA_SHADER_VERTEX inputs: 0 outputs: 0 uniforms: 0 shared: 0 decl_var shader_in INTERP_MODE_NONE vec3 v0 (VERT_ATTRIB_GENERIC0.xyz, 64, 0) decl_var shader_in INTERP_MODE_NONE vec4 v1 (VERT_ATTRIB_GENERIC1, 68, 0) decl_var shader_out INTERP_MODE_NONE float o3 (VARYING_SLOT_VAR2.z, 132, 0) decl_var shader_out INTERP_MODE_NONE float o0 (VARYING_SLOT_VAR0.x, 124, 0) decl_var shader_out INTERP_MODE_NONE float o0@0 (VARYING_SLOT_VAR0.y, 124, 0) decl_var shader_out INTERP_MODE_NONE float o0@1 (VARYING_SLOT_VAR0.z, 124, 0) decl_var shader_out INTERP_MODE_NONE float o0@2 (VARYING_SLOT_VAR0.w, 124, 0) decl_var shader_out INTERP_MODE_NONE float o1 (VARYING_SLOT_VAR1.x, 128, 0) decl_var shader_out INTERP_MODE_NONE float o1@3 (VARYING_SLOT_VAR1.y, 128, 0) decl_var shader_out INTERP_MODE_NONE float o1@4 (VARYING_SLOT_VAR1.z, 128, 0) decl_var shader_out INTERP_MODE_NONE float o2 (VARYING_SLOT_VAR1.w, 128, 0) decl_var shader_out INTERP_MODE_NONE float o2@5 (VARYING_SLOT_VAR2.x, 132, 0) decl_var shader_out INTERP_MODE_NONE float o2@6 (VARYING_SLOT_VAR2.y, 132, 0) decl_function main (0 params) impl main { decl_var INTERP_MODE_NONE vec4 out@o0-temp decl_var INTERP_MODE_NONE vec3 in@v0-temp decl_var INTERP_MODE_NONE float out@o3-temp decl_var INTERP_MODE_NONE vec3 out@o1-temp decl_var INTERP_MODE_NONE vec4 r1 decl_var INTERP_MODE_NONE vec4 r0 decl_var INTERP_MODE_NONE vec4 out@o2-temp decl_var INTERP_MODE_NONE vec4 in@v1-temp decl_var INTERP_MODE_NONE vec4 (shader_in[0]) decl_var INTERP_MODE_NONE vec4 (shader_in[1]) decl_var INTERP_MODE_NONE float o2@7 block block_0: /* preds: */ vec1 32 ssa_0 = deref_var &v0 (shader_in vec3) vec3 32 ssa_1 = intrinsic load_deref (ssa_0) (0) /* access=0 */ vec1 32 ssa_2 = deref_var &v1 (shader_in vec4) vec4 32 ssa_3 = intrinsic load_deref (ssa_2) (0) /* access=0 */ vec1 32 ssa_4 = load_const (0x00000008 /* 0.000000 */) vec1 32 ssa_5 = load_const (0x437f0000 /* 255.000000 */) vec1 32 ssa_6 = load_const (0x00000000 /* 0.000000 */) vec1 32 ssa_7 = load_const (0x3f800000 /* 1.000000 */) vec1 32 ssa_8 = load_const (0xbf800000 /* -1.000000 */) vec1 32 ssa_9 = load_const (0x40000000 /* 2.000000 */) vec1 32 ssa_10 = load_const (0x3c810204 /* 0.015748 */) vec1 32 ssa_11 = load_const (0x80000000 /* -0.000000 */) vec1 32 ssa_12 = load_const (0xc3000000 /* -128.000000 */) vec1 32 ssa_13 = load_const (0x3efefeff /* 0.498039 */) vec1 32 ssa_14 = intrinsic vulkan_resource_index (ssa_6) (0, 0, 6) /* desc-set=0 */ /* binding=0 */ /* desc_type=UBO */ vec1 32 ssa_15 = load_const (0x00000020 /* 0.000000 */) vec1 32 ssa_16 = load_const (0x00000024 /* 0.000000 */) vec1 32 ssa_17 = load_const (0x00000028 /* 0.000000 */) vec1 32 ssa_18 = load_const (0x0000002c /* 0.000000 */) vec1 32 ssa_19 = intrinsic load_ubo (ssa_14, ssa_15) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_20 = fmul ssa_1.x, ssa_19 vec1 32 ssa_21 = intrinsic load_ubo (ssa_14, ssa_16) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_22 = fmul ssa_1.y, ssa_21 vec1 32 ssa_23 = fadd ssa_20, ssa_22 vec1 32 ssa_24 = intrinsic load_ubo (ssa_14, ssa_17) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_25 = fmul ssa_1.z, ssa_24 vec1 32 ssa_26 = fadd ssa_23, ssa_25 vec1 32 ssa_27 = intrinsic load_ubo (ssa_14, ssa_18) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_28 = fadd ssa_26, ssa_27 vec1 32 ssa_29 = load_const (0x00000030 /* 0.000000 */) vec1 32 ssa_30 = load_const (0x00000034 /* 0.000000 */) vec1 32 ssa_31 = load_const (0x00000038 /* 0.000000 */) vec1 32 ssa_32 = load_const (0x0000003c /* 0.000000 */) vec1 32 ssa_33 = intrinsic load_ubo (ssa_14, ssa_29) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_34 = fmul ssa_1.x, ssa_33 vec1 32 ssa_35 = intrinsic load_ubo (ssa_14, ssa_30) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_36 = fmul ssa_1.y, ssa_35 vec1 32 ssa_37 = fadd ssa_34, ssa_36 vec1 32 ssa_38 = intrinsic load_ubo (ssa_14, ssa_31) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_39 = fmul ssa_1.z, ssa_38 vec1 32 ssa_40 = fadd ssa_37, ssa_39 vec1 32 ssa_41 = intrinsic load_ubo (ssa_14, ssa_32) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_42 = fadd ssa_40, ssa_41 vec1 32 ssa_43 = load_const (0x00000040 /* 0.000000 */) vec1 32 ssa_44 = load_const (0x00000044 /* 0.000000 */) vec1 32 ssa_45 = load_const (0x00000048 /* 0.000000 */) vec1 32 ssa_46 = load_const (0x0000004c /* 0.000000 */) vec1 32 ssa_47 = intrinsic load_ubo (ssa_14, ssa_43) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_48 = fmul ssa_1.x, ssa_47 vec1 32 ssa_49 = intrinsic load_ubo (ssa_14, ssa_44) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_50 = fmul ssa_1.y, ssa_49 vec1 32 ssa_51 = fadd ssa_48, ssa_50 vec1 32 ssa_52 = intrinsic load_ubo (ssa_14, ssa_45) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_53 = fmul ssa_1.z, ssa_52 vec1 32 ssa_54 = fadd ssa_51, ssa_53 vec1 32 ssa_55 = intrinsic load_ubo (ssa_14, ssa_46) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_56 = fadd ssa_54, ssa_55 vec1 32 ssa_57 = flt32 ssa_13, ssa_3.y vec1 32 ssa_58 = b32csel ssa_57, ssa_12, ssa_11 vec1 32 ssa_59 = b32csel ssa_57, ssa_7, ssa_8 vec1 32 ssa_60 = fmul ssa_3.y, ssa_5 vec1 32 ssa_61 = fadd ssa_60, ssa_58 vec1 32 ssa_62 = fmul ssa_3.x, ssa_9 vec1 32 ssa_63 = fadd ssa_62, ssa_8 vec1 32 ssa_64 = fmul ssa_61, ssa_10 vec1 32 ssa_65 = fadd ssa_64, ssa_8 vec1 32 ssa_66 = fmul ssa_63, ssa_63 vec1 32 ssa_67 = fmul ssa_65, ssa_65 vec1 32 ssa_68 = fadd ssa_66, ssa_67 vec1 32 ssa_69 = fneg ssa_68 vec1 32 ssa_70 = fadd ssa_69, ssa_7 vec1 32 ssa_71 = fsqrt ssa_70 vec1 32 ssa_72 = flt32 ssa_6, ssa_70 vec1 32 ssa_73 = b2i32 ssa_72 vec1 32 ssa_74 = ineg ssa_73 vec1 32 ssa_75 = fmul ssa_59, ssa_71 vec1 32 ssa_76 = iand ssa_75, ssa_74 vec1 32 ssa_77 = fmul ssa_76, ssa_76 vec1 32 ssa_78 = fadd ssa_66, ssa_77 vec1 32 ssa_79 = fadd ssa_78, ssa_67 vec1 32 ssa_80 = frsq ssa_79 vec1 32 ssa_81 = fmul ssa_80, ssa_63 vec1 32 ssa_82 = fmul ssa_80, ssa_76 vec1 32 ssa_83 = fmul ssa_80, ssa_65 vec1 32 ssa_84 = fmul ssa_3.z, ssa_5 vec1 32 ssa_85 = fmul ssa_3.w, ssa_5 vec1 32 ssa_86 = f2u32 ssa_84 vec1 32 ssa_87 = f2u32 ssa_85 vec1 32 ssa_88 = ishl ssa_86, ssa_4 vec1 32 ssa_89 = iadd ssa_87, ssa_88 vec1 32 ssa_90 = deref_var &o0 (shader_out float) intrinsic store_deref (ssa_90, ssa_28) (1, 0) /* wrmask=x */ /* access=0 */ vec1 32 ssa_91 = deref_var &o0@0 (shader_out float) intrinsic store_deref (ssa_91, ssa_42) (1, 0) /* wrmask=x */ /* access=0 */ vec1 32 ssa_92 = deref_var &o0@1 (shader_out float) intrinsic store_deref (ssa_92, ssa_56) (1, 0) /* wrmask=x */ /* access=0 */ vec1 32 ssa_93 = deref_var &o0@2 (shader_out float) intrinsic store_deref (ssa_93, ssa_7) (1, 0) /* wrmask=x */ /* access=0 */ vec1 32 ssa_94 = deref_var &o1 (shader_out float) intrinsic store_deref (ssa_94, ssa_81) (1, 0) /* wrmask=x */ /* access=0 */ vec1 32 ssa_95 = deref_var &o1@3 (shader_out float) intrinsic store_deref (ssa_95, ssa_82) (1, 0) /* wrmask=x */ /* access=0 */ vec1 32 ssa_96 = deref_var &o1@4 (shader_out float) intrinsic store_deref (ssa_96, ssa_83) (1, 0) /* wrmask=x */ /* access=0 */ vec1 32 ssa_97 = deref_var &o2 (shader_out float) vec1 32 ssa_98 = imov ssa_1.x intrinsic store_deref (ssa_97, ssa_98) (1, 0) /* wrmask=x */ /* access=0 */ vec1 32 ssa_99 = deref_var &o2@5 (shader_out float) vec1 32 ssa_100 = imov ssa_1.y intrinsic store_deref (ssa_99, ssa_100) (1, 0) /* wrmask=x */ /* access=0 */ vec1 32 ssa_101 = deref_var &o2@6 (shader_out float) vec1 32 ssa_102 = imov ssa_1.z intrinsic store_deref (ssa_101, ssa_102) (1, 0) /* wrmask=x */ /* access=0 */ vec1 32 ssa_103 = deref_var &o3 (shader_out float) intrinsic store_deref (ssa_103, ssa_89) (1, 0) /* wrmask=x */ /* access=0 */ /* succs: block_1 */ block block_1: } LLVM IR: ; ModuleID = 'mesa-shader' source_filename = "mesa-shader" target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-ni:7" target triple = "amdgcn-mesa-mesa3d" define amdgpu_gs void @main(i32 inreg, i32 inreg, i32 inreg, i32 inreg, i32 inreg, i32 inreg, [0 x i8] addrspace(6)* inreg noalias dereferenceable(18446744073709551615), [0 x i8] addrspace(6)* inreg noalias dereferenceable(18446744073709551615), [0 x <4 x i32>] addrspace(6)* inreg noalias dereferenceable(18446744073709551615), i32 inreg, i32 inreg, i32, i32, i32, i32, i32, i32, i32, i32, i32) #0 { main_body: %20 = call i8 addrspace(4)* @llvm.amdgcn.implicit.buffer.ptr() #3 call void @llvm.amdgcn.init.exec(i64 -1) #2 %21 = and i32 %1, 255 %22 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) #3 %23 = call i32 @llvm.amdgcn.mbcnt.hi(i32 -1, i32 %22) #3, !range !0 %24 = icmp ult i32 %23, %21 br i1 %24, label %25, label %136 25: ; preds = %main_body %26 = add i32 %16, %9 %27 = getelementptr inbounds [0 x <4 x i32>], [0 x <4 x i32>] addrspace(6)* %8, i32 0, i32 0, !amdgpu.uniform !1 %28 = load <4 x i32>, <4 x i32> addrspace(6)* %27, align 16, !invariant.load !1 %29 = call <4 x i32> @llvm.amdgcn.struct.tbuffer.load.v4i32(<4 x i32> %28, i32 %26, i32 0, i32 0, i32 125, i32 0) #3 %30 = extractelement <4 x i32> %29, i32 0 %31 = extractelement <4 x i32> %29, i32 1 %32 = extractelement <4 x i32> %29, i32 2 %33 = call <4 x i32> @llvm.amdgcn.struct.tbuffer.load.v4i32(<4 x i32> %28, i32 %26, i32 12, i32 0, i32 10, i32 0) #3 %34 = bitcast [0 x i8] addrspace(6)* %7 to <4 x i32> addrspace(6)*, !amdgpu.uniform !1 %35 = load <4 x i32>, <4 x i32> addrspace(6)* %34, align 16, !invariant.load !1 %36 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %35, i32 32, i32 0) #3 %37 = bitcast i32 %30 to float %38 = fmul float %36, %37 %39 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %35, i32 36, i32 0) #3 %40 = bitcast i32 %31 to float %41 = fmul float %39, %40 %42 = fadd float %38, %41 %43 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %35, i32 40, i32 0) #3 %44 = bitcast i32 %32 to float %45 = fmul float %43, %44 %46 = fadd float %42, %45 %47 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %35, i32 44, i32 0) #3 %48 = fadd float %46, %47 %49 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %35, i32 48, i32 0) #3 %50 = fmul float %49, %37 %51 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %35, i32 52, i32 0) #3 %52 = fmul float %51, %40 %53 = fadd float %50, %52 %54 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %35, i32 56, i32 0) #3 %55 = fmul float %54, %44 %56 = fadd float %53, %55 %57 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %35, i32 60, i32 0) #3 %58 = fadd float %56, %57 %59 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %35, i32 64, i32 0) #3 %60 = fmul float %59, %37 %61 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %35, i32 68, i32 0) #3 %62 = fmul float %61, %40 %63 = fadd float %60, %62 %64 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %35, i32 72, i32 0) #3 %65 = fmul float %64, %44 %66 = fadd float %63, %65 %67 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %35, i32 76, i32 0) #3 %68 = fadd float %66, %67 %bc = bitcast <4 x i32> %33 to <4 x float> %69 = extractelement <4 x float> %bc, i32 1 %70 = fcmp ogt float %69, 0x3FDFDFDFE0000000 %71 = fmul float %69, 2.550000e+02 %72 = select i1 %70, float -1.280000e+02, float -0.000000e+00 %73 = fadd float %71, %72 %bc279 = bitcast <4 x i32> %33 to <4 x float> %74 = extractelement <4 x float> %bc279, i32 0 %75 = fmul float %74, 2.000000e+00 %76 = fadd float %75, -1.000000e+00 %77 = fmul float %73, 0x3F90204080000000 %78 = fadd float %77, -1.000000e+00 %79 = fmul float %76, %76 %80 = fmul float %78, %78 %81 = fadd float %79, %80 %82 = fsub float 1.000000e+00, %81 %83 = call float @llvm.sqrt.f32(float %82) #3 %84 = fcmp ogt float %82, 0.000000e+00 %85 = select i1 %70, float 1.000000e+00, float -1.000000e+00 %86 = fmul float %85, %83 %87 = select i1 %84, float %86, float 0.000000e+00 %88 = fmul float %87, %87 %89 = fadd float %79, %88 %90 = fadd float %89, %80 %91 = call float @llvm.sqrt.f32(float %90) #3 %92 = fdiv float 1.000000e+00, %91 %93 = fmul float %92, %76 %94 = fmul float %92, %87 %95 = fmul float %92, %78 %bc280 = bitcast <4 x i32> %33 to <4 x float> %96 = extractelement <4 x float> %bc280, i32 2 %97 = fmul float %96, 2.550000e+02 %bc281 = bitcast <4 x i32> %33 to <4 x float> %98 = extractelement <4 x float> %bc281, i32 3 %99 = fmul float %98, 2.550000e+02 %100 = fptoui float %97 to i32 %101 = fptoui float %99 to i32 %102 = shl i32 %100, 8 %103 = add i32 %102, %101 %104 = lshr i32 %1, 18 %105 = and i32 %104, 960 %106 = or i32 %23, %105 %107 = mul nuw nsw i32 %106, 28 %108 = add nuw nsw i32 %107, 16 %109 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %108 %110 = bitcast i32 addrspace(3)* %109 to float addrspace(3)* store float %48, float addrspace(3)* %110, align 16 %111 = add nuw nsw i32 %107, 17 %112 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %111 %113 = bitcast i32 addrspace(3)* %112 to float addrspace(3)* store float %58, float addrspace(3)* %113, align 4 %114 = add nuw nsw i32 %107, 18 %115 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %114 %116 = bitcast i32 addrspace(3)* %115 to float addrspace(3)* store float %68, float addrspace(3)* %116, align 8 %117 = add nuw nsw i32 %107, 19 %118 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %117 store i32 1065353216, i32 addrspace(3)* %118, align 4 %119 = add nuw nsw i32 %107, 20 %120 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %119 %121 = bitcast i32 addrspace(3)* %120 to float addrspace(3)* store float %93, float addrspace(3)* %121, align 16 %122 = add nuw nsw i32 %107, 21 %123 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %122 %124 = bitcast i32 addrspace(3)* %123 to float addrspace(3)* store float %94, float addrspace(3)* %124, align 4 %125 = add nuw nsw i32 %107, 22 %126 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %125 %127 = bitcast i32 addrspace(3)* %126 to float addrspace(3)* store float %95, float addrspace(3)* %127, align 8 %128 = add nuw nsw i32 %107, 23 %129 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %128 store i32 %30, i32 addrspace(3)* %129, align 4 %130 = add nuw nsw i32 %107, 24 %131 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %130 store i32 %31, i32 addrspace(3)* %131, align 16 %132 = add nuw nsw i32 %107, 25 %133 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %132 store i32 %32, i32 addrspace(3)* %133, align 4 %134 = add nuw nsw i32 %107, 26 %135 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %134 store i32 %103, i32 addrspace(3)* %135, align 8 br label %136 136: ; preds = %25, %main_body call void @llvm.amdgcn.s.barrier() #2 %137 = getelementptr i8, i8 addrspace(4)* %20, i64 64 %138 = bitcast i8 addrspace(4)* %137 to <4 x i32> addrspace(4)* %139 = load <4 x i32>, <4 x i32> addrspace(4)* %138, align 16, !invariant.load !1 %140 = extractelement <4 x i32> %139, i32 1 %141 = or i32 %140, 13631488 %142 = insertelement <4 x i32> %139, i32 64, i32 2 %143 = insertelement <4 x i32> %142, i32 %141, i32 1 %144 = lshr i32 %1, 8 %145 = and i32 %144, 255 %146 = icmp ult i32 %23, %145 br i1 %146, label %147, label %204 147: ; preds = %136 %148 = and i32 %11, 65535 %149 = lshr i32 %1, 16 %150 = and i32 %149, 255 %151 = add nuw nsw i32 %148, 16 %152 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %151 %153 = bitcast i32 addrspace(3)* %152 to float addrspace(3)* %154 = load float, float addrspace(3)* %153, align 4 %155 = add nuw nsw i32 %148, 17 %156 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %155 %157 = bitcast i32 addrspace(3)* %156 to float addrspace(3)* %158 = load float, float addrspace(3)* %157, align 4 %159 = add nuw nsw i32 %148, 18 %160 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %159 %161 = bitcast i32 addrspace(3)* %160 to float addrspace(3)* %162 = load float, float addrspace(3)* %161, align 4 %163 = add nuw nsw i32 %148, 19 %164 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %163 %165 = bitcast i32 addrspace(3)* %164 to float addrspace(3)* %166 = load float, float addrspace(3)* %165, align 4 %167 = add nuw nsw i32 %148, 20 %168 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %167 %169 = load i32, i32 addrspace(3)* %168, align 4 %170 = add nuw nsw i32 %148, 21 %171 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %170 %172 = load i32, i32 addrspace(3)* %171, align 4 %173 = add nuw nsw i32 %148, 22 %174 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %173 %175 = load i32, i32 addrspace(3)* %174, align 4 %176 = add nuw nsw i32 %148, 23 %177 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %176 %178 = bitcast i32 addrspace(3)* %177 to float addrspace(3)* %179 = load float, float addrspace(3)* %178, align 4 %180 = add nuw nsw i32 %148, 24 %181 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %180 %182 = bitcast i32 addrspace(3)* %181 to float addrspace(3)* %183 = load float, float addrspace(3)* %182, align 4 %184 = add nuw nsw i32 %148, 25 %185 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %184 %186 = bitcast i32 addrspace(3)* %185 to float addrspace(3)* %187 = load float, float addrspace(3)* %186, align 4 %188 = add nuw nsw i32 %148, 26 %189 = getelementptr [16384 x i32], [16384 x i32] addrspace(3)* null, i32 0, i32 %188 %190 = load i32, i32 addrspace(3)* %189, align 4 %191 = fmul float %154, %154 %192 = fmul float %158, %158 %193 = fadd float %191, %192 %194 = fmul float %162, %162 %195 = fadd float %193, %194 %196 = call float @llvm.sqrt.f32(float %195) #3 %197 = getelementptr [0 x i8], [0 x i8] addrspace(6)* %7, i32 0, i32 16 %198 = bitcast i8 addrspace(6)* %197 to <4 x i32> addrspace(6)*, !amdgpu.uniform !1 %199 = load <4 x i32>, <4 x i32> addrspace(6)* %198, align 16, !invariant.load !1 %200 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %199, i32 592, i32 0) #3 %201 = fcmp olt float %196, %200 %202 = fcmp one float %166, 0.000000e+00 %203 = and i1 %202, %201 br i1 %203, label %if1, label %endif1 204: ; preds = %endif1, %136 ret void if1: ; preds = %147 %205 = lshr i32 %190, 8 %206 = xor i32 %205, 123459876 %207 = udiv i32 %206, 127773 %208 = mul nsw i32 %207, -2836 %209 = mul nsw i32 %207, -127773 %210 = add nsw i32 %209, %206 %211 = mul i32 %210, 16807 %212 = add i32 %211, %208 %213 = icmp slt i32 %212, 0 %214 = add i32 %212, 2147483647 %215 = select i1 %213, i32 %214, i32 %212 %216 = udiv i32 %215, 127773 %217 = mul nsw i32 %216, -2836 %218 = mul i32 %216, -127773 %219 = add i32 %218, %215 %220 = mul i32 %219, 16807 %221 = add i32 %220, %217 %222 = icmp slt i32 %221, 0 %223 = add i32 %221, 2147483647 %224 = select i1 %222, i32 %223, i32 %221 %225 = xor i32 %224, 123459876 %226 = sitofp i32 %225 to float %227 = fmul float %226, 0x3E00000000000000 %228 = getelementptr [0 x i8], [0 x i8] addrspace(6)* %7, i32 0, i32 64 %229 = bitcast i8 addrspace(6)* %228 to <4 x i32> addrspace(6)*, !amdgpu.uniform !1 %230 = shl i32 %190, 4 %231 = and i32 %230, 4080 %232 = or i32 %231, 12 %233 = load <4 x i32>, <4 x i32> addrspace(6)* %229, align 16, !invariant.load !1 %234 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %233, i32 %232, i32 0) #3 %235 = bitcast float %234 to i32 %236 = uitofp i32 %235 to float %237 = fmul float %227, %236 %238 = call float @llvm.minnum.f32(float %236, float %237) #3 %239 = fptoui float %238 to i32 %240 = udiv i32 %224, 127773 %241 = mul nsw i32 %240, -2836 %242 = mul i32 %240, -127773 %243 = add i32 %242, %224 %244 = mul i32 %243, 16807 %245 = add i32 %244, %241 %246 = icmp slt i32 %245, 0 %247 = add i32 %245, 2147483647 %248 = select i1 %246, i32 %247, i32 %245 %249 = xor i32 %248, 123459876 %250 = sitofp i32 %249 to float %251 = fmul float %250, 0x3E00000000000000 %252 = fsub float 1.000000e+00, %251 %253 = fsub float %251, %252 %254 = or i32 %231, 8 %255 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %233, i32 %254, i32 0) #3 %256 = fmul float %253, %255 %257 = or i32 %231, 4 %258 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %233, i32 %231, i32 0) #3 %259 = fmul float %256, %258 %260 = fadd float %259, %258 %261 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %233, i32 %257, i32 0) #3 %262 = fmul float %256, %261 %263 = fadd float %262, %261 %264 = bitcast i32 %172 to float %265 = fcmp olt float %264, 0x3FEFF7CEE0000000 %266 = fcmp oge float %264, 0x3FEFF7CEE0000000 %267 = select i1 %266, float 1.000000e+00, float 0.000000e+00 %268 = select i1 %265, float 1.000000e+00, float 0.000000e+00 %269 = bitcast i32 %175 to float %270 = fmul float %267, %269 %271 = bitcast i32 %169 to float %272 = fmul float %268, %271 %273 = fmul float %268, %269 %274 = fmul float %267, %264 %275 = fsub float %274, %272 %276 = fmul float %273, %273 %277 = fmul float %270, %270 %278 = fadd float %276, %277 %279 = fmul float %275, %275 %280 = fadd float %278, %279 %281 = call float @llvm.sqrt.f32(float %280) #3 %282 = fdiv float 1.000000e+00, %281 %283 = fmul float %282, %273 %284 = fmul float %270, %282 %285 = fmul float %282, %275 %286 = fmul float %284, %269 %287 = fmul float %285, %271 %288 = fmul float %283, %264 %289 = fsub float -0.000000e+00, %288 %290 = fmul float %285, %264 %291 = fadd float %290, %286 %292 = fmul float %283, %269 %293 = fsub float %292, %287 %294 = fmul float %284, %271 %295 = fsub float %289, %294 %296 = udiv i32 %248, 127773 %297 = mul nsw i32 %296, -2836 %298 = mul i32 %296, -127773 %299 = add i32 %298, %248 %300 = mul i32 %299, 16807 %301 = add i32 %300, %297 %302 = icmp slt i32 %301, 0 %303 = add i32 %301, 2147483647 %304 = select i1 %302, i32 %303, i32 %301 %305 = xor i32 %304, 123459876 %306 = sitofp i32 %305 to float %307 = fmul float %306, 0x3E2921FB60000000 %308 = call float @llvm.sin.f32(float %307) #3 %309 = call float @llvm.cos.f32(float %307) #3 %310 = fmul float %291, %308 %311 = fmul float %293, %308 %312 = fmul float %295, %308 %313 = fmul float %309, %283 %314 = fadd float %313, %310 %315 = fmul float %284, %309 %316 = fsub float %311, %315 %317 = fmul float %309, %285 %318 = fadd float %317, %312 %319 = fmul float %291, %309 %320 = fmul float %293, %309 %321 = fmul float %295, %309 %322 = fmul float %308, %283 %323 = fsub float %319, %322 %324 = fmul float %284, %308 %325 = fadd float %324, %320 %326 = fmul float %308, %285 %327 = fsub float %321, %326 %328 = fmul float %200, 5.000000e-01 %329 = fdiv float 1.000000e+00, %328 %330 = fmul float %329, %196 %331 = call float @llvm.maxnum.f32(float %330, float 0.000000e+00) #3 %332 = call float @llvm.minnum.f32(float %331, float 1.000000e+00) #3 %333 = fmul float %332, -2.000000e+00 %334 = fadd float %333, 3.000000e+00 %335 = fmul float %332, 5.000000e-01 %336 = fmul float %335, %332 %337 = fmul float %336, %334 %338 = fadd float %337, 1.000000e+00 %339 = fsub float %200, %196 %340 = fmul float %329, %339 %341 = call float @llvm.maxnum.f32(float %340, float 0.000000e+00) #3 %342 = call float @llvm.minnum.f32(float %341, float 1.000000e+00) #3 %343 = fmul float %342, -2.000000e+00 %344 = fadd float %343, 3.000000e+00 %345 = fmul float %342, 1.500000e+00 %346 = fmul float %345, %342 %347 = fmul float %346, %344 %348 = call float @llvm.minnum.f32(float %347, float %338) #3 %349 = fmul float %348, %260 %350 = fmul float %348, %263 %351 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %199, i32 596, i32 0) #3 %352 = fsub float %196, %351 %353 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %199, i32 600, i32 0) #3 %354 = fdiv float 1.000000e+00, %353 %355 = fmul float %352, %354 %356 = call float @llvm.maxnum.f32(float %355, float 0.000000e+00) #3 %357 = call float @llvm.minnum.f32(float %356, float 1.000000e+00) #3 %358 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %199, i32 604, i32 0) #3 %359 = fadd float %358, -1.000000e+00 %360 = fmul float %357, %359 %361 = fadd float %360, 1.000000e+00 %362 = fmul float %361, %349 %363 = fmul float %361, %350 %364 = fmul float %196, %354 %365 = getelementptr [0 x i8], [0 x i8] addrspace(6)* %7, i32 0, i32 48 %366 = bitcast i8 addrspace(6)* %365 to <4 x i32> addrspace(6)*, !amdgpu.uniform !1 %367 = load <4 x i32>, <4 x i32> addrspace(6)* %366, align 16, !invariant.load !1 %368 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %367, i32 12, i32 0) #3 %369 = fmul float %364, %368 %370 = fmul float %369, 1.600000e+01 %371 = fptosi float %370 to i32 %372 = icmp ult i32 %371, 15 %373 = select i1 %372, i32 %371, i32 15 %374 = icmp slt i32 %373, 8 br i1 %374, label %if2, label %else6 if2: ; preds = %if1 %375 = icmp slt i32 %373, 4 br i1 %375, label %if3, label %else4 if3: ; preds = %if2 %376 = icmp slt i32 %373, 2 %377 = icmp slt i32 %373, 1 %378 = select i1 %377, i32 0, i32 4 %379 = icmp eq i32 %373, 3 %380 = select i1 %379, i32 2, i32 4 %381 = select i1 %376, i32 %378, i32 %380 br label %endif2 else4: ; preds = %if2 %382 = icmp slt i32 %373, 6 %383 = icmp eq i32 %373, 4 %384 = select i1 %383, i32 -4, i32 -8 %385 = icmp slt i32 %373, 7 %386 = select i1 %385, i32 -8, i32 -16 %387 = select i1 %382, i32 %384, i32 %386 br label %endif2 else6: ; preds = %if1 %388 = icmp eq i32 %373, 8 %389 = select i1 %388, i32 -16, i32 -32 br label %endif2 endif2: ; preds = %if3, %else4, %else6 %390 = phi i32 [ %389, %else6 ], [ %381, %if3 ], [ %387, %else4 ] %391 = icmp sgt i32 %390, 0 %392 = urem i32 %205, %390 %393 = icmp eq i32 %392, 0 %394 = add nuw nsw i32 %205, 1 %395 = sub nsw i32 0, %390 %396 = icmp sgt i32 %390, %395 %397 = select i1 %396, i32 %390, i32 %395 %398 = urem i32 %394, %397 %399 = icmp ne i32 %398, 0 %.v = select i1 %391, i1 %393, i1 %399 %400 = icmp ne i32 %390, 0 %narrow = and i1 %.v, %400 %401 = add i32 %371, 1 %402 = icmp ult i32 %401, 15 %403 = select i1 %402, i32 %401, i32 15 %404 = icmp slt i32 %403, 8 br i1 %404, label %if8, label %else12 if8: ; preds = %endif2 %405 = icmp slt i32 %403, 4 br i1 %405, label %if9, label %else10 if9: ; preds = %if8 %406 = icmp slt i32 %403, 2 %407 = icmp slt i32 %403, 1 %408 = select i1 %407, i32 0, i32 4 %409 = icmp eq i32 %403, 3 %410 = select i1 %409, i32 2, i32 4 %411 = select i1 %406, i32 %408, i32 %410 br label %endif8 else10: ; preds = %if8 %412 = icmp slt i32 %403, 6 %413 = icmp eq i32 %403, 4 %414 = select i1 %413, i32 -4, i32 -8 %415 = icmp slt i32 %403, 7 %416 = select i1 %415, i32 -8, i32 -16 %417 = select i1 %412, i32 %414, i32 %416 br label %endif8 else12: ; preds = %endif2 %418 = icmp eq i32 %403, 8 %419 = select i1 %418, i32 -16, i32 -32 br label %endif8 endif8: ; preds = %if9, %else10, %else12 %420 = phi i32 [ %419, %else12 ], [ %411, %if9 ], [ %417, %else10 ] %421 = icmp sgt i32 %420, 0 %422 = urem i32 %205, %420 %423 = icmp eq i32 %422, 0 %424 = sub nsw i32 0, %420 %425 = icmp sgt i32 %420, %424 %426 = select i1 %425, i32 %420, i32 %424 %427 = urem i32 %394, %426 %428 = icmp ne i32 %427, 0 %.v273 = select i1 %421, i1 %423, i1 %428 %429 = icmp ne i32 %420, 0 %narrow274 = and i1 %.v273, %429 %430 = xor i1 %narrow274, %narrow %431 = call float @llvm.trunc.f32(float %370) #3 %432 = fsub float %431, %370 %433 = fadd float %432, 1.000000e+00 %434 = fdiv float 1.000000e+00, %196 %435 = fmul float %154, %434 %436 = fmul float %158, %434 %437 = fmul float %162, %434 %438 = fmul float %435, %271 %439 = fmul float %436, %264 %440 = fsub float -0.000000e+00, %439 %441 = fsub float %440, %438 %442 = fmul float %437, %269 %443 = fsub float %441, %442 %444 = fcmp ogt float %443, 5.000000e-01 %445 = fadd float %443, -5.000000e-01 %446 = fmul float %445, 1.500000e+00 %447 = fmul float %435, %323 %448 = fmul float %436, %325 %449 = fsub float -0.000000e+00, %448 %450 = fsub float %449, %447 %451 = fmul float %437, %327 %452 = fsub float %450, %451 %453 = fcmp ogt float %452, 0xBFA99999A0000000 %454 = fcmp olt float %452, 0x3FA99999A0000000 %455 = fcmp olt float %452, 0xBFA99999A0000000 %456 = and i1 %453, %454 %457 = fmul float %445, 3.000000e+01 %458 = fmul float %457, %452 %459 = fsub float -0.000000e+00, %446 %.v277 = select i1 %455, float %459, float %446 %.v278 = select i1 %456, float %458, float %.v277 %460 = call float @llvm.cos.f32(float %.v278) #3 %461 = call float @llvm.sin.f32(float %.v278) %462 = fsub float -0.000000e+00, %461 br i1 %narrow, label %endif1, label %if14 if14: ; preds = %endif8 %463 = fmul float %327, %462 %464 = fmul float %460, %269 %465 = fadd float %463, %464 %466 = fmul float %325, %462 %467 = fmul float %460, %264 %468 = fadd float %466, %467 %469 = fmul float %323, %462 %470 = fmul float %460, %271 %471 = fadd float %469, %470 %472 = fmul float %433, %363 %.v276 = select i1 %430, float %472, float %363 %473 = fmul float %433, %362 %.v275 = select i1 %430, float %473, float %362 %474 = fmul float %.v275, 5.000000e-01 %475 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %199, i32 608, i32 0) #3 %476 = fmul float %475, %475 %477 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %199, i32 612, i32 0) #3 %478 = fmul float %477, %477 %479 = fadd float %476, %478 %480 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %199, i32 616, i32 0) #3 %481 = fmul float %480, %480 %482 = fadd float %479, %481 %483 = fcmp one float %482, 0.000000e+00 %484 = sext i1 %483 to i32 %485 = call float @llvm.sqrt.f32(float %482) #3 %486 = fdiv float 1.000000e+00, %485 %487 = fmul float %486, %475 %488 = fmul float %486, %477 %489 = fmul float %486, %480 %490 = fmul float %487, %179 %491 = fmul float %488, %183 %492 = fadd float %490, %491 %493 = fmul float %489, %187 %494 = fadd float %492, %493 %495 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %199, i32 1248, i32 0) #3 %496 = fmul float %495, %485 %497 = fadd float %496, %494 %498 = fmul float %497, 0x3FFF9999A0000000 %499 = fadd float %498, 5.000000e-01 %500 = fmul float %497, 0x3FEF22D0E0000000 %501 = fadd float %500, 5.000000e-01 %502 = fmul float %497, 3.750000e-01 %503 = fadd float %502, 5.000000e-01 %504 = fmul float %497, 0x3FC8B43960000000 %505 = fadd float %504, 5.000000e-01 %506 = call float @llvm.amdgcn.fract.f32(float %499) #3 %507 = call float @llvm.amdgcn.fract.f32(float %501) #3 %508 = call float @llvm.amdgcn.fract.f32(float %503) #3 %509 = call float @llvm.amdgcn.fract.f32(float %505) #3 %510 = fmul float %506, 2.000000e+00 %511 = fadd float %510, -1.000000e+00 %512 = fmul float %507, 2.000000e+00 %513 = fadd float %512, -1.000000e+00 %514 = fmul float %508, 2.000000e+00 %515 = fadd float %514, -1.000000e+00 %516 = fmul float %509, 2.000000e+00 %517 = fadd float %516, -1.000000e+00 %518 = call float @llvm.fabs.f32(float %511) #3 %519 = call float @llvm.fabs.f32(float %513) #3 %520 = call float @llvm.fabs.f32(float %515) #3 %521 = call float @llvm.fabs.f32(float %517) #3 %522 = fmul float %511, %511 %523 = fmul float %513, %513 %524 = fmul float %515, %515 %525 = fmul float %517, %517 %526 = fmul float %518, -2.000000e+00 %527 = fadd float %526, 3.000000e+00 %528 = fmul float %519, -2.000000e+00 %529 = fadd float %528, 3.000000e+00 %530 = fmul float %520, -2.000000e+00 %531 = fadd float %530, 3.000000e+00 %532 = fmul float %521, -2.000000e+00 %533 = fadd float %532, 3.000000e+00 %534 = fmul float %527, 2.500000e-01 %535 = fmul float %534, %522 %536 = fmul float %529, 2.500000e-01 %537 = fmul float %536, %523 %538 = fadd float %535, %537 %539 = fmul float %531, 2.500000e-01 %540 = fmul float %539, %524 %541 = fadd float %538, %540 %542 = fmul float %533, 2.500000e-01 %543 = fmul float %542, %525 %544 = fadd float %541, %543 %545 = fmul float %544, %487 %546 = bitcast float %545 to i32 %547 = fmul float %544, %488 %548 = bitcast float %547 to i32 %549 = fmul float %544, %489 %550 = bitcast float %549 to i32 %551 = and i32 %484, %546 %552 = and i32 %484, %548 %553 = and i32 %484, %550 %554 = bitcast i32 %169 to float %555 = select i1 %444, float %471, float %554 %556 = bitcast i32 %551 to float %557 = fadd float %555, %556 %558 = bitcast i32 %172 to float %559 = select i1 %444, float %468, float %558 %560 = bitcast i32 %552 to float %561 = fadd float %559, %560 %562 = bitcast i32 %175 to float %563 = select i1 %444, float %465, float %562 %564 = bitcast i32 %553 to float %565 = fadd float %563, %564 %566 = fmul float %557, %557 %567 = fmul float %561, %561 %568 = fadd float %566, %567 %569 = fmul float %565, %565 %570 = fadd float %568, %569 %571 = call float @llvm.sqrt.f32(float %570) #3 %572 = fdiv float 1.000000e+00, %571 %573 = fmul float %572, %557 %574 = fmul float %572, %561 %575 = fmul float %572, %565 %576 = fmul float %271, %271 %577 = fmul float %264, %264 %578 = fadd float %576, %577 %579 = fmul float %269, %269 %580 = fadd float %578, %579 %581 = call float @llvm.sqrt.f32(float %580) #3 %582 = fdiv float 1.000000e+00, %581 %583 = fmul float %582, %271 %584 = bitcast float %583 to i32 %585 = fmul float %582, %264 %586 = bitcast float %585 to i32 %587 = fmul float %582, %269 %588 = bitcast float %587 to i32 %589 = fmul float %314, %314 %590 = fmul float %316, %316 %591 = fadd float %589, %590 %592 = fmul float %318, %318 %593 = fadd float %591, %592 %594 = call float @llvm.sqrt.f32(float %593) #3 %595 = fdiv float 1.000000e+00, %594 %596 = fmul float %595, %314 %597 = bitcast float %596 to i32 %598 = fmul float %595, %316 %599 = bitcast float %598 to i32 %600 = fmul float %595, %318 %601 = bitcast float %600 to i32 %602 = fmul float %314, %474 %603 = fsub float %154, %602 %604 = fmul float %316, %474 %605 = fsub float %158, %604 %606 = fmul float %318, %474 %607 = fsub float %162, %606 %608 = fadd float %602, %154 %609 = fadd float %604, %158 %610 = fadd float %606, %162 %611 = fmul float %573, %.v276 %612 = fadd float %611, %603 %613 = fmul float %574, %.v276 %614 = fadd float %613, %605 %615 = fmul float %575, %.v276 %616 = fadd float %615, %607 %617 = fadd float %611, %608 %618 = fadd float %613, %609 %619 = fadd float %615, %610 %620 = getelementptr [0 x i8], [0 x i8] addrspace(6)* %7, i32 0, i32 32 %621 = bitcast i8 addrspace(6)* %620 to <4 x i32> addrspace(6)*, !amdgpu.uniform !1 %622 = load <4 x i32>, <4 x i32> addrspace(6)* %621, align 16, !invariant.load !1 %623 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 0, i32 0) #3 %624 = fmul float %603, %623 %625 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 4, i32 0) #3 %626 = fmul float %605, %625 %627 = fadd float %624, %626 %628 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 8, i32 0) #3 %629 = fmul float %607, %628 %630 = fadd float %627, %629 %631 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 12, i32 0) #3 %632 = fadd float %630, %631 %633 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 16, i32 0) #3 %634 = fmul float %603, %633 %635 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 20, i32 0) #3 %636 = fmul float %605, %635 %637 = fadd float %634, %636 %638 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 24, i32 0) #3 %639 = fmul float %607, %638 %640 = fadd float %637, %639 %641 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 28, i32 0) #3 %642 = fadd float %640, %641 %643 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 32, i32 0) #3 %644 = fmul float %603, %643 %645 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 36, i32 0) #3 %646 = fmul float %605, %645 %647 = fadd float %644, %646 %648 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 40, i32 0) #3 %649 = fmul float %607, %648 %650 = fadd float %647, %649 %651 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 44, i32 0) #3 %652 = fadd float %650, %651 %653 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 48, i32 0) #3 %654 = fmul float %603, %653 %655 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 52, i32 0) #3 %656 = fmul float %605, %655 %657 = fadd float %654, %656 %658 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 56, i32 0) #3 %659 = fmul float %607, %658 %660 = fadd float %657, %659 %661 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %622, i32 60, i32 0) #3 %662 = fadd float %660, %661 %663 = uitofp i32 %239 to float %664 = bitcast float %663 to i32 %665 = bitcast float %632 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %665, <4 x i32> %143, i32 0, i32 %0, i32 68, i32 3) #7 %666 = bitcast float %642 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %666, <4 x i32> %143, i32 16, i32 %0, i32 68, i32 3) #7 %667 = bitcast float %652 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %667, <4 x i32> %143, i32 32, i32 %0, i32 68, i32 3) #7 %668 = bitcast float %662 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %668, <4 x i32> %143, i32 48, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %584, <4 x i32> %143, i32 64, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %586, <4 x i32> %143, i32 80, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %588, <4 x i32> %143, i32 96, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %597, <4 x i32> %143, i32 112, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %599, <4 x i32> %143, i32 128, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %601, <4 x i32> %143, i32 144, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 0, <4 x i32> %143, i32 160, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 1065353216, <4 x i32> %143, i32 176, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %664, <4 x i32> %143, i32 192, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.s.sendmsg(i32 34, i32 %150) #5 %669 = fmul float %608, %623 %670 = fmul float %609, %625 %671 = fadd float %669, %670 %672 = fmul float %610, %628 %673 = fadd float %671, %672 %674 = fadd float %673, %631 %675 = fmul float %608, %633 %676 = fmul float %609, %635 %677 = fadd float %675, %676 %678 = fmul float %610, %638 %679 = fadd float %677, %678 %680 = fadd float %679, %641 %681 = fmul float %608, %643 %682 = fmul float %609, %645 %683 = fadd float %681, %682 %684 = fmul float %610, %648 %685 = fadd float %683, %684 %686 = fadd float %685, %651 %687 = fmul float %608, %653 %688 = fmul float %609, %655 %689 = fadd float %687, %688 %690 = fmul float %610, %658 %691 = fadd float %689, %690 %692 = fadd float %691, %661 %693 = bitcast float %674 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %693, <4 x i32> %143, i32 4, i32 %0, i32 68, i32 3) #7 %694 = bitcast float %680 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %694, <4 x i32> %143, i32 20, i32 %0, i32 68, i32 3) #7 %695 = bitcast float %686 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %695, <4 x i32> %143, i32 36, i32 %0, i32 68, i32 3) #7 %696 = bitcast float %692 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %696, <4 x i32> %143, i32 52, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %584, <4 x i32> %143, i32 68, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %586, <4 x i32> %143, i32 84, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %588, <4 x i32> %143, i32 100, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %597, <4 x i32> %143, i32 116, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %599, <4 x i32> %143, i32 132, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %601, <4 x i32> %143, i32 148, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 1065353216, <4 x i32> %143, i32 164, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 1065353216, <4 x i32> %143, i32 180, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %664, <4 x i32> %143, i32 196, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.s.sendmsg(i32 34, i32 %150) #5 %697 = fmul float %612, %623 %698 = fmul float %614, %625 %699 = fadd float %697, %698 %700 = fmul float %616, %628 %701 = fadd float %699, %700 %702 = fadd float %701, %631 %703 = fmul float %612, %633 %704 = fmul float %614, %635 %705 = fadd float %703, %704 %706 = fmul float %616, %638 %707 = fadd float %705, %706 %708 = fadd float %707, %641 %709 = fmul float %612, %643 %710 = fmul float %614, %645 %711 = fadd float %709, %710 %712 = fmul float %616, %648 %713 = fadd float %711, %712 %714 = fadd float %713, %651 %715 = fmul float %612, %653 %716 = fmul float %614, %655 %717 = fadd float %715, %716 %718 = fmul float %616, %658 %719 = fadd float %717, %718 %720 = fadd float %719, %661 %721 = bitcast float %702 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %721, <4 x i32> %143, i32 8, i32 %0, i32 68, i32 3) #7 %722 = bitcast float %708 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %722, <4 x i32> %143, i32 24, i32 %0, i32 68, i32 3) #7 %723 = bitcast float %714 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %723, <4 x i32> %143, i32 40, i32 %0, i32 68, i32 3) #7 %724 = bitcast float %720 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %724, <4 x i32> %143, i32 56, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %584, <4 x i32> %143, i32 72, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %586, <4 x i32> %143, i32 88, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %588, <4 x i32> %143, i32 104, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %597, <4 x i32> %143, i32 120, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %599, <4 x i32> %143, i32 136, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %601, <4 x i32> %143, i32 152, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 0, <4 x i32> %143, i32 168, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 0, <4 x i32> %143, i32 184, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %664, <4 x i32> %143, i32 200, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.s.sendmsg(i32 34, i32 %150) #5 %725 = fmul float %617, %623 %726 = fmul float %618, %625 %727 = fadd float %725, %726 %728 = fmul float %619, %628 %729 = fadd float %727, %728 %730 = fadd float %729, %631 %731 = fmul float %617, %633 %732 = fmul float %618, %635 %733 = fadd float %731, %732 %734 = fmul float %619, %638 %735 = fadd float %733, %734 %736 = fadd float %735, %641 %737 = fmul float %617, %643 %738 = fmul float %618, %645 %739 = fadd float %737, %738 %740 = fmul float %619, %648 %741 = fadd float %739, %740 %742 = fadd float %741, %651 %743 = fmul float %617, %653 %744 = fmul float %618, %655 %745 = fadd float %743, %744 %746 = fmul float %619, %658 %747 = fadd float %745, %746 %748 = fadd float %747, %661 %749 = bitcast float %730 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %749, <4 x i32> %143, i32 12, i32 %0, i32 68, i32 3) #7 %750 = bitcast float %736 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %750, <4 x i32> %143, i32 28, i32 %0, i32 68, i32 3) #7 %751 = bitcast float %742 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %751, <4 x i32> %143, i32 44, i32 %0, i32 68, i32 3) #7 %752 = bitcast float %748 to i32 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %752, <4 x i32> %143, i32 60, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %584, <4 x i32> %143, i32 76, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %586, <4 x i32> %143, i32 92, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %588, <4 x i32> %143, i32 108, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %597, <4 x i32> %143, i32 124, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %599, <4 x i32> %143, i32 140, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %601, <4 x i32> %143, i32 156, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 1065353216, <4 x i32> %143, i32 172, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 0, <4 x i32> %143, i32 188, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %664, <4 x i32> %143, i32 204, i32 %0, i32 68, i32 3) #7 call void @llvm.amdgcn.s.sendmsg(i32 34, i32 %150) #5 call void @llvm.amdgcn.s.sendmsg(i32 18, i32 %150) #5 br label %endif1 endif1: ; preds = %endif8, %147, %if14 call void @llvm.amdgcn.s.sendmsg(i32 3, i32 %150) #5 br label %204 } ; Function Attrs: nounwind readnone speculatable declare i8 addrspace(4)* @llvm.amdgcn.implicit.buffer.ptr() #1 ; Function Attrs: convergent nounwind declare void @llvm.amdgcn.init.exec(i64 immarg) #2 ; Function Attrs: nounwind readnone declare i32 @llvm.amdgcn.mbcnt.lo(i32, i32) #3 ; Function Attrs: nounwind readnone declare i32 @llvm.amdgcn.mbcnt.hi(i32, i32) #3 ; Function Attrs: nounwind readonly declare <4 x i32> @llvm.amdgcn.struct.tbuffer.load.v4i32(<4 x i32>, i32, i32, i32, i32 immarg, i32 immarg) #4 ; Function Attrs: nounwind readnone declare float @llvm.amdgcn.s.buffer.load.f32(<4 x i32>, i32, i32 immarg) #3 ; Function Attrs: nounwind readnone speculatable declare float @llvm.sqrt.f32(float) #1 ; Function Attrs: convergent nounwind declare void @llvm.amdgcn.s.barrier() #2 ; Function Attrs: nounwind readnone speculatable declare float @llvm.minnum.f32(float, float) #1 ; Function Attrs: nounwind readnone speculatable declare float @llvm.sin.f32(float) #1 ; Function Attrs: nounwind readnone speculatable declare float @llvm.cos.f32(float) #1 ; Function Attrs: nounwind readnone speculatable declare float @llvm.maxnum.f32(float, float) #1 ; Function Attrs: nounwind readnone speculatable declare float @llvm.trunc.f32(float) #1 ; Function Attrs: nounwind readnone speculatable declare float @llvm.amdgcn.fract.f32(float) #1 ; Function Attrs: nounwind readnone speculatable declare float @llvm.fabs.f32(float) #1 ; Function Attrs: nounwind declare void @llvm.amdgcn.kill(i1) #5 ; Function Attrs: nounwind writeonly declare void @llvm.amdgcn.raw.tbuffer.store.i32(i32, <4 x i32>, i32, i32, i32 immarg, i32 immarg) #6 ; Function Attrs: nounwind declare void @llvm.amdgcn.s.sendmsg(i32 immarg, i32) #5 attributes #0 = { "amdgpu-32bit-address-high-bits"="0xffff8000" "amdgpu-max-work-group-size"="0x80" } attributes #1 = { nounwind readnone speculatable } attributes #2 = { convergent nounwind } attributes #3 = { nounwind readnone } attributes #4 = { nounwind readonly } attributes #5 = { nounwind } attributes #6 = { nounwind writeonly } attributes #7 = { inaccessiblememonly nounwind } !0 = !{i32 0, i32 64} !1 = !{} DISASM: main: BB1_0: s_mov_b64 exec, -1 ; BEFE01C1 v_mbcnt_lo_u32_b32 v1, -1, 0 ; D28C0001 000100C1 s_and_b32 s4, s3, 0xff ; 8604FF03 000000FF v_mbcnt_hi_u32_b32 v1, -1, v1 ; D28D0001 000202C1 s_mov_b32 s12, s9 ; BE8C0009 v_cmp_gt_u32_e32 vcc, s4, v1 ; 7D980204 s_and_saveexec_b64 s[6:7], vcc ; BE86206A s_cbranch_execz BB1_2 ; BF880000 BB1_1: v_add_u32_e32 v6, s11, v5 ; 680C0A0B s_movk_i32 s11, 0x8000 ; B00B8000 s_mov_b32 s13, s11 ; BE8D000B s_load_dwordx4 s[16:19], s[10:11], 0x0 ; C00A0405 00000000 s_load_dwordx4 s[8:11], s[12:13], 0x0 ; C00A0206 00000000 s_lshr_b32 s13, s3, 18 ; 8F0D9203 s_and_b32 s13, s13, 0x3c0 ; 860DFF0D 000003C0 v_or_b32_e32 v2, s13, v1 ; 2804020D v_mul_u32_u24_e32 v11, 0x70, v2 ; 101604FF 00000070 s_waitcnt lgkmcnt(0) ; BF8CC07F tbuffer_load_format_xyzw v[2:5], v6, s[16:19], dfmt:13, nfmt:7, 0 idxen ; EBE9A000 80040206 s_waitcnt vmcnt(0) ; BF8C0F70 tbuffer_load_format_xyzw v[5:8], v6, s[16:19], dfmt:10, nfmt:0, 0 idxen offset:12 ; E851A00C 80040506 s_buffer_load_dwordx4 s[16:19], s[8:11], 0x20 ; C02A0404 00000020 s_buffer_load_dwordx4 s[20:23], s[8:11], 0x30 ; C02A0504 00000030 s_buffer_load_dwordx4 s[8:11], s[8:11], 0x40 ; C02A0204 00000040 s_mov_b32 s13, 0x3efefeff ; BE8D00FF 3EFEFEFF v_mov_b32_e32 v10, 0xc3000000 ; 7E1402FF C3000000 v_bfrev_b32_e32 v12, 1 ; 7E185881 s_mov_b32 s14, 0x437f0000 ; BE8E00FF 437F0000 s_mov_b32 s4, 0x3c810204 ; BE8400FF 3C810204 v_mov_b32_e32 v9, 1.0 ; 7E1202F2 s_waitcnt lgkmcnt(0) ; BF8CC07F v_mul_f32_e32 v13, s17, v3 ; 0A1A0611 s_waitcnt vmcnt(0) ; BF8C0F70 v_cmp_lt_f32_e32 vcc, s13, v6 ; 7C820C0D v_cndmask_b32_e32 v10, v12, v10, vcc ; 0014150C v_mad_f32 v12, v5, 2.0, -1.0 ; D1C1000C 03CDE905 v_mac_f32_e32 v10, s14, v6 ; 2C140C0E v_mul_f32_e32 v14, s21, v3 ; 0A1C0615 v_mul_f32_e32 v15, s9, v3 ; 0A1E0609 v_mul_f32_e32 v5, s14, v7 ; 0A0A0E0E v_mul_f32_e32 v16, v12, v12 ; 0A20190C v_mad_f32 v10, v10, s4, -1.0 ; D1C1000A 03CC090A v_mac_f32_e32 v13, s16, v2 ; 2C1A0410 v_mac_f32_e32 v14, s20, v2 ; 2C1C0414 v_mac_f32_e32 v15, s8, v2 ; 2C1E0408 v_mul_f32_e32 v8, s14, v8 ; 0A10100E v_mov_b32_e32 v7, v2 ; 7E0E0302 v_cvt_u32_f32_e32 v2, v5 ; 7E040F05 v_mad_f32 v5, v10, v10, v16 ; D1C10005 0442150A v_cvt_u32_f32_e32 v18, v8 ; 7E240F08 v_sub_f32_e32 v8, 1.0, v5 ; 04100AF2 v_sqrt_f32_e32 v19, v8 ; 7E264F08 v_cndmask_b32_e64 v17, -1.0, 1.0, vcc ; D1000011 01A9E4F3 v_mac_f32_e32 v13, s18, v4 ; 2C1A0812 v_add_f32_e32 v5, s19, v13 ; 020A1A13 v_mul_f32_e32 v13, v17, v19 ; 0A1A2711 v_cmp_lt_f32_e32 vcc, 0, v8 ; 7C821080 v_cndmask_b32_e32 v13, 0, v13, vcc ; 001A1A80 v_mac_f32_e32 v16, v13, v13 ; 2C201B0D v_mac_f32_e32 v14, s22, v4 ; 2C1C0816 v_mac_f32_e32 v16, v10, v10 ; 2C20150A v_add_f32_e32 v6, s23, v14 ; 020C1C17 v_rsq_f32_e32 v14, v16 ; 7E1C4910 v_mac_f32_e32 v15, s10, v4 ; 2C1E080A v_add_f32_e32 v8, s11, v15 ; 02101E0B ds_write2_b64 v11, v[5:6], v[8:9] offset0:8 offset1:9 ; D89C0908 0008050B v_lshl_add_u32 v2, v2, 8, v18 ; D1FD0002 04491102 v_mul_f32_e32 v8, v14, v12 ; 0A10190E v_mul_f32_e32 v9, v14, v13 ; 0A121B0E v_mul_f32_e32 v6, v14, v10 ; 0A0C150E ds_write2_b64 v11, v[8:9], v[6:7] offset0:10 offset1:11 ; D89C0B0A 0006080B ds_write_b64 v11, v[3:4] offset:96 ; D89A0060 0000030B ds_write_b32 v11, v2 offset:104 ; D81A0068 0000020B BB1_2: s_or_b64 exec, exec, s[6:7] ; 87FE067E s_waitcnt lgkmcnt(0) ; BF8CC07F s_barrier ; BF8A0000 s_bfe_u32 s4, s3, 0x80008 ; 9284FF03 00080008 v_cmp_gt_u32_e32 vcc, s4, v1 ; 7D980204 s_and_saveexec_b64 s[6:7], vcc ; BE86206A s_cbranch_execz BB1_24 ; BF880000 BB1_3: v_lshlrev_b32_e32 v0, 2, v0 ; 24000082 v_and_b32_e32 v8, 0x3fffc, v0 ; 261000FF 0003FFFC ds_read2_b32 v[2:3], v8 offset0:16 offset1:17 ; D86E1110 02000008 s_add_i32 s8, s12, 16 ; 8108900C s_movk_i32 s9, 0x8000 ; B0098000 ds_read2_b32 v[0:1], v8 offset0:18 offset1:19 ; D86E1312 00000008 s_load_dwordx4 s[24:27], s[8:9], 0x0 ; C00A0604 00000000 s_waitcnt lgkmcnt(0) ; BF8CC07F v_mul_f32_e32 v4, v3, v3 ; 0A080703 v_mac_f32_e32 v4, v2, v2 ; 2C080502 s_bfe_u32 s3, s3, 0x80010 ; 9283FF03 00080010 v_mac_f32_e32 v4, v0, v0 ; 2C080100 s_buffer_load_dword s4, s[24:27], 0x250 ; C022010C 00000250 v_sqrt_f32_e32 v11, v4 ; 7E164F04 v_cmp_lg_f32_e64 s[6:7], 0, v1 ; D0450006 00020280 s_waitcnt lgkmcnt(0) ; BF8CC07F v_cmp_gt_f32_e32 vcc, s4, v11 ; 7C881604 s_and_b64 s[6:7], s[6:7], vcc ; 86866A06 s_and_saveexec_b64 s[14:15], s[6:7] ; BE8E2006 s_cbranch_execz BB1_23 ; BF880000 BB1_4: s_add_i32 s6, s12, 48 ; 8106B00C s_mov_b32 s7, s9 ; BE870009 s_buffer_load_dword s8, s[24:27], 0x258 ; C022020C 00000258 s_load_dwordx4 s[16:19], s[6:7], 0x0 ; C00A0403 00000000 ds_read2_b32 v[4:5], v8 offset0:20 offset1:21 ; D86E1514 04000008 ds_read2_b32 v[6:7], v8 offset0:22 offset1:23 ; D86E1716 06000008 ds_read2_b32 v[9:10], v8 offset0:24 offset1:25 ; D86E1918 09000008 s_waitcnt lgkmcnt(0) ; BF8CC07F v_rcp_f32_e32 v13, s8 ; 7E1A4408 s_buffer_load_dword s6, s[16:19], 0xc ; C0220188 0000000C ds_read_b32 v8, v8 offset:104 ; D86C0068 08000008 v_mul_f32_e32 v1, v11, v13 ; 0A021B0B s_waitcnt lgkmcnt(0) ; BF8CC07F v_mul_f32_e32 v1, s6, v1 ; 0A020206 v_mul_f32_e32 v12, 0x41800000, v1 ; 0A1802FF 41800000 v_cvt_i32_f32_e32 v14, v12 ; 7E1C110C v_min_u32_e32 v15, 15, v14 ; 1C1E1C8F v_cmp_lt_i32_e32 vcc, 7, v15 ; 7D821E87 s_and_saveexec_b64 s[6:7], vcc ; BE86206A s_xor_b64 s[6:7], exec, s[6:7] ; 8886067E BB1_5: v_mov_b32_e32 v1, 0xffffffe0 ; 7E0202FF FFFFFFE0 v_cmp_eq_u32_e32 vcc, 8, v15 ; 7D941E88 v_cndmask_b32_e64 v1, v1, -16, vcc ; D1000001 01A9A101 BB1_6: s_or_saveexec_b64 s[6:7], s[6:7] ; BE862106 s_xor_b64 exec, exec, s[6:7] ; 88FE067E s_cbranch_execz BB1_12 ; BF880000 BB1_7: v_cmp_lt_i32_e32 vcc, 3, v15 ; 7D821E83 s_and_saveexec_b64 s[10:11], vcc ; BE8A206A s_xor_b64 s[10:11], exec, s[10:11] ; 888A0A7E BB1_8: v_cmp_eq_u32_e32 vcc, 4, v15 ; 7D941E84 v_cndmask_b32_e64 v1, -8, -4, vcc ; D1000001 01A988C8 v_cmp_gt_i32_e32 vcc, 7, v15 ; 7D881E87 v_cndmask_b32_e64 v16, -16, -8, vcc ; D1000010 01A990D0 v_cmp_gt_i32_e32 vcc, 6, v15 ; 7D881E86 v_cndmask_b32_e32 v1, v16, v1, vcc ; 00020310 BB1_9: s_or_saveexec_b64 s[10:11], s[10:11] ; BE8A210A s_xor_b64 exec, exec, s[10:11] ; 88FE0A7E BB1_10: v_cmp_gt_i32_e32 vcc, 1, v15 ; 7D881E81 v_cndmask_b32_e64 v1, 4, 0, vcc ; D1000001 01A90084 v_cmp_eq_u32_e32 vcc, 3, v15 ; 7D941E83 v_cndmask_b32_e64 v16, 4, 2, vcc ; D1000010 01A90484 v_cmp_gt_i32_e32 vcc, 2, v15 ; 7D881E82 v_cndmask_b32_e32 v1, v16, v1, vcc ; 00020310 BB1_11: s_or_b64 exec, exec, s[10:11] ; 87FE0A7E BB1_12: s_or_b64 exec, exec, s[6:7] ; 87FE067E v_add_u32_e32 v14, 1, v14 ; 681C1C81 v_min_u32_e32 v15, 15, v14 ; 1C1E1C8F v_cmp_lt_i32_e32 vcc, 7, v15 ; 7D821E87 s_and_saveexec_b64 s[6:7], vcc ; BE86206A s_xor_b64 s[6:7], exec, s[6:7] ; 8886067E BB1_13: v_mov_b32_e32 v14, 0xffffffe0 ; 7E1C02FF FFFFFFE0 v_cmp_eq_u32_e32 vcc, 8, v15 ; 7D941E88 v_cndmask_b32_e64 v14, v14, -16, vcc ; D100000E 01A9A10E BB1_14: s_or_saveexec_b64 s[6:7], s[6:7] ; BE862106 s_xor_b64 exec, exec, s[6:7] ; 88FE067E s_cbranch_execz BB1_20 ; BF880000 BB1_15: v_cmp_lt_i32_e32 vcc, 3, v15 ; 7D821E83 s_and_saveexec_b64 s[10:11], vcc ; BE8A206A s_xor_b64 s[10:11], exec, s[10:11] ; 888A0A7E BB1_16: v_cmp_eq_u32_e32 vcc, 4, v15 ; 7D941E84 v_cndmask_b32_e64 v14, -8, -4, vcc ; D100000E 01A988C8 v_cmp_gt_i32_e32 vcc, 7, v15 ; 7D881E87 v_cndmask_b32_e64 v16, -16, -8, vcc ; D1000010 01A990D0 v_cmp_gt_i32_e32 vcc, 6, v15 ; 7D881E86 v_cndmask_b32_e32 v14, v16, v14, vcc ; 001C1D10 BB1_17: s_or_saveexec_b64 s[10:11], s[10:11] ; BE8A210A s_xor_b64 exec, exec, s[10:11] ; 88FE0A7E BB1_18: v_cmp_gt_i32_e32 vcc, 1, v15 ; 7D881E81 v_cndmask_b32_e64 v14, 4, 0, vcc ; D100000E 01A90084 v_cmp_eq_u32_e32 vcc, 3, v15 ; 7D941E83 v_cndmask_b32_e64 v16, 4, 2, vcc ; D1000010 01A90484 v_cmp_gt_i32_e32 vcc, 2, v15 ; 7D881E82 v_cndmask_b32_e32 v14, v16, v14, vcc ; 001C1D10 BB1_19: s_or_b64 exec, exec, s[10:11] ; 87FE0A7E BB1_20: s_or_b64 exec, exec, s[6:7] ; 87FE067E v_cvt_f32_u32_e32 v15, v1 ; 7E1E0D01 v_sub_u32_e32 v16, 0, v1 ; 6A200280 v_max_i32_e32 v17, v1, v16 ; 1A222101 v_cvt_f32_u32_e32 v16, v17 ; 7E200D11 v_rcp_iflag_f32_e32 v15, v15 ; 7E1E470F s_mov_b32 s10, 0x4f800000 ; BE8A00FF 4F800000 v_rcp_iflag_f32_e32 v16, v16 ; 7E204710 v_mul_f32_e32 v15, s10, v15 ; 0A1E1E0A v_cvt_u32_f32_e32 v15, v15 ; 7E1E0F0F v_mul_f32_e32 v16, s10, v16 ; 0A20200A v_cvt_u32_f32_e32 v18, v16 ; 7E240F10 v_mul_lo_i32 v16, v15, v1 ; D2850010 0002030F v_mul_hi_u32 v19, v15, v1 ; D2860013 0002030F v_mul_lo_i32 v20, v18, v17 ; D2850014 00022312 v_sub_u32_e32 v21, 0, v16 ; 6A2A2080 v_cmp_eq_u32_e32 vcc, 0, v19 ; 7D942680 v_cndmask_b32_e32 v16, v16, v21, vcc ; 00202B10 v_mul_hi_u32 v19, v16, v15 ; D2860013 00021F10 v_mul_hi_u32 v21, v18, v17 ; D2860015 00022312 v_lshrrev_b32_e32 v16, 8, v8 ; 20201088 v_sub_u32_e32 v22, 0, v20 ; 6A2C2880 v_add_u32_e32 v23, v15, v19 ; 682E270F v_sub_u32_e32 v15, v15, v19 ; 6A1E270F v_cndmask_b32_e32 v15, v15, v23, vcc ; 001E2F0F v_cmp_eq_u32_e32 vcc, 0, v21 ; 7D942A80 v_mul_hi_u32 v19, v15, v16 ; D2860013 0002210F v_cndmask_b32_e32 v15, v20, v22, vcc ; 001E2D14 v_mul_hi_u32 v20, v15, v18 ; D2860014 0002250F v_add_u32_e32 v15, 1, v16 ; 681E2081 v_mul_lo_i32 v19, v19, v1 ; D2850013 00020313 v_add_u32_e32 v21, v18, v20 ; 682A2912 v_sub_u32_e32 v18, v18, v20 ; 6A242912 v_cndmask_b32_e32 v18, v18, v21, vcc ; 00242B12 v_mul_hi_u32 v18, v18, v15 ; D2860012 00021F12 v_sub_u32_e32 v20, v16, v19 ; 6A282710 v_cmp_ge_u32_e64 s[6:7], v16, v19 ; D0CE0006 00022710 v_cmp_ge_u32_e32 vcc, v20, v1 ; 7D9C0314 v_mul_lo_i32 v18, v18, v17 ; D2850012 00022312 v_sub_u32_e32 v19, v20, v1 ; 6A260314 s_and_b64 vcc, vcc, s[6:7] ; 86EA066A v_add_u32_e32 v21, v20, v1 ; 682A0314 v_cndmask_b32_e32 v19, v20, v19, vcc ; 00262714 v_sub_u32_e32 v20, v15, v18 ; 6A28250F v_cndmask_b32_e64 v19, v21, v19, s[6:7] ; D1000013 001A2715 v_cmp_ge_u32_e32 vcc, v20, v17 ; 7D9C2314 v_cmp_ge_u32_e64 s[6:7], v15, v18 ; D0CE0006 0002250F v_add_u32_e32 v21, v20, v17 ; 682A2314 v_sub_u32_e32 v17, v20, v17 ; 6A222314 s_and_b64 vcc, vcc, s[6:7] ; 86EA066A v_cndmask_b32_e32 v17, v20, v17, vcc ; 00222314 v_cndmask_b32_e64 v17, v21, v17, s[6:7] ; D1000011 001A2315 v_cmp_eq_u32_e32 vcc, 0, v19 ; 7D942680 v_cndmask_b32_e64 v18, 0, 1, vcc ; D1000012 01A90280 v_cmp_ne_u32_e32 vcc, 0, v17 ; 7D9A2280 v_cndmask_b32_e64 v17, 0, 1, vcc ; D1000011 01A90280 v_cmp_lt_i32_e32 vcc, 0, v1 ; 7D820280 v_cndmask_b32_e32 v17, v17, v18, vcc ; 00222511 v_and_b32_e32 v17, 1, v17 ; 26222281 v_cmp_eq_u32_e32 vcc, 1, v17 ; 7D942281 v_cmp_ne_u32_e64 s[6:7], 0, v1 ; D0CD0006 00020280 s_and_b64 s[18:19], vcc, s[6:7] ; 8692066A s_xor_b64 s[6:7], s[18:19], -1 ; 8886C112 s_and_saveexec_b64 s[16:17], s[6:7] ; BE902006 s_cbranch_execz BB1_22 ; BF880000 BB1_21: s_mov_b32 s6, 0x75bd924 ; BE8600FF 075BD924 v_xor_b32_e32 v17, s6, v16 ; 2A222006 s_mov_b32 s7, 0x69c16bd ; BE8700FF 069C16BD v_mul_hi_u32 v18, v17, s7 ; D2860012 00000F11 s_add_i32 s8, s12, 64 ; 8108C00C s_load_dwordx4 s[20:23], s[0:1], 0x40 ; C00A0500 00000040 s_load_dwordx4 s[28:31], s[8:9], 0x0 ; C00A0704 00000000 v_sub_u32_e32 v19, v17, v18 ; 6A262511 v_lshrrev_b32_e32 v19, 1, v19 ; 20262681 v_add_u32_e32 v18, v19, v18 ; 68242513 v_lshrrev_b32_e32 v18, 16, v18 ; 20242490 s_mov_b32 s8, 0xfe0ce3 ; BE8800FF 00FE0CE3 v_mad_i32_i24 v17, v18, s8, v17 ; D1C20011 04441112 s_movk_i32 s9, 0x41a7 ; B00941A7 v_mul_lo_i32 v17, v17, s9 ; D2850011 00001311 s_mov_b32 s11, 0xfff4ec ; BE8B00FF 00FFF4EC s_brev_b32 s13, -2 ; BE8D08C2 v_lshlrev_b32_e32 v8, 4, v8 ; 24101084 v_mad_i32_i24 v17, v18, s11, v17 ; D1C20011 04441712 v_cmp_gt_i32_e32 vcc, 0, v17 ; 7D882280 v_add_u32_e32 v18, s13, v17 ; 6824220D v_cndmask_b32_e32 v17, v17, v18, vcc ; 00222511 v_mul_hi_u32 v18, v17, s7 ; D2860012 00000F11 s_brev_b32 s0, 12 ; BE80088C v_and_b32_e32 v8, 0xff0, v8 ; 261010FF 00000FF0 v_mov_b32_e32 v1, 0 ; 7E020280 v_sub_u32_e32 v19, v17, v18 ; 6A262511 v_lshrrev_b32_e32 v19, 1, v19 ; 20262681 v_add_u32_e32 v18, v19, v18 ; 68242513 v_lshrrev_b32_e32 v18, 16, v18 ; 20242490 v_mad_i32_i24 v17, v18, s8, v17 ; D1C20011 04441112 v_mul_lo_i32 v17, v17, s9 ; D2850011 00001311 s_waitcnt lgkmcnt(0) ; BF8CC07F s_or_b32 s21, s21, 0xd00000 ; 8715FF15 00D00000 s_mov_b32 s22, 64 ; BE9600C0 s_mov_b32 m0, s3 ; BEFC0003 v_mad_i32_i24 v17, v18, s11, v17 ; D1C20011 04441712 v_cmp_gt_i32_e32 vcc, 0, v17 ; 7D882280 v_add_u32_e32 v18, s13, v17 ; 6824220D v_cndmask_b32_e32 v21, v17, v18, vcc ; 002A2511 v_xor_b32_e32 v17, s6, v21 ; 2A222A06 v_cvt_f32_i32_e32 v17, v17 ; 7E220B11 v_mul_f32_e32 v22, s0, v17 ; 0A2C2200 buffer_load_dwordx4 v[17:20], v8, s[28:31], 0 offen ; E05C1000 80071108 s_waitcnt vmcnt(0) ; BF8C0F70 v_cvt_f32_u32_e32 v8, v20 ; 7E100D14 v_mul_f32_e32 v20, v22, v8 ; 0A281116 v_min_f32_e32 v8, v8, v20 ; 14102908 v_cvt_u32_f32_e32 v20, v8 ; 7E280F08 v_mul_hi_u32 v8, v21, s7 ; D2860008 00000F15 v_sub_u32_e32 v22, v21, v8 ; 6A2C1115 v_lshrrev_b32_e32 v22, 1, v22 ; 202C2C81 v_add_u32_e32 v8, v22, v8 ; 68101116 v_lshrrev_b32_e32 v8, 16, v8 ; 20101090 v_mad_i32_i24 v21, v8, s8, v21 ; D1C20015 04541108 v_mul_lo_i32 v21, v21, s9 ; D2850015 00001315 v_mad_i32_i24 v8, v8, s11, v21 ; D1C20008 04541708 v_cmp_gt_i32_e32 vcc, 0, v8 ; 7D881080 v_add_u32_e32 v21, s13, v8 ; 682A100D v_cndmask_b32_e32 v21, v8, v21, vcc ; 002A2B08 v_mul_hi_u32 v27, v21, s7 ; D286001B 00000F15 v_xor_b32_e32 v8, s6, v21 ; 2A102A06 v_cvt_f32_i32_e32 v22, v8 ; 7E2C0B08 v_mov_b32_e32 v8, 1.0 ; 7E1002F2 v_sub_u32_e32 v28, v21, v27 ; 6A383715 v_lshrrev_b32_e32 v28, 1, v28 ; 20383881 v_add_u32_e32 v27, v28, v27 ; 6836371C v_lshrrev_b32_e32 v27, 16, v27 ; 20363690 v_mad_i32_i24 v21, v27, s8, v21 ; D1C20015 0454111B v_mul_lo_i32 v21, v21, s9 ; D2850015 00001315 v_mad_f32 v23, -v22, s0, 1.0 ; D1C10017 23C80116 v_mad_f32 v22, v22, s0, -v23 ; D1C10016 845C0116 s_mov_b32 s0, 0x3f7fbe77 ; BE8000FF 3F7FBE77 v_mad_i32_i24 v21, v27, s11, v21 ; D1C20015 0454171B v_cmp_gt_f32_e32 vcc, s0, v5 ; 7C880A00 v_mul_f32_e32 v19, v22, v19 ; 0A262716 v_cndmask_b32_e64 v22, 0, 1.0, vcc ; D1000016 01A9E480 v_cmp_le_f32_e64 s[0:1], s0, v5 ; D0430000 00020A00 v_cmp_gt_i32_e32 vcc, 0, v21 ; 7D882A80 v_add_u32_e32 v27, s13, v21 ; 68362A0D v_cndmask_b32_e32 v21, v21, v27, vcc ; 002A3715 v_mad_f32 v17, v19, v17, v17 ; D1C10011 04462313 v_mad_f32 v18, v19, v18, v18 ; D1C10012 044A2513 v_cndmask_b32_e64 v19, 0, 1.0, s[0:1] ; D1000013 0001E480 v_xor_b32_e32 v21, s6, v21 ; 2A2A2A06 v_mul_f32_e32 v24, v22, v4 ; 0A300916 v_mul_f32_e32 v23, v19, v6 ; 0A2E0D13 v_cvt_f32_i32_e32 v21, v21 ; 7E2A0B15 v_mad_f32 v19, v19, v5, -v24 ; D1C10013 84620B13 v_mul_f32_e32 v22, v22, v6 ; 0A2C0D16 v_mul_f32_e32 v24, v23, v23 ; 0A302F17 v_mac_f32_e32 v24, v22, v22 ; 2C302D16 v_mac_f32_e32 v24, v19, v19 ; 2C302713 v_rsq_f32_e32 v24, v24 ; 7E304918 v_mul_f32_e32 v21, 0x31490fdb, v21 ; 0A2A2AFF 31490FDB v_mul_f32_e32 v21, 0.15915494, v21 ; 0A2A2AF8 v_sin_f32_e32 v27, v21 ; 7E365315 v_mul_f32_e32 v23, v23, v24 ; 0A2E3117 v_cos_f32_e32 v21, v21 ; 7E2A5515 v_mul_f32_e32 v19, v24, v19 ; 0A262718 v_mul_f32_e32 v22, v24, v22 ; 0A2C2D18 v_mul_f32_e32 v24, v23, v6 ; 0A300D17 v_mul_f32_e32 v26, v23, v4 ; 0A340917 v_mac_f32_e32 v24, v19, v5 ; 2C300B13 v_mad_f32 v26, v22, -v5, -v26 ; D1C1001A C46A0B16 v_mul_f32_e32 v25, v19, v4 ; 0A320913 v_mul_f32_e32 v28, v24, v27 ; 0A383718 v_mul_f32_e32 v29, v26, v27 ; 0A3A371A v_mac_f32_e32 v29, v21, v19 ; 2C3A2715 v_mul_f32_e32 v19, v27, v19 ; 0A26271B v_mad_f32 v25, v22, v6, -v25 ; D1C10019 84660D16 v_mul_f32_e32 v30, v23, v21 ; 0A3C2B17 v_mac_f32_e32 v28, v21, v22 ; 2C382D15 v_mul_f32_e32 v22, v27, v22 ; 0A2C2D1B v_mad_f32 v30, v25, v27, -v30 ; D1C1001E 847A3719 v_mul_f32_e32 v25, v25, v21 ; 0A322B19 v_mad_f32 v22, v24, v21, -v22 ; D1C10016 845A2B18 v_mad_f32 v19, v26, v21, -v19 ; D1C10013 844E2B1A v_mul_f32_e64 v21, s4, 0.5 ; D1050015 0001E004 v_rcp_f32_e32 v21, v21 ; 7E2A4515 v_mac_f32_e32 v25, v23, v27 ; 2C323717 s_buffer_load_dword s0, s[24:27], 0x254 ; C022000C 00000254 v_cmp_lt_i32_e32 vcc, 0, v14 ; 7D821C80 v_mul_f32_e64 v23, v21, v11 clamp ; D1058017 00021715 v_mul_f32_e32 v27, 0.5, v23 ; 0A362EF0 v_madak_f32 v26, -2.0, v23, 0x40400000 ; 30342EF5 40400000 v_mul_f32_e32 v23, v27, v23 ; 0A2E2F1B v_mad_f32 v23, v23, v26, 1.0 ; D1C10017 03CA3517 v_sub_f32_e32 v26, s4, v11 ; 04341604 v_mul_f32_e64 v21, v21, v26 clamp ; D1058015 00023515 s_mov_b32 s4, 0x3fc00000 ; BE8400FF 3FC00000 v_mul_f32_e32 v27, s4, v21 ; 0A362A04 v_madak_f32 v26, -2.0, v21, 0x40400000 ; 30342AF5 40400000 v_mul_f32_e32 v21, v27, v21 ; 0A2A2B1B v_mul_f32_e32 v21, v21, v26 ; 0A2A3515 v_min_f32_e32 v21, v21, v23 ; 142A2F15 v_mul_f32_e32 v17, v21, v17 ; 0A222315 v_mul_f32_e32 v18, v21, v18 ; 0A242515 s_waitcnt lgkmcnt(0) ; BF8CC07F v_subrev_f32_e32 v21, s0, v11 ; 062A1600 v_mul_f32_e64 v13, v21, v13 clamp ; D105800D 00021B15 v_cvt_f32_u32_e32 v21, v14 ; 7E2A0D0E v_rcp_f32_e32 v11, v11 ; 7E16450B v_mov_b32_e32 v24, 0x40400000 ; 7E3002FF 40400000 v_rcp_iflag_f32_e32 v21, v21 ; 7E2A4715 v_mul_f32_e32 v21, s10, v21 ; 0A2A2A0A v_cvt_u32_f32_e32 v21, v21 ; 7E2A0F15 v_mul_hi_u32 v23, v21, v14 ; D2860017 00021D15 v_mul_lo_i32 v26, v21, v14 ; D285001A 00021D15 v_cmp_eq_u32_e64 s[0:1], 0, v23 ; D0CA0000 00022E80 v_sub_u32_e32 v27, 0, v26 ; 6A363480 v_cndmask_b32_e64 v23, v26, v27, s[0:1] ; D1000017 0002371A v_mul_hi_u32 v23, v23, v21 ; D2860017 00022B17 v_add_u32_e32 v26, v21, v23 ; 68342F15 v_sub_u32_e32 v21, v21, v23 ; 6A2A2F15 v_cndmask_b32_e64 v21, v21, v26, s[0:1] ; D1000015 00023515 v_mul_hi_u32 v21, v21, v16 ; D2860015 00022115 v_mul_lo_i32 v21, v21, v14 ; D2850015 00021D15 v_sub_u32_e32 v23, v16, v21 ; 6A2E2B10 v_cmp_ge_u32_e64 s[6:7], v16, v21 ; D0CE0006 00022B10 v_cmp_ge_u32_e64 s[0:1], v23, v14 ; D0CE0000 00021D17 s_and_b64 s[0:1], s[0:1], s[6:7] ; 86800600 v_sub_u32_e32 v16, v23, v14 ; 6A201D17 v_add_u32_e32 v21, v23, v14 ; 682A1D17 v_cndmask_b32_e64 v16, v23, v16, s[0:1] ; D1000010 00022117 v_cndmask_b32_e64 v16, v21, v16, s[6:7] ; D1000010 001A2115 v_cmp_eq_u32_e64 s[0:1], 0, v16 ; D0CA0000 00022080 v_sub_u32_e32 v16, 0, v14 ; 6A201C80 v_max_i32_e32 v16, v14, v16 ; 1A20210E v_cvt_f32_u32_e32 v21, v16 ; 7E2A0D10 v_rcp_iflag_f32_e32 v21, v21 ; 7E2A4715 v_mul_f32_e32 v21, s10, v21 ; 0A2A2A0A v_cvt_u32_f32_e32 v21, v21 ; 7E2A0F15 v_mul_hi_u32 v23, v21, v16 ; D2860017 00022115 v_mul_lo_i32 v26, v21, v16 ; D285001A 00022115 v_cmp_eq_u32_e64 s[6:7], 0, v23 ; D0CA0006 00022E80 v_sub_u32_e32 v27, 0, v26 ; 6A363480 v_cndmask_b32_e64 v23, v26, v27, s[6:7] ; D1000017 001A371A v_mul_hi_u32 v23, v23, v21 ; D2860017 00022B17 v_add_u32_e32 v26, v21, v23 ; 68342F15 v_sub_u32_e32 v21, v21, v23 ; 6A2A2F15 v_cndmask_b32_e64 v21, v21, v26, s[6:7] ; D1000015 001A3515 v_mul_hi_u32 v21, v21, v15 ; D2860015 00021F15 v_mul_lo_i32 v21, v21, v16 ; D2850015 00022115 v_sub_u32_e32 v23, v15, v21 ; 6A2E2B0F v_cmp_ge_u32_e64 s[8:9], v15, v21 ; D0CE0008 00022B0F v_cmp_ge_u32_e64 s[6:7], v23, v16 ; D0CE0006 00022117 v_sub_u32_e32 v15, v23, v16 ; 6A1E2117 s_and_b64 s[6:7], s[6:7], s[8:9] ; 86860806 v_add_u32_e32 v16, v23, v16 ; 68202117 v_cndmask_b32_e64 v15, v23, v15, s[6:7] ; D100000F 001A1F17 v_cndmask_b32_e64 v15, v16, v15, s[8:9] ; D100000F 00221F10 v_cmp_ne_u32_e64 s[6:7], 0, v15 ; D0CD0006 00021E80 v_cndmask_b32_e64 v15, 0, 1, s[0:1] ; D100000F 00010280 v_cndmask_b32_e64 v16, 0, 1, s[6:7] ; D1000010 00190280 v_cndmask_b32_e32 v15, v16, v15, vcc ; 001E1F10 v_cmp_ne_u32_e64 s[0:1], 0, v14 ; D0CD0000 00021C80 v_trunc_f32_e32 v14, v12 ; 7E1C390C v_sub_f32_e32 v12, v14, v12 ; 0418190E v_and_b32_e32 v15, 1, v15 ; 261E1E81 v_mul_f32_e32 v14, v2, v11 ; 0A1C1702 v_cmp_eq_u32_e32 vcc, 1, v15 ; 7D941E81 v_mul_f32_e32 v15, v3, v11 ; 0A1E1703 v_mul_f32_e32 v16, v14, v4 ; 0A20090E v_mul_f32_e32 v11, v0, v11 ; 0A161700 v_mad_f32 v16, v15, -v5, -v16 ; D1C10010 C4420B0F v_mul_f32_e32 v14, v14, v22 ; 0A1C2D0E v_mad_f32 v16, -v11, v6, v16 ; D1C10010 24420D0B s_and_b64 s[0:1], vcc, s[0:1] ; 8680006A v_cmp_lt_f32_e32 vcc, 0.5, v16 ; 7C8220F0 v_add_f32_e32 v16, -0.5, v16 ; 022020F1 v_mad_f32 v14, v15, -v25, -v14 ; D1C1000E C43A330F v_mul_f32_e32 v21, s4, v16 ; 0A2A2004 v_mad_f32 v11, -v11, v19, v14 ; D1C1000B 243A270B s_mov_b32 s4, 0xbd4ccccd ; BE8400FF BD4CCCCD s_mov_b32 s8, 0x3d4ccccd ; BE8800FF 3D4CCCCD v_mul_f32_e32 v14, 0x41f00000, v16 ; 0A1C20FF 41F00000 v_cmp_lt_f32_e64 s[6:7], s4, v11 ; D0410006 00021604 v_cmp_gt_f32_e64 s[8:9], s8, v11 ; D0440008 00021608 v_cmp_gt_f32_e64 s[10:11], s4, v11 ; D044000A 00021604 v_mul_f32_e32 v11, v14, v11 ; 0A16170E v_xor_b32_e32 v14, 0x80000000, v21 ; 2A1C2AFF 80000000 s_and_b64 s[6:7], s[6:7], s[8:9] ; 86860806 v_cndmask_b32_e64 v14, v21, v14, s[10:11] ; D100000E 002A1D15 v_cndmask_b32_e64 v11, v14, v11, s[6:7] ; D100000B 001A170E v_mul_f32_e32 v11, 0.15915494, v11 ; 0A1616F8 v_cos_f32_e32 v14, v11 ; 7E1C550B v_sin_f32_e32 v11, v11 ; 7E16530B s_buffer_load_dwordx4 s[8:11], s[24:27], 0x25c ; C02A020C 0000025C v_add_f32_e32 v12, 1.0, v12 ; 021818F2 s_xor_b64 s[0:1], s[0:1], s[18:19] ; 88801200 v_mul_f32_e32 v15, v19, v11 ; 0A1E1713 v_mul_f32_e32 v16, v25, v11 ; 0A201719 v_mul_f32_e32 v11, v22, v11 ; 0A161716 v_mad_f32 v11, v14, v4, -v11 ; D1C1000B 842E090E v_mad_f32 v15, v14, v6, -v15 ; D1C1000F 843E0D0E v_mad_f32 v16, v14, v5, -v16 ; D1C10010 84420B0E s_waitcnt lgkmcnt(0) ; BF8CC07F v_add_f32_e64 v14, s8, -1.0 ; D101000E 0001E608 v_mad_f32 v13, v13, v14, 1.0 ; D1C1000D 03CA1D0D v_mul_f32_e32 v14, v13, v17 ; 0A1C230D v_mul_f32_e32 v13, v13, v18 ; 0A1A250D v_mul_f32_e32 v17, v12, v13 ; 0A221B0C v_mul_f32_e32 v12, v12, v14 ; 0A181D0C v_cndmask_b32_e64 v12, v14, v12, s[0:1] ; D100000C 0002190E v_mul_f32_e64 v14, s10, s10 ; D105000E 0000140A v_mac_f32_e64 v14, s9, s9 ; D116000E 00001209 v_mac_f32_e64 v14, s11, s11 ; D116000E 0000160B v_cndmask_b32_e64 v13, v13, v17, s[0:1] ; D100000D 0002230D v_cmp_lg_f32_e64 s[0:1], 0, v14 ; D0450000 00021C80 v_sqrt_f32_e32 v17, v14 ; 7E224F0E v_rsq_f32_e32 v14, v14 ; 7E1C490E s_buffer_load_dword s4, s[24:27], 0x4e0 ; C022010C 000004E0 v_cndmask_b32_e32 v11, v4, v11, vcc ; 00161704 v_mul_f32_e32 v12, 0.5, v12 ; 0A1818F0 v_mul_f32_e32 v19, s10, v14 ; 0A261C0A v_mul_f32_e32 v18, s9, v14 ; 0A241C09 v_mul_f32_e32 v9, v19, v9 ; 0A121313 v_mul_f32_e32 v14, s11, v14 ; 0A1C1C0B v_mac_f32_e32 v9, v18, v7 ; 2C120F12 v_mac_f32_e32 v9, v14, v10 ; 2C12150E s_waitcnt lgkmcnt(0) ; BF8CC07F v_mac_f32_e32 v9, s4, v17 ; 2C122204 s_mov_b32 s4, 0x3ffccccd ; BE8400FF 3FFCCCCD v_mad_f32 v7, v9, s4, 0.5 ; D1C10007 03C00909 s_mov_b32 s4, 0x3f791687 ; BE8400FF 3F791687 v_mad_f32 v10, v9, s4, 0.5 ; D1C1000A 03C00909 v_fract_f32_e32 v10, v10 ; 7E14370A s_mov_b32 s4, 0x3ec00000 ; BE8400FF 3EC00000 v_mad_f32 v17, v9, s4, 0.5 ; D1C10011 03C00909 v_fract_f32_e32 v7, v7 ; 7E0E3707 s_mov_b32 s4, 0x3e45a1cb ; BE8400FF 3E45A1CB v_mad_f32 v10, v10, 2.0, -1.0 ; D1C1000A 03CDE90A v_mad_f32 v9, v9, s4, 0.5 ; D1C10009 03C00909 v_fract_f32_e32 v17, v17 ; 7E223711 v_mad_f32 v7, v7, 2.0, -1.0 ; D1C10007 03CDE907 v_mul_f32_e32 v22, v10, v10 ; 0A2C150A v_mad_f32 v10, |v10|, -2.0, v24 ; D1C1010A 0461EB0A s_mov_b32 s4, 0x3e800000 ; BE8400FF 3E800000 v_fract_f32_e32 v9, v9 ; 7E123709 v_mul_f32_e32 v10, s4, v10 ; 0A141404 v_mad_f32 v17, v17, 2.0, -1.0 ; D1C10011 03CDE911 v_mul_f32_e32 v21, v7, v7 ; 0A2A0F07 v_mad_f32 v7, |v7|, -2.0, v24 ; D1C10107 0461EB07 v_mad_f32 v9, v9, 2.0, -1.0 ; D1C10009 03CDE909 v_mul_f32_e32 v23, v17, v17 ; 0A2E2311 v_mad_f32 v17, |v17|, -2.0, v24 ; D1C10111 0461EB11 v_mul_f32_e32 v7, s4, v7 ; 0A0E0E04 v_mul_f32_e32 v10, v10, v22 ; 0A142D0A v_mul_f32_e32 v25, v9, v9 ; 0A321309 v_mac_f32_e32 v10, v7, v21 ; 2C142B07 v_mul_f32_e32 v7, s4, v17 ; 0A0E2204 v_mad_f32 v9, |v9|, -2.0, v24 ; D1C10109 0461EB09 v_mac_f32_e32 v10, v7, v23 ; 2C142F07 v_mul_f32_e32 v7, s4, v9 ; 0A0E1204 v_mac_f32_e32 v10, v7, v25 ; 2C143307 v_mul_f32_e32 v7, v10, v18 ; 0A0E250A v_mul_f32_e32 v9, v10, v19 ; 0A12270A v_cndmask_b32_e64 v7, 0, v7, s[0:1] ; D1000007 00020E80 v_mul_f32_e32 v10, v10, v14 ; 0A141D0A v_add_f32_e32 v7, v11, v7 ; 020E0F0B v_cndmask_b32_e32 v11, v5, v16, vcc ; 00162105 v_cndmask_b32_e64 v9, 0, v9, s[0:1] ; D1000009 00021280 v_cndmask_b32_e64 v10, 0, v10, s[0:1] ; D100000A 00021480 v_add_f32_e32 v9, v11, v9 ; 0212130B v_cndmask_b32_e32 v11, v6, v15, vcc ; 00161F06 v_add_f32_e32 v10, v11, v10 ; 0214150B v_mul_f32_e32 v11, v9, v9 ; 0A161309 v_mac_f32_e32 v11, v7, v7 ; 2C160F07 v_mac_f32_e32 v11, v10, v10 ; 2C16150A v_rsq_f32_e32 v11, v11 ; 7E16490B s_add_i32 s0, s12, 32 ; 8100A00C s_movk_i32 s1, 0x8000 ; B0018000 s_load_dwordx4 s[32:35], s[0:1], 0x0 ; C00A0800 00000000 v_mul_f32_e32 v7, v11, v7 ; 0A0E0F0B v_mul_f32_e32 v9, v11, v9 ; 0A12130B v_mul_f32_e32 v10, v11, v10 ; 0A14150B v_mul_f32_e32 v11, v5, v5 ; 0A160B05 v_mac_f32_e32 v11, v4, v4 ; 2C160904 v_mac_f32_e32 v11, v6, v6 ; 2C160D06 v_rsq_f32_e32 v11, v11 ; 7E16490B s_waitcnt lgkmcnt(0) ; BF8CC07F s_buffer_load_dwordx4 s[8:11], s[32:35], 0x0 ; C02A0210 00000000 s_buffer_load_dwordx4 s[24:27], s[32:35], 0x10 ; C02A0610 00000010 s_buffer_load_dwordx4 s[28:31], s[32:35], 0x20 ; C02A0710 00000020 s_buffer_load_dwordx4 s[32:35], s[32:35], 0x30 ; C02A0810 00000030 v_mad_f32 v17, -v30, v12, v3 ; D1C10011 240E191E v_mad_f32 v18, -v29, v12, v0 ; D1C10012 2402191D v_mad_f32 v16, -v28, v12, v2 ; D1C10010 240A191C v_mul_f32_e32 v4, v11, v4 ; 0A08090B v_mul_f32_e32 v5, v11, v5 ; 0A0A0B0B v_mul_f32_e32 v6, v11, v6 ; 0A0C0D0B v_mul_f32_e32 v11, v30, v30 ; 0A163D1E v_mad_f32 v2, v28, v12, v2 ; D1C10002 040A191C v_mad_f32 v3, v30, v12, v3 ; D1C10003 040E191E v_mad_f32 v0, v29, v12, v0 ; D1C10000 0402191D v_mac_f32_e32 v11, v28, v28 ; 2C16391C s_waitcnt lgkmcnt(0) ; BF8CC07F v_mul_f32_e32 v22, s25, v17 ; 0A2C2219 v_mul_f32_e32 v23, s29, v17 ; 0A2E221D v_mad_f32 v12, v7, v13, v16 ; D1C1000C 04421B07 v_mad_f32 v19, v9, v13, v17 ; D1C10013 04461B09 v_mad_f32 v21, v10, v13, v18 ; D1C10015 044A1B0A v_mad_f32 v7, v7, v13, v2 ; D1C10007 040A1B07 v_mad_f32 v9, v9, v13, v3 ; D1C10009 040E1B09 v_mad_f32 v10, v10, v13, v0 ; D1C1000A 04021B0A v_mul_f32_e32 v13, s9, v17 ; 0A1A2209 v_mul_f32_e32 v17, s33, v17 ; 0A222221 v_mac_f32_e32 v11, v29, v29 ; 2C163B1D v_mac_f32_e32 v17, s32, v16 ; 2C222020 v_rsq_f32_e32 v11, v11 ; 7E16490B v_mac_f32_e32 v17, s34, v18 ; 2C222422 v_mac_f32_e32 v13, s8, v16 ; 2C1A2008 v_mac_f32_e32 v22, s24, v16 ; 2C2C2018 v_mac_f32_e32 v23, s28, v16 ; 2C2E201C v_add_f32_e32 v16, s35, v17 ; 02202223 v_cvt_f32_u32_e32 v17, v20 ; 7E220D14 v_mac_f32_e32 v13, s10, v18 ; 2C1A240A v_mac_f32_e32 v22, s26, v18 ; 2C2C241A v_mac_f32_e32 v23, s30, v18 ; 2C2E241E v_mul_f32_e32 v14, v11, v28 ; 0A1C390B v_mul_f32_e32 v15, v11, v30 ; 0A1E3D0B v_mul_f32_e32 v11, v11, v29 ; 0A163B0B v_add_f32_e32 v13, s11, v13 ; 021A1A0B v_add_f32_e32 v22, s27, v22 ; 022C2C1B v_add_f32_e32 v23, s31, v23 ; 022E2E1F tbuffer_store_format_x v13, off, s[20:23], dfmt:4, nfmt:4, s2 glc slc ; EA224000 02450D00 tbuffer_store_format_x v22, off, s[20:23], dfmt:4, nfmt:4, s2 offset:16 glc slc ; EA224010 02451600 tbuffer_store_format_x v23, off, s[20:23], dfmt:4, nfmt:4, s2 offset:32 glc slc ; EA224020 02451700 tbuffer_store_format_x v16, off, s[20:23], dfmt:4, nfmt:4, s2 offset:48 glc slc ; EA224030 02451000 tbuffer_store_format_x v4, off, s[20:23], dfmt:4, nfmt:4, s2 offset:64 glc slc ; EA224040 02450400 tbuffer_store_format_x v5, off, s[20:23], dfmt:4, nfmt:4, s2 offset:80 glc slc ; EA224050 02450500 tbuffer_store_format_x v6, off, s[20:23], dfmt:4, nfmt:4, s2 offset:96 glc slc ; EA224060 02450600 tbuffer_store_format_x v14, off, s[20:23], dfmt:4, nfmt:4, s2 offset:112 glc slc ; EA224070 02450E00 tbuffer_store_format_x v15, off, s[20:23], dfmt:4, nfmt:4, s2 offset:128 glc slc ; EA224080 02450F00 tbuffer_store_format_x v11, off, s[20:23], dfmt:4, nfmt:4, s2 offset:144 glc slc ; EA224090 02450B00 tbuffer_store_format_x v1, off, s[20:23], dfmt:4, nfmt:4, s2 offset:160 glc slc ; EA2240A0 02450100 tbuffer_store_format_x v8, off, s[20:23], dfmt:4, nfmt:4, s2 offset:176 glc slc ; EA2240B0 02450800 tbuffer_store_format_x v17, off, s[20:23], dfmt:4, nfmt:4, s2 offset:192 glc slc ; EA2240C0 02451100 v_mul_f32_e32 v13, s9, v3 ; 0A1A0609 v_mul_f32_e32 v16, s25, v3 ; 0A200619 v_mul_f32_e32 v18, s29, v3 ; 0A24061D v_mul_f32_e32 v3, s33, v3 ; 0A060621 v_mac_f32_e32 v13, s8, v2 ; 2C1A0408 v_mac_f32_e32 v16, s24, v2 ; 2C200418 v_mac_f32_e32 v18, s28, v2 ; 2C24041C v_mac_f32_e32 v3, s32, v2 ; 2C060420 v_mac_f32_e32 v13, s10, v0 ; 2C1A000A v_mac_f32_e32 v16, s26, v0 ; 2C20001A v_mac_f32_e32 v18, s30, v0 ; 2C24001E v_mac_f32_e32 v3, s34, v0 ; 2C060022 v_add_f32_e32 v0, s35, v3 ; 02000623 v_add_f32_e32 v13, s11, v13 ; 021A1A0B v_add_f32_e32 v16, s27, v16 ; 0220201B v_add_f32_e32 v18, s31, v18 ; 0224241F s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 0) ; BF900022 tbuffer_store_format_x v13, off, s[20:23], dfmt:4, nfmt:4, s2 offset:4 glc slc ; EA224004 02450D00 tbuffer_store_format_x v16, off, s[20:23], dfmt:4, nfmt:4, s2 offset:20 glc slc ; EA224014 02451000 tbuffer_store_format_x v18, off, s[20:23], dfmt:4, nfmt:4, s2 offset:36 glc slc ; EA224024 02451200 tbuffer_store_format_x v0, off, s[20:23], dfmt:4, nfmt:4, s2 offset:52 glc slc ; EA224034 02450000 tbuffer_store_format_x v4, off, s[20:23], dfmt:4, nfmt:4, s2 offset:68 glc slc ; EA224044 02450400 tbuffer_store_format_x v5, off, s[20:23], dfmt:4, nfmt:4, s2 offset:84 glc slc ; EA224054 02450500 tbuffer_store_format_x v6, off, s[20:23], dfmt:4, nfmt:4, s2 offset:100 glc slc ; EA224064 02450600 tbuffer_store_format_x v14, off, s[20:23], dfmt:4, nfmt:4, s2 offset:116 glc slc ; EA224074 02450E00 tbuffer_store_format_x v15, off, s[20:23], dfmt:4, nfmt:4, s2 offset:132 glc slc ; EA224084 02450F00 tbuffer_store_format_x v11, off, s[20:23], dfmt:4, nfmt:4, s2 offset:148 glc slc ; EA224094 02450B00 tbuffer_store_format_x v8, off, s[20:23], dfmt:4, nfmt:4, s2 offset:164 glc slc ; EA2240A4 02450800 tbuffer_store_format_x v8, off, s[20:23], dfmt:4, nfmt:4, s2 offset:180 glc slc ; EA2240B4 02450800 tbuffer_store_format_x v17, off, s[20:23], dfmt:4, nfmt:4, s2 offset:196 glc slc ; EA2240C4 02451100 v_mul_f32_e32 v0, s9, v19 ; 0A002609 v_mul_f32_e32 v2, s25, v19 ; 0A042619 v_mul_f32_e32 v3, s29, v19 ; 0A06261D v_mul_f32_e32 v13, s33, v19 ; 0A1A2621 v_mac_f32_e32 v0, s8, v12 ; 2C001808 v_mac_f32_e32 v2, s24, v12 ; 2C041818 v_mac_f32_e32 v3, s28, v12 ; 2C06181C v_mac_f32_e32 v13, s32, v12 ; 2C1A1820 v_mac_f32_e32 v0, s10, v21 ; 2C002A0A v_mac_f32_e32 v2, s26, v21 ; 2C042A1A v_mac_f32_e32 v3, s30, v21 ; 2C062A1E v_mac_f32_e32 v13, s34, v21 ; 2C1A2A22 v_add_f32_e32 v0, s11, v0 ; 0200000B v_add_f32_e32 v2, s27, v2 ; 0204041B v_add_f32_e32 v3, s31, v3 ; 0206061F v_add_f32_e32 v12, s35, v13 ; 02181A23 s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 0) ; BF900022 tbuffer_store_format_x v0, off, s[20:23], dfmt:4, nfmt:4, s2 offset:8 glc slc ; EA224008 02450000 tbuffer_store_format_x v2, off, s[20:23], dfmt:4, nfmt:4, s2 offset:24 glc slc ; EA224018 02450200 tbuffer_store_format_x v3, off, s[20:23], dfmt:4, nfmt:4, s2 offset:40 glc slc ; EA224028 02450300 tbuffer_store_format_x v12, off, s[20:23], dfmt:4, nfmt:4, s2 offset:56 glc slc ; EA224038 02450C00 tbuffer_store_format_x v4, off, s[20:23], dfmt:4, nfmt:4, s2 offset:72 glc slc ; EA224048 02450400 tbuffer_store_format_x v5, off, s[20:23], dfmt:4, nfmt:4, s2 offset:88 glc slc ; EA224058 02450500 tbuffer_store_format_x v6, off, s[20:23], dfmt:4, nfmt:4, s2 offset:104 glc slc ; EA224068 02450600 tbuffer_store_format_x v14, off, s[20:23], dfmt:4, nfmt:4, s2 offset:120 glc slc ; EA224078 02450E00 tbuffer_store_format_x v15, off, s[20:23], dfmt:4, nfmt:4, s2 offset:136 glc slc ; EA224088 02450F00 tbuffer_store_format_x v11, off, s[20:23], dfmt:4, nfmt:4, s2 offset:152 glc slc ; EA224098 02450B00 tbuffer_store_format_x v1, off, s[20:23], dfmt:4, nfmt:4, s2 offset:168 glc slc ; EA2240A8 02450100 tbuffer_store_format_x v1, off, s[20:23], dfmt:4, nfmt:4, s2 offset:184 glc slc ; EA2240B8 02450100 tbuffer_store_format_x v17, off, s[20:23], dfmt:4, nfmt:4, s2 offset:200 glc slc ; EA2240C8 02451100 v_mul_f32_e32 v0, s9, v9 ; 0A001209 v_mul_f32_e32 v2, s25, v9 ; 0A041219 v_mul_f32_e32 v3, s29, v9 ; 0A06121D v_mul_f32_e32 v9, s33, v9 ; 0A121221 v_mac_f32_e32 v0, s8, v7 ; 2C000E08 v_mac_f32_e32 v2, s24, v7 ; 2C040E18 v_mac_f32_e32 v3, s28, v7 ; 2C060E1C v_mac_f32_e32 v9, s32, v7 ; 2C120E20 v_mac_f32_e32 v0, s10, v10 ; 2C00140A v_mac_f32_e32 v2, s26, v10 ; 2C04141A v_mac_f32_e32 v3, s30, v10 ; 2C06141E v_mac_f32_e32 v9, s34, v10 ; 2C121422 v_add_f32_e32 v0, s11, v0 ; 0200000B v_add_f32_e32 v2, s27, v2 ; 0204041B v_add_f32_e32 v3, s31, v3 ; 0206061F v_add_f32_e32 v7, s35, v9 ; 020E1223 s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 0) ; BF900022 tbuffer_store_format_x v0, off, s[20:23], dfmt:4, nfmt:4, s2 offset:12 glc slc ; EA22400C 02450000 tbuffer_store_format_x v2, off, s[20:23], dfmt:4, nfmt:4, s2 offset:28 glc slc ; EA22401C 02450200 tbuffer_store_format_x v3, off, s[20:23], dfmt:4, nfmt:4, s2 offset:44 glc slc ; EA22402C 02450300 tbuffer_store_format_x v7, off, s[20:23], dfmt:4, nfmt:4, s2 offset:60 glc slc ; EA22403C 02450700 tbuffer_store_format_x v4, off, s[20:23], dfmt:4, nfmt:4, s2 offset:76 glc slc ; EA22404C 02450400 tbuffer_store_format_x v5, off, s[20:23], dfmt:4, nfmt:4, s2 offset:92 glc slc ; EA22405C 02450500 tbuffer_store_format_x v6, off, s[20:23], dfmt:4, nfmt:4, s2 offset:108 glc slc ; EA22406C 02450600 tbuffer_store_format_x v14, off, s[20:23], dfmt:4, nfmt:4, s2 offset:124 glc slc ; EA22407C 02450E00 tbuffer_store_format_x v15, off, s[20:23], dfmt:4, nfmt:4, s2 offset:140 glc slc ; EA22408C 02450F00 tbuffer_store_format_x v11, off, s[20:23], dfmt:4, nfmt:4, s2 offset:156 glc slc ; EA22409C 02450B00 tbuffer_store_format_x v8, off, s[20:23], dfmt:4, nfmt:4, s2 offset:172 glc slc ; EA2240AC 02450800 tbuffer_store_format_x v1, off, s[20:23], dfmt:4, nfmt:4, s2 offset:188 glc slc ; EA2240BC 02450100 tbuffer_store_format_x v17, off, s[20:23], dfmt:4, nfmt:4, s2 offset:204 glc slc ; EA2240CC 02451100 s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 0) ; BF900022 s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0) ; BF900012 BB1_22: s_or_b64 exec, exec, s[16:17] ; 87FE107E BB1_23: s_or_b64 exec, exec, s[14:15] ; 87FE0E7E s_mov_b32 m0, s3 ; BEFC0003 s_nop 0 ; BF800000 s_waitcnt vmcnt(0) ; BF8C0F70 s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP) ; BF900003 BB1_24: s_endpgm ; BF810000 Geometry Shader: *** SHADER STATS *** SGPRS: 40 VGPRS: 32 Spilled SGPRs: 0 Spilled VGPRs: 0 PrivMem VGPRS: 0 Code Size: 3948 bytes LDS: 0 blocks Scratch: 2048 bytes per wave Max Waves: 8 ******************** Pixel Shader: SPIRV (sha1: 8d3080436f4c88a70f901e25a2a20bfbda116369): ; SPIR-V ; Version: 1.3 ; Generator: Khronos; 0 ; Bound: 556 ; Schema: 0 OpCapability Shader OpCapability ImageQuery OpCapability DerivativeControl %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %v1 %v2 %v3 %o0 %o1 %o2 %ps_frag_coord OpExecutionMode %main OriginUpperLeft %3 = OpString "FS_f3c85fc9fe87b521df855b55b6f40f2bc4b91ebd" OpSource Unknown 0 %3 OpName %shader_in "shader_in" OpName %ps_main "ps_main" OpName %ps_kill "ps_kill" OpName %cb0_t "cb0_t" OpMemberName %cb0_t 0 "m" OpName %cb0 "cb0" OpName %cb0_bound "cb0_bound" OpName %cb2_t "cb2_t" OpMemberName %cb2_t 0 "m" OpName %cb2 "cb2" OpName %cb2_bound "cb2_bound" OpName %s3 "s3" OpName %t0 "t0" OpName %t0_bound "t0_bound" OpName %t1 "t1" OpName %t1_bound "t1_bound" OpName %t28 "t28" OpName %t28_bound "t28_bound" OpName %v1 "v1" OpName %v2 "v2" OpName %v3 "v3" OpName %o0 "o0" OpName %o1 "o1" OpName %o2 "o2" OpName %r0 "r0" OpName %r1 "r1" OpName %r2 "r2" OpName %ps_frag_coord "ps_frag_coord" OpName %omap0_r "omap0.r" OpName %omap0_g "omap0.g" OpName %omap0_b "omap0.b" OpName %omap0_a "omap0.a" OpName %omap1_r "omap1.r" OpName %omap1_g "omap1.g" OpName %omap1_b "omap1.b" OpName %omap1_a "omap1.a" OpName %omap2_r "omap2.r" OpName %omap2_g "omap2.g" OpName %omap2_b "omap2.b" OpName %omap2_a "omap2.a" OpName %main "main" OpDecorate %_arr_v4float_uint_3 ArrayStride 16 OpDecorate %cb0_t Block OpMemberDecorate %cb0_t 0 Offset 0 OpDecorate %cb0 DescriptorSet 0 OpDecorate %cb0 Binding 5 OpDecorate %cb0_bound SpecId 5 OpDecorate %_arr_v4float_uint_8 ArrayStride 16 OpDecorate %cb2_t Block OpMemberDecorate %cb2_t 0 Offset 0 OpDecorate %cb2 DescriptorSet 0 OpDecorate %cb2 Binding 6 OpDecorate %cb2_bound SpecId 6 OpDecorate %s3 DescriptorSet 0 OpDecorate %s3 Binding 7 OpDecorate %t0 DescriptorSet 0 OpDecorate %t0 Binding 8 OpDecorate %t0_bound SpecId 8 OpDecorate %t1 DescriptorSet 0 OpDecorate %t1 Binding 9 OpDecorate %t1_bound SpecId 9 OpDecorate %t28 DescriptorSet 0 OpDecorate %t28 Binding 10 OpDecorate %t28_bound SpecId 10 OpDecorate %v1 Location 1 OpDecorate %v2 Location 2 OpDecorate %v3 Location 3 OpDecorate %o0 Location 0 OpDecorate %o0 Index 0 OpDecorate %o1 Location 1 OpDecorate %o1 Index 0 OpDecorate %o2 Location 2 OpDecorate %o2 Index 0 OpDecorate %ps_frag_coord BuiltIn FragCoord OpDecorate %omap0_r SpecId 1216 OpDecorate %omap0_g SpecId 1217 OpDecorate %omap0_b SpecId 1218 OpDecorate %omap0_a SpecId 1219 OpDecorate %omap1_r SpecId 1220 OpDecorate %omap1_g SpecId 1221 OpDecorate %omap1_b SpecId 1222 OpDecorate %omap1_a SpecId 1223 OpDecorate %omap2_r SpecId 1224 OpDecorate %omap2_g SpecId 1225 OpDecorate %omap2_b SpecId 1226 OpDecorate %omap2_a SpecId 1227 %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %uint = OpTypeInt 32 0 %uint_4 = OpConstant %uint 4 %_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 %_ptr_Private__arr_v4float_uint_4 = OpTypePointer Private %_arr_v4float_uint_4 %void = OpTypeVoid %13 = OpTypeFunction %void %bool = OpTypeBool %false = OpConstantFalse %bool %_ptr_Private_bool = OpTypePointer Private %bool %uint_3 = OpConstant %uint 3 %_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 %cb0_t = OpTypeStruct %_arr_v4float_uint_3 %_ptr_Uniform_cb0_t = OpTypePointer Uniform %cb0_t %cb0_bound = OpSpecConstantTrue %bool %uint_8 = OpConstant %uint 8 %_arr_v4float_uint_8 = OpTypeArray %v4float %uint_8 %cb2_t = OpTypeStruct %_arr_v4float_uint_8 %_ptr_Uniform_cb2_t = OpTypePointer Uniform %cb2_t %cb2_bound = OpSpecConstantTrue %bool %31 = OpTypeSampler %_ptr_UniformConstant_31 = OpTypePointer UniformConstant %31 %34 = OpTypeImage %float 2D 0 1 0 1 Unknown %_ptr_UniformConstant_34 = OpTypePointer UniformConstant %34 %t0_bound = OpSpecConstantTrue %bool %38 = OpTypeImage %float 2D 1 1 0 1 Unknown %t1_bound = OpSpecConstantTrue %bool %41 = OpTypeImage %float 2D 0 0 0 1 Unknown %_ptr_UniformConstant_41 = OpTypePointer UniformConstant %41 %t28_bound = OpSpecConstantTrue %bool %45 = OpTypeImage %float 2D 1 0 0 1 Unknown %v3float = OpTypeVector %float 3 %_ptr_Input_v3float = OpTypePointer Input %v3float %_ptr_Output_v4float = OpTypePointer Output %v4float %_ptr_Private_v4float = OpTypePointer Private %v4float %uint_0 = OpConstant %uint 0 %v2uint = OpTypeVector %uint 2 %61 = OpConstantComposite %v2uint %uint_0 %uint_0 %v2float = OpTypeVector %float 2 %int = OpTypeInt 32 1 %int_7 = OpConstant %int 7 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int_0 = OpConstant %int 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %uint_1 = OpConstant %uint 1 %v2bool = OpTypeVector %bool 2 %uint_4294967295 = OpConstant %uint 4294967295 %79 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 %uint_7 = OpConstant %uint 7 %111 = OpConstantComposite %v2uint %uint_7 %uint_7 %v4int = OpTypeVector %int 4 %v2int = OpTypeVector %int 2 %float_0 = OpConstant %float 0 %uint_1065353216 = OpConstant %uint 1065353216 %136 = OpConstantComposite %v2uint %uint_1065353216 %uint_1065353216 %uint_3221225472 = OpConstant %uint 3221225472 %156 = OpConstantComposite %v2uint %uint_3221225472 %uint_3221225472 %uint_1056964608 = OpConstant %uint 1056964608 %int_3 = OpConstant %int 3 %277 = OpTypeSampledImage %34 %uint_3204448256 = OpConstant %uint 3204448256 %uint_1073741824 = OpConstant %uint 1073741824 %v3uint = OpTypeVector %uint 3 %315 = OpConstantComposite %v3uint %uint_1073741824 %uint_1073741824 %uint_1073741824 %uint_3212836864 = OpConstant %uint 3212836864 %318 = OpConstantComposite %v3uint %uint_3212836864 %uint_3212836864 %uint_3212836864 %int_1 = OpConstant %int 1 %int_2 = OpConstant %int 2 %uint_2 = OpConstant %uint 2 %uint_1090519040 = OpConstant %uint 1090519040 %474 = OpConstantComposite %v2uint %uint_1056964608 %uint_1056964608 %486 = OpConstantComposite %v2uint %uint_1065353216 %uint_0 %490 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_0 %_ptr_Input_v4float = OpTypePointer Input %v4float %float_1 = OpConstant %float 1 %omap0_r = OpSpecConstant %uint 0 %omap0_g = OpSpecConstant %uint 1 %omap0_b = OpSpecConstant %uint 2 %omap0_a = OpSpecConstant %uint 3 %omap1_r = OpSpecConstant %uint 0 %omap1_g = OpSpecConstant %uint 1 %omap1_b = OpSpecConstant %uint 2 %omap1_a = OpSpecConstant %uint 3 %omap2_r = OpSpecConstant %uint 0 %omap2_g = OpSpecConstant %uint 1 %omap2_b = OpSpecConstant %uint 2 %omap2_a = OpSpecConstant %uint 3 %shader_in = OpVariable %_ptr_Private__arr_v4float_uint_4 Private %ps_kill = OpVariable %_ptr_Private_bool Private %false %cb0 = OpVariable %_ptr_Uniform_cb0_t Uniform %cb2 = OpVariable %_ptr_Uniform_cb2_t Uniform %s3 = OpVariable %_ptr_UniformConstant_31 UniformConstant %t0 = OpVariable %_ptr_UniformConstant_34 UniformConstant %t1 = OpVariable %_ptr_UniformConstant_34 UniformConstant %t28 = OpVariable %_ptr_UniformConstant_41 UniformConstant %v1 = OpVariable %_ptr_Input_v3float Input %v2 = OpVariable %_ptr_Input_v3float Input %v3 = OpVariable %_ptr_Input_v3float Input %o0 = OpVariable %_ptr_Output_v4float Output %o1 = OpVariable %_ptr_Output_v4float Output %o2 = OpVariable %_ptr_Output_v4float Output %r0 = OpVariable %_ptr_Private_v4float Private %r1 = OpVariable %_ptr_Private_v4float Private %r2 = OpVariable %_ptr_Private_v4float Private %ps_frag_coord = OpVariable %_ptr_Input_v4float Input %ps_main = OpFunction %void None %13 %14 = OpLabel %63 = OpBitcast %v2float %61 %68 = OpAccessChain %_ptr_Uniform_v4float %cb2 %int_0 %int_7 %70 = OpAccessChain %_ptr_Uniform_float %68 %uint_0 %71 = OpLoad %float %70 %73 = OpAccessChain %_ptr_Uniform_float %68 %uint_1 %74 = OpLoad %float %73 %75 = OpCompositeConstruct %v2float %71 %74 %77 = OpFOrdLessThan %v2bool %63 %75 %80 = OpSelect %v2uint %77 %79 %61 %81 = OpBitcast %v2float %80 %82 = OpLoad %v4float %r0 %83 = OpVectorShuffle %v4float %82 %81 4 5 2 3 OpStore %r0 %83 %84 = OpLoad %v4float %r0 %85 = OpCompositeExtract %float %84 1 %86 = OpBitcast %uint %85 %87 = OpLoad %v4float %r0 %88 = OpCompositeExtract %float %87 0 %89 = OpBitcast %uint %88 %90 = OpBitwiseOr %uint %86 %89 %91 = OpBitcast %float %90 %92 = OpLoad %v4float %r0 %93 = OpCompositeInsert %v4float %91 %92 0 OpStore %r0 %93 %94 = OpLoad %v4float %r0 %95 = OpCompositeExtract %float %94 0 %96 = OpBitcast %uint %95 %97 = OpINotEqual %bool %96 %uint_0 OpSelectionMerge %99 None OpBranchConditional %97 %98 %99 %98 = OpLabel %100 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %101 = OpLoad %v4float %100 %102 = OpVectorShuffle %v2float %101 %101 0 1 %103 = OpConvertFToU %v2uint %102 %104 = OpBitcast %v2float %103 %105 = OpLoad %v4float %r0 %106 = OpVectorShuffle %v4float %105 %104 4 5 2 3 OpStore %r0 %106 %107 = OpLoad %v4float %r0 %108 = OpVectorShuffle %v2float %107 %107 0 1 %109 = OpBitcast %v2uint %108 %112 = OpBitwiseAnd %v2uint %109 %111 %113 = OpBitcast %v2float %112 %114 = OpLoad %v4float %r0 %115 = OpVectorShuffle %v4float %114 %113 4 5 2 3 OpStore %r0 %115 %116 = OpBitcast %v2float %61 %117 = OpLoad %v4float %r0 %118 = OpVectorShuffle %v4float %117 %116 0 1 4 5 OpStore %r0 %118 %119 = OpLoad %v4float %r0 %121 = OpBitcast %v4int %119 %122 = OpCompositeExtract %int %121 3 %124 = OpVectorShuffle %v2int %121 %121 0 1 OpSelectionMerge %125 None OpBranchConditional %t28_bound %126 %127 %126 = OpLabel %128 = OpLoad %41 %t28 %129 = OpImageFetch %v4float %128 %124 Lod %122 %130 = OpCompositeExtract %float %129 0 OpBranch %125 %127 = OpLabel OpBranch %125 %125 = OpLabel %132 = OpPhi %float %130 %126 %float_0 %127 %133 = OpLoad %v4float %r0 %134 = OpCompositeInsert %v4float %132 %133 0 OpStore %r0 %134 %137 = OpBitcast %v2float %136 %138 = OpAccessChain %_ptr_Uniform_v4float %cb2 %int_0 %int_7 %139 = OpAccessChain %_ptr_Uniform_float %138 %uint_0 %140 = OpLoad %float %139 %141 = OpAccessChain %_ptr_Uniform_float %138 %uint_1 %142 = OpLoad %float %141 %143 = OpCompositeConstruct %v2float %140 %142 %144 = OpFOrdLessThan %v2bool %137 %143 %145 = OpSelect %v2uint %144 %79 %61 %146 = OpBitcast %v2float %145 %147 = OpLoad %v4float %r0 %148 = OpVectorShuffle %v4float %147 %146 0 4 5 3 OpStore %r0 %148 %149 = OpAccessChain %_ptr_Uniform_v4float %cb2 %int_0 %int_7 %150 = OpAccessChain %_ptr_Uniform_float %149 %uint_0 %151 = OpLoad %float %150 %152 = OpAccessChain %_ptr_Uniform_float %149 %uint_1 %153 = OpLoad %float %152 %154 = OpCompositeConstruct %v2float %151 %153 %157 = OpBitcast %v2float %156 %158 = OpFAdd %v2float %154 %157 %159 = OpLoad %v4float %r1 %160 = OpVectorShuffle %v4float %159 %158 4 5 2 3 OpStore %r1 %160 %161 = OpLoad %v4float %r1 %162 = OpVectorShuffle %v2float %161 %161 0 1 %163 = OpFNegate %v2float %162 %164 = OpBitcast %v2float %136 %165 = OpFAdd %v2float %163 %164 %166 = OpLoad %v4float %r1 %167 = OpVectorShuffle %v4float %166 %165 4 5 2 3 OpStore %r1 %167 %168 = OpLoad %v4float %r0 %169 = OpCompositeExtract %float %168 0 %170 = OpFNegate %float %169 %171 = OpLoad %v4float %r1 %172 = OpCompositeExtract %float %171 0 %173 = OpFAdd %float %170 %172 %174 = OpLoad %v4float %r0 %175 = OpCompositeInsert %v4float %173 %174 3 OpStore %r0 %175 %176 = OpLoad %v4float %r0 %177 = OpCompositeExtract %float %176 0 %178 = OpAccessChain %_ptr_Uniform_v4float %cb2 %int_0 %int_7 %179 = OpAccessChain %_ptr_Uniform_float %178 %uint_0 %180 = OpLoad %float %179 %181 = OpFNegate %float %180 %182 = OpFAdd %float %177 %181 %183 = OpLoad %v4float %r1 %184 = OpCompositeInsert %v4float %182 %183 0 OpStore %r1 %184 %185 = OpLoad %v4float %r0 %186 = OpCompositeExtract %float %185 1 %187 = OpBitcast %uint %186 %188 = OpLoad %v4float %r0 %189 = OpCompositeExtract %float %188 3 %190 = OpLoad %v4float %r1 %191 = OpCompositeExtract %float %190 0 %192 = OpINotEqual %bool %187 %uint_0 %193 = OpSelect %float %192 %189 %191 %194 = OpLoad %v4float %r0 %195 = OpCompositeInsert %v4float %193 %194 1 OpStore %r0 %195 %196 = OpLoad %v4float %r0 %197 = OpCompositeExtract %float %196 0 %199 = OpBitcast %float %uint_1056964608 %200 = OpFAdd %float %197 %199 %201 = OpLoad %v4float %r0 %202 = OpCompositeInsert %v4float %200 %201 0 OpStore %r0 %202 %203 = OpLoad %v4float %r0 %204 = OpCompositeExtract %float %203 0 %205 = OpConvertFToU %uint %204 %206 = OpBitcast %float %205 %207 = OpLoad %v4float %r0 %208 = OpCompositeInsert %v4float %206 %207 3 OpStore %r0 %208 %209 = OpLoad %v4float %r0 %210 = OpCompositeExtract %float %209 3 %211 = OpBitcast %uint %210 %212 = OpConvertUToF %float %211 %213 = OpLoad %v4float %r0 %214 = OpCompositeInsert %v4float %212 %213 3 OpStore %r0 %214 %215 = OpLoad %v4float %r0 %216 = OpCompositeExtract %float %215 3 %217 = OpFNegate %float %216 %218 = OpLoad %v4float %r0 %219 = OpCompositeExtract %float %218 0 %220 = OpFAdd %float %217 %219 %221 = OpLoad %v4float %r0 %222 = OpCompositeInsert %v4float %220 %221 0 OpStore %r0 %222 %223 = OpLoad %v4float %r0 %224 = OpCompositeExtract %float %223 0 %225 = OpFNegate %float %224 %226 = OpLoad %v4float %r1 %227 = OpCompositeExtract %float %226 1 %228 = OpFAdd %float %225 %227 %229 = OpLoad %v4float %r0 %230 = OpCompositeInsert %v4float %228 %229 3 OpStore %r0 %230 %231 = OpLoad %v4float %r0 %232 = OpCompositeExtract %float %231 0 %233 = OpAccessChain %_ptr_Uniform_v4float %cb2 %int_0 %int_7 %234 = OpAccessChain %_ptr_Uniform_float %233 %uint_1 %235 = OpLoad %float %234 %236 = OpFNegate %float %235 %237 = OpFAdd %float %232 %236 %238 = OpLoad %v4float %r0 %239 = OpCompositeInsert %v4float %237 %238 0 OpStore %r0 %239 %240 = OpLoad %v4float %r0 %241 = OpCompositeExtract %float %240 2 %242 = OpBitcast %uint %241 %243 = OpLoad %v4float %r0 %244 = OpCompositeExtract %float %243 3 %245 = OpLoad %v4float %r0 %246 = OpCompositeExtract %float %245 0 %247 = OpINotEqual %bool %242 %uint_0 %248 = OpSelect %float %247 %244 %246 %249 = OpLoad %v4float %r0 %250 = OpCompositeInsert %v4float %248 %249 0 OpStore %r0 %250 %251 = OpLoad %v4float %r0 %252 = OpCompositeExtract %float %251 0 %253 = OpLoad %v4float %r0 %254 = OpCompositeExtract %float %253 1 %255 = OpExtInst %float %1 NMin %252 %254 %256 = OpLoad %v4float %r0 %257 = OpCompositeInsert %v4float %255 %256 0 OpStore %r0 %257 %258 = OpLoad %v4float %r0 %259 = OpCompositeExtract %float %258 0 %260 = OpBitcast %float %uint_0 %261 = OpFOrdLessThan %bool %259 %260 %262 = OpSelect %uint %261 %uint_4294967295 %uint_0 %263 = OpBitcast %float %262 %264 = OpLoad %v4float %r0 %265 = OpCompositeInsert %v4float %263 %264 0 OpStore %r0 %265 %266 = OpLoad %v4float %r0 %267 = OpCompositeExtract %float %266 0 %268 = OpBitcast %uint %267 %269 = OpINotEqual %bool %268 %uint_0 %270 = OpLoad %bool %ps_kill %271 = OpLogicalOr %bool %270 %269 OpStore %ps_kill %271 OpBranch %99 %99 = OpLabel %273 = OpAccessChain %_ptr_Private_v4float %shader_in %int_3 %274 = OpLoad %v4float %273 %275 = OpVectorShuffle %v4float %274 %274 0 1 2 0 %276 = OpVectorShuffle %v3float %275 %275 0 1 2 %278 = OpLoad %31 %s3 %279 = OpLoad %34 %t0 %280 = OpSampledImage %277 %279 %278 %281 = OpImageSampleImplicitLod %v4float %280 %276 OpStore %r0 %281 %282 = OpLoad %v4float %r0 %283 = OpCompositeExtract %float %282 3 %285 = OpBitcast %float %uint_3204448256 %286 = OpFAdd %float %283 %285 %287 = OpLoad %v4float %r0 %288 = OpCompositeInsert %v4float %286 %287 3 OpStore %r0 %288 %289 = OpLoad %v4float %r0 %290 = OpCompositeExtract %float %289 3 %291 = OpBitcast %float %uint_0 %292 = OpFOrdLessThan %bool %290 %291 %293 = OpSelect %uint %292 %uint_4294967295 %uint_0 %294 = OpBitcast %float %293 %295 = OpLoad %v4float %r0 %296 = OpCompositeInsert %v4float %294 %295 3 OpStore %r0 %296 %297 = OpLoad %v4float %r0 %298 = OpCompositeExtract %float %297 3 %299 = OpBitcast %uint %298 %300 = OpINotEqual %bool %299 %uint_0 %301 = OpLoad %bool %ps_kill %302 = OpLogicalOr %bool %301 %300 OpStore %ps_kill %302 %303 = OpAccessChain %_ptr_Private_v4float %shader_in %int_3 %304 = OpLoad %v4float %303 %305 = OpVectorShuffle %v4float %304 %304 0 1 2 0 %306 = OpVectorShuffle %v3float %305 %305 0 1 2 %307 = OpLoad %31 %s3 %308 = OpLoad %34 %t1 %309 = OpSampledImage %277 %308 %307 %310 = OpImageSampleImplicitLod %v4float %309 %306 OpStore %r1 %310 %311 = OpLoad %v4float %r1 %312 = OpVectorShuffle %v3float %311 %311 0 1 2 %316 = OpBitcast %v3float %315 %319 = OpBitcast %v3float %318 %320 = OpExtInst %v3float %1 Fma %312 %316 %319 %321 = OpLoad %v4float %r1 %322 = OpVectorShuffle %v4float %321 %320 4 5 6 3 OpStore %r1 %322 %324 = OpAccessChain %_ptr_Private_v4float %shader_in %int_1 %325 = OpLoad %v4float %324 %326 = OpVectorShuffle %v3float %325 %325 1 2 0 %328 = OpAccessChain %_ptr_Private_v4float %shader_in %int_2 %329 = OpLoad %v4float %328 %330 = OpVectorShuffle %v3float %329 %329 2 0 1 %331 = OpFMul %v3float %326 %330 %332 = OpLoad %v4float %r2 %333 = OpVectorShuffle %v4float %332 %331 4 5 6 3 OpStore %r2 %333 %334 = OpAccessChain %_ptr_Private_v4float %shader_in %int_2 %335 = OpLoad %v4float %334 %336 = OpVectorShuffle %v3float %335 %335 1 2 0 %337 = OpAccessChain %_ptr_Private_v4float %shader_in %int_1 %338 = OpLoad %v4float %337 %339 = OpVectorShuffle %v3float %338 %338 2 0 1 %340 = OpLoad %v4float %r2 %341 = OpVectorShuffle %v3float %340 %340 0 1 2 %342 = OpFNegate %v3float %341 %343 = OpExtInst %v3float %1 Fma %336 %339 %342 %344 = OpLoad %v4float %r2 %345 = OpVectorShuffle %v4float %344 %343 4 5 6 3 OpStore %r2 %345 %346 = OpLoad %v4float %r1 %347 = OpVectorShuffle %v3float %346 %346 1 1 1 %348 = OpFNegate %v3float %347 %349 = OpLoad %v4float %r2 %350 = OpVectorShuffle %v3float %349 %349 0 1 2 %351 = OpFMul %v3float %348 %350 %352 = OpLoad %v4float %r2 %353 = OpVectorShuffle %v4float %352 %351 4 5 6 3 OpStore %r2 %353 %354 = OpLoad %v4float %r1 %355 = OpVectorShuffle %v3float %354 %354 0 0 0 %356 = OpAccessChain %_ptr_Private_v4float %shader_in %int_2 %357 = OpLoad %v4float %356 %358 = OpVectorShuffle %v3float %357 %357 0 1 2 %359 = OpLoad %v4float %r2 %360 = OpVectorShuffle %v3float %359 %359 0 1 2 %361 = OpExtInst %v3float %1 Fma %355 %358 %360 %362 = OpLoad %v4float %r2 %363 = OpVectorShuffle %v4float %362 %361 4 5 6 3 OpStore %r2 %363 %364 = OpLoad %v4float %r1 %365 = OpVectorShuffle %v3float %364 %364 2 2 2 %366 = OpAccessChain %_ptr_Private_v4float %shader_in %int_1 %367 = OpLoad %v4float %366 %368 = OpVectorShuffle %v3float %367 %367 0 1 2 %369 = OpLoad %v4float %r2 %370 = OpVectorShuffle %v3float %369 %369 0 1 2 %371 = OpExtInst %v3float %1 Fma %365 %368 %370 %372 = OpLoad %v4float %r1 %373 = OpVectorShuffle %v4float %372 %371 4 5 6 3 OpStore %r1 %373 %374 = OpLoad %v4float %r1 %375 = OpVectorShuffle %v3float %374 %374 0 1 2 %376 = OpLoad %v4float %r1 %377 = OpVectorShuffle %v3float %376 %376 0 1 2 %378 = OpDot %float %375 %377 %379 = OpLoad %v4float %r0 %380 = OpCompositeInsert %v4float %378 %379 3 OpStore %r0 %380 %381 = OpLoad %v4float %r0 %382 = OpCompositeExtract %float %381 3 %383 = OpExtInst %float %1 InverseSqrt %382 %384 = OpLoad %v4float %r0 %385 = OpCompositeInsert %v4float %383 %384 3 OpStore %r0 %385 %386 = OpLoad %v4float %r0 %387 = OpVectorShuffle %v3float %386 %386 3 3 3 %388 = OpLoad %v4float %r1 %389 = OpVectorShuffle %v3float %388 %388 0 1 2 %390 = OpFMul %v3float %387 %389 %391 = OpLoad %v4float %r1 %392 = OpVectorShuffle %v4float %391 %390 4 5 6 3 OpStore %r1 %392 %393 = OpLoad %v4float %r1 %394 = OpVectorShuffle %v3float %393 %393 0 1 2 %395 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_0 %396 = OpAccessChain %_ptr_Uniform_float %395 %uint_0 %397 = OpLoad %float %396 %398 = OpAccessChain %_ptr_Uniform_float %395 %uint_1 %399 = OpLoad %float %398 %401 = OpAccessChain %_ptr_Uniform_float %395 %uint_2 %402 = OpLoad %float %401 %403 = OpCompositeConstruct %v3float %397 %399 %402 %404 = OpDot %float %394 %403 %405 = OpLoad %v4float %r2 %406 = OpCompositeInsert %v4float %404 %405 0 OpStore %r2 %406 %407 = OpLoad %v4float %r1 %408 = OpVectorShuffle %v3float %407 %407 0 1 2 %409 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_1 %410 = OpAccessChain %_ptr_Uniform_float %409 %uint_0 %411 = OpLoad %float %410 %412 = OpAccessChain %_ptr_Uniform_float %409 %uint_1 %413 = OpLoad %float %412 %414 = OpAccessChain %_ptr_Uniform_float %409 %uint_2 %415 = OpLoad %float %414 %416 = OpCompositeConstruct %v3float %411 %413 %415 %417 = OpDot %float %408 %416 %418 = OpLoad %v4float %r2 %419 = OpCompositeInsert %v4float %417 %418 1 OpStore %r2 %419 %420 = OpLoad %v4float %r1 %421 = OpVectorShuffle %v3float %420 %420 0 1 2 %422 = OpAccessChain %_ptr_Uniform_v4float %cb0 %int_0 %int_2 %423 = OpAccessChain %_ptr_Uniform_float %422 %uint_0 %424 = OpLoad %float %423 %425 = OpAccessChain %_ptr_Uniform_float %422 %uint_1 %426 = OpLoad %float %425 %427 = OpAccessChain %_ptr_Uniform_float %422 %uint_2 %428 = OpLoad %float %427 %429 = OpCompositeConstruct %v3float %424 %426 %428 %430 = OpDot %float %421 %429 %431 = OpLoad %v4float %r2 %432 = OpCompositeInsert %v4float %430 %431 2 OpStore %r2 %432 %433 = OpLoad %v4float %r2 %434 = OpVectorShuffle %v3float %433 %433 0 1 2 %435 = OpLoad %v4float %r2 %436 = OpVectorShuffle %v3float %435 %435 0 1 2 %437 = OpDot %float %434 %436 %438 = OpLoad %v4float %r0 %439 = OpCompositeInsert %v4float %437 %438 3 OpStore %r0 %439 %440 = OpLoad %v4float %r0 %441 = OpCompositeExtract %float %440 3 %442 = OpExtInst %float %1 InverseSqrt %441 %443 = OpLoad %v4float %r0 %444 = OpCompositeInsert %v4float %442 %443 3 OpStore %r0 %444 %445 = OpLoad %v4float %r0 %446 = OpVectorShuffle %v3float %445 %445 3 3 3 %447 = OpLoad %v4float %r2 %448 = OpVectorShuffle %v3float %447 %447 0 1 2 %449 = OpFMul %v3float %446 %448 %450 = OpLoad %v4float %r1 %451 = OpVectorShuffle %v4float %450 %449 4 5 6 3 OpStore %r1 %451 %452 = OpLoad %v4float %r1 %453 = OpCompositeExtract %float %452 2 %455 = OpBitcast %float %uint_1090519040 %456 = OpBitcast %float %uint_1090519040 %457 = OpExtInst %float %1 Fma %453 %455 %456 %458 = OpLoad %v4float %r0 %459 = OpCompositeInsert %v4float %457 %458 3 OpStore %r0 %459 %460 = OpLoad %v4float %r0 %461 = OpCompositeExtract %float %460 3 %462 = OpExtInst %float %1 Sqrt %461 %463 = OpLoad %v4float %r0 %464 = OpCompositeInsert %v4float %462 %463 3 OpStore %r0 %464 %465 = OpLoad %v4float %r1 %466 = OpVectorShuffle %v2float %465 %465 0 1 %467 = OpLoad %v4float %r0 %468 = OpVectorShuffle %v2float %467 %467 3 3 %469 = OpFDiv %v2float %466 %468 %470 = OpLoad %v4float %r1 %471 = OpVectorShuffle %v4float %470 %469 4 5 2 3 OpStore %r1 %471 %472 = OpLoad %v4float %r1 %473 = OpVectorShuffle %v2float %472 %472 0 1 %475 = OpBitcast %v2float %474 %476 = OpFAdd %v2float %473 %475 %477 = OpLoad %v4float %o1 %478 = OpVectorShuffle %v4float %477 %476 4 5 2 3 OpStore %o1 %478 %479 = OpLoad %v4float %r0 %480 = OpVectorShuffle %v3float %479 %479 0 1 2 %481 = OpLoad %v4float %o0 %482 = OpVectorShuffle %v4float %481 %480 4 5 6 3 OpStore %o0 %482 %483 = OpBitcast %float %uint_0 %484 = OpLoad %v4float %o0 %485 = OpCompositeInsert %v4float %483 %484 3 OpStore %o0 %485 %487 = OpBitcast %v2float %486 %488 = OpLoad %v4float %o1 %489 = OpVectorShuffle %v4float %488 %487 0 1 4 5 OpStore %o1 %489 %491 = OpBitcast %v3float %490 %492 = OpLoad %v4float %o2 %493 = OpVectorShuffle %v4float %492 %491 4 1 5 6 OpStore %o2 %493 %494 = OpLoad %v4float %r1 %495 = OpCompositeExtract %float %494 3 %496 = OpLoad %v4float %o2 %497 = OpCompositeInsert %v4float %495 %496 1 OpStore %o2 %497 OpReturn OpFunctionEnd %main = OpFunction %void None %13 %498 = OpLabel %499 = OpLoad %v3float %v1 %500 = OpAccessChain %_ptr_Private_v4float %shader_in %int_1 %501 = OpLoad %v4float %500 %502 = OpVectorShuffle %v4float %501 %499 4 5 6 3 OpStore %500 %502 %503 = OpLoad %v3float %v2 %504 = OpAccessChain %_ptr_Private_v4float %shader_in %int_2 %505 = OpLoad %v4float %504 %506 = OpVectorShuffle %v4float %505 %503 4 5 6 3 OpStore %504 %506 %507 = OpLoad %v3float %v3 %508 = OpAccessChain %_ptr_Private_v4float %shader_in %int_3 %509 = OpLoad %v4float %508 %510 = OpVectorShuffle %v4float %509 %507 4 5 6 3 OpStore %508 %510 %513 = OpLoad %v4float %ps_frag_coord %514 = OpCompositeExtract %float %513 3 %516 = OpFDiv %float %float_1 %514 %517 = OpCompositeInsert %v4float %516 %513 3 %518 = OpVectorShuffle %v2float %517 %517 0 1 %519 = OpAccessChain %_ptr_Private_v4float %shader_in %int_0 %520 = OpLoad %v4float %519 %521 = OpVectorShuffle %v4float %520 %518 4 5 2 3 OpStore %519 %521 %522 = OpFunctionCall %void %ps_main %525 = OpLoad %bool %ps_kill OpSelectionMerge %524 None OpBranchConditional %525 %523 %524 %523 = OpLabel OpKill %524 = OpLabel %526 = OpLoad %v4float %o0 %528 = OpVectorExtractDynamic %float %526 %omap0_r %530 = OpVectorExtractDynamic %float %526 %omap0_g %532 = OpVectorExtractDynamic %float %526 %omap0_b %534 = OpVectorExtractDynamic %float %526 %omap0_a %535 = OpCompositeConstruct %v4float %528 %530 %532 %534 OpStore %o0 %535 %536 = OpLoad %v4float %o1 %538 = OpVectorExtractDynamic %float %536 %omap1_r %540 = OpVectorExtractDynamic %float %536 %omap1_g %542 = OpVectorExtractDynamic %float %536 %omap1_b %544 = OpVectorExtractDynamic %float %536 %omap1_a %545 = OpCompositeConstruct %v4float %538 %540 %542 %544 OpStore %o1 %545 %546 = OpLoad %v4float %o2 %548 = OpVectorExtractDynamic %float %546 %omap2_r %550 = OpVectorExtractDynamic %float %546 %omap2_g %552 = OpVectorExtractDynamic %float %546 %omap2_b %554 = OpVectorExtractDynamic %float %546 %omap2_a %555 = OpCompositeConstruct %v4float %548 %550 %552 %554 OpStore %o2 %555 OpReturn OpFunctionEnd NIR: shader: MESA_SHADER_FRAGMENT inputs: 0 outputs: 0 uniforms: 0 shared: 0 decl_var uniform INTERP_MODE_NONE sampler s3 (429, 0, 7) decl_var uniform INTERP_MODE_NONE sampler2DArray t0 (429, 0, 8) decl_var uniform INTERP_MODE_NONE sampler2DArray t1 (429, 0, 9) decl_var uniform INTERP_MODE_NONE sampler2D t28 (429, 0, 10) decl_var shader_in INTERP_MODE_NONE vec4 ps_frag_coord (VARYING_SLOT_POS, 0, 0) decl_var shader_in INTERP_MODE_NONE float v1 (VARYING_SLOT_VAR0.x, 124, 0) decl_var shader_in INTERP_MODE_NONE float v1@0 (VARYING_SLOT_VAR0.y, 124, 0) decl_var shader_in INTERP_MODE_NONE float v1@1 (VARYING_SLOT_VAR0.z, 124, 0) decl_var shader_in INTERP_MODE_NONE float v2 (VARYING_SLOT_VAR0.w, 124, 0) decl_var shader_in INTERP_MODE_NONE float v2@2 (VARYING_SLOT_VAR1.x, 128, 0) decl_var shader_in INTERP_MODE_NONE float v2@3 (VARYING_SLOT_VAR1.y, 128, 0) decl_var shader_in INTERP_MODE_NONE float v3 (VARYING_SLOT_VAR1.z, 128, 0) decl_var shader_in INTERP_MODE_NONE float v3@4 (VARYING_SLOT_VAR1.w, 128, 0) decl_var shader_in INTERP_MODE_NONE float v3@5 (VARYING_SLOT_VAR2.x, 132, 0) decl_var shader_out INTERP_MODE_NONE vec4 o0 (FRAG_RESULT_DATA0, 16, 0) decl_var shader_out INTERP_MODE_NONE vec4 o1 (FRAG_RESULT_DATA1, 20, 0) decl_var shader_out INTERP_MODE_NONE vec4 o2 (FRAG_RESULT_DATA2, 24, 0) decl_function main (0 params) impl main { decl_var INTERP_MODE_NONE bool ps_kill decl_var INTERP_MODE_NONE vec4 out@o0-temp decl_var INTERP_MODE_NONE vec4 r0 decl_var INTERP_MODE_NONE vec4 r2 decl_var INTERP_MODE_NONE vec4 r1 decl_var INTERP_MODE_NONE vec4 out@o2-temp decl_var INTERP_MODE_NONE vec4 out@o1-temp decl_var INTERP_MODE_NONE vec4 (shader_in[0]) decl_var INTERP_MODE_NONE vec4 (shader_in[1]) decl_var INTERP_MODE_NONE vec4 (shader_in[2]) decl_var INTERP_MODE_NONE vec4 (shader_in[3]) block block_0: /* preds: */ vec1 32 ssa_0 = load_const (0x00000000 /* 0.000000 */) vec1 32 ssa_1 = deref_var &v1 (shader_in float) vec1 32 ssa_2 = intrinsic load_deref (ssa_1) (0) /* access=0 */ vec1 32 ssa_3 = deref_var &v1@0 (shader_in float) vec1 32 ssa_4 = intrinsic load_deref (ssa_3) (0) /* access=0 */ vec1 32 ssa_5 = deref_var &v1@1 (shader_in float) vec1 32 ssa_6 = intrinsic load_deref (ssa_5) (0) /* access=0 */ vec1 32 ssa_7 = deref_var &v2 (shader_in float) vec1 32 ssa_8 = intrinsic load_deref (ssa_7) (0) /* access=0 */ vec1 32 ssa_9 = deref_var &v2@2 (shader_in float) vec1 32 ssa_10 = intrinsic load_deref (ssa_9) (0) /* access=0 */ vec1 32 ssa_11 = deref_var &v2@3 (shader_in float) vec1 32 ssa_12 = intrinsic load_deref (ssa_11) (0) /* access=0 */ vec1 32 ssa_13 = deref_var &v3 (shader_in float) vec1 32 ssa_14 = intrinsic load_deref (ssa_13) (0) /* access=0 */ vec1 32 ssa_15 = deref_var &v3@4 (shader_in float) vec1 32 ssa_16 = intrinsic load_deref (ssa_15) (0) /* access=0 */ vec1 32 ssa_17 = deref_var &v3@5 (shader_in float) vec1 32 ssa_18 = intrinsic load_deref (ssa_17) (0) /* access=0 */ vec3 32 ssa_19 = vec3 ssa_14, ssa_16, ssa_18 vec1 32 ssa_20 = deref_var &ps_frag_coord (shader_in vec4) vec4 32 ssa_21 = intrinsic load_deref (ssa_20) (0) /* access=0 */ vec1 32 ssa_22 = load_const (0x00000000 /* 0.000000 */) vec1 32 ssa_23 = load_const (0x3f800000 /* 1.000000 */) vec1 32 ssa_24 = load_const (0x3f000000 /* 0.500000 */) vec1 32 ssa_25 = load_const (0x41000000 /* 8.000000 */) vec1 32 ssa_26 = load_const (0xbf800000 /* -1.000000 */) vec1 32 ssa_27 = load_const (0x40000000 /* 2.000000 */) vec1 32 ssa_28 = load_const (0xbf000000 /* -0.500000 */) vec1 32 ssa_29 = load_const (0x00000007 /* 0.000000 */) vec1 32 ssa_30 = intrinsic vulkan_resource_index (ssa_22) (0, 6, 6) /* desc-set=0 */ /* binding=6 */ /* desc_type=UBO */ vec1 32 ssa_31 = load_const (0x00000070 /* 0.000000 */) vec1 32 ssa_32 = load_const (0x00000074 /* 0.000000 */) vec1 32 ssa_33 = intrinsic load_ubo (ssa_30, ssa_31) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_34 = intrinsic load_ubo (ssa_30, ssa_32) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_35 = fmax ssa_34, ssa_33 vec1 32 ssa_36 = flt32 ssa_22, ssa_35 /* succs: block_1 block_2 */ if ssa_36 { block block_1: /* preds: block_0 */ vec1 32 ssa_37 = f2u32 ssa_21.x vec1 32 ssa_38 = f2u32 ssa_21.y vec1 32 ssa_39 = iand ssa_37, ssa_29 vec1 32 ssa_40 = iand ssa_38, ssa_29 vec2 32 ssa_41 = vec2 ssa_39, ssa_40 vec1 32 ssa_42 = deref_var &t28 (uniform sampler2D) vec4 32 ssa_43 = txf ssa_42 (texture_deref), ssa_41 (coord), ssa_22 (lod), 0 (sampler), vec1 32 ssa_44 = flt32 ssa_23, ssa_33 vec1 32 ssa_45 = flt32 ssa_23, ssa_34 vec1 32 ssa_46 = load_const (0x40400000 /* 3.000000 */) vec1 32 ssa_47 = fneg ssa_33 vec1 32 ssa_48 = fadd ssa_46, ssa_47 vec1 32 ssa_49 = fneg ssa_34 vec1 32 ssa_50 = fadd ssa_46, ssa_49 vec1 32 ssa_51 = fneg ssa_43.x vec1 32 ssa_52 = fadd ssa_51, ssa_48 vec1 32 ssa_53 = fadd ssa_43.x, ssa_47 vec1 32 ssa_54 = b32csel ssa_44, ssa_52, ssa_53 vec1 32 ssa_55 = fadd ssa_43.x, ssa_24 vec1 32 ssa_56 = f2u32 ssa_55 vec1 32 ssa_57 = u2f32 ssa_56 vec1 32 ssa_58 = fneg ssa_57 vec1 32 ssa_59 = fadd ssa_58, ssa_55 vec1 32 ssa_60 = fneg ssa_59 vec1 32 ssa_61 = fadd ssa_60, ssa_50 vec1 32 ssa_62 = fadd ssa_59, ssa_49 vec1 32 ssa_63 = b32csel ssa_45, ssa_61, ssa_62 vec1 32 ssa_64 = fmin ssa_63, ssa_54 vec1 32 ssa_65 = flt32 ssa_64, ssa_22 /* succs: block_3 */ } else { block block_2: /* preds: block_0 */ /* succs: block_3 */ } block block_3: /* preds: block_1 block_2 */ vec1 32 ssa_66 = phi block_1: ssa_65, block_2: ssa_0 vec1 32 ssa_67 = deref_var &s3 (uniform sampler) vec1 32 ssa_68 = deref_var &t0 (uniform sampler2DArray) vec4 32 ssa_69 = tex ssa_68 (texture_deref), ssa_67 (sampler_deref), ssa_19 (coord), vec1 32 ssa_70 = fadd ssa_69.w, ssa_28 vec1 32 ssa_71 = flt32 ssa_70, ssa_22 vec1 32 ssa_72 = ior ssa_66, ssa_71 vec1 32 ssa_73 = deref_var &t1 (uniform sampler2DArray) vec4 32 ssa_74 = tex ssa_73 (texture_deref), ssa_67 (sampler_deref), ssa_19 (coord), vec1 32 ssa_75 = fmul ssa_74.x, ssa_27 vec1 32 ssa_76 = fadd ssa_75, ssa_26 vec1 32 ssa_77 = fmul ssa_74.y, ssa_27 vec1 32 ssa_78 = fadd ssa_77, ssa_26 vec1 32 ssa_79 = fmul ssa_74.z, ssa_27 vec1 32 ssa_80 = fadd ssa_79, ssa_26 vec1 32 ssa_81 = fmul ssa_4, ssa_12 vec1 32 ssa_82 = fmul ssa_6, ssa_8 vec1 32 ssa_83 = fmul ssa_2, ssa_10 vec1 32 ssa_84 = fneg ssa_81 vec1 32 ssa_85 = fneg ssa_82 vec1 32 ssa_86 = fneg ssa_83 vec1 32 ssa_87 = fmul ssa_10, ssa_6 vec1 32 ssa_88 = fadd ssa_87, ssa_84 vec1 32 ssa_89 = fmul ssa_12, ssa_2 vec1 32 ssa_90 = fadd ssa_89, ssa_85 vec1 32 ssa_91 = fmul ssa_8, ssa_4 vec1 32 ssa_92 = fadd ssa_91, ssa_86 vec1 32 ssa_93 = fmul ssa_78, ssa_88 vec1 32 ssa_94 = fneg ssa_93 vec1 32 ssa_95 = fmul ssa_78, ssa_90 vec1 32 ssa_96 = fneg ssa_95 vec1 32 ssa_97 = fmul ssa_78, ssa_92 vec1 32 ssa_98 = fneg ssa_97 vec1 32 ssa_99 = fmul ssa_76, ssa_8 vec1 32 ssa_100 = fadd ssa_99, ssa_94 vec1 32 ssa_101 = fmul ssa_76, ssa_10 vec1 32 ssa_102 = fadd ssa_101, ssa_96 vec1 32 ssa_103 = fmul ssa_76, ssa_12 vec1 32 ssa_104 = fadd ssa_103, ssa_98 vec1 32 ssa_105 = fmul ssa_80, ssa_2 vec1 32 ssa_106 = fadd ssa_105, ssa_100 vec1 32 ssa_107 = fmul ssa_80, ssa_4 vec1 32 ssa_108 = fadd ssa_107, ssa_102 vec1 32 ssa_109 = fmul ssa_80, ssa_6 vec1 32 ssa_110 = fadd ssa_109, ssa_104 vec1 32 ssa_111 = fmul ssa_106, ssa_106 vec1 32 ssa_112 = fmul ssa_108, ssa_108 vec1 32 ssa_113 = fadd ssa_111, ssa_112 vec1 32 ssa_114 = fmul ssa_110, ssa_110 vec1 32 ssa_115 = fadd ssa_113, ssa_114 vec1 32 ssa_116 = frsq ssa_115 vec1 32 ssa_117 = fmul ssa_116, ssa_106 vec1 32 ssa_118 = fmul ssa_116, ssa_108 vec1 32 ssa_119 = fmul ssa_116, ssa_110 vec1 32 ssa_120 = intrinsic vulkan_resource_index (ssa_22) (0, 5, 6) /* desc-set=0 */ /* binding=5 */ /* desc_type=UBO */ vec1 32 ssa_121 = load_const (0x00000004 /* 0.000000 */) vec1 32 ssa_122 = load_const (0x00000008 /* 0.000000 */) vec1 32 ssa_123 = intrinsic load_ubo (ssa_120, ssa_22) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_124 = fmul ssa_117, ssa_123 vec1 32 ssa_125 = intrinsic load_ubo (ssa_120, ssa_121) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_126 = fmul ssa_118, ssa_125 vec1 32 ssa_127 = fadd ssa_124, ssa_126 vec1 32 ssa_128 = intrinsic load_ubo (ssa_120, ssa_122) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_129 = fmul ssa_119, ssa_128 vec1 32 ssa_130 = fadd ssa_127, ssa_129 vec1 32 ssa_131 = load_const (0x00000010 /* 0.000000 */) vec1 32 ssa_132 = load_const (0x00000014 /* 0.000000 */) vec1 32 ssa_133 = load_const (0x00000018 /* 0.000000 */) vec1 32 ssa_134 = intrinsic load_ubo (ssa_120, ssa_131) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_135 = fmul ssa_117, ssa_134 vec1 32 ssa_136 = intrinsic load_ubo (ssa_120, ssa_132) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_137 = fmul ssa_118, ssa_136 vec1 32 ssa_138 = fadd ssa_135, ssa_137 vec1 32 ssa_139 = intrinsic load_ubo (ssa_120, ssa_133) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_140 = fmul ssa_119, ssa_139 vec1 32 ssa_141 = fadd ssa_138, ssa_140 vec1 32 ssa_142 = load_const (0x00000020 /* 0.000000 */) vec1 32 ssa_143 = load_const (0x00000024 /* 0.000000 */) vec1 32 ssa_144 = load_const (0x00000028 /* 0.000000 */) vec1 32 ssa_145 = intrinsic load_ubo (ssa_120, ssa_142) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_146 = fmul ssa_117, ssa_145 vec1 32 ssa_147 = intrinsic load_ubo (ssa_120, ssa_143) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_148 = fmul ssa_118, ssa_147 vec1 32 ssa_149 = fadd ssa_146, ssa_148 vec1 32 ssa_150 = intrinsic load_ubo (ssa_120, ssa_144) (4, 0) /* align_mul=4 */ /* align_offset=0 */ vec1 32 ssa_151 = fmul ssa_119, ssa_150 vec1 32 ssa_152 = fadd ssa_149, ssa_151 vec1 32 ssa_153 = fmul ssa_130, ssa_130 vec1 32 ssa_154 = fmul ssa_141, ssa_141 vec1 32 ssa_155 = fadd ssa_153, ssa_154 vec1 32 ssa_156 = fmul ssa_152, ssa_152 vec1 32 ssa_157 = fadd ssa_155, ssa_156 vec1 32 ssa_158 = frsq ssa_157 vec1 32 ssa_159 = fmul ssa_158, ssa_130 vec1 32 ssa_160 = fmul ssa_158, ssa_141 vec1 32 ssa_161 = fmul ssa_158, ssa_25 vec1 32 ssa_162 = fmul ssa_161, ssa_152 vec1 32 ssa_163 = fadd ssa_162, ssa_25 vec1 32 ssa_164 = frsq ssa_163 vec1 32 ssa_165 = fmul ssa_159, ssa_164 vec1 32 ssa_166 = fmul ssa_160, ssa_164 vec1 32 ssa_167 = fadd ssa_165, ssa_24 vec1 32 ssa_168 = fadd ssa_166, ssa_24 intrinsic discard_if (ssa_72) () vec1 32 ssa_169 = deref_var &o0 (shader_out vec4) vec4 32 ssa_170 = vec4 ssa_69.x, ssa_69.y, ssa_69.z, ssa_22 intrinsic store_deref (ssa_169, ssa_170) (15, 0) /* wrmask=xyzw */ /* access=0 */ vec1 32 ssa_171 = deref_var &o1 (shader_out vec4) vec4 32 ssa_172 = vec4 ssa_167, ssa_168, ssa_23, ssa_22 intrinsic store_deref (ssa_171, ssa_172) (15, 0) /* wrmask=xyzw */ /* access=0 */ vec1 32 ssa_173 = deref_var &o2 (shader_out vec4) vec4 32 ssa_174 = vec4 ssa_22, ssa_74.w, ssa_22, ssa_22 intrinsic store_deref (ssa_173, ssa_174) (15, 0) /* wrmask=xyzw */ /* access=0 */ /* succs: block_4 */ block block_4: } LLVM IR: ; ModuleID = 'mesa-shader' source_filename = "mesa-shader" target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-ni:7" target triple = "amdgcn-mesa-mesa3d" define amdgpu_ps void @main([0 x i8] addrspace(6)* inreg noalias dereferenceable(18446744073709551615), [0 x i8] addrspace(6)* inreg noalias dereferenceable(18446744073709551615), i32 inreg, <2 x i32>, <2 x i32>, <2 x i32>, <3 x i32>, <2 x i32>, <2 x i32>, <2 x i32>, float, float, float, float, float, i32, i32, i32, i32) #0 { main_body: %19 = bitcast <2 x i32> %4 to <2 x float> %20 = extractelement <2 x float> %19, i32 0 %21 = extractelement <2 x float> %19, i32 1 %22 = call float @llvm.amdgcn.interp.p1(float %20, i32 0, i32 0, i32 %2) #2 %23 = call float @llvm.amdgcn.interp.p2(float %22, float %21, i32 0, i32 0, i32 %2) #2 %24 = call float @llvm.amdgcn.interp.p1(float %20, i32 1, i32 0, i32 %2) #2 %25 = call float @llvm.amdgcn.interp.p2(float %24, float %21, i32 1, i32 0, i32 %2) #2 %26 = call float @llvm.amdgcn.interp.p1(float %20, i32 2, i32 0, i32 %2) #2 %27 = call float @llvm.amdgcn.interp.p2(float %26, float %21, i32 2, i32 0, i32 %2) #2 %28 = call float @llvm.amdgcn.interp.p1(float %20, i32 3, i32 0, i32 %2) #2 %29 = call float @llvm.amdgcn.interp.p2(float %28, float %21, i32 3, i32 0, i32 %2) #2 %30 = call float @llvm.amdgcn.interp.p1(float %20, i32 0, i32 1, i32 %2) #2 %31 = call float @llvm.amdgcn.interp.p2(float %30, float %21, i32 0, i32 1, i32 %2) #2 %32 = call float @llvm.amdgcn.interp.p1(float %20, i32 1, i32 1, i32 %2) #2 %33 = call float @llvm.amdgcn.interp.p2(float %32, float %21, i32 1, i32 1, i32 %2) #2 %34 = call float @llvm.amdgcn.interp.p1(float %20, i32 2, i32 1, i32 %2) #2 %35 = call float @llvm.amdgcn.interp.p2(float %34, float %21, i32 2, i32 1, i32 %2) #2 %36 = call float @llvm.amdgcn.interp.p1(float %20, i32 3, i32 1, i32 %2) #2 %37 = call float @llvm.amdgcn.interp.p2(float %36, float %21, i32 3, i32 1, i32 %2) #2 %38 = call float @llvm.amdgcn.interp.p1(float %20, i32 0, i32 2, i32 %2) #2 %39 = call float @llvm.amdgcn.interp.p2(float %38, float %21, i32 0, i32 2, i32 %2) #2 %40 = getelementptr [0 x i8], [0 x i8] addrspace(6)* %1, i32 0, i32 96 %41 = bitcast i8 addrspace(6)* %40 to <4 x i32> addrspace(6)*, !amdgpu.uniform !0 %42 = load <4 x i32>, <4 x i32> addrspace(6)* %41, align 16, !invariant.load !0 %43 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %42, i32 112, i32 0) #2 %44 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %42, i32 116, i32 0) #2 %45 = call float @llvm.maxnum.f32(float %44, float %43) #2 %46 = fcmp ogt float %45, 0.000000e+00 br i1 %46, label %if1, label %endif1 if1: ; preds = %main_body %47 = fptoui float %11 to i32 %48 = fptoui float %12 to i32 %49 = and i32 %47, 7 %50 = and i32 %48, 7 %51 = getelementptr [0 x i8], [0 x i8] addrspace(6)* %0, i32 0, i32 160 %52 = bitcast i8 addrspace(6)* %51 to <8 x i32> addrspace(6)* %53 = load <8 x i32>, <8 x i32> addrspace(6)* %52, align 32, !invariant.load !0 %54 = call float @llvm.amdgcn.image.load.2d.f32.i32(i32 1, i32 %49, i32 %50, <8 x i32> %53, i32 0, i32 0) %55 = fcmp ogt float %43, 1.000000e+00 %56 = fcmp ogt float %44, 1.000000e+00 %57 = fsub float 3.000000e+00, %43 %58 = fsub float 3.000000e+00, %44 %59 = fsub float %57, %54 %60 = fsub float %54, %43 %.v = select i1 %55, float %59, float %60 %61 = fadd float %54, 5.000000e-01 %62 = fptoui float %61 to i32 %63 = uitofp i32 %62 to float %64 = fsub float %61, %63 %65 = fsub float %58, %64 %66 = fsub float %64, %44 %.v44 = select i1 %56, float %65, float %66 %67 = call float @llvm.minnum.f32(float %.v44, float %.v) #2 %68 = fcmp uge float %67, 0.000000e+00 br label %endif1 endif1: ; preds = %main_body, %if1 %69 = phi i1 [ %68, %if1 ], [ true, %main_body ] %70 = getelementptr [0 x i8], [0 x i8] addrspace(6)* %0, i32 0, i32 32 %71 = bitcast i8 addrspace(6)* %70 to <8 x i32> addrspace(6)* %72 = load <8 x i32>, <8 x i32> addrspace(6)* %71, align 32, !invariant.load !0 %73 = bitcast [0 x i8] addrspace(6)* %0 to <4 x i32> addrspace(6)* %74 = load <4 x i32>, <4 x i32> addrspace(6)* %73, align 16, !invariant.load !0 %75 = call float @llvm.rint.f32(float %39) #2 %76 = call <4 x float> @llvm.amdgcn.image.sample.2darray.v4f32.f32(i32 15, float %35, float %37, float %75, <8 x i32> %72, <4 x i32> %74, i1 false, i32 0, i32 0) #2 %77 = extractelement <4 x float> %76, i32 3 %78 = fadd float %77, -5.000000e-01 %79 = fcmp uge float %78, 0.000000e+00 %80 = getelementptr [0 x i8], [0 x i8] addrspace(6)* %0, i32 0, i32 96 %81 = bitcast i8 addrspace(6)* %80 to <8 x i32> addrspace(6)* %82 = load <8 x i32>, <8 x i32> addrspace(6)* %81, align 32, !invariant.load !0 %83 = call <4 x float> @llvm.amdgcn.image.sample.2darray.v4f32.f32(i32 15, float %35, float %37, float %75, <8 x i32> %82, <4 x i32> %74, i1 false, i32 0, i32 0) #2 %84 = extractelement <4 x float> %83, i32 0 %85 = fmul float %84, 2.000000e+00 %86 = fadd float %85, -1.000000e+00 %87 = extractelement <4 x float> %83, i32 1 %88 = fmul float %87, 2.000000e+00 %89 = fadd float %88, -1.000000e+00 %90 = extractelement <4 x float> %83, i32 2 %91 = fmul float %90, 2.000000e+00 %92 = fadd float %91, -1.000000e+00 %93 = fmul float %25, %33 %94 = fmul float %27, %29 %95 = fmul float %23, %31 %96 = fmul float %31, %27 %97 = fsub float %96, %93 %98 = fmul float %33, %23 %99 = fsub float %98, %94 %100 = fmul float %29, %25 %101 = fsub float %100, %95 %102 = fmul float %89, %97 %103 = fmul float %89, %99 %104 = fmul float %89, %101 %105 = fmul float %86, %29 %106 = fsub float %105, %102 %107 = fmul float %86, %31 %108 = fsub float %107, %103 %109 = fmul float %86, %33 %110 = fsub float %109, %104 %111 = fmul float %92, %23 %112 = fadd float %111, %106 %113 = fmul float %92, %25 %114 = fadd float %113, %108 %115 = fmul float %92, %27 %116 = fadd float %115, %110 %117 = fmul float %112, %112 %118 = fmul float %114, %114 %119 = fadd float %117, %118 %120 = fmul float %116, %116 %121 = fadd float %119, %120 %122 = call float @llvm.sqrt.f32(float %121) #2 %123 = fdiv float 1.000000e+00, %122 %124 = fmul float %123, %112 %125 = fmul float %123, %114 %126 = fmul float %123, %116 %127 = getelementptr [0 x i8], [0 x i8] addrspace(6)* %1, i32 0, i32 80 %128 = bitcast i8 addrspace(6)* %127 to <4 x i32> addrspace(6)*, !amdgpu.uniform !0 %129 = load <4 x i32>, <4 x i32> addrspace(6)* %128, align 16, !invariant.load !0 %130 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %129, i32 0, i32 0) #2 %131 = fmul float %124, %130 %132 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %129, i32 4, i32 0) #2 %133 = fmul float %125, %132 %134 = fadd float %131, %133 %135 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %129, i32 8, i32 0) #2 %136 = fmul float %126, %135 %137 = fadd float %134, %136 %138 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %129, i32 16, i32 0) #2 %139 = fmul float %124, %138 %140 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %129, i32 20, i32 0) #2 %141 = fmul float %125, %140 %142 = fadd float %139, %141 %143 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %129, i32 24, i32 0) #2 %144 = fmul float %126, %143 %145 = fadd float %142, %144 %146 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %129, i32 32, i32 0) #2 %147 = fmul float %124, %146 %148 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %129, i32 36, i32 0) #2 %149 = fmul float %125, %148 %150 = fadd float %147, %149 %151 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %129, i32 40, i32 0) #2 %152 = fmul float %126, %151 %153 = fadd float %150, %152 %154 = fmul float %137, %137 %155 = fmul float %145, %145 %156 = fadd float %154, %155 %157 = fmul float %153, %153 %158 = fadd float %156, %157 %159 = call float @llvm.sqrt.f32(float %158) #2 %160 = fdiv float 1.000000e+00, %159 %161 = fmul float %160, %137 %162 = fmul float %160, %145 %163 = fmul float %160, 8.000000e+00 %164 = fmul float %163, %153 %165 = fadd float %164, 8.000000e+00 %166 = call float @llvm.sqrt.f32(float %165) #2 %167 = fdiv float 1.000000e+00, %166 %168 = fmul float %161, %167 %169 = fmul float %162, %167 %170 = fadd float %168, 5.000000e-01 %171 = fadd float %169, 5.000000e-01 %172 = and i1 %69, %79 call void @llvm.amdgcn.kill(i1 %172) #4 %173 = extractelement <4 x float> %76, i32 0 %174 = extractelement <4 x float> %76, i32 1 %175 = extractelement <4 x float> %76, i32 2 %176 = extractelement <4 x float> %83, i32 3 %177 = call <2 x half> @llvm.amdgcn.cvt.pkrtz(float %173, float %174) #2 %178 = call <2 x half> @llvm.amdgcn.cvt.pkrtz(float %175, float 0.000000e+00) #2 %179 = call <2 x half> @llvm.amdgcn.cvt.pkrtz(float %170, float %171) #2 %180 = call <2 x half> @llvm.amdgcn.cvt.pkrtz(float 0.000000e+00, float %176) #2 %181 = bitcast <2 x half> %177 to <2 x i16> %182 = bitcast <2 x half> %178 to <2 x i16> call void @llvm.amdgcn.exp.compr.v2i16(i32 0, i32 5, <2 x i16> %181, <2 x i16> %182, i1 false, i1 false) #4 %183 = bitcast <2 x half> %179 to <2 x i16> call void @llvm.amdgcn.exp.compr.v2i16(i32 1, i32 5, <2 x i16> %183, <2 x i16> , i1 false, i1 false) #4 %184 = bitcast <2 x half> %180 to <2 x i16> call void @llvm.amdgcn.exp.compr.v2i16(i32 2, i32 5, <2 x i16> %184, <2 x i16> zeroinitializer, i1 true, i1 true) #4 ret void } ; Function Attrs: nounwind readnone speculatable declare i8 addrspace(4)* @llvm.amdgcn.implicit.buffer.ptr() #1 ; Function Attrs: nounwind readnone speculatable declare float @llvm.amdgcn.interp.p1(float, i32, i32, i32) #1 ; Function Attrs: nounwind readnone speculatable declare float @llvm.amdgcn.interp.p2(float, float, i32, i32, i32) #1 ; Function Attrs: nounwind readnone declare float @llvm.amdgcn.s.buffer.load.f32(<4 x i32>, i32, i32 immarg) #2 ; Function Attrs: nounwind readnone speculatable declare float @llvm.maxnum.f32(float, float) #1 ; Function Attrs: nounwind readonly declare <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i32(i32 immarg, i32, i32, <8 x i32>, i32 immarg, i32 immarg) #3 ; Function Attrs: nounwind readnone speculatable declare float @llvm.minnum.f32(float, float) #1 ; Function Attrs: nounwind readnone speculatable declare float @llvm.rint.f32(float) #1 ; Function Attrs: nounwind readonly declare <4 x float> @llvm.amdgcn.image.sample.2darray.v4f32.f32(i32 immarg, float, float, float, <8 x i32>, <4 x i32>, i1 immarg, i32 immarg, i32 immarg) #3 ; Function Attrs: nounwind readnone speculatable declare float @llvm.sqrt.f32(float) #1 ; Function Attrs: nounwind declare void @llvm.amdgcn.kill(i1) #4 ; Function Attrs: nounwind readnone speculatable declare <2 x half> @llvm.amdgcn.cvt.pkrtz(float, float) #1 ; Function Attrs: nounwind declare void @llvm.amdgcn.exp.compr.v2i16(i32 immarg, i32 immarg, <2 x i16>, <2 x i16>, i1 immarg, i1 immarg) #4 ; Function Attrs: nounwind readonly declare float @llvm.amdgcn.image.load.2d.f32.i32(i32 immarg, i32, i32, <8 x i32>, i32 immarg, i32 immarg) #3 attributes #0 = { "amdgpu-32bit-address-high-bits"="0xffff8000" } attributes #1 = { nounwind readnone speculatable } attributes #2 = { nounwind readnone } attributes #3 = { nounwind readonly } attributes #4 = { nounwind } !0 = !{} DISASM: main: BB0_0: s_mov_b64 s[8:9], exec ; BE88017E s_wqm_b64 exec, exec ; BEFE077E s_mov_b32 s0, s2 ; BE800002 s_movk_i32 s2, 0x60 ; B0020060 s_movk_i32 s1, 0x8000 ; B0018000 s_add_i32 s6, s3, s2 ; 81060203 s_mov_b32 s7, s1 ; BE870001 s_load_dwordx4 s[12:15], s[6:7], 0x0 ; C00A0303 00000000 s_waitcnt lgkmcnt(0) ; BF8CC07F s_buffer_load_dwordx2 s[10:11], s[12:15], 0x70 ; C0260286 00000070 s_mov_b64 s[6:7], -1 ; BE8601C1 s_waitcnt lgkmcnt(0) ; BF8CC07F v_mov_b32_e32 v4, s10 ; 7E08020A v_max_f32_e32 v4, s11, v4 ; 1608080B v_cmp_nlt_f32_e32 vcc, 0, v4 ; 7C9C0880 s_and_b64 vcc, exec, vcc ; 86EA6A7E s_cbranch_vccnz BB0_2 ; BF870000 s_add_i32 s6, s0, 0xa0 ; 8106FF00 000000A0 s_mov_b32 s7, s1 ; BE870001 v_cvt_u32_f32_e32 v2, v2 ; 7E040F02 v_cvt_u32_f32_e32 v3, v3 ; 7E060F03 s_load_dwordx8 s[12:19], s[6:7], 0x0 ; C00E0303 00000000 v_mov_b32_e32 v4, s10 ; 7E08020A v_and_b32_e32 v2, 7, v2 ; 26040487 v_and_b32_e32 v3, 7, v3 ; 26060687 s_mov_b32 s5, 0x40400000 ; BE8500FF 40400000 s_waitcnt lgkmcnt(0) ; BF8CC07F image_load v2, v[2:3], s[12:19] dmask:0x1 unorm ; F0001100 00030202 v_mov_b32_e32 v5, s11 ; 7E0A020B v_sub_f32_e32 v4, s5, v4 ; 04080805 v_sub_f32_e32 v5, s5, v5 ; 040A0A05 v_cmp_gt_f32_e64 vcc, s10, 1.0 ; D044006A 0001E40A s_waitcnt vmcnt(0) ; BF8C0F70 v_add_f32_e32 v3, 0.5, v2 ; 020604F0 v_cvt_u32_f32_e32 v6, v3 ; 7E0C0F03 v_sub_f32_e32 v4, v4, v2 ; 04080504 v_subrev_f32_e32 v2, s10, v2 ; 0604040A v_cndmask_b32_e32 v2, v2, v4, vcc ; 00040902 v_cvt_f32_u32_e32 v6, v6 ; 7E0C0D06 v_cmp_gt_f32_e64 vcc, s11, 1.0 ; D044006A 0001E40B v_sub_f32_e32 v3, v3, v6 ; 04060D03 v_sub_f32_e32 v4, v5, v3 ; 04080705 v_subrev_f32_e32 v3, s11, v3 ; 0606060B v_cndmask_b32_e32 v3, v3, v4, vcc ; 00060903 v_min_f32_e32 v2, v3, v2 ; 14040503 v_cmp_ngt_f32_e32 vcc, 0, v2 ; 7C960480 s_orn2_b64 s[6:7], vcc, exec ; 8A867E6A BB0_2: s_add_i32 s10, s0, 32 ; 810AA000 s_mov_b32 s11, s1 ; BE8B0001 s_mov_b32 m0, s4 ; BEFC0004 s_load_dwordx8 s[12:19], s[10:11], 0x0 ; C00E0305 00000000 s_load_dwordx4 s[28:31], s[0:1], 0x0 ; C00A0700 00000000 v_interp_p1_f32_e32 v8, v0, attr0.x ; D4200000 v_interp_p1_f32_e32 v9, v0, attr0.y ; D4240100 v_interp_p1_f32_e32 v10, v0, attr0.z ; D4280200 v_interp_p1_f32_e32 v11, v0, attr0.w ; D42C0300 v_interp_p1_f32_e32 v12, v0, attr1.x ; D4300400 v_interp_p1_f32_e32 v13, v0, attr1.y ; D4340500 v_interp_p1_f32_e32 v4, v0, attr1.z ; D4100600 v_interp_p1_f32_e32 v5, v0, attr1.w ; D4140700 v_interp_p1_f32_e32 v0, v0, attr2.x ; D4000800 v_interp_p2_f32_e32 v0, v1, attr2.x ; D4010801 v_interp_p2_f32_e32 v4, v1, attr1.z ; D4110601 v_interp_p2_f32_e32 v5, v1, attr1.w ; D4150701 v_rndne_f32_e32 v6, v0 ; 7E0C3D00 v_interp_p2_f32_e32 v8, v1, attr0.x ; D4210001 v_interp_p2_f32_e32 v9, v1, attr0.y ; D4250101 v_interp_p2_f32_e32 v10, v1, attr0.z ; D4290201 v_interp_p2_f32_e32 v11, v1, attr0.w ; D42D0301 v_interp_p2_f32_e32 v12, v1, attr1.x ; D4310401 v_interp_p2_f32_e32 v13, v1, attr1.y ; D4350501 s_and_b64 exec, exec, s[8:9] ; 86FE087E s_add_i32 s0, s0, s2 ; 81000200 s_load_dwordx8 s[20:27], s[0:1], 0x0 ; C00E0500 00000000 v_mul_f32_e32 v15, v10, v11 ; 0A1E170A v_mul_f32_e32 v14, v9, v13 ; 0A1C1B09 v_mad_f32 v15, v13, v8, -v15 ; D1C1000F 843E110D s_add_i32 s0, s3, 0x50 ; 8100FF03 00000050 s_waitcnt lgkmcnt(0) ; BF8CC07F image_sample v[0:3], v[4:7], s[20:27], s[28:31] dmask:0xf da ; F0804F00 00E50004 image_sample v[4:7], v[4:7], s[12:19], s[28:31] dmask:0xf da ; F0804F00 00E30404 v_mul_f32_e32 v16, v8, v12 ; 0A201908 v_mad_f32 v14, v12, v10, -v14 ; D1C1000E 843A150C s_load_dwordx4 s[0:3], s[0:1], 0x0 ; C00A0000 00000000 v_mad_f32 v16, v11, v9, -v16 ; D1C10010 8442130B s_waitcnt lgkmcnt(0) ; BF8CC07F s_buffer_load_dwordx2 s[4:5], s[0:3], 0x0 ; C0260100 00000000 s_buffer_load_dword s12, s[0:3], 0x8 ; C0220300 00000008 s_buffer_load_dwordx2 s[8:9], s[0:3], 0x10 ; C0260200 00000010 s_buffer_load_dword s13, s[0:3], 0x18 ; C0220340 00000018 s_buffer_load_dwordx2 s[10:11], s[0:3], 0x20 ; C0260280 00000020 s_buffer_load_dword s0, s[0:3], 0x28 ; C0220000 00000028 s_waitcnt vmcnt(1) ; BF8C0F71 v_mad_f32 v1, v1, 2.0, -1.0 ; D1C10001 03CDE901 v_mad_f32 v0, v0, 2.0, -1.0 ; D1C10000 03CDE900 v_mul_f32_e32 v15, v1, v15 ; 0A1E1F01 v_mul_f32_e32 v14, v1, v14 ; 0A1C1D01 v_mad_f32 v2, v2, 2.0, -1.0 ; D1C10002 03CDE902 v_mad_f32 v12, v0, v12, -v15 ; D1C1000C 843E1900 v_mad_f32 v11, v0, v11, -v14 ; D1C1000B 843A1700 v_mul_f32_e32 v1, v1, v16 ; 0A022101 v_mac_f32_e32 v12, v2, v9 ; 2C181302 v_mad_f32 v0, v0, v13, -v1 ; D1C10000 84061B00 v_mac_f32_e32 v11, v2, v8 ; 2C161102 v_mul_f32_e32 v1, v12, v12 ; 0A02190C v_mac_f32_e32 v0, v2, v10 ; 2C001502 v_mac_f32_e32 v1, v11, v11 ; 2C02170B v_mac_f32_e32 v1, v0, v0 ; 2C020100 v_rsq_f32_e32 v1, v1 ; 7E024901 s_waitcnt vmcnt(0) ; BF8C0F70 v_add_f32_e32 v7, -0.5, v7 ; 020E0EF1 v_cmp_ngt_f32_e32 vcc, 0, v7 ; 7C960E80 v_mul_f32_e32 v8, v1, v12 ; 0A101901 v_mul_f32_e32 v2, v1, v11 ; 0A041701 s_waitcnt lgkmcnt(0) ; BF8CC07F v_mul_f32_e32 v9, s9, v8 ; 0A121009 v_mul_f32_e32 v0, v1, v0 ; 0A000101 v_mul_f32_e32 v1, s5, v8 ; 0A021005 v_mul_f32_e32 v8, s11, v8 ; 0A10100B v_mac_f32_e32 v9, s8, v2 ; 2C120408 v_mac_f32_e32 v1, s4, v2 ; 2C020404 v_mac_f32_e32 v8, s10, v2 ; 2C10040A v_mac_f32_e32 v9, s13, v0 ; 2C12000D v_mac_f32_e32 v8, s0, v0 ; 2C100000 v_mac_f32_e32 v1, s12, v0 ; 2C02000C v_mul_f32_e32 v0, v9, v9 ; 0A001309 v_mac_f32_e32 v0, v1, v1 ; 2C000301 v_mac_f32_e32 v0, v8, v8 ; 2C001108 v_rsq_f32_e32 v0, v0 ; 7E004900 v_mov_b32_e32 v2, 0x41000000 ; 7E0402FF 41000000 s_and_b64 s[0:1], s[6:7], vcc ; 86806A06 v_mul_f32_e32 v7, v0, v2 ; 0A0E0500 v_mac_f32_e32 v2, v7, v8 ; 2C041107 v_rsq_f32_e32 v2, v2 ; 7E044902 v_mul_f32_e32 v1, v0, v1 ; 0A020300 v_mul_f32_e32 v7, v0, v9 ; 0A0E1300 v_mad_f32 v0, v1, v2, 0.5 ; D1C10000 03C20501 v_mad_f32 v1, v7, v2, 0.5 ; D1C10001 03C20507 s_and_b64 exec, exec, s[0:1] ; 86FE007E s_cbranch_execnz BB0_4 ; BF890000 exp null off, off, off, off done vm ; C4001890 00000000 s_endpgm ; BF810000 BB0_4: v_cvt_pkrtz_f16_f32 v2, v4, v5 ; D2960002 00020B04 v_cvt_pkrtz_f16_f32 v0, v0, v1 ; D2960000 00020300 v_cvt_pkrtz_f16_f32 v4, v6, 0 ; D2960004 00010106 exp mrt0 v2, off, v4, off compr ; C4000405 00000402 s_waitcnt expcnt(0) ; BF8CCF0F v_mov_b32_e32 v2, 0x3c00 ; 7E0402FF 00003C00 exp mrt1 v0, off, v2, off compr ; C4000415 00000200 v_cvt_pkrtz_f16_f32 v1, 0, v3 ; D2960001 00020680 s_waitcnt expcnt(0) ; BF8CCF0F v_mov_b32_e32 v0, 0 ; 7E000280 exp mrt2 v1, off, v0, off done compr vm ; C4001C25 00000001 s_endpgm ; BF810000 Pixel Shader: *** SHADER CONFIG *** SPI_PS_INPUT_ADDR = 0x0302 SPI_PS_INPUT_ENA = 0x0302 *** SHADER STATS *** SGPRS: 40 VGPRS: 24 Spilled SGPRs: 0 Spilled VGPRs: 0 PrivMem VGPRS: 0 Code Size: 804 bytes LDS: 0 blocks Scratch: 0 bytes per wave Max Waves: 10 ******************** The number of active waves = 0 List of descriptors: ** descriptor set (0) ** va: 0xffff800000135880 size: 64 mapped_ptr: [0x0] = 0x010521b0 [0x1] = 0x00100080 [0x2] = 0x4001c007 [0x3] = 0x91500204 [0x4] = 0x2007e000 [0x5] = 0x00000000 [0x6] = 0x00000000 [0x7] = 0x00000000 [0x8] = 0x00000000 [0x9] = 0x00000000 [0xa] = 0x00000000 [0xb] = 0x00000000 [0xc] = 0x00000000 [0xd] = 0x00000000 [0xe] = 0x00000000 [0xf] = 0x00000000 *** layout *** binding_count: 5 size: 64 shader_stages: 11 dynamic_shader_stages: 11 buffer_count: 5 dynamic_offset_count: 4 **** binding layout (0) **** type: UNIFORM_BUFFER_DYNAMIC array_size: 1 offset: 0 buffer_offset: 0 dynamic_offset_offset: 0 dynamic_offset_count: 1 size: 0 immutable_samplers_offset: 0 immutable_samplers_equal: 0 **** binding layout (1) **** type: UNIFORM_BUFFER_DYNAMIC array_size: 1 offset: 0 buffer_offset: 1 dynamic_offset_offset: 1 dynamic_offset_count: 1 size: 0 immutable_samplers_offset: 0 immutable_samplers_equal: 0 **** binding layout (2) **** type: UNIFORM_BUFFER_DYNAMIC array_size: 1 offset: 0 buffer_offset: 2 dynamic_offset_offset: 2 dynamic_offset_count: 1 size: 0 immutable_samplers_offset: 0 immutable_samplers_equal: 0 **** binding layout (3) **** type: UNIFORM_BUFFER_DYNAMIC array_size: 1 offset: 0 buffer_offset: 3 dynamic_offset_offset: 3 dynamic_offset_count: 1 size: 0 immutable_samplers_offset: 0 immutable_samplers_equal: 0 **** binding layout (4) **** type: SAMPLED_IMAGE array_size: 1 offset: 0 buffer_offset: 4 dynamic_offset_offset: 4 dynamic_offset_count: 0 size: 64 immutable_samplers_offset: 0 immutable_samplers_equal: 0  Image: SQ_IMG_RSRC_WORD0 <- 0x010521b0 SQ_IMG_RSRC_WORD1 <- BASE_ADDRESS_HI = 128 (0x80) MIN_LOD = 0 DATA_FORMAT_GFX9 = IMG_DATA_FORMAT_8 NUM_FORMAT_GFX9 = IMG_NUM_FORMAT_UNORM NUM_FORMAT_FMASK = IMG_FMASK_8_2_1 NUM_FORMAT_ASTC_2D = IMG_ASTC_2D_4x4 NUM_FORMAT_ASTC_3D = IMG_ASTC_3D_3x3x3 NV = 0 META_DIRECT = 0 SQ_IMG_RSRC_WORD2 <- WIDTH = 7 HEIGHT = 7 PERF_MOD = 4 SQ_IMG_RSRC_WORD3 <- DST_SEL_X = SQ_SEL_X DST_SEL_Y = SQ_SEL_0 DST_SEL_Z = SQ_SEL_0 DST_SEL_W = SQ_SEL_1 BASE_LEVEL = 0 LAST_LEVEL = 0 SW_MODE = 21 (0x15) TYPE = SQ_RSRC_IMG_2D SQ_IMG_RSRC_WORD4 <- DEPTH = 0 PITCH_GFX9 = 63 (0x003f) BC_SWIZZLE = BC_SWIZZLE_XWYZ SQ_IMG_RSRC_WORD5 <- BASE_ARRAY = 0 ARRAY_PITCH = 0 META_DATA_ADDRESS = 0 META_LINEAR = 0 META_PIPE_ALIGNED = 0 META_RB_ALIGNED = 0 MAX_MIP = 0 SQ_IMG_RSRC_WORD6 <- MIN_LOD_WARN = 0 COUNTER_BANK_ID = 0 LOD_HDW_CNT_EN = 0 COMPRESSION_EN = 0 ALPHA_IS_ON_MSB = 0 COLOR_TRANSFORM = 0 LOST_ALPHA_BITS = 0 LOST_COLOR_BITS = 0 SQ_IMG_RSRC_WORD7 <- 0  FMASK: SQ_IMG_RSRC_WORD0 <- 0 SQ_IMG_RSRC_WORD1 <- BASE_ADDRESS_HI = 0 MIN_LOD = 0 DATA_FORMAT_GFX9 = IMG_DATA_FORMAT_INVALID NUM_FORMAT_GFX9 = IMG_NUM_FORMAT_UNORM NUM_FORMAT_FMASK = IMG_FMASK_8_2_1 NUM_FORMAT_ASTC_2D = IMG_ASTC_2D_4x4 NUM_FORMAT_ASTC_3D = IMG_ASTC_3D_3x3x3 NV = 0 META_DIRECT = 0 SQ_IMG_RSRC_WORD2 <- WIDTH = 0 HEIGHT = 0 PERF_MOD = 0 SQ_IMG_RSRC_WORD3 <- DST_SEL_X = SQ_SEL_0 DST_SEL_Y = SQ_SEL_0 DST_SEL_Z = SQ_SEL_0 DST_SEL_W = SQ_SEL_0 BASE_LEVEL = 0 LAST_LEVEL = 0 SW_MODE = 0 TYPE = SQ_RSRC_IMG_RSVD_0 SQ_IMG_RSRC_WORD4 <- DEPTH = 0 PITCH_GFX9 = 0 BC_SWIZZLE = BC_SWIZZLE_XYZW SQ_IMG_RSRC_WORD5 <- BASE_ARRAY = 0 ARRAY_PITCH = 0 META_DATA_ADDRESS = 0 META_LINEAR = 0 META_PIPE_ALIGNED = 0 META_RB_ALIGNED = 0 MAX_MIP = 0 SQ_IMG_RSRC_WORD6 <- MIN_LOD_WARN = 0 COUNTER_BANK_ID = 0 LOD_HDW_CNT_EN = 0 COMPRESSION_EN = 0 ALPHA_IS_ON_MSB = 0 COLOR_TRANSFORM = 0 LOST_ALPHA_BITS = 0 LOST_COLOR_BITS = 0 SQ_IMG_RSRC_WORD7 <- 0 Compute Shader: LLVM IR: ; ModuleID = 'mesa-shader' source_filename = "mesa-shader" target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-ni:7" target triple = "amdgcn-mesa-mesa3d" define amdgpu_cs void @main([0 x i8] addrspace(6)* inreg noalias dereferenceable(18446744073709551615), i32 inreg, i32 inreg, <3 x i32>) #0 { main_body: %4 = shl i32 %2, 6 %5 = extractelement <3 x i32> %3, i32 0 %6 = add i32 %4, %5 %7 = shl i32 %6, 4 %8 = bitcast [0 x i8] addrspace(6)* %0 to <4 x i32> addrspace(6)*, !amdgpu.uniform !0 %9 = insertelement <4 x i32> undef, i32 %1, i32 0 %10 = shufflevector <4 x i32> %9, <4 x i32> undef, <4 x i32> zeroinitializer %11 = load <4 x i32>, <4 x i32> addrspace(6)* %8, align 16, !invariant.load !0 %12 = bitcast <4 x i32> %10 to <4 x float> call void @llvm.amdgcn.raw.buffer.store.v4f32(<4 x float> %12, <4 x i32> %11, i32 %7, i32 0, i32 0) #2 ret void } ; Function Attrs: nounwind readnone speculatable declare i8 addrspace(4)* @llvm.amdgcn.implicit.buffer.ptr() #1 ; Function Attrs: nounwind writeonly declare void @llvm.amdgcn.raw.buffer.store.v4f32(<4 x float>, <4 x i32>, i32, i32, i32 immarg) #2 attributes #0 = { "amdgpu-32bit-address-high-bits"="0xffff8000" "amdgpu-max-work-group-size"="0x40" } attributes #1 = { nounwind readnone speculatable } attributes #2 = { nounwind writeonly } !0 = !{} DISASM: main: BB658_0: s_mov_b32 s0, s3 ; BE800003 s_movk_i32 s3, 0x8000 ; B0038000 s_lshl_b32 s1, s4, 6 ; 8E018604 s_load_dwordx4 s[4:7], s[2:3], 0x0 ; C00A0101 00000000 v_add_lshl_u32 v4, s1, v0, 4 ; D1FE0004 02120001 v_mov_b32_e32 v0, s0 ; 7E000200 v_mov_b32_e32 v1, s0 ; 7E020200 v_mov_b32_e32 v2, s0 ; 7E040200 v_mov_b32_e32 v3, s0 ; 7E060200 s_waitcnt lgkmcnt(0) ; BF8CC07F buffer_store_dwordx4 v[0:3], v4, s[4:7], 0 offen ; E07C1000 80010004 s_endpgm ; BF810000