brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.1 KiB · ae7f6ec Raw
165 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-amdhsa -mcpu=gfx900 < %s | FileCheck -check-prefix=GCN %s3; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 < %s | FileCheck -check-prefix=GFX10 %s4; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 < %s | FileCheck -check-prefix=GFX11 %s5 6define amdgpu_kernel void @v_insert_v64i32_37(ptr addrspace(1) %ptr.in, ptr addrspace(1) %ptr.out) #0 {7; GCN-LABEL: v_insert_v64i32_37:8; GCN:       ; %bb.0:9; GCN-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x010; GCN-NEXT:    v_lshlrev_b32_e32 v64, 8, v011; GCN-NEXT:    s_waitcnt lgkmcnt(0)12; GCN-NEXT:    global_load_dwordx4 v[0:3], v64, s[0:1]13; GCN-NEXT:    global_load_dwordx4 v[4:7], v64, s[0:1] offset:1614; GCN-NEXT:    global_load_dwordx4 v[8:11], v64, s[0:1] offset:3215; GCN-NEXT:    global_load_dwordx4 v[12:15], v64, s[0:1] offset:4816; GCN-NEXT:    global_load_dwordx4 v[16:19], v64, s[0:1] offset:6417; GCN-NEXT:    global_load_dwordx4 v[20:23], v64, s[0:1] offset:8018; GCN-NEXT:    global_load_dwordx4 v[24:27], v64, s[0:1] offset:9619; GCN-NEXT:    global_load_dwordx4 v[28:31], v64, s[0:1] offset:11220; GCN-NEXT:    global_load_dwordx4 v[32:35], v64, s[0:1] offset:12821; GCN-NEXT:    global_load_dwordx4 v[36:39], v64, s[0:1] offset:14422; GCN-NEXT:    global_load_dwordx4 v[40:43], v64, s[0:1] offset:16023; GCN-NEXT:    global_load_dwordx4 v[44:47], v64, s[0:1] offset:17624; GCN-NEXT:    global_load_dwordx4 v[48:51], v64, s[0:1] offset:19225; GCN-NEXT:    global_load_dwordx4 v[52:55], v64, s[0:1] offset:20826; GCN-NEXT:    global_load_dwordx4 v[56:59], v64, s[0:1] offset:22427; GCN-NEXT:    global_load_dwordx4 v[60:63], v64, s[0:1] offset:24028; GCN-NEXT:    s_waitcnt vmcnt(6)29; GCN-NEXT:    v_mov_b32_e32 v37, 0x3e730; GCN-NEXT:    global_store_dwordx4 v64, v[0:3], s[2:3]31; GCN-NEXT:    global_store_dwordx4 v64, v[4:7], s[2:3] offset:1632; GCN-NEXT:    global_store_dwordx4 v64, v[8:11], s[2:3] offset:3233; GCN-NEXT:    global_store_dwordx4 v64, v[12:15], s[2:3] offset:4834; GCN-NEXT:    global_store_dwordx4 v64, v[16:19], s[2:3] offset:6435; GCN-NEXT:    global_store_dwordx4 v64, v[20:23], s[2:3] offset:8036; GCN-NEXT:    global_store_dwordx4 v64, v[24:27], s[2:3] offset:9637; GCN-NEXT:    global_store_dwordx4 v64, v[28:31], s[2:3] offset:11238; GCN-NEXT:    global_store_dwordx4 v64, v[32:35], s[2:3] offset:12839; GCN-NEXT:    global_store_dwordx4 v64, v[36:39], s[2:3] offset:14440; GCN-NEXT:    s_waitcnt vmcnt(15)41; GCN-NEXT:    global_store_dwordx4 v64, v[40:43], s[2:3] offset:16042; GCN-NEXT:    s_waitcnt vmcnt(15)43; GCN-NEXT:    global_store_dwordx4 v64, v[44:47], s[2:3] offset:17644; GCN-NEXT:    s_waitcnt vmcnt(15)45; GCN-NEXT:    global_store_dwordx4 v64, v[48:51], s[2:3] offset:19246; GCN-NEXT:    s_waitcnt vmcnt(15)47; GCN-NEXT:    global_store_dwordx4 v64, v[52:55], s[2:3] offset:20848; GCN-NEXT:    s_waitcnt vmcnt(15)49; GCN-NEXT:    global_store_dwordx4 v64, v[56:59], s[2:3] offset:22450; GCN-NEXT:    s_waitcnt vmcnt(15)51; GCN-NEXT:    global_store_dwordx4 v64, v[60:63], s[2:3] offset:24052; GCN-NEXT:    s_endpgm53;54; GFX10-LABEL: v_insert_v64i32_37:55; GFX10:       ; %bb.0:56; GFX10-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x057; GFX10-NEXT:    v_lshlrev_b32_e32 v64, 8, v058; GFX10-NEXT:    s_waitcnt lgkmcnt(0)59; GFX10-NEXT:    s_clause 0xf60; GFX10-NEXT:    global_load_dwordx4 v[0:3], v64, s[0:1]61; GFX10-NEXT:    global_load_dwordx4 v[4:7], v64, s[0:1] offset:1662; GFX10-NEXT:    global_load_dwordx4 v[8:11], v64, s[0:1] offset:3263; GFX10-NEXT:    global_load_dwordx4 v[12:15], v64, s[0:1] offset:4864; GFX10-NEXT:    global_load_dwordx4 v[16:19], v64, s[0:1] offset:6465; GFX10-NEXT:    global_load_dwordx4 v[20:23], v64, s[0:1] offset:8066; GFX10-NEXT:    global_load_dwordx4 v[24:27], v64, s[0:1] offset:9667; GFX10-NEXT:    global_load_dwordx4 v[28:31], v64, s[0:1] offset:11268; GFX10-NEXT:    global_load_dwordx4 v[32:35], v64, s[0:1] offset:12869; GFX10-NEXT:    global_load_dwordx4 v[36:39], v64, s[0:1] offset:14470; GFX10-NEXT:    global_load_dwordx4 v[40:43], v64, s[0:1] offset:16071; GFX10-NEXT:    global_load_dwordx4 v[44:47], v64, s[0:1] offset:17672; GFX10-NEXT:    global_load_dwordx4 v[48:51], v64, s[0:1] offset:19273; GFX10-NEXT:    global_load_dwordx4 v[52:55], v64, s[0:1] offset:20874; GFX10-NEXT:    global_load_dwordx4 v[56:59], v64, s[0:1] offset:22475; GFX10-NEXT:    global_load_dwordx4 v[60:63], v64, s[0:1] offset:24076; GFX10-NEXT:    s_waitcnt vmcnt(6)77; GFX10-NEXT:    v_mov_b32_e32 v37, 0x3e778; GFX10-NEXT:    global_store_dwordx4 v64, v[0:3], s[2:3]79; GFX10-NEXT:    global_store_dwordx4 v64, v[4:7], s[2:3] offset:1680; GFX10-NEXT:    global_store_dwordx4 v64, v[8:11], s[2:3] offset:3281; GFX10-NEXT:    global_store_dwordx4 v64, v[12:15], s[2:3] offset:4882; GFX10-NEXT:    global_store_dwordx4 v64, v[16:19], s[2:3] offset:6483; GFX10-NEXT:    global_store_dwordx4 v64, v[20:23], s[2:3] offset:8084; GFX10-NEXT:    global_store_dwordx4 v64, v[24:27], s[2:3] offset:9685; GFX10-NEXT:    global_store_dwordx4 v64, v[28:31], s[2:3] offset:11286; GFX10-NEXT:    global_store_dwordx4 v64, v[32:35], s[2:3] offset:12887; GFX10-NEXT:    global_store_dwordx4 v64, v[36:39], s[2:3] offset:14488; GFX10-NEXT:    s_waitcnt vmcnt(5)89; GFX10-NEXT:    global_store_dwordx4 v64, v[40:43], s[2:3] offset:16090; GFX10-NEXT:    s_waitcnt vmcnt(4)91; GFX10-NEXT:    global_store_dwordx4 v64, v[44:47], s[2:3] offset:17692; GFX10-NEXT:    s_waitcnt vmcnt(3)93; GFX10-NEXT:    global_store_dwordx4 v64, v[48:51], s[2:3] offset:19294; GFX10-NEXT:    s_waitcnt vmcnt(2)95; GFX10-NEXT:    global_store_dwordx4 v64, v[52:55], s[2:3] offset:20896; GFX10-NEXT:    s_waitcnt vmcnt(1)97; GFX10-NEXT:    global_store_dwordx4 v64, v[56:59], s[2:3] offset:22498; GFX10-NEXT:    s_waitcnt vmcnt(0)99; GFX10-NEXT:    global_store_dwordx4 v64, v[60:63], s[2:3] offset:240100; GFX10-NEXT:    s_endpgm101;102; GFX11-LABEL: v_insert_v64i32_37:103; GFX11:       ; %bb.0:104; GFX11-NEXT:    s_load_b128 s[0:3], s[4:5], 0x0105; GFX11-NEXT:    v_and_b32_e32 v0, 0x3ff, v0106; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)107; GFX11-NEXT:    v_lshlrev_b32_e32 v64, 8, v0108; GFX11-NEXT:    s_waitcnt lgkmcnt(0)109; GFX11-NEXT:    s_clause 0xf110; GFX11-NEXT:    global_load_b128 v[0:3], v64, s[0:1]111; GFX11-NEXT:    global_load_b128 v[4:7], v64, s[0:1] offset:16112; GFX11-NEXT:    global_load_b128 v[8:11], v64, s[0:1] offset:32113; GFX11-NEXT:    global_load_b128 v[12:15], v64, s[0:1] offset:48114; GFX11-NEXT:    global_load_b128 v[16:19], v64, s[0:1] offset:64115; GFX11-NEXT:    global_load_b128 v[20:23], v64, s[0:1] offset:80116; GFX11-NEXT:    global_load_b128 v[24:27], v64, s[0:1] offset:96117; GFX11-NEXT:    global_load_b128 v[28:31], v64, s[0:1] offset:112118; GFX11-NEXT:    global_load_b128 v[32:35], v64, s[0:1] offset:128119; GFX11-NEXT:    global_load_b128 v[36:39], v64, s[0:1] offset:144120; GFX11-NEXT:    global_load_b128 v[40:43], v64, s[0:1] offset:160121; GFX11-NEXT:    global_load_b128 v[44:47], v64, s[0:1] offset:176122; GFX11-NEXT:    global_load_b128 v[48:51], v64, s[0:1] offset:192123; GFX11-NEXT:    global_load_b128 v[52:55], v64, s[0:1] offset:208124; GFX11-NEXT:    global_load_b128 v[56:59], v64, s[0:1] offset:224125; GFX11-NEXT:    global_load_b128 v[60:63], v64, s[0:1] offset:240126; GFX11-NEXT:    s_waitcnt vmcnt(6)127; GFX11-NEXT:    v_mov_b32_e32 v37, 0x3e7128; GFX11-NEXT:    s_clause 0x9129; GFX11-NEXT:    global_store_b128 v64, v[0:3], s[2:3]130; GFX11-NEXT:    global_store_b128 v64, v[4:7], s[2:3] offset:16131; GFX11-NEXT:    global_store_b128 v64, v[8:11], s[2:3] offset:32132; GFX11-NEXT:    global_store_b128 v64, v[12:15], s[2:3] offset:48133; GFX11-NEXT:    global_store_b128 v64, v[16:19], s[2:3] offset:64134; GFX11-NEXT:    global_store_b128 v64, v[20:23], s[2:3] offset:80135; GFX11-NEXT:    global_store_b128 v64, v[24:27], s[2:3] offset:96136; GFX11-NEXT:    global_store_b128 v64, v[28:31], s[2:3] offset:112137; GFX11-NEXT:    global_store_b128 v64, v[32:35], s[2:3] offset:128138; GFX11-NEXT:    global_store_b128 v64, v[36:39], s[2:3] offset:144139; GFX11-NEXT:    s_waitcnt vmcnt(5)140; GFX11-NEXT:    global_store_b128 v64, v[40:43], s[2:3] offset:160141; GFX11-NEXT:    s_waitcnt vmcnt(4)142; GFX11-NEXT:    global_store_b128 v64, v[44:47], s[2:3] offset:176143; GFX11-NEXT:    s_waitcnt vmcnt(3)144; GFX11-NEXT:    global_store_b128 v64, v[48:51], s[2:3] offset:192145; GFX11-NEXT:    s_waitcnt vmcnt(2)146; GFX11-NEXT:    global_store_b128 v64, v[52:55], s[2:3] offset:208147; GFX11-NEXT:    s_waitcnt vmcnt(1)148; GFX11-NEXT:    global_store_b128 v64, v[56:59], s[2:3] offset:224149; GFX11-NEXT:    s_waitcnt vmcnt(0)150; GFX11-NEXT:    global_store_b128 v64, v[60:63], s[2:3] offset:240151; GFX11-NEXT:    s_endpgm152  %id = call i32 @llvm.amdgcn.workitem.id.x()153  %gep.in = getelementptr <64 x i32>, ptr addrspace(1) %ptr.in, i32 %id154  %vec = load <64 x i32>, ptr addrspace(1) %gep.in155  %insert = insertelement <64 x i32> %vec, i32 999, i32 37156  %gep.out = getelementptr <64 x i32>, ptr addrspace(1) %ptr.out, i32 %id157  store <64 x i32> %insert, ptr addrspace(1) %gep.out158  ret void159}160 161declare i32 @llvm.amdgcn.workitem.id.x() #1162 163attributes #0 = { "amdgpu-flat-work-group-size"="1,256" "amdgpu-waves-per-eu"="1,10" }164attributes #1 = { nounwind readnone speculatable willreturn }165