brintos

brintos / llvm-project-archived public Read only

0
0
Text · 26.6 KiB · 932c66b Raw
588 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn-amd-amdhsa -global-isel=0 -mcpu=gfx900 < %s | FileCheck --check-prefixes=GFX9,GFX9-SDAG %s3; RUN: llc -mtriple=amdgcn-amd-amdhsa -global-isel=1 -mcpu=gfx900 < %s | FileCheck --check-prefixes=GFX9,GFX9-GISEL %s4; RUN: llc -mtriple=amdgcn-amd-amdhsa -global-isel=0 -mcpu=gfx942 < %s | FileCheck --check-prefixes=GFX942,GFX942-SDAG %s5; RUN: llc -mtriple=amdgcn-amd-amdhsa -global-isel=1 -mcpu=gfx942 < %s | FileCheck --check-prefixes=GFX942,GFX942-GISEL %s6; RUN: llc -mtriple=amdgcn-amd-amdhsa -global-isel=0 -mcpu=gfx1010 < %s | FileCheck --check-prefixes=GFX10,GFX10-SDAG %s7; RUN: llc -mtriple=amdgcn-amd-amdhsa -global-isel=1 -mcpu=gfx1010 < %s | FileCheck --check-prefixes=GFX10,GFX10-GISEL %s8; RUN: llc -mtriple=amdgcn-amd-amdhsa -global-isel=0 -mcpu=gfx1100 < %s | FileCheck --check-prefixes=GFX11,GFX11-SDAG %s9; RUN: llc -mtriple=amdgcn-amd-amdhsa -global-isel=1 -mcpu=gfx1100 < %s | FileCheck --check-prefixes=GFX11,GFX11-GISEL %s10; RUN: llc -mtriple=amdgcn-amd-amdhsa -global-isel=0 -mcpu=gfx1200 < %s | FileCheck --check-prefixes=GFX12,GFX12-SDAG %s11; RUN: llc -mtriple=amdgcn-amd-amdhsa -global-isel=1 -mcpu=gfx1200 < %s | FileCheck --check-prefixes=GFX12,GFX12-GISEL %s12 13define amdgpu_kernel void @buffer_nontemporal_load_store(ptr addrspace(7) %in, ptr addrspace(7) %out) {14; GFX9-SDAG-LABEL: buffer_nontemporal_load_store:15; GFX9-SDAG:       ; %bb.0: ; %entry16; GFX9-SDAG-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x017; GFX9-SDAG-NEXT:    s_load_dword s11, s[8:9], 0x1018; GFX9-SDAG-NEXT:    s_mov_b32 s10, 019; GFX9-SDAG-NEXT:    s_mov_b32 s5, s1020; GFX9-SDAG-NEXT:    s_waitcnt lgkmcnt(0)21; GFX9-SDAG-NEXT:    s_mov_b32 s4, s322; GFX9-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[10:11]23; GFX9-SDAG-NEXT:    s_mov_b32 s11, s224; GFX9-SDAG-NEXT:    s_mov_b32 s2, s125; GFX9-SDAG-NEXT:    s_mov_b32 s3, s1026; GFX9-SDAG-NEXT:    s_or_b64 s[4:5], s[2:3], s[10:11]27; GFX9-SDAG-NEXT:    v_mov_b32_e32 v0, s028; GFX9-SDAG-NEXT:    buffer_load_dword v0, v0, s[4:7], 0 offen glc slc29; GFX9-SDAG-NEXT:    s_load_dword s11, s[8:9], 0x3030; GFX9-SDAG-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x2031; GFX9-SDAG-NEXT:    s_mov_b32 s5, s1032; GFX9-SDAG-NEXT:    s_waitcnt lgkmcnt(0)33; GFX9-SDAG-NEXT:    s_mov_b32 s4, s334; GFX9-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[10:11]35; GFX9-SDAG-NEXT:    s_mov_b32 s11, s236; GFX9-SDAG-NEXT:    s_mov_b32 s2, s137; GFX9-SDAG-NEXT:    s_mov_b32 s3, s1038; GFX9-SDAG-NEXT:    s_or_b64 s[4:5], s[2:3], s[10:11]39; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, s040; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)41; GFX9-SDAG-NEXT:    buffer_store_dword v0, v1, s[4:7], 0 offen glc slc42; GFX9-SDAG-NEXT:    s_endpgm43;44; GFX9-GISEL-LABEL: buffer_nontemporal_load_store:45; GFX9-GISEL:       ; %bb.0: ; %entry46; GFX9-GISEL-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x047; GFX9-GISEL-NEXT:    s_load_dword s7, s[8:9], 0x1048; GFX9-GISEL-NEXT:    s_waitcnt lgkmcnt(0)49; GFX9-GISEL-NEXT:    s_mov_b32 s4, s150; GFX9-GISEL-NEXT:    s_mov_b32 s5, s251; GFX9-GISEL-NEXT:    s_mov_b32 s6, s352; GFX9-GISEL-NEXT:    v_mov_b32_e32 v0, s053; GFX9-GISEL-NEXT:    buffer_load_dword v0, v0, s[4:7], 0 offen glc slc54; GFX9-GISEL-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x2055; GFX9-GISEL-NEXT:    s_load_dword s7, s[8:9], 0x3056; GFX9-GISEL-NEXT:    s_waitcnt lgkmcnt(0)57; GFX9-GISEL-NEXT:    s_mov_b32 s4, s158; GFX9-GISEL-NEXT:    s_mov_b32 s5, s259; GFX9-GISEL-NEXT:    s_mov_b32 s6, s360; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, s061; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)62; GFX9-GISEL-NEXT:    buffer_store_dword v0, v1, s[4:7], 0 offen glc slc63; GFX9-GISEL-NEXT:    s_endpgm64;65; GFX942-SDAG-LABEL: buffer_nontemporal_load_store:66; GFX942-SDAG:       ; %bb.0: ; %entry67; GFX942-SDAG-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x068; GFX942-SDAG-NEXT:    s_load_dword s13, s[4:5], 0x1069; GFX942-SDAG-NEXT:    s_mov_b32 s12, 070; GFX942-SDAG-NEXT:    s_mov_b32 s7, s1271; GFX942-SDAG-NEXT:    s_waitcnt lgkmcnt(0)72; GFX942-SDAG-NEXT:    s_mov_b32 s6, s373; GFX942-SDAG-NEXT:    s_or_b64 s[10:11], s[6:7], s[12:13]74; GFX942-SDAG-NEXT:    s_mov_b32 s13, s275; GFX942-SDAG-NEXT:    s_mov_b32 s2, s176; GFX942-SDAG-NEXT:    s_mov_b32 s3, s1277; GFX942-SDAG-NEXT:    s_or_b64 s[8:9], s[2:3], s[12:13]78; GFX942-SDAG-NEXT:    v_mov_b32_e32 v0, s079; GFX942-SDAG-NEXT:    buffer_load_dword v1, v0, s[8:11], 0 offen nt80; GFX942-SDAG-NEXT:    s_load_dword s13, s[4:5], 0x3081; GFX942-SDAG-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x2082; GFX942-SDAG-NEXT:    s_mov_b32 s5, s1283; GFX942-SDAG-NEXT:    s_waitcnt lgkmcnt(0)84; GFX942-SDAG-NEXT:    s_mov_b32 s4, s385; GFX942-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[12:13]86; GFX942-SDAG-NEXT:    s_mov_b32 s13, s287; GFX942-SDAG-NEXT:    s_mov_b32 s2, s188; GFX942-SDAG-NEXT:    s_mov_b32 s3, s1289; GFX942-SDAG-NEXT:    s_or_b64 s[4:5], s[2:3], s[12:13]90; GFX942-SDAG-NEXT:    v_mov_b32_e32 v0, s091; GFX942-SDAG-NEXT:    s_waitcnt vmcnt(0)92; GFX942-SDAG-NEXT:    buffer_store_dword v1, v0, s[4:7], 0 offen nt93; GFX942-SDAG-NEXT:    s_endpgm94;95; GFX942-GISEL-LABEL: buffer_nontemporal_load_store:96; GFX942-GISEL:       ; %bb.0: ; %entry97; GFX942-GISEL-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x098; GFX942-GISEL-NEXT:    s_load_dword s11, s[4:5], 0x1099; GFX942-GISEL-NEXT:    s_waitcnt lgkmcnt(0)100; GFX942-GISEL-NEXT:    s_mov_b32 s8, s1101; GFX942-GISEL-NEXT:    s_mov_b32 s9, s2102; GFX942-GISEL-NEXT:    s_mov_b32 s10, s3103; GFX942-GISEL-NEXT:    v_mov_b32_e32 v0, s0104; GFX942-GISEL-NEXT:    buffer_load_dword v0, v0, s[8:11], 0 offen nt105; GFX942-GISEL-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x20106; GFX942-GISEL-NEXT:    s_load_dword s7, s[4:5], 0x30107; GFX942-GISEL-NEXT:    s_waitcnt lgkmcnt(0)108; GFX942-GISEL-NEXT:    s_mov_b32 s4, s1109; GFX942-GISEL-NEXT:    s_mov_b32 s5, s2110; GFX942-GISEL-NEXT:    s_mov_b32 s6, s3111; GFX942-GISEL-NEXT:    v_mov_b32_e32 v1, s0112; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)113; GFX942-GISEL-NEXT:    buffer_store_dword v0, v1, s[4:7], 0 offen nt114; GFX942-GISEL-NEXT:    s_endpgm115;116; GFX10-SDAG-LABEL: buffer_nontemporal_load_store:117; GFX10-SDAG:       ; %bb.0: ; %entry118; GFX10-SDAG-NEXT:    s_clause 0x1119; GFX10-SDAG-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0120; GFX10-SDAG-NEXT:    s_load_dword s11, s[8:9], 0x10121; GFX10-SDAG-NEXT:    s_mov_b32 s10, 0122; GFX10-SDAG-NEXT:    s_mov_b32 s5, s10123; GFX10-SDAG-NEXT:    s_mov_b32 s13, s10124; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)125; GFX10-SDAG-NEXT:    s_mov_b32 s4, s3126; GFX10-SDAG-NEXT:    v_mov_b32_e32 v0, s0127; GFX10-SDAG-NEXT:    s_mov_b32 s12, s1128; GFX10-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[10:11]129; GFX10-SDAG-NEXT:    s_mov_b32 s11, s2130; GFX10-SDAG-NEXT:    s_or_b64 s[4:5], s[12:13], s[10:11]131; GFX10-SDAG-NEXT:    s_clause 0x1132; GFX10-SDAG-NEXT:    s_load_dword s11, s[8:9], 0x30133; GFX10-SDAG-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x20134; GFX10-SDAG-NEXT:    buffer_load_dword v0, v0, s[4:7], 0 offen slc135; GFX10-SDAG-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)136; GFX10-SDAG-NEXT:    s_mov_b32 s5, s10137; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)138; GFX10-SDAG-NEXT:    s_mov_b32 s4, s3139; GFX10-SDAG-NEXT:    v_mov_b32_e32 v1, s0140; GFX10-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[10:11]141; GFX10-SDAG-NEXT:    s_mov_b32 s11, s2142; GFX10-SDAG-NEXT:    s_mov_b32 s2, s1143; GFX10-SDAG-NEXT:    s_mov_b32 s3, s10144; GFX10-SDAG-NEXT:    s_or_b64 s[4:5], s[2:3], s[10:11]145; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)146; GFX10-SDAG-NEXT:    buffer_store_dword v0, v1, s[4:7], 0 offen glc slc147; GFX10-SDAG-NEXT:    s_endpgm148;149; GFX10-GISEL-LABEL: buffer_nontemporal_load_store:150; GFX10-GISEL:       ; %bb.0: ; %entry151; GFX10-GISEL-NEXT:    s_clause 0x1152; GFX10-GISEL-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0153; GFX10-GISEL-NEXT:    s_load_dword s7, s[8:9], 0x10154; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)155; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s0156; GFX10-GISEL-NEXT:    s_mov_b32 s4, s1157; GFX10-GISEL-NEXT:    s_mov_b32 s5, s2158; GFX10-GISEL-NEXT:    s_mov_b32 s6, s3159; GFX10-GISEL-NEXT:    buffer_load_dword v0, v0, s[4:7], 0 offen slc160; GFX10-GISEL-NEXT:    s_clause 0x1161; GFX10-GISEL-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x20162; GFX10-GISEL-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)163; GFX10-GISEL-NEXT:    s_load_dword s7, s[8:9], 0x30164; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)165; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s0166; GFX10-GISEL-NEXT:    s_mov_b32 s4, s1167; GFX10-GISEL-NEXT:    s_mov_b32 s5, s2168; GFX10-GISEL-NEXT:    s_mov_b32 s6, s3169; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)170; GFX10-GISEL-NEXT:    buffer_store_dword v0, v1, s[4:7], 0 offen glc slc171; GFX10-GISEL-NEXT:    s_endpgm172;173; GFX11-SDAG-LABEL: buffer_nontemporal_load_store:174; GFX11-SDAG:       ; %bb.0: ; %entry175; GFX11-SDAG-NEXT:    s_clause 0x1176; GFX11-SDAG-NEXT:    s_load_b128 s[0:3], s[4:5], 0x0177; GFX11-SDAG-NEXT:    s_load_b32 s13, s[4:5], 0x10178; GFX11-SDAG-NEXT:    s_mov_b32 s12, 0179; GFX11-SDAG-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)180; GFX11-SDAG-NEXT:    s_mov_b32 s7, s12181; GFX11-SDAG-NEXT:    s_mov_b32 s9, s12182; GFX11-SDAG-NEXT:    s_waitcnt lgkmcnt(0)183; GFX11-SDAG-NEXT:    s_mov_b32 s6, s3184; GFX11-SDAG-NEXT:    s_mov_b32 s8, s1185; GFX11-SDAG-NEXT:    s_or_b64 s[10:11], s[6:7], s[12:13]186; GFX11-SDAG-NEXT:    s_mov_b32 s13, s2187; GFX11-SDAG-NEXT:    v_mov_b32_e32 v0, s0188; GFX11-SDAG-NEXT:    s_or_b64 s[8:9], s[8:9], s[12:13]189; GFX11-SDAG-NEXT:    s_clause 0x1190; GFX11-SDAG-NEXT:    s_load_b32 s13, s[4:5], 0x30191; GFX11-SDAG-NEXT:    s_load_b128 s[0:3], s[4:5], 0x20192; GFX11-SDAG-NEXT:    s_mov_b32 s5, s12193; GFX11-SDAG-NEXT:    s_waitcnt lgkmcnt(0)194; GFX11-SDAG-NEXT:    v_mov_b32_e32 v1, s0195; GFX11-SDAG-NEXT:    buffer_load_b32 v0, v0, s[8:11], 0 offen slc dlc196; GFX11-SDAG-NEXT:    s_mov_b32 s4, s3197; GFX11-SDAG-NEXT:    s_mov_b32 s3, s12198; GFX11-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[12:13]199; GFX11-SDAG-NEXT:    s_mov_b32 s13, s2200; GFX11-SDAG-NEXT:    s_mov_b32 s2, s1201; GFX11-SDAG-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)202; GFX11-SDAG-NEXT:    s_or_b64 s[4:5], s[2:3], s[12:13]203; GFX11-SDAG-NEXT:    s_waitcnt vmcnt(0)204; GFX11-SDAG-NEXT:    buffer_store_b32 v0, v1, s[4:7], 0 offen glc slc dlc205; GFX11-SDAG-NEXT:    s_endpgm206;207; GFX11-GISEL-LABEL: buffer_nontemporal_load_store:208; GFX11-GISEL:       ; %bb.0: ; %entry209; GFX11-GISEL-NEXT:    s_clause 0x1210; GFX11-GISEL-NEXT:    s_load_b128 s[0:3], s[4:5], 0x0211; GFX11-GISEL-NEXT:    s_load_b32 s11, s[4:5], 0x10212; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)213; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, s0214; GFX11-GISEL-NEXT:    s_mov_b32 s8, s1215; GFX11-GISEL-NEXT:    s_mov_b32 s9, s2216; GFX11-GISEL-NEXT:    s_mov_b32 s10, s3217; GFX11-GISEL-NEXT:    s_clause 0x1218; GFX11-GISEL-NEXT:    s_load_b128 s[0:3], s[4:5], 0x20219; GFX11-GISEL-NEXT:    s_load_b32 s7, s[4:5], 0x30220; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)221; GFX11-GISEL-NEXT:    v_mov_b32_e32 v1, s0222; GFX11-GISEL-NEXT:    buffer_load_b32 v0, v0, s[8:11], 0 offen slc dlc223; GFX11-GISEL-NEXT:    s_mov_b32 s4, s1224; GFX11-GISEL-NEXT:    s_mov_b32 s5, s2225; GFX11-GISEL-NEXT:    s_mov_b32 s6, s3226; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)227; GFX11-GISEL-NEXT:    buffer_store_b32 v0, v1, s[4:7], 0 offen glc slc dlc228; GFX11-GISEL-NEXT:    s_endpgm229;230; GFX12-SDAG-LABEL: buffer_nontemporal_load_store:231; GFX12-SDAG:       ; %bb.0: ; %entry232; GFX12-SDAG-NEXT:    s_clause 0x1233; GFX12-SDAG-NEXT:    s_load_b128 s[0:3], s[4:5], 0x0234; GFX12-SDAG-NEXT:    s_load_b32 s13, s[4:5], 0x10235; GFX12-SDAG-NEXT:    s_mov_b32 s12, 0236; GFX12-SDAG-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)237; GFX12-SDAG-NEXT:    s_mov_b32 s7, s12238; GFX12-SDAG-NEXT:    s_mov_b32 s9, s12239; GFX12-SDAG-NEXT:    s_wait_kmcnt 0x0240; GFX12-SDAG-NEXT:    s_mov_b32 s6, s3241; GFX12-SDAG-NEXT:    s_mov_b32 s8, s1242; GFX12-SDAG-NEXT:    s_or_b64 s[10:11], s[6:7], s[12:13]243; GFX12-SDAG-NEXT:    s_mov_b32 s13, s2244; GFX12-SDAG-NEXT:    v_mov_b32_e32 v0, s0245; GFX12-SDAG-NEXT:    s_or_b64 s[8:9], s[8:9], s[12:13]246; GFX12-SDAG-NEXT:    s_clause 0x1247; GFX12-SDAG-NEXT:    s_load_b32 s13, s[4:5], 0x30248; GFX12-SDAG-NEXT:    s_load_b128 s[0:3], s[4:5], 0x20249; GFX12-SDAG-NEXT:    s_mov_b32 s5, s12250; GFX12-SDAG-NEXT:    s_wait_kmcnt 0x0251; GFX12-SDAG-NEXT:    v_mov_b32_e32 v1, s0252; GFX12-SDAG-NEXT:    buffer_load_b32 v0, v0, s[8:11], null offen th:TH_LOAD_NT253; GFX12-SDAG-NEXT:    s_mov_b32 s4, s3254; GFX12-SDAG-NEXT:    s_mov_b32 s3, s12255; GFX12-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[12:13]256; GFX12-SDAG-NEXT:    s_mov_b32 s13, s2257; GFX12-SDAG-NEXT:    s_mov_b32 s2, s1258; GFX12-SDAG-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)259; GFX12-SDAG-NEXT:    s_or_b64 s[4:5], s[2:3], s[12:13]260; GFX12-SDAG-NEXT:    s_wait_loadcnt 0x0261; GFX12-SDAG-NEXT:    buffer_store_b32 v0, v1, s[4:7], null offen th:TH_STORE_NT262; GFX12-SDAG-NEXT:    s_endpgm263;264; GFX12-GISEL-LABEL: buffer_nontemporal_load_store:265; GFX12-GISEL:       ; %bb.0: ; %entry266; GFX12-GISEL-NEXT:    s_clause 0x1267; GFX12-GISEL-NEXT:    s_load_b128 s[0:3], s[4:5], 0x0268; GFX12-GISEL-NEXT:    s_load_b32 s11, s[4:5], 0x10269; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0270; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, s0271; GFX12-GISEL-NEXT:    s_mov_b32 s8, s1272; GFX12-GISEL-NEXT:    s_mov_b32 s9, s2273; GFX12-GISEL-NEXT:    s_mov_b32 s10, s3274; GFX12-GISEL-NEXT:    s_clause 0x1275; GFX12-GISEL-NEXT:    s_load_b128 s[0:3], s[4:5], 0x20276; GFX12-GISEL-NEXT:    s_load_b32 s7, s[4:5], 0x30277; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0278; GFX12-GISEL-NEXT:    v_mov_b32_e32 v1, s0279; GFX12-GISEL-NEXT:    buffer_load_b32 v0, v0, s[8:11], null offen th:TH_LOAD_NT280; GFX12-GISEL-NEXT:    s_mov_b32 s4, s1281; GFX12-GISEL-NEXT:    s_mov_b32 s5, s2282; GFX12-GISEL-NEXT:    s_mov_b32 s6, s3283; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x0284; GFX12-GISEL-NEXT:    buffer_store_b32 v0, v1, s[4:7], null offen th:TH_STORE_NT285; GFX12-GISEL-NEXT:    s_endpgm286entry:287  %val = load i32, ptr addrspace(7) %in, !nontemporal !0288  store i32 %val, ptr addrspace(7) %out, !nontemporal !0289  ret void290}291 292define amdgpu_kernel void @buffer_nontemporal_and_volatile_load_store(ptr addrspace(7) %in, ptr addrspace(7) %out) {293; GFX9-SDAG-LABEL: buffer_nontemporal_and_volatile_load_store:294; GFX9-SDAG:       ; %bb.0: ; %entry295; GFX9-SDAG-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0296; GFX9-SDAG-NEXT:    s_load_dword s11, s[8:9], 0x10297; GFX9-SDAG-NEXT:    s_mov_b32 s10, 0298; GFX9-SDAG-NEXT:    s_mov_b32 s5, s10299; GFX9-SDAG-NEXT:    s_waitcnt lgkmcnt(0)300; GFX9-SDAG-NEXT:    s_mov_b32 s4, s3301; GFX9-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[10:11]302; GFX9-SDAG-NEXT:    s_mov_b32 s11, s2303; GFX9-SDAG-NEXT:    s_mov_b32 s2, s1304; GFX9-SDAG-NEXT:    s_mov_b32 s3, s10305; GFX9-SDAG-NEXT:    s_or_b64 s[4:5], s[2:3], s[10:11]306; GFX9-SDAG-NEXT:    v_mov_b32_e32 v0, s0307; GFX9-SDAG-NEXT:    buffer_load_dword v0, v0, s[4:7], 0 offen glc308; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)309; GFX9-SDAG-NEXT:    s_load_dword s11, s[8:9], 0x30310; GFX9-SDAG-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x20311; GFX9-SDAG-NEXT:    s_mov_b32 s5, s10312; GFX9-SDAG-NEXT:    s_waitcnt lgkmcnt(0)313; GFX9-SDAG-NEXT:    s_mov_b32 s4, s3314; GFX9-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[10:11]315; GFX9-SDAG-NEXT:    s_mov_b32 s11, s2316; GFX9-SDAG-NEXT:    s_mov_b32 s2, s1317; GFX9-SDAG-NEXT:    s_mov_b32 s3, s10318; GFX9-SDAG-NEXT:    s_or_b64 s[4:5], s[2:3], s[10:11]319; GFX9-SDAG-NEXT:    v_mov_b32_e32 v1, s0320; GFX9-SDAG-NEXT:    buffer_store_dword v0, v1, s[4:7], 0 offen321; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)322; GFX9-SDAG-NEXT:    s_endpgm323;324; GFX9-GISEL-LABEL: buffer_nontemporal_and_volatile_load_store:325; GFX9-GISEL:       ; %bb.0: ; %entry326; GFX9-GISEL-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0327; GFX9-GISEL-NEXT:    s_load_dword s7, s[8:9], 0x10328; GFX9-GISEL-NEXT:    s_waitcnt lgkmcnt(0)329; GFX9-GISEL-NEXT:    s_mov_b32 s4, s1330; GFX9-GISEL-NEXT:    s_mov_b32 s5, s2331; GFX9-GISEL-NEXT:    s_mov_b32 s6, s3332; GFX9-GISEL-NEXT:    v_mov_b32_e32 v0, s0333; GFX9-GISEL-NEXT:    buffer_load_dword v0, v0, s[4:7], 0 offen glc334; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)335; GFX9-GISEL-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x20336; GFX9-GISEL-NEXT:    s_load_dword s7, s[8:9], 0x30337; GFX9-GISEL-NEXT:    s_waitcnt lgkmcnt(0)338; GFX9-GISEL-NEXT:    s_mov_b32 s4, s1339; GFX9-GISEL-NEXT:    s_mov_b32 s5, s2340; GFX9-GISEL-NEXT:    s_mov_b32 s6, s3341; GFX9-GISEL-NEXT:    v_mov_b32_e32 v1, s0342; GFX9-GISEL-NEXT:    buffer_store_dword v0, v1, s[4:7], 0 offen343; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)344; GFX9-GISEL-NEXT:    s_endpgm345;346; GFX942-SDAG-LABEL: buffer_nontemporal_and_volatile_load_store:347; GFX942-SDAG:       ; %bb.0: ; %entry348; GFX942-SDAG-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x0349; GFX942-SDAG-NEXT:    s_load_dword s13, s[4:5], 0x10350; GFX942-SDAG-NEXT:    s_mov_b32 s12, 0351; GFX942-SDAG-NEXT:    s_mov_b32 s7, s12352; GFX942-SDAG-NEXT:    s_waitcnt lgkmcnt(0)353; GFX942-SDAG-NEXT:    s_mov_b32 s6, s3354; GFX942-SDAG-NEXT:    s_or_b64 s[10:11], s[6:7], s[12:13]355; GFX942-SDAG-NEXT:    s_mov_b32 s13, s2356; GFX942-SDAG-NEXT:    s_mov_b32 s2, s1357; GFX942-SDAG-NEXT:    s_mov_b32 s3, s12358; GFX942-SDAG-NEXT:    s_or_b64 s[8:9], s[2:3], s[12:13]359; GFX942-SDAG-NEXT:    v_mov_b32_e32 v0, s0360; GFX942-SDAG-NEXT:    buffer_load_dword v1, v0, s[8:11], 0 offen sc0 sc1361; GFX942-SDAG-NEXT:    s_waitcnt vmcnt(0)362; GFX942-SDAG-NEXT:    s_load_dword s13, s[4:5], 0x30363; GFX942-SDAG-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x20364; GFX942-SDAG-NEXT:    s_mov_b32 s5, s12365; GFX942-SDAG-NEXT:    s_waitcnt lgkmcnt(0)366; GFX942-SDAG-NEXT:    s_mov_b32 s4, s3367; GFX942-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[12:13]368; GFX942-SDAG-NEXT:    s_mov_b32 s13, s2369; GFX942-SDAG-NEXT:    s_mov_b32 s2, s1370; GFX942-SDAG-NEXT:    s_mov_b32 s3, s12371; GFX942-SDAG-NEXT:    s_or_b64 s[4:5], s[2:3], s[12:13]372; GFX942-SDAG-NEXT:    v_mov_b32_e32 v0, s0373; GFX942-SDAG-NEXT:    buffer_store_dword v1, v0, s[4:7], 0 offen sc0 sc1374; GFX942-SDAG-NEXT:    s_waitcnt vmcnt(0)375; GFX942-SDAG-NEXT:    s_endpgm376;377; GFX942-GISEL-LABEL: buffer_nontemporal_and_volatile_load_store:378; GFX942-GISEL:       ; %bb.0: ; %entry379; GFX942-GISEL-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x0380; GFX942-GISEL-NEXT:    s_load_dword s11, s[4:5], 0x10381; GFX942-GISEL-NEXT:    s_waitcnt lgkmcnt(0)382; GFX942-GISEL-NEXT:    s_mov_b32 s8, s1383; GFX942-GISEL-NEXT:    s_mov_b32 s9, s2384; GFX942-GISEL-NEXT:    s_mov_b32 s10, s3385; GFX942-GISEL-NEXT:    v_mov_b32_e32 v0, s0386; GFX942-GISEL-NEXT:    buffer_load_dword v0, v0, s[8:11], 0 offen sc0 sc1387; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)388; GFX942-GISEL-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x20389; GFX942-GISEL-NEXT:    s_load_dword s7, s[4:5], 0x30390; GFX942-GISEL-NEXT:    s_waitcnt lgkmcnt(0)391; GFX942-GISEL-NEXT:    s_mov_b32 s4, s1392; GFX942-GISEL-NEXT:    s_mov_b32 s5, s2393; GFX942-GISEL-NEXT:    s_mov_b32 s6, s3394; GFX942-GISEL-NEXT:    v_mov_b32_e32 v1, s0395; GFX942-GISEL-NEXT:    buffer_store_dword v0, v1, s[4:7], 0 offen sc0 sc1396; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)397; GFX942-GISEL-NEXT:    s_endpgm398;399; GFX10-SDAG-LABEL: buffer_nontemporal_and_volatile_load_store:400; GFX10-SDAG:       ; %bb.0: ; %entry401; GFX10-SDAG-NEXT:    s_clause 0x1402; GFX10-SDAG-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0403; GFX10-SDAG-NEXT:    s_load_dword s11, s[8:9], 0x10404; GFX10-SDAG-NEXT:    s_mov_b32 s10, 0405; GFX10-SDAG-NEXT:    s_mov_b32 s5, s10406; GFX10-SDAG-NEXT:    s_mov_b32 s13, s10407; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)408; GFX10-SDAG-NEXT:    s_mov_b32 s4, s3409; GFX10-SDAG-NEXT:    v_mov_b32_e32 v0, s0410; GFX10-SDAG-NEXT:    s_mov_b32 s12, s1411; GFX10-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[10:11]412; GFX10-SDAG-NEXT:    s_mov_b32 s11, s2413; GFX10-SDAG-NEXT:    s_or_b64 s[4:5], s[12:13], s[10:11]414; GFX10-SDAG-NEXT:    s_clause 0x1415; GFX10-SDAG-NEXT:    s_load_dword s11, s[8:9], 0x30416; GFX10-SDAG-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x20417; GFX10-SDAG-NEXT:    buffer_load_dword v0, v0, s[4:7], 0 offen glc dlc418; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)419; GFX10-SDAG-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)420; GFX10-SDAG-NEXT:    s_mov_b32 s5, s10421; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)422; GFX10-SDAG-NEXT:    s_mov_b32 s4, s3423; GFX10-SDAG-NEXT:    v_mov_b32_e32 v1, s0424; GFX10-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[10:11]425; GFX10-SDAG-NEXT:    s_mov_b32 s11, s2426; GFX10-SDAG-NEXT:    s_mov_b32 s2, s1427; GFX10-SDAG-NEXT:    s_mov_b32 s3, s10428; GFX10-SDAG-NEXT:    s_or_b64 s[4:5], s[2:3], s[10:11]429; GFX10-SDAG-NEXT:    buffer_store_dword v0, v1, s[4:7], 0 offen430; GFX10-SDAG-NEXT:    s_waitcnt_vscnt null, 0x0431; GFX10-SDAG-NEXT:    s_endpgm432;433; GFX10-GISEL-LABEL: buffer_nontemporal_and_volatile_load_store:434; GFX10-GISEL:       ; %bb.0: ; %entry435; GFX10-GISEL-NEXT:    s_clause 0x1436; GFX10-GISEL-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0437; GFX10-GISEL-NEXT:    s_load_dword s7, s[8:9], 0x10438; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)439; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s0440; GFX10-GISEL-NEXT:    s_mov_b32 s4, s1441; GFX10-GISEL-NEXT:    s_mov_b32 s5, s2442; GFX10-GISEL-NEXT:    s_mov_b32 s6, s3443; GFX10-GISEL-NEXT:    buffer_load_dword v0, v0, s[4:7], 0 offen glc dlc444; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)445; GFX10-GISEL-NEXT:    s_clause 0x1446; GFX10-GISEL-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x20447; GFX10-GISEL-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)448; GFX10-GISEL-NEXT:    s_load_dword s7, s[8:9], 0x30449; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)450; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s0451; GFX10-GISEL-NEXT:    s_mov_b32 s4, s1452; GFX10-GISEL-NEXT:    s_mov_b32 s5, s2453; GFX10-GISEL-NEXT:    s_mov_b32 s6, s3454; GFX10-GISEL-NEXT:    buffer_store_dword v0, v1, s[4:7], 0 offen455; GFX10-GISEL-NEXT:    s_waitcnt_vscnt null, 0x0456; GFX10-GISEL-NEXT:    s_endpgm457;458; GFX11-SDAG-LABEL: buffer_nontemporal_and_volatile_load_store:459; GFX11-SDAG:       ; %bb.0: ; %entry460; GFX11-SDAG-NEXT:    s_clause 0x1461; GFX11-SDAG-NEXT:    s_load_b128 s[0:3], s[4:5], 0x0462; GFX11-SDAG-NEXT:    s_load_b32 s13, s[4:5], 0x10463; GFX11-SDAG-NEXT:    s_mov_b32 s12, 0464; GFX11-SDAG-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)465; GFX11-SDAG-NEXT:    s_mov_b32 s7, s12466; GFX11-SDAG-NEXT:    s_mov_b32 s9, s12467; GFX11-SDAG-NEXT:    s_waitcnt lgkmcnt(0)468; GFX11-SDAG-NEXT:    s_mov_b32 s6, s3469; GFX11-SDAG-NEXT:    s_mov_b32 s8, s1470; GFX11-SDAG-NEXT:    s_or_b64 s[10:11], s[6:7], s[12:13]471; GFX11-SDAG-NEXT:    s_mov_b32 s13, s2472; GFX11-SDAG-NEXT:    v_mov_b32_e32 v0, s0473; GFX11-SDAG-NEXT:    s_or_b64 s[8:9], s[8:9], s[12:13]474; GFX11-SDAG-NEXT:    s_clause 0x1475; GFX11-SDAG-NEXT:    s_load_b32 s13, s[4:5], 0x30476; GFX11-SDAG-NEXT:    s_load_b128 s[0:3], s[4:5], 0x20477; GFX11-SDAG-NEXT:    s_mov_b32 s5, s12478; GFX11-SDAG-NEXT:    s_waitcnt lgkmcnt(0)479; GFX11-SDAG-NEXT:    v_mov_b32_e32 v1, s0480; GFX11-SDAG-NEXT:    buffer_load_b32 v0, v0, s[8:11], 0 offen glc dlc481; GFX11-SDAG-NEXT:    s_waitcnt vmcnt(0)482; GFX11-SDAG-NEXT:    s_mov_b32 s4, s3483; GFX11-SDAG-NEXT:    s_mov_b32 s3, s12484; GFX11-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[12:13]485; GFX11-SDAG-NEXT:    s_mov_b32 s13, s2486; GFX11-SDAG-NEXT:    s_mov_b32 s2, s1487; GFX11-SDAG-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)488; GFX11-SDAG-NEXT:    s_or_b64 s[4:5], s[2:3], s[12:13]489; GFX11-SDAG-NEXT:    buffer_store_b32 v0, v1, s[4:7], 0 offen dlc490; GFX11-SDAG-NEXT:    s_waitcnt_vscnt null, 0x0491; GFX11-SDAG-NEXT:    s_endpgm492;493; GFX11-GISEL-LABEL: buffer_nontemporal_and_volatile_load_store:494; GFX11-GISEL:       ; %bb.0: ; %entry495; GFX11-GISEL-NEXT:    s_clause 0x1496; GFX11-GISEL-NEXT:    s_load_b128 s[0:3], s[4:5], 0x0497; GFX11-GISEL-NEXT:    s_load_b32 s11, s[4:5], 0x10498; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)499; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, s0500; GFX11-GISEL-NEXT:    s_mov_b32 s8, s1501; GFX11-GISEL-NEXT:    s_mov_b32 s9, s2502; GFX11-GISEL-NEXT:    s_mov_b32 s10, s3503; GFX11-GISEL-NEXT:    s_clause 0x1504; GFX11-GISEL-NEXT:    s_load_b128 s[0:3], s[4:5], 0x20505; GFX11-GISEL-NEXT:    s_load_b32 s7, s[4:5], 0x30506; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)507; GFX11-GISEL-NEXT:    v_mov_b32_e32 v1, s0508; GFX11-GISEL-NEXT:    buffer_load_b32 v0, v0, s[8:11], 0 offen glc dlc509; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)510; GFX11-GISEL-NEXT:    s_mov_b32 s4, s1511; GFX11-GISEL-NEXT:    s_mov_b32 s5, s2512; GFX11-GISEL-NEXT:    s_mov_b32 s6, s3513; GFX11-GISEL-NEXT:    buffer_store_b32 v0, v1, s[4:7], 0 offen dlc514; GFX11-GISEL-NEXT:    s_waitcnt_vscnt null, 0x0515; GFX11-GISEL-NEXT:    s_endpgm516;517; GFX12-SDAG-LABEL: buffer_nontemporal_and_volatile_load_store:518; GFX12-SDAG:       ; %bb.0: ; %entry519; GFX12-SDAG-NEXT:    s_clause 0x1520; GFX12-SDAG-NEXT:    s_load_b128 s[0:3], s[4:5], 0x0521; GFX12-SDAG-NEXT:    s_load_b32 s13, s[4:5], 0x10522; GFX12-SDAG-NEXT:    s_mov_b32 s12, 0523; GFX12-SDAG-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)524; GFX12-SDAG-NEXT:    s_mov_b32 s7, s12525; GFX12-SDAG-NEXT:    s_mov_b32 s9, s12526; GFX12-SDAG-NEXT:    s_wait_kmcnt 0x0527; GFX12-SDAG-NEXT:    s_mov_b32 s6, s3528; GFX12-SDAG-NEXT:    s_mov_b32 s8, s1529; GFX12-SDAG-NEXT:    s_or_b64 s[10:11], s[6:7], s[12:13]530; GFX12-SDAG-NEXT:    s_mov_b32 s13, s2531; GFX12-SDAG-NEXT:    v_mov_b32_e32 v0, s0532; GFX12-SDAG-NEXT:    s_or_b64 s[8:9], s[8:9], s[12:13]533; GFX12-SDAG-NEXT:    s_clause 0x1534; GFX12-SDAG-NEXT:    s_load_b32 s13, s[4:5], 0x30535; GFX12-SDAG-NEXT:    s_load_b128 s[0:3], s[4:5], 0x20536; GFX12-SDAG-NEXT:    s_mov_b32 s5, s12537; GFX12-SDAG-NEXT:    s_wait_kmcnt 0x0538; GFX12-SDAG-NEXT:    v_mov_b32_e32 v1, s0539; GFX12-SDAG-NEXT:    buffer_load_b32 v0, v0, s[8:11], null offen th:TH_LOAD_NT scope:SCOPE_SYS540; GFX12-SDAG-NEXT:    s_wait_loadcnt 0x0541; GFX12-SDAG-NEXT:    s_mov_b32 s4, s3542; GFX12-SDAG-NEXT:    s_mov_b32 s3, s12543; GFX12-SDAG-NEXT:    s_or_b64 s[6:7], s[4:5], s[12:13]544; GFX12-SDAG-NEXT:    s_mov_b32 s13, s2545; GFX12-SDAG-NEXT:    s_mov_b32 s2, s1546; GFX12-SDAG-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)547; GFX12-SDAG-NEXT:    s_or_b64 s[4:5], s[2:3], s[12:13]548; GFX12-SDAG-NEXT:    buffer_store_b32 v0, v1, s[4:7], null offen th:TH_STORE_NT scope:SCOPE_SYS549; GFX12-SDAG-NEXT:    s_wait_storecnt 0x0550; GFX12-SDAG-NEXT:    s_endpgm551;552; GFX12-GISEL-LABEL: buffer_nontemporal_and_volatile_load_store:553; GFX12-GISEL:       ; %bb.0: ; %entry554; GFX12-GISEL-NEXT:    s_clause 0x1555; GFX12-GISEL-NEXT:    s_load_b128 s[0:3], s[4:5], 0x0556; GFX12-GISEL-NEXT:    s_load_b32 s11, s[4:5], 0x10557; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0558; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, s0559; GFX12-GISEL-NEXT:    s_mov_b32 s8, s1560; GFX12-GISEL-NEXT:    s_mov_b32 s9, s2561; GFX12-GISEL-NEXT:    s_mov_b32 s10, s3562; GFX12-GISEL-NEXT:    s_clause 0x1563; GFX12-GISEL-NEXT:    s_load_b128 s[0:3], s[4:5], 0x20564; GFX12-GISEL-NEXT:    s_load_b32 s7, s[4:5], 0x30565; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0566; GFX12-GISEL-NEXT:    v_mov_b32_e32 v1, s0567; GFX12-GISEL-NEXT:    buffer_load_b32 v0, v0, s[8:11], null offen th:TH_LOAD_NT scope:SCOPE_SYS568; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x0569; GFX12-GISEL-NEXT:    s_mov_b32 s4, s1570; GFX12-GISEL-NEXT:    s_mov_b32 s5, s2571; GFX12-GISEL-NEXT:    s_mov_b32 s6, s3572; GFX12-GISEL-NEXT:    buffer_store_b32 v0, v1, s[4:7], null offen th:TH_STORE_NT scope:SCOPE_SYS573; GFX12-GISEL-NEXT:    s_wait_storecnt 0x0574; GFX12-GISEL-NEXT:    s_endpgm575entry:576  %val = load volatile i32, ptr addrspace(7) %in, !nontemporal !0577  store volatile i32 %val, ptr addrspace(7) %out, !nontemporal !0578  ret void579}580 581!0 = !{i32 1}582;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:583; GFX10: {{.*}}584; GFX11: {{.*}}585; GFX12: {{.*}}586; GFX9: {{.*}}587; GFX942: {{.*}}588