brintos

brintos / llvm-project-archived public Read only

0
0
Text · 77.4 KiB · 69720ac Raw
1437 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -show-mc-encoding < %s | FileCheck -check-prefixes=GFX9 %s3; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -show-mc-encoding < %s | FileCheck -check-prefixes=GFX10 %s4; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -show-mc-encoding < %s | FileCheck -check-prefixes=GFX11 %s5; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -show-mc-encoding < %s | FileCheck -check-prefixes=GFX12 %s6 7define amdgpu_ps <4 x float> @load_1d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {8; GFX9-LABEL: load_1d:9; GFX9:       ; %bb.0: ; %main_body10; GFX9-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x00,0xf0,0x00,0x00,0x00,0x00]11; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]12; GFX9-NEXT:    ; return to shader part epilog13;14; GFX10-LABEL: load_1d:15; GFX10:       ; %bb.0: ; %main_body16; GFX10-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x00,0x1f,0x00,0xf0,0x00,0x00,0x00,0x40]17; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]18; GFX10-NEXT:    ; return to shader part epilog19;20; GFX11-LABEL: load_1d:21; GFX11:       ; %bb.0: ; %main_body22; GFX11-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x80,0x0f,0x01,0xf0,0x00,0x00,0x00,0x00]23; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]24; GFX11-NEXT:    ; return to shader part epilog25;26; GFX12-LABEL: load_1d:27; GFX12:       ; %bb.0: ; %main_body28; GFX12-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]29; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]30; GFX12-NEXT:    ; return to shader part epilog31main_body:32  %s = extractelement <2 x i16> %coords, i32 033  %v = call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)34  ret <4 x float> %v35}36 37define amdgpu_ps <4 x float> @load_2d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {38; GFX9-LABEL: load_2d:39; GFX9:       ; %bb.0: ; %main_body40; GFX9-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x00,0xf0,0x00,0x00,0x00,0x00]41; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]42; GFX9-NEXT:    ; return to shader part epilog43;44; GFX10-LABEL: load_2d:45; GFX10:       ; %bb.0: ; %main_body46; GFX10-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16 ; encoding: [0x08,0x1f,0x00,0xf0,0x00,0x00,0x00,0x40]47; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]48; GFX10-NEXT:    ; return to shader part epilog49;50; GFX11-LABEL: load_2d:51; GFX11:       ; %bb.0: ; %main_body52; GFX11-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16 ; encoding: [0x84,0x0f,0x01,0xf0,0x00,0x00,0x00,0x00]53; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]54; GFX11-NEXT:    ; return to shader part epilog55;56; GFX12-LABEL: load_2d:57; GFX12:       ; %bb.0: ; %main_body58; GFX12-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]59; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]60; GFX12-NEXT:    ; return to shader part epilog61main_body:62  %s = extractelement <2 x i16> %coords, i32 063  %t = extractelement <2 x i16> %coords, i32 164  %v = call <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i16(i32 15, i16 %s, i16 %t, <8 x i32> %rsrc, i32 0, i32 0)65  ret <4 x float> %v66}67 68define amdgpu_ps <4 x float> @load_3d(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {69; GFX9-LABEL: load_3d:70; GFX9:       ; %bb.0: ; %main_body71; GFX9-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x00,0xf0,0x00,0x00,0x00,0x00]72; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]73; GFX9-NEXT:    ; return to shader part epilog74;75; GFX10-LABEL: load_3d:76; GFX10:       ; %bb.0: ; %main_body77; GFX10-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16 ; encoding: [0x10,0x1f,0x00,0xf0,0x00,0x00,0x00,0x40]78; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]79; GFX10-NEXT:    ; return to shader part epilog80;81; GFX11-LABEL: load_3d:82; GFX11:       ; %bb.0: ; %main_body83; GFX11-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16 ; encoding: [0x88,0x0f,0x01,0xf0,0x00,0x00,0x00,0x00]84; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]85; GFX11-NEXT:    ; return to shader part epilog86;87; GFX12-LABEL: load_3d:88; GFX12:       ; %bb.0: ; %main_body89; GFX12-NEXT:    image_load v[0:3], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D a16 ; encoding: [0x42,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00]90; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]91; GFX12-NEXT:    ; return to shader part epilog92main_body:93  %s = extractelement <2 x i16> %coords_lo, i32 094  %t = extractelement <2 x i16> %coords_lo, i32 195  %r = extractelement <2 x i16> %coords_hi, i32 096  %v = call <4 x float> @llvm.amdgcn.image.load.3d.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %r, <8 x i32> %rsrc, i32 0, i32 0)97  ret <4 x float> %v98}99 100define amdgpu_ps <4 x float> @load_cube(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {101; GFX9-LABEL: load_cube:102; GFX9:       ; %bb.0: ; %main_body103; GFX9-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x00,0xf0,0x00,0x00,0x00,0x00]104; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]105; GFX9-NEXT:    ; return to shader part epilog106;107; GFX10-LABEL: load_cube:108; GFX10:       ; %bb.0: ; %main_body109; GFX10-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16 ; encoding: [0x18,0x1f,0x00,0xf0,0x00,0x00,0x00,0x40]110; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]111; GFX10-NEXT:    ; return to shader part epilog112;113; GFX11-LABEL: load_cube:114; GFX11:       ; %bb.0: ; %main_body115; GFX11-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16 ; encoding: [0x8c,0x0f,0x01,0xf0,0x00,0x00,0x00,0x00]116; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]117; GFX11-NEXT:    ; return to shader part epilog118;119; GFX12-LABEL: load_cube:120; GFX12:       ; %bb.0: ; %main_body121; GFX12-NEXT:    image_load v[0:3], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00]122; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]123; GFX12-NEXT:    ; return to shader part epilog124main_body:125  %s = extractelement <2 x i16> %coords_lo, i32 0126  %t = extractelement <2 x i16> %coords_lo, i32 1127  %slice = extractelement <2 x i16> %coords_hi, i32 0128  %v = call <4 x float> @llvm.amdgcn.image.load.cube.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)129  ret <4 x float> %v130}131 132define amdgpu_ps <4 x float> @load_1darray(<8 x i32> inreg %rsrc, <2 x i16> %coords) {133; GFX9-LABEL: load_1darray:134; GFX9:       ; %bb.0: ; %main_body135; GFX9-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x00,0xf0,0x00,0x00,0x00,0x00]136; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]137; GFX9-NEXT:    ; return to shader part epilog138;139; GFX10-LABEL: load_1darray:140; GFX10:       ; %bb.0: ; %main_body141; GFX10-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16 ; encoding: [0x20,0x1f,0x00,0xf0,0x00,0x00,0x00,0x40]142; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]143; GFX10-NEXT:    ; return to shader part epilog144;145; GFX11-LABEL: load_1darray:146; GFX11:       ; %bb.0: ; %main_body147; GFX11-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16 ; encoding: [0x90,0x0f,0x01,0xf0,0x00,0x00,0x00,0x00]148; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]149; GFX11-NEXT:    ; return to shader part epilog150;151; GFX12-LABEL: load_1darray:152; GFX12:       ; %bb.0: ; %main_body153; GFX12-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY a16 ; encoding: [0x44,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]154; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]155; GFX12-NEXT:    ; return to shader part epilog156main_body:157  %s = extractelement <2 x i16> %coords, i32 0158  %slice = extractelement <2 x i16> %coords, i32 1159  %v = call <4 x float> @llvm.amdgcn.image.load.1darray.v4f32.i16(i32 15, i16 %s, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)160  ret <4 x float> %v161}162 163define amdgpu_ps <4 x float> @load_2darray(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {164; GFX9-LABEL: load_2darray:165; GFX9:       ; %bb.0: ; %main_body166; GFX9-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x00,0xf0,0x00,0x00,0x00,0x00]167; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]168; GFX9-NEXT:    ; return to shader part epilog169;170; GFX10-LABEL: load_2darray:171; GFX10:       ; %bb.0: ; %main_body172; GFX10-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16 ; encoding: [0x28,0x1f,0x00,0xf0,0x00,0x00,0x00,0x40]173; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]174; GFX10-NEXT:    ; return to shader part epilog175;176; GFX11-LABEL: load_2darray:177; GFX11:       ; %bb.0: ; %main_body178; GFX11-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16 ; encoding: [0x94,0x0f,0x01,0xf0,0x00,0x00,0x00,0x00]179; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]180; GFX11-NEXT:    ; return to shader part epilog181;182; GFX12-LABEL: load_2darray:183; GFX12:       ; %bb.0: ; %main_body184; GFX12-NEXT:    image_load v[0:3], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00]185; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]186; GFX12-NEXT:    ; return to shader part epilog187main_body:188  %s = extractelement <2 x i16> %coords_lo, i32 0189  %t = extractelement <2 x i16> %coords_lo, i32 1190  %slice = extractelement <2 x i16> %coords_hi, i32 0191  %v = call <4 x float> @llvm.amdgcn.image.load.2darray.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)192  ret <4 x float> %v193}194 195define amdgpu_ps <4 x float> @load_2dmsaa(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {196; GFX9-LABEL: load_2dmsaa:197; GFX9:       ; %bb.0: ; %main_body198; GFX9-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x00,0xf0,0x00,0x00,0x00,0x00]199; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]200; GFX9-NEXT:    ; return to shader part epilog201;202; GFX10-LABEL: load_2dmsaa:203; GFX10:       ; %bb.0: ; %main_body204; GFX10-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16 ; encoding: [0x30,0x1f,0x00,0xf0,0x00,0x00,0x00,0x40]205; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]206; GFX10-NEXT:    ; return to shader part epilog207;208; GFX11-LABEL: load_2dmsaa:209; GFX11:       ; %bb.0: ; %main_body210; GFX11-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16 ; encoding: [0x98,0x0f,0x01,0xf0,0x00,0x00,0x00,0x00]211; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]212; GFX11-NEXT:    ; return to shader part epilog213;214; GFX12-LABEL: load_2dmsaa:215; GFX12:       ; %bb.0: ; %main_body216; GFX12-NEXT:    image_load v[0:3], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA a16 ; encoding: [0x46,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00]217; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]218; GFX12-NEXT:    ; return to shader part epilog219main_body:220  %s = extractelement <2 x i16> %coords_lo, i32 0221  %t = extractelement <2 x i16> %coords_lo, i32 1222  %fragid = extractelement <2 x i16> %coords_hi, i32 0223  %v = call <4 x float> @llvm.amdgcn.image.load.2dmsaa.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %fragid, <8 x i32> %rsrc, i32 0, i32 0)224  ret <4 x float> %v225}226 227define amdgpu_ps <4 x float> @load_2darraymsaa(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {228; GFX9-LABEL: load_2darraymsaa:229; GFX9:       ; %bb.0: ; %main_body230; GFX9-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x00,0xf0,0x00,0x00,0x00,0x00]231; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]232; GFX9-NEXT:    ; return to shader part epilog233;234; GFX10-LABEL: load_2darraymsaa:235; GFX10:       ; %bb.0: ; %main_body236; GFX10-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16 ; encoding: [0x38,0x1f,0x00,0xf0,0x00,0x00,0x00,0x40]237; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]238; GFX10-NEXT:    ; return to shader part epilog239;240; GFX11-LABEL: load_2darraymsaa:241; GFX11:       ; %bb.0: ; %main_body242; GFX11-NEXT:    image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16 ; encoding: [0x9c,0x0f,0x01,0xf0,0x00,0x00,0x00,0x00]243; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]244; GFX11-NEXT:    ; return to shader part epilog245;246; GFX12-LABEL: load_2darraymsaa:247; GFX12:       ; %bb.0: ; %main_body248; GFX12-NEXT:    image_load v[0:3], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY a16 ; encoding: [0x47,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00]249; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]250; GFX12-NEXT:    ; return to shader part epilog251main_body:252  %s = extractelement <2 x i16> %coords_lo, i32 0253  %t = extractelement <2 x i16> %coords_lo, i32 1254  %slice = extractelement <2 x i16> %coords_hi, i32 0255  %fragid = extractelement <2 x i16> %coords_hi, i32 1256  %v = call <4 x float> @llvm.amdgcn.image.load.2darraymsaa.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, i16 %fragid, <8 x i32> %rsrc, i32 0, i32 0)257  ret <4 x float> %v258}259 260define amdgpu_ps <4 x float> @load_mip_1d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {261; GFX9-LABEL: load_mip_1d:262; GFX9:       ; %bb.0: ; %main_body263; GFX9-NEXT:    image_load_mip v[0:3], v0, s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x04,0xf0,0x00,0x00,0x00,0x00]264; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]265; GFX9-NEXT:    ; return to shader part epilog266;267; GFX10-LABEL: load_mip_1d:268; GFX10:       ; %bb.0: ; %main_body269; GFX10-NEXT:    image_load_mip v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x00,0x1f,0x04,0xf0,0x00,0x00,0x00,0x40]270; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]271; GFX10-NEXT:    ; return to shader part epilog272;273; GFX11-LABEL: load_mip_1d:274; GFX11:       ; %bb.0: ; %main_body275; GFX11-NEXT:    image_load_mip v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x80,0x0f,0x05,0xf0,0x00,0x00,0x00,0x00]276; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]277; GFX11-NEXT:    ; return to shader part epilog278;279; GFX12-LABEL: load_mip_1d:280; GFX12:       ; %bb.0: ; %main_body281; GFX12-NEXT:    image_load_mip v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0x40,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]282; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]283; GFX12-NEXT:    ; return to shader part epilog284main_body:285  %s = extractelement <2 x i16> %coords, i32 0286  %mip = extractelement <2 x i16> %coords, i32 1287  %v = call <4 x float> @llvm.amdgcn.image.load.mip.1d.v4f32.i16(i32 15, i16 %s, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)288  ret <4 x float> %v289}290 291define amdgpu_ps <4 x float> @load_mip_2d(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {292; GFX9-LABEL: load_mip_2d:293; GFX9:       ; %bb.0: ; %main_body294; GFX9-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x04,0xf0,0x00,0x00,0x00,0x00]295; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]296; GFX9-NEXT:    ; return to shader part epilog297;298; GFX10-LABEL: load_mip_2d:299; GFX10:       ; %bb.0: ; %main_body300; GFX10-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16 ; encoding: [0x08,0x1f,0x04,0xf0,0x00,0x00,0x00,0x40]301; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]302; GFX10-NEXT:    ; return to shader part epilog303;304; GFX11-LABEL: load_mip_2d:305; GFX11:       ; %bb.0: ; %main_body306; GFX11-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16 ; encoding: [0x84,0x0f,0x05,0xf0,0x00,0x00,0x00,0x00]307; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]308; GFX11-NEXT:    ; return to shader part epilog309;310; GFX12-LABEL: load_mip_2d:311; GFX12:       ; %bb.0: ; %main_body312; GFX12-NEXT:    image_load_mip v[0:3], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x40,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00]313; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]314; GFX12-NEXT:    ; return to shader part epilog315main_body:316  %s = extractelement <2 x i16> %coords_lo, i32 0317  %t = extractelement <2 x i16> %coords_lo, i32 1318  %mip = extractelement <2 x i16> %coords_hi, i32 0319  %v = call <4 x float> @llvm.amdgcn.image.load.mip.2d.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)320  ret <4 x float> %v321}322 323define amdgpu_ps <4 x float> @load_mip_3d(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {324; GFX9-LABEL: load_mip_3d:325; GFX9:       ; %bb.0: ; %main_body326; GFX9-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x04,0xf0,0x00,0x00,0x00,0x00]327; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]328; GFX9-NEXT:    ; return to shader part epilog329;330; GFX10-LABEL: load_mip_3d:331; GFX10:       ; %bb.0: ; %main_body332; GFX10-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16 ; encoding: [0x10,0x1f,0x04,0xf0,0x00,0x00,0x00,0x40]333; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]334; GFX10-NEXT:    ; return to shader part epilog335;336; GFX11-LABEL: load_mip_3d:337; GFX11:       ; %bb.0: ; %main_body338; GFX11-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16 ; encoding: [0x88,0x0f,0x05,0xf0,0x00,0x00,0x00,0x00]339; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]340; GFX11-NEXT:    ; return to shader part epilog341;342; GFX12-LABEL: load_mip_3d:343; GFX12:       ; %bb.0: ; %main_body344; GFX12-NEXT:    image_load_mip v[0:3], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D a16 ; encoding: [0x42,0x40,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00]345; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]346; GFX12-NEXT:    ; return to shader part epilog347main_body:348  %s = extractelement <2 x i16> %coords_lo, i32 0349  %t = extractelement <2 x i16> %coords_lo, i32 1350  %r = extractelement <2 x i16> %coords_hi, i32 0351  %mip = extractelement <2 x i16> %coords_hi, i32 1352  %v = call <4 x float> @llvm.amdgcn.image.load.mip.3d.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %r, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)353  ret <4 x float> %v354}355 356define amdgpu_ps <4 x float> @load_mip_cube(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {357; GFX9-LABEL: load_mip_cube:358; GFX9:       ; %bb.0: ; %main_body359; GFX9-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x04,0xf0,0x00,0x00,0x00,0x00]360; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]361; GFX9-NEXT:    ; return to shader part epilog362;363; GFX10-LABEL: load_mip_cube:364; GFX10:       ; %bb.0: ; %main_body365; GFX10-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16 ; encoding: [0x18,0x1f,0x04,0xf0,0x00,0x00,0x00,0x40]366; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]367; GFX10-NEXT:    ; return to shader part epilog368;369; GFX11-LABEL: load_mip_cube:370; GFX11:       ; %bb.0: ; %main_body371; GFX11-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16 ; encoding: [0x8c,0x0f,0x05,0xf0,0x00,0x00,0x00,0x00]372; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]373; GFX11-NEXT:    ; return to shader part epilog374;375; GFX12-LABEL: load_mip_cube:376; GFX12:       ; %bb.0: ; %main_body377; GFX12-NEXT:    image_load_mip v[0:3], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x40,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00]378; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]379; GFX12-NEXT:    ; return to shader part epilog380main_body:381  %s = extractelement <2 x i16> %coords_lo, i32 0382  %t = extractelement <2 x i16> %coords_lo, i32 1383  %slice = extractelement <2 x i16> %coords_hi, i32 0384  %mip = extractelement <2 x i16> %coords_hi, i32 1385  %v = call <4 x float> @llvm.amdgcn.image.load.mip.cube.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)386  ret <4 x float> %v387}388 389define amdgpu_ps <4 x float> @load_mip_1darray(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {390; GFX9-LABEL: load_mip_1darray:391; GFX9:       ; %bb.0: ; %main_body392; GFX9-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x04,0xf0,0x00,0x00,0x00,0x00]393; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]394; GFX9-NEXT:    ; return to shader part epilog395;396; GFX10-LABEL: load_mip_1darray:397; GFX10:       ; %bb.0: ; %main_body398; GFX10-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16 ; encoding: [0x20,0x1f,0x04,0xf0,0x00,0x00,0x00,0x40]399; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]400; GFX10-NEXT:    ; return to shader part epilog401;402; GFX11-LABEL: load_mip_1darray:403; GFX11:       ; %bb.0: ; %main_body404; GFX11-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16 ; encoding: [0x90,0x0f,0x05,0xf0,0x00,0x00,0x00,0x00]405; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]406; GFX11-NEXT:    ; return to shader part epilog407;408; GFX12-LABEL: load_mip_1darray:409; GFX12:       ; %bb.0: ; %main_body410; GFX12-NEXT:    image_load_mip v[0:3], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY a16 ; encoding: [0x44,0x40,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00]411; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]412; GFX12-NEXT:    ; return to shader part epilog413main_body:414  %s = extractelement <2 x i16> %coords_lo, i32 0415  %slice = extractelement <2 x i16> %coords_lo, i32 1416  %mip = extractelement <2 x i16> %coords_hi, i32 0417  %v = call <4 x float> @llvm.amdgcn.image.load.mip.1darray.v4f32.i16(i32 15, i16 %s, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)418  ret <4 x float> %v419}420 421define amdgpu_ps <4 x float> @load_mip_2darray(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {422; GFX9-LABEL: load_mip_2darray:423; GFX9:       ; %bb.0: ; %main_body424; GFX9-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x04,0xf0,0x00,0x00,0x00,0x00]425; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]426; GFX9-NEXT:    ; return to shader part epilog427;428; GFX10-LABEL: load_mip_2darray:429; GFX10:       ; %bb.0: ; %main_body430; GFX10-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16 ; encoding: [0x28,0x1f,0x04,0xf0,0x00,0x00,0x00,0x40]431; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]432; GFX10-NEXT:    ; return to shader part epilog433;434; GFX11-LABEL: load_mip_2darray:435; GFX11:       ; %bb.0: ; %main_body436; GFX11-NEXT:    image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16 ; encoding: [0x94,0x0f,0x05,0xf0,0x00,0x00,0x00,0x00]437; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]438; GFX11-NEXT:    ; return to shader part epilog439;440; GFX12-LABEL: load_mip_2darray:441; GFX12:       ; %bb.0: ; %main_body442; GFX12-NEXT:    image_load_mip v[0:3], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x40,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00]443; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]444; GFX12-NEXT:    ; return to shader part epilog445main_body:446  %s = extractelement <2 x i16> %coords_lo, i32 0447  %t = extractelement <2 x i16> %coords_lo, i32 1448  %slice = extractelement <2 x i16> %coords_hi, i32 0449  %mip = extractelement <2 x i16> %coords_hi, i32 1450  %v = call <4 x float> @llvm.amdgcn.image.load.mip.2darray.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)451  ret <4 x float> %v452}453 454define amdgpu_ps void @store_1d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {455; GFX9-LABEL: store_1d:456; GFX9:       ; %bb.0: ; %main_body457; GFX9-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x20,0xf0,0x04,0x00,0x00,0x00]458; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]459;460; GFX10-LABEL: store_1d:461; GFX10:       ; %bb.0: ; %main_body462; GFX10-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x00,0x1f,0x20,0xf0,0x04,0x00,0x00,0x40]463; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]464;465; GFX11-LABEL: store_1d:466; GFX11:       ; %bb.0: ; %main_body467; GFX11-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x80,0x0f,0x19,0xf0,0x04,0x00,0x00,0x00]468; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]469;470; GFX12-LABEL: store_1d:471; GFX12:       ; %bb.0: ; %main_body472; GFX12-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00]473; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]474main_body:475  %s = extractelement <2 x i16> %coords, i32 0476  call void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)477  ret void478}479 480define amdgpu_ps void @store_2d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {481; GFX9-LABEL: store_2d:482; GFX9:       ; %bb.0: ; %main_body483; GFX9-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x20,0xf0,0x04,0x00,0x00,0x00]484; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]485;486; GFX10-LABEL: store_2d:487; GFX10:       ; %bb.0: ; %main_body488; GFX10-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16 ; encoding: [0x08,0x1f,0x20,0xf0,0x04,0x00,0x00,0x40]489; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]490;491; GFX11-LABEL: store_2d:492; GFX11:       ; %bb.0: ; %main_body493; GFX11-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16 ; encoding: [0x84,0x0f,0x19,0xf0,0x04,0x00,0x00,0x00]494; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]495;496; GFX12-LABEL: store_2d:497; GFX12:       ; %bb.0: ; %main_body498; GFX12-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00]499; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]500main_body:501  %s = extractelement <2 x i16> %coords, i32 0502  %t = extractelement <2 x i16> %coords, i32 1503  call void @llvm.amdgcn.image.store.2d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, <8 x i32> %rsrc, i32 0, i32 0)504  ret void505}506 507define amdgpu_ps void @store_3d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {508; GFX9-LABEL: store_3d:509; GFX9:       ; %bb.0: ; %main_body510; GFX9-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x20,0xf0,0x04,0x00,0x00,0x00]511; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]512;513; GFX10-LABEL: store_3d:514; GFX10:       ; %bb.0: ; %main_body515; GFX10-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16 ; encoding: [0x10,0x1f,0x20,0xf0,0x04,0x00,0x00,0x40]516; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]517;518; GFX11-LABEL: store_3d:519; GFX11:       ; %bb.0: ; %main_body520; GFX11-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16 ; encoding: [0x88,0x0f,0x19,0xf0,0x04,0x00,0x00,0x00]521; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]522;523; GFX12-LABEL: store_3d:524; GFX12:       ; %bb.0: ; %main_body525; GFX12-NEXT:    image_store v[0:3], [v4, v5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D a16 ; encoding: [0x42,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x00]526; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]527main_body:528  %s = extractelement <2 x i16> %coords_lo, i32 0529  %t = extractelement <2 x i16> %coords_lo, i32 1530  %r = extractelement <2 x i16> %coords_hi, i32 0531  call void @llvm.amdgcn.image.store.3d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %r, <8 x i32> %rsrc, i32 0, i32 0)532  ret void533}534 535define amdgpu_ps void @store_cube(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {536; GFX9-LABEL: store_cube:537; GFX9:       ; %bb.0: ; %main_body538; GFX9-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x20,0xf0,0x04,0x00,0x00,0x00]539; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]540;541; GFX10-LABEL: store_cube:542; GFX10:       ; %bb.0: ; %main_body543; GFX10-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16 ; encoding: [0x18,0x1f,0x20,0xf0,0x04,0x00,0x00,0x40]544; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]545;546; GFX11-LABEL: store_cube:547; GFX11:       ; %bb.0: ; %main_body548; GFX11-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16 ; encoding: [0x8c,0x0f,0x19,0xf0,0x04,0x00,0x00,0x00]549; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]550;551; GFX12-LABEL: store_cube:552; GFX12:       ; %bb.0: ; %main_body553; GFX12-NEXT:    image_store v[0:3], [v4, v5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x00]554; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]555main_body:556  %s = extractelement <2 x i16> %coords_lo, i32 0557  %t = extractelement <2 x i16> %coords_lo, i32 1558  %slice = extractelement <2 x i16> %coords_hi, i32 0559  call void @llvm.amdgcn.image.store.cube.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)560  ret void561}562 563define amdgpu_ps void @store_1darray(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {564; GFX9-LABEL: store_1darray:565; GFX9:       ; %bb.0: ; %main_body566; GFX9-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x20,0xf0,0x04,0x00,0x00,0x00]567; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]568;569; GFX10-LABEL: store_1darray:570; GFX10:       ; %bb.0: ; %main_body571; GFX10-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16 ; encoding: [0x20,0x1f,0x20,0xf0,0x04,0x00,0x00,0x40]572; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]573;574; GFX11-LABEL: store_1darray:575; GFX11:       ; %bb.0: ; %main_body576; GFX11-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16 ; encoding: [0x90,0x0f,0x19,0xf0,0x04,0x00,0x00,0x00]577; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]578;579; GFX12-LABEL: store_1darray:580; GFX12:       ; %bb.0: ; %main_body581; GFX12-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY a16 ; encoding: [0x44,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00]582; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]583main_body:584  %s = extractelement <2 x i16> %coords, i32 0585  %slice = extractelement <2 x i16> %coords, i32 1586  call void @llvm.amdgcn.image.store.1darray.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)587  ret void588}589 590define amdgpu_ps void @store_2darray(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {591; GFX9-LABEL: store_2darray:592; GFX9:       ; %bb.0: ; %main_body593; GFX9-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x20,0xf0,0x04,0x00,0x00,0x00]594; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]595;596; GFX10-LABEL: store_2darray:597; GFX10:       ; %bb.0: ; %main_body598; GFX10-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16 ; encoding: [0x28,0x1f,0x20,0xf0,0x04,0x00,0x00,0x40]599; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]600;601; GFX11-LABEL: store_2darray:602; GFX11:       ; %bb.0: ; %main_body603; GFX11-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16 ; encoding: [0x94,0x0f,0x19,0xf0,0x04,0x00,0x00,0x00]604; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]605;606; GFX12-LABEL: store_2darray:607; GFX12:       ; %bb.0: ; %main_body608; GFX12-NEXT:    image_store v[0:3], [v4, v5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x00]609; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]610main_body:611  %s = extractelement <2 x i16> %coords_lo, i32 0612  %t = extractelement <2 x i16> %coords_lo, i32 1613  %slice = extractelement <2 x i16> %coords_hi, i32 0614  call void @llvm.amdgcn.image.store.2darray.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)615  ret void616}617 618define amdgpu_ps void @store_2dmsaa(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {619; GFX9-LABEL: store_2dmsaa:620; GFX9:       ; %bb.0: ; %main_body621; GFX9-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x20,0xf0,0x04,0x00,0x00,0x00]622; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]623;624; GFX10-LABEL: store_2dmsaa:625; GFX10:       ; %bb.0: ; %main_body626; GFX10-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16 ; encoding: [0x30,0x1f,0x20,0xf0,0x04,0x00,0x00,0x40]627; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]628;629; GFX11-LABEL: store_2dmsaa:630; GFX11:       ; %bb.0: ; %main_body631; GFX11-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16 ; encoding: [0x98,0x0f,0x19,0xf0,0x04,0x00,0x00,0x00]632; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]633;634; GFX12-LABEL: store_2dmsaa:635; GFX12:       ; %bb.0: ; %main_body636; GFX12-NEXT:    image_store v[0:3], [v4, v5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA a16 ; encoding: [0x46,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x00]637; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]638main_body:639  %s = extractelement <2 x i16> %coords_lo, i32 0640  %t = extractelement <2 x i16> %coords_lo, i32 1641  %fragid = extractelement <2 x i16> %coords_hi, i32 0642  call void @llvm.amdgcn.image.store.2dmsaa.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %fragid, <8 x i32> %rsrc, i32 0, i32 0)643  ret void644}645 646define amdgpu_ps void @store_2darraymsaa(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {647; GFX9-LABEL: store_2darraymsaa:648; GFX9:       ; %bb.0: ; %main_body649; GFX9-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x20,0xf0,0x04,0x00,0x00,0x00]650; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]651;652; GFX10-LABEL: store_2darraymsaa:653; GFX10:       ; %bb.0: ; %main_body654; GFX10-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16 ; encoding: [0x38,0x1f,0x20,0xf0,0x04,0x00,0x00,0x40]655; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]656;657; GFX11-LABEL: store_2darraymsaa:658; GFX11:       ; %bb.0: ; %main_body659; GFX11-NEXT:    image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16 ; encoding: [0x9c,0x0f,0x19,0xf0,0x04,0x00,0x00,0x00]660; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]661;662; GFX12-LABEL: store_2darraymsaa:663; GFX12:       ; %bb.0: ; %main_body664; GFX12-NEXT:    image_store v[0:3], [v4, v5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY a16 ; encoding: [0x47,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x00]665; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]666main_body:667  %s = extractelement <2 x i16> %coords_lo, i32 0668  %t = extractelement <2 x i16> %coords_lo, i32 1669  %slice = extractelement <2 x i16> %coords_hi, i32 0670  %fragid = extractelement <2 x i16> %coords_hi, i32 1671  call void @llvm.amdgcn.image.store.2darraymsaa.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, i16 %fragid, <8 x i32> %rsrc, i32 0, i32 0)672  ret void673}674 675define amdgpu_ps void @store_mip_1d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {676; GFX9-LABEL: store_mip_1d:677; GFX9:       ; %bb.0: ; %main_body678; GFX9-NEXT:    image_store_mip v[0:3], v4, s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x24,0xf0,0x04,0x00,0x00,0x00]679; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]680;681; GFX10-LABEL: store_mip_1d:682; GFX10:       ; %bb.0: ; %main_body683; GFX10-NEXT:    image_store_mip v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x00,0x1f,0x24,0xf0,0x04,0x00,0x00,0x40]684; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]685;686; GFX11-LABEL: store_mip_1d:687; GFX11:       ; %bb.0: ; %main_body688; GFX11-NEXT:    image_store_mip v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x80,0x0f,0x1d,0xf0,0x04,0x00,0x00,0x00]689; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]690;691; GFX12-LABEL: store_mip_1d:692; GFX12:       ; %bb.0: ; %main_body693; GFX12-NEXT:    image_store_mip v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0xc0,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00]694; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]695main_body:696  %s = extractelement <2 x i16> %coords, i32 0697  %mip = extractelement <2 x i16> %coords, i32 1698  call void @llvm.amdgcn.image.store.mip.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)699  ret void700}701 702define amdgpu_ps void @store_mip_2d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {703; GFX9-LABEL: store_mip_2d:704; GFX9:       ; %bb.0: ; %main_body705; GFX9-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x24,0xf0,0x04,0x00,0x00,0x00]706; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]707;708; GFX10-LABEL: store_mip_2d:709; GFX10:       ; %bb.0: ; %main_body710; GFX10-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16 ; encoding: [0x08,0x1f,0x24,0xf0,0x04,0x00,0x00,0x40]711; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]712;713; GFX11-LABEL: store_mip_2d:714; GFX11:       ; %bb.0: ; %main_body715; GFX11-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16 ; encoding: [0x84,0x0f,0x1d,0xf0,0x04,0x00,0x00,0x00]716; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]717;718; GFX12-LABEL: store_mip_2d:719; GFX12:       ; %bb.0: ; %main_body720; GFX12-NEXT:    image_store_mip v[0:3], [v4, v5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0xc0,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x00]721; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]722main_body:723  %s = extractelement <2 x i16> %coords_lo, i32 0724  %t = extractelement <2 x i16> %coords_lo, i32 1725  %mip = extractelement <2 x i16> %coords_hi, i32 0726  call void @llvm.amdgcn.image.store.mip.2d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)727  ret void728}729 730define amdgpu_ps void @store_mip_3d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {731; GFX9-LABEL: store_mip_3d:732; GFX9:       ; %bb.0: ; %main_body733; GFX9-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x24,0xf0,0x04,0x00,0x00,0x00]734; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]735;736; GFX10-LABEL: store_mip_3d:737; GFX10:       ; %bb.0: ; %main_body738; GFX10-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16 ; encoding: [0x10,0x1f,0x24,0xf0,0x04,0x00,0x00,0x40]739; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]740;741; GFX11-LABEL: store_mip_3d:742; GFX11:       ; %bb.0: ; %main_body743; GFX11-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16 ; encoding: [0x88,0x0f,0x1d,0xf0,0x04,0x00,0x00,0x00]744; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]745;746; GFX12-LABEL: store_mip_3d:747; GFX12:       ; %bb.0: ; %main_body748; GFX12-NEXT:    image_store_mip v[0:3], [v4, v5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D a16 ; encoding: [0x42,0xc0,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x00]749; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]750main_body:751  %s = extractelement <2 x i16> %coords_lo, i32 0752  %t = extractelement <2 x i16> %coords_lo, i32 1753  %r = extractelement <2 x i16> %coords_hi, i32 0754  %mip = extractelement <2 x i16> %coords_hi, i32 1755  call void @llvm.amdgcn.image.store.mip.3d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %r, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)756  ret void757}758 759define amdgpu_ps void @store_mip_cube(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {760; GFX9-LABEL: store_mip_cube:761; GFX9:       ; %bb.0: ; %main_body762; GFX9-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x24,0xf0,0x04,0x00,0x00,0x00]763; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]764;765; GFX10-LABEL: store_mip_cube:766; GFX10:       ; %bb.0: ; %main_body767; GFX10-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16 ; encoding: [0x18,0x1f,0x24,0xf0,0x04,0x00,0x00,0x40]768; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]769;770; GFX11-LABEL: store_mip_cube:771; GFX11:       ; %bb.0: ; %main_body772; GFX11-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16 ; encoding: [0x8c,0x0f,0x1d,0xf0,0x04,0x00,0x00,0x00]773; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]774;775; GFX12-LABEL: store_mip_cube:776; GFX12:       ; %bb.0: ; %main_body777; GFX12-NEXT:    image_store_mip v[0:3], [v4, v5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0xc0,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x00]778; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]779main_body:780  %s = extractelement <2 x i16> %coords_lo, i32 0781  %t = extractelement <2 x i16> %coords_lo, i32 1782  %slice = extractelement <2 x i16> %coords_hi, i32 0783  %mip = extractelement <2 x i16> %coords_hi, i32 1784  call void @llvm.amdgcn.image.store.mip.cube.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)785  ret void786}787 788define amdgpu_ps void @store_mip_1darray(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {789; GFX9-LABEL: store_mip_1darray:790; GFX9:       ; %bb.0: ; %main_body791; GFX9-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x24,0xf0,0x04,0x00,0x00,0x00]792; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]793;794; GFX10-LABEL: store_mip_1darray:795; GFX10:       ; %bb.0: ; %main_body796; GFX10-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16 ; encoding: [0x20,0x1f,0x24,0xf0,0x04,0x00,0x00,0x40]797; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]798;799; GFX11-LABEL: store_mip_1darray:800; GFX11:       ; %bb.0: ; %main_body801; GFX11-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16 ; encoding: [0x90,0x0f,0x1d,0xf0,0x04,0x00,0x00,0x00]802; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]803;804; GFX12-LABEL: store_mip_1darray:805; GFX12:       ; %bb.0: ; %main_body806; GFX12-NEXT:    image_store_mip v[0:3], [v4, v5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY a16 ; encoding: [0x44,0xc0,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x00]807; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]808main_body:809  %s = extractelement <2 x i16> %coords_lo, i32 0810  %slice = extractelement <2 x i16> %coords_lo, i32 1811  %mip = extractelement <2 x i16> %coords_hi, i32 0812  call void @llvm.amdgcn.image.store.mip.1darray.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)813  ret void814}815 816define amdgpu_ps void @store_mip_2darray(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {817; GFX9-LABEL: store_mip_2darray:818; GFX9:       ; %bb.0: ; %main_body819; GFX9-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x24,0xf0,0x04,0x00,0x00,0x00]820; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]821;822; GFX10-LABEL: store_mip_2darray:823; GFX10:       ; %bb.0: ; %main_body824; GFX10-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16 ; encoding: [0x28,0x1f,0x24,0xf0,0x04,0x00,0x00,0x40]825; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]826;827; GFX11-LABEL: store_mip_2darray:828; GFX11:       ; %bb.0: ; %main_body829; GFX11-NEXT:    image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16 ; encoding: [0x94,0x0f,0x1d,0xf0,0x04,0x00,0x00,0x00]830; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]831;832; GFX12-LABEL: store_mip_2darray:833; GFX12:       ; %bb.0: ; %main_body834; GFX12-NEXT:    image_store_mip v[0:3], [v4, v5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0xc0,0xc1,0xd3,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x00]835; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]836main_body:837  %s = extractelement <2 x i16> %coords_lo, i32 0838  %t = extractelement <2 x i16> %coords_lo, i32 1839  %slice = extractelement <2 x i16> %coords_hi, i32 0840  %mip = extractelement <2 x i16> %coords_hi, i32 1841  call void @llvm.amdgcn.image.store.mip.2darray.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)842  ret void843}844 845define amdgpu_ps <4 x float> @getresinfo_1d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {846; GFX9-LABEL: getresinfo_1d:847; GFX9:       ; %bb.0: ; %main_body848; GFX9-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x38,0xf0,0x00,0x00,0x00,0x00]849; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]850; GFX9-NEXT:    ; return to shader part epilog851;852; GFX10-LABEL: getresinfo_1d:853; GFX10:       ; %bb.0: ; %main_body854; GFX10-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x00,0x1f,0x38,0xf0,0x00,0x00,0x00,0x40]855; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]856; GFX10-NEXT:    ; return to shader part epilog857;858; GFX11-LABEL: getresinfo_1d:859; GFX11:       ; %bb.0: ; %main_body860; GFX11-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x80,0x0f,0x5d,0xf0,0x00,0x00,0x00,0x00]861; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]862; GFX11-NEXT:    ; return to shader part epilog863;864; GFX12-LABEL: getresinfo_1d:865; GFX12:       ; %bb.0: ; %main_body866; GFX12-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0xc0,0xc5,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]867; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]868; GFX12-NEXT:    ; return to shader part epilog869main_body:870  %mip = extractelement <2 x i16> %coords, i32 0871  %v = call <4 x float> @llvm.amdgcn.image.getresinfo.1d.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)872  ret <4 x float> %v873}874 875define amdgpu_ps <4 x float> @getresinfo_2d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {876; GFX9-LABEL: getresinfo_2d:877; GFX9:       ; %bb.0: ; %main_body878; GFX9-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x38,0xf0,0x00,0x00,0x00,0x00]879; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]880; GFX9-NEXT:    ; return to shader part epilog881;882; GFX10-LABEL: getresinfo_2d:883; GFX10:       ; %bb.0: ; %main_body884; GFX10-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16 ; encoding: [0x08,0x1f,0x38,0xf0,0x00,0x00,0x00,0x40]885; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]886; GFX10-NEXT:    ; return to shader part epilog887;888; GFX11-LABEL: getresinfo_2d:889; GFX11:       ; %bb.0: ; %main_body890; GFX11-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16 ; encoding: [0x84,0x0f,0x5d,0xf0,0x00,0x00,0x00,0x00]891; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]892; GFX11-NEXT:    ; return to shader part epilog893;894; GFX12-LABEL: getresinfo_2d:895; GFX12:       ; %bb.0: ; %main_body896; GFX12-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0xc0,0xc5,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]897; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]898; GFX12-NEXT:    ; return to shader part epilog899main_body:900  %mip = extractelement <2 x i16> %coords, i32 0901  %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2d.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)902  ret <4 x float> %v903}904 905define amdgpu_ps <4 x float> @getresinfo_3d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {906; GFX9-LABEL: getresinfo_3d:907; GFX9:       ; %bb.0: ; %main_body908; GFX9-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x38,0xf0,0x00,0x00,0x00,0x00]909; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]910; GFX9-NEXT:    ; return to shader part epilog911;912; GFX10-LABEL: getresinfo_3d:913; GFX10:       ; %bb.0: ; %main_body914; GFX10-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16 ; encoding: [0x10,0x1f,0x38,0xf0,0x00,0x00,0x00,0x40]915; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]916; GFX10-NEXT:    ; return to shader part epilog917;918; GFX11-LABEL: getresinfo_3d:919; GFX11:       ; %bb.0: ; %main_body920; GFX11-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16 ; encoding: [0x88,0x0f,0x5d,0xf0,0x00,0x00,0x00,0x00]921; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]922; GFX11-NEXT:    ; return to shader part epilog923;924; GFX12-LABEL: getresinfo_3d:925; GFX12:       ; %bb.0: ; %main_body926; GFX12-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D a16 ; encoding: [0x42,0xc0,0xc5,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]927; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]928; GFX12-NEXT:    ; return to shader part epilog929main_body:930  %mip = extractelement <2 x i16> %coords, i32 0931  %v = call <4 x float> @llvm.amdgcn.image.getresinfo.3d.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)932  ret <4 x float> %v933}934 935define amdgpu_ps <4 x float> @getresinfo_cube(<8 x i32> inreg %rsrc, <2 x i16> %coords) {936; GFX9-LABEL: getresinfo_cube:937; GFX9:       ; %bb.0: ; %main_body938; GFX9-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x38,0xf0,0x00,0x00,0x00,0x00]939; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]940; GFX9-NEXT:    ; return to shader part epilog941;942; GFX10-LABEL: getresinfo_cube:943; GFX10:       ; %bb.0: ; %main_body944; GFX10-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16 ; encoding: [0x18,0x1f,0x38,0xf0,0x00,0x00,0x00,0x40]945; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]946; GFX10-NEXT:    ; return to shader part epilog947;948; GFX11-LABEL: getresinfo_cube:949; GFX11:       ; %bb.0: ; %main_body950; GFX11-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16 ; encoding: [0x8c,0x0f,0x5d,0xf0,0x00,0x00,0x00,0x00]951; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]952; GFX11-NEXT:    ; return to shader part epilog953;954; GFX12-LABEL: getresinfo_cube:955; GFX12:       ; %bb.0: ; %main_body956; GFX12-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0xc0,0xc5,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]957; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]958; GFX12-NEXT:    ; return to shader part epilog959main_body:960  %mip = extractelement <2 x i16> %coords, i32 0961  %v = call <4 x float> @llvm.amdgcn.image.getresinfo.cube.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)962  ret <4 x float> %v963}964 965define amdgpu_ps <4 x float> @getresinfo_1darray(<8 x i32> inreg %rsrc, <2 x i16> %coords) {966; GFX9-LABEL: getresinfo_1darray:967; GFX9:       ; %bb.0: ; %main_body968; GFX9-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x38,0xf0,0x00,0x00,0x00,0x00]969; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]970; GFX9-NEXT:    ; return to shader part epilog971;972; GFX10-LABEL: getresinfo_1darray:973; GFX10:       ; %bb.0: ; %main_body974; GFX10-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16 ; encoding: [0x20,0x1f,0x38,0xf0,0x00,0x00,0x00,0x40]975; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]976; GFX10-NEXT:    ; return to shader part epilog977;978; GFX11-LABEL: getresinfo_1darray:979; GFX11:       ; %bb.0: ; %main_body980; GFX11-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16 ; encoding: [0x90,0x0f,0x5d,0xf0,0x00,0x00,0x00,0x00]981; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]982; GFX11-NEXT:    ; return to shader part epilog983;984; GFX12-LABEL: getresinfo_1darray:985; GFX12:       ; %bb.0: ; %main_body986; GFX12-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY a16 ; encoding: [0x44,0xc0,0xc5,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]987; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]988; GFX12-NEXT:    ; return to shader part epilog989main_body:990  %mip = extractelement <2 x i16> %coords, i32 0991  %v = call <4 x float> @llvm.amdgcn.image.getresinfo.1darray.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)992  ret <4 x float> %v993}994 995define amdgpu_ps <4 x float> @getresinfo_2darray(<8 x i32> inreg %rsrc, <2 x i16> %coords) {996; GFX9-LABEL: getresinfo_2darray:997; GFX9:       ; %bb.0: ; %main_body998; GFX9-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x38,0xf0,0x00,0x00,0x00,0x00]999; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]1000; GFX9-NEXT:    ; return to shader part epilog1001;1002; GFX10-LABEL: getresinfo_2darray:1003; GFX10:       ; %bb.0: ; %main_body1004; GFX10-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16 ; encoding: [0x28,0x1f,0x38,0xf0,0x00,0x00,0x00,0x40]1005; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]1006; GFX10-NEXT:    ; return to shader part epilog1007;1008; GFX11-LABEL: getresinfo_2darray:1009; GFX11:       ; %bb.0: ; %main_body1010; GFX11-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16 ; encoding: [0x94,0x0f,0x5d,0xf0,0x00,0x00,0x00,0x00]1011; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]1012; GFX11-NEXT:    ; return to shader part epilog1013;1014; GFX12-LABEL: getresinfo_2darray:1015; GFX12:       ; %bb.0: ; %main_body1016; GFX12-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0xc0,0xc5,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]1017; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]1018; GFX12-NEXT:    ; return to shader part epilog1019main_body:1020  %mip = extractelement <2 x i16> %coords, i32 01021  %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2darray.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)1022  ret <4 x float> %v1023}1024 1025define amdgpu_ps <4 x float> @getresinfo_2dmsaa(<8 x i32> inreg %rsrc, <2 x i16> %coords) {1026; GFX9-LABEL: getresinfo_2dmsaa:1027; GFX9:       ; %bb.0: ; %main_body1028; GFX9-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 ; encoding: [0x00,0x9f,0x38,0xf0,0x00,0x00,0x00,0x00]1029; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]1030; GFX9-NEXT:    ; return to shader part epilog1031;1032; GFX10-LABEL: getresinfo_2dmsaa:1033; GFX10:       ; %bb.0: ; %main_body1034; GFX10-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16 ; encoding: [0x30,0x1f,0x38,0xf0,0x00,0x00,0x00,0x40]1035; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]1036; GFX10-NEXT:    ; return to shader part epilog1037;1038; GFX11-LABEL: getresinfo_2dmsaa:1039; GFX11:       ; %bb.0: ; %main_body1040; GFX11-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16 ; encoding: [0x98,0x0f,0x5d,0xf0,0x00,0x00,0x00,0x00]1041; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]1042; GFX11-NEXT:    ; return to shader part epilog1043;1044; GFX12-LABEL: getresinfo_2dmsaa:1045; GFX12:       ; %bb.0: ; %main_body1046; GFX12-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA a16 ; encoding: [0x46,0xc0,0xc5,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]1047; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]1048; GFX12-NEXT:    ; return to shader part epilog1049main_body:1050  %mip = extractelement <2 x i16> %coords, i32 01051  %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2dmsaa.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)1052  ret <4 x float> %v1053}1054 1055define amdgpu_ps <4 x float> @getresinfo_2darraymsaa(<8 x i32> inreg %rsrc, <2 x i16> %coords) {1056; GFX9-LABEL: getresinfo_2darraymsaa:1057; GFX9:       ; %bb.0: ; %main_body1058; GFX9-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da ; encoding: [0x00,0xdf,0x38,0xf0,0x00,0x00,0x00,0x00]1059; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]1060; GFX9-NEXT:    ; return to shader part epilog1061;1062; GFX10-LABEL: getresinfo_2darraymsaa:1063; GFX10:       ; %bb.0: ; %main_body1064; GFX10-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16 ; encoding: [0x38,0x1f,0x38,0xf0,0x00,0x00,0x00,0x40]1065; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]1066; GFX10-NEXT:    ; return to shader part epilog1067;1068; GFX11-LABEL: getresinfo_2darraymsaa:1069; GFX11:       ; %bb.0: ; %main_body1070; GFX11-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16 ; encoding: [0x9c,0x0f,0x5d,0xf0,0x00,0x00,0x00,0x00]1071; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]1072; GFX11-NEXT:    ; return to shader part epilog1073;1074; GFX12-LABEL: getresinfo_2darraymsaa:1075; GFX12:       ; %bb.0: ; %main_body1076; GFX12-NEXT:    image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY a16 ; encoding: [0x47,0xc0,0xc5,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]1077; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]1078; GFX12-NEXT:    ; return to shader part epilog1079main_body:1080  %mip = extractelement <2 x i16> %coords, i32 01081  %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2darraymsaa.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)1082  ret <4 x float> %v1083}1084 1085define amdgpu_ps float @load_1d_V1(<8 x i32> inreg %rsrc, <2 x i16> %coords) {1086; GFX9-LABEL: load_1d_V1:1087; GFX9:       ; %bb.0: ; %main_body1088; GFX9-NEXT:    image_load v0, v0, s[0:7] dmask:0x8 unorm a16 ; encoding: [0x00,0x98,0x00,0xf0,0x00,0x00,0x00,0x00]1089; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]1090; GFX9-NEXT:    ; return to shader part epilog1091;1092; GFX10-LABEL: load_1d_V1:1093; GFX10:       ; %bb.0: ; %main_body1094; GFX10-NEXT:    image_load v0, v0, s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x00,0x18,0x00,0xf0,0x00,0x00,0x00,0x40]1095; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]1096; GFX10-NEXT:    ; return to shader part epilog1097;1098; GFX11-LABEL: load_1d_V1:1099; GFX11:       ; %bb.0: ; %main_body1100; GFX11-NEXT:    image_load v0, v0, s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x80,0x08,0x01,0xf0,0x00,0x00,0x00,0x00]1101; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]1102; GFX11-NEXT:    ; return to shader part epilog1103;1104; GFX12-LABEL: load_1d_V1:1105; GFX12:       ; %bb.0: ; %main_body1106; GFX12-NEXT:    image_load v0, v0, s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0x00,0x00,0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]1107; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]1108; GFX12-NEXT:    ; return to shader part epilog1109main_body:1110  %s = extractelement <2 x i16> %coords, i32 01111  %v = call float @llvm.amdgcn.image.load.1d.f32.i16(i32 8, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)1112  ret float %v1113}1114 1115define amdgpu_ps <2 x float> @load_1d_V2(<8 x i32> inreg %rsrc, <2 x i16> %coords) {1116; GFX9-LABEL: load_1d_V2:1117; GFX9:       ; %bb.0: ; %main_body1118; GFX9-NEXT:    image_load v[0:1], v0, s[0:7] dmask:0x9 unorm a16 ; encoding: [0x00,0x99,0x00,0xf0,0x00,0x00,0x00,0x00]1119; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]1120; GFX9-NEXT:    ; return to shader part epilog1121;1122; GFX10-LABEL: load_1d_V2:1123; GFX10:       ; %bb.0: ; %main_body1124; GFX10-NEXT:    image_load v[0:1], v0, s[0:7] dmask:0x9 dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x00,0x19,0x00,0xf0,0x00,0x00,0x00,0x40]1125; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]1126; GFX10-NEXT:    ; return to shader part epilog1127;1128; GFX11-LABEL: load_1d_V2:1129; GFX11:       ; %bb.0: ; %main_body1130; GFX11-NEXT:    image_load v[0:1], v0, s[0:7] dmask:0x9 dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x80,0x09,0x01,0xf0,0x00,0x00,0x00,0x00]1131; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]1132; GFX11-NEXT:    ; return to shader part epilog1133;1134; GFX12-LABEL: load_1d_V2:1135; GFX12:       ; %bb.0: ; %main_body1136; GFX12-NEXT:    image_load v[0:1], v0, s[0:7] dmask:0x9 dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0x00,0x40,0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]1137; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]1138; GFX12-NEXT:    ; return to shader part epilog1139main_body:1140  %s = extractelement <2 x i16> %coords, i32 01141  %v = call <2 x float> @llvm.amdgcn.image.load.1d.v2f32.i16(i32 9, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)1142  ret <2 x float> %v1143}1144 1145define amdgpu_ps void @store_1d_V1(<8 x i32> inreg %rsrc, float %vdata, <2 x i16> %coords) {1146; GFX9-LABEL: store_1d_V1:1147; GFX9:       ; %bb.0: ; %main_body1148; GFX9-NEXT:    image_store v0, v1, s[0:7] dmask:0x2 unorm a16 ; encoding: [0x00,0x92,0x20,0xf0,0x01,0x00,0x00,0x00]1149; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]1150;1151; GFX10-LABEL: store_1d_V1:1152; GFX10:       ; %bb.0: ; %main_body1153; GFX10-NEXT:    image_store v0, v1, s[0:7] dmask:0x2 dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x00,0x12,0x20,0xf0,0x01,0x00,0x00,0x40]1154; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]1155;1156; GFX11-LABEL: store_1d_V1:1157; GFX11:       ; %bb.0: ; %main_body1158; GFX11-NEXT:    image_store v0, v1, s[0:7] dmask:0x2 dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x80,0x02,0x19,0xf0,0x01,0x00,0x00,0x00]1159; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]1160;1161; GFX12-LABEL: store_1d_V1:1162; GFX12:       ; %bb.0: ; %main_body1163; GFX12-NEXT:    image_store v0, v1, s[0:7] dmask:0x2 dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0x80,0x81,0xd0,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]1164; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]1165main_body:1166  %s = extractelement <2 x i16> %coords, i32 01167  call void @llvm.amdgcn.image.store.1d.f32.i16(float %vdata, i32 2, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)1168  ret void1169}1170 1171define amdgpu_ps void @store_1d_V2(<8 x i32> inreg %rsrc, <2 x float> %vdata, <2 x i16> %coords) {1172; GFX9-LABEL: store_1d_V2:1173; GFX9:       ; %bb.0: ; %main_body1174; GFX9-NEXT:    image_store v[0:1], v2, s[0:7] dmask:0xc unorm a16 ; encoding: [0x00,0x9c,0x20,0xf0,0x02,0x00,0x00,0x00]1175; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]1176;1177; GFX10-LABEL: store_1d_V2:1178; GFX10:       ; %bb.0: ; %main_body1179; GFX10-NEXT:    image_store v[0:1], v2, s[0:7] dmask:0xc dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x00,0x1c,0x20,0xf0,0x02,0x00,0x00,0x40]1180; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]1181;1182; GFX11-LABEL: store_1d_V2:1183; GFX11:       ; %bb.0: ; %main_body1184; GFX11-NEXT:    image_store v[0:1], v2, s[0:7] dmask:0xc dim:SQ_RSRC_IMG_1D unorm a16 ; encoding: [0x80,0x0c,0x19,0xf0,0x02,0x00,0x00,0x00]1185; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]1186;1187; GFX12-LABEL: store_1d_V2:1188; GFX12:       ; %bb.0: ; %main_body1189; GFX12-NEXT:    image_store v[0:1], v2, s[0:7] dmask:0xc dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0x80,0x01,0xd3,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00]1190; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]1191main_body:1192  %s = extractelement <2 x i16> %coords, i32 01193  call void @llvm.amdgcn.image.store.1d.v2f32.i16(<2 x float> %vdata, i32 12, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)1194  ret void1195}1196 1197define amdgpu_ps <4 x float> @load_1d_glc(<8 x i32> inreg %rsrc, <2 x i16> %coords) {1198; GFX9-LABEL: load_1d_glc:1199; GFX9:       ; %bb.0: ; %main_body1200; GFX9-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf unorm glc a16 ; encoding: [0x00,0xbf,0x00,0xf0,0x00,0x00,0x00,0x00]1201; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]1202; GFX9-NEXT:    ; return to shader part epilog1203;1204; GFX10-LABEL: load_1d_glc:1205; GFX10:       ; %bb.0: ; %main_body1206; GFX10-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc a16 ; encoding: [0x00,0x3f,0x00,0xf0,0x00,0x00,0x00,0x40]1207; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]1208; GFX10-NEXT:    ; return to shader part epilog1209;1210; GFX11-LABEL: load_1d_glc:1211; GFX11:       ; %bb.0: ; %main_body1212; GFX11-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc a16 ; encoding: [0x80,0x4f,0x01,0xf0,0x00,0x00,0x00,0x00]1213; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]1214; GFX11-NEXT:    ; return to shader part epilog1215;1216; GFX12-LABEL: load_1d_glc:1217; GFX12:       ; %bb.0: ; %main_body1218; GFX12-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT a16 ; encoding: [0x40,0x00,0xc0,0xd3,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00]1219; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]1220; GFX12-NEXT:    ; return to shader part epilog1221main_body:1222  %s = extractelement <2 x i16> %coords, i32 01223  %v = call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 1)1224  ret <4 x float> %v1225}1226 1227define amdgpu_ps <4 x float> @load_1d_slc(<8 x i32> inreg %rsrc, <2 x i16> %coords) {1228; GFX9-LABEL: load_1d_slc:1229; GFX9:       ; %bb.0: ; %main_body1230; GFX9-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf unorm slc a16 ; encoding: [0x00,0x9f,0x00,0xf2,0x00,0x00,0x00,0x00]1231; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]1232; GFX9-NEXT:    ; return to shader part epilog1233;1234; GFX10-LABEL: load_1d_slc:1235; GFX10:       ; %bb.0: ; %main_body1236; GFX10-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm slc a16 ; encoding: [0x00,0x1f,0x00,0xf2,0x00,0x00,0x00,0x40]1237; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]1238; GFX10-NEXT:    ; return to shader part epilog1239;1240; GFX11-LABEL: load_1d_slc:1241; GFX11:       ; %bb.0: ; %main_body1242; GFX11-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm slc a16 ; encoding: [0x80,0x1f,0x01,0xf0,0x00,0x00,0x00,0x00]1243; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]1244; GFX11-NEXT:    ; return to shader part epilog1245;1246; GFX12-LABEL: load_1d_slc:1247; GFX12:       ; %bb.0: ; %main_body1248; GFX12-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D th:TH_LOAD_HT a16 ; encoding: [0x40,0x00,0xc0,0xd3,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]1249; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]1250; GFX12-NEXT:    ; return to shader part epilog1251main_body:1252  %s = extractelement <2 x i16> %coords, i32 01253  %v = call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 2)1254  ret <4 x float> %v1255}1256 1257define amdgpu_ps <4 x float> @load_1d_glc_slc(<8 x i32> inreg %rsrc, <2 x i16> %coords) {1258; GFX9-LABEL: load_1d_glc_slc:1259; GFX9:       ; %bb.0: ; %main_body1260; GFX9-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf unorm glc slc a16 ; encoding: [0x00,0xbf,0x00,0xf2,0x00,0x00,0x00,0x00]1261; GFX9-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x0f,0x8c,0xbf]1262; GFX9-NEXT:    ; return to shader part epilog1263;1264; GFX10-LABEL: load_1d_glc_slc:1265; GFX10:       ; %bb.0: ; %main_body1266; GFX10-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc slc a16 ; encoding: [0x00,0x3f,0x00,0xf2,0x00,0x00,0x00,0x40]1267; GFX10-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0x70,0x3f,0x8c,0xbf]1268; GFX10-NEXT:    ; return to shader part epilog1269;1270; GFX11-LABEL: load_1d_glc_slc:1271; GFX11:       ; %bb.0: ; %main_body1272; GFX11-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc slc a16 ; encoding: [0x80,0x5f,0x01,0xf0,0x00,0x00,0x00,0x00]1273; GFX11-NEXT:    s_waitcnt vmcnt(0) ; encoding: [0xf7,0x03,0x89,0xbf]1274; GFX11-NEXT:    ; return to shader part epilog1275;1276; GFX12-LABEL: load_1d_glc_slc:1277; GFX12:       ; %bb.0: ; %main_body1278; GFX12-NEXT:    image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D th:TH_LOAD_LU a16 ; encoding: [0x40,0x00,0xc0,0xd3,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00]1279; GFX12-NEXT:    s_wait_loadcnt 0x0 ; encoding: [0x00,0x00,0xc0,0xbf]1280; GFX12-NEXT:    ; return to shader part epilog1281main_body:1282  %s = extractelement <2 x i16> %coords, i32 01283  %v = call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 3)1284  ret <4 x float> %v1285}1286 1287define amdgpu_ps void @store_1d_glc(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {1288; GFX9-LABEL: store_1d_glc:1289; GFX9:       ; %bb.0: ; %main_body1290; GFX9-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf unorm glc a16 ; encoding: [0x00,0xbf,0x20,0xf0,0x04,0x00,0x00,0x00]1291; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]1292;1293; GFX10-LABEL: store_1d_glc:1294; GFX10:       ; %bb.0: ; %main_body1295; GFX10-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc a16 ; encoding: [0x00,0x3f,0x20,0xf0,0x04,0x00,0x00,0x40]1296; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]1297;1298; GFX11-LABEL: store_1d_glc:1299; GFX11:       ; %bb.0: ; %main_body1300; GFX11-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc a16 ; encoding: [0x80,0x4f,0x19,0xf0,0x04,0x00,0x00,0x00]1301; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]1302;1303; GFX12-LABEL: store_1d_glc:1304; GFX12:       ; %bb.0: ; %main_body1305; GFX12-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D th:TH_STORE_NT a16 ; encoding: [0x40,0x80,0xc1,0xd3,0x00,0x00,0x10,0x00,0x04,0x00,0x00,0x00]1306; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]1307main_body:1308  %s = extractelement <2 x i16> %coords, i32 01309  call void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 1)1310  ret void1311}1312 1313define amdgpu_ps void @store_1d_slc(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {1314; GFX9-LABEL: store_1d_slc:1315; GFX9:       ; %bb.0: ; %main_body1316; GFX9-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf unorm slc a16 ; encoding: [0x00,0x9f,0x20,0xf2,0x04,0x00,0x00,0x00]1317; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]1318;1319; GFX10-LABEL: store_1d_slc:1320; GFX10:       ; %bb.0: ; %main_body1321; GFX10-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm slc a16 ; encoding: [0x00,0x1f,0x20,0xf2,0x04,0x00,0x00,0x40]1322; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]1323;1324; GFX11-LABEL: store_1d_slc:1325; GFX11:       ; %bb.0: ; %main_body1326; GFX11-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm slc a16 ; encoding: [0x80,0x1f,0x19,0xf0,0x04,0x00,0x00,0x00]1327; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]1328;1329; GFX12-LABEL: store_1d_slc:1330; GFX12:       ; %bb.0: ; %main_body1331; GFX12-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D th:TH_STORE_HT a16 ; encoding: [0x40,0x80,0xc1,0xd3,0x00,0x00,0x20,0x00,0x04,0x00,0x00,0x00]1332; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]1333main_body:1334  %s = extractelement <2 x i16> %coords, i32 01335  call void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 2)1336  ret void1337}1338 1339define amdgpu_ps void @store_1d_glc_slc(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {1340; GFX9-LABEL: store_1d_glc_slc:1341; GFX9:       ; %bb.0: ; %main_body1342; GFX9-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf unorm glc slc a16 ; encoding: [0x00,0xbf,0x20,0xf2,0x04,0x00,0x00,0x00]1343; GFX9-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]1344;1345; GFX10-LABEL: store_1d_glc_slc:1346; GFX10:       ; %bb.0: ; %main_body1347; GFX10-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc slc a16 ; encoding: [0x00,0x3f,0x20,0xf2,0x04,0x00,0x00,0x40]1348; GFX10-NEXT:    s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]1349;1350; GFX11-LABEL: store_1d_glc_slc:1351; GFX11:       ; %bb.0: ; %main_body1352; GFX11-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc slc a16 ; encoding: [0x80,0x5f,0x19,0xf0,0x04,0x00,0x00,0x00]1353; GFX11-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]1354;1355; GFX12-LABEL: store_1d_glc_slc:1356; GFX12:       ; %bb.0: ; %main_body1357; GFX12-NEXT:    image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D th:TH_STORE_WB a16 ; encoding: [0x40,0x80,0xc1,0xd3,0x00,0x00,0x30,0x00,0x04,0x00,0x00,0x00]1358; GFX12-NEXT:    s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]1359main_body:1360  %s = extractelement <2 x i16> %coords, i32 01361  call void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 3)1362  ret void1363}1364 1365define amdgpu_ps <4 x float> @getresinfo_dmask0(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) #0 {1366; GFX9-LABEL: getresinfo_dmask0:1367; GFX9:       ; %bb.0: ; %main_body1368; GFX9-NEXT:    ; return to shader part epilog1369;1370; GFX10-LABEL: getresinfo_dmask0:1371; GFX10:       ; %bb.0: ; %main_body1372; GFX10-NEXT:    ; return to shader part epilog1373;1374; GFX11-LABEL: getresinfo_dmask0:1375; GFX11:       ; %bb.0: ; %main_body1376; GFX11-NEXT:    ; return to shader part epilog1377;1378; GFX12-LABEL: getresinfo_dmask0:1379; GFX12:       ; %bb.0: ; %main_body1380; GFX12-NEXT:    ; return to shader part epilog1381main_body:1382  %mip = extractelement <2 x i16> %coords, i32 01383  %r = call <4 x float> @llvm.amdgcn.image.getresinfo.1d.v4f32.i16(i32 0, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)1384  ret <4 x float> %r1385}1386 1387declare <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #11388declare <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i16(i32, i16, i16, <8 x i32>, i32, i32) #11389declare <4 x float> @llvm.amdgcn.image.load.3d.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #11390declare <4 x float> @llvm.amdgcn.image.load.cube.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #11391declare <4 x float> @llvm.amdgcn.image.load.1darray.v4f32.i16(i32, i16, i16, <8 x i32>, i32, i32) #11392declare <4 x float> @llvm.amdgcn.image.load.2darray.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #11393declare <4 x float> @llvm.amdgcn.image.load.2dmsaa.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #11394declare <4 x float> @llvm.amdgcn.image.load.2darraymsaa.v4f32.i16(i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #11395 1396declare <4 x float> @llvm.amdgcn.image.load.mip.1d.v4f32.i16(i32, i16, i16, <8 x i32>, i32, i32) #11397declare <4 x float> @llvm.amdgcn.image.load.mip.2d.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #11398declare <4 x float> @llvm.amdgcn.image.load.mip.3d.v4f32.i16(i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #11399declare <4 x float> @llvm.amdgcn.image.load.mip.cube.v4f32.i16(i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #11400declare <4 x float> @llvm.amdgcn.image.load.mip.1darray.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #11401declare <4 x float> @llvm.amdgcn.image.load.mip.2darray.v4f32.i16(i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #11402 1403declare void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float>, i32, i16, <8 x i32>, i32, i32) #01404declare void @llvm.amdgcn.image.store.2d.v4f32.i16(<4 x float>, i32, i16, i16, <8 x i32>, i32, i32) #01405declare void @llvm.amdgcn.image.store.3d.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #01406declare void @llvm.amdgcn.image.store.cube.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #01407declare void @llvm.amdgcn.image.store.1darray.v4f32.i16(<4 x float>, i32, i16, i16, <8 x i32>, i32, i32) #01408declare void @llvm.amdgcn.image.store.2darray.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #01409declare void @llvm.amdgcn.image.store.2dmsaa.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #01410declare void @llvm.amdgcn.image.store.2darraymsaa.v4f32.i16(<4 x float>, i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #01411 1412declare void @llvm.amdgcn.image.store.mip.1d.v4f32.i16(<4 x float>, i32, i16, i16, <8 x i32>, i32, i32) #01413declare void @llvm.amdgcn.image.store.mip.2d.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #01414declare void @llvm.amdgcn.image.store.mip.3d.v4f32.i16(<4 x float>, i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #01415declare void @llvm.amdgcn.image.store.mip.cube.v4f32.i16(<4 x float>, i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #01416declare void @llvm.amdgcn.image.store.mip.1darray.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #01417declare void @llvm.amdgcn.image.store.mip.2darray.v4f32.i16(<4 x float>, i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #01418 1419declare <4 x float> @llvm.amdgcn.image.getresinfo.1d.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #21420declare <4 x float> @llvm.amdgcn.image.getresinfo.2d.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #21421declare <4 x float> @llvm.amdgcn.image.getresinfo.3d.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #21422declare <4 x float> @llvm.amdgcn.image.getresinfo.cube.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #21423declare <4 x float> @llvm.amdgcn.image.getresinfo.1darray.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #21424declare <4 x float> @llvm.amdgcn.image.getresinfo.2darray.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #21425declare <4 x float> @llvm.amdgcn.image.getresinfo.2dmsaa.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #21426declare <4 x float> @llvm.amdgcn.image.getresinfo.2darraymsaa.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #21427 1428declare float @llvm.amdgcn.image.load.1d.f32.i16(i32, i16, <8 x i32>, i32, i32) #11429declare float @llvm.amdgcn.image.load.2d.f32.i16(i32, i16, i16, <8 x i32>, i32, i32) #11430declare <2 x float> @llvm.amdgcn.image.load.1d.v2f32.i16(i32, i16, <8 x i32>, i32, i32) #11431declare void @llvm.amdgcn.image.store.1d.f32.i16(float, i32, i16, <8 x i32>, i32, i32) #01432declare void @llvm.amdgcn.image.store.1d.v2f32.i16(<2 x float>, i32, i16, <8 x i32>, i32, i32) #01433 1434attributes #0 = { nounwind }1435attributes #1 = { nounwind readonly }1436attributes #2 = { nounwind readnone }1437