brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.4 KiB · 352af04 Raw
392 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck %s --check-prefix=GFX90A3; RUN: llc -mtriple=amdgcn -mcpu=gfx90a < %s | FileCheck %s --check-prefix=GFX90A4; RUN: llc -mtriple=amdgcn -mcpu=gfx942 < %s | FileCheck %s --check-prefix=GFX9425; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 < %s | FileCheck %s --check-prefix=GFX106; RUN: llc -global-isel -mtriple=amdgcn -mcpu=gfx942 < %s | FileCheck %s --check-prefix=GFX942-GISEL7 8;; Note: load.to.lds is a wrapper intrinsic around underlying operations.9;; This is a bare-bones test to ensure that it lowers to the correct instructions.10 11declare void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) nocapture %gptr, ptr addrspace(3) nocapture %lptr, i32 %size, i32 %offset, i32 %aux)12declare void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) nocapture %gptr, ptr addrspace(3) nocapture %lptr, i32 %size, i32 %offset, i32 %aux)13 14define amdgpu_ps void @global_load_lds_dword_vaddr_saddr(ptr addrspace(1) nocapture %gptr, ptr addrspace(3) nocapture inreg %lptr) {15; GFX90A-LABEL: global_load_lds_dword_vaddr_saddr:16; GFX90A:       ; %bb.0: ; %main_body17; GFX90A-NEXT:    s_mov_b32 m0, s018; GFX90A-NEXT:    s_nop 019; GFX90A-NEXT:    global_load_dword v[0:1], off offset:16 glc lds20; GFX90A-NEXT:    s_endpgm21;22; GFX942-LABEL: global_load_lds_dword_vaddr_saddr:23; GFX942:       ; %bb.0: ; %main_body24; GFX942-NEXT:    s_mov_b32 m0, s025; GFX942-NEXT:    s_nop 026; GFX942-NEXT:    global_load_lds_dword v[0:1], off offset:16 sc027; GFX942-NEXT:    s_endpgm28;29; GFX10-LABEL: global_load_lds_dword_vaddr_saddr:30; GFX10:       ; %bb.0: ; %main_body31; GFX10-NEXT:    s_mov_b32 m0, s032; GFX10-NEXT:    global_load_dword v[0:1], off offset:16 glc lds33; GFX10-NEXT:    s_endpgm34;35; GFX942-GISEL-LABEL: global_load_lds_dword_vaddr_saddr:36; GFX942-GISEL:       ; %bb.0: ; %main_body37; GFX942-GISEL-NEXT:    s_mov_b32 m0, s038; GFX942-GISEL-NEXT:    s_nop 039; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off offset:16 sc040; GFX942-GISEL-NEXT:    s_endpgm41main_body:42  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr, ptr addrspace(3) %lptr, i32 4, i32 16, i32 1)43  ret void44}45 46define amdgpu_ps void @buffer_load_lds_dword_vaddr_saddr(ptr addrspace(7) nocapture inreg %gptr, i32 %off, ptr addrspace(3) nocapture inreg %lptr) {47; GFX90A-LABEL: buffer_load_lds_dword_vaddr_saddr:48; GFX90A:       ; %bb.0: ; %main_body49; GFX90A-NEXT:    v_add_u32_e32 v0, s4, v050; GFX90A-NEXT:    s_mov_b32 m0, s551; GFX90A-NEXT:    s_nop 052; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:16 glc lds53; GFX90A-NEXT:    s_endpgm54;55; GFX942-LABEL: buffer_load_lds_dword_vaddr_saddr:56; GFX942:       ; %bb.0: ; %main_body57; GFX942-NEXT:    v_add_u32_e32 v0, s4, v058; GFX942-NEXT:    s_mov_b32 m0, s559; GFX942-NEXT:    s_nop 060; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:16 sc0 lds61; GFX942-NEXT:    s_endpgm62;63; GFX10-LABEL: buffer_load_lds_dword_vaddr_saddr:64; GFX10:       ; %bb.0: ; %main_body65; GFX10-NEXT:    v_add_nc_u32_e32 v0, s4, v066; GFX10-NEXT:    s_mov_b32 m0, s567; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:16 glc lds68; GFX10-NEXT:    s_endpgm69;70; GFX942-GISEL-LABEL: buffer_load_lds_dword_vaddr_saddr:71; GFX942-GISEL:       ; %bb.0: ; %main_body72; GFX942-GISEL-NEXT:    v_add_u32_e32 v0, s4, v073; GFX942-GISEL-NEXT:    s_mov_b32 m0, s574; GFX942-GISEL-NEXT:    s_nop 075; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:16 sc0 lds76; GFX942-GISEL-NEXT:    s_endpgm77main_body:78  %gptr.off = getelementptr i8, ptr addrspace(7) %gptr, i32 %off79  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 16, i32 1)80  ret void81}82 83define amdgpu_ps void @global_load_lds_ushort_vaddr_saddr(ptr addrspace(1) nocapture %gptr, ptr addrspace(3) nocapture inreg %lptr) {84; GFX90A-LABEL: global_load_lds_ushort_vaddr_saddr:85; GFX90A:       ; %bb.0: ; %main_body86; GFX90A-NEXT:    s_mov_b32 m0, s087; GFX90A-NEXT:    s_nop 088; GFX90A-NEXT:    global_load_ushort v[0:1], off offset:16 glc lds89; GFX90A-NEXT:    s_endpgm90;91; GFX942-LABEL: global_load_lds_ushort_vaddr_saddr:92; GFX942:       ; %bb.0: ; %main_body93; GFX942-NEXT:    s_mov_b32 m0, s094; GFX942-NEXT:    s_nop 095; GFX942-NEXT:    global_load_lds_ushort v[0:1], off offset:16 sc096; GFX942-NEXT:    s_endpgm97;98; GFX10-LABEL: global_load_lds_ushort_vaddr_saddr:99; GFX10:       ; %bb.0: ; %main_body100; GFX10-NEXT:    s_mov_b32 m0, s0101; GFX10-NEXT:    global_load_ushort v[0:1], off offset:16 glc lds102; GFX10-NEXT:    s_endpgm103;104; GFX942-GISEL-LABEL: global_load_lds_ushort_vaddr_saddr:105; GFX942-GISEL:       ; %bb.0: ; %main_body106; GFX942-GISEL-NEXT:    s_mov_b32 m0, s0107; GFX942-GISEL-NEXT:    s_nop 0108; GFX942-GISEL-NEXT:    global_load_lds_ushort v[0:1], off offset:16 sc0109; GFX942-GISEL-NEXT:    s_endpgm110main_body:111  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr, ptr addrspace(3) %lptr, i32 2, i32 16, i32 1)112  ret void113}114 115define amdgpu_ps void @buffer_load_lds_ushort_vaddr_saddr(ptr addrspace(7) nocapture inreg %gptr, i32 %off, ptr addrspace(3) nocapture inreg %lptr) {116; GFX90A-LABEL: buffer_load_lds_ushort_vaddr_saddr:117; GFX90A:       ; %bb.0: ; %main_body118; GFX90A-NEXT:    v_add_u32_e32 v0, s4, v0119; GFX90A-NEXT:    s_mov_b32 m0, s5120; GFX90A-NEXT:    s_nop 0121; GFX90A-NEXT:    buffer_load_ushort v0, s[0:3], 0 offen offset:16 glc lds122; GFX90A-NEXT:    s_endpgm123;124; GFX942-LABEL: buffer_load_lds_ushort_vaddr_saddr:125; GFX942:       ; %bb.0: ; %main_body126; GFX942-NEXT:    v_add_u32_e32 v0, s4, v0127; GFX942-NEXT:    s_mov_b32 m0, s5128; GFX942-NEXT:    s_nop 0129; GFX942-NEXT:    buffer_load_ushort v0, s[0:3], 0 offen offset:16 sc0 lds130; GFX942-NEXT:    s_endpgm131;132; GFX10-LABEL: buffer_load_lds_ushort_vaddr_saddr:133; GFX10:       ; %bb.0: ; %main_body134; GFX10-NEXT:    v_add_nc_u32_e32 v0, s4, v0135; GFX10-NEXT:    s_mov_b32 m0, s5136; GFX10-NEXT:    buffer_load_ushort v0, s[0:3], 0 offen offset:16 glc lds137; GFX10-NEXT:    s_endpgm138;139; GFX942-GISEL-LABEL: buffer_load_lds_ushort_vaddr_saddr:140; GFX942-GISEL:       ; %bb.0: ; %main_body141; GFX942-GISEL-NEXT:    v_add_u32_e32 v0, s4, v0142; GFX942-GISEL-NEXT:    s_mov_b32 m0, s5143; GFX942-GISEL-NEXT:    s_nop 0144; GFX942-GISEL-NEXT:    buffer_load_ushort v0, s[0:3], 0 offen offset:16 sc0 lds145; GFX942-GISEL-NEXT:    s_endpgm146main_body:147  %gptr.off = getelementptr i8, ptr addrspace(7) %gptr, i32 %off148  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 2, i32 16, i32 1)149  ret void150}151 152define amdgpu_ps void @global_load_lds_ubyte_vaddr_saddr(ptr addrspace(1) nocapture %gptr, ptr addrspace(3) nocapture inreg %lptr) {153; GFX90A-LABEL: global_load_lds_ubyte_vaddr_saddr:154; GFX90A:       ; %bb.0: ; %main_body155; GFX90A-NEXT:    s_mov_b32 m0, s0156; GFX90A-NEXT:    s_nop 0157; GFX90A-NEXT:    global_load_ubyte v[0:1], off offset:16 glc lds158; GFX90A-NEXT:    s_endpgm159;160; GFX942-LABEL: global_load_lds_ubyte_vaddr_saddr:161; GFX942:       ; %bb.0: ; %main_body162; GFX942-NEXT:    s_mov_b32 m0, s0163; GFX942-NEXT:    s_nop 0164; GFX942-NEXT:    global_load_lds_ubyte v[0:1], off offset:16 sc0165; GFX942-NEXT:    s_endpgm166;167; GFX10-LABEL: global_load_lds_ubyte_vaddr_saddr:168; GFX10:       ; %bb.0: ; %main_body169; GFX10-NEXT:    s_mov_b32 m0, s0170; GFX10-NEXT:    global_load_ubyte v[0:1], off offset:16 glc lds171; GFX10-NEXT:    s_endpgm172;173; GFX942-GISEL-LABEL: global_load_lds_ubyte_vaddr_saddr:174; GFX942-GISEL:       ; %bb.0: ; %main_body175; GFX942-GISEL-NEXT:    s_mov_b32 m0, s0176; GFX942-GISEL-NEXT:    s_nop 0177; GFX942-GISEL-NEXT:    global_load_lds_ubyte v[0:1], off offset:16 sc0178; GFX942-GISEL-NEXT:    s_endpgm179main_body:180  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr, ptr addrspace(3) %lptr, i32 1, i32 16, i32 1)181  ret void182}183 184define amdgpu_ps void @buffer_load_lds_ubyte_vaddr_saddr(ptr addrspace(7) nocapture inreg %gptr, i32 %off, ptr addrspace(3) nocapture inreg %lptr) {185; GFX90A-LABEL: buffer_load_lds_ubyte_vaddr_saddr:186; GFX90A:       ; %bb.0: ; %main_body187; GFX90A-NEXT:    v_add_u32_e32 v0, s4, v0188; GFX90A-NEXT:    s_mov_b32 m0, s5189; GFX90A-NEXT:    s_nop 0190; GFX90A-NEXT:    buffer_load_ubyte v0, s[0:3], 0 offen offset:16 glc lds191; GFX90A-NEXT:    s_endpgm192;193; GFX942-LABEL: buffer_load_lds_ubyte_vaddr_saddr:194; GFX942:       ; %bb.0: ; %main_body195; GFX942-NEXT:    v_add_u32_e32 v0, s4, v0196; GFX942-NEXT:    s_mov_b32 m0, s5197; GFX942-NEXT:    s_nop 0198; GFX942-NEXT:    buffer_load_ubyte v0, s[0:3], 0 offen offset:16 sc0 lds199; GFX942-NEXT:    s_endpgm200;201; GFX10-LABEL: buffer_load_lds_ubyte_vaddr_saddr:202; GFX10:       ; %bb.0: ; %main_body203; GFX10-NEXT:    v_add_nc_u32_e32 v0, s4, v0204; GFX10-NEXT:    s_mov_b32 m0, s5205; GFX10-NEXT:    buffer_load_ubyte v0, s[0:3], 0 offen offset:16 glc lds206; GFX10-NEXT:    s_endpgm207;208; GFX942-GISEL-LABEL: buffer_load_lds_ubyte_vaddr_saddr:209; GFX942-GISEL:       ; %bb.0: ; %main_body210; GFX942-GISEL-NEXT:    v_add_u32_e32 v0, s4, v0211; GFX942-GISEL-NEXT:    s_mov_b32 m0, s5212; GFX942-GISEL-NEXT:    s_nop 0213; GFX942-GISEL-NEXT:    buffer_load_ubyte v0, s[0:3], 0 offen offset:16 sc0 lds214; GFX942-GISEL-NEXT:    s_endpgm215main_body:216  %gptr.off = getelementptr i8, ptr addrspace(7) %gptr, i32 %off217  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 1, i32 16, i32 1)218  ret void219}220 221define amdgpu_ps void @global_load_lds_dword_volatile(ptr addrspace(1) nocapture %gptr, ptr addrspace(3) inreg %lptr) {222; GFX90A-LABEL: global_load_lds_dword_volatile:223; GFX90A:       ; %bb.0: ; %main_body224; GFX90A-NEXT:    s_mov_b32 m0, s0225; GFX90A-NEXT:    s_nop 0226; GFX90A-NEXT:    global_load_dword v[0:1], off glc lds227; GFX90A-NEXT:    s_waitcnt vmcnt(0)228; GFX90A-NEXT:    global_load_dword v[0:1], off offset:256 lds229; GFX90A-NEXT:    global_load_dword v[0:1], off offset:512 lds230; GFX90A-NEXT:    s_endpgm231;232; GFX942-LABEL: global_load_lds_dword_volatile:233; GFX942:       ; %bb.0: ; %main_body234; GFX942-NEXT:    s_mov_b32 m0, s0235; GFX942-NEXT:    s_nop 0236; GFX942-NEXT:    global_load_lds_dword v[0:1], off sc0 sc1237; GFX942-NEXT:    s_waitcnt vmcnt(0)238; GFX942-NEXT:    global_load_lds_dword v[0:1], off offset:256239; GFX942-NEXT:    global_load_lds_dword v[0:1], off offset:512240; GFX942-NEXT:    s_endpgm241;242; GFX10-LABEL: global_load_lds_dword_volatile:243; GFX10:       ; %bb.0: ; %main_body244; GFX10-NEXT:    s_mov_b32 m0, s0245; GFX10-NEXT:    global_load_dword v[0:1], off glc dlc lds246; GFX10-NEXT:    s_waitcnt vmcnt(0)247; GFX10-NEXT:    global_load_dword v[0:1], off offset:256 lds248; GFX10-NEXT:    global_load_dword v[0:1], off offset:512 lds249; GFX10-NEXT:    s_endpgm250;251; GFX942-GISEL-LABEL: global_load_lds_dword_volatile:252; GFX942-GISEL:       ; %bb.0: ; %main_body253; GFX942-GISEL-NEXT:    s_mov_b32 m0, s0254; GFX942-GISEL-NEXT:    s_nop 0255; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off sc0 sc1256; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)257; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off offset:256258; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off offset:512259; GFX942-GISEL-NEXT:    s_endpgm260main_body:261  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr, ptr addrspace(3) %lptr, i32 4, i32 0, i32 2147483648)262  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr, ptr addrspace(3) %lptr, i32 4, i32 256, i32 0)263  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr, ptr addrspace(3) %lptr, i32 4, i32 512, i32 0)264  ret void265}266 267define amdgpu_ps void @buffer_load_lds_dword_volatile(ptr addrspace(7) nocapture inreg %gptr, i32 %off, ptr addrspace(3) inreg %lptr) {268; GFX90A-LABEL: buffer_load_lds_dword_volatile:269; GFX90A:       ; %bb.0: ; %main_body270; GFX90A-NEXT:    v_add_u32_e32 v0, s4, v0271; GFX90A-NEXT:    s_mov_b32 m0, s5272; GFX90A-NEXT:    s_nop 0273; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc lds274; GFX90A-NEXT:    s_waitcnt vmcnt(0)275; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:256 lds276; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds277; GFX90A-NEXT:    s_endpgm278;279; GFX942-LABEL: buffer_load_lds_dword_volatile:280; GFX942:       ; %bb.0: ; %main_body281; GFX942-NEXT:    v_add_u32_e32 v0, s4, v0282; GFX942-NEXT:    s_mov_b32 m0, s5283; GFX942-NEXT:    s_nop 0284; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen sc0 sc1 lds285; GFX942-NEXT:    s_waitcnt vmcnt(0)286; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:256 lds287; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds288; GFX942-NEXT:    s_endpgm289;290; GFX10-LABEL: buffer_load_lds_dword_volatile:291; GFX10:       ; %bb.0: ; %main_body292; GFX10-NEXT:    v_add_nc_u32_e32 v0, s4, v0293; GFX10-NEXT:    s_mov_b32 m0, s5294; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc dlc lds295; GFX10-NEXT:    s_waitcnt vmcnt(0)296; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:256 lds297; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds298; GFX10-NEXT:    s_endpgm299;300; GFX942-GISEL-LABEL: buffer_load_lds_dword_volatile:301; GFX942-GISEL:       ; %bb.0: ; %main_body302; GFX942-GISEL-NEXT:    v_add_u32_e32 v0, s4, v0303; GFX942-GISEL-NEXT:    s_mov_b32 m0, s5304; GFX942-GISEL-NEXT:    s_nop 0305; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen sc0 sc1 lds306; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)307; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:256 lds308; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds309; GFX942-GISEL-NEXT:    s_endpgm310main_body:311  %gptr.off = getelementptr i8, ptr addrspace(7) %gptr, i32 %off312  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 0, i32 2147483648)313  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 256, i32 0)314  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 512, i32 0)315  ret void316}317 318define amdgpu_ps void @global_load_lds_dword_nontemporal(ptr addrspace(1) nocapture inreg %gptr, ptr addrspace(3) inreg %lptr) {319; GFX90A-LABEL: global_load_lds_dword_nontemporal:320; GFX90A:       ; %bb.0: ; %main_body321; GFX90A-NEXT:    v_mov_b32_e32 v0, 0322; GFX90A-NEXT:    s_mov_b32 m0, s2323; GFX90A-NEXT:    s_nop 0324; GFX90A-NEXT:    global_load_dword v0, s[0:1] glc slc lds325; GFX90A-NEXT:    s_endpgm326;327; GFX942-LABEL: global_load_lds_dword_nontemporal:328; GFX942:       ; %bb.0: ; %main_body329; GFX942-NEXT:    v_mov_b32_e32 v0, 0330; GFX942-NEXT:    s_mov_b32 m0, s2331; GFX942-NEXT:    s_nop 0332; GFX942-NEXT:    global_load_lds_dword v0, s[0:1] nt333; GFX942-NEXT:    s_endpgm334;335; GFX10-LABEL: global_load_lds_dword_nontemporal:336; GFX10:       ; %bb.0: ; %main_body337; GFX10-NEXT:    v_mov_b32_e32 v0, 0338; GFX10-NEXT:    s_mov_b32 m0, s2339; GFX10-NEXT:    global_load_dword v0, s[0:1] slc lds340; GFX10-NEXT:    s_endpgm341;342; GFX942-GISEL-LABEL: global_load_lds_dword_nontemporal:343; GFX942-GISEL:       ; %bb.0: ; %main_body344; GFX942-GISEL-NEXT:    v_mov_b32_e32 v0, 0345; GFX942-GISEL-NEXT:    s_mov_b32 m0, s2346; GFX942-GISEL-NEXT:    s_nop 0347; GFX942-GISEL-NEXT:    global_load_lds_dword v0, s[0:1] nt348; GFX942-GISEL-NEXT:    s_endpgm349main_body:350  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr, ptr addrspace(3) %lptr, i32 4, i32 0, i32 0), !nontemporal !0351  ret void352}353 354define amdgpu_ps void @buffer_load_lds_dword_nontemporal(ptr addrspace(7) nocapture inreg %gptr, i32 %off, ptr addrspace(3) inreg %lptr) {355; GFX90A-LABEL: buffer_load_lds_dword_nontemporal:356; GFX90A:       ; %bb.0: ; %main_body357; GFX90A-NEXT:    v_add_u32_e32 v0, s4, v0358; GFX90A-NEXT:    s_mov_b32 m0, s5359; GFX90A-NEXT:    s_nop 0360; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc slc lds361; GFX90A-NEXT:    s_endpgm362;363; GFX942-LABEL: buffer_load_lds_dword_nontemporal:364; GFX942:       ; %bb.0: ; %main_body365; GFX942-NEXT:    v_add_u32_e32 v0, s4, v0366; GFX942-NEXT:    s_mov_b32 m0, s5367; GFX942-NEXT:    s_nop 0368; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen nt lds369; GFX942-NEXT:    s_endpgm370;371; GFX10-LABEL: buffer_load_lds_dword_nontemporal:372; GFX10:       ; %bb.0: ; %main_body373; GFX10-NEXT:    v_add_nc_u32_e32 v0, s4, v0374; GFX10-NEXT:    s_mov_b32 m0, s5375; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen slc lds376; GFX10-NEXT:    s_endpgm377;378; GFX942-GISEL-LABEL: buffer_load_lds_dword_nontemporal:379; GFX942-GISEL:       ; %bb.0: ; %main_body380; GFX942-GISEL-NEXT:    v_add_u32_e32 v0, s4, v0381; GFX942-GISEL-NEXT:    s_mov_b32 m0, s5382; GFX942-GISEL-NEXT:    s_nop 0383; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen nt lds384; GFX942-GISEL-NEXT:    s_endpgm385main_body:386  %gptr.off = getelementptr i8, ptr addrspace(7) %gptr, i32 %off387  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 0, i32 0), !nontemporal !0388  ret void389}390 391!0 = !{i32 1}392