411 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 < %s | FileCheck -check-prefix=GFX9 %s3; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1010 < %s | FileCheck -check-prefix=GFX10 %s4; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1100 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX10 %s5; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX12 %s6 7define amdgpu_ps <4 x float> @getresinfo_1d(<8 x i32> inreg %rsrc, i16 %mip) {8; GFX9-LABEL: getresinfo_1d:9; GFX9: ; %bb.0: ; %main_body10; GFX9-NEXT: s_mov_b32 s0, s211; GFX9-NEXT: s_mov_b32 s1, s312; GFX9-NEXT: s_mov_b32 s2, s413; GFX9-NEXT: s_mov_b32 s3, s514; GFX9-NEXT: s_mov_b32 s4, s615; GFX9-NEXT: s_mov_b32 s5, s716; GFX9-NEXT: s_mov_b32 s6, s817; GFX9-NEXT: s_mov_b32 s7, s918; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a1619; GFX9-NEXT: s_waitcnt vmcnt(0)20; GFX9-NEXT: ; return to shader part epilog21;22; GFX10-LABEL: getresinfo_1d:23; GFX10: ; %bb.0: ; %main_body24; GFX10-NEXT: s_mov_b32 s0, s225; GFX10-NEXT: s_mov_b32 s1, s326; GFX10-NEXT: s_mov_b32 s2, s427; GFX10-NEXT: s_mov_b32 s3, s528; GFX10-NEXT: s_mov_b32 s4, s629; GFX10-NEXT: s_mov_b32 s5, s730; GFX10-NEXT: s_mov_b32 s6, s831; GFX10-NEXT: s_mov_b32 s7, s932; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a1633; GFX10-NEXT: s_waitcnt vmcnt(0)34; GFX10-NEXT: ; return to shader part epilog35;36; GFX12-LABEL: getresinfo_1d:37; GFX12: ; %bb.0: ; %main_body38; GFX12-NEXT: s_mov_b32 s0, s239; GFX12-NEXT: s_mov_b32 s1, s340; GFX12-NEXT: s_mov_b32 s2, s441; GFX12-NEXT: s_mov_b32 s3, s542; GFX12-NEXT: s_mov_b32 s4, s643; GFX12-NEXT: s_mov_b32 s5, s744; GFX12-NEXT: s_mov_b32 s6, s845; GFX12-NEXT: s_mov_b32 s7, s946; GFX12-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D a1647; GFX12-NEXT: s_wait_loadcnt 0x048; GFX12-NEXT: ; return to shader part epilog49main_body:50 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.1d.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)51 ret <4 x float> %v52}53 54define amdgpu_ps <4 x float> @getresinfo_2d(<8 x i32> inreg %rsrc, i16 %mip) {55; GFX9-LABEL: getresinfo_2d:56; GFX9: ; %bb.0: ; %main_body57; GFX9-NEXT: s_mov_b32 s0, s258; GFX9-NEXT: s_mov_b32 s1, s359; GFX9-NEXT: s_mov_b32 s2, s460; GFX9-NEXT: s_mov_b32 s3, s561; GFX9-NEXT: s_mov_b32 s4, s662; GFX9-NEXT: s_mov_b32 s5, s763; GFX9-NEXT: s_mov_b32 s6, s864; GFX9-NEXT: s_mov_b32 s7, s965; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a1666; GFX9-NEXT: s_waitcnt vmcnt(0)67; GFX9-NEXT: ; return to shader part epilog68;69; GFX10-LABEL: getresinfo_2d:70; GFX10: ; %bb.0: ; %main_body71; GFX10-NEXT: s_mov_b32 s0, s272; GFX10-NEXT: s_mov_b32 s1, s373; GFX10-NEXT: s_mov_b32 s2, s474; GFX10-NEXT: s_mov_b32 s3, s575; GFX10-NEXT: s_mov_b32 s4, s676; GFX10-NEXT: s_mov_b32 s5, s777; GFX10-NEXT: s_mov_b32 s6, s878; GFX10-NEXT: s_mov_b32 s7, s979; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a1680; GFX10-NEXT: s_waitcnt vmcnt(0)81; GFX10-NEXT: ; return to shader part epilog82;83; GFX12-LABEL: getresinfo_2d:84; GFX12: ; %bb.0: ; %main_body85; GFX12-NEXT: s_mov_b32 s0, s286; GFX12-NEXT: s_mov_b32 s1, s387; GFX12-NEXT: s_mov_b32 s2, s488; GFX12-NEXT: s_mov_b32 s3, s589; GFX12-NEXT: s_mov_b32 s4, s690; GFX12-NEXT: s_mov_b32 s5, s791; GFX12-NEXT: s_mov_b32 s6, s892; GFX12-NEXT: s_mov_b32 s7, s993; GFX12-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D a1694; GFX12-NEXT: s_wait_loadcnt 0x095; GFX12-NEXT: ; return to shader part epilog96main_body:97 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2d.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)98 ret <4 x float> %v99}100 101define amdgpu_ps <4 x float> @getresinfo_3d(<8 x i32> inreg %rsrc, i16 %mip) {102; GFX9-LABEL: getresinfo_3d:103; GFX9: ; %bb.0: ; %main_body104; GFX9-NEXT: s_mov_b32 s0, s2105; GFX9-NEXT: s_mov_b32 s1, s3106; GFX9-NEXT: s_mov_b32 s2, s4107; GFX9-NEXT: s_mov_b32 s3, s5108; GFX9-NEXT: s_mov_b32 s4, s6109; GFX9-NEXT: s_mov_b32 s5, s7110; GFX9-NEXT: s_mov_b32 s6, s8111; GFX9-NEXT: s_mov_b32 s7, s9112; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16113; GFX9-NEXT: s_waitcnt vmcnt(0)114; GFX9-NEXT: ; return to shader part epilog115;116; GFX10-LABEL: getresinfo_3d:117; GFX10: ; %bb.0: ; %main_body118; GFX10-NEXT: s_mov_b32 s0, s2119; GFX10-NEXT: s_mov_b32 s1, s3120; GFX10-NEXT: s_mov_b32 s2, s4121; GFX10-NEXT: s_mov_b32 s3, s5122; GFX10-NEXT: s_mov_b32 s4, s6123; GFX10-NEXT: s_mov_b32 s5, s7124; GFX10-NEXT: s_mov_b32 s6, s8125; GFX10-NEXT: s_mov_b32 s7, s9126; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16127; GFX10-NEXT: s_waitcnt vmcnt(0)128; GFX10-NEXT: ; return to shader part epilog129;130; GFX12-LABEL: getresinfo_3d:131; GFX12: ; %bb.0: ; %main_body132; GFX12-NEXT: s_mov_b32 s0, s2133; GFX12-NEXT: s_mov_b32 s1, s3134; GFX12-NEXT: s_mov_b32 s2, s4135; GFX12-NEXT: s_mov_b32 s3, s5136; GFX12-NEXT: s_mov_b32 s4, s6137; GFX12-NEXT: s_mov_b32 s5, s7138; GFX12-NEXT: s_mov_b32 s6, s8139; GFX12-NEXT: s_mov_b32 s7, s9140; GFX12-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D a16141; GFX12-NEXT: s_wait_loadcnt 0x0142; GFX12-NEXT: ; return to shader part epilog143main_body:144 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.3d.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)145 ret <4 x float> %v146}147 148define amdgpu_ps <4 x float> @getresinfo_cube(<8 x i32> inreg %rsrc, i16 %mip) {149; GFX9-LABEL: getresinfo_cube:150; GFX9: ; %bb.0: ; %main_body151; GFX9-NEXT: s_mov_b32 s0, s2152; GFX9-NEXT: s_mov_b32 s1, s3153; GFX9-NEXT: s_mov_b32 s2, s4154; GFX9-NEXT: s_mov_b32 s3, s5155; GFX9-NEXT: s_mov_b32 s4, s6156; GFX9-NEXT: s_mov_b32 s5, s7157; GFX9-NEXT: s_mov_b32 s6, s8158; GFX9-NEXT: s_mov_b32 s7, s9159; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da160; GFX9-NEXT: s_waitcnt vmcnt(0)161; GFX9-NEXT: ; return to shader part epilog162;163; GFX10-LABEL: getresinfo_cube:164; GFX10: ; %bb.0: ; %main_body165; GFX10-NEXT: s_mov_b32 s0, s2166; GFX10-NEXT: s_mov_b32 s1, s3167; GFX10-NEXT: s_mov_b32 s2, s4168; GFX10-NEXT: s_mov_b32 s3, s5169; GFX10-NEXT: s_mov_b32 s4, s6170; GFX10-NEXT: s_mov_b32 s5, s7171; GFX10-NEXT: s_mov_b32 s6, s8172; GFX10-NEXT: s_mov_b32 s7, s9173; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16174; GFX10-NEXT: s_waitcnt vmcnt(0)175; GFX10-NEXT: ; return to shader part epilog176;177; GFX12-LABEL: getresinfo_cube:178; GFX12: ; %bb.0: ; %main_body179; GFX12-NEXT: s_mov_b32 s0, s2180; GFX12-NEXT: s_mov_b32 s1, s3181; GFX12-NEXT: s_mov_b32 s2, s4182; GFX12-NEXT: s_mov_b32 s3, s5183; GFX12-NEXT: s_mov_b32 s4, s6184; GFX12-NEXT: s_mov_b32 s5, s7185; GFX12-NEXT: s_mov_b32 s6, s8186; GFX12-NEXT: s_mov_b32 s7, s9187; GFX12-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE a16188; GFX12-NEXT: s_wait_loadcnt 0x0189; GFX12-NEXT: ; return to shader part epilog190main_body:191 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.cube.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)192 ret <4 x float> %v193}194 195define amdgpu_ps <4 x float> @getresinfo_1darray(<8 x i32> inreg %rsrc, i16 %mip) {196; GFX9-LABEL: getresinfo_1darray:197; GFX9: ; %bb.0: ; %main_body198; GFX9-NEXT: s_mov_b32 s0, s2199; GFX9-NEXT: s_mov_b32 s1, s3200; GFX9-NEXT: s_mov_b32 s2, s4201; GFX9-NEXT: s_mov_b32 s3, s5202; GFX9-NEXT: s_mov_b32 s4, s6203; GFX9-NEXT: s_mov_b32 s5, s7204; GFX9-NEXT: s_mov_b32 s6, s8205; GFX9-NEXT: s_mov_b32 s7, s9206; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da207; GFX9-NEXT: s_waitcnt vmcnt(0)208; GFX9-NEXT: ; return to shader part epilog209;210; GFX10-LABEL: getresinfo_1darray:211; GFX10: ; %bb.0: ; %main_body212; GFX10-NEXT: s_mov_b32 s0, s2213; GFX10-NEXT: s_mov_b32 s1, s3214; GFX10-NEXT: s_mov_b32 s2, s4215; GFX10-NEXT: s_mov_b32 s3, s5216; GFX10-NEXT: s_mov_b32 s4, s6217; GFX10-NEXT: s_mov_b32 s5, s7218; GFX10-NEXT: s_mov_b32 s6, s8219; GFX10-NEXT: s_mov_b32 s7, s9220; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16221; GFX10-NEXT: s_waitcnt vmcnt(0)222; GFX10-NEXT: ; return to shader part epilog223;224; GFX12-LABEL: getresinfo_1darray:225; GFX12: ; %bb.0: ; %main_body226; GFX12-NEXT: s_mov_b32 s0, s2227; GFX12-NEXT: s_mov_b32 s1, s3228; GFX12-NEXT: s_mov_b32 s2, s4229; GFX12-NEXT: s_mov_b32 s3, s5230; GFX12-NEXT: s_mov_b32 s4, s6231; GFX12-NEXT: s_mov_b32 s5, s7232; GFX12-NEXT: s_mov_b32 s6, s8233; GFX12-NEXT: s_mov_b32 s7, s9234; GFX12-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY a16235; GFX12-NEXT: s_wait_loadcnt 0x0236; GFX12-NEXT: ; return to shader part epilog237main_body:238 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.1darray.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)239 ret <4 x float> %v240}241 242define amdgpu_ps <4 x float> @getresinfo_2darray(<8 x i32> inreg %rsrc, i16 %mip) {243; GFX9-LABEL: getresinfo_2darray:244; GFX9: ; %bb.0: ; %main_body245; GFX9-NEXT: s_mov_b32 s0, s2246; GFX9-NEXT: s_mov_b32 s1, s3247; GFX9-NEXT: s_mov_b32 s2, s4248; GFX9-NEXT: s_mov_b32 s3, s5249; GFX9-NEXT: s_mov_b32 s4, s6250; GFX9-NEXT: s_mov_b32 s5, s7251; GFX9-NEXT: s_mov_b32 s6, s8252; GFX9-NEXT: s_mov_b32 s7, s9253; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da254; GFX9-NEXT: s_waitcnt vmcnt(0)255; GFX9-NEXT: ; return to shader part epilog256;257; GFX10-LABEL: getresinfo_2darray:258; GFX10: ; %bb.0: ; %main_body259; GFX10-NEXT: s_mov_b32 s0, s2260; GFX10-NEXT: s_mov_b32 s1, s3261; GFX10-NEXT: s_mov_b32 s2, s4262; GFX10-NEXT: s_mov_b32 s3, s5263; GFX10-NEXT: s_mov_b32 s4, s6264; GFX10-NEXT: s_mov_b32 s5, s7265; GFX10-NEXT: s_mov_b32 s6, s8266; GFX10-NEXT: s_mov_b32 s7, s9267; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16268; GFX10-NEXT: s_waitcnt vmcnt(0)269; GFX10-NEXT: ; return to shader part epilog270;271; GFX12-LABEL: getresinfo_2darray:272; GFX12: ; %bb.0: ; %main_body273; GFX12-NEXT: s_mov_b32 s0, s2274; GFX12-NEXT: s_mov_b32 s1, s3275; GFX12-NEXT: s_mov_b32 s2, s4276; GFX12-NEXT: s_mov_b32 s3, s5277; GFX12-NEXT: s_mov_b32 s4, s6278; GFX12-NEXT: s_mov_b32 s5, s7279; GFX12-NEXT: s_mov_b32 s6, s8280; GFX12-NEXT: s_mov_b32 s7, s9281; GFX12-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16282; GFX12-NEXT: s_wait_loadcnt 0x0283; GFX12-NEXT: ; return to shader part epilog284main_body:285 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2darray.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)286 ret <4 x float> %v287}288 289define amdgpu_ps <4 x float> @getresinfo_2dmsaa(<8 x i32> inreg %rsrc, i16 %mip) {290; GFX9-LABEL: getresinfo_2dmsaa:291; GFX9: ; %bb.0: ; %main_body292; GFX9-NEXT: s_mov_b32 s0, s2293; GFX9-NEXT: s_mov_b32 s1, s3294; GFX9-NEXT: s_mov_b32 s2, s4295; GFX9-NEXT: s_mov_b32 s3, s5296; GFX9-NEXT: s_mov_b32 s4, s6297; GFX9-NEXT: s_mov_b32 s5, s7298; GFX9-NEXT: s_mov_b32 s6, s8299; GFX9-NEXT: s_mov_b32 s7, s9300; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16301; GFX9-NEXT: s_waitcnt vmcnt(0)302; GFX9-NEXT: ; return to shader part epilog303;304; GFX10-LABEL: getresinfo_2dmsaa:305; GFX10: ; %bb.0: ; %main_body306; GFX10-NEXT: s_mov_b32 s0, s2307; GFX10-NEXT: s_mov_b32 s1, s3308; GFX10-NEXT: s_mov_b32 s2, s4309; GFX10-NEXT: s_mov_b32 s3, s5310; GFX10-NEXT: s_mov_b32 s4, s6311; GFX10-NEXT: s_mov_b32 s5, s7312; GFX10-NEXT: s_mov_b32 s6, s8313; GFX10-NEXT: s_mov_b32 s7, s9314; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16315; GFX10-NEXT: s_waitcnt vmcnt(0)316; GFX10-NEXT: ; return to shader part epilog317;318; GFX12-LABEL: getresinfo_2dmsaa:319; GFX12: ; %bb.0: ; %main_body320; GFX12-NEXT: s_mov_b32 s0, s2321; GFX12-NEXT: s_mov_b32 s1, s3322; GFX12-NEXT: s_mov_b32 s2, s4323; GFX12-NEXT: s_mov_b32 s3, s5324; GFX12-NEXT: s_mov_b32 s4, s6325; GFX12-NEXT: s_mov_b32 s5, s7326; GFX12-NEXT: s_mov_b32 s6, s8327; GFX12-NEXT: s_mov_b32 s7, s9328; GFX12-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA a16329; GFX12-NEXT: s_wait_loadcnt 0x0330; GFX12-NEXT: ; return to shader part epilog331main_body:332 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2dmsaa.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)333 ret <4 x float> %v334}335 336define amdgpu_ps <4 x float> @getresinfo_2darraymsaa(<8 x i32> inreg %rsrc, i16 %mip) {337; GFX9-LABEL: getresinfo_2darraymsaa:338; GFX9: ; %bb.0: ; %main_body339; GFX9-NEXT: s_mov_b32 s0, s2340; GFX9-NEXT: s_mov_b32 s1, s3341; GFX9-NEXT: s_mov_b32 s2, s4342; GFX9-NEXT: s_mov_b32 s3, s5343; GFX9-NEXT: s_mov_b32 s4, s6344; GFX9-NEXT: s_mov_b32 s5, s7345; GFX9-NEXT: s_mov_b32 s6, s8346; GFX9-NEXT: s_mov_b32 s7, s9347; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da348; GFX9-NEXT: s_waitcnt vmcnt(0)349; GFX9-NEXT: ; return to shader part epilog350;351; GFX10-LABEL: getresinfo_2darraymsaa:352; GFX10: ; %bb.0: ; %main_body353; GFX10-NEXT: s_mov_b32 s0, s2354; GFX10-NEXT: s_mov_b32 s1, s3355; GFX10-NEXT: s_mov_b32 s2, s4356; GFX10-NEXT: s_mov_b32 s3, s5357; GFX10-NEXT: s_mov_b32 s4, s6358; GFX10-NEXT: s_mov_b32 s5, s7359; GFX10-NEXT: s_mov_b32 s6, s8360; GFX10-NEXT: s_mov_b32 s7, s9361; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16362; GFX10-NEXT: s_waitcnt vmcnt(0)363; GFX10-NEXT: ; return to shader part epilog364;365; GFX12-LABEL: getresinfo_2darraymsaa:366; GFX12: ; %bb.0: ; %main_body367; GFX12-NEXT: s_mov_b32 s0, s2368; GFX12-NEXT: s_mov_b32 s1, s3369; GFX12-NEXT: s_mov_b32 s2, s4370; GFX12-NEXT: s_mov_b32 s3, s5371; GFX12-NEXT: s_mov_b32 s4, s6372; GFX12-NEXT: s_mov_b32 s5, s7373; GFX12-NEXT: s_mov_b32 s6, s8374; GFX12-NEXT: s_mov_b32 s7, s9375; GFX12-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY a16376; GFX12-NEXT: s_wait_loadcnt 0x0377; GFX12-NEXT: ; return to shader part epilog378main_body:379 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2darraymsaa.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)380 ret <4 x float> %v381}382 383define amdgpu_ps <4 x float> @getresinfo_dmask0(<8 x i32> inreg %rsrc, <4 x float> %vdata, i16 %mip) {384; GFX9-LABEL: getresinfo_dmask0:385; GFX9: ; %bb.0: ; %main_body386; GFX9-NEXT: ; return to shader part epilog387;388; GFX10-LABEL: getresinfo_dmask0:389; GFX10: ; %bb.0: ; %main_body390; GFX10-NEXT: ; return to shader part epilog391;392; GFX12-LABEL: getresinfo_dmask0:393; GFX12: ; %bb.0: ; %main_body394; GFX12-NEXT: ; return to shader part epilog395main_body:396 %r = call <4 x float> @llvm.amdgcn.image.getresinfo.1d.v4f32.i16(i32 0, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)397 ret <4 x float> %r398}399 400declare <4 x float> @llvm.amdgcn.image.getresinfo.1d.v4f32.i16(i32 immarg, i16, <8 x i32>, i32 immarg, i32 immarg) #1401declare <4 x float> @llvm.amdgcn.image.getresinfo.2d.v4f32.i16(i32 immarg, i16, <8 x i32>, i32 immarg, i32 immarg) #1402declare <4 x float> @llvm.amdgcn.image.getresinfo.3d.v4f32.i16(i32 immarg, i16, <8 x i32>, i32 immarg, i32 immarg) #1403declare <4 x float> @llvm.amdgcn.image.getresinfo.cube.v4f32.i16(i32 immarg, i16, <8 x i32>, i32 immarg, i32 immarg) #1404declare <4 x float> @llvm.amdgcn.image.getresinfo.1darray.v4f32.i16(i32 immarg, i16, <8 x i32>, i32 immarg, i32 immarg) #1405declare <4 x float> @llvm.amdgcn.image.getresinfo.2darray.v4f32.i16(i32 immarg, i16, <8 x i32>, i32 immarg, i32 immarg) #1406declare <4 x float> @llvm.amdgcn.image.getresinfo.2dmsaa.v4f32.i16(i32 immarg, i16, <8 x i32>, i32 immarg, i32 immarg) #1407declare <4 x float> @llvm.amdgcn.image.getresinfo.2darraymsaa.v4f32.i16(i32 immarg, i16, <8 x i32>, i32 immarg, i32 immarg) #1408 409attributes #0 = { nounwind }410attributes #1 = { nounwind readnone }411