446 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=gfx900 < %s | FileCheck --check-prefix=GFX9 %s3; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=fiji < %s | FileCheck --check-prefix=GFX8 %s4; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=tahiti < %s | FileCheck --check-prefix=GFX6 %s5; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=gfx1010 < %s | FileCheck --check-prefix=GFX10 %s6; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=gfx1100 < %s | FileCheck --check-prefix=GFX11 %s7 8define i32 @zextload_global_i1_to_i32(ptr addrspace(1) %ptr) {9; GFX9-LABEL: zextload_global_i1_to_i32:10; GFX9: ; %bb.0:11; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12; GFX9-NEXT: global_load_ubyte v0, v[0:1], off13; GFX9-NEXT: s_waitcnt vmcnt(0)14; GFX9-NEXT: v_and_b32_e32 v0, 1, v015; GFX9-NEXT: s_setpc_b64 s[30:31]16;17; GFX8-LABEL: zextload_global_i1_to_i32:18; GFX8: ; %bb.0:19; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)20; GFX8-NEXT: flat_load_ubyte v0, v[0:1]21; GFX8-NEXT: s_waitcnt vmcnt(0)22; GFX8-NEXT: v_and_b32_e32 v0, 1, v023; GFX8-NEXT: s_setpc_b64 s[30:31]24;25; GFX6-LABEL: zextload_global_i1_to_i32:26; GFX6: ; %bb.0:27; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)28; GFX6-NEXT: s_mov_b32 s6, 029; GFX6-NEXT: s_mov_b32 s7, 0xf00030; GFX6-NEXT: s_mov_b64 s[4:5], 031; GFX6-NEXT: buffer_load_ubyte v0, v[0:1], s[4:7], 0 addr6432; GFX6-NEXT: s_waitcnt vmcnt(0)33; GFX6-NEXT: v_and_b32_e32 v0, 1, v034; GFX6-NEXT: s_setpc_b64 s[30:31]35;36; GFX10-LABEL: zextload_global_i1_to_i32:37; GFX10: ; %bb.0:38; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)39; GFX10-NEXT: global_load_ubyte v0, v[0:1], off40; GFX10-NEXT: s_waitcnt vmcnt(0)41; GFX10-NEXT: v_and_b32_e32 v0, 1, v042; GFX10-NEXT: s_setpc_b64 s[30:31]43;44; GFX11-LABEL: zextload_global_i1_to_i32:45; GFX11: ; %bb.0:46; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)47; GFX11-NEXT: global_load_u8 v0, v[0:1], off48; GFX11-NEXT: s_waitcnt vmcnt(0)49; GFX11-NEXT: v_and_b32_e32 v0, 1, v050; GFX11-NEXT: s_setpc_b64 s[30:31]51 %load = load i1, ptr addrspace(1) %ptr52 %ext = zext i1 %load to i3253 ret i32 %ext54}55 56define i32 @zextload_global_i8_to_i32(ptr addrspace(1) %ptr) {57; GFX9-LABEL: zextload_global_i8_to_i32:58; GFX9: ; %bb.0:59; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)60; GFX9-NEXT: global_load_ubyte v0, v[0:1], off61; GFX9-NEXT: s_waitcnt vmcnt(0)62; GFX9-NEXT: s_setpc_b64 s[30:31]63;64; GFX8-LABEL: zextload_global_i8_to_i32:65; GFX8: ; %bb.0:66; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)67; GFX8-NEXT: flat_load_ubyte v0, v[0:1]68; GFX8-NEXT: s_waitcnt vmcnt(0)69; GFX8-NEXT: s_setpc_b64 s[30:31]70;71; GFX6-LABEL: zextload_global_i8_to_i32:72; GFX6: ; %bb.0:73; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)74; GFX6-NEXT: s_mov_b32 s6, 075; GFX6-NEXT: s_mov_b32 s7, 0xf00076; GFX6-NEXT: s_mov_b64 s[4:5], 077; GFX6-NEXT: buffer_load_ubyte v0, v[0:1], s[4:7], 0 addr6478; GFX6-NEXT: s_waitcnt vmcnt(0)79; GFX6-NEXT: s_setpc_b64 s[30:31]80;81; GFX10-LABEL: zextload_global_i8_to_i32:82; GFX10: ; %bb.0:83; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)84; GFX10-NEXT: global_load_ubyte v0, v[0:1], off85; GFX10-NEXT: s_waitcnt vmcnt(0)86; GFX10-NEXT: s_setpc_b64 s[30:31]87;88; GFX11-LABEL: zextload_global_i8_to_i32:89; GFX11: ; %bb.0:90; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)91; GFX11-NEXT: global_load_u8 v0, v[0:1], off92; GFX11-NEXT: s_waitcnt vmcnt(0)93; GFX11-NEXT: s_setpc_b64 s[30:31]94 %load = load i8, ptr addrspace(1) %ptr95 %ext = zext i8 %load to i3296 ret i32 %ext97}98 99define i32 @zextload_global_i16_to_i32(ptr addrspace(1) %ptr) {100; GFX9-LABEL: zextload_global_i16_to_i32:101; GFX9: ; %bb.0:102; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)103; GFX9-NEXT: global_load_ushort v0, v[0:1], off104; GFX9-NEXT: s_waitcnt vmcnt(0)105; GFX9-NEXT: s_setpc_b64 s[30:31]106;107; GFX8-LABEL: zextload_global_i16_to_i32:108; GFX8: ; %bb.0:109; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)110; GFX8-NEXT: flat_load_ushort v0, v[0:1]111; GFX8-NEXT: s_waitcnt vmcnt(0)112; GFX8-NEXT: s_setpc_b64 s[30:31]113;114; GFX6-LABEL: zextload_global_i16_to_i32:115; GFX6: ; %bb.0:116; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)117; GFX6-NEXT: s_mov_b32 s6, 0118; GFX6-NEXT: s_mov_b32 s7, 0xf000119; GFX6-NEXT: s_mov_b64 s[4:5], 0120; GFX6-NEXT: buffer_load_ushort v0, v[0:1], s[4:7], 0 addr64121; GFX6-NEXT: s_waitcnt vmcnt(0)122; GFX6-NEXT: s_setpc_b64 s[30:31]123;124; GFX10-LABEL: zextload_global_i16_to_i32:125; GFX10: ; %bb.0:126; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)127; GFX10-NEXT: global_load_ushort v0, v[0:1], off128; GFX10-NEXT: s_waitcnt vmcnt(0)129; GFX10-NEXT: s_setpc_b64 s[30:31]130;131; GFX11-LABEL: zextload_global_i16_to_i32:132; GFX11: ; %bb.0:133; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)134; GFX11-NEXT: global_load_u16 v0, v[0:1], off135; GFX11-NEXT: s_waitcnt vmcnt(0)136; GFX11-NEXT: s_setpc_b64 s[30:31]137 %load = load i16, ptr addrspace(1) %ptr138 %ext = zext i16 %load to i32139 ret i32 %ext140}141 142define i64 @zextload_global_i1_to_i64(ptr addrspace(1) %ptr) {143; GFX9-LABEL: zextload_global_i1_to_i64:144; GFX9: ; %bb.0:145; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)146; GFX9-NEXT: global_load_ubyte v0, v[0:1], off147; GFX9-NEXT: v_mov_b32_e32 v1, 0148; GFX9-NEXT: s_waitcnt vmcnt(0)149; GFX9-NEXT: v_and_b32_e32 v0, 1, v0150; GFX9-NEXT: s_setpc_b64 s[30:31]151;152; GFX8-LABEL: zextload_global_i1_to_i64:153; GFX8: ; %bb.0:154; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)155; GFX8-NEXT: flat_load_ubyte v0, v[0:1]156; GFX8-NEXT: v_mov_b32_e32 v1, 0157; GFX8-NEXT: s_waitcnt vmcnt(0)158; GFX8-NEXT: v_and_b32_e32 v0, 1, v0159; GFX8-NEXT: s_setpc_b64 s[30:31]160;161; GFX6-LABEL: zextload_global_i1_to_i64:162; GFX6: ; %bb.0:163; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)164; GFX6-NEXT: s_mov_b32 s6, 0165; GFX6-NEXT: s_mov_b32 s7, 0xf000166; GFX6-NEXT: s_mov_b64 s[4:5], 0167; GFX6-NEXT: buffer_load_ubyte v0, v[0:1], s[4:7], 0 addr64168; GFX6-NEXT: v_mov_b32_e32 v1, 0169; GFX6-NEXT: s_waitcnt vmcnt(0)170; GFX6-NEXT: v_and_b32_e32 v0, 1, v0171; GFX6-NEXT: s_setpc_b64 s[30:31]172;173; GFX10-LABEL: zextload_global_i1_to_i64:174; GFX10: ; %bb.0:175; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)176; GFX10-NEXT: global_load_ubyte v0, v[0:1], off177; GFX10-NEXT: v_mov_b32_e32 v1, 0178; GFX10-NEXT: s_waitcnt vmcnt(0)179; GFX10-NEXT: v_and_b32_e32 v0, 1, v0180; GFX10-NEXT: s_setpc_b64 s[30:31]181;182; GFX11-LABEL: zextload_global_i1_to_i64:183; GFX11: ; %bb.0:184; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)185; GFX11-NEXT: global_load_u8 v0, v[0:1], off186; GFX11-NEXT: s_waitcnt vmcnt(0)187; GFX11-NEXT: v_dual_mov_b32 v1, 0 :: v_dual_and_b32 v0, 1, v0188; GFX11-NEXT: s_setpc_b64 s[30:31]189 %load = load i1, ptr addrspace(1) %ptr190 %ext = zext i1 %load to i64191 ret i64 %ext192}193 194define i64 @zextload_global_i8_to_i64(ptr addrspace(1) %ptr) {195; GFX9-LABEL: zextload_global_i8_to_i64:196; GFX9: ; %bb.0:197; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)198; GFX9-NEXT: global_load_ubyte v0, v[0:1], off199; GFX9-NEXT: v_mov_b32_e32 v1, 0200; GFX9-NEXT: s_waitcnt vmcnt(0)201; GFX9-NEXT: s_setpc_b64 s[30:31]202;203; GFX8-LABEL: zextload_global_i8_to_i64:204; GFX8: ; %bb.0:205; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)206; GFX8-NEXT: flat_load_ubyte v0, v[0:1]207; GFX8-NEXT: v_mov_b32_e32 v1, 0208; GFX8-NEXT: s_waitcnt vmcnt(0)209; GFX8-NEXT: s_setpc_b64 s[30:31]210;211; GFX6-LABEL: zextload_global_i8_to_i64:212; GFX6: ; %bb.0:213; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)214; GFX6-NEXT: s_mov_b32 s6, 0215; GFX6-NEXT: s_mov_b32 s7, 0xf000216; GFX6-NEXT: s_mov_b64 s[4:5], 0217; GFX6-NEXT: buffer_load_ubyte v0, v[0:1], s[4:7], 0 addr64218; GFX6-NEXT: v_mov_b32_e32 v1, 0219; GFX6-NEXT: s_waitcnt vmcnt(0)220; GFX6-NEXT: s_setpc_b64 s[30:31]221;222; GFX10-LABEL: zextload_global_i8_to_i64:223; GFX10: ; %bb.0:224; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)225; GFX10-NEXT: global_load_ubyte v0, v[0:1], off226; GFX10-NEXT: v_mov_b32_e32 v1, 0227; GFX10-NEXT: s_waitcnt vmcnt(0)228; GFX10-NEXT: s_setpc_b64 s[30:31]229;230; GFX11-LABEL: zextload_global_i8_to_i64:231; GFX11: ; %bb.0:232; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)233; GFX11-NEXT: global_load_u8 v0, v[0:1], off234; GFX11-NEXT: v_mov_b32_e32 v1, 0235; GFX11-NEXT: s_waitcnt vmcnt(0)236; GFX11-NEXT: s_setpc_b64 s[30:31]237 %load = load i8, ptr addrspace(1) %ptr238 %ext = zext i8 %load to i64239 ret i64 %ext240}241 242define i64 @zextload_global_i16_to_i64(ptr addrspace(1) %ptr) {243; GFX9-LABEL: zextload_global_i16_to_i64:244; GFX9: ; %bb.0:245; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)246; GFX9-NEXT: global_load_ushort v0, v[0:1], off247; GFX9-NEXT: v_mov_b32_e32 v1, 0248; GFX9-NEXT: s_waitcnt vmcnt(0)249; GFX9-NEXT: s_setpc_b64 s[30:31]250;251; GFX8-LABEL: zextload_global_i16_to_i64:252; GFX8: ; %bb.0:253; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)254; GFX8-NEXT: flat_load_ushort v0, v[0:1]255; GFX8-NEXT: v_mov_b32_e32 v1, 0256; GFX8-NEXT: s_waitcnt vmcnt(0)257; GFX8-NEXT: s_setpc_b64 s[30:31]258;259; GFX6-LABEL: zextload_global_i16_to_i64:260; GFX6: ; %bb.0:261; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)262; GFX6-NEXT: s_mov_b32 s6, 0263; GFX6-NEXT: s_mov_b32 s7, 0xf000264; GFX6-NEXT: s_mov_b64 s[4:5], 0265; GFX6-NEXT: buffer_load_ushort v0, v[0:1], s[4:7], 0 addr64266; GFX6-NEXT: v_mov_b32_e32 v1, 0267; GFX6-NEXT: s_waitcnt vmcnt(0)268; GFX6-NEXT: s_setpc_b64 s[30:31]269;270; GFX10-LABEL: zextload_global_i16_to_i64:271; GFX10: ; %bb.0:272; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)273; GFX10-NEXT: global_load_ushort v0, v[0:1], off274; GFX10-NEXT: v_mov_b32_e32 v1, 0275; GFX10-NEXT: s_waitcnt vmcnt(0)276; GFX10-NEXT: s_setpc_b64 s[30:31]277;278; GFX11-LABEL: zextload_global_i16_to_i64:279; GFX11: ; %bb.0:280; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)281; GFX11-NEXT: global_load_u16 v0, v[0:1], off282; GFX11-NEXT: v_mov_b32_e32 v1, 0283; GFX11-NEXT: s_waitcnt vmcnt(0)284; GFX11-NEXT: s_setpc_b64 s[30:31]285 %load = load i16, ptr addrspace(1) %ptr286 %ext = zext i16 %load to i64287 ret i64 %ext288}289 290define i64 @zextload_global_i32_to_i64(ptr addrspace(1) %ptr) {291; GFX9-LABEL: zextload_global_i32_to_i64:292; GFX9: ; %bb.0:293; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)294; GFX9-NEXT: global_load_dword v0, v[0:1], off295; GFX9-NEXT: v_mov_b32_e32 v1, 0296; GFX9-NEXT: s_waitcnt vmcnt(0)297; GFX9-NEXT: s_setpc_b64 s[30:31]298;299; GFX8-LABEL: zextload_global_i32_to_i64:300; GFX8: ; %bb.0:301; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)302; GFX8-NEXT: flat_load_dword v0, v[0:1]303; GFX8-NEXT: v_mov_b32_e32 v1, 0304; GFX8-NEXT: s_waitcnt vmcnt(0)305; GFX8-NEXT: s_setpc_b64 s[30:31]306;307; GFX6-LABEL: zextload_global_i32_to_i64:308; GFX6: ; %bb.0:309; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)310; GFX6-NEXT: s_mov_b32 s6, 0311; GFX6-NEXT: s_mov_b32 s7, 0xf000312; GFX6-NEXT: s_mov_b64 s[4:5], 0313; GFX6-NEXT: buffer_load_dword v0, v[0:1], s[4:7], 0 addr64314; GFX6-NEXT: v_mov_b32_e32 v1, 0315; GFX6-NEXT: s_waitcnt vmcnt(0)316; GFX6-NEXT: s_setpc_b64 s[30:31]317;318; GFX10-LABEL: zextload_global_i32_to_i64:319; GFX10: ; %bb.0:320; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)321; GFX10-NEXT: global_load_dword v0, v[0:1], off322; GFX10-NEXT: v_mov_b32_e32 v1, 0323; GFX10-NEXT: s_waitcnt vmcnt(0)324; GFX10-NEXT: s_setpc_b64 s[30:31]325;326; GFX11-LABEL: zextload_global_i32_to_i64:327; GFX11: ; %bb.0:328; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)329; GFX11-NEXT: global_load_b32 v0, v[0:1], off330; GFX11-NEXT: v_mov_b32_e32 v1, 0331; GFX11-NEXT: s_waitcnt vmcnt(0)332; GFX11-NEXT: s_setpc_b64 s[30:31]333 %load = load i32, ptr addrspace(1) %ptr334 %ext = zext i32 %load to i64335 ret i64 %ext336}337 338define i96 @zextload_global_i32_to_i96(ptr addrspace(1) %ptr) {339; GFX9-LABEL: zextload_global_i32_to_i96:340; GFX9: ; %bb.0:341; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)342; GFX9-NEXT: global_load_dword v0, v[0:1], off343; GFX9-NEXT: v_mov_b32_e32 v1, 0344; GFX9-NEXT: v_mov_b32_e32 v2, 0345; GFX9-NEXT: s_waitcnt vmcnt(0)346; GFX9-NEXT: s_setpc_b64 s[30:31]347;348; GFX8-LABEL: zextload_global_i32_to_i96:349; GFX8: ; %bb.0:350; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)351; GFX8-NEXT: flat_load_dword v0, v[0:1]352; GFX8-NEXT: v_mov_b32_e32 v1, 0353; GFX8-NEXT: v_mov_b32_e32 v2, 0354; GFX8-NEXT: s_waitcnt vmcnt(0)355; GFX8-NEXT: s_setpc_b64 s[30:31]356;357; GFX6-LABEL: zextload_global_i32_to_i96:358; GFX6: ; %bb.0:359; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)360; GFX6-NEXT: s_mov_b32 s6, 0361; GFX6-NEXT: s_mov_b32 s7, 0xf000362; GFX6-NEXT: s_mov_b64 s[4:5], 0363; GFX6-NEXT: buffer_load_dword v0, v[0:1], s[4:7], 0 addr64364; GFX6-NEXT: v_mov_b32_e32 v1, 0365; GFX6-NEXT: v_mov_b32_e32 v2, 0366; GFX6-NEXT: s_waitcnt vmcnt(0)367; GFX6-NEXT: s_setpc_b64 s[30:31]368;369; GFX10-LABEL: zextload_global_i32_to_i96:370; GFX10: ; %bb.0:371; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)372; GFX10-NEXT: global_load_dword v0, v[0:1], off373; GFX10-NEXT: v_mov_b32_e32 v1, 0374; GFX10-NEXT: v_mov_b32_e32 v2, 0375; GFX10-NEXT: s_waitcnt vmcnt(0)376; GFX10-NEXT: s_setpc_b64 s[30:31]377;378; GFX11-LABEL: zextload_global_i32_to_i96:379; GFX11: ; %bb.0:380; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)381; GFX11-NEXT: global_load_b32 v0, v[0:1], off382; GFX11-NEXT: v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v2, 0383; GFX11-NEXT: s_waitcnt vmcnt(0)384; GFX11-NEXT: s_setpc_b64 s[30:31]385 %load = load i32, ptr addrspace(1) %ptr386 %ext = zext i32 %load to i96387 ret i96 %ext388}389 390define i128 @zextload_global_i32_to_i128(ptr addrspace(1) %ptr) {391; GFX9-LABEL: zextload_global_i32_to_i128:392; GFX9: ; %bb.0:393; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)394; GFX9-NEXT: global_load_dword v0, v[0:1], off395; GFX9-NEXT: v_mov_b32_e32 v1, 0396; GFX9-NEXT: v_mov_b32_e32 v2, 0397; GFX9-NEXT: v_mov_b32_e32 v3, 0398; GFX9-NEXT: s_waitcnt vmcnt(0)399; GFX9-NEXT: s_setpc_b64 s[30:31]400;401; GFX8-LABEL: zextload_global_i32_to_i128:402; GFX8: ; %bb.0:403; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)404; GFX8-NEXT: flat_load_dword v0, v[0:1]405; GFX8-NEXT: v_mov_b32_e32 v1, 0406; GFX8-NEXT: v_mov_b32_e32 v2, 0407; GFX8-NEXT: v_mov_b32_e32 v3, 0408; GFX8-NEXT: s_waitcnt vmcnt(0)409; GFX8-NEXT: s_setpc_b64 s[30:31]410;411; GFX6-LABEL: zextload_global_i32_to_i128:412; GFX6: ; %bb.0:413; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)414; GFX6-NEXT: s_mov_b32 s6, 0415; GFX6-NEXT: s_mov_b32 s7, 0xf000416; GFX6-NEXT: s_mov_b64 s[4:5], 0417; GFX6-NEXT: buffer_load_dword v0, v[0:1], s[4:7], 0 addr64418; GFX6-NEXT: v_mov_b32_e32 v1, 0419; GFX6-NEXT: v_mov_b32_e32 v2, 0420; GFX6-NEXT: v_mov_b32_e32 v3, 0421; GFX6-NEXT: s_waitcnt vmcnt(0)422; GFX6-NEXT: s_setpc_b64 s[30:31]423;424; GFX10-LABEL: zextload_global_i32_to_i128:425; GFX10: ; %bb.0:426; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)427; GFX10-NEXT: global_load_dword v0, v[0:1], off428; GFX10-NEXT: v_mov_b32_e32 v1, 0429; GFX10-NEXT: v_mov_b32_e32 v2, 0430; GFX10-NEXT: v_mov_b32_e32 v3, 0431; GFX10-NEXT: s_waitcnt vmcnt(0)432; GFX10-NEXT: s_setpc_b64 s[30:31]433;434; GFX11-LABEL: zextload_global_i32_to_i128:435; GFX11: ; %bb.0:436; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)437; GFX11-NEXT: global_load_b32 v0, v[0:1], off438; GFX11-NEXT: v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v2, 0439; GFX11-NEXT: v_mov_b32_e32 v3, 0440; GFX11-NEXT: s_waitcnt vmcnt(0)441; GFX11-NEXT: s_setpc_b64 s[30:31]442 %load = load i32, ptr addrspace(1) %ptr443 %ext = zext i32 %load to i128444 ret i128 %ext445}446