brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.4 KiB · d7fcbd5 Raw
448 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=hawaii < %s | FileCheck --check-prefix=GFX7 %s4; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=gfx1010 < %s | FileCheck --check-prefix=GFX10 %s5; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=gfx1100 < %s | FileCheck --check-prefix=GFX11 %s6 7; FIXME:8; XUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=tahiti < %s | FileCheck --check-prefix=GFX6 %s9 10define <4 x i32> @load_lds_v4i32(ptr addrspace(3) %ptr) {11; GFX9-LABEL: load_lds_v4i32:12; GFX9:       ; %bb.0:13; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14; GFX9-NEXT:    ds_read_b128 v[0:3], v015; GFX9-NEXT:    s_waitcnt lgkmcnt(0)16; GFX9-NEXT:    s_setpc_b64 s[30:31]17;18; GFX7-LABEL: load_lds_v4i32:19; GFX7:       ; %bb.0:20; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)21; GFX7-NEXT:    s_mov_b32 m0, -122; GFX7-NEXT:    ds_read_b128 v[0:3], v023; GFX7-NEXT:    s_waitcnt lgkmcnt(0)24; GFX7-NEXT:    s_setpc_b64 s[30:31]25;26; GFX10-LABEL: load_lds_v4i32:27; GFX10:       ; %bb.0:28; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)29; GFX10-NEXT:    ds_read_b128 v[0:3], v030; GFX10-NEXT:    s_waitcnt lgkmcnt(0)31; GFX10-NEXT:    s_setpc_b64 s[30:31]32;33; GFX11-LABEL: load_lds_v4i32:34; GFX11:       ; %bb.0:35; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)36; GFX11-NEXT:    ds_load_b128 v[0:3], v037; GFX11-NEXT:    s_waitcnt lgkmcnt(0)38; GFX11-NEXT:    s_setpc_b64 s[30:31]39  %load = load <4 x i32>, ptr addrspace(3) %ptr40  ret <4 x i32> %load41}42 43define <4 x i32> @load_lds_v4i32_align1(ptr addrspace(3) %ptr) {44; GFX9-LABEL: load_lds_v4i32_align1:45; GFX9:       ; %bb.0:46; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)47; GFX9-NEXT:    ds_read_u8 v1, v048; GFX9-NEXT:    ds_read_u8 v2, v0 offset:149; GFX9-NEXT:    ds_read_u8 v3, v0 offset:250; GFX9-NEXT:    ds_read_u8 v4, v0 offset:351; GFX9-NEXT:    ds_read_u8 v5, v0 offset:452; GFX9-NEXT:    ds_read_u8 v6, v0 offset:553; GFX9-NEXT:    ds_read_u8 v7, v0 offset:654; GFX9-NEXT:    ds_read_u8 v8, v0 offset:755; GFX9-NEXT:    s_waitcnt lgkmcnt(6)56; GFX9-NEXT:    v_lshl_or_b32 v1, v2, 8, v157; GFX9-NEXT:    s_waitcnt lgkmcnt(4)58; GFX9-NEXT:    v_lshlrev_b32_e32 v2, 24, v459; GFX9-NEXT:    v_lshlrev_b32_e32 v3, 16, v360; GFX9-NEXT:    v_or3_b32 v4, v2, v3, v161; GFX9-NEXT:    s_waitcnt lgkmcnt(2)62; GFX9-NEXT:    v_lshl_or_b32 v1, v6, 8, v563; GFX9-NEXT:    s_waitcnt lgkmcnt(0)64; GFX9-NEXT:    v_lshlrev_b32_e32 v2, 24, v865; GFX9-NEXT:    v_lshlrev_b32_e32 v3, 16, v766; GFX9-NEXT:    v_or3_b32 v1, v2, v3, v167; GFX9-NEXT:    ds_read_u8 v2, v0 offset:868; GFX9-NEXT:    ds_read_u8 v3, v0 offset:969; GFX9-NEXT:    ds_read_u8 v5, v0 offset:1070; GFX9-NEXT:    ds_read_u8 v6, v0 offset:1171; GFX9-NEXT:    ds_read_u8 v7, v0 offset:1272; GFX9-NEXT:    ds_read_u8 v8, v0 offset:1373; GFX9-NEXT:    ds_read_u8 v9, v0 offset:1474; GFX9-NEXT:    ds_read_u8 v0, v0 offset:1575; GFX9-NEXT:    s_waitcnt lgkmcnt(6)76; GFX9-NEXT:    v_lshl_or_b32 v2, v3, 8, v277; GFX9-NEXT:    s_waitcnt lgkmcnt(4)78; GFX9-NEXT:    v_lshlrev_b32_e32 v3, 24, v679; GFX9-NEXT:    v_lshlrev_b32_e32 v5, 16, v580; GFX9-NEXT:    v_or3_b32 v2, v3, v5, v281; GFX9-NEXT:    s_waitcnt lgkmcnt(2)82; GFX9-NEXT:    v_lshl_or_b32 v3, v8, 8, v783; GFX9-NEXT:    s_waitcnt lgkmcnt(0)84; GFX9-NEXT:    v_lshlrev_b32_e32 v0, 24, v085; GFX9-NEXT:    v_lshlrev_b32_e32 v5, 16, v986; GFX9-NEXT:    v_or3_b32 v3, v0, v5, v387; GFX9-NEXT:    v_mov_b32_e32 v0, v488; GFX9-NEXT:    s_setpc_b64 s[30:31]89;90; GFX7-LABEL: load_lds_v4i32_align1:91; GFX7:       ; %bb.0:92; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)93; GFX7-NEXT:    s_mov_b32 m0, -194; GFX7-NEXT:    ds_read_u8 v1, v095; GFX7-NEXT:    ds_read_u8 v2, v0 offset:196; GFX7-NEXT:    ds_read_u8 v3, v0 offset:297; GFX7-NEXT:    ds_read_u8 v4, v0 offset:398; GFX7-NEXT:    ds_read_u8 v5, v0 offset:499; GFX7-NEXT:    ds_read_u8 v6, v0 offset:5100; GFX7-NEXT:    ds_read_u8 v7, v0 offset:6101; GFX7-NEXT:    ds_read_u8 v8, v0 offset:7102; GFX7-NEXT:    s_waitcnt lgkmcnt(6)103; GFX7-NEXT:    v_lshlrev_b32_e32 v2, 8, v2104; GFX7-NEXT:    v_or_b32_e32 v1, v2, v1105; GFX7-NEXT:    s_waitcnt lgkmcnt(4)106; GFX7-NEXT:    v_lshlrev_b32_e32 v2, 24, v4107; GFX7-NEXT:    v_lshlrev_b32_e32 v3, 16, v3108; GFX7-NEXT:    v_or_b32_e32 v2, v2, v3109; GFX7-NEXT:    v_or_b32_e32 v4, v2, v1110; GFX7-NEXT:    s_waitcnt lgkmcnt(2)111; GFX7-NEXT:    v_lshlrev_b32_e32 v1, 8, v6112; GFX7-NEXT:    s_waitcnt lgkmcnt(0)113; GFX7-NEXT:    v_lshlrev_b32_e32 v2, 24, v8114; GFX7-NEXT:    v_lshlrev_b32_e32 v3, 16, v7115; GFX7-NEXT:    v_or_b32_e32 v1, v1, v5116; GFX7-NEXT:    v_or_b32_e32 v2, v2, v3117; GFX7-NEXT:    v_or_b32_e32 v1, v2, v1118; GFX7-NEXT:    ds_read_u8 v2, v0 offset:8119; GFX7-NEXT:    ds_read_u8 v3, v0 offset:9120; GFX7-NEXT:    ds_read_u8 v5, v0 offset:10121; GFX7-NEXT:    ds_read_u8 v6, v0 offset:11122; GFX7-NEXT:    ds_read_u8 v7, v0 offset:12123; GFX7-NEXT:    ds_read_u8 v8, v0 offset:13124; GFX7-NEXT:    ds_read_u8 v9, v0 offset:14125; GFX7-NEXT:    ds_read_u8 v0, v0 offset:15126; GFX7-NEXT:    s_waitcnt lgkmcnt(6)127; GFX7-NEXT:    v_lshlrev_b32_e32 v3, 8, v3128; GFX7-NEXT:    v_or_b32_e32 v2, v3, v2129; GFX7-NEXT:    s_waitcnt lgkmcnt(4)130; GFX7-NEXT:    v_lshlrev_b32_e32 v3, 24, v6131; GFX7-NEXT:    v_lshlrev_b32_e32 v5, 16, v5132; GFX7-NEXT:    v_or_b32_e32 v3, v3, v5133; GFX7-NEXT:    v_or_b32_e32 v2, v3, v2134; GFX7-NEXT:    s_waitcnt lgkmcnt(2)135; GFX7-NEXT:    v_lshlrev_b32_e32 v3, 8, v8136; GFX7-NEXT:    s_waitcnt lgkmcnt(0)137; GFX7-NEXT:    v_lshlrev_b32_e32 v0, 24, v0138; GFX7-NEXT:    v_lshlrev_b32_e32 v5, 16, v9139; GFX7-NEXT:    v_or_b32_e32 v3, v3, v7140; GFX7-NEXT:    v_or_b32_e32 v0, v0, v5141; GFX7-NEXT:    v_or_b32_e32 v3, v0, v3142; GFX7-NEXT:    v_mov_b32_e32 v0, v4143; GFX7-NEXT:    s_setpc_b64 s[30:31]144;145; GFX10-LABEL: load_lds_v4i32_align1:146; GFX10:       ; %bb.0:147; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)148; GFX10-NEXT:    ds_read_u8 v1, v0149; GFX10-NEXT:    ds_read_u8 v2, v0 offset:1150; GFX10-NEXT:    ds_read_u8 v3, v0 offset:2151; GFX10-NEXT:    ds_read_u8 v4, v0 offset:3152; GFX10-NEXT:    ds_read_u8 v5, v0 offset:4153; GFX10-NEXT:    ds_read_u8 v6, v0 offset:5154; GFX10-NEXT:    ds_read_u8 v7, v0 offset:6155; GFX10-NEXT:    ds_read_u8 v8, v0 offset:7156; GFX10-NEXT:    ds_read_u8 v9, v0 offset:8157; GFX10-NEXT:    ds_read_u8 v10, v0 offset:9158; GFX10-NEXT:    ds_read_u8 v11, v0 offset:10159; GFX10-NEXT:    ds_read_u8 v12, v0 offset:11160; GFX10-NEXT:    ds_read_u8 v13, v0 offset:12161; GFX10-NEXT:    ds_read_u8 v14, v0 offset:13162; GFX10-NEXT:    ds_read_u8 v15, v0 offset:15163; GFX10-NEXT:    ds_read_u8 v0, v0 offset:14164; GFX10-NEXT:    s_waitcnt lgkmcnt(14)165; GFX10-NEXT:    v_lshl_or_b32 v1, v2, 8, v1166; GFX10-NEXT:    s_waitcnt lgkmcnt(13)167; GFX10-NEXT:    v_lshlrev_b32_e32 v3, 16, v3168; GFX10-NEXT:    s_waitcnt lgkmcnt(12)169; GFX10-NEXT:    v_lshlrev_b32_e32 v2, 24, v4170; GFX10-NEXT:    s_waitcnt lgkmcnt(10)171; GFX10-NEXT:    v_lshl_or_b32 v4, v6, 8, v5172; GFX10-NEXT:    s_waitcnt lgkmcnt(9)173; GFX10-NEXT:    v_lshlrev_b32_e32 v6, 16, v7174; GFX10-NEXT:    s_waitcnt lgkmcnt(8)175; GFX10-NEXT:    v_lshlrev_b32_e32 v5, 24, v8176; GFX10-NEXT:    s_waitcnt lgkmcnt(6)177; GFX10-NEXT:    v_lshl_or_b32 v7, v10, 8, v9178; GFX10-NEXT:    s_waitcnt lgkmcnt(5)179; GFX10-NEXT:    v_lshlrev_b32_e32 v9, 16, v11180; GFX10-NEXT:    s_waitcnt lgkmcnt(4)181; GFX10-NEXT:    v_lshlrev_b32_e32 v8, 24, v12182; GFX10-NEXT:    s_waitcnt lgkmcnt(2)183; GFX10-NEXT:    v_lshl_or_b32 v10, v14, 8, v13184; GFX10-NEXT:    s_waitcnt lgkmcnt(1)185; GFX10-NEXT:    v_lshlrev_b32_e32 v11, 24, v15186; GFX10-NEXT:    s_waitcnt lgkmcnt(0)187; GFX10-NEXT:    v_lshlrev_b32_e32 v12, 16, v0188; GFX10-NEXT:    v_or3_b32 v0, v2, v3, v1189; GFX10-NEXT:    v_or3_b32 v1, v5, v6, v4190; GFX10-NEXT:    v_or3_b32 v2, v8, v9, v7191; GFX10-NEXT:    v_or3_b32 v3, v11, v12, v10192; GFX10-NEXT:    s_setpc_b64 s[30:31]193;194; GFX11-LABEL: load_lds_v4i32_align1:195; GFX11:       ; %bb.0:196; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)197; GFX11-NEXT:    ds_load_u8 v1, v0198; GFX11-NEXT:    ds_load_u8 v2, v0 offset:1199; GFX11-NEXT:    ds_load_u8 v3, v0 offset:2200; GFX11-NEXT:    ds_load_u8 v4, v0 offset:3201; GFX11-NEXT:    ds_load_u8 v5, v0 offset:4202; GFX11-NEXT:    ds_load_u8 v6, v0 offset:5203; GFX11-NEXT:    ds_load_u8 v7, v0 offset:6204; GFX11-NEXT:    ds_load_u8 v8, v0 offset:7205; GFX11-NEXT:    ds_load_u8 v9, v0 offset:8206; GFX11-NEXT:    ds_load_u8 v10, v0 offset:9207; GFX11-NEXT:    ds_load_u8 v11, v0 offset:10208; GFX11-NEXT:    ds_load_u8 v12, v0 offset:11209; GFX11-NEXT:    ds_load_u8 v13, v0 offset:12210; GFX11-NEXT:    ds_load_u8 v14, v0 offset:13211; GFX11-NEXT:    ds_load_u8 v15, v0 offset:15212; GFX11-NEXT:    ds_load_u8 v0, v0 offset:14213; GFX11-NEXT:    s_waitcnt lgkmcnt(14)214; GFX11-NEXT:    v_lshl_or_b32 v1, v2, 8, v1215; GFX11-NEXT:    s_waitcnt lgkmcnt(13)216; GFX11-NEXT:    v_lshlrev_b32_e32 v3, 16, v3217; GFX11-NEXT:    s_waitcnt lgkmcnt(12)218; GFX11-NEXT:    v_lshlrev_b32_e32 v2, 24, v4219; GFX11-NEXT:    s_waitcnt lgkmcnt(10)220; GFX11-NEXT:    v_lshl_or_b32 v4, v6, 8, v5221; GFX11-NEXT:    s_waitcnt lgkmcnt(9)222; GFX11-NEXT:    v_lshlrev_b32_e32 v6, 16, v7223; GFX11-NEXT:    s_waitcnt lgkmcnt(8)224; GFX11-NEXT:    v_lshlrev_b32_e32 v5, 24, v8225; GFX11-NEXT:    s_waitcnt lgkmcnt(6)226; GFX11-NEXT:    v_lshl_or_b32 v7, v10, 8, v9227; GFX11-NEXT:    s_waitcnt lgkmcnt(5)228; GFX11-NEXT:    v_lshlrev_b32_e32 v9, 16, v11229; GFX11-NEXT:    s_waitcnt lgkmcnt(4)230; GFX11-NEXT:    v_lshlrev_b32_e32 v8, 24, v12231; GFX11-NEXT:    s_waitcnt lgkmcnt(2)232; GFX11-NEXT:    v_lshl_or_b32 v10, v14, 8, v13233; GFX11-NEXT:    s_waitcnt lgkmcnt(1)234; GFX11-NEXT:    v_lshlrev_b32_e32 v11, 24, v15235; GFX11-NEXT:    s_waitcnt lgkmcnt(0)236; GFX11-NEXT:    v_lshlrev_b32_e32 v12, 16, v0237; GFX11-NEXT:    v_or3_b32 v0, v2, v3, v1238; GFX11-NEXT:    v_or3_b32 v1, v5, v6, v4239; GFX11-NEXT:    v_or3_b32 v2, v8, v9, v7240; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_4)241; GFX11-NEXT:    v_or3_b32 v3, v11, v12, v10242; GFX11-NEXT:    s_setpc_b64 s[30:31]243  %load = load <4 x i32>, ptr addrspace(3) %ptr, align 1244  ret <4 x i32> %load245}246 247define <4 x i32> @load_lds_v4i32_align2(ptr addrspace(3) %ptr) {248; GFX9-LABEL: load_lds_v4i32_align2:249; GFX9:       ; %bb.0:250; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)251; GFX9-NEXT:    ds_read_u16 v1, v0252; GFX9-NEXT:    ds_read_u16 v2, v0 offset:2253; GFX9-NEXT:    ds_read_u16 v3, v0 offset:4254; GFX9-NEXT:    ds_read_u16 v4, v0 offset:6255; GFX9-NEXT:    ds_read_u16 v5, v0 offset:8256; GFX9-NEXT:    ds_read_u16 v6, v0 offset:10257; GFX9-NEXT:    ds_read_u16 v7, v0 offset:12258; GFX9-NEXT:    ds_read_u16 v8, v0 offset:14259; GFX9-NEXT:    s_waitcnt lgkmcnt(6)260; GFX9-NEXT:    v_lshl_or_b32 v0, v2, 16, v1261; GFX9-NEXT:    s_waitcnt lgkmcnt(4)262; GFX9-NEXT:    v_lshl_or_b32 v1, v4, 16, v3263; GFX9-NEXT:    s_waitcnt lgkmcnt(2)264; GFX9-NEXT:    v_lshl_or_b32 v2, v6, 16, v5265; GFX9-NEXT:    s_waitcnt lgkmcnt(0)266; GFX9-NEXT:    v_lshl_or_b32 v3, v8, 16, v7267; GFX9-NEXT:    s_setpc_b64 s[30:31]268;269; GFX7-LABEL: load_lds_v4i32_align2:270; GFX7:       ; %bb.0:271; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)272; GFX7-NEXT:    s_mov_b32 m0, -1273; GFX7-NEXT:    ds_read_u16 v1, v0274; GFX7-NEXT:    ds_read_u16 v2, v0 offset:2275; GFX7-NEXT:    ds_read_u16 v3, v0 offset:4276; GFX7-NEXT:    ds_read_u16 v4, v0 offset:6277; GFX7-NEXT:    ds_read_u16 v5, v0 offset:8278; GFX7-NEXT:    ds_read_u16 v6, v0 offset:10279; GFX7-NEXT:    ds_read_u16 v7, v0 offset:12280; GFX7-NEXT:    ds_read_u16 v8, v0 offset:14281; GFX7-NEXT:    s_waitcnt lgkmcnt(6)282; GFX7-NEXT:    v_lshlrev_b32_e32 v0, 16, v2283; GFX7-NEXT:    v_or_b32_e32 v0, v0, v1284; GFX7-NEXT:    s_waitcnt lgkmcnt(4)285; GFX7-NEXT:    v_lshlrev_b32_e32 v1, 16, v4286; GFX7-NEXT:    v_or_b32_e32 v1, v1, v3287; GFX7-NEXT:    s_waitcnt lgkmcnt(2)288; GFX7-NEXT:    v_lshlrev_b32_e32 v2, 16, v6289; GFX7-NEXT:    s_waitcnt lgkmcnt(0)290; GFX7-NEXT:    v_lshlrev_b32_e32 v3, 16, v8291; GFX7-NEXT:    v_or_b32_e32 v2, v2, v5292; GFX7-NEXT:    v_or_b32_e32 v3, v3, v7293; GFX7-NEXT:    s_setpc_b64 s[30:31]294;295; GFX10-LABEL: load_lds_v4i32_align2:296; GFX10:       ; %bb.0:297; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)298; GFX10-NEXT:    ds_read_u16 v1, v0299; GFX10-NEXT:    ds_read_u16 v2, v0 offset:2300; GFX10-NEXT:    ds_read_u16 v3, v0 offset:4301; GFX10-NEXT:    ds_read_u16 v4, v0 offset:6302; GFX10-NEXT:    ds_read_u16 v5, v0 offset:8303; GFX10-NEXT:    ds_read_u16 v6, v0 offset:10304; GFX10-NEXT:    ds_read_u16 v7, v0 offset:12305; GFX10-NEXT:    ds_read_u16 v8, v0 offset:14306; GFX10-NEXT:    s_waitcnt lgkmcnt(6)307; GFX10-NEXT:    v_lshl_or_b32 v0, v2, 16, v1308; GFX10-NEXT:    s_waitcnt lgkmcnt(4)309; GFX10-NEXT:    v_lshl_or_b32 v1, v4, 16, v3310; GFX10-NEXT:    s_waitcnt lgkmcnt(2)311; GFX10-NEXT:    v_lshl_or_b32 v2, v6, 16, v5312; GFX10-NEXT:    s_waitcnt lgkmcnt(0)313; GFX10-NEXT:    v_lshl_or_b32 v3, v8, 16, v7314; GFX10-NEXT:    s_setpc_b64 s[30:31]315;316; GFX11-LABEL: load_lds_v4i32_align2:317; GFX11:       ; %bb.0:318; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)319; GFX11-NEXT:    ds_load_u16 v1, v0320; GFX11-NEXT:    ds_load_u16 v2, v0 offset:2321; GFX11-NEXT:    ds_load_u16 v3, v0 offset:4322; GFX11-NEXT:    ds_load_u16 v4, v0 offset:6323; GFX11-NEXT:    ds_load_u16 v5, v0 offset:8324; GFX11-NEXT:    ds_load_u16 v6, v0 offset:10325; GFX11-NEXT:    ds_load_u16 v7, v0 offset:12326; GFX11-NEXT:    ds_load_u16 v8, v0 offset:14327; GFX11-NEXT:    s_waitcnt lgkmcnt(6)328; GFX11-NEXT:    v_lshl_or_b32 v0, v2, 16, v1329; GFX11-NEXT:    s_waitcnt lgkmcnt(4)330; GFX11-NEXT:    v_lshl_or_b32 v1, v4, 16, v3331; GFX11-NEXT:    s_waitcnt lgkmcnt(2)332; GFX11-NEXT:    v_lshl_or_b32 v2, v6, 16, v5333; GFX11-NEXT:    s_waitcnt lgkmcnt(0)334; GFX11-NEXT:    v_lshl_or_b32 v3, v8, 16, v7335; GFX11-NEXT:    s_setpc_b64 s[30:31]336  %load = load <4 x i32>, ptr addrspace(3) %ptr, align 2337  ret <4 x i32> %load338}339 340define <4 x i32> @load_lds_v4i32_align4(ptr addrspace(3) %ptr) {341; GFX9-LABEL: load_lds_v4i32_align4:342; GFX9:       ; %bb.0:343; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)344; GFX9-NEXT:    v_mov_b32_e32 v2, v0345; GFX9-NEXT:    ds_read2_b32 v[0:1], v0 offset1:1346; GFX9-NEXT:    ds_read2_b32 v[2:3], v2 offset0:2 offset1:3347; GFX9-NEXT:    s_waitcnt lgkmcnt(0)348; GFX9-NEXT:    s_setpc_b64 s[30:31]349;350; GFX7-LABEL: load_lds_v4i32_align4:351; GFX7:       ; %bb.0:352; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)353; GFX7-NEXT:    v_mov_b32_e32 v2, v0354; GFX7-NEXT:    s_mov_b32 m0, -1355; GFX7-NEXT:    ds_read2_b32 v[0:1], v0 offset1:1356; GFX7-NEXT:    ds_read2_b32 v[2:3], v2 offset0:2 offset1:3357; GFX7-NEXT:    s_waitcnt lgkmcnt(0)358; GFX7-NEXT:    s_setpc_b64 s[30:31]359;360; GFX10-LABEL: load_lds_v4i32_align4:361; GFX10:       ; %bb.0:362; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)363; GFX10-NEXT:    v_mov_b32_e32 v2, v0364; GFX10-NEXT:    ds_read2_b32 v[0:1], v0 offset1:1365; GFX10-NEXT:    ds_read2_b32 v[2:3], v2 offset0:2 offset1:3366; GFX10-NEXT:    s_waitcnt lgkmcnt(0)367; GFX10-NEXT:    s_setpc_b64 s[30:31]368;369; GFX11-LABEL: load_lds_v4i32_align4:370; GFX11:       ; %bb.0:371; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)372; GFX11-NEXT:    v_mov_b32_e32 v2, v0373; GFX11-NEXT:    ds_load_2addr_b32 v[0:1], v0 offset1:1374; GFX11-NEXT:    ds_load_2addr_b32 v[2:3], v2 offset0:2 offset1:3375; GFX11-NEXT:    s_waitcnt lgkmcnt(0)376; GFX11-NEXT:    s_setpc_b64 s[30:31]377  %load = load <4 x i32>, ptr addrspace(3) %ptr, align 4378  ret <4 x i32> %load379}380 381define <4 x i32> @load_lds_v4i32_align8(ptr addrspace(3) %ptr) {382; GFX9-LABEL: load_lds_v4i32_align8:383; GFX9:       ; %bb.0:384; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)385; GFX9-NEXT:    ds_read2_b64 v[0:3], v0 offset1:1386; GFX9-NEXT:    s_waitcnt lgkmcnt(0)387; GFX9-NEXT:    s_setpc_b64 s[30:31]388;389; GFX7-LABEL: load_lds_v4i32_align8:390; GFX7:       ; %bb.0:391; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)392; GFX7-NEXT:    s_mov_b32 m0, -1393; GFX7-NEXT:    ds_read2_b64 v[0:3], v0 offset1:1394; GFX7-NEXT:    s_waitcnt lgkmcnt(0)395; GFX7-NEXT:    s_setpc_b64 s[30:31]396;397; GFX10-LABEL: load_lds_v4i32_align8:398; GFX10:       ; %bb.0:399; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)400; GFX10-NEXT:    v_mov_b32_e32 v2, v0401; GFX10-NEXT:    ds_read2_b32 v[0:1], v0 offset1:1402; GFX10-NEXT:    ds_read2_b32 v[2:3], v2 offset0:2 offset1:3403; GFX10-NEXT:    s_waitcnt lgkmcnt(0)404; GFX10-NEXT:    s_setpc_b64 s[30:31]405;406; GFX11-LABEL: load_lds_v4i32_align8:407; GFX11:       ; %bb.0:408; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)409; GFX11-NEXT:    ds_load_2addr_b64 v[0:3], v0 offset1:1410; GFX11-NEXT:    s_waitcnt lgkmcnt(0)411; GFX11-NEXT:    s_setpc_b64 s[30:31]412  %load = load <4 x i32>, ptr addrspace(3) %ptr, align 8413  ret <4 x i32> %load414}415 416define <4 x i32> @load_lds_v4i32_align16(ptr addrspace(3) %ptr) {417; GFX9-LABEL: load_lds_v4i32_align16:418; GFX9:       ; %bb.0:419; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)420; GFX9-NEXT:    ds_read_b128 v[0:3], v0421; GFX9-NEXT:    s_waitcnt lgkmcnt(0)422; GFX9-NEXT:    s_setpc_b64 s[30:31]423;424; GFX7-LABEL: load_lds_v4i32_align16:425; GFX7:       ; %bb.0:426; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)427; GFX7-NEXT:    s_mov_b32 m0, -1428; GFX7-NEXT:    ds_read_b128 v[0:3], v0429; GFX7-NEXT:    s_waitcnt lgkmcnt(0)430; GFX7-NEXT:    s_setpc_b64 s[30:31]431;432; GFX10-LABEL: load_lds_v4i32_align16:433; GFX10:       ; %bb.0:434; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)435; GFX10-NEXT:    ds_read_b128 v[0:3], v0436; GFX10-NEXT:    s_waitcnt lgkmcnt(0)437; GFX10-NEXT:    s_setpc_b64 s[30:31]438;439; GFX11-LABEL: load_lds_v4i32_align16:440; GFX11:       ; %bb.0:441; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)442; GFX11-NEXT:    ds_load_b128 v[0:3], v0443; GFX11-NEXT:    s_waitcnt lgkmcnt(0)444; GFX11-NEXT:    s_setpc_b64 s[30:31]445  %load = load <4 x i32>, ptr addrspace(3) %ptr, align 16446  ret <4 x i32> %load447}448