brintos

brintos / llvm-project-archived public Read only

0
0
Text · 43.4 KiB · 550afd4 Raw
1043 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx600 < %s | FileCheck --check-prefixes=GFX6 %s3; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx700 < %s | FileCheck --check-prefixes=GFX7 %s4; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1010 < %s | FileCheck --check-prefixes=GFX10-WGP %s5; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1010 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX10-CU %s6; RUN: llc -mtriple=amdgcn-amd-amdpal -O0 -mcpu=gfx700 -amdgcn-skip-cache-invalidations < %s | FileCheck --check-prefixes=SKIP-CACHE-INV %s7; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx90a < %s | FileCheck -check-prefixes=GFX90A-NOTTGSPLIT %s8; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx90a -mattr=+tgsplit < %s | FileCheck -check-prefixes=GFX90A-TGSPLIT %s9; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx942 < %s | FileCheck -check-prefixes=GFX942-NOTTGSPLIT %s10; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx942 -mattr=+tgsplit < %s | FileCheck -check-prefixes=GFX942-TGSPLIT %s11; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1100 < %s | FileCheck --check-prefixes=GFX11-WGP %s12; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1100 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX11-CU %s13; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1200 < %s | FileCheck --check-prefixes=GFX12-WGP %s14; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1200 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX12-CU %s15; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1250 < %s | FileCheck --check-prefixes=GFX1250 %s16 17define amdgpu_kernel void @local_nontemporal_load_0(18; GFX6-LABEL: local_nontemporal_load_0:19; GFX6:       ; %bb.0: ; %entry20; GFX6-NEXT:    s_mov_b64 s[4:5], s[8:9]21; GFX6-NEXT:    s_load_dword s8, s[4:5], 0x022; GFX6-NEXT:    ; kill: def $sgpr6 killed $sgpr823; GFX6-NEXT:    s_load_dwordx2 s[4:5], s[4:5], 0x224; GFX6-NEXT:    s_waitcnt lgkmcnt(0)25; GFX6-NEXT:    s_mov_b32 s11, s526; GFX6-NEXT:    ; kill: def $sgpr4 killed $sgpr4 killed $sgpr4_sgpr527; GFX6-NEXT:    s_mov_b32 s9, 0x100f00028; GFX6-NEXT:    s_mov_b32 s10, -129; GFX6-NEXT:    ; kill: def $sgpr4 killed $sgpr4 def $sgpr4_sgpr5_sgpr6_sgpr730; GFX6-NEXT:    s_mov_b32 s5, s1131; GFX6-NEXT:    s_mov_b32 s6, s1032; GFX6-NEXT:    s_mov_b32 s7, s933; GFX6-NEXT:    s_mov_b32 m0, -134; GFX6-NEXT:    v_mov_b32_e32 v0, s835; GFX6-NEXT:    ds_read_b32 v0, v036; GFX6-NEXT:    s_waitcnt lgkmcnt(0)37; GFX6-NEXT:    buffer_store_dword v0, off, s[4:7], 038; GFX6-NEXT:    s_endpgm39;40; GFX7-LABEL: local_nontemporal_load_0:41; GFX7:       ; %bb.0: ; %entry42; GFX7-NEXT:    s_mov_b32 flat_scratch_lo, s1343; GFX7-NEXT:    s_add_i32 s12, s12, s1744; GFX7-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 845; GFX7-NEXT:    s_load_dword s6, s[8:9], 0x046; GFX7-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x247; GFX7-NEXT:    s_mov_b32 m0, -148; GFX7-NEXT:    s_waitcnt lgkmcnt(0)49; GFX7-NEXT:    v_mov_b32_e32 v0, s650; GFX7-NEXT:    ds_read_b32 v2, v051; GFX7-NEXT:    v_mov_b32_e32 v0, s452; GFX7-NEXT:    v_mov_b32_e32 v1, s553; GFX7-NEXT:    s_waitcnt lgkmcnt(0)54; GFX7-NEXT:    flat_store_dword v[0:1], v255; GFX7-NEXT:    s_endpgm56;57; GFX10-WGP-LABEL: local_nontemporal_load_0:58; GFX10-WGP:       ; %bb.0: ; %entry59; GFX10-WGP-NEXT:    s_load_dword s6, s[8:9], 0x060; GFX10-WGP-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x861; GFX10-WGP-NEXT:    v_mov_b32_e32 v0, 062; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)63; GFX10-WGP-NEXT:    v_mov_b32_e32 v1, s664; GFX10-WGP-NEXT:    ds_read_b32 v1, v165; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)66; GFX10-WGP-NEXT:    global_store_dword v0, v1, s[4:5]67; GFX10-WGP-NEXT:    s_endpgm68;69; GFX10-CU-LABEL: local_nontemporal_load_0:70; GFX10-CU:       ; %bb.0: ; %entry71; GFX10-CU-NEXT:    s_load_dword s6, s[8:9], 0x072; GFX10-CU-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x873; GFX10-CU-NEXT:    v_mov_b32_e32 v0, 074; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)75; GFX10-CU-NEXT:    v_mov_b32_e32 v1, s676; GFX10-CU-NEXT:    ds_read_b32 v1, v177; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)78; GFX10-CU-NEXT:    global_store_dword v0, v1, s[4:5]79; GFX10-CU-NEXT:    s_endpgm80;81; SKIP-CACHE-INV-LABEL: local_nontemporal_load_0:82; SKIP-CACHE-INV:       ; %bb.0: ; %entry83; SKIP-CACHE-INV-NEXT:    s_mov_b64 s[0:1], s[4:5]84; SKIP-CACHE-INV-NEXT:    s_load_dword s4, s[0:1], 0x085; SKIP-CACHE-INV-NEXT:    s_load_dwordx2 s[0:1], s[0:1], 0x286; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)87; SKIP-CACHE-INV-NEXT:    s_mov_b32 s7, s188; SKIP-CACHE-INV-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr189; SKIP-CACHE-INV-NEXT:    s_mov_b32 s5, 0xf00090; SKIP-CACHE-INV-NEXT:    s_mov_b32 s6, -191; SKIP-CACHE-INV-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr392; SKIP-CACHE-INV-NEXT:    s_mov_b32 s1, s793; SKIP-CACHE-INV-NEXT:    s_mov_b32 s2, s694; SKIP-CACHE-INV-NEXT:    s_mov_b32 s3, s595; SKIP-CACHE-INV-NEXT:    s_mov_b32 m0, -196; SKIP-CACHE-INV-NEXT:    v_mov_b32_e32 v0, s497; SKIP-CACHE-INV-NEXT:    ds_read_b32 v0, v098; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)99; SKIP-CACHE-INV-NEXT:    buffer_store_dword v0, off, s[0:3], 0100; SKIP-CACHE-INV-NEXT:    s_endpgm101;102; GFX90A-NOTTGSPLIT-LABEL: local_nontemporal_load_0:103; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry104; GFX90A-NOTTGSPLIT-NEXT:    s_load_dword s6, s[8:9], 0x0105; GFX90A-NOTTGSPLIT-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x8106; GFX90A-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v0, 0107; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)108; GFX90A-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v1, s6109; GFX90A-NOTTGSPLIT-NEXT:    ds_read_b32 v1, v1110; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)111; GFX90A-NOTTGSPLIT-NEXT:    global_store_dword v0, v1, s[4:5]112; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm113;114; GFX90A-TGSPLIT-LABEL: local_nontemporal_load_0:115; GFX90A-TGSPLIT:       ; %bb.0: ; %entry116; GFX90A-TGSPLIT-NEXT:    s_load_dword s6, s[8:9], 0x0117; GFX90A-TGSPLIT-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x8118; GFX90A-TGSPLIT-NEXT:    v_mov_b32_e32 v0, 0119; GFX90A-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)120; GFX90A-TGSPLIT-NEXT:    v_mov_b32_e32 v1, s6121; GFX90A-TGSPLIT-NEXT:    ds_read_b32 v1, v1122; GFX90A-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)123; GFX90A-TGSPLIT-NEXT:    global_store_dword v0, v1, s[4:5]124; GFX90A-TGSPLIT-NEXT:    s_endpgm125;126; GFX942-NOTTGSPLIT-LABEL: local_nontemporal_load_0:127; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry128; GFX942-NOTTGSPLIT-NEXT:    s_load_dword s2, s[4:5], 0x0129; GFX942-NOTTGSPLIT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x8130; GFX942-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v0, 0131; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)132; GFX942-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v1, s2133; GFX942-NOTTGSPLIT-NEXT:    ds_read_b32 v1, v1134; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)135; GFX942-NOTTGSPLIT-NEXT:    global_store_dword v0, v1, s[0:1]136; GFX942-NOTTGSPLIT-NEXT:    s_endpgm137;138; GFX942-TGSPLIT-LABEL: local_nontemporal_load_0:139; GFX942-TGSPLIT:       ; %bb.0: ; %entry140; GFX942-TGSPLIT-NEXT:    s_load_dword s2, s[4:5], 0x0141; GFX942-TGSPLIT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x8142; GFX942-TGSPLIT-NEXT:    v_mov_b32_e32 v0, 0143; GFX942-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)144; GFX942-TGSPLIT-NEXT:    v_mov_b32_e32 v1, s2145; GFX942-TGSPLIT-NEXT:    ds_read_b32 v1, v1146; GFX942-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)147; GFX942-TGSPLIT-NEXT:    global_store_dword v0, v1, s[0:1]148; GFX942-TGSPLIT-NEXT:    s_endpgm149;150; GFX11-WGP-LABEL: local_nontemporal_load_0:151; GFX11-WGP:       ; %bb.0: ; %entry152; GFX11-WGP-NEXT:    s_load_b32 s2, s[4:5], 0x0153; GFX11-WGP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x8154; GFX11-WGP-NEXT:    v_mov_b32_e32 v0, 0155; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)156; GFX11-WGP-NEXT:    v_mov_b32_e32 v1, s2157; GFX11-WGP-NEXT:    ds_load_b32 v1, v1158; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)159; GFX11-WGP-NEXT:    global_store_b32 v0, v1, s[0:1]160; GFX11-WGP-NEXT:    s_endpgm161;162; GFX11-CU-LABEL: local_nontemporal_load_0:163; GFX11-CU:       ; %bb.0: ; %entry164; GFX11-CU-NEXT:    s_load_b32 s2, s[4:5], 0x0165; GFX11-CU-NEXT:    s_load_b64 s[0:1], s[4:5], 0x8166; GFX11-CU-NEXT:    v_mov_b32_e32 v0, 0167; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)168; GFX11-CU-NEXT:    v_mov_b32_e32 v1, s2169; GFX11-CU-NEXT:    ds_load_b32 v1, v1170; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)171; GFX11-CU-NEXT:    global_store_b32 v0, v1, s[0:1]172; GFX11-CU-NEXT:    s_endpgm173;174; GFX12-WGP-LABEL: local_nontemporal_load_0:175; GFX12-WGP:       ; %bb.0: ; %entry176; GFX12-WGP-NEXT:    s_load_b32 s2, s[4:5], 0x0177; GFX12-WGP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x8178; GFX12-WGP-NEXT:    v_mov_b32_e32 v0, 0179; GFX12-WGP-NEXT:    s_wait_kmcnt 0x0180; GFX12-WGP-NEXT:    v_mov_b32_e32 v1, s2181; GFX12-WGP-NEXT:    ds_load_b32 v1, v1182; GFX12-WGP-NEXT:    s_wait_dscnt 0x0183; GFX12-WGP-NEXT:    global_store_b32 v0, v1, s[0:1]184; GFX12-WGP-NEXT:    s_endpgm185;186; GFX12-CU-LABEL: local_nontemporal_load_0:187; GFX12-CU:       ; %bb.0: ; %entry188; GFX12-CU-NEXT:    s_load_b32 s2, s[4:5], 0x0189; GFX12-CU-NEXT:    s_load_b64 s[0:1], s[4:5], 0x8190; GFX12-CU-NEXT:    v_mov_b32_e32 v0, 0191; GFX12-CU-NEXT:    s_wait_kmcnt 0x0192; GFX12-CU-NEXT:    v_mov_b32_e32 v1, s2193; GFX12-CU-NEXT:    ds_load_b32 v1, v1194; GFX12-CU-NEXT:    s_wait_dscnt 0x0195; GFX12-CU-NEXT:    global_store_b32 v0, v1, s[0:1]196; GFX12-CU-NEXT:    s_endpgm197;198; GFX1250-LABEL: local_nontemporal_load_0:199; GFX1250:       ; %bb.0: ; %entry200; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1201; GFX1250-NEXT:    s_load_b32 s2, s[4:5], 0x0202; GFX1250-NEXT:    s_load_b64 s[0:1], s[4:5], 0x8203; GFX1250-NEXT:    v_mov_b32_e32 v0, 0204; GFX1250-NEXT:    s_wait_kmcnt 0x0205; GFX1250-NEXT:    v_mov_b32_e32 v1, s2206; GFX1250-NEXT:    ds_load_b32 v1, v1207; GFX1250-NEXT:    s_wait_dscnt 0x0208; GFX1250-NEXT:    global_store_b32 v0, v1, s[0:1]209; GFX1250-NEXT:    s_endpgm210    ptr addrspace(3) %in, ptr addrspace(1) %out) {211entry:212  %val = load i32, ptr addrspace(3) %in, align 4, !nontemporal !0213  store i32 %val, ptr addrspace(1) %out214  ret void215}216 217define amdgpu_kernel void @local_nontemporal_load_1(218; GFX6-LABEL: local_nontemporal_load_1:219; GFX6:       ; %bb.0: ; %entry220; GFX6-NEXT:    s_mov_b64 s[4:5], s[8:9]221; GFX6-NEXT:    s_load_dword s8, s[4:5], 0x0222; GFX6-NEXT:    ; kill: def $sgpr6 killed $sgpr8223; GFX6-NEXT:    s_load_dwordx2 s[4:5], s[4:5], 0x2224; GFX6-NEXT:    s_waitcnt lgkmcnt(0)225; GFX6-NEXT:    s_mov_b32 s11, s5226; GFX6-NEXT:    ; kill: def $sgpr4 killed $sgpr4 killed $sgpr4_sgpr5227; GFX6-NEXT:    s_mov_b32 s9, 0x100f000228; GFX6-NEXT:    s_mov_b32 s10, -1229; GFX6-NEXT:    ; kill: def $sgpr4 killed $sgpr4 def $sgpr4_sgpr5_sgpr6_sgpr7230; GFX6-NEXT:    s_mov_b32 s5, s11231; GFX6-NEXT:    s_mov_b32 s6, s10232; GFX6-NEXT:    s_mov_b32 s7, s9233; GFX6-NEXT:    s_mov_b32 s9, 2234; GFX6-NEXT:    v_lshlrev_b32_e64 v0, s9, v0235; GFX6-NEXT:    v_add_i32_e64 v0, s[8:9], s8, v0236; GFX6-NEXT:    s_mov_b32 m0, -1237; GFX6-NEXT:    ds_read_b32 v0, v0238; GFX6-NEXT:    s_waitcnt lgkmcnt(0)239; GFX6-NEXT:    buffer_store_dword v0, off, s[4:7], 0240; GFX6-NEXT:    s_endpgm241;242; GFX7-LABEL: local_nontemporal_load_1:243; GFX7:       ; %bb.0: ; %entry244; GFX7-NEXT:    s_mov_b32 flat_scratch_lo, s13245; GFX7-NEXT:    s_add_i32 s12, s12, s17246; GFX7-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 8247; GFX7-NEXT:    s_load_dword s6, s[8:9], 0x0248; GFX7-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x2249; GFX7-NEXT:    s_mov_b32 s7, 2250; GFX7-NEXT:    v_lshlrev_b32_e64 v0, s7, v0251; GFX7-NEXT:    s_waitcnt lgkmcnt(0)252; GFX7-NEXT:    v_add_i32_e64 v0, s[6:7], s6, v0253; GFX7-NEXT:    s_mov_b32 m0, -1254; GFX7-NEXT:    ds_read_b32 v2, v0255; GFX7-NEXT:    v_mov_b32_e32 v0, s4256; GFX7-NEXT:    v_mov_b32_e32 v1, s5257; GFX7-NEXT:    s_waitcnt lgkmcnt(0)258; GFX7-NEXT:    flat_store_dword v[0:1], v2259; GFX7-NEXT:    s_endpgm260;261; GFX10-WGP-LABEL: local_nontemporal_load_1:262; GFX10-WGP:       ; %bb.0: ; %entry263; GFX10-WGP-NEXT:    v_mov_b32_e32 v1, v0264; GFX10-WGP-NEXT:    s_load_dword s6, s[8:9], 0x0265; GFX10-WGP-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x8266; GFX10-WGP-NEXT:    v_mov_b32_e32 v0, 0267; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)268; GFX10-WGP-NEXT:    v_lshl_add_u32 v1, v1, 2, s6269; GFX10-WGP-NEXT:    ds_read_b32 v1, v1270; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)271; GFX10-WGP-NEXT:    global_store_dword v0, v1, s[4:5]272; GFX10-WGP-NEXT:    s_endpgm273;274; GFX10-CU-LABEL: local_nontemporal_load_1:275; GFX10-CU:       ; %bb.0: ; %entry276; GFX10-CU-NEXT:    v_mov_b32_e32 v1, v0277; GFX10-CU-NEXT:    s_load_dword s6, s[8:9], 0x0278; GFX10-CU-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x8279; GFX10-CU-NEXT:    v_mov_b32_e32 v0, 0280; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)281; GFX10-CU-NEXT:    v_lshl_add_u32 v1, v1, 2, s6282; GFX10-CU-NEXT:    ds_read_b32 v1, v1283; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)284; GFX10-CU-NEXT:    global_store_dword v0, v1, s[4:5]285; GFX10-CU-NEXT:    s_endpgm286;287; SKIP-CACHE-INV-LABEL: local_nontemporal_load_1:288; SKIP-CACHE-INV:       ; %bb.0: ; %entry289; SKIP-CACHE-INV-NEXT:    s_mov_b64 s[0:1], s[4:5]290; SKIP-CACHE-INV-NEXT:    s_load_dword s4, s[0:1], 0x0291; SKIP-CACHE-INV-NEXT:    s_load_dwordx2 s[0:1], s[0:1], 0x2292; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)293; SKIP-CACHE-INV-NEXT:    s_mov_b32 s7, s1294; SKIP-CACHE-INV-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr1295; SKIP-CACHE-INV-NEXT:    s_mov_b32 s5, 0xf000296; SKIP-CACHE-INV-NEXT:    s_mov_b32 s6, -1297; SKIP-CACHE-INV-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr3298; SKIP-CACHE-INV-NEXT:    s_mov_b32 s1, s7299; SKIP-CACHE-INV-NEXT:    s_mov_b32 s2, s6300; SKIP-CACHE-INV-NEXT:    s_mov_b32 s3, s5301; SKIP-CACHE-INV-NEXT:    s_mov_b32 s5, 2302; SKIP-CACHE-INV-NEXT:    v_lshlrev_b32_e64 v0, s5, v0303; SKIP-CACHE-INV-NEXT:    v_add_i32_e64 v0, s[4:5], s4, v0304; SKIP-CACHE-INV-NEXT:    s_mov_b32 m0, -1305; SKIP-CACHE-INV-NEXT:    ds_read_b32 v0, v0306; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)307; SKIP-CACHE-INV-NEXT:    buffer_store_dword v0, off, s[0:3], 0308; SKIP-CACHE-INV-NEXT:    s_endpgm309;310; GFX90A-NOTTGSPLIT-LABEL: local_nontemporal_load_1:311; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry312; GFX90A-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v1, v0313; GFX90A-NOTTGSPLIT-NEXT:    s_load_dword s6, s[8:9], 0x0314; GFX90A-NOTTGSPLIT-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x8315; GFX90A-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v0, 0316; GFX90A-NOTTGSPLIT-NEXT:    s_mov_b32 s7, 0x3ff317; GFX90A-NOTTGSPLIT-NEXT:    v_and_b32_e64 v1, v1, s7318; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)319; GFX90A-NOTTGSPLIT-NEXT:    v_lshl_add_u32 v1, v1, 2, s6320; GFX90A-NOTTGSPLIT-NEXT:    ds_read_b32 v1, v1321; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)322; GFX90A-NOTTGSPLIT-NEXT:    global_store_dword v0, v1, s[4:5]323; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm324;325; GFX90A-TGSPLIT-LABEL: local_nontemporal_load_1:326; GFX90A-TGSPLIT:       ; %bb.0: ; %entry327; GFX90A-TGSPLIT-NEXT:    v_mov_b32_e32 v1, v0328; GFX90A-TGSPLIT-NEXT:    s_load_dword s6, s[8:9], 0x0329; GFX90A-TGSPLIT-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x8330; GFX90A-TGSPLIT-NEXT:    v_mov_b32_e32 v0, 0331; GFX90A-TGSPLIT-NEXT:    s_mov_b32 s7, 0x3ff332; GFX90A-TGSPLIT-NEXT:    v_and_b32_e64 v1, v1, s7333; GFX90A-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)334; GFX90A-TGSPLIT-NEXT:    v_lshl_add_u32 v1, v1, 2, s6335; GFX90A-TGSPLIT-NEXT:    ds_read_b32 v1, v1336; GFX90A-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)337; GFX90A-TGSPLIT-NEXT:    global_store_dword v0, v1, s[4:5]338; GFX90A-TGSPLIT-NEXT:    s_endpgm339;340; GFX942-NOTTGSPLIT-LABEL: local_nontemporal_load_1:341; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry342; GFX942-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v1, v0343; GFX942-NOTTGSPLIT-NEXT:    s_load_dword s2, s[4:5], 0x0344; GFX942-NOTTGSPLIT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x8345; GFX942-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v0, 0346; GFX942-NOTTGSPLIT-NEXT:    s_mov_b32 s3, 0x3ff347; GFX942-NOTTGSPLIT-NEXT:    v_and_b32_e64 v1, v1, s3348; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)349; GFX942-NOTTGSPLIT-NEXT:    v_lshl_add_u32 v1, v1, 2, s2350; GFX942-NOTTGSPLIT-NEXT:    ds_read_b32 v1, v1351; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)352; GFX942-NOTTGSPLIT-NEXT:    global_store_dword v0, v1, s[0:1]353; GFX942-NOTTGSPLIT-NEXT:    s_endpgm354;355; GFX942-TGSPLIT-LABEL: local_nontemporal_load_1:356; GFX942-TGSPLIT:       ; %bb.0: ; %entry357; GFX942-TGSPLIT-NEXT:    v_mov_b32_e32 v1, v0358; GFX942-TGSPLIT-NEXT:    s_load_dword s2, s[4:5], 0x0359; GFX942-TGSPLIT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x8360; GFX942-TGSPLIT-NEXT:    v_mov_b32_e32 v0, 0361; GFX942-TGSPLIT-NEXT:    s_mov_b32 s3, 0x3ff362; GFX942-TGSPLIT-NEXT:    v_and_b32_e64 v1, v1, s3363; GFX942-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)364; GFX942-TGSPLIT-NEXT:    v_lshl_add_u32 v1, v1, 2, s2365; GFX942-TGSPLIT-NEXT:    ds_read_b32 v1, v1366; GFX942-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)367; GFX942-TGSPLIT-NEXT:    global_store_dword v0, v1, s[0:1]368; GFX942-TGSPLIT-NEXT:    s_endpgm369;370; GFX11-WGP-LABEL: local_nontemporal_load_1:371; GFX11-WGP:       ; %bb.0: ; %entry372; GFX11-WGP-NEXT:    v_mov_b32_e32 v1, v0373; GFX11-WGP-NEXT:    s_load_b32 s2, s[4:5], 0x0374; GFX11-WGP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x8375; GFX11-WGP-NEXT:    v_mov_b32_e32 v0, 0376; GFX11-WGP-NEXT:    s_mov_b32 s3, 0x3ff377; GFX11-WGP-NEXT:    v_and_b32_e64 v1, v1, s3378; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)379; GFX11-WGP-NEXT:    v_lshl_add_u32 v1, v1, 2, s2380; GFX11-WGP-NEXT:    ds_load_b32 v1, v1381; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)382; GFX11-WGP-NEXT:    global_store_b32 v0, v1, s[0:1]383; GFX11-WGP-NEXT:    s_endpgm384;385; GFX11-CU-LABEL: local_nontemporal_load_1:386; GFX11-CU:       ; %bb.0: ; %entry387; GFX11-CU-NEXT:    v_mov_b32_e32 v1, v0388; GFX11-CU-NEXT:    s_load_b32 s2, s[4:5], 0x0389; GFX11-CU-NEXT:    s_load_b64 s[0:1], s[4:5], 0x8390; GFX11-CU-NEXT:    v_mov_b32_e32 v0, 0391; GFX11-CU-NEXT:    s_mov_b32 s3, 0x3ff392; GFX11-CU-NEXT:    v_and_b32_e64 v1, v1, s3393; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)394; GFX11-CU-NEXT:    v_lshl_add_u32 v1, v1, 2, s2395; GFX11-CU-NEXT:    ds_load_b32 v1, v1396; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)397; GFX11-CU-NEXT:    global_store_b32 v0, v1, s[0:1]398; GFX11-CU-NEXT:    s_endpgm399;400; GFX12-WGP-LABEL: local_nontemporal_load_1:401; GFX12-WGP:       ; %bb.0: ; %entry402; GFX12-WGP-NEXT:    v_mov_b32_e32 v1, v0403; GFX12-WGP-NEXT:    s_load_b32 s2, s[4:5], 0x0404; GFX12-WGP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x8405; GFX12-WGP-NEXT:    v_mov_b32_e32 v0, 0406; GFX12-WGP-NEXT:    s_mov_b32 s3, 0x3ff407; GFX12-WGP-NEXT:    v_and_b32_e64 v1, v1, s3408; GFX12-WGP-NEXT:    s_wait_kmcnt 0x0409; GFX12-WGP-NEXT:    v_lshl_add_u32 v1, v1, 2, s2410; GFX12-WGP-NEXT:    ds_load_b32 v1, v1411; GFX12-WGP-NEXT:    s_wait_dscnt 0x0412; GFX12-WGP-NEXT:    global_store_b32 v0, v1, s[0:1]413; GFX12-WGP-NEXT:    s_endpgm414;415; GFX12-CU-LABEL: local_nontemporal_load_1:416; GFX12-CU:       ; %bb.0: ; %entry417; GFX12-CU-NEXT:    v_mov_b32_e32 v1, v0418; GFX12-CU-NEXT:    s_load_b32 s2, s[4:5], 0x0419; GFX12-CU-NEXT:    s_load_b64 s[0:1], s[4:5], 0x8420; GFX12-CU-NEXT:    v_mov_b32_e32 v0, 0421; GFX12-CU-NEXT:    s_mov_b32 s3, 0x3ff422; GFX12-CU-NEXT:    v_and_b32_e64 v1, v1, s3423; GFX12-CU-NEXT:    s_wait_kmcnt 0x0424; GFX12-CU-NEXT:    v_lshl_add_u32 v1, v1, 2, s2425; GFX12-CU-NEXT:    ds_load_b32 v1, v1426; GFX12-CU-NEXT:    s_wait_dscnt 0x0427; GFX12-CU-NEXT:    global_store_b32 v0, v1, s[0:1]428; GFX12-CU-NEXT:    s_endpgm429;430; GFX1250-LABEL: local_nontemporal_load_1:431; GFX1250:       ; %bb.0: ; %entry432; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1433; GFX1250-NEXT:    v_mov_b32_e32 v1, v0434; GFX1250-NEXT:    s_load_b32 s2, s[4:5], 0x0435; GFX1250-NEXT:    s_load_b64 s[0:1], s[4:5], 0x8436; GFX1250-NEXT:    v_mov_b32_e32 v0, 0437; GFX1250-NEXT:    s_mov_b32 s3, 0x3ff438; GFX1250-NEXT:    v_and_b32_e64 v1, v1, s3439; GFX1250-NEXT:    s_wait_kmcnt 0x0440; GFX1250-NEXT:    v_lshl_add_u32 v1, v1, 2, s2441; GFX1250-NEXT:    ds_load_b32 v1, v1442; GFX1250-NEXT:    s_wait_dscnt 0x0443; GFX1250-NEXT:    global_store_b32 v0, v1, s[0:1]444; GFX1250-NEXT:    s_endpgm445    ptr addrspace(3) %in, ptr addrspace(1) %out) {446entry:447  %tid = call i32 @llvm.amdgcn.workitem.id.x()448  %val.gep = getelementptr inbounds i32, ptr addrspace(3) %in, i32 %tid449  %val = load i32, ptr addrspace(3) %val.gep, align 4, !nontemporal !0450  store i32 %val, ptr addrspace(1) %out451  ret void452}453 454define amdgpu_kernel void @local_nontemporal_store_0(455; GFX6-LABEL: local_nontemporal_store_0:456; GFX6:       ; %bb.0: ; %entry457; GFX6-NEXT:    s_load_dword s5, s[8:9], 0x2458; GFX6-NEXT:    ; kill: def $sgpr4 killed $sgpr5459; GFX6-NEXT:    s_load_dwordx2 s[6:7], s[8:9], 0x0460; GFX6-NEXT:    s_waitcnt lgkmcnt(0)461; GFX6-NEXT:    s_load_dword s4, s[6:7], 0x0462; GFX6-NEXT:    s_mov_b32 m0, -1463; GFX6-NEXT:    v_mov_b32_e32 v0, s5464; GFX6-NEXT:    s_waitcnt lgkmcnt(0)465; GFX6-NEXT:    v_mov_b32_e32 v1, s4466; GFX6-NEXT:    ds_write_b32 v0, v1467; GFX6-NEXT:    s_endpgm468;469; GFX7-LABEL: local_nontemporal_store_0:470; GFX7:       ; %bb.0: ; %entry471; GFX7-NEXT:    s_load_dwordx2 s[6:7], s[8:9], 0x0472; GFX7-NEXT:    s_load_dword s5, s[8:9], 0x2473; GFX7-NEXT:    s_waitcnt lgkmcnt(0)474; GFX7-NEXT:    s_load_dword s4, s[6:7], 0x0475; GFX7-NEXT:    s_mov_b32 m0, -1476; GFX7-NEXT:    v_mov_b32_e32 v0, s5477; GFX7-NEXT:    s_waitcnt lgkmcnt(0)478; GFX7-NEXT:    v_mov_b32_e32 v1, s4479; GFX7-NEXT:    ds_write_b32 v0, v1480; GFX7-NEXT:    s_endpgm481;482; GFX10-WGP-LABEL: local_nontemporal_store_0:483; GFX10-WGP:       ; %bb.0: ; %entry484; GFX10-WGP-NEXT:    s_load_dwordx2 s[6:7], s[8:9], 0x0485; GFX10-WGP-NEXT:    s_load_dword s5, s[8:9], 0x8486; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)487; GFX10-WGP-NEXT:    s_load_dword s4, s[6:7], 0x0488; GFX10-WGP-NEXT:    v_mov_b32_e32 v0, s5489; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)490; GFX10-WGP-NEXT:    v_mov_b32_e32 v1, s4491; GFX10-WGP-NEXT:    ds_write_b32 v0, v1492; GFX10-WGP-NEXT:    s_endpgm493;494; GFX10-CU-LABEL: local_nontemporal_store_0:495; GFX10-CU:       ; %bb.0: ; %entry496; GFX10-CU-NEXT:    s_load_dwordx2 s[6:7], s[8:9], 0x0497; GFX10-CU-NEXT:    s_load_dword s5, s[8:9], 0x8498; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)499; GFX10-CU-NEXT:    s_load_dword s4, s[6:7], 0x0500; GFX10-CU-NEXT:    v_mov_b32_e32 v0, s5501; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)502; GFX10-CU-NEXT:    v_mov_b32_e32 v1, s4503; GFX10-CU-NEXT:    ds_write_b32 v0, v1504; GFX10-CU-NEXT:    s_endpgm505;506; SKIP-CACHE-INV-LABEL: local_nontemporal_store_0:507; SKIP-CACHE-INV:       ; %bb.0: ; %entry508; SKIP-CACHE-INV-NEXT:    s_load_dwordx2 s[2:3], s[4:5], 0x0509; SKIP-CACHE-INV-NEXT:    s_load_dword s1, s[4:5], 0x2510; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)511; SKIP-CACHE-INV-NEXT:    s_load_dword s0, s[2:3], 0x0512; SKIP-CACHE-INV-NEXT:    s_mov_b32 m0, -1513; SKIP-CACHE-INV-NEXT:    v_mov_b32_e32 v0, s1514; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)515; SKIP-CACHE-INV-NEXT:    v_mov_b32_e32 v1, s0516; SKIP-CACHE-INV-NEXT:    ds_write_b32 v0, v1517; SKIP-CACHE-INV-NEXT:    s_endpgm518;519; GFX90A-NOTTGSPLIT-LABEL: local_nontemporal_store_0:520; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry521; GFX90A-NOTTGSPLIT-NEXT:    s_load_dwordx2 s[6:7], s[8:9], 0x0522; GFX90A-NOTTGSPLIT-NEXT:    s_load_dword s5, s[8:9], 0x8523; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)524; GFX90A-NOTTGSPLIT-NEXT:    s_load_dword s4, s[6:7], 0x0525; GFX90A-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v0, s5526; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)527; GFX90A-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v1, s4528; GFX90A-NOTTGSPLIT-NEXT:    ds_write_b32 v0, v1529; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm530;531; GFX90A-TGSPLIT-LABEL: local_nontemporal_store_0:532; GFX90A-TGSPLIT:       ; %bb.0: ; %entry533; GFX90A-TGSPLIT-NEXT:    s_load_dwordx2 s[6:7], s[8:9], 0x0534; GFX90A-TGSPLIT-NEXT:    s_load_dword s5, s[8:9], 0x8535; GFX90A-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)536; GFX90A-TGSPLIT-NEXT:    s_load_dword s4, s[6:7], 0x0537; GFX90A-TGSPLIT-NEXT:    v_mov_b32_e32 v0, s5538; GFX90A-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)539; GFX90A-TGSPLIT-NEXT:    v_mov_b32_e32 v1, s4540; GFX90A-TGSPLIT-NEXT:    ds_write_b32 v0, v1541; GFX90A-TGSPLIT-NEXT:    s_endpgm542;543; GFX942-NOTTGSPLIT-LABEL: local_nontemporal_store_0:544; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry545; GFX942-NOTTGSPLIT-NEXT:    s_load_dwordx2 s[2:3], s[4:5], 0x0546; GFX942-NOTTGSPLIT-NEXT:    s_load_dword s1, s[4:5], 0x8547; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)548; GFX942-NOTTGSPLIT-NEXT:    s_load_dword s0, s[2:3], 0x0549; GFX942-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v0, s1550; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)551; GFX942-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v1, s0552; GFX942-NOTTGSPLIT-NEXT:    ds_write_b32 v0, v1553; GFX942-NOTTGSPLIT-NEXT:    s_endpgm554;555; GFX942-TGSPLIT-LABEL: local_nontemporal_store_0:556; GFX942-TGSPLIT:       ; %bb.0: ; %entry557; GFX942-TGSPLIT-NEXT:    s_load_dwordx2 s[2:3], s[4:5], 0x0558; GFX942-TGSPLIT-NEXT:    s_load_dword s1, s[4:5], 0x8559; GFX942-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)560; GFX942-TGSPLIT-NEXT:    s_load_dword s0, s[2:3], 0x0561; GFX942-TGSPLIT-NEXT:    v_mov_b32_e32 v0, s1562; GFX942-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)563; GFX942-TGSPLIT-NEXT:    v_mov_b32_e32 v1, s0564; GFX942-TGSPLIT-NEXT:    ds_write_b32 v0, v1565; GFX942-TGSPLIT-NEXT:    s_endpgm566;567; GFX11-WGP-LABEL: local_nontemporal_store_0:568; GFX11-WGP:       ; %bb.0: ; %entry569; GFX11-WGP-NEXT:    s_load_b64 s[2:3], s[4:5], 0x0570; GFX11-WGP-NEXT:    s_load_b32 s1, s[4:5], 0x8571; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)572; GFX11-WGP-NEXT:    s_load_b32 s0, s[2:3], 0x0573; GFX11-WGP-NEXT:    v_mov_b32_e32 v0, s1574; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)575; GFX11-WGP-NEXT:    v_mov_b32_e32 v1, s0576; GFX11-WGP-NEXT:    ds_store_b32 v0, v1577; GFX11-WGP-NEXT:    s_endpgm578;579; GFX11-CU-LABEL: local_nontemporal_store_0:580; GFX11-CU:       ; %bb.0: ; %entry581; GFX11-CU-NEXT:    s_load_b64 s[2:3], s[4:5], 0x0582; GFX11-CU-NEXT:    s_load_b32 s1, s[4:5], 0x8583; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)584; GFX11-CU-NEXT:    s_load_b32 s0, s[2:3], 0x0585; GFX11-CU-NEXT:    v_mov_b32_e32 v0, s1586; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)587; GFX11-CU-NEXT:    v_mov_b32_e32 v1, s0588; GFX11-CU-NEXT:    ds_store_b32 v0, v1589; GFX11-CU-NEXT:    s_endpgm590;591; GFX12-WGP-LABEL: local_nontemporal_store_0:592; GFX12-WGP:       ; %bb.0: ; %entry593; GFX12-WGP-NEXT:    s_load_b64 s[2:3], s[4:5], 0x0594; GFX12-WGP-NEXT:    s_load_b32 s1, s[4:5], 0x8595; GFX12-WGP-NEXT:    s_wait_kmcnt 0x0596; GFX12-WGP-NEXT:    s_load_b32 s0, s[2:3], 0x0597; GFX12-WGP-NEXT:    v_mov_b32_e32 v0, s1598; GFX12-WGP-NEXT:    s_wait_kmcnt 0x0599; GFX12-WGP-NEXT:    v_mov_b32_e32 v1, s0600; GFX12-WGP-NEXT:    ds_store_b32 v0, v1601; GFX12-WGP-NEXT:    s_endpgm602;603; GFX12-CU-LABEL: local_nontemporal_store_0:604; GFX12-CU:       ; %bb.0: ; %entry605; GFX12-CU-NEXT:    s_load_b64 s[2:3], s[4:5], 0x0606; GFX12-CU-NEXT:    s_load_b32 s1, s[4:5], 0x8607; GFX12-CU-NEXT:    s_wait_kmcnt 0x0608; GFX12-CU-NEXT:    s_load_b32 s0, s[2:3], 0x0609; GFX12-CU-NEXT:    v_mov_b32_e32 v0, s1610; GFX12-CU-NEXT:    s_wait_kmcnt 0x0611; GFX12-CU-NEXT:    v_mov_b32_e32 v1, s0612; GFX12-CU-NEXT:    ds_store_b32 v0, v1613; GFX12-CU-NEXT:    s_endpgm614;615; GFX1250-LABEL: local_nontemporal_store_0:616; GFX1250:       ; %bb.0: ; %entry617; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1618; GFX1250-NEXT:    s_load_b64 s[2:3], s[4:5], 0x0619; GFX1250-NEXT:    s_load_b32 s1, s[4:5], 0x8620; GFX1250-NEXT:    s_wait_kmcnt 0x0621; GFX1250-NEXT:    s_load_b32 s0, s[2:3], 0x0622; GFX1250-NEXT:    v_mov_b32_e32 v0, s1623; GFX1250-NEXT:    s_wait_kmcnt 0x0624; GFX1250-NEXT:    v_mov_b32_e32 v1, s0625; GFX1250-NEXT:    ds_store_b32 v0, v1626; GFX1250-NEXT:    s_endpgm627    ptr addrspace(1) %in, ptr addrspace(3) %out) {628entry:629  %val = load i32, ptr addrspace(1) %in, align 4630  store i32 %val, ptr addrspace(3) %out, !nontemporal !0631  ret void632}633 634define amdgpu_kernel void @local_nontemporal_store_1(635; GFX6-LABEL: local_nontemporal_store_1:636; GFX6:       ; %bb.0: ; %entry637; GFX6-NEXT:    s_load_dword s5, s[8:9], 0x2638; GFX6-NEXT:    ; kill: def $sgpr4 killed $sgpr5639; GFX6-NEXT:    s_load_dwordx2 s[6:7], s[8:9], 0x0640; GFX6-NEXT:    s_waitcnt lgkmcnt(0)641; GFX6-NEXT:    s_load_dword s4, s[6:7], 0x0642; GFX6-NEXT:    s_mov_b32 s6, 2643; GFX6-NEXT:    v_lshlrev_b32_e64 v0, s6, v0644; GFX6-NEXT:    v_add_i32_e64 v0, s[6:7], s5, v0645; GFX6-NEXT:    s_mov_b32 m0, -1646; GFX6-NEXT:    s_waitcnt lgkmcnt(0)647; GFX6-NEXT:    v_mov_b32_e32 v1, s4648; GFX6-NEXT:    ds_write_b32 v0, v1649; GFX6-NEXT:    s_endpgm650;651; GFX7-LABEL: local_nontemporal_store_1:652; GFX7:       ; %bb.0: ; %entry653; GFX7-NEXT:    s_load_dwordx2 s[6:7], s[8:9], 0x0654; GFX7-NEXT:    s_load_dword s5, s[8:9], 0x2655; GFX7-NEXT:    s_waitcnt lgkmcnt(0)656; GFX7-NEXT:    s_load_dword s4, s[6:7], 0x0657; GFX7-NEXT:    s_mov_b32 s6, 2658; GFX7-NEXT:    v_lshlrev_b32_e64 v0, s6, v0659; GFX7-NEXT:    v_add_i32_e64 v0, s[6:7], s5, v0660; GFX7-NEXT:    s_mov_b32 m0, -1661; GFX7-NEXT:    s_waitcnt lgkmcnt(0)662; GFX7-NEXT:    v_mov_b32_e32 v1, s4663; GFX7-NEXT:    ds_write_b32 v0, v1664; GFX7-NEXT:    s_endpgm665;666; GFX10-WGP-LABEL: local_nontemporal_store_1:667; GFX10-WGP:       ; %bb.0: ; %entry668; GFX10-WGP-NEXT:    s_load_dwordx2 s[6:7], s[8:9], 0x0669; GFX10-WGP-NEXT:    s_load_dword s5, s[8:9], 0x8670; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)671; GFX10-WGP-NEXT:    s_load_dword s4, s[6:7], 0x0672; GFX10-WGP-NEXT:    v_lshl_add_u32 v0, v0, 2, s5673; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)674; GFX10-WGP-NEXT:    v_mov_b32_e32 v1, s4675; GFX10-WGP-NEXT:    ds_write_b32 v0, v1676; GFX10-WGP-NEXT:    s_endpgm677;678; GFX10-CU-LABEL: local_nontemporal_store_1:679; GFX10-CU:       ; %bb.0: ; %entry680; GFX10-CU-NEXT:    s_load_dwordx2 s[6:7], s[8:9], 0x0681; GFX10-CU-NEXT:    s_load_dword s5, s[8:9], 0x8682; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)683; GFX10-CU-NEXT:    s_load_dword s4, s[6:7], 0x0684; GFX10-CU-NEXT:    v_lshl_add_u32 v0, v0, 2, s5685; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)686; GFX10-CU-NEXT:    v_mov_b32_e32 v1, s4687; GFX10-CU-NEXT:    ds_write_b32 v0, v1688; GFX10-CU-NEXT:    s_endpgm689;690; SKIP-CACHE-INV-LABEL: local_nontemporal_store_1:691; SKIP-CACHE-INV:       ; %bb.0: ; %entry692; SKIP-CACHE-INV-NEXT:    s_load_dwordx2 s[2:3], s[4:5], 0x0693; SKIP-CACHE-INV-NEXT:    s_load_dword s1, s[4:5], 0x2694; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)695; SKIP-CACHE-INV-NEXT:    s_load_dword s0, s[2:3], 0x0696; SKIP-CACHE-INV-NEXT:    s_mov_b32 s2, 2697; SKIP-CACHE-INV-NEXT:    v_lshlrev_b32_e64 v0, s2, v0698; SKIP-CACHE-INV-NEXT:    v_add_i32_e64 v0, s[2:3], s1, v0699; SKIP-CACHE-INV-NEXT:    s_mov_b32 m0, -1700; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)701; SKIP-CACHE-INV-NEXT:    v_mov_b32_e32 v1, s0702; SKIP-CACHE-INV-NEXT:    ds_write_b32 v0, v1703; SKIP-CACHE-INV-NEXT:    s_endpgm704;705; GFX90A-NOTTGSPLIT-LABEL: local_nontemporal_store_1:706; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry707; GFX90A-NOTTGSPLIT-NEXT:    s_load_dwordx2 s[6:7], s[8:9], 0x0708; GFX90A-NOTTGSPLIT-NEXT:    s_load_dword s5, s[8:9], 0x8709; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)710; GFX90A-NOTTGSPLIT-NEXT:    s_load_dword s4, s[6:7], 0x0711; GFX90A-NOTTGSPLIT-NEXT:    s_mov_b32 s6, 0x3ff712; GFX90A-NOTTGSPLIT-NEXT:    v_and_b32_e64 v0, v0, s6713; GFX90A-NOTTGSPLIT-NEXT:    v_lshl_add_u32 v0, v0, 2, s5714; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)715; GFX90A-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v1, s4716; GFX90A-NOTTGSPLIT-NEXT:    ds_write_b32 v0, v1717; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm718;719; GFX90A-TGSPLIT-LABEL: local_nontemporal_store_1:720; GFX90A-TGSPLIT:       ; %bb.0: ; %entry721; GFX90A-TGSPLIT-NEXT:    s_load_dwordx2 s[6:7], s[8:9], 0x0722; GFX90A-TGSPLIT-NEXT:    s_load_dword s5, s[8:9], 0x8723; GFX90A-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)724; GFX90A-TGSPLIT-NEXT:    s_load_dword s4, s[6:7], 0x0725; GFX90A-TGSPLIT-NEXT:    s_mov_b32 s6, 0x3ff726; GFX90A-TGSPLIT-NEXT:    v_and_b32_e64 v0, v0, s6727; GFX90A-TGSPLIT-NEXT:    v_lshl_add_u32 v0, v0, 2, s5728; GFX90A-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)729; GFX90A-TGSPLIT-NEXT:    v_mov_b32_e32 v1, s4730; GFX90A-TGSPLIT-NEXT:    ds_write_b32 v0, v1731; GFX90A-TGSPLIT-NEXT:    s_endpgm732;733; GFX942-NOTTGSPLIT-LABEL: local_nontemporal_store_1:734; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry735; GFX942-NOTTGSPLIT-NEXT:    s_load_dwordx2 s[2:3], s[4:5], 0x0736; GFX942-NOTTGSPLIT-NEXT:    s_load_dword s1, s[4:5], 0x8737; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)738; GFX942-NOTTGSPLIT-NEXT:    s_load_dword s0, s[2:3], 0x0739; GFX942-NOTTGSPLIT-NEXT:    s_mov_b32 s2, 0x3ff740; GFX942-NOTTGSPLIT-NEXT:    v_and_b32_e64 v0, v0, s2741; GFX942-NOTTGSPLIT-NEXT:    v_lshl_add_u32 v0, v0, 2, s1742; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)743; GFX942-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v1, s0744; GFX942-NOTTGSPLIT-NEXT:    ds_write_b32 v0, v1745; GFX942-NOTTGSPLIT-NEXT:    s_endpgm746;747; GFX942-TGSPLIT-LABEL: local_nontemporal_store_1:748; GFX942-TGSPLIT:       ; %bb.0: ; %entry749; GFX942-TGSPLIT-NEXT:    s_load_dwordx2 s[2:3], s[4:5], 0x0750; GFX942-TGSPLIT-NEXT:    s_load_dword s1, s[4:5], 0x8751; GFX942-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)752; GFX942-TGSPLIT-NEXT:    s_load_dword s0, s[2:3], 0x0753; GFX942-TGSPLIT-NEXT:    s_mov_b32 s2, 0x3ff754; GFX942-TGSPLIT-NEXT:    v_and_b32_e64 v0, v0, s2755; GFX942-TGSPLIT-NEXT:    v_lshl_add_u32 v0, v0, 2, s1756; GFX942-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)757; GFX942-TGSPLIT-NEXT:    v_mov_b32_e32 v1, s0758; GFX942-TGSPLIT-NEXT:    ds_write_b32 v0, v1759; GFX942-TGSPLIT-NEXT:    s_endpgm760;761; GFX11-WGP-LABEL: local_nontemporal_store_1:762; GFX11-WGP:       ; %bb.0: ; %entry763; GFX11-WGP-NEXT:    s_load_b64 s[2:3], s[4:5], 0x0764; GFX11-WGP-NEXT:    s_load_b32 s1, s[4:5], 0x8765; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)766; GFX11-WGP-NEXT:    s_load_b32 s0, s[2:3], 0x0767; GFX11-WGP-NEXT:    s_mov_b32 s2, 0x3ff768; GFX11-WGP-NEXT:    v_and_b32_e64 v0, v0, s2769; GFX11-WGP-NEXT:    v_lshl_add_u32 v0, v0, 2, s1770; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)771; GFX11-WGP-NEXT:    v_mov_b32_e32 v1, s0772; GFX11-WGP-NEXT:    ds_store_b32 v0, v1773; GFX11-WGP-NEXT:    s_endpgm774;775; GFX11-CU-LABEL: local_nontemporal_store_1:776; GFX11-CU:       ; %bb.0: ; %entry777; GFX11-CU-NEXT:    s_load_b64 s[2:3], s[4:5], 0x0778; GFX11-CU-NEXT:    s_load_b32 s1, s[4:5], 0x8779; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)780; GFX11-CU-NEXT:    s_load_b32 s0, s[2:3], 0x0781; GFX11-CU-NEXT:    s_mov_b32 s2, 0x3ff782; GFX11-CU-NEXT:    v_and_b32_e64 v0, v0, s2783; GFX11-CU-NEXT:    v_lshl_add_u32 v0, v0, 2, s1784; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)785; GFX11-CU-NEXT:    v_mov_b32_e32 v1, s0786; GFX11-CU-NEXT:    ds_store_b32 v0, v1787; GFX11-CU-NEXT:    s_endpgm788;789; GFX12-WGP-LABEL: local_nontemporal_store_1:790; GFX12-WGP:       ; %bb.0: ; %entry791; GFX12-WGP-NEXT:    s_load_b64 s[2:3], s[4:5], 0x0792; GFX12-WGP-NEXT:    s_load_b32 s1, s[4:5], 0x8793; GFX12-WGP-NEXT:    s_wait_kmcnt 0x0794; GFX12-WGP-NEXT:    s_load_b32 s0, s[2:3], 0x0795; GFX12-WGP-NEXT:    s_mov_b32 s2, 0x3ff796; GFX12-WGP-NEXT:    v_and_b32_e64 v0, v0, s2797; GFX12-WGP-NEXT:    v_lshl_add_u32 v0, v0, 2, s1798; GFX12-WGP-NEXT:    s_wait_kmcnt 0x0799; GFX12-WGP-NEXT:    v_mov_b32_e32 v1, s0800; GFX12-WGP-NEXT:    ds_store_b32 v0, v1801; GFX12-WGP-NEXT:    s_endpgm802;803; GFX12-CU-LABEL: local_nontemporal_store_1:804; GFX12-CU:       ; %bb.0: ; %entry805; GFX12-CU-NEXT:    s_load_b64 s[2:3], s[4:5], 0x0806; GFX12-CU-NEXT:    s_load_b32 s1, s[4:5], 0x8807; GFX12-CU-NEXT:    s_wait_kmcnt 0x0808; GFX12-CU-NEXT:    s_load_b32 s0, s[2:3], 0x0809; GFX12-CU-NEXT:    s_mov_b32 s2, 0x3ff810; GFX12-CU-NEXT:    v_and_b32_e64 v0, v0, s2811; GFX12-CU-NEXT:    v_lshl_add_u32 v0, v0, 2, s1812; GFX12-CU-NEXT:    s_wait_kmcnt 0x0813; GFX12-CU-NEXT:    v_mov_b32_e32 v1, s0814; GFX12-CU-NEXT:    ds_store_b32 v0, v1815; GFX12-CU-NEXT:    s_endpgm816;817; GFX1250-LABEL: local_nontemporal_store_1:818; GFX1250:       ; %bb.0: ; %entry819; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1820; GFX1250-NEXT:    s_load_b64 s[2:3], s[4:5], 0x0821; GFX1250-NEXT:    s_load_b32 s1, s[4:5], 0x8822; GFX1250-NEXT:    s_wait_kmcnt 0x0823; GFX1250-NEXT:    s_load_b32 s0, s[2:3], 0x0824; GFX1250-NEXT:    s_wait_xcnt 0x0825; GFX1250-NEXT:    s_mov_b32 s2, 0x3ff826; GFX1250-NEXT:    v_and_b32_e64 v0, v0, s2827; GFX1250-NEXT:    v_lshl_add_u32 v0, v0, 2, s1828; GFX1250-NEXT:    s_wait_kmcnt 0x0829; GFX1250-NEXT:    v_mov_b32_e32 v1, s0830; GFX1250-NEXT:    ds_store_b32 v0, v1831; GFX1250-NEXT:    s_endpgm832    ptr addrspace(1) %in, ptr addrspace(3) %out) {833entry:834  %tid = call i32 @llvm.amdgcn.workitem.id.x()835  %val = load i32, ptr addrspace(1) %in, align 4836  %out.gep = getelementptr inbounds i32, ptr addrspace(3) %out, i32 %tid837  store i32 %val, ptr addrspace(3) %out.gep, !nontemporal !0838  ret void839}840 841define amdgpu_kernel void @local_nontemporal_volatile_load(842; GFX6-LABEL: local_nontemporal_volatile_load:843; GFX6:       ; %bb.0: ; %entry844; GFX6-NEXT:    s_mov_b64 s[4:5], s[8:9]845; GFX6-NEXT:    s_load_dword s8, s[4:5], 0x0846; GFX6-NEXT:    ; kill: def $sgpr6 killed $sgpr8847; GFX6-NEXT:    s_load_dwordx2 s[4:5], s[4:5], 0x2848; GFX6-NEXT:    s_waitcnt lgkmcnt(0)849; GFX6-NEXT:    s_mov_b32 s11, s5850; GFX6-NEXT:    ; kill: def $sgpr4 killed $sgpr4 killed $sgpr4_sgpr5851; GFX6-NEXT:    s_mov_b32 s9, 0x100f000852; GFX6-NEXT:    s_mov_b32 s10, -1853; GFX6-NEXT:    ; kill: def $sgpr4 killed $sgpr4 def $sgpr4_sgpr5_sgpr6_sgpr7854; GFX6-NEXT:    s_mov_b32 s5, s11855; GFX6-NEXT:    s_mov_b32 s6, s10856; GFX6-NEXT:    s_mov_b32 s7, s9857; GFX6-NEXT:    s_mov_b32 m0, -1858; GFX6-NEXT:    v_mov_b32_e32 v0, s8859; GFX6-NEXT:    ds_read_b32 v0, v0860; GFX6-NEXT:    s_waitcnt lgkmcnt(0)861; GFX6-NEXT:    buffer_store_dword v0, off, s[4:7], 0862; GFX6-NEXT:    s_endpgm863;864; GFX7-LABEL: local_nontemporal_volatile_load:865; GFX7:       ; %bb.0: ; %entry866; GFX7-NEXT:    s_mov_b32 flat_scratch_lo, s13867; GFX7-NEXT:    s_add_i32 s12, s12, s17868; GFX7-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 8869; GFX7-NEXT:    s_load_dword s6, s[8:9], 0x0870; GFX7-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x2871; GFX7-NEXT:    s_mov_b32 m0, -1872; GFX7-NEXT:    s_waitcnt lgkmcnt(0)873; GFX7-NEXT:    v_mov_b32_e32 v0, s6874; GFX7-NEXT:    ds_read_b32 v2, v0875; GFX7-NEXT:    v_mov_b32_e32 v0, s4876; GFX7-NEXT:    v_mov_b32_e32 v1, s5877; GFX7-NEXT:    s_waitcnt lgkmcnt(0)878; GFX7-NEXT:    flat_store_dword v[0:1], v2879; GFX7-NEXT:    s_endpgm880;881; GFX10-WGP-LABEL: local_nontemporal_volatile_load:882; GFX10-WGP:       ; %bb.0: ; %entry883; GFX10-WGP-NEXT:    s_load_dword s6, s[8:9], 0x0884; GFX10-WGP-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x8885; GFX10-WGP-NEXT:    v_mov_b32_e32 v0, 0886; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)887; GFX10-WGP-NEXT:    v_mov_b32_e32 v1, s6888; GFX10-WGP-NEXT:    ds_read_b32 v1, v1889; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)890; GFX10-WGP-NEXT:    global_store_dword v0, v1, s[4:5]891; GFX10-WGP-NEXT:    s_endpgm892;893; GFX10-CU-LABEL: local_nontemporal_volatile_load:894; GFX10-CU:       ; %bb.0: ; %entry895; GFX10-CU-NEXT:    s_load_dword s6, s[8:9], 0x0896; GFX10-CU-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x8897; GFX10-CU-NEXT:    v_mov_b32_e32 v0, 0898; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)899; GFX10-CU-NEXT:    v_mov_b32_e32 v1, s6900; GFX10-CU-NEXT:    ds_read_b32 v1, v1901; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)902; GFX10-CU-NEXT:    global_store_dword v0, v1, s[4:5]903; GFX10-CU-NEXT:    s_endpgm904;905; SKIP-CACHE-INV-LABEL: local_nontemporal_volatile_load:906; SKIP-CACHE-INV:       ; %bb.0: ; %entry907; SKIP-CACHE-INV-NEXT:    s_mov_b64 s[0:1], s[4:5]908; SKIP-CACHE-INV-NEXT:    s_load_dword s4, s[0:1], 0x0909; SKIP-CACHE-INV-NEXT:    s_load_dwordx2 s[0:1], s[0:1], 0x2910; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)911; SKIP-CACHE-INV-NEXT:    s_mov_b32 s7, s1912; SKIP-CACHE-INV-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr1913; SKIP-CACHE-INV-NEXT:    s_mov_b32 s5, 0xf000914; SKIP-CACHE-INV-NEXT:    s_mov_b32 s6, -1915; SKIP-CACHE-INV-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr3916; SKIP-CACHE-INV-NEXT:    s_mov_b32 s1, s7917; SKIP-CACHE-INV-NEXT:    s_mov_b32 s2, s6918; SKIP-CACHE-INV-NEXT:    s_mov_b32 s3, s5919; SKIP-CACHE-INV-NEXT:    s_mov_b32 m0, -1920; SKIP-CACHE-INV-NEXT:    v_mov_b32_e32 v0, s4921; SKIP-CACHE-INV-NEXT:    ds_read_b32 v0, v0922; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)923; SKIP-CACHE-INV-NEXT:    buffer_store_dword v0, off, s[0:3], 0924; SKIP-CACHE-INV-NEXT:    s_endpgm925;926; GFX90A-NOTTGSPLIT-LABEL: local_nontemporal_volatile_load:927; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry928; GFX90A-NOTTGSPLIT-NEXT:    s_load_dword s6, s[8:9], 0x0929; GFX90A-NOTTGSPLIT-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x8930; GFX90A-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v0, 0931; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)932; GFX90A-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v1, s6933; GFX90A-NOTTGSPLIT-NEXT:    ds_read_b32 v1, v1934; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)935; GFX90A-NOTTGSPLIT-NEXT:    global_store_dword v0, v1, s[4:5]936; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm937;938; GFX90A-TGSPLIT-LABEL: local_nontemporal_volatile_load:939; GFX90A-TGSPLIT:       ; %bb.0: ; %entry940; GFX90A-TGSPLIT-NEXT:    s_load_dword s6, s[8:9], 0x0941; GFX90A-TGSPLIT-NEXT:    s_load_dwordx2 s[4:5], s[8:9], 0x8942; GFX90A-TGSPLIT-NEXT:    v_mov_b32_e32 v0, 0943; GFX90A-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)944; GFX90A-TGSPLIT-NEXT:    v_mov_b32_e32 v1, s6945; GFX90A-TGSPLIT-NEXT:    ds_read_b32 v1, v1946; GFX90A-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)947; GFX90A-TGSPLIT-NEXT:    global_store_dword v0, v1, s[4:5]948; GFX90A-TGSPLIT-NEXT:    s_endpgm949;950; GFX942-NOTTGSPLIT-LABEL: local_nontemporal_volatile_load:951; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry952; GFX942-NOTTGSPLIT-NEXT:    s_load_dword s2, s[4:5], 0x0953; GFX942-NOTTGSPLIT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x8954; GFX942-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v0, 0955; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)956; GFX942-NOTTGSPLIT-NEXT:    v_mov_b32_e32 v1, s2957; GFX942-NOTTGSPLIT-NEXT:    ds_read_b32 v1, v1958; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)959; GFX942-NOTTGSPLIT-NEXT:    global_store_dword v0, v1, s[0:1]960; GFX942-NOTTGSPLIT-NEXT:    s_endpgm961;962; GFX942-TGSPLIT-LABEL: local_nontemporal_volatile_load:963; GFX942-TGSPLIT:       ; %bb.0: ; %entry964; GFX942-TGSPLIT-NEXT:    s_load_dword s2, s[4:5], 0x0965; GFX942-TGSPLIT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x8966; GFX942-TGSPLIT-NEXT:    v_mov_b32_e32 v0, 0967; GFX942-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)968; GFX942-TGSPLIT-NEXT:    v_mov_b32_e32 v1, s2969; GFX942-TGSPLIT-NEXT:    ds_read_b32 v1, v1970; GFX942-TGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)971; GFX942-TGSPLIT-NEXT:    global_store_dword v0, v1, s[0:1]972; GFX942-TGSPLIT-NEXT:    s_endpgm973;974; GFX11-WGP-LABEL: local_nontemporal_volatile_load:975; GFX11-WGP:       ; %bb.0: ; %entry976; GFX11-WGP-NEXT:    s_load_b32 s2, s[4:5], 0x0977; GFX11-WGP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x8978; GFX11-WGP-NEXT:    v_mov_b32_e32 v0, 0979; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)980; GFX11-WGP-NEXT:    v_mov_b32_e32 v1, s2981; GFX11-WGP-NEXT:    ds_load_b32 v1, v1982; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)983; GFX11-WGP-NEXT:    global_store_b32 v0, v1, s[0:1]984; GFX11-WGP-NEXT:    s_endpgm985;986; GFX11-CU-LABEL: local_nontemporal_volatile_load:987; GFX11-CU:       ; %bb.0: ; %entry988; GFX11-CU-NEXT:    s_load_b32 s2, s[4:5], 0x0989; GFX11-CU-NEXT:    s_load_b64 s[0:1], s[4:5], 0x8990; GFX11-CU-NEXT:    v_mov_b32_e32 v0, 0991; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)992; GFX11-CU-NEXT:    v_mov_b32_e32 v1, s2993; GFX11-CU-NEXT:    ds_load_b32 v1, v1994; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)995; GFX11-CU-NEXT:    global_store_b32 v0, v1, s[0:1]996; GFX11-CU-NEXT:    s_endpgm997;998; GFX12-WGP-LABEL: local_nontemporal_volatile_load:999; GFX12-WGP:       ; %bb.0: ; %entry1000; GFX12-WGP-NEXT:    s_load_b32 s2, s[4:5], 0x01001; GFX12-WGP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x81002; GFX12-WGP-NEXT:    v_mov_b32_e32 v0, 01003; GFX12-WGP-NEXT:    s_wait_kmcnt 0x01004; GFX12-WGP-NEXT:    v_mov_b32_e32 v1, s21005; GFX12-WGP-NEXT:    ds_load_b32 v1, v11006; GFX12-WGP-NEXT:    s_wait_dscnt 0x01007; GFX12-WGP-NEXT:    global_store_b32 v0, v1, s[0:1]1008; GFX12-WGP-NEXT:    s_endpgm1009;1010; GFX12-CU-LABEL: local_nontemporal_volatile_load:1011; GFX12-CU:       ; %bb.0: ; %entry1012; GFX12-CU-NEXT:    s_load_b32 s2, s[4:5], 0x01013; GFX12-CU-NEXT:    s_load_b64 s[0:1], s[4:5], 0x81014; GFX12-CU-NEXT:    v_mov_b32_e32 v0, 01015; GFX12-CU-NEXT:    s_wait_kmcnt 0x01016; GFX12-CU-NEXT:    v_mov_b32_e32 v1, s21017; GFX12-CU-NEXT:    ds_load_b32 v1, v11018; GFX12-CU-NEXT:    s_wait_dscnt 0x01019; GFX12-CU-NEXT:    global_store_b32 v0, v1, s[0:1]1020; GFX12-CU-NEXT:    s_endpgm1021;1022; GFX1250-LABEL: local_nontemporal_volatile_load:1023; GFX1250:       ; %bb.0: ; %entry1024; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11025; GFX1250-NEXT:    s_load_b32 s2, s[4:5], 0x01026; GFX1250-NEXT:    s_load_b64 s[0:1], s[4:5], 0x81027; GFX1250-NEXT:    v_mov_b32_e32 v0, 01028; GFX1250-NEXT:    s_wait_kmcnt 0x01029; GFX1250-NEXT:    v_mov_b32_e32 v1, s21030; GFX1250-NEXT:    ds_load_b32 v1, v11031; GFX1250-NEXT:    s_wait_dscnt 0x01032; GFX1250-NEXT:    global_store_b32 v0, v1, s[0:1]1033; GFX1250-NEXT:    s_endpgm1034    ptr addrspace(3) %in, ptr addrspace(1) %out) {1035entry:1036  %val = load volatile i32, ptr addrspace(3) %in, align 4, !nontemporal !01037  store i32 %val, ptr addrspace(1) %out1038  ret void1039}1040 1041!0 = !{i32 1}1042declare i32 @llvm.amdgcn.workitem.id.x()1043