brintos

brintos / llvm-project-archived public Read only

0
0
Text · 24.4 KiB · 0b40c81 Raw
543 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 62; RUN: llc -mtriple=amdgcn-- -mcpu=gfx90a -global-isel=0 < %s | FileCheck --check-prefixes=GFX90A %s3; RUN: llc -mtriple=amdgcn-- -mcpu=gfx942 -global-isel=0 < %s | FileCheck --check-prefixes=GFX942 %s4; RUN: llc -mtriple=amdgcn-- -mcpu=gfx942 -global-isel=1 < %s | FileCheck --check-prefixes=GFX942-GISEL %s5; RUN: llc -mtriple=amdgcn-- -mcpu=gfx1010 -global-isel=0 < %s | FileCheck --check-prefixes=GFX10 %s6 7define amdgpu_ps void @global_load_lds_dword_volatile(ptr addrspace(1) inreg %gptr, i64 %off, ptr addrspace(3) inreg %lptr) {8; GFX90A-LABEL: global_load_lds_dword_volatile:9; GFX90A:       ; %bb.0:10; GFX90A-NEXT:    v_mov_b32_e32 v2, s111; GFX90A-NEXT:    v_add_co_u32_e32 v0, vcc, s0, v012; GFX90A-NEXT:    v_addc_co_u32_e32 v1, vcc, v2, v1, vcc13; GFX90A-NEXT:    s_mov_b32 m0, s214; GFX90A-NEXT:    s_nop 015; GFX90A-NEXT:    global_load_dword v[0:1], off glc lds16; GFX90A-NEXT:    s_waitcnt vmcnt(0)17; GFX90A-NEXT:    global_load_dword v[0:1], off offset:512 lds18; GFX90A-NEXT:    s_endpgm19;20; GFX942-LABEL: global_load_lds_dword_volatile:21; GFX942:       ; %bb.0:22; GFX942-NEXT:    v_lshl_add_u64 v[0:1], s[0:1], 0, v[0:1]23; GFX942-NEXT:    s_mov_b32 m0, s224; GFX942-NEXT:    s_nop 025; GFX942-NEXT:    global_load_lds_dword v[0:1], off sc0 sc126; GFX942-NEXT:    s_waitcnt vmcnt(0)27; GFX942-NEXT:    global_load_lds_dword v[0:1], off offset:51228; GFX942-NEXT:    s_endpgm29;30; GFX942-GISEL-LABEL: global_load_lds_dword_volatile:31; GFX942-GISEL:       ; %bb.0:32; GFX942-GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[0:1]33; GFX942-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, v2, v034; GFX942-GISEL-NEXT:    s_mov_b32 m0, s235; GFX942-GISEL-NEXT:    s_nop 036; GFX942-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, v3, v1, vcc37; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off sc0 sc138; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)39; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off offset:51240; GFX942-GISEL-NEXT:    s_endpgm41;42; GFX10-LABEL: global_load_lds_dword_volatile:43; GFX10:       ; %bb.0:44; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, s0, v045; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, s1, v1, vcc_lo46; GFX10-NEXT:    s_mov_b32 m0, s247; GFX10-NEXT:    global_load_dword v[0:1], off glc dlc lds48; GFX10-NEXT:    s_waitcnt vmcnt(0)49; GFX10-NEXT:    global_load_dword v[0:1], off offset:512 lds50; GFX10-NEXT:    s_endpgm51  %gptr.off = getelementptr i8, ptr addrspace(1) %gptr, i64 %off52  call void @llvm.amdgcn.global.load.lds(ptr addrspace(1) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 0, i32 2147483648)53  call void @llvm.amdgcn.global.load.lds(ptr addrspace(1) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 512, i32 0)54  ret void55}56 57define amdgpu_ps void @global_load_lds_dword_nontemporal(ptr addrspace(1) inreg %gptr, i64 %off, ptr addrspace(3) inreg %lptr) {58; GFX90A-LABEL: global_load_lds_dword_nontemporal:59; GFX90A:       ; %bb.0:60; GFX90A-NEXT:    v_mov_b32_e32 v2, s161; GFX90A-NEXT:    v_add_co_u32_e32 v0, vcc, s0, v062; GFX90A-NEXT:    s_mov_b32 m0, s263; GFX90A-NEXT:    v_addc_co_u32_e32 v1, vcc, v2, v1, vcc64; GFX90A-NEXT:    global_load_dword v[0:1], off glc slc lds65; GFX90A-NEXT:    global_load_dword v[0:1], off offset:512 lds66; GFX90A-NEXT:    s_endpgm67;68; GFX942-LABEL: global_load_lds_dword_nontemporal:69; GFX942:       ; %bb.0:70; GFX942-NEXT:    s_mov_b32 m0, s271; GFX942-NEXT:    v_lshl_add_u64 v[0:1], s[0:1], 0, v[0:1]72; GFX942-NEXT:    global_load_lds_dword v[0:1], off nt73; GFX942-NEXT:    global_load_lds_dword v[0:1], off offset:51274; GFX942-NEXT:    s_endpgm75;76; GFX942-GISEL-LABEL: global_load_lds_dword_nontemporal:77; GFX942-GISEL:       ; %bb.0:78; GFX942-GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[0:1]79; GFX942-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, v2, v080; GFX942-GISEL-NEXT:    s_mov_b32 m0, s281; GFX942-GISEL-NEXT:    s_nop 082; GFX942-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, v3, v1, vcc83; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off nt84; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off offset:51285; GFX942-GISEL-NEXT:    s_endpgm86;87; GFX10-LABEL: global_load_lds_dword_nontemporal:88; GFX10:       ; %bb.0:89; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, s0, v090; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, s1, v1, vcc_lo91; GFX10-NEXT:    s_mov_b32 m0, s292; GFX10-NEXT:    global_load_dword v[0:1], off slc lds93; GFX10-NEXT:    global_load_dword v[0:1], off offset:512 lds94; GFX10-NEXT:    s_endpgm95  %gptr.off = getelementptr i8, ptr addrspace(1) %gptr, i64 %off96  call void @llvm.amdgcn.global.load.lds(ptr addrspace(1) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 0, i32 0), !nontemporal !097  call void @llvm.amdgcn.global.load.lds(ptr addrspace(1) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 512, i32 0)98  ret void99}100 101define amdgpu_ps void @global_load_lds_dword_volatile_nontemporal(ptr addrspace(1) inreg %gptr, i64 %off, ptr addrspace(3) inreg %lptr) {102; GFX90A-LABEL: global_load_lds_dword_volatile_nontemporal:103; GFX90A:       ; %bb.0:104; GFX90A-NEXT:    v_mov_b32_e32 v2, s1105; GFX90A-NEXT:    v_add_co_u32_e32 v0, vcc, s0, v0106; GFX90A-NEXT:    v_addc_co_u32_e32 v1, vcc, v2, v1, vcc107; GFX90A-NEXT:    s_mov_b32 m0, s2108; GFX90A-NEXT:    s_nop 0109; GFX90A-NEXT:    global_load_dword v[0:1], off glc lds110; GFX90A-NEXT:    s_waitcnt vmcnt(0)111; GFX90A-NEXT:    global_load_dword v[0:1], off offset:512 lds112; GFX90A-NEXT:    s_endpgm113;114; GFX942-LABEL: global_load_lds_dword_volatile_nontemporal:115; GFX942:       ; %bb.0:116; GFX942-NEXT:    v_lshl_add_u64 v[0:1], s[0:1], 0, v[0:1]117; GFX942-NEXT:    s_mov_b32 m0, s2118; GFX942-NEXT:    s_nop 0119; GFX942-NEXT:    global_load_lds_dword v[0:1], off sc0 sc1120; GFX942-NEXT:    s_waitcnt vmcnt(0)121; GFX942-NEXT:    global_load_lds_dword v[0:1], off offset:512122; GFX942-NEXT:    s_endpgm123;124; GFX942-GISEL-LABEL: global_load_lds_dword_volatile_nontemporal:125; GFX942-GISEL:       ; %bb.0:126; GFX942-GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[0:1]127; GFX942-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, v2, v0128; GFX942-GISEL-NEXT:    s_mov_b32 m0, s2129; GFX942-GISEL-NEXT:    s_nop 0130; GFX942-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, v3, v1, vcc131; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off sc0 sc1132; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)133; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off offset:512134; GFX942-GISEL-NEXT:    s_endpgm135;136; GFX10-LABEL: global_load_lds_dword_volatile_nontemporal:137; GFX10:       ; %bb.0:138; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, s0, v0139; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, s1, v1, vcc_lo140; GFX10-NEXT:    s_mov_b32 m0, s2141; GFX10-NEXT:    global_load_dword v[0:1], off glc dlc lds142; GFX10-NEXT:    s_waitcnt vmcnt(0)143; GFX10-NEXT:    global_load_dword v[0:1], off offset:512 lds144; GFX10-NEXT:    s_endpgm145  %gptr.off = getelementptr i8, ptr addrspace(1) %gptr, i64 %off146  call void @llvm.amdgcn.global.load.lds(ptr addrspace(1) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 0, i32 2147483648), !nontemporal !0147  call void @llvm.amdgcn.global.load.lds(ptr addrspace(1) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 512, i32 0)148  ret void149}150 151define amdgpu_ps void @load_to_lds_p1_dword_volatile(ptr addrspace(1) inreg %gptr, i64 %off, ptr addrspace(3) inreg %lptr) {152; GFX90A-LABEL: load_to_lds_p1_dword_volatile:153; GFX90A:       ; %bb.0:154; GFX90A-NEXT:    v_mov_b32_e32 v2, s1155; GFX90A-NEXT:    v_add_co_u32_e32 v0, vcc, s0, v0156; GFX90A-NEXT:    v_addc_co_u32_e32 v1, vcc, v2, v1, vcc157; GFX90A-NEXT:    s_mov_b32 m0, s2158; GFX90A-NEXT:    s_nop 0159; GFX90A-NEXT:    global_load_dword v[0:1], off glc lds160; GFX90A-NEXT:    s_waitcnt vmcnt(0)161; GFX90A-NEXT:    global_load_dword v[0:1], off offset:512 lds162; GFX90A-NEXT:    s_endpgm163;164; GFX942-LABEL: load_to_lds_p1_dword_volatile:165; GFX942:       ; %bb.0:166; GFX942-NEXT:    v_lshl_add_u64 v[0:1], s[0:1], 0, v[0:1]167; GFX942-NEXT:    s_mov_b32 m0, s2168; GFX942-NEXT:    s_nop 0169; GFX942-NEXT:    global_load_lds_dword v[0:1], off sc0 sc1170; GFX942-NEXT:    s_waitcnt vmcnt(0)171; GFX942-NEXT:    global_load_lds_dword v[0:1], off offset:512172; GFX942-NEXT:    s_endpgm173;174; GFX942-GISEL-LABEL: load_to_lds_p1_dword_volatile:175; GFX942-GISEL:       ; %bb.0:176; GFX942-GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[0:1]177; GFX942-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, v2, v0178; GFX942-GISEL-NEXT:    s_mov_b32 m0, s2179; GFX942-GISEL-NEXT:    s_nop 0180; GFX942-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, v3, v1, vcc181; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off sc0 sc1182; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)183; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off offset:512184; GFX942-GISEL-NEXT:    s_endpgm185;186; GFX10-LABEL: load_to_lds_p1_dword_volatile:187; GFX10:       ; %bb.0:188; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, s0, v0189; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, s1, v1, vcc_lo190; GFX10-NEXT:    s_mov_b32 m0, s2191; GFX10-NEXT:    global_load_dword v[0:1], off glc dlc lds192; GFX10-NEXT:    s_waitcnt vmcnt(0)193; GFX10-NEXT:    global_load_dword v[0:1], off offset:512 lds194; GFX10-NEXT:    s_endpgm195  %gptr.off = getelementptr i8, ptr addrspace(1) %gptr, i64 %off196  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 0, i32 2147483648)197  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 512, i32 0)198  ret void199}200 201define amdgpu_ps void @load_to_lds_p1_dword_nontemporal(ptr addrspace(1) inreg %gptr, i64 %off, ptr addrspace(3) inreg %lptr) {202; GFX90A-LABEL: load_to_lds_p1_dword_nontemporal:203; GFX90A:       ; %bb.0:204; GFX90A-NEXT:    v_mov_b32_e32 v2, s1205; GFX90A-NEXT:    v_add_co_u32_e32 v0, vcc, s0, v0206; GFX90A-NEXT:    s_mov_b32 m0, s2207; GFX90A-NEXT:    v_addc_co_u32_e32 v1, vcc, v2, v1, vcc208; GFX90A-NEXT:    global_load_dword v[0:1], off glc slc lds209; GFX90A-NEXT:    global_load_dword v[0:1], off offset:512 lds210; GFX90A-NEXT:    s_endpgm211;212; GFX942-LABEL: load_to_lds_p1_dword_nontemporal:213; GFX942:       ; %bb.0:214; GFX942-NEXT:    s_mov_b32 m0, s2215; GFX942-NEXT:    v_lshl_add_u64 v[0:1], s[0:1], 0, v[0:1]216; GFX942-NEXT:    global_load_lds_dword v[0:1], off nt217; GFX942-NEXT:    global_load_lds_dword v[0:1], off offset:512218; GFX942-NEXT:    s_endpgm219;220; GFX942-GISEL-LABEL: load_to_lds_p1_dword_nontemporal:221; GFX942-GISEL:       ; %bb.0:222; GFX942-GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[0:1]223; GFX942-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, v2, v0224; GFX942-GISEL-NEXT:    s_mov_b32 m0, s2225; GFX942-GISEL-NEXT:    s_nop 0226; GFX942-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, v3, v1, vcc227; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off nt228; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off offset:512229; GFX942-GISEL-NEXT:    s_endpgm230;231; GFX10-LABEL: load_to_lds_p1_dword_nontemporal:232; GFX10:       ; %bb.0:233; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, s0, v0234; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, s1, v1, vcc_lo235; GFX10-NEXT:    s_mov_b32 m0, s2236; GFX10-NEXT:    global_load_dword v[0:1], off slc lds237; GFX10-NEXT:    global_load_dword v[0:1], off offset:512 lds238; GFX10-NEXT:    s_endpgm239  %gptr.off = getelementptr i8, ptr addrspace(1) %gptr, i64 %off240  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 0, i32 0), !nontemporal !0241  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 512, i32 0)242  ret void243}244 245define amdgpu_ps void @load_to_lds_p1_dword_volatile_nontemporal(ptr addrspace(1) inreg %gptr, i64 %off, ptr addrspace(3) inreg %lptr) {246; GFX90A-LABEL: load_to_lds_p1_dword_volatile_nontemporal:247; GFX90A:       ; %bb.0:248; GFX90A-NEXT:    v_mov_b32_e32 v2, s1249; GFX90A-NEXT:    v_add_co_u32_e32 v0, vcc, s0, v0250; GFX90A-NEXT:    v_addc_co_u32_e32 v1, vcc, v2, v1, vcc251; GFX90A-NEXT:    s_mov_b32 m0, s2252; GFX90A-NEXT:    s_nop 0253; GFX90A-NEXT:    global_load_dword v[0:1], off glc lds254; GFX90A-NEXT:    s_waitcnt vmcnt(0)255; GFX90A-NEXT:    global_load_dword v[0:1], off offset:512 lds256; GFX90A-NEXT:    s_endpgm257;258; GFX942-LABEL: load_to_lds_p1_dword_volatile_nontemporal:259; GFX942:       ; %bb.0:260; GFX942-NEXT:    v_lshl_add_u64 v[0:1], s[0:1], 0, v[0:1]261; GFX942-NEXT:    s_mov_b32 m0, s2262; GFX942-NEXT:    s_nop 0263; GFX942-NEXT:    global_load_lds_dword v[0:1], off sc0 sc1264; GFX942-NEXT:    s_waitcnt vmcnt(0)265; GFX942-NEXT:    global_load_lds_dword v[0:1], off offset:512266; GFX942-NEXT:    s_endpgm267;268; GFX942-GISEL-LABEL: load_to_lds_p1_dword_volatile_nontemporal:269; GFX942-GISEL:       ; %bb.0:270; GFX942-GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[0:1]271; GFX942-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, v2, v0272; GFX942-GISEL-NEXT:    s_mov_b32 m0, s2273; GFX942-GISEL-NEXT:    s_nop 0274; GFX942-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, v3, v1, vcc275; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off sc0 sc1276; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)277; GFX942-GISEL-NEXT:    global_load_lds_dword v[0:1], off offset:512278; GFX942-GISEL-NEXT:    s_endpgm279;280; GFX10-LABEL: load_to_lds_p1_dword_volatile_nontemporal:281; GFX10:       ; %bb.0:282; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, s0, v0283; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, s1, v1, vcc_lo284; GFX10-NEXT:    s_mov_b32 m0, s2285; GFX10-NEXT:    global_load_dword v[0:1], off glc dlc lds286; GFX10-NEXT:    s_waitcnt vmcnt(0)287; GFX10-NEXT:    global_load_dword v[0:1], off offset:512 lds288; GFX10-NEXT:    s_endpgm289  %gptr.off = getelementptr i8, ptr addrspace(1) %gptr, i64 %off290  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 0, i32 2147483648), !nontemporal !0291  call void @llvm.amdgcn.load.to.lds.p1(ptr addrspace(1) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 512, i32 0)292  ret void293}294 295define amdgpu_ps void @load_to_lds_p7_dword_volatile(ptr addrspace(7) inreg %gptr, i32 %off, ptr addrspace(3) inreg %lptr) {296; GFX90A-LABEL: load_to_lds_p7_dword_volatile:297; GFX90A:       ; %bb.0:298; GFX90A-NEXT:    v_add_u32_e32 v0, s4, v0299; GFX90A-NEXT:    s_mov_b32 m0, s5300; GFX90A-NEXT:    s_nop 0301; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc lds302; GFX90A-NEXT:    s_waitcnt vmcnt(0)303; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds304; GFX90A-NEXT:    s_endpgm305;306; GFX942-LABEL: load_to_lds_p7_dword_volatile:307; GFX942:       ; %bb.0:308; GFX942-NEXT:    v_add_u32_e32 v0, s4, v0309; GFX942-NEXT:    s_mov_b32 m0, s5310; GFX942-NEXT:    s_nop 0311; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen sc0 sc1 lds312; GFX942-NEXT:    s_waitcnt vmcnt(0)313; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds314; GFX942-NEXT:    s_endpgm315;316; GFX942-GISEL-LABEL: load_to_lds_p7_dword_volatile:317; GFX942-GISEL:       ; %bb.0:318; GFX942-GISEL-NEXT:    v_add_u32_e32 v0, s4, v0319; GFX942-GISEL-NEXT:    s_mov_b32 m0, s5320; GFX942-GISEL-NEXT:    s_nop 0321; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen sc0 sc1 lds322; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)323; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds324; GFX942-GISEL-NEXT:    s_endpgm325;326; GFX10-LABEL: load_to_lds_p7_dword_volatile:327; GFX10:       ; %bb.0:328; GFX10-NEXT:    v_add_nc_u32_e32 v0, s4, v0329; GFX10-NEXT:    s_mov_b32 m0, s5330; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc dlc lds331; GFX10-NEXT:    s_waitcnt vmcnt(0)332; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds333; GFX10-NEXT:    s_endpgm334  %gptr.off = getelementptr i8, ptr addrspace(7) %gptr, i32 %off335  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 0, i32 2147483648)336  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 512, i32 0)337  ret void338}339 340define amdgpu_ps void @load_to_lds_p7_dword_nontemporal(ptr addrspace(7) inreg %gptr, i32 %off, ptr addrspace(3) inreg %lptr) {341; GFX90A-LABEL: load_to_lds_p7_dword_nontemporal:342; GFX90A:       ; %bb.0:343; GFX90A-NEXT:    v_add_u32_e32 v0, s4, v0344; GFX90A-NEXT:    s_mov_b32 m0, s5345; GFX90A-NEXT:    s_nop 0346; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc slc lds347; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds348; GFX90A-NEXT:    s_endpgm349;350; GFX942-LABEL: load_to_lds_p7_dword_nontemporal:351; GFX942:       ; %bb.0:352; GFX942-NEXT:    v_add_u32_e32 v0, s4, v0353; GFX942-NEXT:    s_mov_b32 m0, s5354; GFX942-NEXT:    s_nop 0355; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen nt lds356; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds357; GFX942-NEXT:    s_endpgm358;359; GFX942-GISEL-LABEL: load_to_lds_p7_dword_nontemporal:360; GFX942-GISEL:       ; %bb.0:361; GFX942-GISEL-NEXT:    v_add_u32_e32 v0, s4, v0362; GFX942-GISEL-NEXT:    s_mov_b32 m0, s5363; GFX942-GISEL-NEXT:    s_nop 0364; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen nt lds365; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds366; GFX942-GISEL-NEXT:    s_endpgm367;368; GFX10-LABEL: load_to_lds_p7_dword_nontemporal:369; GFX10:       ; %bb.0:370; GFX10-NEXT:    v_add_nc_u32_e32 v0, s4, v0371; GFX10-NEXT:    s_mov_b32 m0, s5372; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen slc lds373; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds374; GFX10-NEXT:    s_endpgm375  %gptr.off = getelementptr i8, ptr addrspace(7) %gptr, i32 %off376  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 0, i32 0), !nontemporal !0377  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 512, i32 0)378  ret void379}380 381define amdgpu_ps void @load_to_lds_p7_dword_volatile_nontemporal(ptr addrspace(7) inreg %gptr, i32 %off, ptr addrspace(3) inreg %lptr) {382; GFX90A-LABEL: load_to_lds_p7_dword_volatile_nontemporal:383; GFX90A:       ; %bb.0:384; GFX90A-NEXT:    v_add_u32_e32 v0, s4, v0385; GFX90A-NEXT:    s_mov_b32 m0, s5386; GFX90A-NEXT:    s_nop 0387; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc lds388; GFX90A-NEXT:    s_waitcnt vmcnt(0)389; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds390; GFX90A-NEXT:    s_endpgm391;392; GFX942-LABEL: load_to_lds_p7_dword_volatile_nontemporal:393; GFX942:       ; %bb.0:394; GFX942-NEXT:    v_add_u32_e32 v0, s4, v0395; GFX942-NEXT:    s_mov_b32 m0, s5396; GFX942-NEXT:    s_nop 0397; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen sc0 sc1 lds398; GFX942-NEXT:    s_waitcnt vmcnt(0)399; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds400; GFX942-NEXT:    s_endpgm401;402; GFX942-GISEL-LABEL: load_to_lds_p7_dword_volatile_nontemporal:403; GFX942-GISEL:       ; %bb.0:404; GFX942-GISEL-NEXT:    v_add_u32_e32 v0, s4, v0405; GFX942-GISEL-NEXT:    s_mov_b32 m0, s5406; GFX942-GISEL-NEXT:    s_nop 0407; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen sc0 sc1 lds408; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)409; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds410; GFX942-GISEL-NEXT:    s_endpgm411;412; GFX10-LABEL: load_to_lds_p7_dword_volatile_nontemporal:413; GFX10:       ; %bb.0:414; GFX10-NEXT:    v_add_nc_u32_e32 v0, s4, v0415; GFX10-NEXT:    s_mov_b32 m0, s5416; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc dlc lds417; GFX10-NEXT:    s_waitcnt vmcnt(0)418; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds419; GFX10-NEXT:    s_endpgm420  %gptr.off = getelementptr i8, ptr addrspace(7) %gptr, i32 %off421  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 0, i32 2147483648), !nontemporal !0422  call void @llvm.amdgcn.load.to.lds.p7(ptr addrspace(7) %gptr.off, ptr addrspace(3) %lptr, i32 4, i32 512, i32 0)423  ret void424}425 426define amdgpu_ps void @raw_ptr_buffer_load_lds_dword_volatile(ptr addrspace(8) inreg %gptr, i32 %off, ptr addrspace(3) inreg %lptr) {427; GFX90A-LABEL: raw_ptr_buffer_load_lds_dword_volatile:428; GFX90A:       ; %bb.0:429; GFX90A-NEXT:    s_mov_b32 m0, s4430; GFX90A-NEXT:    s_nop 0431; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc lds432; GFX90A-NEXT:    s_waitcnt vmcnt(0)433; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds434; GFX90A-NEXT:    s_endpgm435;436; GFX942-LABEL: raw_ptr_buffer_load_lds_dword_volatile:437; GFX942:       ; %bb.0:438; GFX942-NEXT:    s_mov_b32 m0, s4439; GFX942-NEXT:    s_nop 0440; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen sc0 sc1 lds441; GFX942-NEXT:    s_waitcnt vmcnt(0)442; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds443; GFX942-NEXT:    s_endpgm444;445; GFX942-GISEL-LABEL: raw_ptr_buffer_load_lds_dword_volatile:446; GFX942-GISEL:       ; %bb.0:447; GFX942-GISEL-NEXT:    s_mov_b32 m0, s4448; GFX942-GISEL-NEXT:    s_nop 0449; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen sc0 sc1 lds450; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)451; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds452; GFX942-GISEL-NEXT:    s_endpgm453;454; GFX10-LABEL: raw_ptr_buffer_load_lds_dword_volatile:455; GFX10:       ; %bb.0:456; GFX10-NEXT:    s_mov_b32 m0, s4457; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc dlc lds458; GFX10-NEXT:    s_waitcnt vmcnt(0)459; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds460; GFX10-NEXT:    s_endpgm461  call void @llvm.amdgcn.raw.ptr.buffer.load.lds(ptr addrspace(8) %gptr, ptr addrspace(3) %lptr, i32 4, i32 %off, i32 0, i32 0, i32 2147483648)462  call void @llvm.amdgcn.raw.ptr.buffer.load.lds(ptr addrspace(8) %gptr, ptr addrspace(3) %lptr, i32 4, i32 %off, i32 0, i32 512, i32 0)463  ret void464}465 466define amdgpu_ps void @raw_ptr_buffer_load_lds_dword_nontemporal(ptr addrspace(8) inreg %gptr, i32 %off, ptr addrspace(3) inreg %lptr) {467; GFX90A-LABEL: raw_ptr_buffer_load_lds_dword_nontemporal:468; GFX90A:       ; %bb.0:469; GFX90A-NEXT:    s_mov_b32 m0, s4470; GFX90A-NEXT:    s_nop 0471; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc slc lds472; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds473; GFX90A-NEXT:    s_endpgm474;475; GFX942-LABEL: raw_ptr_buffer_load_lds_dword_nontemporal:476; GFX942:       ; %bb.0:477; GFX942-NEXT:    s_mov_b32 m0, s4478; GFX942-NEXT:    s_nop 0479; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen nt lds480; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds481; GFX942-NEXT:    s_endpgm482;483; GFX942-GISEL-LABEL: raw_ptr_buffer_load_lds_dword_nontemporal:484; GFX942-GISEL:       ; %bb.0:485; GFX942-GISEL-NEXT:    s_mov_b32 m0, s4486; GFX942-GISEL-NEXT:    s_nop 0487; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen nt lds488; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds489; GFX942-GISEL-NEXT:    s_endpgm490;491; GFX10-LABEL: raw_ptr_buffer_load_lds_dword_nontemporal:492; GFX10:       ; %bb.0:493; GFX10-NEXT:    s_mov_b32 m0, s4494; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen slc lds495; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds496; GFX10-NEXT:    s_endpgm497  call void @llvm.amdgcn.raw.ptr.buffer.load.lds(ptr addrspace(8) %gptr, ptr addrspace(3) %lptr, i32 4, i32 %off, i32 0, i32 0, i32 0), !nontemporal !0498  call void @llvm.amdgcn.raw.ptr.buffer.load.lds(ptr addrspace(8) %gptr, ptr addrspace(3) %lptr, i32 4, i32 %off, i32 0, i32 512, i32 0)499  ret void500}501 502define amdgpu_ps void @raw_ptr_buffer_load_lds_dword_volatile_nontemporal(ptr addrspace(8) inreg %gptr, i32 %off, ptr addrspace(3) inreg %lptr) {503; GFX90A-LABEL: raw_ptr_buffer_load_lds_dword_volatile_nontemporal:504; GFX90A:       ; %bb.0:505; GFX90A-NEXT:    s_mov_b32 m0, s4506; GFX90A-NEXT:    s_nop 0507; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc lds508; GFX90A-NEXT:    s_waitcnt vmcnt(0)509; GFX90A-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds510; GFX90A-NEXT:    s_endpgm511;512; GFX942-LABEL: raw_ptr_buffer_load_lds_dword_volatile_nontemporal:513; GFX942:       ; %bb.0:514; GFX942-NEXT:    s_mov_b32 m0, s4515; GFX942-NEXT:    s_nop 0516; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen sc0 sc1 lds517; GFX942-NEXT:    s_waitcnt vmcnt(0)518; GFX942-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds519; GFX942-NEXT:    s_endpgm520;521; GFX942-GISEL-LABEL: raw_ptr_buffer_load_lds_dword_volatile_nontemporal:522; GFX942-GISEL:       ; %bb.0:523; GFX942-GISEL-NEXT:    s_mov_b32 m0, s4524; GFX942-GISEL-NEXT:    s_nop 0525; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen sc0 sc1 lds526; GFX942-GISEL-NEXT:    s_waitcnt vmcnt(0)527; GFX942-GISEL-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds528; GFX942-GISEL-NEXT:    s_endpgm529;530; GFX10-LABEL: raw_ptr_buffer_load_lds_dword_volatile_nontemporal:531; GFX10:       ; %bb.0:532; GFX10-NEXT:    s_mov_b32 m0, s4533; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen glc dlc lds534; GFX10-NEXT:    s_waitcnt vmcnt(0)535; GFX10-NEXT:    buffer_load_dword v0, s[0:3], 0 offen offset:512 lds536; GFX10-NEXT:    s_endpgm537  call void @llvm.amdgcn.raw.ptr.buffer.load.lds(ptr addrspace(8) %gptr, ptr addrspace(3) %lptr, i32 4, i32 %off, i32 0, i32 0, i32 2147483648), !nontemporal !0538  call void @llvm.amdgcn.raw.ptr.buffer.load.lds(ptr addrspace(8) %gptr, ptr addrspace(3) %lptr, i32 4, i32 %off, i32 0, i32 512, i32 0)539  ret void540}541 542!0 = !{i32 1}543