1b33c807bSRuiling, Song; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 2b33c807bSRuiling, Song; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1100 < %s | FileCheck -check-prefixes=GFX11 %s 3b33c807bSRuiling, Song 4b33c807bSRuiling, Songdefine amdgpu_ps void @group_image_sample(i32 inreg noundef %globalTable, i32 inreg noundef %userdata6, i32 inreg noundef %userdata7, i32 inreg noundef %userdata8, i32 inreg noundef %PrimMask, <2 x float> noundef %PerspInterpSample, <2 x float> noundef %PerspInterpCenter, <2 x float> noundef %PerspInterpCentroid) #2 { 5b33c807bSRuiling, Song; GFX11-LABEL: group_image_sample: 6b33c807bSRuiling, Song; GFX11: ; %bb.0: ; %.entry 7*67c55b1fSRuiling, Song; GFX11-NEXT: s_mov_b32 s33, exec_lo 8b33c807bSRuiling, Song; GFX11-NEXT: s_wqm_b32 exec_lo, exec_lo 9b33c807bSRuiling, Song; GFX11-NEXT: s_mov_b32 m0, s4 10b33c807bSRuiling, Song; GFX11-NEXT: s_getpc_b64 s[4:5] 11b33c807bSRuiling, Song; GFX11-NEXT: s_mov_b32 s0, s1 12b33c807bSRuiling, Song; GFX11-NEXT: s_mov_b32 s6, s3 13b33c807bSRuiling, Song; GFX11-NEXT: s_mov_b32 s1, s5 14b33c807bSRuiling, Song; GFX11-NEXT: s_mov_b32 s3, s5 15b33c807bSRuiling, Song; GFX11-NEXT: s_mov_b32 s7, s5 16b33c807bSRuiling, Song; GFX11-NEXT: s_load_b128 s[12:15], s[0:1], 0x0 17b33c807bSRuiling, Song; GFX11-NEXT: s_load_b128 s[8:11], s[2:3], 0x0 18b33c807bSRuiling, Song; GFX11-NEXT: s_load_b256 s[0:7], s[6:7], 0x0 19b33c807bSRuiling, Song; GFX11-NEXT: s_mov_b32 s16, exec_lo 20b33c807bSRuiling, Song; GFX11-NEXT: s_wqm_b32 exec_lo, exec_lo 21b33c807bSRuiling, Song; GFX11-NEXT: lds_param_load v2, attr0.y wait_vdst:15 22b33c807bSRuiling, Song; GFX11-NEXT: lds_param_load v3, attr0.x wait_vdst:15 23b33c807bSRuiling, Song; GFX11-NEXT: s_mov_b32 exec_lo, s16 24*67c55b1fSRuiling, Song; GFX11-NEXT: v_interp_p10_f32 v4, v2, v0, v2 wait_exp:1 25*67c55b1fSRuiling, Song; GFX11-NEXT: v_interp_p10_f32 v0, v3, v0, v3 wait_exp:0 26b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt lgkmcnt(0) 27*67c55b1fSRuiling, Song; GFX11-NEXT: s_clause 0xf 28b33c807bSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[16:17], s[12:15], 0x10 29b33c807bSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[18:19], s[12:15], 0x20 30b33c807bSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[20:21], s[12:15], 0x30 31b33c807bSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[22:23], s[12:15], 0x40 32*67c55b1fSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[24:25], s[12:15], 0x50 33*67c55b1fSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[26:27], s[12:15], 0x60 34*67c55b1fSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[28:29], s[12:15], 0x70 35*67c55b1fSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[30:31], s[12:15], 0x80 36*67c55b1fSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[34:35], s[12:15], 0x90 37*67c55b1fSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[36:37], s[12:15], 0xa0 38*67c55b1fSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[38:39], s[12:15], 0xb0 39*67c55b1fSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[40:41], s[12:15], 0xc0 40*67c55b1fSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[42:43], s[12:15], 0xd0 41*67c55b1fSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[44:45], s[12:15], 0xe0 42*67c55b1fSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[46:47], s[12:15], 0xf0 43*67c55b1fSRuiling, Song; GFX11-NEXT: s_buffer_load_b64 s[12:13], s[12:15], 0x100 44*67c55b1fSRuiling, Song; GFX11-NEXT: v_interp_p2_f32 v36, v2, v1, v4 wait_exp:7 45b33c807bSRuiling, Song; GFX11-NEXT: v_interp_p2_f32 v0, v3, v1, v0 wait_exp:7 46b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt lgkmcnt(0) 47*67c55b1fSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 48*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v5, s17, v36 49*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v4, s16, v0 50*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v8, s18, v0 51*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v9, s19, v36 52*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v12, s20, v0 53*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v13, s21, v36 54*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v16, s22, v0 55*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v17, s23, v36 56*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v20, s24, v0 57*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v21, s25, v36 58*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v24, s26, v0 59*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v25, s27, v36 60*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v28, s28, v0 61*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v29, s29, v36 62*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v32, s30, v0 63*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v33, s31, v36 64*67c55b1fSRuiling, Song; GFX11-NEXT: s_clause 0x7 65b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[4:7], v[4:5], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 66b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[8:11], v[8:9], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 67b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[12:15], v[12:13], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 68b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[16:19], v[16:17], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 69b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[20:23], v[20:21], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 70b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[24:27], v[24:25], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 71b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[28:31], v[28:29], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 72b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[32:35], v[32:33], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 73*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v37, s34, v0 74*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v38, s35, v36 75*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v40, s36, v0 76*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v41, s37, v36 77*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v44, s38, v0 78*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v45, s39, v36 79*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v48, s40, v0 80*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v49, s41, v36 81*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v52, s42, v0 82*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v53, s43, v36 83*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v56, s44, v0 84*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v57, s45, v36 85*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v60, s46, v0 86*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v61, s47, v36 87*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v0, s12, v0 88*67c55b1fSRuiling, Song; GFX11-NEXT: v_add_f32_e32 v1, s13, v36 89*67c55b1fSRuiling, Song; GFX11-NEXT: s_and_b32 exec_lo, exec_lo, s33 90*67c55b1fSRuiling, Song; GFX11-NEXT: s_clause 0x7 91*67c55b1fSRuiling, Song; GFX11-NEXT: image_sample v[36:39], v[37:38], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 92b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[40:43], v[40:41], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 93b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[44:47], v[44:45], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 94b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[48:51], v[48:49], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 95b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[52:55], v[52:53], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 96b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[56:59], v[56:57], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 97b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[60:63], v[60:61], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 98b33c807bSRuiling, Song; GFX11-NEXT: image_sample v[64:67], v[0:1], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D 99b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(14) 100b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v8, v4 :: v_dual_add_f32 v1, v9, v5 101b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v10, v6 :: v_dual_add_f32 v5, v11, v7 102b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(13) 103b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 104b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v12, v0 :: v_dual_add_f32 v1, v13, v1 105b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v14, v4 :: v_dual_add_f32 v5, v15, v5 106b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(12) 107b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 108b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v16, v0 :: v_dual_add_f32 v1, v17, v1 109b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v18, v4 :: v_dual_add_f32 v5, v19, v5 110b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(11) 111b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 112b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v20, v0 :: v_dual_add_f32 v1, v21, v1 113b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v22, v4 :: v_dual_add_f32 v5, v23, v5 114b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(10) 115b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 116b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v24, v0 :: v_dual_add_f32 v1, v25, v1 117b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v26, v4 :: v_dual_add_f32 v5, v27, v5 118b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(9) 119b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 120b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v28, v0 :: v_dual_add_f32 v1, v29, v1 121b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v30, v4 :: v_dual_add_f32 v5, v31, v5 122b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(8) 123b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 124b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v32, v0 :: v_dual_add_f32 v1, v33, v1 125b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v34, v4 :: v_dual_add_f32 v5, v35, v5 126b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(7) 127b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 128b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v36, v0 :: v_dual_add_f32 v1, v37, v1 129b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v38, v4 :: v_dual_add_f32 v5, v39, v5 130b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(6) 131b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 132b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v40, v0 :: v_dual_add_f32 v1, v41, v1 133b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v42, v4 :: v_dual_add_f32 v5, v43, v5 134b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(5) 135b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 136b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v44, v0 :: v_dual_add_f32 v1, v45, v1 137b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v46, v4 :: v_dual_add_f32 v5, v47, v5 138b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(4) 139b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 140b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v48, v0 :: v_dual_add_f32 v1, v49, v1 141b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v50, v4 :: v_dual_add_f32 v5, v51, v5 142b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(3) 143b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 144b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v52, v0 :: v_dual_add_f32 v1, v53, v1 145b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v54, v4 :: v_dual_add_f32 v5, v55, v5 146b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(2) 147b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 148b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v56, v0 :: v_dual_add_f32 v1, v57, v1 149b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v58, v4 :: v_dual_add_f32 v5, v59, v5 150b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(1) 151b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 152b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v60, v0 :: v_dual_add_f32 v1, v61, v1 153b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v62, v4 :: v_dual_add_f32 v5, v63, v5 154b33c807bSRuiling, Song; GFX11-NEXT: s_waitcnt vmcnt(0) 155b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 156b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v0, v64, v0 :: v_dual_add_f32 v1, v65, v1 157b33c807bSRuiling, Song; GFX11-NEXT: v_dual_add_f32 v4, v66, v4 :: v_dual_add_f32 v5, v67, v5 158b33c807bSRuiling, Song; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) 159b33c807bSRuiling, Song; GFX11-NEXT: v_cvt_pk_rtz_f16_f32_e32 v0, v0, v1 160b33c807bSRuiling, Song; GFX11-NEXT: v_cvt_pk_rtz_f16_f32_e32 v1, v4, v5 161b33c807bSRuiling, Song; GFX11-NEXT: exp mrt0 v0, v1, off, off done 162b33c807bSRuiling, Song; GFX11-NEXT: s_endpgm 163b33c807bSRuiling, Song.entry: 164b33c807bSRuiling, Song %i = call i64 @llvm.amdgcn.s.getpc() 165b33c807bSRuiling, Song %i1 = and i64 %i, -4294967296 166b33c807bSRuiling, Song %i2 = zext i32 %userdata6 to i64 167b33c807bSRuiling, Song %i3 = or disjoint i64 %i1, %i2 168b33c807bSRuiling, Song %i4 = inttoptr i64 %i3 to ptr addrspace(4) 169b33c807bSRuiling, Song %i5 = load <4 x i32>, ptr addrspace(4) %i4, align 16 170b33c807bSRuiling, Song %i6 = zext i32 %userdata7 to i64 171b33c807bSRuiling, Song %i7 = or disjoint i64 %i1, %i6 172b33c807bSRuiling, Song %i8 = inttoptr i64 %i7 to ptr addrspace(4) 173b33c807bSRuiling, Song %i9 = load <4 x i32>, ptr addrspace(4) %i8, align 4, !invariant.load !0 174b33c807bSRuiling, Song %i10 = zext i32 %userdata8 to i64 175b33c807bSRuiling, Song %i11 = or disjoint i64 %i1, %i10 176b33c807bSRuiling, Song %i12 = inttoptr i64 %i11 to ptr addrspace(4) 177b33c807bSRuiling, Song %i13 = load <8 x i32>, ptr addrspace(4) %i12, align 4, !invariant.load !0 178b33c807bSRuiling, Song %i14 = call float @llvm.amdgcn.lds.param.load(i32 1, i32 0, i32 %PrimMask) 179b33c807bSRuiling, Song %PerspInterpCenter.i1 = extractelement <2 x float> %PerspInterpCenter, i64 1 180b33c807bSRuiling, Song %PerspInterpCenter.i0 = extractelement <2 x float> %PerspInterpCenter, i64 0 181b33c807bSRuiling, Song %i15 = call float @llvm.amdgcn.interp.inreg.p10(float %i14, float %PerspInterpCenter.i0, float %i14) 182b33c807bSRuiling, Song %i16 = call float @llvm.amdgcn.interp.inreg.p2(float %i14, float %PerspInterpCenter.i1, float %i15) 183b33c807bSRuiling, Song %i17 = call float @llvm.amdgcn.lds.param.load(i32 0, i32 0, i32 %PrimMask) 184b33c807bSRuiling, Song %i18 = call float @llvm.amdgcn.interp.inreg.p10(float %i17, float %PerspInterpCenter.i0, float %i17) 185b33c807bSRuiling, Song %i19 = call float @llvm.amdgcn.interp.inreg.p2(float %i17, float %PerspInterpCenter.i1, float %i18) 186b33c807bSRuiling, Song %i20 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 16, i32 0), !invariant.load !0 187b33c807bSRuiling, Song %i21 = shufflevector <2 x i32> %i20, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 188b33c807bSRuiling, Song %i22 = bitcast <4 x i32> %i21 to <4 x float> 189b33c807bSRuiling, Song %.i0 = extractelement <4 x float> %i22, i64 0 190b33c807bSRuiling, Song %.i1 = extractelement <4 x float> %i22, i64 1 191b33c807bSRuiling, Song %.i03 = fadd reassoc nnan nsz arcp contract afn float %.i0, %i19 192b33c807bSRuiling, Song %.i14 = fadd reassoc nnan nsz arcp contract afn float %.i1, %i16 193b33c807bSRuiling, Song %i23 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i03, float %.i14, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 194b33c807bSRuiling, Song %.i010 = extractelement <4 x float> %i23, i64 0 195b33c807bSRuiling, Song %.i113 = extractelement <4 x float> %i23, i64 1 196b33c807bSRuiling, Song %.i215 = extractelement <4 x float> %i23, i64 2 197b33c807bSRuiling, Song %.i317 = extractelement <4 x float> %i23, i64 3 198b33c807bSRuiling, Song %i24 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 32, i32 0), !invariant.load !0 199b33c807bSRuiling, Song %i25 = shufflevector <2 x i32> %i24, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 200b33c807bSRuiling, Song %i26 = bitcast <4 x i32> %i25 to <4 x float> 201b33c807bSRuiling, Song %.i05 = extractelement <4 x float> %i26, i64 0 202b33c807bSRuiling, Song %.i16 = extractelement <4 x float> %i26, i64 1 203b33c807bSRuiling, Song %.i07 = fadd reassoc nnan nsz arcp contract afn float %.i05, %i19 204b33c807bSRuiling, Song %.i18 = fadd reassoc nnan nsz arcp contract afn float %.i16, %i16 205b33c807bSRuiling, Song %i27 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i07, float %.i18, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 206b33c807bSRuiling, Song %.i09 = extractelement <4 x float> %i27, i64 0 207b33c807bSRuiling, Song %.i011 = fadd reassoc nnan nsz arcp contract afn float %.i09, %.i010 208b33c807bSRuiling, Song %.i112 = extractelement <4 x float> %i27, i64 1 209b33c807bSRuiling, Song %.i114 = fadd reassoc nnan nsz arcp contract afn float %.i112, %.i113 210b33c807bSRuiling, Song %.i2 = extractelement <4 x float> %i27, i64 2 211b33c807bSRuiling, Song %.i216 = fadd reassoc nnan nsz arcp contract afn float %.i2, %.i215 212b33c807bSRuiling, Song %.i3 = extractelement <4 x float> %i27, i64 3 213b33c807bSRuiling, Song %.i318 = fadd reassoc nnan nsz arcp contract afn float %.i3, %.i317 214b33c807bSRuiling, Song %i28 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 48, i32 0), !invariant.load !0 215b33c807bSRuiling, Song %i29 = shufflevector <2 x i32> %i28, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 216b33c807bSRuiling, Song %i30 = bitcast <4 x i32> %i29 to <4 x float> 217b33c807bSRuiling, Song %.i019 = extractelement <4 x float> %i30, i64 0 218b33c807bSRuiling, Song %.i120 = extractelement <4 x float> %i30, i64 1 219b33c807bSRuiling, Song %.i021 = fadd reassoc nnan nsz arcp contract afn float %.i019, %i19 220b33c807bSRuiling, Song %.i122 = fadd reassoc nnan nsz arcp contract afn float %.i120, %i16 221b33c807bSRuiling, Song %i31 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i021, float %.i122, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 222b33c807bSRuiling, Song %.i023 = extractelement <4 x float> %i31, i64 0 223b33c807bSRuiling, Song %.i024 = fadd reassoc nnan nsz arcp contract afn float %.i023, %.i011 224b33c807bSRuiling, Song %.i125 = extractelement <4 x float> %i31, i64 1 225b33c807bSRuiling, Song %.i126 = fadd reassoc nnan nsz arcp contract afn float %.i125, %.i114 226b33c807bSRuiling, Song %.i227 = extractelement <4 x float> %i31, i64 2 227b33c807bSRuiling, Song %.i228 = fadd reassoc nnan nsz arcp contract afn float %.i227, %.i216 228b33c807bSRuiling, Song %.i329 = extractelement <4 x float> %i31, i64 3 229b33c807bSRuiling, Song %.i330 = fadd reassoc nnan nsz arcp contract afn float %.i329, %.i318 230b33c807bSRuiling, Song %i32 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 64, i32 0), !invariant.load !0 231b33c807bSRuiling, Song %i33 = shufflevector <2 x i32> %i32, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 232b33c807bSRuiling, Song %i34 = bitcast <4 x i32> %i33 to <4 x float> 233b33c807bSRuiling, Song %.i031 = extractelement <4 x float> %i34, i64 0 234b33c807bSRuiling, Song %.i132 = extractelement <4 x float> %i34, i64 1 235b33c807bSRuiling, Song %.i033 = fadd reassoc nnan nsz arcp contract afn float %.i031, %i19 236b33c807bSRuiling, Song %.i134 = fadd reassoc nnan nsz arcp contract afn float %.i132, %i16 237b33c807bSRuiling, Song %i35 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i033, float %.i134, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 238b33c807bSRuiling, Song %.i035 = extractelement <4 x float> %i35, i64 0 239b33c807bSRuiling, Song %.i036 = fadd reassoc nnan nsz arcp contract afn float %.i035, %.i024 240b33c807bSRuiling, Song %.i137 = extractelement <4 x float> %i35, i64 1 241b33c807bSRuiling, Song %.i138 = fadd reassoc nnan nsz arcp contract afn float %.i137, %.i126 242b33c807bSRuiling, Song %.i239 = extractelement <4 x float> %i35, i64 2 243b33c807bSRuiling, Song %.i240 = fadd reassoc nnan nsz arcp contract afn float %.i239, %.i228 244b33c807bSRuiling, Song %.i341 = extractelement <4 x float> %i35, i64 3 245b33c807bSRuiling, Song %.i342 = fadd reassoc nnan nsz arcp contract afn float %.i341, %.i330 246b33c807bSRuiling, Song %i36 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 80, i32 0), !invariant.load !0 247b33c807bSRuiling, Song %i37 = shufflevector <2 x i32> %i36, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 248b33c807bSRuiling, Song %i38 = bitcast <4 x i32> %i37 to <4 x float> 249b33c807bSRuiling, Song %.i043 = extractelement <4 x float> %i38, i64 0 250b33c807bSRuiling, Song %.i144 = extractelement <4 x float> %i38, i64 1 251b33c807bSRuiling, Song %.i045 = fadd reassoc nnan nsz arcp contract afn float %.i043, %i19 252b33c807bSRuiling, Song %.i146 = fadd reassoc nnan nsz arcp contract afn float %.i144, %i16 253b33c807bSRuiling, Song %i39 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i045, float %.i146, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 254b33c807bSRuiling, Song %.i047 = extractelement <4 x float> %i39, i64 0 255b33c807bSRuiling, Song %.i048 = fadd reassoc nnan nsz arcp contract afn float %.i047, %.i036 256b33c807bSRuiling, Song %.i149 = extractelement <4 x float> %i39, i64 1 257b33c807bSRuiling, Song %.i150 = fadd reassoc nnan nsz arcp contract afn float %.i149, %.i138 258b33c807bSRuiling, Song %.i251 = extractelement <4 x float> %i39, i64 2 259b33c807bSRuiling, Song %.i252 = fadd reassoc nnan nsz arcp contract afn float %.i251, %.i240 260b33c807bSRuiling, Song %.i353 = extractelement <4 x float> %i39, i64 3 261b33c807bSRuiling, Song %.i354 = fadd reassoc nnan nsz arcp contract afn float %.i353, %.i342 262b33c807bSRuiling, Song %i40 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 96, i32 0), !invariant.load !0 263b33c807bSRuiling, Song %i41 = shufflevector <2 x i32> %i40, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 264b33c807bSRuiling, Song %i42 = bitcast <4 x i32> %i41 to <4 x float> 265b33c807bSRuiling, Song %.i055 = extractelement <4 x float> %i42, i64 0 266b33c807bSRuiling, Song %.i156 = extractelement <4 x float> %i42, i64 1 267b33c807bSRuiling, Song %.i057 = fadd reassoc nnan nsz arcp contract afn float %.i055, %i19 268b33c807bSRuiling, Song %.i158 = fadd reassoc nnan nsz arcp contract afn float %.i156, %i16 269b33c807bSRuiling, Song %i43 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i057, float %.i158, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 270b33c807bSRuiling, Song %.i059 = extractelement <4 x float> %i43, i64 0 271b33c807bSRuiling, Song %.i060 = fadd reassoc nnan nsz arcp contract afn float %.i059, %.i048 272b33c807bSRuiling, Song %.i161 = extractelement <4 x float> %i43, i64 1 273b33c807bSRuiling, Song %.i162 = fadd reassoc nnan nsz arcp contract afn float %.i161, %.i150 274b33c807bSRuiling, Song %.i263 = extractelement <4 x float> %i43, i64 2 275b33c807bSRuiling, Song %.i264 = fadd reassoc nnan nsz arcp contract afn float %.i263, %.i252 276b33c807bSRuiling, Song %.i365 = extractelement <4 x float> %i43, i64 3 277b33c807bSRuiling, Song %.i366 = fadd reassoc nnan nsz arcp contract afn float %.i365, %.i354 278b33c807bSRuiling, Song %i44 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 112, i32 0), !invariant.load !0 279b33c807bSRuiling, Song %i45 = shufflevector <2 x i32> %i44, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 280b33c807bSRuiling, Song %i46 = bitcast <4 x i32> %i45 to <4 x float> 281b33c807bSRuiling, Song %.i067 = extractelement <4 x float> %i46, i64 0 282b33c807bSRuiling, Song %.i168 = extractelement <4 x float> %i46, i64 1 283b33c807bSRuiling, Song %.i069 = fadd reassoc nnan nsz arcp contract afn float %.i067, %i19 284b33c807bSRuiling, Song %.i170 = fadd reassoc nnan nsz arcp contract afn float %.i168, %i16 285b33c807bSRuiling, Song %i47 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i069, float %.i170, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 286b33c807bSRuiling, Song %.i071 = extractelement <4 x float> %i47, i64 0 287b33c807bSRuiling, Song %.i072 = fadd reassoc nnan nsz arcp contract afn float %.i071, %.i060 288b33c807bSRuiling, Song %.i173 = extractelement <4 x float> %i47, i64 1 289b33c807bSRuiling, Song %.i174 = fadd reassoc nnan nsz arcp contract afn float %.i173, %.i162 290b33c807bSRuiling, Song %.i275 = extractelement <4 x float> %i47, i64 2 291b33c807bSRuiling, Song %.i276 = fadd reassoc nnan nsz arcp contract afn float %.i275, %.i264 292b33c807bSRuiling, Song %.i377 = extractelement <4 x float> %i47, i64 3 293b33c807bSRuiling, Song %.i378 = fadd reassoc nnan nsz arcp contract afn float %.i377, %.i366 294b33c807bSRuiling, Song %i48 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 128, i32 0), !invariant.load !0 295b33c807bSRuiling, Song %i49 = shufflevector <2 x i32> %i48, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 296b33c807bSRuiling, Song %i50 = bitcast <4 x i32> %i49 to <4 x float> 297b33c807bSRuiling, Song %.i079 = extractelement <4 x float> %i50, i64 0 298b33c807bSRuiling, Song %.i180 = extractelement <4 x float> %i50, i64 1 299b33c807bSRuiling, Song %.i081 = fadd reassoc nnan nsz arcp contract afn float %.i079, %i19 300b33c807bSRuiling, Song %.i182 = fadd reassoc nnan nsz arcp contract afn float %.i180, %i16 301b33c807bSRuiling, Song %i51 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i081, float %.i182, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 302b33c807bSRuiling, Song %.i083 = extractelement <4 x float> %i51, i64 0 303b33c807bSRuiling, Song %.i084 = fadd reassoc nnan nsz arcp contract afn float %.i083, %.i072 304b33c807bSRuiling, Song %.i185 = extractelement <4 x float> %i51, i64 1 305b33c807bSRuiling, Song %.i186 = fadd reassoc nnan nsz arcp contract afn float %.i185, %.i174 306b33c807bSRuiling, Song %.i287 = extractelement <4 x float> %i51, i64 2 307b33c807bSRuiling, Song %.i288 = fadd reassoc nnan nsz arcp contract afn float %.i287, %.i276 308b33c807bSRuiling, Song %.i389 = extractelement <4 x float> %i51, i64 3 309b33c807bSRuiling, Song %.i390 = fadd reassoc nnan nsz arcp contract afn float %.i389, %.i378 310b33c807bSRuiling, Song %i52 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 144, i32 0), !invariant.load !0 311b33c807bSRuiling, Song %i53 = shufflevector <2 x i32> %i52, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 312b33c807bSRuiling, Song %i54 = bitcast <4 x i32> %i53 to <4 x float> 313b33c807bSRuiling, Song %.i091 = extractelement <4 x float> %i54, i64 0 314b33c807bSRuiling, Song %.i192 = extractelement <4 x float> %i54, i64 1 315b33c807bSRuiling, Song %.i093 = fadd reassoc nnan nsz arcp contract afn float %.i091, %i19 316b33c807bSRuiling, Song %.i194 = fadd reassoc nnan nsz arcp contract afn float %.i192, %i16 317b33c807bSRuiling, Song %i55 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i093, float %.i194, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 318b33c807bSRuiling, Song %.i095 = extractelement <4 x float> %i55, i64 0 319b33c807bSRuiling, Song %.i096 = fadd reassoc nnan nsz arcp contract afn float %.i095, %.i084 320b33c807bSRuiling, Song %.i197 = extractelement <4 x float> %i55, i64 1 321b33c807bSRuiling, Song %.i198 = fadd reassoc nnan nsz arcp contract afn float %.i197, %.i186 322b33c807bSRuiling, Song %.i299 = extractelement <4 x float> %i55, i64 2 323b33c807bSRuiling, Song %.i2100 = fadd reassoc nnan nsz arcp contract afn float %.i299, %.i288 324b33c807bSRuiling, Song %.i3101 = extractelement <4 x float> %i55, i64 3 325b33c807bSRuiling, Song %.i3102 = fadd reassoc nnan nsz arcp contract afn float %.i3101, %.i390 326b33c807bSRuiling, Song %i56 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 160, i32 0), !invariant.load !0 327b33c807bSRuiling, Song %i57 = shufflevector <2 x i32> %i56, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 328b33c807bSRuiling, Song %i58 = bitcast <4 x i32> %i57 to <4 x float> 329b33c807bSRuiling, Song %.i0103 = extractelement <4 x float> %i58, i64 0 330b33c807bSRuiling, Song %.i1104 = extractelement <4 x float> %i58, i64 1 331b33c807bSRuiling, Song %.i0105 = fadd reassoc nnan nsz arcp contract afn float %.i0103, %i19 332b33c807bSRuiling, Song %.i1106 = fadd reassoc nnan nsz arcp contract afn float %.i1104, %i16 333b33c807bSRuiling, Song %i59 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i0105, float %.i1106, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 334b33c807bSRuiling, Song %.i0107 = extractelement <4 x float> %i59, i64 0 335b33c807bSRuiling, Song %.i0108 = fadd reassoc nnan nsz arcp contract afn float %.i0107, %.i096 336b33c807bSRuiling, Song %.i1109 = extractelement <4 x float> %i59, i64 1 337b33c807bSRuiling, Song %.i1110 = fadd reassoc nnan nsz arcp contract afn float %.i1109, %.i198 338b33c807bSRuiling, Song %.i2111 = extractelement <4 x float> %i59, i64 2 339b33c807bSRuiling, Song %.i2112 = fadd reassoc nnan nsz arcp contract afn float %.i2111, %.i2100 340b33c807bSRuiling, Song %.i3113 = extractelement <4 x float> %i59, i64 3 341b33c807bSRuiling, Song %.i3114 = fadd reassoc nnan nsz arcp contract afn float %.i3113, %.i3102 342b33c807bSRuiling, Song %i60 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 176, i32 0), !invariant.load !0 343b33c807bSRuiling, Song %i61 = shufflevector <2 x i32> %i60, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 344b33c807bSRuiling, Song %i62 = bitcast <4 x i32> %i61 to <4 x float> 345b33c807bSRuiling, Song %.i0115 = extractelement <4 x float> %i62, i64 0 346b33c807bSRuiling, Song %.i1116 = extractelement <4 x float> %i62, i64 1 347b33c807bSRuiling, Song %.i0117 = fadd reassoc nnan nsz arcp contract afn float %.i0115, %i19 348b33c807bSRuiling, Song %.i1118 = fadd reassoc nnan nsz arcp contract afn float %.i1116, %i16 349b33c807bSRuiling, Song %i63 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i0117, float %.i1118, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 350b33c807bSRuiling, Song %.i0119 = extractelement <4 x float> %i63, i64 0 351b33c807bSRuiling, Song %.i0120 = fadd reassoc nnan nsz arcp contract afn float %.i0119, %.i0108 352b33c807bSRuiling, Song %.i1121 = extractelement <4 x float> %i63, i64 1 353b33c807bSRuiling, Song %.i1122 = fadd reassoc nnan nsz arcp contract afn float %.i1121, %.i1110 354b33c807bSRuiling, Song %.i2123 = extractelement <4 x float> %i63, i64 2 355b33c807bSRuiling, Song %.i2124 = fadd reassoc nnan nsz arcp contract afn float %.i2123, %.i2112 356b33c807bSRuiling, Song %.i3125 = extractelement <4 x float> %i63, i64 3 357b33c807bSRuiling, Song %.i3126 = fadd reassoc nnan nsz arcp contract afn float %.i3125, %.i3114 358b33c807bSRuiling, Song %i64 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 192, i32 0), !invariant.load !0 359b33c807bSRuiling, Song %i65 = shufflevector <2 x i32> %i64, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 360b33c807bSRuiling, Song %i66 = bitcast <4 x i32> %i65 to <4 x float> 361b33c807bSRuiling, Song %.i0127 = extractelement <4 x float> %i66, i64 0 362b33c807bSRuiling, Song %.i1128 = extractelement <4 x float> %i66, i64 1 363b33c807bSRuiling, Song %.i0129 = fadd reassoc nnan nsz arcp contract afn float %.i0127, %i19 364b33c807bSRuiling, Song %.i1130 = fadd reassoc nnan nsz arcp contract afn float %.i1128, %i16 365b33c807bSRuiling, Song %i67 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i0129, float %.i1130, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 366b33c807bSRuiling, Song %.i0131 = extractelement <4 x float> %i67, i64 0 367b33c807bSRuiling, Song %.i0132 = fadd reassoc nnan nsz arcp contract afn float %.i0131, %.i0120 368b33c807bSRuiling, Song %.i1133 = extractelement <4 x float> %i67, i64 1 369b33c807bSRuiling, Song %.i1134 = fadd reassoc nnan nsz arcp contract afn float %.i1133, %.i1122 370b33c807bSRuiling, Song %.i2135 = extractelement <4 x float> %i67, i64 2 371b33c807bSRuiling, Song %.i2136 = fadd reassoc nnan nsz arcp contract afn float %.i2135, %.i2124 372b33c807bSRuiling, Song %.i3137 = extractelement <4 x float> %i67, i64 3 373b33c807bSRuiling, Song %.i3138 = fadd reassoc nnan nsz arcp contract afn float %.i3137, %.i3126 374b33c807bSRuiling, Song %i68 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 208, i32 0), !invariant.load !0 375b33c807bSRuiling, Song %i69 = shufflevector <2 x i32> %i68, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 376b33c807bSRuiling, Song %i70 = bitcast <4 x i32> %i69 to <4 x float> 377b33c807bSRuiling, Song %.i0139 = extractelement <4 x float> %i70, i64 0 378b33c807bSRuiling, Song %.i1140 = extractelement <4 x float> %i70, i64 1 379b33c807bSRuiling, Song %.i0141 = fadd reassoc nnan nsz arcp contract afn float %.i0139, %i19 380b33c807bSRuiling, Song %.i1142 = fadd reassoc nnan nsz arcp contract afn float %.i1140, %i16 381b33c807bSRuiling, Song %i71 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i0141, float %.i1142, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 382b33c807bSRuiling, Song %.i0143 = extractelement <4 x float> %i71, i64 0 383b33c807bSRuiling, Song %.i0144 = fadd reassoc nnan nsz arcp contract afn float %.i0143, %.i0132 384b33c807bSRuiling, Song %.i1145 = extractelement <4 x float> %i71, i64 1 385b33c807bSRuiling, Song %.i1146 = fadd reassoc nnan nsz arcp contract afn float %.i1145, %.i1134 386b33c807bSRuiling, Song %.i2147 = extractelement <4 x float> %i71, i64 2 387b33c807bSRuiling, Song %.i2148 = fadd reassoc nnan nsz arcp contract afn float %.i2147, %.i2136 388b33c807bSRuiling, Song %.i3149 = extractelement <4 x float> %i71, i64 3 389b33c807bSRuiling, Song %.i3150 = fadd reassoc nnan nsz arcp contract afn float %.i3149, %.i3138 390b33c807bSRuiling, Song %i72 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 224, i32 0), !invariant.load !0 391b33c807bSRuiling, Song %i73 = shufflevector <2 x i32> %i72, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 392b33c807bSRuiling, Song %i74 = bitcast <4 x i32> %i73 to <4 x float> 393b33c807bSRuiling, Song %.i0151 = extractelement <4 x float> %i74, i64 0 394b33c807bSRuiling, Song %.i1152 = extractelement <4 x float> %i74, i64 1 395b33c807bSRuiling, Song %.i0153 = fadd reassoc nnan nsz arcp contract afn float %.i0151, %i19 396b33c807bSRuiling, Song %.i1154 = fadd reassoc nnan nsz arcp contract afn float %.i1152, %i16 397b33c807bSRuiling, Song %i75 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i0153, float %.i1154, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 398b33c807bSRuiling, Song %.i0155 = extractelement <4 x float> %i75, i64 0 399b33c807bSRuiling, Song %.i0156 = fadd reassoc nnan nsz arcp contract afn float %.i0155, %.i0144 400b33c807bSRuiling, Song %.i1157 = extractelement <4 x float> %i75, i64 1 401b33c807bSRuiling, Song %.i1158 = fadd reassoc nnan nsz arcp contract afn float %.i1157, %.i1146 402b33c807bSRuiling, Song %.i2159 = extractelement <4 x float> %i75, i64 2 403b33c807bSRuiling, Song %.i2160 = fadd reassoc nnan nsz arcp contract afn float %.i2159, %.i2148 404b33c807bSRuiling, Song %.i3161 = extractelement <4 x float> %i75, i64 3 405b33c807bSRuiling, Song %.i3162 = fadd reassoc nnan nsz arcp contract afn float %.i3161, %.i3150 406b33c807bSRuiling, Song %i76 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 240, i32 0), !invariant.load !0 407b33c807bSRuiling, Song %i77 = shufflevector <2 x i32> %i76, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 408b33c807bSRuiling, Song %i78 = bitcast <4 x i32> %i77 to <4 x float> 409b33c807bSRuiling, Song %.i0163 = extractelement <4 x float> %i78, i64 0 410b33c807bSRuiling, Song %.i1164 = extractelement <4 x float> %i78, i64 1 411b33c807bSRuiling, Song %.i0165 = fadd reassoc nnan nsz arcp contract afn float %.i0163, %i19 412b33c807bSRuiling, Song %.i1166 = fadd reassoc nnan nsz arcp contract afn float %.i1164, %i16 413b33c807bSRuiling, Song %i79 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i0165, float %.i1166, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 414b33c807bSRuiling, Song %.i0167 = extractelement <4 x float> %i79, i64 0 415b33c807bSRuiling, Song %.i0168 = fadd reassoc nnan nsz arcp contract afn float %.i0167, %.i0156 416b33c807bSRuiling, Song %.i1169 = extractelement <4 x float> %i79, i64 1 417b33c807bSRuiling, Song %.i1170 = fadd reassoc nnan nsz arcp contract afn float %.i1169, %.i1158 418b33c807bSRuiling, Song %.i2171 = extractelement <4 x float> %i79, i64 2 419b33c807bSRuiling, Song %.i2172 = fadd reassoc nnan nsz arcp contract afn float %.i2171, %.i2160 420b33c807bSRuiling, Song %.i3173 = extractelement <4 x float> %i79, i64 3 421b33c807bSRuiling, Song %.i3174 = fadd reassoc nnan nsz arcp contract afn float %.i3173, %.i3162 422b33c807bSRuiling, Song %i80 = call <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32> %i5, i32 256, i32 0), !invariant.load !0 423b33c807bSRuiling, Song %i81 = shufflevector <2 x i32> %i80, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison> 424b33c807bSRuiling, Song %i82 = bitcast <4 x i32> %i81 to <4 x float> 425b33c807bSRuiling, Song %.i0175 = extractelement <4 x float> %i82, i64 0 426b33c807bSRuiling, Song %.i1176 = extractelement <4 x float> %i82, i64 1 427b33c807bSRuiling, Song %.i0177 = fadd reassoc nnan nsz arcp contract afn float %.i0175, %i19 428b33c807bSRuiling, Song %.i1178 = fadd reassoc nnan nsz arcp contract afn float %.i1176, %i16 429b33c807bSRuiling, Song %i83 = call reassoc nnan nsz arcp contract afn <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32.v8i32.v4i32(i32 15, float %.i0177, float %.i1178, <8 x i32> %i13, <4 x i32> %i9, i1 false, i32 0, i32 0) 430b33c807bSRuiling, Song %.i0179 = extractelement <4 x float> %i83, i64 0 431b33c807bSRuiling, Song %.i0180 = fadd reassoc nnan nsz arcp contract afn float %.i0179, %.i0168 432b33c807bSRuiling, Song %.i1181 = extractelement <4 x float> %i83, i64 1 433b33c807bSRuiling, Song %.i1182 = fadd reassoc nnan nsz arcp contract afn float %.i1181, %.i1170 434b33c807bSRuiling, Song %.i2183 = extractelement <4 x float> %i83, i64 2 435b33c807bSRuiling, Song %.i2184 = fadd reassoc nnan nsz arcp contract afn float %.i2183, %.i2172 436b33c807bSRuiling, Song %.i3185 = extractelement <4 x float> %i83, i64 3 437b33c807bSRuiling, Song %.i3186 = fadd reassoc nnan nsz arcp contract afn float %.i3185, %.i3174 438b33c807bSRuiling, Song %i84 = call <2 x half> @llvm.amdgcn.cvt.pkrtz(float %.i0180, float %.i1182) 439b33c807bSRuiling, Song %i85 = call <2 x half> @llvm.amdgcn.cvt.pkrtz(float %.i2184, float %.i3186) 440b33c807bSRuiling, Song %i86 = bitcast <2 x half> %i84 to float 441b33c807bSRuiling, Song %i87 = bitcast <2 x half> %i85 to float 442b33c807bSRuiling, Song call void @llvm.amdgcn.exp.f32(i32 0, i32 3, float %i86, float %i87, float poison, float poison, i1 true, i1 true) 443b33c807bSRuiling, Song ret void 444b33c807bSRuiling, Song} 445b33c807bSRuiling, Song 446b33c807bSRuiling, Songdeclare noundef i64 @llvm.amdgcn.s.getpc() #3 447b33c807bSRuiling, Songdeclare <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f32(i32 immarg, float, float, <8 x i32>, <4 x i32>, i1 immarg, i32 immarg, i32 immarg) #5 448b33c807bSRuiling, Songdeclare <2 x half> @llvm.amdgcn.cvt.pkrtz(float, float) #3 449b33c807bSRuiling, Songdeclare void @llvm.amdgcn.exp.f32(i32 immarg, i32 immarg, float, float, float, float, i1 immarg, i1 immarg) #4 450b33c807bSRuiling, Songdeclare float @llvm.amdgcn.lds.param.load(i32 immarg, i32 immarg, i32) #3 451b33c807bSRuiling, Songdeclare float @llvm.amdgcn.interp.inreg.p10(float, float, float) #3 452b33c807bSRuiling, Songdeclare float @llvm.amdgcn.interp.inreg.p2(float, float, float) #3 453b33c807bSRuiling, Songdeclare <2 x i32> @llvm.amdgcn.s.buffer.load.v2i32(<4 x i32>, i32, i32 immarg) #8 454b33c807bSRuiling, Song 455*67c55b1fSRuiling, Songattributes #2 = { alwaysinline nounwind memory(readwrite) "amdgpu-sched-strategy"="max-memory-clause" "amdgpu-max-memory-cluster-dwords"="32"} 456b33c807bSRuiling, Songattributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } 457b33c807bSRuiling, Songattributes #4 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } 458b33c807bSRuiling, Songattributes #5 = { nocallback nofree nosync nounwind willreturn memory(read) } 459b33c807bSRuiling, Songattributes #8 = { nocallback nofree nosync nounwind willreturn memory(none) } 460b33c807bSRuiling, Song 461b33c807bSRuiling, Song!0 = !{} 462