brintos

brintos / llvm-project-archived public Read only

0
0
Text · 250.3 KiB · 60743d2 Raw
5405 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck -check-prefixes=GFX9,GFX9-GISEL %s3; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1010 < %s | FileCheck -check-prefixes=GFX10,GFX10-GISEL %s4; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1100 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-GISEL,GFX11-GISEL-TRUE16 %s5; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1100 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-GISEL,GFX11-GISEL-FAKE16 %s6; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-GISEL,GFX12-GISEL-TRUE16 %s7; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-GISEL,GFX12-GISEL-FAKE16 %s8; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck -check-prefixes=GFX9,GFX9-SDAG %s9; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1010 < %s | FileCheck -check-prefixes=GFX10,GFX10-SDAG %s10; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1100 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-SDAG,GFX11-SDAG-TRUE16 %s11; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1100 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-SDAG,GFX11-SDAG-FAKE16 %s12; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-SDAG,GFX12-SDAG-TRUE16 %s13; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-SDAG,GFX12-SDAG-FAKE16 %s14 15; Test splitting flat instruction offsets into the low and high bits16; when the offset doesn't fit in the offset field.17 18define i8 @global_inst_valu_offset_1(ptr addrspace(1) %p) {19; GFX9-LABEL: global_inst_valu_offset_1:20; GFX9:       ; %bb.0:21; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)22; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off offset:123; GFX9-NEXT:    s_waitcnt vmcnt(0)24; GFX9-NEXT:    s_setpc_b64 s[30:31]25;26; GFX10-LABEL: global_inst_valu_offset_1:27; GFX10:       ; %bb.0:28; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)29; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off offset:130; GFX10-NEXT:    s_waitcnt vmcnt(0)31; GFX10-NEXT:    s_setpc_b64 s[30:31]32;33; GFX11-GISEL-LABEL: global_inst_valu_offset_1:34; GFX11-GISEL:       ; %bb.0:35; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)36; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:137; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)38; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]39;40; GFX12-GISEL-LABEL: global_inst_valu_offset_1:41; GFX12-GISEL:       ; %bb.0:42; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x043; GFX12-GISEL-NEXT:    s_wait_expcnt 0x044; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x045; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x046; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x047; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:148; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x049; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]50;51; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_1:52; GFX11-SDAG-TRUE16:       ; %bb.0:53; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)54; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:155; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)56; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]57;58; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_1:59; GFX11-SDAG-FAKE16:       ; %bb.0:60; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)61; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:162; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)63; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]64;65; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_1:66; GFX12-SDAG-TRUE16:       ; %bb.0:67; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x068; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x069; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x070; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x071; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x072; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:173; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x074; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]75;76; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_1:77; GFX12-SDAG-FAKE16:       ; %bb.0:78; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x079; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x080; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x081; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x082; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x083; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:184; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x085; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]86  %gep = getelementptr i8, ptr addrspace(1) %p, i64 187  %load = load i8, ptr addrspace(1) %gep, align 488  ret i8 %load89}90 91define i8 @global_inst_valu_offset_11bit_max(ptr addrspace(1) %p) {92; GFX9-LABEL: global_inst_valu_offset_11bit_max:93; GFX9:       ; %bb.0:94; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)95; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off offset:204796; GFX9-NEXT:    s_waitcnt vmcnt(0)97; GFX9-NEXT:    s_setpc_b64 s[30:31]98;99; GFX10-LABEL: global_inst_valu_offset_11bit_max:100; GFX10:       ; %bb.0:101; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)102; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off offset:2047103; GFX10-NEXT:    s_waitcnt vmcnt(0)104; GFX10-NEXT:    s_setpc_b64 s[30:31]105;106; GFX11-GISEL-LABEL: global_inst_valu_offset_11bit_max:107; GFX11-GISEL:       ; %bb.0:108; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)109; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:2047110; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)111; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]112;113; GFX12-GISEL-LABEL: global_inst_valu_offset_11bit_max:114; GFX12-GISEL:       ; %bb.0:115; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x0116; GFX12-GISEL-NEXT:    s_wait_expcnt 0x0117; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x0118; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x0119; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0120; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:2047121; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x0122; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]123;124; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_11bit_max:125; GFX11-SDAG-TRUE16:       ; %bb.0:126; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)127; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:2047128; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)129; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]130;131; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_11bit_max:132; GFX11-SDAG-FAKE16:       ; %bb.0:133; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)134; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:2047135; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)136; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]137;138; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_11bit_max:139; GFX12-SDAG-TRUE16:       ; %bb.0:140; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0141; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0142; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0143; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0144; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0145; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:2047146; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x0147; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]148;149; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_11bit_max:150; GFX12-SDAG-FAKE16:       ; %bb.0:151; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0152; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0153; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0154; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0155; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0156; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:2047157; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x0158; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]159  %gep = getelementptr i8, ptr addrspace(1) %p, i64 2047160  %load = load i8, ptr addrspace(1) %gep, align 4161  ret i8 %load162}163 164define i8 @global_inst_valu_offset_12bit_max(ptr addrspace(1) %p) {165; GFX9-LABEL: global_inst_valu_offset_12bit_max:166; GFX9:       ; %bb.0:167; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)168; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off offset:4095169; GFX9-NEXT:    s_waitcnt vmcnt(0)170; GFX9-NEXT:    s_setpc_b64 s[30:31]171;172; GFX10-GISEL-LABEL: global_inst_valu_offset_12bit_max:173; GFX10-GISEL:       ; %bb.0:174; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)175; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfff, v0176; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo177; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off178; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)179; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]180;181; GFX11-GISEL-LABEL: global_inst_valu_offset_12bit_max:182; GFX11-GISEL:       ; %bb.0:183; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)184; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:4095185; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)186; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]187;188; GFX12-GISEL-LABEL: global_inst_valu_offset_12bit_max:189; GFX12-GISEL:       ; %bb.0:190; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x0191; GFX12-GISEL-NEXT:    s_wait_expcnt 0x0192; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x0193; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x0194; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0195; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:4095196; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x0197; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]198;199; GFX10-SDAG-LABEL: global_inst_valu_offset_12bit_max:200; GFX10-SDAG:       ; %bb.0:201; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)202; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800, v0203; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo204; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:2047205; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)206; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]207;208; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_12bit_max:209; GFX11-SDAG-TRUE16:       ; %bb.0:210; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)211; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:4095212; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)213; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]214;215; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_12bit_max:216; GFX11-SDAG-FAKE16:       ; %bb.0:217; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)218; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:4095219; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)220; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]221;222; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_12bit_max:223; GFX12-SDAG-TRUE16:       ; %bb.0:224; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0225; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0226; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0227; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0228; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0229; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:4095230; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x0231; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]232;233; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_12bit_max:234; GFX12-SDAG-FAKE16:       ; %bb.0:235; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0236; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0237; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0238; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0239; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0240; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:4095241; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x0242; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]243  %gep = getelementptr i8, ptr addrspace(1) %p, i64 4095244  %load = load i8, ptr addrspace(1) %gep, align 4245  ret i8 %load246}247 248define i8 @global_inst_valu_offset_13bit_max(ptr addrspace(1) %p) {249; GFX9-GISEL-LABEL: global_inst_valu_offset_13bit_max:250; GFX9-GISEL:       ; %bb.0:251; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)252; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1fff, v0253; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, 0, v1, vcc254; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off255; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)256; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]257;258; GFX10-GISEL-LABEL: global_inst_valu_offset_13bit_max:259; GFX10-GISEL:       ; %bb.0:260; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)261; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1fff, v0262; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo263; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off264; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)265; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]266;267; GFX11-GISEL-LABEL: global_inst_valu_offset_13bit_max:268; GFX11-GISEL:       ; %bb.0:269; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)270; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1fff, v0271; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)272; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo273; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off274; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)275; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]276;277; GFX12-GISEL-LABEL: global_inst_valu_offset_13bit_max:278; GFX12-GISEL:       ; %bb.0:279; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x0280; GFX12-GISEL-NEXT:    s_wait_expcnt 0x0281; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x0282; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x0283; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0284; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:8191285; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x0286; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]287;288; GFX9-SDAG-LABEL: global_inst_valu_offset_13bit_max:289; GFX9-SDAG:       ; %bb.0:290; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)291; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1000, v0292; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, 0, v1, vcc293; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:4095294; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)295; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]296;297; GFX10-SDAG-LABEL: global_inst_valu_offset_13bit_max:298; GFX10-SDAG:       ; %bb.0:299; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)300; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1800, v0301; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo302; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:2047303; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)304; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]305;306; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_13bit_max:307; GFX11-SDAG-TRUE16:       ; %bb.0:308; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)309; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v0310; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)311; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo312; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:4095313; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)314; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]315;316; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_13bit_max:317; GFX11-SDAG-FAKE16:       ; %bb.0:318; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)319; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v0320; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)321; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo322; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:4095323; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)324; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]325;326; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_13bit_max:327; GFX12-SDAG-TRUE16:       ; %bb.0:328; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0329; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0330; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0331; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0332; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0333; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:8191334; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x0335; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]336;337; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_13bit_max:338; GFX12-SDAG-FAKE16:       ; %bb.0:339; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0340; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0341; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0342; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0343; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0344; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:8191345; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x0346; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]347  %gep = getelementptr i8, ptr addrspace(1) %p, i64 8191348  %load = load i8, ptr addrspace(1) %gep, align 4349  ret i8 %load350}351 352define i8 @global_inst_valu_offset_24bit_max(ptr addrspace(1) %p) {353; GFX9-GISEL-LABEL: global_inst_valu_offset_24bit_max:354; GFX9-GISEL:       ; %bb.0:355; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)356; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0x7fffff, v0357; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, 0, v1, vcc358; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off359; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)360; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]361;362; GFX10-GISEL-LABEL: global_inst_valu_offset_24bit_max:363; GFX10-GISEL:       ; %bb.0:364; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)365; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x7fffff, v0366; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo367; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off368; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)369; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]370;371; GFX11-GISEL-LABEL: global_inst_valu_offset_24bit_max:372; GFX11-GISEL:       ; %bb.0:373; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)374; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x7fffff, v0375; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)376; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo377; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off378; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)379; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]380;381; GFX12-GISEL-LABEL: global_inst_valu_offset_24bit_max:382; GFX12-GISEL:       ; %bb.0:383; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x0384; GFX12-GISEL-NEXT:    s_wait_expcnt 0x0385; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x0386; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x0387; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0388; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:8388607389; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x0390; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]391;392; GFX9-SDAG-LABEL: global_inst_valu_offset_24bit_max:393; GFX9-SDAG:       ; %bb.0:394; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)395; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0x7ff000, v0396; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, 0, v1, vcc397; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:4095398; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)399; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]400;401; GFX10-SDAG-LABEL: global_inst_valu_offset_24bit_max:402; GFX10-SDAG:       ; %bb.0:403; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)404; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0x7ff800, v0405; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo406; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:2047407; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)408; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]409;410; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_24bit_max:411; GFX11-SDAG-TRUE16:       ; %bb.0:412; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)413; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x7ff000, v0414; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)415; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo416; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:4095417; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)418; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]419;420; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_24bit_max:421; GFX11-SDAG-FAKE16:       ; %bb.0:422; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)423; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x7ff000, v0424; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)425; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo426; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:4095427; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)428; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]429;430; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_24bit_max:431; GFX12-SDAG-TRUE16:       ; %bb.0:432; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0433; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0434; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0435; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0436; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0437; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:8388607438; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x0439; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]440;441; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_24bit_max:442; GFX12-SDAG-FAKE16:       ; %bb.0:443; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0444; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0445; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0446; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0447; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0448; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:8388607449; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x0450; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]451  %gep = getelementptr i8, ptr addrspace(1) %p, i64 8388607452  %load = load i8, ptr addrspace(1) %gep, align 4453  ret i8 %load454}455 456define i8 @global_inst_valu_offset_neg_11bit_max(ptr addrspace(1) %p) {457; GFX9-LABEL: global_inst_valu_offset_neg_11bit_max:458; GFX9:       ; %bb.0:459; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)460; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off offset:-2048461; GFX9-NEXT:    s_waitcnt vmcnt(0)462; GFX9-NEXT:    s_setpc_b64 s[30:31]463;464; GFX10-LABEL: global_inst_valu_offset_neg_11bit_max:465; GFX10:       ; %bb.0:466; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)467; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off offset:-2048468; GFX10-NEXT:    s_waitcnt vmcnt(0)469; GFX10-NEXT:    s_setpc_b64 s[30:31]470;471; GFX11-GISEL-LABEL: global_inst_valu_offset_neg_11bit_max:472; GFX11-GISEL:       ; %bb.0:473; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)474; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:-2048475; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)476; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]477;478; GFX12-GISEL-LABEL: global_inst_valu_offset_neg_11bit_max:479; GFX12-GISEL:       ; %bb.0:480; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x0481; GFX12-GISEL-NEXT:    s_wait_expcnt 0x0482; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x0483; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x0484; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0485; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:-2048486; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x0487; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]488;489; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_neg_11bit_max:490; GFX11-SDAG-TRUE16:       ; %bb.0:491; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)492; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-2048493; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)494; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]495;496; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_neg_11bit_max:497; GFX11-SDAG-FAKE16:       ; %bb.0:498; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)499; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-2048500; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)501; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]502;503; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_neg_11bit_max:504; GFX12-SDAG-TRUE16:       ; %bb.0:505; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0506; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0507; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0508; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0509; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0510; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-2048511; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x0512; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]513;514; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_neg_11bit_max:515; GFX12-SDAG-FAKE16:       ; %bb.0:516; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0517; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0518; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0519; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0520; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0521; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-2048522; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x0523; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]524  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -2048525  %load = load i8, ptr addrspace(1) %gep, align 4526  ret i8 %load527}528 529define i8 @global_inst_valu_offset_neg_12bit_max(ptr addrspace(1) %p) {530; GFX9-LABEL: global_inst_valu_offset_neg_12bit_max:531; GFX9:       ; %bb.0:532; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)533; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off offset:-4096534; GFX9-NEXT:    s_waitcnt vmcnt(0)535; GFX9-NEXT:    s_setpc_b64 s[30:31]536;537; GFX10-LABEL: global_inst_valu_offset_neg_12bit_max:538; GFX10:       ; %bb.0:539; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)540; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfffff000, v0541; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, -1, v1, vcc_lo542; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off543; GFX10-NEXT:    s_waitcnt vmcnt(0)544; GFX10-NEXT:    s_setpc_b64 s[30:31]545;546; GFX11-GISEL-LABEL: global_inst_valu_offset_neg_12bit_max:547; GFX11-GISEL:       ; %bb.0:548; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)549; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:-4096550; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)551; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]552;553; GFX12-GISEL-LABEL: global_inst_valu_offset_neg_12bit_max:554; GFX12-GISEL:       ; %bb.0:555; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x0556; GFX12-GISEL-NEXT:    s_wait_expcnt 0x0557; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x0558; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x0559; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0560; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:-4096561; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x0562; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]563;564; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_neg_12bit_max:565; GFX11-SDAG-TRUE16:       ; %bb.0:566; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)567; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-4096568; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)569; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]570;571; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_neg_12bit_max:572; GFX11-SDAG-FAKE16:       ; %bb.0:573; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)574; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-4096575; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)576; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]577;578; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_neg_12bit_max:579; GFX12-SDAG-TRUE16:       ; %bb.0:580; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0581; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0582; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0583; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0584; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0585; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-4096586; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x0587; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]588;589; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_neg_12bit_max:590; GFX12-SDAG-FAKE16:       ; %bb.0:591; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0592; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0593; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0594; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0595; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0596; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-4096597; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x0598; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]599  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -4096600  %load = load i8, ptr addrspace(1) %gep, align 4601  ret i8 %load602}603 604define i8 @global_inst_valu_offset_neg_13bit_max(ptr addrspace(1) %p) {605; GFX9-LABEL: global_inst_valu_offset_neg_13bit_max:606; GFX9:       ; %bb.0:607; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)608; GFX9-NEXT:    v_add_co_u32_e32 v0, vcc, 0xffffe000, v0609; GFX9-NEXT:    v_addc_co_u32_e32 v1, vcc, -1, v1, vcc610; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off611; GFX9-NEXT:    s_waitcnt vmcnt(0)612; GFX9-NEXT:    s_setpc_b64 s[30:31]613;614; GFX10-LABEL: global_inst_valu_offset_neg_13bit_max:615; GFX10:       ; %bb.0:616; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)617; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, 0xffffe000, v0618; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, -1, v1, vcc_lo619; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off620; GFX10-NEXT:    s_waitcnt vmcnt(0)621; GFX10-NEXT:    s_setpc_b64 s[30:31]622;623; GFX11-GISEL-LABEL: global_inst_valu_offset_neg_13bit_max:624; GFX11-GISEL:       ; %bb.0:625; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)626; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xffffe000, v0627; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)628; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo629; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off630; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)631; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]632;633; GFX12-GISEL-LABEL: global_inst_valu_offset_neg_13bit_max:634; GFX12-GISEL:       ; %bb.0:635; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x0636; GFX12-GISEL-NEXT:    s_wait_expcnt 0x0637; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x0638; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x0639; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0640; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:-8192641; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x0642; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]643;644; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_neg_13bit_max:645; GFX11-SDAG-TRUE16:       ; %bb.0:646; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)647; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xffffe000, v0648; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)649; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo650; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off651; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)652; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]653;654; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_neg_13bit_max:655; GFX11-SDAG-FAKE16:       ; %bb.0:656; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)657; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xffffe000, v0658; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)659; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo660; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off661; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)662; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]663;664; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_neg_13bit_max:665; GFX12-SDAG-TRUE16:       ; %bb.0:666; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0667; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0668; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0669; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0670; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0671; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-8192672; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x0673; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]674;675; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_neg_13bit_max:676; GFX12-SDAG-FAKE16:       ; %bb.0:677; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0678; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0679; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0680; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0681; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0682; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-8192683; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x0684; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]685  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -8192686  %load = load i8, ptr addrspace(1) %gep, align 4687  ret i8 %load688}689 690define i8 @global_inst_valu_offset_neg_24bit_max(ptr addrspace(1) %p) {691; GFX9-LABEL: global_inst_valu_offset_neg_24bit_max:692; GFX9:       ; %bb.0:693; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)694; GFX9-NEXT:    v_add_co_u32_e32 v0, vcc, 0xff800000, v0695; GFX9-NEXT:    v_addc_co_u32_e32 v1, vcc, -1, v1, vcc696; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off697; GFX9-NEXT:    s_waitcnt vmcnt(0)698; GFX9-NEXT:    s_setpc_b64 s[30:31]699;700; GFX10-LABEL: global_inst_valu_offset_neg_24bit_max:701; GFX10:       ; %bb.0:702; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)703; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, 0xff800000, v0704; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, -1, v1, vcc_lo705; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off706; GFX10-NEXT:    s_waitcnt vmcnt(0)707; GFX10-NEXT:    s_setpc_b64 s[30:31]708;709; GFX11-GISEL-LABEL: global_inst_valu_offset_neg_24bit_max:710; GFX11-GISEL:       ; %bb.0:711; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)712; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xff800000, v0713; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)714; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo715; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off716; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)717; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]718;719; GFX12-GISEL-LABEL: global_inst_valu_offset_neg_24bit_max:720; GFX12-GISEL:       ; %bb.0:721; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x0722; GFX12-GISEL-NEXT:    s_wait_expcnt 0x0723; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x0724; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x0725; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0726; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:-8388608727; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x0728; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]729;730; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_neg_24bit_max:731; GFX11-SDAG-TRUE16:       ; %bb.0:732; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)733; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xff800000, v0734; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)735; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo736; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off737; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)738; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]739;740; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_neg_24bit_max:741; GFX11-SDAG-FAKE16:       ; %bb.0:742; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)743; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xff800000, v0744; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)745; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo746; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off747; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)748; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]749;750; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_neg_24bit_max:751; GFX12-SDAG-TRUE16:       ; %bb.0:752; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0753; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0754; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0755; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0756; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0757; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-8388608758; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x0759; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]760;761; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_neg_24bit_max:762; GFX12-SDAG-FAKE16:       ; %bb.0:763; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0764; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0765; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0766; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0767; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0768; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-8388608769; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x0770; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]771  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -8388608772  %load = load i8, ptr addrspace(1) %gep, align 4773  ret i8 %load774}775 776define i8 @global_inst_valu_offset_2x_11bit_max(ptr addrspace(1) %p) {777; GFX9-LABEL: global_inst_valu_offset_2x_11bit_max:778; GFX9:       ; %bb.0:779; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)780; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off offset:4095781; GFX9-NEXT:    s_waitcnt vmcnt(0)782; GFX9-NEXT:    s_setpc_b64 s[30:31]783;784; GFX10-GISEL-LABEL: global_inst_valu_offset_2x_11bit_max:785; GFX10-GISEL:       ; %bb.0:786; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)787; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfff, v0788; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo789; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off790; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)791; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]792;793; GFX11-GISEL-LABEL: global_inst_valu_offset_2x_11bit_max:794; GFX11-GISEL:       ; %bb.0:795; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)796; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:4095797; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)798; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]799;800; GFX12-GISEL-LABEL: global_inst_valu_offset_2x_11bit_max:801; GFX12-GISEL:       ; %bb.0:802; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x0803; GFX12-GISEL-NEXT:    s_wait_expcnt 0x0804; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x0805; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x0806; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0807; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:4095808; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x0809; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]810;811; GFX10-SDAG-LABEL: global_inst_valu_offset_2x_11bit_max:812; GFX10-SDAG:       ; %bb.0:813; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)814; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800, v0815; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo816; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:2047817; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)818; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]819;820; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_11bit_max:821; GFX11-SDAG-TRUE16:       ; %bb.0:822; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)823; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:4095824; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)825; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]826;827; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_11bit_max:828; GFX11-SDAG-FAKE16:       ; %bb.0:829; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)830; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:4095831; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)832; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]833;834; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_11bit_max:835; GFX12-SDAG-TRUE16:       ; %bb.0:836; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0837; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0838; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0839; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0840; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0841; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:4095842; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x0843; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]844;845; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_11bit_max:846; GFX12-SDAG-FAKE16:       ; %bb.0:847; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0848; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0849; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0850; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0851; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0852; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:4095853; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x0854; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]855  %gep = getelementptr i8, ptr addrspace(1) %p, i64 4095856  %load = load i8, ptr addrspace(1) %gep, align 4857  ret i8 %load858}859 860define i8 @global_inst_valu_offset_2x_12bit_max(ptr addrspace(1) %p) {861; GFX9-GISEL-LABEL: global_inst_valu_offset_2x_12bit_max:862; GFX9-GISEL:       ; %bb.0:863; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)864; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1fff, v0865; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, 0, v1, vcc866; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off867; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)868; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]869;870; GFX10-GISEL-LABEL: global_inst_valu_offset_2x_12bit_max:871; GFX10-GISEL:       ; %bb.0:872; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)873; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1fff, v0874; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo875; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off876; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)877; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]878;879; GFX11-GISEL-LABEL: global_inst_valu_offset_2x_12bit_max:880; GFX11-GISEL:       ; %bb.0:881; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)882; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1fff, v0883; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)884; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo885; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off886; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)887; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]888;889; GFX12-GISEL-LABEL: global_inst_valu_offset_2x_12bit_max:890; GFX12-GISEL:       ; %bb.0:891; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x0892; GFX12-GISEL-NEXT:    s_wait_expcnt 0x0893; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x0894; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x0895; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x0896; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:8191897; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x0898; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]899;900; GFX9-SDAG-LABEL: global_inst_valu_offset_2x_12bit_max:901; GFX9-SDAG:       ; %bb.0:902; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)903; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1000, v0904; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, 0, v1, vcc905; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:4095906; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)907; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]908;909; GFX10-SDAG-LABEL: global_inst_valu_offset_2x_12bit_max:910; GFX10-SDAG:       ; %bb.0:911; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)912; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1800, v0913; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo914; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:2047915; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)916; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]917;918; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_12bit_max:919; GFX11-SDAG-TRUE16:       ; %bb.0:920; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)921; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v0922; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)923; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo924; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:4095925; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)926; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]927;928; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_12bit_max:929; GFX11-SDAG-FAKE16:       ; %bb.0:930; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)931; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v0932; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)933; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo934; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:4095935; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)936; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]937;938; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_12bit_max:939; GFX12-SDAG-TRUE16:       ; %bb.0:940; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x0941; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x0942; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x0943; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x0944; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x0945; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:8191946; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x0947; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]948;949; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_12bit_max:950; GFX12-SDAG-FAKE16:       ; %bb.0:951; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x0952; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x0953; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x0954; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x0955; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x0956; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:8191957; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x0958; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]959  %gep = getelementptr i8, ptr addrspace(1) %p, i64 8191960  %load = load i8, ptr addrspace(1) %gep, align 4961  ret i8 %load962}963 964define i8 @global_inst_valu_offset_2x_13bit_max(ptr addrspace(1) %p) {965; GFX9-GISEL-LABEL: global_inst_valu_offset_2x_13bit_max:966; GFX9-GISEL:       ; %bb.0:967; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)968; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0x3fff, v0969; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, 0, v1, vcc970; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off971; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)972; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]973;974; GFX10-GISEL-LABEL: global_inst_valu_offset_2x_13bit_max:975; GFX10-GISEL:       ; %bb.0:976; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)977; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x3fff, v0978; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo979; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off980; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)981; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]982;983; GFX11-GISEL-LABEL: global_inst_valu_offset_2x_13bit_max:984; GFX11-GISEL:       ; %bb.0:985; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)986; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x3fff, v0987; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)988; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo989; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off990; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)991; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]992;993; GFX12-GISEL-LABEL: global_inst_valu_offset_2x_13bit_max:994; GFX12-GISEL:       ; %bb.0:995; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x0996; GFX12-GISEL-NEXT:    s_wait_expcnt 0x0997; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x0998; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x0999; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01000; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:163831001; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x01002; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1003;1004; GFX9-SDAG-LABEL: global_inst_valu_offset_2x_13bit_max:1005; GFX9-SDAG:       ; %bb.0:1006; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1007; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0x3000, v01008; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, 0, v1, vcc1009; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:40951010; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)1011; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]1012;1013; GFX10-SDAG-LABEL: global_inst_valu_offset_2x_13bit_max:1014; GFX10-SDAG:       ; %bb.0:1015; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1016; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0x3800, v01017; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo1018; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:20471019; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)1020; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]1021;1022; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_13bit_max:1023; GFX11-SDAG-TRUE16:       ; %bb.0:1024; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1025; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x3000, v01026; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1027; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo1028; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:40951029; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)1030; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1031;1032; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_13bit_max:1033; GFX11-SDAG-FAKE16:       ; %bb.0:1034; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1035; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x3000, v01036; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1037; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo1038; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:40951039; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)1040; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1041;1042; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_13bit_max:1043; GFX12-SDAG-TRUE16:       ; %bb.0:1044; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x01045; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x01046; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x01047; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x01048; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x01049; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:163831050; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x01051; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1052;1053; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_13bit_max:1054; GFX12-SDAG-FAKE16:       ; %bb.0:1055; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x01056; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x01057; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x01058; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x01059; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x01060; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:163831061; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x01062; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1063  %gep = getelementptr i8, ptr addrspace(1) %p, i64 163831064  %load = load i8, ptr addrspace(1) %gep, align 41065  ret i8 %load1066}1067 1068define i8 @global_inst_valu_offset_2x_24bit_max(ptr addrspace(1) %p) {1069; GFX9-GISEL-LABEL: global_inst_valu_offset_2x_24bit_max:1070; GFX9-GISEL:       ; %bb.0:1071; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1072; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0xfffffe, v01073; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, 0, v1, vcc1074; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off1075; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)1076; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]1077;1078; GFX10-GISEL-LABEL: global_inst_valu_offset_2x_24bit_max:1079; GFX10-GISEL:       ; %bb.0:1080; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1081; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfffffe, v01082; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo1083; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off1084; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)1085; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]1086;1087; GFX11-GISEL-LABEL: global_inst_valu_offset_2x_24bit_max:1088; GFX11-GISEL:       ; %bb.0:1089; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1090; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfffffe, v01091; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)1092; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo1093; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1094; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)1095; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]1096;1097; GFX12-GISEL-LABEL: global_inst_valu_offset_2x_24bit_max:1098; GFX12-GISEL:       ; %bb.0:1099; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01100; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01101; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01102; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01103; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01104; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfffffe, v01105; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)1106; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo1107; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1108; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x01109; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1110;1111; GFX9-SDAG-LABEL: global_inst_valu_offset_2x_24bit_max:1112; GFX9-SDAG:       ; %bb.0:1113; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1114; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0xfff000, v01115; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, 0, v1, vcc1116; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:40941117; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)1118; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]1119;1120; GFX10-SDAG-LABEL: global_inst_valu_offset_2x_24bit_max:1121; GFX10-SDAG:       ; %bb.0:1122; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1123; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfff800, v01124; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo1125; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:20461126; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)1127; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]1128;1129; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_24bit_max:1130; GFX11-SDAG-TRUE16:       ; %bb.0:1131; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1132; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfff000, v01133; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1134; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo1135; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:40941136; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)1137; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1138;1139; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_24bit_max:1140; GFX11-SDAG-FAKE16:       ; %bb.0:1141; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1142; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfff000, v01143; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1144; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo1145; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:40941146; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)1147; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1148;1149; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_24bit_max:1150; GFX12-SDAG-TRUE16:       ; %bb.0:1151; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x01152; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x01153; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x01154; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x01155; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x01156; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v01157; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)1158; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo1159; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:83886061160; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x01161; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1162;1163; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_24bit_max:1164; GFX12-SDAG-FAKE16:       ; %bb.0:1165; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x01166; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x01167; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x01168; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x01169; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x01170; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v01171; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)1172; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo1173; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:83886061174; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x01175; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1176  %gep = getelementptr i8, ptr addrspace(1) %p, i64 167772141177  %load = load i8, ptr addrspace(1) %gep, align 41178  ret i8 %load1179}1180 1181define i8 @global_inst_valu_offset_2x_neg_11bit_max(ptr addrspace(1) %p) {1182; GFX9-LABEL: global_inst_valu_offset_2x_neg_11bit_max:1183; GFX9:       ; %bb.0:1184; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1185; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off offset:-40961186; GFX9-NEXT:    s_waitcnt vmcnt(0)1187; GFX9-NEXT:    s_setpc_b64 s[30:31]1188;1189; GFX10-LABEL: global_inst_valu_offset_2x_neg_11bit_max:1190; GFX10:       ; %bb.0:1191; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1192; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfffff000, v01193; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, -1, v1, vcc_lo1194; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off1195; GFX10-NEXT:    s_waitcnt vmcnt(0)1196; GFX10-NEXT:    s_setpc_b64 s[30:31]1197;1198; GFX11-GISEL-LABEL: global_inst_valu_offset_2x_neg_11bit_max:1199; GFX11-GISEL:       ; %bb.0:1200; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1201; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:-40961202; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)1203; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]1204;1205; GFX12-GISEL-LABEL: global_inst_valu_offset_2x_neg_11bit_max:1206; GFX12-GISEL:       ; %bb.0:1207; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01208; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01209; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01210; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01211; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01212; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:-40961213; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x01214; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1215;1216; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_neg_11bit_max:1217; GFX11-SDAG-TRUE16:       ; %bb.0:1218; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1219; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-40961220; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)1221; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1222;1223; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_neg_11bit_max:1224; GFX11-SDAG-FAKE16:       ; %bb.0:1225; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1226; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-40961227; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)1228; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1229;1230; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_neg_11bit_max:1231; GFX12-SDAG-TRUE16:       ; %bb.0:1232; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x01233; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x01234; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x01235; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x01236; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x01237; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-40961238; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x01239; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1240;1241; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_neg_11bit_max:1242; GFX12-SDAG-FAKE16:       ; %bb.0:1243; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x01244; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x01245; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x01246; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x01247; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x01248; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-40961249; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x01250; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1251  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -40961252  %load = load i8, ptr addrspace(1) %gep, align 41253  ret i8 %load1254}1255 1256define i8 @global_inst_valu_offset_2x_neg_12bit_max(ptr addrspace(1) %p) {1257; GFX9-LABEL: global_inst_valu_offset_2x_neg_12bit_max:1258; GFX9:       ; %bb.0:1259; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1260; GFX9-NEXT:    v_add_co_u32_e32 v0, vcc, 0xffffe000, v01261; GFX9-NEXT:    v_addc_co_u32_e32 v1, vcc, -1, v1, vcc1262; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off1263; GFX9-NEXT:    s_waitcnt vmcnt(0)1264; GFX9-NEXT:    s_setpc_b64 s[30:31]1265;1266; GFX10-LABEL: global_inst_valu_offset_2x_neg_12bit_max:1267; GFX10:       ; %bb.0:1268; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1269; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, 0xffffe000, v01270; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, -1, v1, vcc_lo1271; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off1272; GFX10-NEXT:    s_waitcnt vmcnt(0)1273; GFX10-NEXT:    s_setpc_b64 s[30:31]1274;1275; GFX11-GISEL-LABEL: global_inst_valu_offset_2x_neg_12bit_max:1276; GFX11-GISEL:       ; %bb.0:1277; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1278; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xffffe000, v01279; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)1280; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo1281; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1282; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)1283; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]1284;1285; GFX12-GISEL-LABEL: global_inst_valu_offset_2x_neg_12bit_max:1286; GFX12-GISEL:       ; %bb.0:1287; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01288; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01289; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01290; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01291; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01292; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:-81921293; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x01294; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1295;1296; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_neg_12bit_max:1297; GFX11-SDAG-TRUE16:       ; %bb.0:1298; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1299; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xffffe000, v01300; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1301; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo1302; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off1303; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)1304; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1305;1306; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_neg_12bit_max:1307; GFX11-SDAG-FAKE16:       ; %bb.0:1308; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1309; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xffffe000, v01310; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1311; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo1312; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off1313; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)1314; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1315;1316; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_neg_12bit_max:1317; GFX12-SDAG-TRUE16:       ; %bb.0:1318; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x01319; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x01320; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x01321; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x01322; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x01323; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-81921324; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x01325; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1326;1327; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_neg_12bit_max:1328; GFX12-SDAG-FAKE16:       ; %bb.0:1329; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x01330; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x01331; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x01332; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x01333; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x01334; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-81921335; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x01336; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1337  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -81921338  %load = load i8, ptr addrspace(1) %gep, align 41339  ret i8 %load1340}1341 1342define i8 @global_inst_valu_offset_2x_neg_13bit_max(ptr addrspace(1) %p) {1343; GFX9-LABEL: global_inst_valu_offset_2x_neg_13bit_max:1344; GFX9:       ; %bb.0:1345; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1346; GFX9-NEXT:    v_add_co_u32_e32 v0, vcc, 0xffffc000, v01347; GFX9-NEXT:    v_addc_co_u32_e32 v1, vcc, -1, v1, vcc1348; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off1349; GFX9-NEXT:    s_waitcnt vmcnt(0)1350; GFX9-NEXT:    s_setpc_b64 s[30:31]1351;1352; GFX10-LABEL: global_inst_valu_offset_2x_neg_13bit_max:1353; GFX10:       ; %bb.0:1354; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1355; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, 0xffffc000, v01356; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, -1, v1, vcc_lo1357; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off1358; GFX10-NEXT:    s_waitcnt vmcnt(0)1359; GFX10-NEXT:    s_setpc_b64 s[30:31]1360;1361; GFX11-GISEL-LABEL: global_inst_valu_offset_2x_neg_13bit_max:1362; GFX11-GISEL:       ; %bb.0:1363; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1364; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xffffc000, v01365; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)1366; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo1367; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1368; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)1369; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]1370;1371; GFX12-GISEL-LABEL: global_inst_valu_offset_2x_neg_13bit_max:1372; GFX12-GISEL:       ; %bb.0:1373; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01374; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01375; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01376; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01377; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01378; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off offset:-163841379; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x01380; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1381;1382; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_neg_13bit_max:1383; GFX11-SDAG-TRUE16:       ; %bb.0:1384; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1385; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xffffc000, v01386; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1387; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo1388; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off1389; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)1390; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1391;1392; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_neg_13bit_max:1393; GFX11-SDAG-FAKE16:       ; %bb.0:1394; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1395; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xffffc000, v01396; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1397; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo1398; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off1399; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)1400; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1401;1402; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_neg_13bit_max:1403; GFX12-SDAG-TRUE16:       ; %bb.0:1404; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x01405; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x01406; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x01407; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x01408; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x01409; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-163841410; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x01411; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1412;1413; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_neg_13bit_max:1414; GFX12-SDAG-FAKE16:       ; %bb.0:1415; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x01416; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x01417; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x01418; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x01419; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x01420; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-163841421; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x01422; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1423  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -163841424  %load = load i8, ptr addrspace(1) %gep, align 41425  ret i8 %load1426}1427 1428define i8 @global_inst_valu_offset_2x_neg_24bit_max(ptr addrspace(1) %p) {1429; GFX9-GISEL-LABEL: global_inst_valu_offset_2x_neg_24bit_max:1430; GFX9-GISEL:       ; %bb.0:1431; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1432; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0xff000001, v01433; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, -1, v1, vcc1434; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off1435; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)1436; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]1437;1438; GFX10-GISEL-LABEL: global_inst_valu_offset_2x_neg_24bit_max:1439; GFX10-GISEL:       ; %bb.0:1440; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1441; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xff000001, v01442; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, -1, v1, vcc_lo1443; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off1444; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)1445; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]1446;1447; GFX11-GISEL-LABEL: global_inst_valu_offset_2x_neg_24bit_max:1448; GFX11-GISEL:       ; %bb.0:1449; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1450; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xff000001, v01451; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)1452; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo1453; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1454; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)1455; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]1456;1457; GFX12-GISEL-LABEL: global_inst_valu_offset_2x_neg_24bit_max:1458; GFX12-GISEL:       ; %bb.0:1459; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01460; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01461; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01462; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01463; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01464; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xff000001, v01465; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)1466; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo1467; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1468; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x01469; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1470;1471; GFX9-SDAG-LABEL: global_inst_valu_offset_2x_neg_24bit_max:1472; GFX9-SDAG:       ; %bb.0:1473; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1474; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0xff001000, v01475; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, -1, v1, vcc1476; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:-40951477; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)1478; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]1479;1480; GFX10-SDAG-LABEL: global_inst_valu_offset_2x_neg_24bit_max:1481; GFX10-SDAG:       ; %bb.0:1482; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1483; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0xff000800, v01484; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, -1, v1, vcc_lo1485; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:-20471486; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)1487; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]1488;1489; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_neg_24bit_max:1490; GFX11-SDAG-TRUE16:       ; %bb.0:1491; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1492; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xff001000, v01493; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1494; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo1495; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-40951496; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)1497; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1498;1499; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_neg_24bit_max:1500; GFX11-SDAG-FAKE16:       ; %bb.0:1501; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1502; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xff001000, v01503; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1504; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo1505; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-40951506; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)1507; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1508;1509; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_2x_neg_24bit_max:1510; GFX12-SDAG-TRUE16:       ; %bb.0:1511; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x01512; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x01513; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x01514; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x01515; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x01516; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xff800000, v01517; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)1518; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo1519; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-83886071520; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x01521; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1522;1523; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_2x_neg_24bit_max:1524; GFX12-SDAG-FAKE16:       ; %bb.0:1525; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x01526; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x01527; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x01528; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x01529; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x01530; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0xff800000, v01531; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)1532; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, v1, vcc_lo1533; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-83886071534; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x01535; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1536  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -167772151537  %load = load i8, ptr addrspace(1) %gep, align 41538  ret i8 %load1539}1540 1541 1542; Fill 11-bit low-bits (1ull << 33) | 20471543define i8 @global_inst_valu_offset_64bit_11bit_split0(ptr addrspace(1) %p) {1544; GFX9-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_split0:1545; GFX9-GISEL:       ; %bb.0:1546; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1547; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0x7ff, v01548; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, 2, v1, vcc1549; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off1550; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)1551; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]1552;1553; GFX10-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_split0:1554; GFX10-GISEL:       ; %bb.0:1555; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1556; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x7ff, v01557; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 2, v1, vcc_lo1558; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off1559; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)1560; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]1561;1562; GFX11-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_split0:1563; GFX11-GISEL:       ; %bb.0:1564; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1565; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x7ff, v01566; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)1567; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1568; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1569; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)1570; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]1571;1572; GFX12-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_split0:1573; GFX12-GISEL:       ; %bb.0:1574; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01575; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01576; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01577; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01578; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01579; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x7ff, v01580; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)1581; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1582; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1583; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x01584; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1585;1586; GFX9-SDAG-LABEL: global_inst_valu_offset_64bit_11bit_split0:1587; GFX9-SDAG:       ; %bb.0:1588; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1589; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0, v01590; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, 2, v1, vcc1591; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:20471592; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)1593; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]1594;1595; GFX10-SDAG-LABEL: global_inst_valu_offset_64bit_11bit_split0:1596; GFX10-SDAG:       ; %bb.0:1597; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1598; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01599; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 2, v1, vcc_lo1600; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:20471601; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)1602; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]1603;1604; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_11bit_split0:1605; GFX11-SDAG-TRUE16:       ; %bb.0:1606; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1607; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01608; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1609; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1610; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:20471611; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)1612; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1613;1614; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_11bit_split0:1615; GFX11-SDAG-FAKE16:       ; %bb.0:1616; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1617; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01618; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1619; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1620; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:20471621; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)1622; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1623;1624; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_11bit_split0:1625; GFX12-SDAG-TRUE16:       ; %bb.0:1626; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x01627; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x01628; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x01629; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x01630; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x01631; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01632; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)1633; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1634; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:20471635; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x01636; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1637;1638; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_11bit_split0:1639; GFX12-SDAG-FAKE16:       ; %bb.0:1640; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x01641; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x01642; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x01643; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x01644; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x01645; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01646; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)1647; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1648; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:20471649; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x01650; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1651  %gep = getelementptr i8, ptr addrspace(1) %p, i64 85899366391652  %load = load i8, ptr addrspace(1) %gep, align 41653  ret i8 %load1654}1655 1656; Fill 11-bit low-bits (1ull << 33) | 20481657define i8 @global_inst_valu_offset_64bit_11bit_split1(ptr addrspace(1) %p) {1658; GFX9-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_split1:1659; GFX9-GISEL:       ; %bb.0:1660; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1661; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0x800, v01662; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, 2, v1, vcc1663; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off1664; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)1665; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]1666;1667; GFX10-LABEL: global_inst_valu_offset_64bit_11bit_split1:1668; GFX10:       ; %bb.0:1669; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1670; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800, v01671; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 2, v1, vcc_lo1672; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off1673; GFX10-NEXT:    s_waitcnt vmcnt(0)1674; GFX10-NEXT:    s_setpc_b64 s[30:31]1675;1676; GFX11-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_split1:1677; GFX11-GISEL:       ; %bb.0:1678; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1679; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800, v01680; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)1681; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1682; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1683; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)1684; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]1685;1686; GFX12-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_split1:1687; GFX12-GISEL:       ; %bb.0:1688; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01689; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01690; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01691; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01692; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01693; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800, v01694; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)1695; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1696; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1697; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x01698; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1699;1700; GFX9-SDAG-LABEL: global_inst_valu_offset_64bit_11bit_split1:1701; GFX9-SDAG:       ; %bb.0:1702; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1703; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0, v01704; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, 2, v1, vcc1705; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:20481706; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)1707; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]1708;1709; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_11bit_split1:1710; GFX11-SDAG-TRUE16:       ; %bb.0:1711; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1712; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01713; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1714; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1715; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:20481716; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)1717; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1718;1719; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_11bit_split1:1720; GFX11-SDAG-FAKE16:       ; %bb.0:1721; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1722; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01723; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1724; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1725; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:20481726; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)1727; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1728;1729; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_11bit_split1:1730; GFX12-SDAG-TRUE16:       ; %bb.0:1731; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x01732; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x01733; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x01734; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x01735; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x01736; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01737; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)1738; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1739; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:20481740; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x01741; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1742;1743; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_11bit_split1:1744; GFX12-SDAG-FAKE16:       ; %bb.0:1745; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x01746; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x01747; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x01748; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x01749; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x01750; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01751; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)1752; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1753; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:20481754; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x01755; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1756  %gep = getelementptr i8, ptr addrspace(1) %p, i64 85899366401757  %load = load i8, ptr addrspace(1) %gep, align 41758  ret i8 %load1759}1760 1761; Fill 12-bit low-bits (1ull << 33) | 40951762define i8 @global_inst_valu_offset_64bit_12bit_split0(ptr addrspace(1) %p) {1763; GFX9-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_split0:1764; GFX9-GISEL:       ; %bb.0:1765; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1766; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0xfff, v01767; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, 2, v1, vcc1768; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off1769; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)1770; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]1771;1772; GFX10-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_split0:1773; GFX10-GISEL:       ; %bb.0:1774; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1775; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfff, v01776; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 2, v1, vcc_lo1777; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off1778; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)1779; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]1780;1781; GFX11-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_split0:1782; GFX11-GISEL:       ; %bb.0:1783; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1784; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfff, v01785; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)1786; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1787; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1788; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)1789; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]1790;1791; GFX12-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_split0:1792; GFX12-GISEL:       ; %bb.0:1793; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01794; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01795; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01796; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01797; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01798; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfff, v01799; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)1800; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1801; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1802; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x01803; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1804;1805; GFX9-SDAG-LABEL: global_inst_valu_offset_64bit_12bit_split0:1806; GFX9-SDAG:       ; %bb.0:1807; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1808; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0, v01809; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, 2, v1, vcc1810; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:40951811; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)1812; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]1813;1814; GFX10-SDAG-LABEL: global_inst_valu_offset_64bit_12bit_split0:1815; GFX10-SDAG:       ; %bb.0:1816; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1817; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800, v01818; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 2, v1, vcc_lo1819; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:20471820; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)1821; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]1822;1823; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_12bit_split0:1824; GFX11-SDAG-TRUE16:       ; %bb.0:1825; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1826; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01827; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1828; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1829; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:40951830; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)1831; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1832;1833; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_12bit_split0:1834; GFX11-SDAG-FAKE16:       ; %bb.0:1835; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1836; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01837; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1838; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1839; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:40951840; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)1841; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1842;1843; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_12bit_split0:1844; GFX12-SDAG-TRUE16:       ; %bb.0:1845; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x01846; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x01847; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x01848; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x01849; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x01850; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01851; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)1852; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1853; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:40951854; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x01855; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1856;1857; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_12bit_split0:1858; GFX12-SDAG-FAKE16:       ; %bb.0:1859; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x01860; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x01861; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x01862; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x01863; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x01864; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01865; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)1866; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1867; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:40951868; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x01869; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1870  %gep = getelementptr i8, ptr addrspace(1) %p, i64 85899386871871  %load = load i8, ptr addrspace(1) %gep, align 41872  ret i8 %load1873}1874 1875; Fill 12-bit low-bits (1ull << 33) | 40961876define i8 @global_inst_valu_offset_64bit_12bit_split1(ptr addrspace(1) %p) {1877; GFX9-LABEL: global_inst_valu_offset_64bit_12bit_split1:1878; GFX9:       ; %bb.0:1879; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1880; GFX9-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1000, v01881; GFX9-NEXT:    v_addc_co_u32_e32 v1, vcc, 2, v1, vcc1882; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off1883; GFX9-NEXT:    s_waitcnt vmcnt(0)1884; GFX9-NEXT:    s_setpc_b64 s[30:31]1885;1886; GFX10-LABEL: global_inst_valu_offset_64bit_12bit_split1:1887; GFX10:       ; %bb.0:1888; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1889; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v01890; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 2, v1, vcc_lo1891; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off1892; GFX10-NEXT:    s_waitcnt vmcnt(0)1893; GFX10-NEXT:    s_setpc_b64 s[30:31]1894;1895; GFX11-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_split1:1896; GFX11-GISEL:       ; %bb.0:1897; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1898; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v01899; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)1900; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1901; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1902; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)1903; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]1904;1905; GFX12-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_split1:1906; GFX12-GISEL:       ; %bb.0:1907; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x01908; GFX12-GISEL-NEXT:    s_wait_expcnt 0x01909; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x01910; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x01911; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x01912; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v01913; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)1914; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1915; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1916; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x01917; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]1918;1919; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_12bit_split1:1920; GFX11-SDAG-TRUE16:       ; %bb.0:1921; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1922; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v01923; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1924; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1925; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off1926; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)1927; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1928;1929; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_12bit_split1:1930; GFX11-SDAG-FAKE16:       ; %bb.0:1931; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1932; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v01933; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)1934; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1935; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off1936; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)1937; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1938;1939; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_12bit_split1:1940; GFX12-SDAG-TRUE16:       ; %bb.0:1941; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x01942; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x01943; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x01944; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x01945; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x01946; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01947; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)1948; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1949; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:40961950; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x01951; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]1952;1953; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_12bit_split1:1954; GFX12-SDAG-FAKE16:       ; %bb.0:1955; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x01956; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x01957; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x01958; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x01959; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x01960; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v01961; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)1962; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1963; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:40961964; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x01965; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]1966  %gep = getelementptr i8, ptr addrspace(1) %p, i64 85899386881967  %load = load i8, ptr addrspace(1) %gep, align 41968  ret i8 %load1969}1970 1971; Fill 13-bit low-bits (1ull << 33) | 81911972define i8 @global_inst_valu_offset_64bit_13bit_split0(ptr addrspace(1) %p) {1973; GFX9-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_split0:1974; GFX9-GISEL:       ; %bb.0:1975; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1976; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1fff, v01977; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, 2, v1, vcc1978; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off1979; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)1980; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]1981;1982; GFX10-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_split0:1983; GFX10-GISEL:       ; %bb.0:1984; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1985; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1fff, v01986; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 2, v1, vcc_lo1987; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off1988; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)1989; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]1990;1991; GFX11-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_split0:1992; GFX11-GISEL:       ; %bb.0:1993; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1994; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1fff, v01995; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)1996; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo1997; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off1998; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)1999; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]2000;2001; GFX12-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_split0:2002; GFX12-GISEL:       ; %bb.0:2003; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x02004; GFX12-GISEL-NEXT:    s_wait_expcnt 0x02005; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x02006; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x02007; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02008; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1fff, v02009; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)2010; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo2011; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2012; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x02013; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]2014;2015; GFX9-SDAG-LABEL: global_inst_valu_offset_64bit_13bit_split0:2016; GFX9-SDAG:       ; %bb.0:2017; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2018; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1000, v02019; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, 2, v1, vcc2020; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:40952021; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)2022; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]2023;2024; GFX10-SDAG-LABEL: global_inst_valu_offset_64bit_13bit_split0:2025; GFX10-SDAG:       ; %bb.0:2026; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2027; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1800, v02028; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 2, v1, vcc_lo2029; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:20472030; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)2031; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]2032;2033; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_13bit_split0:2034; GFX11-SDAG-TRUE16:       ; %bb.0:2035; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2036; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02037; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2038; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo2039; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:40952040; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)2041; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2042;2043; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_13bit_split0:2044; GFX11-SDAG-FAKE16:       ; %bb.0:2045; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2046; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02047; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2048; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo2049; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:40952050; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)2051; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2052;2053; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_13bit_split0:2054; GFX12-SDAG-TRUE16:       ; %bb.0:2055; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x02056; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x02057; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x02058; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x02059; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x02060; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v02061; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)2062; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo2063; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:81912064; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x02065; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2066;2067; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_13bit_split0:2068; GFX12-SDAG-FAKE16:       ; %bb.0:2069; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x02070; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x02071; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x02072; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x02073; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x02074; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v02075; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)2076; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo2077; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:81912078; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x02079; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2080  %gep = getelementptr i8, ptr addrspace(1) %p, i64 85899427832081  %load = load i8, ptr addrspace(1) %gep, align 42082  ret i8 %load2083}2084 2085; Fill 13-bit low-bits (1ull << 33) | 81922086define i8 @global_inst_valu_offset_64bit_13bit_split1(ptr addrspace(1) %p) {2087; GFX9-LABEL: global_inst_valu_offset_64bit_13bit_split1:2088; GFX9:       ; %bb.0:2089; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2090; GFX9-NEXT:    v_add_co_u32_e32 v0, vcc, 0x2000, v02091; GFX9-NEXT:    v_addc_co_u32_e32 v1, vcc, 2, v1, vcc2092; GFX9-NEXT:    global_load_ubyte v0, v[0:1], off2093; GFX9-NEXT:    s_waitcnt vmcnt(0)2094; GFX9-NEXT:    s_setpc_b64 s[30:31]2095;2096; GFX10-LABEL: global_inst_valu_offset_64bit_13bit_split1:2097; GFX10:       ; %bb.0:2098; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2099; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02100; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 2, v1, vcc_lo2101; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off2102; GFX10-NEXT:    s_waitcnt vmcnt(0)2103; GFX10-NEXT:    s_setpc_b64 s[30:31]2104;2105; GFX11-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_split1:2106; GFX11-GISEL:       ; %bb.0:2107; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2108; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02109; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)2110; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo2111; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2112; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)2113; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]2114;2115; GFX12-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_split1:2116; GFX12-GISEL:       ; %bb.0:2117; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x02118; GFX12-GISEL-NEXT:    s_wait_expcnt 0x02119; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x02120; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x02121; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02122; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02123; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)2124; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo2125; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2126; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x02127; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]2128;2129; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_13bit_split1:2130; GFX11-SDAG-TRUE16:       ; %bb.0:2131; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2132; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02133; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2134; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo2135; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off2136; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)2137; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2138;2139; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_13bit_split1:2140; GFX11-SDAG-FAKE16:       ; %bb.0:2141; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2142; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02143; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2144; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo2145; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off2146; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)2147; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2148;2149; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_13bit_split1:2150; GFX12-SDAG-TRUE16:       ; %bb.0:2151; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x02152; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x02153; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x02154; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x02155; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x02156; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v02157; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)2158; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo2159; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:81922160; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x02161; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2162;2163; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_13bit_split1:2164; GFX12-SDAG-FAKE16:       ; %bb.0:2165; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x02166; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x02167; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x02168; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x02169; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x02170; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0, v02171; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)2172; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, v1, vcc_lo2173; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:81922174; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x02175; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2176  %gep = getelementptr i8, ptr addrspace(1) %p, i64 85899427842177  %load = load i8, ptr addrspace(1) %gep, align 42178  ret i8 %load2179}2180 2181; Fill 11-bit low-bits, negative high bits (1ull << 63) | 20472182define i8 @global_inst_valu_offset_64bit_11bit_neg_high_split0(ptr addrspace(1) %p) {2183; GFX9-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split0:2184; GFX9-GISEL:       ; %bb.0:2185; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2186; GFX9-GISEL-NEXT:    v_bfrev_b32_e32 v2, 12187; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0x7ff, v02188; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, v1, v2, vcc2189; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off2190; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)2191; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]2192;2193; GFX10-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split0:2194; GFX10-GISEL:       ; %bb.0:2195; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2196; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x7ff, v02197; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0x80000000, v1, vcc_lo2198; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off2199; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)2200; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]2201;2202; GFX11-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split0:2203; GFX11-GISEL:       ; %bb.0:2204; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2205; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x7ff, v02206; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)2207; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2208; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2209; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)2210; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]2211;2212; GFX12-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split0:2213; GFX12-GISEL:       ; %bb.0:2214; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x02215; GFX12-GISEL-NEXT:    s_wait_expcnt 0x02216; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x02217; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x02218; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02219; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x7ff, v02220; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)2221; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2222; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2223; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x02224; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]2225;2226; GFX9-SDAG-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split0:2227; GFX9-SDAG:       ; %bb.0:2228; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2229; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1000, v02230; GFX9-SDAG-NEXT:    v_bfrev_b32_e32 v2, 12231; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, v2, v1, vcc2232; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:-20492233; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)2234; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]2235;2236; GFX10-SDAG-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split0:2237; GFX10-SDAG:       ; %bb.0:2238; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2239; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800, v02240; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0x80000000, v1, vcc_lo2241; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:-12242; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)2243; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]2244;2245; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split0:2246; GFX11-SDAG-TRUE16:       ; %bb.0:2247; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2248; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02249; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2250; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2251; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-20492252; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)2253; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2254;2255; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split0:2256; GFX11-SDAG-FAKE16:       ; %bb.0:2257; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2258; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02259; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2260; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2261; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-20492262; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)2263; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2264;2265; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split0:2266; GFX12-SDAG-TRUE16:       ; %bb.0:2267; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x02268; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x02269; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x02270; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x02271; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x02272; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v02273; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)2274; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2275; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-83865612276; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x02277; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2278;2279; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split0:2280; GFX12-SDAG-FAKE16:       ; %bb.0:2281; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x02282; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x02283; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x02284; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x02285; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x02286; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v02287; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)2288; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2289; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-83865612290; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x02291; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2292  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -92233720368547737612293  %load = load i8, ptr addrspace(1) %gep, align 42294  ret i8 %load2295}2296 2297; Fill 11-bit low-bits, negative high bits (1ull << 63) | 20482298define i8 @global_inst_valu_offset_64bit_11bit_neg_high_split1(ptr addrspace(1) %p) {2299; GFX9-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split1:2300; GFX9-GISEL:       ; %bb.0:2301; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2302; GFX9-GISEL-NEXT:    v_bfrev_b32_e32 v2, 12303; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0x800, v02304; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, v1, v2, vcc2305; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off2306; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)2307; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]2308;2309; GFX10-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split1:2310; GFX10:       ; %bb.0:2311; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2312; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800, v02313; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0x80000000, v1, vcc_lo2314; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off2315; GFX10-NEXT:    s_waitcnt vmcnt(0)2316; GFX10-NEXT:    s_setpc_b64 s[30:31]2317;2318; GFX11-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split1:2319; GFX11-GISEL:       ; %bb.0:2320; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2321; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800, v02322; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)2323; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2324; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2325; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)2326; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]2327;2328; GFX12-GISEL-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split1:2329; GFX12-GISEL:       ; %bb.0:2330; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x02331; GFX12-GISEL-NEXT:    s_wait_expcnt 0x02332; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x02333; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x02334; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02335; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800, v02336; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)2337; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2338; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2339; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x02340; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]2341;2342; GFX9-SDAG-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split1:2343; GFX9-SDAG:       ; %bb.0:2344; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2345; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1000, v02346; GFX9-SDAG-NEXT:    v_bfrev_b32_e32 v2, 12347; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, v2, v1, vcc2348; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:-20482349; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)2350; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]2351;2352; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split1:2353; GFX11-SDAG-TRUE16:       ; %bb.0:2354; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2355; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02356; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2357; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2358; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-20482359; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)2360; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2361;2362; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split1:2363; GFX11-SDAG-FAKE16:       ; %bb.0:2364; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2365; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02366; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2367; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2368; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-20482369; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)2370; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2371;2372; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split1:2373; GFX12-SDAG-TRUE16:       ; %bb.0:2374; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x02375; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x02376; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x02377; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x02378; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x02379; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v02380; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)2381; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2382; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-83865602383; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x02384; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2385;2386; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_11bit_neg_high_split1:2387; GFX12-SDAG-FAKE16:       ; %bb.0:2388; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x02389; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x02390; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x02391; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x02392; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x02393; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v02394; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)2395; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2396; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-83865602397; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x02398; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2399  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -92233720368547737602400  %load = load i8, ptr addrspace(1) %gep, align 42401  ret i8 %load2402}2403 2404; Fill 12-bit low-bits, negative high bits (1ull << 63) | 40952405define i8 @global_inst_valu_offset_64bit_12bit_neg_high_split0(ptr addrspace(1) %p) {2406; GFX9-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split0:2407; GFX9-GISEL:       ; %bb.0:2408; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2409; GFX9-GISEL-NEXT:    v_bfrev_b32_e32 v2, 12410; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0xfff, v02411; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, v1, v2, vcc2412; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off2413; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)2414; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]2415;2416; GFX10-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split0:2417; GFX10-GISEL:       ; %bb.0:2418; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2419; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfff, v02420; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0x80000000, v1, vcc_lo2421; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off2422; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)2423; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]2424;2425; GFX11-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split0:2426; GFX11-GISEL:       ; %bb.0:2427; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2428; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfff, v02429; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)2430; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2431; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2432; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)2433; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]2434;2435; GFX12-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split0:2436; GFX12-GISEL:       ; %bb.0:2437; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x02438; GFX12-GISEL-NEXT:    s_wait_expcnt 0x02439; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x02440; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x02441; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02442; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0xfff, v02443; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)2444; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2445; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2446; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x02447; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]2448;2449; GFX9-SDAG-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split0:2450; GFX9-SDAG:       ; %bb.0:2451; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2452; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1000, v02453; GFX9-SDAG-NEXT:    v_bfrev_b32_e32 v2, 12454; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, v2, v1, vcc2455; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:-12456; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)2457; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]2458;2459; GFX10-SDAG-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split0:2460; GFX10-SDAG:       ; %bb.0:2461; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2462; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02463; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0x80000000, v1, vcc_lo2464; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:-12465; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)2466; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]2467;2468; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split0:2469; GFX11-SDAG-TRUE16:       ; %bb.0:2470; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2471; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02472; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2473; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2474; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-12475; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)2476; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2477;2478; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split0:2479; GFX11-SDAG-FAKE16:       ; %bb.0:2480; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2481; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02482; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2483; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2484; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-12485; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)2486; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2487;2488; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split0:2489; GFX12-SDAG-TRUE16:       ; %bb.0:2490; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x02491; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x02492; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x02493; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x02494; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x02495; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v02496; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)2497; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2498; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-83845132499; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x02500; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2501;2502; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split0:2503; GFX12-SDAG-FAKE16:       ; %bb.0:2504; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x02505; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x02506; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x02507; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x02508; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x02509; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v02510; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)2511; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2512; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-83845132513; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x02514; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2515  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -92233720368547717132516  %load = load i8, ptr addrspace(1) %gep, align 42517  ret i8 %load2518}2519 2520; Fill 12-bit low-bits, negative high bits (1ull << 63) | 40962521define i8 @global_inst_valu_offset_64bit_12bit_neg_high_split1(ptr addrspace(1) %p) {2522; GFX9-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split1:2523; GFX9-GISEL:       ; %bb.0:2524; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2525; GFX9-GISEL-NEXT:    v_bfrev_b32_e32 v2, 12526; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1000, v02527; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, v1, v2, vcc2528; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off2529; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)2530; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]2531;2532; GFX10-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split1:2533; GFX10:       ; %bb.0:2534; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2535; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02536; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0x80000000, v1, vcc_lo2537; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off2538; GFX10-NEXT:    s_waitcnt vmcnt(0)2539; GFX10-NEXT:    s_setpc_b64 s[30:31]2540;2541; GFX11-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split1:2542; GFX11-GISEL:       ; %bb.0:2543; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2544; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02545; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)2546; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2547; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2548; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)2549; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]2550;2551; GFX12-GISEL-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split1:2552; GFX12-GISEL:       ; %bb.0:2553; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x02554; GFX12-GISEL-NEXT:    s_wait_expcnt 0x02555; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x02556; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x02557; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02558; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02559; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)2560; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2561; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2562; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x02563; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]2564;2565; GFX9-SDAG-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split1:2566; GFX9-SDAG:       ; %bb.0:2567; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2568; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1000, v02569; GFX9-SDAG-NEXT:    v_bfrev_b32_e32 v2, 12570; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, v2, v1, vcc2571; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off2572; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)2573; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]2574;2575; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split1:2576; GFX11-SDAG-TRUE16:       ; %bb.0:2577; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2578; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02579; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2580; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2581; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off2582; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)2583; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2584;2585; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split1:2586; GFX11-SDAG-FAKE16:       ; %bb.0:2587; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2588; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1000, v02589; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2590; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2591; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off2592; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)2593; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2594;2595; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split1:2596; GFX12-SDAG-TRUE16:       ; %bb.0:2597; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x02598; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x02599; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x02600; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x02601; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x02602; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v02603; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)2604; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2605; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-83845122606; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x02607; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2608;2609; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_12bit_neg_high_split1:2610; GFX12-SDAG-FAKE16:       ; %bb.0:2611; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x02612; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x02613; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x02614; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x02615; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x02616; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v02617; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)2618; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2619; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-83845122620; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x02621; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2622  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -92233720368547717122623  %load = load i8, ptr addrspace(1) %gep, align 42624  ret i8 %load2625}2626 2627; Fill 13-bit low-bits, negative high bits (1ull << 63) | 81912628define i8 @global_inst_valu_offset_64bit_13bit_neg_high_split0(ptr addrspace(1) %p) {2629; GFX9-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split0:2630; GFX9-GISEL:       ; %bb.0:2631; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2632; GFX9-GISEL-NEXT:    v_bfrev_b32_e32 v2, 12633; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0x1fff, v02634; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, v1, v2, vcc2635; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off2636; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)2637; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]2638;2639; GFX10-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split0:2640; GFX10-GISEL:       ; %bb.0:2641; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2642; GFX10-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1fff, v02643; GFX10-GISEL-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0x80000000, v1, vcc_lo2644; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off2645; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)2646; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]2647;2648; GFX11-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split0:2649; GFX11-GISEL:       ; %bb.0:2650; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2651; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1fff, v02652; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)2653; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2654; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2655; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)2656; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]2657;2658; GFX12-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split0:2659; GFX12-GISEL:       ; %bb.0:2660; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x02661; GFX12-GISEL-NEXT:    s_wait_expcnt 0x02662; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x02663; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x02664; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02665; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x1fff, v02666; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)2667; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2668; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2669; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x02670; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]2671;2672; GFX9-SDAG-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split0:2673; GFX9-SDAG:       ; %bb.0:2674; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2675; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0x2000, v02676; GFX9-SDAG-NEXT:    v_bfrev_b32_e32 v2, 12677; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, v2, v1, vcc2678; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:-12679; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)2680; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]2681;2682; GFX10-SDAG-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split0:2683; GFX10-SDAG:       ; %bb.0:2684; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2685; GFX10-SDAG-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02686; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0x80000000, v1, vcc_lo2687; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:-12688; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)2689; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]2690;2691; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split0:2692; GFX11-SDAG-TRUE16:       ; %bb.0:2693; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2694; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02695; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2696; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2697; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-12698; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)2699; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2700;2701; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split0:2702; GFX11-SDAG-FAKE16:       ; %bb.0:2703; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2704; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02705; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2706; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2707; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-12708; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)2709; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2710;2711; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split0:2712; GFX12-SDAG-TRUE16:       ; %bb.0:2713; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x02714; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x02715; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x02716; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x02717; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x02718; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v02719; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)2720; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2721; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-83804172722; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x02723; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2724;2725; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split0:2726; GFX12-SDAG-FAKE16:       ; %bb.0:2727; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x02728; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x02729; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x02730; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x02731; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x02732; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v02733; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)2734; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2735; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-83804172736; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x02737; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2738  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -92233720368547676172739  %load = load i8, ptr addrspace(1) %gep, align 42740  ret i8 %load2741}2742 2743; Fill 13-bit low-bits, negative high bits (1ull << 63) | 81922744define i8 @global_inst_valu_offset_64bit_13bit_neg_high_split1(ptr addrspace(1) %p) {2745; GFX9-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split1:2746; GFX9-GISEL:       ; %bb.0:2747; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2748; GFX9-GISEL-NEXT:    v_bfrev_b32_e32 v2, 12749; GFX9-GISEL-NEXT:    v_add_co_u32_e32 v0, vcc, 0x2000, v02750; GFX9-GISEL-NEXT:    v_addc_co_u32_e32 v1, vcc, v1, v2, vcc2751; GFX9-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off2752; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0)2753; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]2754;2755; GFX10-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split1:2756; GFX10:       ; %bb.0:2757; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2758; GFX10-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02759; GFX10-NEXT:    v_add_co_ci_u32_e32 v1, vcc_lo, 0x80000000, v1, vcc_lo2760; GFX10-NEXT:    global_load_ubyte v0, v[0:1], off2761; GFX10-NEXT:    s_waitcnt vmcnt(0)2762; GFX10-NEXT:    s_setpc_b64 s[30:31]2763;2764; GFX11-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split1:2765; GFX11-GISEL:       ; %bb.0:2766; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2767; GFX11-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02768; GFX11-GISEL-NEXT:    s_delay_alu instid0(VALU_DEP_1)2769; GFX11-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2770; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2771; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)2772; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]2773;2774; GFX12-GISEL-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split1:2775; GFX12-GISEL:       ; %bb.0:2776; GFX12-GISEL-NEXT:    s_wait_loadcnt_dscnt 0x02777; GFX12-GISEL-NEXT:    s_wait_expcnt 0x02778; GFX12-GISEL-NEXT:    s_wait_samplecnt 0x02779; GFX12-GISEL-NEXT:    s_wait_bvhcnt 0x02780; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02781; GFX12-GISEL-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02782; GFX12-GISEL-NEXT:    s_wait_alu depctr_va_vcc(0)2783; GFX12-GISEL-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2784; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off2785; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x02786; GFX12-GISEL-NEXT:    s_setpc_b64 s[30:31]2787;2788; GFX9-SDAG-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split1:2789; GFX9-SDAG:       ; %bb.0:2790; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2791; GFX9-SDAG-NEXT:    v_add_co_u32_e32 v0, vcc, 0x2000, v02792; GFX9-SDAG-NEXT:    v_bfrev_b32_e32 v2, 12793; GFX9-SDAG-NEXT:    v_addc_co_u32_e32 v1, vcc, v2, v1, vcc2794; GFX9-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off2795; GFX9-SDAG-NEXT:    s_waitcnt vmcnt(0)2796; GFX9-SDAG-NEXT:    s_setpc_b64 s[30:31]2797;2798; GFX11-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split1:2799; GFX11-SDAG-TRUE16:       ; %bb.0:2800; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2801; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02802; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2803; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2804; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off2805; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)2806; GFX11-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2807;2808; GFX11-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split1:2809; GFX11-SDAG-FAKE16:       ; %bb.0:2810; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2811; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x2000, v02812; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2813; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2814; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off2815; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)2816; GFX11-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2817;2818; GFX12-SDAG-TRUE16-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split1:2819; GFX12-SDAG-TRUE16:       ; %bb.0:2820; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x02821; GFX12-SDAG-TRUE16-NEXT:    s_wait_expcnt 0x02822; GFX12-SDAG-TRUE16-NEXT:    s_wait_samplecnt 0x02823; GFX12-SDAG-TRUE16-NEXT:    s_wait_bvhcnt 0x02824; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x02825; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v02826; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)2827; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2828; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:-83804162829; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x02830; GFX12-SDAG-TRUE16-NEXT:    s_setpc_b64 s[30:31]2831;2832; GFX12-SDAG-FAKE16-LABEL: global_inst_valu_offset_64bit_13bit_neg_high_split1:2833; GFX12-SDAG-FAKE16:       ; %bb.0:2834; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x02835; GFX12-SDAG-FAKE16-NEXT:    s_wait_expcnt 0x02836; GFX12-SDAG-FAKE16-NEXT:    s_wait_samplecnt 0x02837; GFX12-SDAG-FAKE16-NEXT:    s_wait_bvhcnt 0x02838; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x02839; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, vcc_lo, 0x800000, v02840; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)2841; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 0x80000000, v1, vcc_lo2842; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:-83804162843; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x02844; GFX12-SDAG-FAKE16-NEXT:    s_setpc_b64 s[30:31]2845  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -92233720368547676162846  %load = load i8, ptr addrspace(1) %gep, align 42847  ret i8 %load2848}2849 2850define amdgpu_kernel void @global_inst_salu_offset_1(ptr addrspace(1) %p) {2851; GFX9-LABEL: global_inst_salu_offset_1:2852; GFX9:       ; %bb.0:2853; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242854; GFX9-NEXT:    v_mov_b32_e32 v0, 02855; GFX9-NEXT:    s_waitcnt lgkmcnt(0)2856; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:1 glc2857; GFX9-NEXT:    s_waitcnt vmcnt(0)2858; GFX9-NEXT:    global_store_byte v[0:1], v0, off2859; GFX9-NEXT:    s_endpgm2860;2861; GFX10-LABEL: global_inst_salu_offset_1:2862; GFX10:       ; %bb.0:2863; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242864; GFX10-NEXT:    v_mov_b32_e32 v0, 02865; GFX10-NEXT:    s_waitcnt lgkmcnt(0)2866; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:1 glc dlc2867; GFX10-NEXT:    s_waitcnt vmcnt(0)2868; GFX10-NEXT:    global_store_byte v[0:1], v0, off2869; GFX10-NEXT:    s_endpgm2870;2871; GFX11-GISEL-LABEL: global_inst_salu_offset_1:2872; GFX11-GISEL:       ; %bb.0:2873; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242874; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 02875; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)2876; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:1 glc dlc2877; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)2878; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off2879; GFX11-GISEL-NEXT:    s_endpgm2880;2881; GFX12-GISEL-LABEL: global_inst_salu_offset_1:2882; GFX12-GISEL:       ; %bb.0:2883; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242884; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 02885; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02886; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:1 scope:SCOPE_SYS2887; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x02888; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off2889; GFX12-GISEL-NEXT:    s_endpgm2890;2891; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_1:2892; GFX11-SDAG-TRUE16:       ; %bb.0:2893; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242894; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 02895; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)2896; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:1 glc dlc2897; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)2898; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off2899; GFX11-SDAG-TRUE16-NEXT:    s_endpgm2900;2901; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_1:2902; GFX11-SDAG-FAKE16:       ; %bb.0:2903; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242904; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 02905; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)2906; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:1 glc dlc2907; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)2908; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off2909; GFX11-SDAG-FAKE16-NEXT:    s_endpgm2910;2911; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_1:2912; GFX12-SDAG-TRUE16:       ; %bb.0:2913; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242914; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 02915; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x02916; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:1 scope:SCOPE_SYS2917; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x02918; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off2919; GFX12-SDAG-TRUE16-NEXT:    s_endpgm2920;2921; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_1:2922; GFX12-SDAG-FAKE16:       ; %bb.0:2923; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242924; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 02925; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x02926; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:1 scope:SCOPE_SYS2927; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x02928; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off2929; GFX12-SDAG-FAKE16-NEXT:    s_endpgm2930  %gep = getelementptr i8, ptr addrspace(1) %p, i64 12931  %load = load volatile i8, ptr addrspace(1) %gep, align 12932  store i8 %load, ptr addrspace(1) poison2933  ret void2934}2935 2936define amdgpu_kernel void @global_inst_salu_offset_11bit_max(ptr addrspace(1) %p) {2937; GFX9-LABEL: global_inst_salu_offset_11bit_max:2938; GFX9:       ; %bb.0:2939; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242940; GFX9-NEXT:    v_mov_b32_e32 v0, 02941; GFX9-NEXT:    s_waitcnt lgkmcnt(0)2942; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:2047 glc2943; GFX9-NEXT:    s_waitcnt vmcnt(0)2944; GFX9-NEXT:    global_store_byte v[0:1], v0, off2945; GFX9-NEXT:    s_endpgm2946;2947; GFX10-LABEL: global_inst_salu_offset_11bit_max:2948; GFX10:       ; %bb.0:2949; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242950; GFX10-NEXT:    v_mov_b32_e32 v0, 02951; GFX10-NEXT:    s_waitcnt lgkmcnt(0)2952; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:2047 glc dlc2953; GFX10-NEXT:    s_waitcnt vmcnt(0)2954; GFX10-NEXT:    global_store_byte v[0:1], v0, off2955; GFX10-NEXT:    s_endpgm2956;2957; GFX11-GISEL-LABEL: global_inst_salu_offset_11bit_max:2958; GFX11-GISEL:       ; %bb.0:2959; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242960; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 02961; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)2962; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:2047 glc dlc2963; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)2964; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off2965; GFX11-GISEL-NEXT:    s_endpgm2966;2967; GFX12-GISEL-LABEL: global_inst_salu_offset_11bit_max:2968; GFX12-GISEL:       ; %bb.0:2969; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242970; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 02971; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x02972; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:2047 scope:SCOPE_SYS2973; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x02974; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off2975; GFX12-GISEL-NEXT:    s_endpgm2976;2977; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_11bit_max:2978; GFX11-SDAG-TRUE16:       ; %bb.0:2979; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242980; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 02981; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)2982; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:2047 glc dlc2983; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)2984; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off2985; GFX11-SDAG-TRUE16-NEXT:    s_endpgm2986;2987; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_11bit_max:2988; GFX11-SDAG-FAKE16:       ; %bb.0:2989; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242990; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 02991; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)2992; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:2047 glc dlc2993; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)2994; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off2995; GFX11-SDAG-FAKE16-NEXT:    s_endpgm2996;2997; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_11bit_max:2998; GFX12-SDAG-TRUE16:       ; %bb.0:2999; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243000; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03001; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x03002; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:2047 scope:SCOPE_SYS3003; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x03004; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3005; GFX12-SDAG-TRUE16-NEXT:    s_endpgm3006;3007; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_11bit_max:3008; GFX12-SDAG-FAKE16:       ; %bb.0:3009; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243010; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03011; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x03012; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:2047 scope:SCOPE_SYS3013; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x03014; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3015; GFX12-SDAG-FAKE16-NEXT:    s_endpgm3016  %gep = getelementptr i8, ptr addrspace(1) %p, i64 20473017  %load = load volatile i8, ptr addrspace(1) %gep, align 13018  store i8 %load, ptr addrspace(1) poison3019  ret void3020}3021 3022define amdgpu_kernel void @global_inst_salu_offset_12bit_max(ptr addrspace(1) %p) {3023; GFX9-LABEL: global_inst_salu_offset_12bit_max:3024; GFX9:       ; %bb.0:3025; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243026; GFX9-NEXT:    v_mov_b32_e32 v0, 03027; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3028; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:4095 glc3029; GFX9-NEXT:    s_waitcnt vmcnt(0)3030; GFX9-NEXT:    global_store_byte v[0:1], v0, off3031; GFX9-NEXT:    s_endpgm3032;3033; GFX10-LABEL: global_inst_salu_offset_12bit_max:3034; GFX10:       ; %bb.0:3035; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243036; GFX10-NEXT:    v_mov_b32_e32 v0, 0x8003037; GFX10-NEXT:    s_waitcnt lgkmcnt(0)3038; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:2047 glc dlc3039; GFX10-NEXT:    s_waitcnt vmcnt(0)3040; GFX10-NEXT:    global_store_byte v[0:1], v0, off3041; GFX10-NEXT:    s_endpgm3042;3043; GFX11-GISEL-LABEL: global_inst_salu_offset_12bit_max:3044; GFX11-GISEL:       ; %bb.0:3045; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243046; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 03047; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3048; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 glc dlc3049; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)3050; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3051; GFX11-GISEL-NEXT:    s_endpgm3052;3053; GFX12-GISEL-LABEL: global_inst_salu_offset_12bit_max:3054; GFX12-GISEL:       ; %bb.0:3055; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243056; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 03057; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x03058; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 scope:SCOPE_SYS3059; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x03060; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3061; GFX12-GISEL-NEXT:    s_endpgm3062;3063; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_12bit_max:3064; GFX11-SDAG-TRUE16:       ; %bb.0:3065; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243066; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03067; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)3068; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:4095 glc dlc3069; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)3070; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3071; GFX11-SDAG-TRUE16-NEXT:    s_endpgm3072;3073; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_12bit_max:3074; GFX11-SDAG-FAKE16:       ; %bb.0:3075; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243076; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03077; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)3078; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 glc dlc3079; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)3080; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3081; GFX11-SDAG-FAKE16-NEXT:    s_endpgm3082;3083; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_12bit_max:3084; GFX12-SDAG-TRUE16:       ; %bb.0:3085; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243086; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03087; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x03088; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:4095 scope:SCOPE_SYS3089; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x03090; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3091; GFX12-SDAG-TRUE16-NEXT:    s_endpgm3092;3093; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_12bit_max:3094; GFX12-SDAG-FAKE16:       ; %bb.0:3095; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243096; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03097; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x03098; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 scope:SCOPE_SYS3099; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x03100; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3101; GFX12-SDAG-FAKE16-NEXT:    s_endpgm3102  %gep = getelementptr i8, ptr addrspace(1) %p, i64 40953103  %load = load volatile i8, ptr addrspace(1) %gep, align 13104  store i8 %load, ptr addrspace(1) poison3105  ret void3106}3107 3108define amdgpu_kernel void @global_inst_salu_offset_13bit_max(ptr addrspace(1) %p) {3109; GFX9-LABEL: global_inst_salu_offset_13bit_max:3110; GFX9:       ; %bb.0:3111; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243112; GFX9-NEXT:    v_mov_b32_e32 v0, 0x10003113; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3114; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:4095 glc3115; GFX9-NEXT:    s_waitcnt vmcnt(0)3116; GFX9-NEXT:    global_store_byte v[0:1], v0, off3117; GFX9-NEXT:    s_endpgm3118;3119; GFX10-LABEL: global_inst_salu_offset_13bit_max:3120; GFX10:       ; %bb.0:3121; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243122; GFX10-NEXT:    v_mov_b32_e32 v0, 0x18003123; GFX10-NEXT:    s_waitcnt lgkmcnt(0)3124; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:2047 glc dlc3125; GFX10-NEXT:    s_waitcnt vmcnt(0)3126; GFX10-NEXT:    global_store_byte v[0:1], v0, off3127; GFX10-NEXT:    s_endpgm3128;3129; GFX11-GISEL-LABEL: global_inst_salu_offset_13bit_max:3130; GFX11-GISEL:       ; %bb.0:3131; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243132; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 0x10003133; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3134; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 glc dlc3135; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)3136; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3137; GFX11-GISEL-NEXT:    s_endpgm3138;3139; GFX12-GISEL-LABEL: global_inst_salu_offset_13bit_max:3140; GFX12-GISEL:       ; %bb.0:3141; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243142; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 03143; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x03144; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:8191 scope:SCOPE_SYS3145; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x03146; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3147; GFX12-GISEL-NEXT:    s_endpgm3148;3149; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_13bit_max:3150; GFX11-SDAG-TRUE16:       ; %bb.0:3151; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243152; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 0x10003153; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)3154; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:4095 glc dlc3155; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)3156; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3157; GFX11-SDAG-TRUE16-NEXT:    s_endpgm3158;3159; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_13bit_max:3160; GFX11-SDAG-FAKE16:       ; %bb.0:3161; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243162; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 0x10003163; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)3164; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 glc dlc3165; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)3166; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3167; GFX11-SDAG-FAKE16-NEXT:    s_endpgm3168;3169; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_13bit_max:3170; GFX12-SDAG-TRUE16:       ; %bb.0:3171; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243172; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03173; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x03174; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:8191 scope:SCOPE_SYS3175; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x03176; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3177; GFX12-SDAG-TRUE16-NEXT:    s_endpgm3178;3179; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_13bit_max:3180; GFX12-SDAG-FAKE16:       ; %bb.0:3181; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243182; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03183; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x03184; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:8191 scope:SCOPE_SYS3185; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x03186; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3187; GFX12-SDAG-FAKE16-NEXT:    s_endpgm3188  %gep = getelementptr i8, ptr addrspace(1) %p, i64 81913189  %load = load volatile i8, ptr addrspace(1) %gep, align 13190  store i8 %load, ptr addrspace(1) poison3191  ret void3192}3193 3194define amdgpu_kernel void @global_inst_salu_offset_neg_11bit_max(ptr addrspace(1) %p) {3195; GFX9-LABEL: global_inst_salu_offset_neg_11bit_max:3196; GFX9:       ; %bb.0:3197; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243198; GFX9-NEXT:    v_mov_b32_e32 v0, 03199; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3200; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:-2048 glc3201; GFX9-NEXT:    s_waitcnt vmcnt(0)3202; GFX9-NEXT:    global_store_byte v[0:1], v0, off3203; GFX9-NEXT:    s_endpgm3204;3205; GFX10-LABEL: global_inst_salu_offset_neg_11bit_max:3206; GFX10:       ; %bb.0:3207; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243208; GFX10-NEXT:    v_mov_b32_e32 v0, 03209; GFX10-NEXT:    s_waitcnt lgkmcnt(0)3210; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:-2048 glc dlc3211; GFX10-NEXT:    s_waitcnt vmcnt(0)3212; GFX10-NEXT:    global_store_byte v[0:1], v0, off3213; GFX10-NEXT:    s_endpgm3214;3215; GFX11-GISEL-LABEL: global_inst_salu_offset_neg_11bit_max:3216; GFX11-GISEL:       ; %bb.0:3217; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243218; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 03219; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3220; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-2048 glc dlc3221; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)3222; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3223; GFX11-GISEL-NEXT:    s_endpgm3224;3225; GFX12-GISEL-LABEL: global_inst_salu_offset_neg_11bit_max:3226; GFX12-GISEL:       ; %bb.0:3227; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243228; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 03229; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x03230; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-2048 scope:SCOPE_SYS3231; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x03232; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3233; GFX12-GISEL-NEXT:    s_endpgm3234;3235; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_neg_11bit_max:3236; GFX11-SDAG-TRUE16:       ; %bb.0:3237; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243238; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03239; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)3240; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:-2048 glc dlc3241; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)3242; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3243; GFX11-SDAG-TRUE16-NEXT:    s_endpgm3244;3245; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_neg_11bit_max:3246; GFX11-SDAG-FAKE16:       ; %bb.0:3247; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243248; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03249; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)3250; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-2048 glc dlc3251; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)3252; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3253; GFX11-SDAG-FAKE16-NEXT:    s_endpgm3254;3255; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_neg_11bit_max:3256; GFX12-SDAG-TRUE16:       ; %bb.0:3257; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243258; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03259; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x03260; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:-2048 scope:SCOPE_SYS3261; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x03262; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3263; GFX12-SDAG-TRUE16-NEXT:    s_endpgm3264;3265; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_neg_11bit_max:3266; GFX12-SDAG-FAKE16:       ; %bb.0:3267; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243268; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03269; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x03270; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-2048 scope:SCOPE_SYS3271; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x03272; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3273; GFX12-SDAG-FAKE16-NEXT:    s_endpgm3274  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -20483275  %load = load volatile i8, ptr addrspace(1) %gep, align 13276  store i8 %load, ptr addrspace(1) poison3277  ret void3278}3279 3280define amdgpu_kernel void @global_inst_salu_offset_neg_12bit_max(ptr addrspace(1) %p) {3281; GFX9-LABEL: global_inst_salu_offset_neg_12bit_max:3282; GFX9:       ; %bb.0:3283; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243284; GFX9-NEXT:    v_mov_b32_e32 v0, 03285; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3286; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:-4096 glc3287; GFX9-NEXT:    s_waitcnt vmcnt(0)3288; GFX9-NEXT:    global_store_byte v[0:1], v0, off3289; GFX9-NEXT:    s_endpgm3290;3291; GFX10-GISEL-LABEL: global_inst_salu_offset_neg_12bit_max:3292; GFX10-GISEL:       ; %bb.0:3293; GFX10-GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243294; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3295; GFX10-GISEL-NEXT:    s_add_u32 s0, s0, 0xfffff0003296; GFX10-GISEL-NEXT:    s_addc_u32 s1, s1, -13297; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s03298; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s13299; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc3300; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)3301; GFX10-GISEL-NEXT:    global_store_byte v[0:1], v0, off3302; GFX10-GISEL-NEXT:    s_endpgm3303;3304; GFX11-GISEL-LABEL: global_inst_salu_offset_neg_12bit_max:3305; GFX11-GISEL:       ; %bb.0:3306; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243307; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 03308; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3309; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-4096 glc dlc3310; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)3311; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3312; GFX11-GISEL-NEXT:    s_endpgm3313;3314; GFX12-GISEL-LABEL: global_inst_salu_offset_neg_12bit_max:3315; GFX12-GISEL:       ; %bb.0:3316; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243317; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 03318; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x03319; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-4096 scope:SCOPE_SYS3320; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x03321; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3322; GFX12-GISEL-NEXT:    s_endpgm3323;3324; GFX10-SDAG-LABEL: global_inst_salu_offset_neg_12bit_max:3325; GFX10-SDAG:       ; %bb.0:3326; GFX10-SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243327; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)3328; GFX10-SDAG-NEXT:    v_add_co_u32 v0, s0, 0xfffff000, s03329; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e64 v1, s0, -1, s1, s03330; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc3331; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)3332; GFX10-SDAG-NEXT:    global_store_byte v[0:1], v0, off3333; GFX10-SDAG-NEXT:    s_endpgm3334;3335; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_neg_12bit_max:3336; GFX11-SDAG-TRUE16:       ; %bb.0:3337; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243338; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03339; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)3340; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:-4096 glc dlc3341; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)3342; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3343; GFX11-SDAG-TRUE16-NEXT:    s_endpgm3344;3345; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_neg_12bit_max:3346; GFX11-SDAG-FAKE16:       ; %bb.0:3347; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243348; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03349; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)3350; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-4096 glc dlc3351; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)3352; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3353; GFX11-SDAG-FAKE16-NEXT:    s_endpgm3354;3355; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_neg_12bit_max:3356; GFX12-SDAG-TRUE16:       ; %bb.0:3357; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243358; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03359; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x03360; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:-4096 scope:SCOPE_SYS3361; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x03362; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3363; GFX12-SDAG-TRUE16-NEXT:    s_endpgm3364;3365; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_neg_12bit_max:3366; GFX12-SDAG-FAKE16:       ; %bb.0:3367; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243368; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03369; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x03370; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-4096 scope:SCOPE_SYS3371; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x03372; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3373; GFX12-SDAG-FAKE16-NEXT:    s_endpgm3374  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -40963375  %load = load volatile i8, ptr addrspace(1) %gep, align 13376  store i8 %load, ptr addrspace(1) poison3377  ret void3378}3379 3380define amdgpu_kernel void @global_inst_salu_offset_neg_13bit_max(ptr addrspace(1) %p) {3381; GFX9-LABEL: global_inst_salu_offset_neg_13bit_max:3382; GFX9:       ; %bb.0:3383; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243384; GFX9-NEXT:    v_mov_b32_e32 v0, 03385; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3386; GFX9-NEXT:    s_add_u32 s0, s0, 0xffffe0003387; GFX9-NEXT:    s_addc_u32 s1, s1, -13388; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc3389; GFX9-NEXT:    s_waitcnt vmcnt(0)3390; GFX9-NEXT:    global_store_byte v[0:1], v0, off3391; GFX9-NEXT:    s_endpgm3392;3393; GFX10-GISEL-LABEL: global_inst_salu_offset_neg_13bit_max:3394; GFX10-GISEL:       ; %bb.0:3395; GFX10-GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243396; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3397; GFX10-GISEL-NEXT:    s_add_u32 s0, s0, 0xffffe0003398; GFX10-GISEL-NEXT:    s_addc_u32 s1, s1, -13399; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s03400; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s13401; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc3402; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)3403; GFX10-GISEL-NEXT:    global_store_byte v[0:1], v0, off3404; GFX10-GISEL-NEXT:    s_endpgm3405;3406; GFX11-GISEL-LABEL: global_inst_salu_offset_neg_13bit_max:3407; GFX11-GISEL:       ; %bb.0:3408; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243409; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3410; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0xffffe0003411; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, -13412; GFX11-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3413; GFX11-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s13414; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off glc dlc3415; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)3416; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3417; GFX11-GISEL-NEXT:    s_endpgm3418;3419; GFX12-GISEL-LABEL: global_inst_salu_offset_neg_13bit_max:3420; GFX12-GISEL:       ; %bb.0:3421; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243422; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 03423; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x03424; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-8192 scope:SCOPE_SYS3425; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x03426; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3427; GFX12-GISEL-NEXT:    s_endpgm3428;3429; GFX10-SDAG-LABEL: global_inst_salu_offset_neg_13bit_max:3430; GFX10-SDAG:       ; %bb.0:3431; GFX10-SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243432; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)3433; GFX10-SDAG-NEXT:    v_add_co_u32 v0, s0, 0xffffe000, s03434; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e64 v1, s0, -1, s1, s03435; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc3436; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)3437; GFX10-SDAG-NEXT:    global_store_byte v[0:1], v0, off3438; GFX10-SDAG-NEXT:    s_endpgm3439;3440; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_neg_13bit_max:3441; GFX11-SDAG-TRUE16:       ; %bb.0:3442; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243443; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)3444; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0xffffe000, s03445; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)3446; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, s1, s03447; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off glc dlc3448; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)3449; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3450; GFX11-SDAG-TRUE16-NEXT:    s_endpgm3451;3452; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_neg_13bit_max:3453; GFX11-SDAG-FAKE16:       ; %bb.0:3454; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243455; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)3456; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0xffffe000, s03457; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)3458; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, s1, s03459; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off glc dlc3460; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)3461; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3462; GFX11-SDAG-FAKE16-NEXT:    s_endpgm3463;3464; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_neg_13bit_max:3465; GFX12-SDAG-TRUE16:       ; %bb.0:3466; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243467; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03468; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x03469; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:-8192 scope:SCOPE_SYS3470; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x03471; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3472; GFX12-SDAG-TRUE16-NEXT:    s_endpgm3473;3474; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_neg_13bit_max:3475; GFX12-SDAG-FAKE16:       ; %bb.0:3476; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243477; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03478; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x03479; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-8192 scope:SCOPE_SYS3480; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x03481; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3482; GFX12-SDAG-FAKE16-NEXT:    s_endpgm3483  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -81923484  %load = load volatile i8, ptr addrspace(1) %gep, align 13485  store i8 %load, ptr addrspace(1) poison3486  ret void3487}3488 3489define amdgpu_kernel void @global_inst_salu_offset_2x_11bit_max(ptr addrspace(1) %p) {3490; GFX9-LABEL: global_inst_salu_offset_2x_11bit_max:3491; GFX9:       ; %bb.0:3492; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243493; GFX9-NEXT:    v_mov_b32_e32 v0, 03494; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3495; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:4095 glc3496; GFX9-NEXT:    s_waitcnt vmcnt(0)3497; GFX9-NEXT:    global_store_byte v[0:1], v0, off3498; GFX9-NEXT:    s_endpgm3499;3500; GFX10-LABEL: global_inst_salu_offset_2x_11bit_max:3501; GFX10:       ; %bb.0:3502; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243503; GFX10-NEXT:    v_mov_b32_e32 v0, 0x8003504; GFX10-NEXT:    s_waitcnt lgkmcnt(0)3505; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:2047 glc dlc3506; GFX10-NEXT:    s_waitcnt vmcnt(0)3507; GFX10-NEXT:    global_store_byte v[0:1], v0, off3508; GFX10-NEXT:    s_endpgm3509;3510; GFX11-GISEL-LABEL: global_inst_salu_offset_2x_11bit_max:3511; GFX11-GISEL:       ; %bb.0:3512; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243513; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 03514; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3515; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 glc dlc3516; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)3517; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3518; GFX11-GISEL-NEXT:    s_endpgm3519;3520; GFX12-GISEL-LABEL: global_inst_salu_offset_2x_11bit_max:3521; GFX12-GISEL:       ; %bb.0:3522; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243523; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 03524; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x03525; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 scope:SCOPE_SYS3526; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x03527; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3528; GFX12-GISEL-NEXT:    s_endpgm3529;3530; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_2x_11bit_max:3531; GFX11-SDAG-TRUE16:       ; %bb.0:3532; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243533; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03534; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)3535; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:4095 glc dlc3536; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)3537; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3538; GFX11-SDAG-TRUE16-NEXT:    s_endpgm3539;3540; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_2x_11bit_max:3541; GFX11-SDAG-FAKE16:       ; %bb.0:3542; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243543; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03544; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)3545; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 glc dlc3546; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)3547; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3548; GFX11-SDAG-FAKE16-NEXT:    s_endpgm3549;3550; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_2x_11bit_max:3551; GFX12-SDAG-TRUE16:       ; %bb.0:3552; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243553; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03554; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x03555; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:4095 scope:SCOPE_SYS3556; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x03557; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3558; GFX12-SDAG-TRUE16-NEXT:    s_endpgm3559;3560; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_2x_11bit_max:3561; GFX12-SDAG-FAKE16:       ; %bb.0:3562; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243563; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03564; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x03565; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 scope:SCOPE_SYS3566; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x03567; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3568; GFX12-SDAG-FAKE16-NEXT:    s_endpgm3569  %gep = getelementptr i8, ptr addrspace(1) %p, i64 40953570  %load = load volatile i8, ptr addrspace(1) %gep, align 13571  store i8 %load, ptr addrspace(1) poison3572  ret void3573}3574 3575define amdgpu_kernel void @global_inst_salu_offset_2x_12bit_max(ptr addrspace(1) %p) {3576; GFX9-LABEL: global_inst_salu_offset_2x_12bit_max:3577; GFX9:       ; %bb.0:3578; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243579; GFX9-NEXT:    v_mov_b32_e32 v0, 0x10003580; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3581; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:4095 glc3582; GFX9-NEXT:    s_waitcnt vmcnt(0)3583; GFX9-NEXT:    global_store_byte v[0:1], v0, off3584; GFX9-NEXT:    s_endpgm3585;3586; GFX10-LABEL: global_inst_salu_offset_2x_12bit_max:3587; GFX10:       ; %bb.0:3588; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243589; GFX10-NEXT:    v_mov_b32_e32 v0, 0x18003590; GFX10-NEXT:    s_waitcnt lgkmcnt(0)3591; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:2047 glc dlc3592; GFX10-NEXT:    s_waitcnt vmcnt(0)3593; GFX10-NEXT:    global_store_byte v[0:1], v0, off3594; GFX10-NEXT:    s_endpgm3595;3596; GFX11-GISEL-LABEL: global_inst_salu_offset_2x_12bit_max:3597; GFX11-GISEL:       ; %bb.0:3598; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243599; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 0x10003600; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3601; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 glc dlc3602; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)3603; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3604; GFX11-GISEL-NEXT:    s_endpgm3605;3606; GFX12-GISEL-LABEL: global_inst_salu_offset_2x_12bit_max:3607; GFX12-GISEL:       ; %bb.0:3608; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243609; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 03610; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x03611; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:8191 scope:SCOPE_SYS3612; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x03613; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3614; GFX12-GISEL-NEXT:    s_endpgm3615;3616; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_2x_12bit_max:3617; GFX11-SDAG-TRUE16:       ; %bb.0:3618; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243619; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 0x10003620; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)3621; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:4095 glc dlc3622; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)3623; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3624; GFX11-SDAG-TRUE16-NEXT:    s_endpgm3625;3626; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_2x_12bit_max:3627; GFX11-SDAG-FAKE16:       ; %bb.0:3628; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243629; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 0x10003630; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)3631; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 glc dlc3632; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)3633; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3634; GFX11-SDAG-FAKE16-NEXT:    s_endpgm3635;3636; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_2x_12bit_max:3637; GFX12-SDAG-TRUE16:       ; %bb.0:3638; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243639; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03640; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x03641; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:8191 scope:SCOPE_SYS3642; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x03643; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3644; GFX12-SDAG-TRUE16-NEXT:    s_endpgm3645;3646; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_2x_12bit_max:3647; GFX12-SDAG-FAKE16:       ; %bb.0:3648; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243649; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03650; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x03651; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:8191 scope:SCOPE_SYS3652; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x03653; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3654; GFX12-SDAG-FAKE16-NEXT:    s_endpgm3655  %gep = getelementptr i8, ptr addrspace(1) %p, i64 81913656  %load = load volatile i8, ptr addrspace(1) %gep, align 13657  store i8 %load, ptr addrspace(1) poison3658  ret void3659}3660 3661define amdgpu_kernel void @global_inst_salu_offset_2x_13bit_max(ptr addrspace(1) %p) {3662; GFX9-LABEL: global_inst_salu_offset_2x_13bit_max:3663; GFX9:       ; %bb.0:3664; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243665; GFX9-NEXT:    v_mov_b32_e32 v0, 0x30003666; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3667; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:4095 glc3668; GFX9-NEXT:    s_waitcnt vmcnt(0)3669; GFX9-NEXT:    global_store_byte v[0:1], v0, off3670; GFX9-NEXT:    s_endpgm3671;3672; GFX10-LABEL: global_inst_salu_offset_2x_13bit_max:3673; GFX10:       ; %bb.0:3674; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243675; GFX10-NEXT:    v_mov_b32_e32 v0, 0x38003676; GFX10-NEXT:    s_waitcnt lgkmcnt(0)3677; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:2047 glc dlc3678; GFX10-NEXT:    s_waitcnt vmcnt(0)3679; GFX10-NEXT:    global_store_byte v[0:1], v0, off3680; GFX10-NEXT:    s_endpgm3681;3682; GFX11-GISEL-LABEL: global_inst_salu_offset_2x_13bit_max:3683; GFX11-GISEL:       ; %bb.0:3684; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243685; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 0x30003686; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3687; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 glc dlc3688; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)3689; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3690; GFX11-GISEL-NEXT:    s_endpgm3691;3692; GFX12-GISEL-LABEL: global_inst_salu_offset_2x_13bit_max:3693; GFX12-GISEL:       ; %bb.0:3694; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243695; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 03696; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x03697; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:16383 scope:SCOPE_SYS3698; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x03699; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3700; GFX12-GISEL-NEXT:    s_endpgm3701;3702; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_2x_13bit_max:3703; GFX11-SDAG-TRUE16:       ; %bb.0:3704; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243705; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 0x30003706; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)3707; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:4095 glc dlc3708; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)3709; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3710; GFX11-SDAG-TRUE16-NEXT:    s_endpgm3711;3712; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_2x_13bit_max:3713; GFX11-SDAG-FAKE16:       ; %bb.0:3714; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243715; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 0x30003716; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)3717; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:4095 glc dlc3718; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)3719; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3720; GFX11-SDAG-FAKE16-NEXT:    s_endpgm3721;3722; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_2x_13bit_max:3723; GFX12-SDAG-TRUE16:       ; %bb.0:3724; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243725; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03726; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x03727; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:16383 scope:SCOPE_SYS3728; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x03729; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3730; GFX12-SDAG-TRUE16-NEXT:    s_endpgm3731;3732; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_2x_13bit_max:3733; GFX12-SDAG-FAKE16:       ; %bb.0:3734; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243735; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03736; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x03737; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:16383 scope:SCOPE_SYS3738; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x03739; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3740; GFX12-SDAG-FAKE16-NEXT:    s_endpgm3741  %gep = getelementptr i8, ptr addrspace(1) %p, i64 163833742  %load = load volatile i8, ptr addrspace(1) %gep, align 13743  store i8 %load, ptr addrspace(1) poison3744  ret void3745}3746 3747define amdgpu_kernel void @global_inst_salu_offset_2x_neg_11bit_max(ptr addrspace(1) %p) {3748; GFX9-LABEL: global_inst_salu_offset_2x_neg_11bit_max:3749; GFX9:       ; %bb.0:3750; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243751; GFX9-NEXT:    v_mov_b32_e32 v0, 03752; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3753; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] offset:-4096 glc3754; GFX9-NEXT:    s_waitcnt vmcnt(0)3755; GFX9-NEXT:    global_store_byte v[0:1], v0, off3756; GFX9-NEXT:    s_endpgm3757;3758; GFX10-GISEL-LABEL: global_inst_salu_offset_2x_neg_11bit_max:3759; GFX10-GISEL:       ; %bb.0:3760; GFX10-GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243761; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3762; GFX10-GISEL-NEXT:    s_add_u32 s0, s0, 0xfffff0003763; GFX10-GISEL-NEXT:    s_addc_u32 s1, s1, -13764; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s03765; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s13766; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc3767; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)3768; GFX10-GISEL-NEXT:    global_store_byte v[0:1], v0, off3769; GFX10-GISEL-NEXT:    s_endpgm3770;3771; GFX11-GISEL-LABEL: global_inst_salu_offset_2x_neg_11bit_max:3772; GFX11-GISEL:       ; %bb.0:3773; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243774; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 03775; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3776; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-4096 glc dlc3777; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)3778; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3779; GFX11-GISEL-NEXT:    s_endpgm3780;3781; GFX12-GISEL-LABEL: global_inst_salu_offset_2x_neg_11bit_max:3782; GFX12-GISEL:       ; %bb.0:3783; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243784; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 03785; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x03786; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-4096 scope:SCOPE_SYS3787; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x03788; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3789; GFX12-GISEL-NEXT:    s_endpgm3790;3791; GFX10-SDAG-LABEL: global_inst_salu_offset_2x_neg_11bit_max:3792; GFX10-SDAG:       ; %bb.0:3793; GFX10-SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243794; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)3795; GFX10-SDAG-NEXT:    v_add_co_u32 v0, s0, 0xfffff000, s03796; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e64 v1, s0, -1, s1, s03797; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc3798; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)3799; GFX10-SDAG-NEXT:    global_store_byte v[0:1], v0, off3800; GFX10-SDAG-NEXT:    s_endpgm3801;3802; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_2x_neg_11bit_max:3803; GFX11-SDAG-TRUE16:       ; %bb.0:3804; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243805; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03806; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)3807; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:-4096 glc dlc3808; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)3809; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3810; GFX11-SDAG-TRUE16-NEXT:    s_endpgm3811;3812; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_2x_neg_11bit_max:3813; GFX11-SDAG-FAKE16:       ; %bb.0:3814; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243815; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03816; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)3817; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-4096 glc dlc3818; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)3819; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3820; GFX11-SDAG-FAKE16-NEXT:    s_endpgm3821;3822; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_2x_neg_11bit_max:3823; GFX12-SDAG-TRUE16:       ; %bb.0:3824; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243825; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03826; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x03827; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:-4096 scope:SCOPE_SYS3828; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x03829; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3830; GFX12-SDAG-TRUE16-NEXT:    s_endpgm3831;3832; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_2x_neg_11bit_max:3833; GFX12-SDAG-FAKE16:       ; %bb.0:3834; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243835; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03836; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x03837; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-4096 scope:SCOPE_SYS3838; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x03839; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3840; GFX12-SDAG-FAKE16-NEXT:    s_endpgm3841  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -40963842  %load = load volatile i8, ptr addrspace(1) %gep, align 13843  store i8 %load, ptr addrspace(1) poison3844  ret void3845}3846 3847define amdgpu_kernel void @global_inst_salu_offset_2x_neg_12bit_max(ptr addrspace(1) %p) {3848; GFX9-LABEL: global_inst_salu_offset_2x_neg_12bit_max:3849; GFX9:       ; %bb.0:3850; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243851; GFX9-NEXT:    v_mov_b32_e32 v0, 03852; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3853; GFX9-NEXT:    s_add_u32 s0, s0, 0xffffe0003854; GFX9-NEXT:    s_addc_u32 s1, s1, -13855; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc3856; GFX9-NEXT:    s_waitcnt vmcnt(0)3857; GFX9-NEXT:    global_store_byte v[0:1], v0, off3858; GFX9-NEXT:    s_endpgm3859;3860; GFX10-GISEL-LABEL: global_inst_salu_offset_2x_neg_12bit_max:3861; GFX10-GISEL:       ; %bb.0:3862; GFX10-GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243863; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3864; GFX10-GISEL-NEXT:    s_add_u32 s0, s0, 0xffffe0003865; GFX10-GISEL-NEXT:    s_addc_u32 s1, s1, -13866; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s03867; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s13868; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc3869; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)3870; GFX10-GISEL-NEXT:    global_store_byte v[0:1], v0, off3871; GFX10-GISEL-NEXT:    s_endpgm3872;3873; GFX11-GISEL-LABEL: global_inst_salu_offset_2x_neg_12bit_max:3874; GFX11-GISEL:       ; %bb.0:3875; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243876; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3877; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0xffffe0003878; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, -13879; GFX11-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3880; GFX11-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s13881; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off glc dlc3882; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)3883; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3884; GFX11-GISEL-NEXT:    s_endpgm3885;3886; GFX12-GISEL-LABEL: global_inst_salu_offset_2x_neg_12bit_max:3887; GFX12-GISEL:       ; %bb.0:3888; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243889; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 03890; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x03891; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-8192 scope:SCOPE_SYS3892; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x03893; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3894; GFX12-GISEL-NEXT:    s_endpgm3895;3896; GFX10-SDAG-LABEL: global_inst_salu_offset_2x_neg_12bit_max:3897; GFX10-SDAG:       ; %bb.0:3898; GFX10-SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243899; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)3900; GFX10-SDAG-NEXT:    v_add_co_u32 v0, s0, 0xffffe000, s03901; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e64 v1, s0, -1, s1, s03902; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc3903; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)3904; GFX10-SDAG-NEXT:    global_store_byte v[0:1], v0, off3905; GFX10-SDAG-NEXT:    s_endpgm3906;3907; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_2x_neg_12bit_max:3908; GFX11-SDAG-TRUE16:       ; %bb.0:3909; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243910; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)3911; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0xffffe000, s03912; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)3913; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, s1, s03914; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off glc dlc3915; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)3916; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3917; GFX11-SDAG-TRUE16-NEXT:    s_endpgm3918;3919; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_2x_neg_12bit_max:3920; GFX11-SDAG-FAKE16:       ; %bb.0:3921; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243922; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)3923; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0xffffe000, s03924; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)3925; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, s1, s03926; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off glc dlc3927; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)3928; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3929; GFX11-SDAG-FAKE16-NEXT:    s_endpgm3930;3931; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_2x_neg_12bit_max:3932; GFX12-SDAG-TRUE16:       ; %bb.0:3933; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243934; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 03935; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x03936; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:-8192 scope:SCOPE_SYS3937; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x03938; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off3939; GFX12-SDAG-TRUE16-NEXT:    s_endpgm3940;3941; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_2x_neg_12bit_max:3942; GFX12-SDAG-FAKE16:       ; %bb.0:3943; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243944; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 03945; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x03946; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-8192 scope:SCOPE_SYS3947; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x03948; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off3949; GFX12-SDAG-FAKE16-NEXT:    s_endpgm3950  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -81923951  %load = load volatile i8, ptr addrspace(1) %gep, align 13952  store i8 %load, ptr addrspace(1) poison3953  ret void3954}3955 3956define amdgpu_kernel void @global_inst_salu_offset_2x_neg_13bit_max(ptr addrspace(1) %p) {3957; GFX9-LABEL: global_inst_salu_offset_2x_neg_13bit_max:3958; GFX9:       ; %bb.0:3959; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243960; GFX9-NEXT:    v_mov_b32_e32 v0, 03961; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3962; GFX9-NEXT:    s_add_u32 s0, s0, 0xffffc0003963; GFX9-NEXT:    s_addc_u32 s1, s1, -13964; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc3965; GFX9-NEXT:    s_waitcnt vmcnt(0)3966; GFX9-NEXT:    global_store_byte v[0:1], v0, off3967; GFX9-NEXT:    s_endpgm3968;3969; GFX10-GISEL-LABEL: global_inst_salu_offset_2x_neg_13bit_max:3970; GFX10-GISEL:       ; %bb.0:3971; GFX10-GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243972; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3973; GFX10-GISEL-NEXT:    s_add_u32 s0, s0, 0xffffc0003974; GFX10-GISEL-NEXT:    s_addc_u32 s1, s1, -13975; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s03976; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s13977; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc3978; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)3979; GFX10-GISEL-NEXT:    global_store_byte v[0:1], v0, off3980; GFX10-GISEL-NEXT:    s_endpgm3981;3982; GFX11-GISEL-LABEL: global_inst_salu_offset_2x_neg_13bit_max:3983; GFX11-GISEL:       ; %bb.0:3984; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243985; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)3986; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0xffffc0003987; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, -13988; GFX11-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3989; GFX11-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s13990; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off glc dlc3991; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)3992; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off3993; GFX11-GISEL-NEXT:    s_endpgm3994;3995; GFX12-GISEL-LABEL: global_inst_salu_offset_2x_neg_13bit_max:3996; GFX12-GISEL:       ; %bb.0:3997; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243998; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 03999; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x04000; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-16384 scope:SCOPE_SYS4001; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x04002; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4003; GFX12-GISEL-NEXT:    s_endpgm4004;4005; GFX10-SDAG-LABEL: global_inst_salu_offset_2x_neg_13bit_max:4006; GFX10-SDAG:       ; %bb.0:4007; GFX10-SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244008; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)4009; GFX10-SDAG-NEXT:    v_add_co_u32 v0, s0, 0xffffc000, s04010; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e64 v1, s0, -1, s1, s04011; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc4012; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)4013; GFX10-SDAG-NEXT:    global_store_byte v[0:1], v0, off4014; GFX10-SDAG-NEXT:    s_endpgm4015;4016; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_2x_neg_13bit_max:4017; GFX11-SDAG-TRUE16:       ; %bb.0:4018; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244019; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)4020; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0xffffc000, s04021; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4022; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, s1, s04023; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off glc dlc4024; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)4025; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4026; GFX11-SDAG-TRUE16-NEXT:    s_endpgm4027;4028; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_2x_neg_13bit_max:4029; GFX11-SDAG-FAKE16:       ; %bb.0:4030; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244031; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)4032; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0xffffc000, s04033; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4034; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, -1, s1, s04035; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off glc dlc4036; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)4037; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4038; GFX11-SDAG-FAKE16-NEXT:    s_endpgm4039;4040; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_2x_neg_13bit_max:4041; GFX12-SDAG-TRUE16:       ; %bb.0:4042; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244043; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 04044; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x04045; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] offset:-16384 scope:SCOPE_SYS4046; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x04047; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4048; GFX12-SDAG-TRUE16-NEXT:    s_endpgm4049;4050; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_2x_neg_13bit_max:4051; GFX12-SDAG-FAKE16:       ; %bb.0:4052; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244053; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 04054; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x04055; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] offset:-16384 scope:SCOPE_SYS4056; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x04057; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4058; GFX12-SDAG-FAKE16-NEXT:    s_endpgm4059  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -163844060  %load = load volatile i8, ptr addrspace(1) %gep, align 14061  store i8 %load, ptr addrspace(1) poison4062  ret void4063}4064 4065; Fill 11-bit low-bits (1ull << 33) | 20474066define amdgpu_kernel void @global_inst_salu_offset_64bit_11bit_split0(ptr addrspace(1) %p) {4067; GFX9-LABEL: global_inst_salu_offset_64bit_11bit_split0:4068; GFX9:       ; %bb.0:4069; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244070; GFX9-NEXT:    v_mov_b32_e32 v0, 04071; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4072; GFX9-NEXT:    s_add_u32 s0, s0, 0x7ff4073; GFX9-NEXT:    s_addc_u32 s1, s1, 24074; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc4075; GFX9-NEXT:    s_waitcnt vmcnt(0)4076; GFX9-NEXT:    global_store_byte v[0:1], v0, off4077; GFX9-NEXT:    s_endpgm4078;4079; GFX10-GISEL-LABEL: global_inst_salu_offset_64bit_11bit_split0:4080; GFX10-GISEL:       ; %bb.0:4081; GFX10-GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244082; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4083; GFX10-GISEL-NEXT:    s_add_u32 s0, s0, 0x7ff4084; GFX10-GISEL-NEXT:    s_addc_u32 s1, s1, 24085; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s04086; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s14087; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc4088; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)4089; GFX10-GISEL-NEXT:    global_store_byte v[0:1], v0, off4090; GFX10-GISEL-NEXT:    s_endpgm4091;4092; GFX11-GISEL-LABEL: global_inst_salu_offset_64bit_11bit_split0:4093; GFX11-GISEL:       ; %bb.0:4094; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244095; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4096; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0x7ff4097; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, 24098; GFX11-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4099; GFX11-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s14100; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off glc dlc4101; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)4102; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4103; GFX11-GISEL-NEXT:    s_endpgm4104;4105; GFX12-GISEL-LABEL: global_inst_salu_offset_64bit_11bit_split0:4106; GFX12-GISEL:       ; %bb.0:4107; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244108; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x04109; GFX12-GISEL-NEXT:    s_add_co_u32 s0, s0, 0x7ff4110; GFX12-GISEL-NEXT:    s_add_co_ci_u32 s1, s1, 24111; GFX12-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4112; GFX12-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s14113; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off scope:SCOPE_SYS4114; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x04115; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4116; GFX12-GISEL-NEXT:    s_endpgm4117;4118; GFX10-SDAG-LABEL: global_inst_salu_offset_64bit_11bit_split0:4119; GFX10-SDAG:       ; %bb.0:4120; GFX10-SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244121; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)4122; GFX10-SDAG-NEXT:    v_add_co_u32 v0, s0, 0, s04123; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e64 v1, s0, 2, s1, s04124; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:2047 glc dlc4125; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)4126; GFX10-SDAG-NEXT:    global_store_byte v[0:1], v0, off4127; GFX10-SDAG-NEXT:    s_endpgm4128;4129; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_11bit_split0:4130; GFX11-SDAG-TRUE16:       ; %bb.0:4131; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244132; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)4133; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0, s04134; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4135; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04136; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:2047 glc dlc4137; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)4138; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4139; GFX11-SDAG-TRUE16-NEXT:    s_endpgm4140;4141; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_11bit_split0:4142; GFX11-SDAG-FAKE16:       ; %bb.0:4143; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244144; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)4145; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0, s04146; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4147; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04148; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:2047 glc dlc4149; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)4150; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4151; GFX11-SDAG-FAKE16-NEXT:    s_endpgm4152;4153; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_11bit_split0:4154; GFX12-SDAG-TRUE16:       ; %bb.0:4155; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244156; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x04157; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0, s04158; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_sdst(0)4159; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04160; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:2047 scope:SCOPE_SYS4161; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x04162; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4163; GFX12-SDAG-TRUE16-NEXT:    s_endpgm4164;4165; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_11bit_split0:4166; GFX12-SDAG-FAKE16:       ; %bb.0:4167; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244168; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x04169; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0, s04170; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)4171; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04172; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:2047 scope:SCOPE_SYS4173; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x04174; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4175; GFX12-SDAG-FAKE16-NEXT:    s_endpgm4176  %gep = getelementptr i8, ptr addrspace(1) %p, i64 85899366394177  %load = load volatile i8, ptr addrspace(1) %gep, align 14178  store i8 %load, ptr addrspace(1) poison4179  ret void4180}4181 4182; Fill 11-bit low-bits (1ull << 33) | 20484183define amdgpu_kernel void @global_inst_salu_offset_64bit_11bit_split1(ptr addrspace(1) %p) {4184; GFX9-LABEL: global_inst_salu_offset_64bit_11bit_split1:4185; GFX9:       ; %bb.0:4186; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244187; GFX9-NEXT:    v_mov_b32_e32 v0, 04188; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4189; GFX9-NEXT:    s_add_u32 s0, s0, 0x8004190; GFX9-NEXT:    s_addc_u32 s1, s1, 24191; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc4192; GFX9-NEXT:    s_waitcnt vmcnt(0)4193; GFX9-NEXT:    global_store_byte v[0:1], v0, off4194; GFX9-NEXT:    s_endpgm4195;4196; GFX10-GISEL-LABEL: global_inst_salu_offset_64bit_11bit_split1:4197; GFX10-GISEL:       ; %bb.0:4198; GFX10-GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244199; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4200; GFX10-GISEL-NEXT:    s_add_u32 s0, s0, 0x8004201; GFX10-GISEL-NEXT:    s_addc_u32 s1, s1, 24202; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s04203; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s14204; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc4205; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)4206; GFX10-GISEL-NEXT:    global_store_byte v[0:1], v0, off4207; GFX10-GISEL-NEXT:    s_endpgm4208;4209; GFX11-GISEL-LABEL: global_inst_salu_offset_64bit_11bit_split1:4210; GFX11-GISEL:       ; %bb.0:4211; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244212; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4213; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0x8004214; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, 24215; GFX11-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4216; GFX11-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s14217; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off glc dlc4218; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)4219; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4220; GFX11-GISEL-NEXT:    s_endpgm4221;4222; GFX12-GISEL-LABEL: global_inst_salu_offset_64bit_11bit_split1:4223; GFX12-GISEL:       ; %bb.0:4224; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244225; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x04226; GFX12-GISEL-NEXT:    s_add_co_u32 s0, s0, 0x8004227; GFX12-GISEL-NEXT:    s_add_co_ci_u32 s1, s1, 24228; GFX12-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4229; GFX12-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s14230; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off scope:SCOPE_SYS4231; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x04232; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4233; GFX12-GISEL-NEXT:    s_endpgm4234;4235; GFX10-SDAG-LABEL: global_inst_salu_offset_64bit_11bit_split1:4236; GFX10-SDAG:       ; %bb.0:4237; GFX10-SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244238; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)4239; GFX10-SDAG-NEXT:    v_add_co_u32 v0, s0, 0x800, s04240; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e64 v1, s0, 2, s1, s04241; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc4242; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)4243; GFX10-SDAG-NEXT:    global_store_byte v[0:1], v0, off4244; GFX10-SDAG-NEXT:    s_endpgm4245;4246; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_11bit_split1:4247; GFX11-SDAG-TRUE16:       ; %bb.0:4248; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244249; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)4250; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0, s04251; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4252; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04253; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:2048 glc dlc4254; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)4255; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4256; GFX11-SDAG-TRUE16-NEXT:    s_endpgm4257;4258; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_11bit_split1:4259; GFX11-SDAG-FAKE16:       ; %bb.0:4260; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244261; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)4262; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0, s04263; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4264; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04265; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:2048 glc dlc4266; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)4267; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4268; GFX11-SDAG-FAKE16-NEXT:    s_endpgm4269;4270; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_11bit_split1:4271; GFX12-SDAG-TRUE16:       ; %bb.0:4272; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244273; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x04274; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0, s04275; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_sdst(0)4276; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04277; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:2048 scope:SCOPE_SYS4278; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x04279; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4280; GFX12-SDAG-TRUE16-NEXT:    s_endpgm4281;4282; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_11bit_split1:4283; GFX12-SDAG-FAKE16:       ; %bb.0:4284; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244285; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x04286; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0, s04287; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)4288; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04289; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:2048 scope:SCOPE_SYS4290; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x04291; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4292; GFX12-SDAG-FAKE16-NEXT:    s_endpgm4293  %gep = getelementptr i8, ptr addrspace(1) %p, i64 85899366404294  %load = load volatile i8, ptr addrspace(1) %gep, align 14295  store i8 %load, ptr addrspace(1) poison4296  ret void4297}4298 4299; Fill 12-bit low-bits (1ull << 33) | 40954300define amdgpu_kernel void @global_inst_salu_offset_64bit_12bit_split0(ptr addrspace(1) %p) {4301; GFX9-LABEL: global_inst_salu_offset_64bit_12bit_split0:4302; GFX9:       ; %bb.0:4303; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244304; GFX9-NEXT:    v_mov_b32_e32 v0, 04305; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4306; GFX9-NEXT:    s_add_u32 s0, s0, 0xfff4307; GFX9-NEXT:    s_addc_u32 s1, s1, 24308; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc4309; GFX9-NEXT:    s_waitcnt vmcnt(0)4310; GFX9-NEXT:    global_store_byte v[0:1], v0, off4311; GFX9-NEXT:    s_endpgm4312;4313; GFX10-GISEL-LABEL: global_inst_salu_offset_64bit_12bit_split0:4314; GFX10-GISEL:       ; %bb.0:4315; GFX10-GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244316; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4317; GFX10-GISEL-NEXT:    s_add_u32 s0, s0, 0xfff4318; GFX10-GISEL-NEXT:    s_addc_u32 s1, s1, 24319; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s04320; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s14321; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc4322; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)4323; GFX10-GISEL-NEXT:    global_store_byte v[0:1], v0, off4324; GFX10-GISEL-NEXT:    s_endpgm4325;4326; GFX11-GISEL-LABEL: global_inst_salu_offset_64bit_12bit_split0:4327; GFX11-GISEL:       ; %bb.0:4328; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244329; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4330; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0xfff4331; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, 24332; GFX11-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4333; GFX11-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s14334; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off glc dlc4335; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)4336; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4337; GFX11-GISEL-NEXT:    s_endpgm4338;4339; GFX12-GISEL-LABEL: global_inst_salu_offset_64bit_12bit_split0:4340; GFX12-GISEL:       ; %bb.0:4341; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244342; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x04343; GFX12-GISEL-NEXT:    s_add_co_u32 s0, s0, 0xfff4344; GFX12-GISEL-NEXT:    s_add_co_ci_u32 s1, s1, 24345; GFX12-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4346; GFX12-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s14347; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off scope:SCOPE_SYS4348; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x04349; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4350; GFX12-GISEL-NEXT:    s_endpgm4351;4352; GFX10-SDAG-LABEL: global_inst_salu_offset_64bit_12bit_split0:4353; GFX10-SDAG:       ; %bb.0:4354; GFX10-SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244355; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)4356; GFX10-SDAG-NEXT:    v_add_co_u32 v0, s0, 0x800, s04357; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e64 v1, s0, 2, s1, s04358; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:2047 glc dlc4359; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)4360; GFX10-SDAG-NEXT:    global_store_byte v[0:1], v0, off4361; GFX10-SDAG-NEXT:    s_endpgm4362;4363; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_12bit_split0:4364; GFX11-SDAG-TRUE16:       ; %bb.0:4365; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244366; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)4367; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0, s04368; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4369; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04370; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:4095 glc dlc4371; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)4372; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4373; GFX11-SDAG-TRUE16-NEXT:    s_endpgm4374;4375; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_12bit_split0:4376; GFX11-SDAG-FAKE16:       ; %bb.0:4377; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244378; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)4379; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0, s04380; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4381; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04382; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:4095 glc dlc4383; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)4384; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4385; GFX11-SDAG-FAKE16-NEXT:    s_endpgm4386;4387; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_12bit_split0:4388; GFX12-SDAG-TRUE16:       ; %bb.0:4389; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244390; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x04391; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0, s04392; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_sdst(0)4393; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04394; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:4095 scope:SCOPE_SYS4395; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x04396; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4397; GFX12-SDAG-TRUE16-NEXT:    s_endpgm4398;4399; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_12bit_split0:4400; GFX12-SDAG-FAKE16:       ; %bb.0:4401; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244402; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x04403; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0, s04404; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)4405; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04406; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:4095 scope:SCOPE_SYS4407; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x04408; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4409; GFX12-SDAG-FAKE16-NEXT:    s_endpgm4410  %gep = getelementptr i8, ptr addrspace(1) %p, i64 85899386874411  %load = load volatile i8, ptr addrspace(1) %gep, align 14412  store i8 %load, ptr addrspace(1) poison4413  ret void4414}4415 4416; Fill 12-bit low-bits (1ull << 33) | 40964417define amdgpu_kernel void @global_inst_salu_offset_64bit_12bit_split1(ptr addrspace(1) %p) {4418; GFX9-LABEL: global_inst_salu_offset_64bit_12bit_split1:4419; GFX9:       ; %bb.0:4420; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244421; GFX9-NEXT:    v_mov_b32_e32 v0, 04422; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4423; GFX9-NEXT:    s_add_u32 s0, s0, 0x10004424; GFX9-NEXT:    s_addc_u32 s1, s1, 24425; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc4426; GFX9-NEXT:    s_waitcnt vmcnt(0)4427; GFX9-NEXT:    global_store_byte v[0:1], v0, off4428; GFX9-NEXT:    s_endpgm4429;4430; GFX10-GISEL-LABEL: global_inst_salu_offset_64bit_12bit_split1:4431; GFX10-GISEL:       ; %bb.0:4432; GFX10-GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244433; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4434; GFX10-GISEL-NEXT:    s_add_u32 s0, s0, 0x10004435; GFX10-GISEL-NEXT:    s_addc_u32 s1, s1, 24436; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s04437; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s14438; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc4439; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)4440; GFX10-GISEL-NEXT:    global_store_byte v[0:1], v0, off4441; GFX10-GISEL-NEXT:    s_endpgm4442;4443; GFX11-GISEL-LABEL: global_inst_salu_offset_64bit_12bit_split1:4444; GFX11-GISEL:       ; %bb.0:4445; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244446; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4447; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0x10004448; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, 24449; GFX11-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4450; GFX11-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s14451; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off glc dlc4452; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)4453; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4454; GFX11-GISEL-NEXT:    s_endpgm4455;4456; GFX12-GISEL-LABEL: global_inst_salu_offset_64bit_12bit_split1:4457; GFX12-GISEL:       ; %bb.0:4458; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244459; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x04460; GFX12-GISEL-NEXT:    s_add_co_u32 s0, s0, 0x10004461; GFX12-GISEL-NEXT:    s_add_co_ci_u32 s1, s1, 24462; GFX12-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4463; GFX12-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s14464; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off scope:SCOPE_SYS4465; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x04466; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4467; GFX12-GISEL-NEXT:    s_endpgm4468;4469; GFX10-SDAG-LABEL: global_inst_salu_offset_64bit_12bit_split1:4470; GFX10-SDAG:       ; %bb.0:4471; GFX10-SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244472; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)4473; GFX10-SDAG-NEXT:    v_add_co_u32 v0, s0, 0x1000, s04474; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e64 v1, s0, 2, s1, s04475; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc4476; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)4477; GFX10-SDAG-NEXT:    global_store_byte v[0:1], v0, off4478; GFX10-SDAG-NEXT:    s_endpgm4479;4480; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_12bit_split1:4481; GFX11-SDAG-TRUE16:       ; %bb.0:4482; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244483; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)4484; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0x1000, s04485; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4486; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04487; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off glc dlc4488; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)4489; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4490; GFX11-SDAG-TRUE16-NEXT:    s_endpgm4491;4492; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_12bit_split1:4493; GFX11-SDAG-FAKE16:       ; %bb.0:4494; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244495; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)4496; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0x1000, s04497; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4498; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04499; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off glc dlc4500; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)4501; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4502; GFX11-SDAG-FAKE16-NEXT:    s_endpgm4503;4504; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_12bit_split1:4505; GFX12-SDAG-TRUE16:       ; %bb.0:4506; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244507; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x04508; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0, s04509; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_sdst(0)4510; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04511; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:4096 scope:SCOPE_SYS4512; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x04513; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4514; GFX12-SDAG-TRUE16-NEXT:    s_endpgm4515;4516; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_12bit_split1:4517; GFX12-SDAG-FAKE16:       ; %bb.0:4518; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244519; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x04520; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0, s04521; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)4522; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04523; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:4096 scope:SCOPE_SYS4524; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x04525; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4526; GFX12-SDAG-FAKE16-NEXT:    s_endpgm4527  %gep = getelementptr i8, ptr addrspace(1) %p, i64 85899386884528  %load = load volatile i8, ptr addrspace(1) %gep, align 14529  store i8 %load, ptr addrspace(1) poison4530  ret void4531}4532 4533; Fill 13-bit low-bits (1ull << 33) | 81914534define amdgpu_kernel void @global_inst_salu_offset_64bit_13bit_split0(ptr addrspace(1) %p) {4535; GFX9-LABEL: global_inst_salu_offset_64bit_13bit_split0:4536; GFX9:       ; %bb.0:4537; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244538; GFX9-NEXT:    v_mov_b32_e32 v0, 04539; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4540; GFX9-NEXT:    s_add_u32 s0, s0, 0x1fff4541; GFX9-NEXT:    s_addc_u32 s1, s1, 24542; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc4543; GFX9-NEXT:    s_waitcnt vmcnt(0)4544; GFX9-NEXT:    global_store_byte v[0:1], v0, off4545; GFX9-NEXT:    s_endpgm4546;4547; GFX10-GISEL-LABEL: global_inst_salu_offset_64bit_13bit_split0:4548; GFX10-GISEL:       ; %bb.0:4549; GFX10-GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244550; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4551; GFX10-GISEL-NEXT:    s_add_u32 s0, s0, 0x1fff4552; GFX10-GISEL-NEXT:    s_addc_u32 s1, s1, 24553; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s04554; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s14555; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc4556; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)4557; GFX10-GISEL-NEXT:    global_store_byte v[0:1], v0, off4558; GFX10-GISEL-NEXT:    s_endpgm4559;4560; GFX11-GISEL-LABEL: global_inst_salu_offset_64bit_13bit_split0:4561; GFX11-GISEL:       ; %bb.0:4562; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244563; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4564; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0x1fff4565; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, 24566; GFX11-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4567; GFX11-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s14568; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off glc dlc4569; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)4570; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4571; GFX11-GISEL-NEXT:    s_endpgm4572;4573; GFX12-GISEL-LABEL: global_inst_salu_offset_64bit_13bit_split0:4574; GFX12-GISEL:       ; %bb.0:4575; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244576; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x04577; GFX12-GISEL-NEXT:    s_add_co_u32 s0, s0, 0x1fff4578; GFX12-GISEL-NEXT:    s_add_co_ci_u32 s1, s1, 24579; GFX12-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4580; GFX12-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s14581; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off scope:SCOPE_SYS4582; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x04583; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4584; GFX12-GISEL-NEXT:    s_endpgm4585;4586; GFX10-SDAG-LABEL: global_inst_salu_offset_64bit_13bit_split0:4587; GFX10-SDAG:       ; %bb.0:4588; GFX10-SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244589; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)4590; GFX10-SDAG-NEXT:    v_add_co_u32 v0, s0, 0x1800, s04591; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e64 v1, s0, 2, s1, s04592; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off offset:2047 glc dlc4593; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)4594; GFX10-SDAG-NEXT:    global_store_byte v[0:1], v0, off4595; GFX10-SDAG-NEXT:    s_endpgm4596;4597; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_13bit_split0:4598; GFX11-SDAG-TRUE16:       ; %bb.0:4599; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244600; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)4601; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0x1000, s04602; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4603; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04604; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:4095 glc dlc4605; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)4606; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4607; GFX11-SDAG-TRUE16-NEXT:    s_endpgm4608;4609; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_13bit_split0:4610; GFX11-SDAG-FAKE16:       ; %bb.0:4611; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244612; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)4613; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0x1000, s04614; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4615; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04616; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:4095 glc dlc4617; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)4618; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4619; GFX11-SDAG-FAKE16-NEXT:    s_endpgm4620;4621; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_13bit_split0:4622; GFX12-SDAG-TRUE16:       ; %bb.0:4623; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244624; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x04625; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0, s04626; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_sdst(0)4627; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04628; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:8191 scope:SCOPE_SYS4629; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x04630; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4631; GFX12-SDAG-TRUE16-NEXT:    s_endpgm4632;4633; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_13bit_split0:4634; GFX12-SDAG-FAKE16:       ; %bb.0:4635; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244636; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x04637; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0, s04638; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)4639; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04640; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:8191 scope:SCOPE_SYS4641; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x04642; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4643; GFX12-SDAG-FAKE16-NEXT:    s_endpgm4644  %gep = getelementptr i8, ptr addrspace(1) %p, i64 85899427834645  %load = load volatile i8, ptr addrspace(1) %gep, align 14646  store i8 %load, ptr addrspace(1) poison4647  ret void4648}4649 4650; Fill 13-bit low-bits (1ull << 33) | 81924651define amdgpu_kernel void @global_inst_salu_offset_64bit_13bit_split1(ptr addrspace(1) %p) {4652; GFX9-LABEL: global_inst_salu_offset_64bit_13bit_split1:4653; GFX9:       ; %bb.0:4654; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244655; GFX9-NEXT:    v_mov_b32_e32 v0, 04656; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4657; GFX9-NEXT:    s_add_u32 s0, s0, 0x20004658; GFX9-NEXT:    s_addc_u32 s1, s1, 24659; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc4660; GFX9-NEXT:    s_waitcnt vmcnt(0)4661; GFX9-NEXT:    global_store_byte v[0:1], v0, off4662; GFX9-NEXT:    s_endpgm4663;4664; GFX10-GISEL-LABEL: global_inst_salu_offset_64bit_13bit_split1:4665; GFX10-GISEL:       ; %bb.0:4666; GFX10-GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244667; GFX10-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4668; GFX10-GISEL-NEXT:    s_add_u32 s0, s0, 0x20004669; GFX10-GISEL-NEXT:    s_addc_u32 s1, s1, 24670; GFX10-GISEL-NEXT:    v_mov_b32_e32 v0, s04671; GFX10-GISEL-NEXT:    v_mov_b32_e32 v1, s14672; GFX10-GISEL-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc4673; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0)4674; GFX10-GISEL-NEXT:    global_store_byte v[0:1], v0, off4675; GFX10-GISEL-NEXT:    s_endpgm4676;4677; GFX11-GISEL-LABEL: global_inst_salu_offset_64bit_13bit_split1:4678; GFX11-GISEL:       ; %bb.0:4679; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244680; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4681; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0x20004682; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, 24683; GFX11-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4684; GFX11-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s14685; GFX11-GISEL-NEXT:    global_load_u8 v0, v[0:1], off glc dlc4686; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)4687; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4688; GFX11-GISEL-NEXT:    s_endpgm4689;4690; GFX12-GISEL-LABEL: global_inst_salu_offset_64bit_13bit_split1:4691; GFX12-GISEL:       ; %bb.0:4692; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244693; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x04694; GFX12-GISEL-NEXT:    s_add_co_u32 s0, s0, 0x20004695; GFX12-GISEL-NEXT:    s_add_co_ci_u32 s1, s1, 24696; GFX12-GISEL-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4697; GFX12-GISEL-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s14698; GFX12-GISEL-NEXT:    global_load_u8 v0, v[0:1], off scope:SCOPE_SYS4699; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x04700; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4701; GFX12-GISEL-NEXT:    s_endpgm4702;4703; GFX10-SDAG-LABEL: global_inst_salu_offset_64bit_13bit_split1:4704; GFX10-SDAG:       ; %bb.0:4705; GFX10-SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244706; GFX10-SDAG-NEXT:    s_waitcnt lgkmcnt(0)4707; GFX10-SDAG-NEXT:    v_add_co_u32 v0, s0, 0x2000, s04708; GFX10-SDAG-NEXT:    v_add_co_ci_u32_e64 v1, s0, 2, s1, s04709; GFX10-SDAG-NEXT:    global_load_ubyte v0, v[0:1], off glc dlc4710; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0)4711; GFX10-SDAG-NEXT:    global_store_byte v[0:1], v0, off4712; GFX10-SDAG-NEXT:    s_endpgm4713;4714; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_13bit_split1:4715; GFX11-SDAG-TRUE16:       ; %bb.0:4716; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244717; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)4718; GFX11-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0x2000, s04719; GFX11-SDAG-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4720; GFX11-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04721; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off glc dlc4722; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)4723; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4724; GFX11-SDAG-TRUE16-NEXT:    s_endpgm4725;4726; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_13bit_split1:4727; GFX11-SDAG-FAKE16:       ; %bb.0:4728; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244729; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)4730; GFX11-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0x2000, s04731; GFX11-SDAG-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4732; GFX11-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04733; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off glc dlc4734; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)4735; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4736; GFX11-SDAG-FAKE16-NEXT:    s_endpgm4737;4738; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_13bit_split1:4739; GFX12-SDAG-TRUE16:       ; %bb.0:4740; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244741; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x04742; GFX12-SDAG-TRUE16-NEXT:    v_add_co_u32 v0, s0, 0, s04743; GFX12-SDAG-TRUE16-NEXT:    s_wait_alu depctr_va_sdst(0)4744; GFX12-SDAG-TRUE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04745; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v[0:1], off offset:8192 scope:SCOPE_SYS4746; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x04747; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4748; GFX12-SDAG-TRUE16-NEXT:    s_endpgm4749;4750; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_13bit_split1:4751; GFX12-SDAG-FAKE16:       ; %bb.0:4752; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244753; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x04754; GFX12-SDAG-FAKE16-NEXT:    v_add_co_u32 v0, s0, 0, s04755; GFX12-SDAG-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)4756; GFX12-SDAG-FAKE16-NEXT:    v_add_co_ci_u32_e64 v1, null, 2, s1, s04757; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v[0:1], off offset:8192 scope:SCOPE_SYS4758; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x04759; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4760; GFX12-SDAG-FAKE16-NEXT:    s_endpgm4761  %gep = getelementptr i8, ptr addrspace(1) %p, i64 85899427844762  %load = load volatile i8, ptr addrspace(1) %gep, align 14763  store i8 %load, ptr addrspace(1) poison4764  ret void4765}4766 4767; Fill 11-bit low-bits, negative high bits (1ull << 63) | 20474768define amdgpu_kernel void @global_inst_salu_offset_64bit_11bit_neg_high_split0(ptr addrspace(1) %p) {4769; GFX9-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split0:4770; GFX9:       ; %bb.0:4771; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244772; GFX9-NEXT:    v_mov_b32_e32 v0, 04773; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4774; GFX9-NEXT:    s_add_u32 s0, s0, 0x7ff4775; GFX9-NEXT:    s_addc_u32 s1, s1, 0x800000004776; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc4777; GFX9-NEXT:    s_waitcnt vmcnt(0)4778; GFX9-NEXT:    global_store_byte v[0:1], v0, off4779; GFX9-NEXT:    s_endpgm4780;4781; GFX10-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split0:4782; GFX10:       ; %bb.0:4783; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244784; GFX10-NEXT:    v_mov_b32_e32 v0, 04785; GFX10-NEXT:    s_waitcnt lgkmcnt(0)4786; GFX10-NEXT:    s_add_u32 s0, s0, 0x7ff4787; GFX10-NEXT:    s_addc_u32 s1, s1, 0x800000004788; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] glc dlc4789; GFX10-NEXT:    s_waitcnt vmcnt(0)4790; GFX10-NEXT:    global_store_byte v[0:1], v0, off4791; GFX10-NEXT:    s_endpgm4792;4793; GFX11-GISEL-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split0:4794; GFX11-GISEL:       ; %bb.0:4795; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244796; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 04797; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4798; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0x7ff4799; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, 0x800000004800; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] glc dlc4801; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)4802; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4803; GFX11-GISEL-NEXT:    s_endpgm4804;4805; GFX12-GISEL-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split0:4806; GFX12-GISEL:       ; %bb.0:4807; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244808; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 04809; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x04810; GFX12-GISEL-NEXT:    s_add_co_u32 s0, s0, 0x7ff4811; GFX12-GISEL-NEXT:    s_add_co_ci_u32 s1, s1, 0x800000004812; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] scope:SCOPE_SYS4813; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x04814; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4815; GFX12-GISEL-NEXT:    s_endpgm4816;4817; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split0:4818; GFX11-SDAG-TRUE16:       ; %bb.0:4819; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244820; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 04821; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)4822; GFX11-SDAG-TRUE16-NEXT:    s_add_u32 s0, s0, 0x7ff4823; GFX11-SDAG-TRUE16-NEXT:    s_addc_u32 s1, s1, 0x800000004824; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] glc dlc4825; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)4826; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4827; GFX11-SDAG-TRUE16-NEXT:    s_endpgm4828;4829; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split0:4830; GFX11-SDAG-FAKE16:       ; %bb.0:4831; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244832; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 04833; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)4834; GFX11-SDAG-FAKE16-NEXT:    s_add_u32 s0, s0, 0x7ff4835; GFX11-SDAG-FAKE16-NEXT:    s_addc_u32 s1, s1, 0x800000004836; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] glc dlc4837; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)4838; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4839; GFX11-SDAG-FAKE16-NEXT:    s_endpgm4840;4841; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split0:4842; GFX12-SDAG-TRUE16:       ; %bb.0:4843; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244844; GFX12-SDAG-TRUE16-NEXT:    s_movk_i32 s2, 0x7ff4845; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 04846; GFX12-SDAG-TRUE16-NEXT:    s_brev_b32 s3, 14847; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x04848; GFX12-SDAG-TRUE16-NEXT:    s_add_nc_u64 s[0:1], s[0:1], s[2:3]4849; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] scope:SCOPE_SYS4850; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x04851; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4852; GFX12-SDAG-TRUE16-NEXT:    s_endpgm4853;4854; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split0:4855; GFX12-SDAG-FAKE16:       ; %bb.0:4856; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244857; GFX12-SDAG-FAKE16-NEXT:    s_movk_i32 s2, 0x7ff4858; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 04859; GFX12-SDAG-FAKE16-NEXT:    s_brev_b32 s3, 14860; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x04861; GFX12-SDAG-FAKE16-NEXT:    s_add_nc_u64 s[0:1], s[0:1], s[2:3]4862; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] scope:SCOPE_SYS4863; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x04864; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4865; GFX12-SDAG-FAKE16-NEXT:    s_endpgm4866  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -92233720368547737614867  %load = load volatile i8, ptr addrspace(1) %gep, align 14868  store i8 %load, ptr addrspace(1) poison4869  ret void4870}4871 4872; Fill 11-bit low-bits, negative high bits (1ull << 63) | 20484873define amdgpu_kernel void @global_inst_salu_offset_64bit_11bit_neg_high_split1(ptr addrspace(1) %p) {4874; GFX9-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split1:4875; GFX9:       ; %bb.0:4876; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244877; GFX9-NEXT:    v_mov_b32_e32 v0, 04878; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4879; GFX9-NEXT:    s_add_u32 s0, s0, 0x8004880; GFX9-NEXT:    s_addc_u32 s1, s1, 0x800000004881; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc4882; GFX9-NEXT:    s_waitcnt vmcnt(0)4883; GFX9-NEXT:    global_store_byte v[0:1], v0, off4884; GFX9-NEXT:    s_endpgm4885;4886; GFX10-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split1:4887; GFX10:       ; %bb.0:4888; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244889; GFX10-NEXT:    v_mov_b32_e32 v0, 04890; GFX10-NEXT:    s_waitcnt lgkmcnt(0)4891; GFX10-NEXT:    s_add_u32 s0, s0, 0x8004892; GFX10-NEXT:    s_addc_u32 s1, s1, 0x800000004893; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] glc dlc4894; GFX10-NEXT:    s_waitcnt vmcnt(0)4895; GFX10-NEXT:    global_store_byte v[0:1], v0, off4896; GFX10-NEXT:    s_endpgm4897;4898; GFX11-GISEL-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split1:4899; GFX11-GISEL:       ; %bb.0:4900; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244901; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 04902; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)4903; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0x8004904; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, 0x800000004905; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] glc dlc4906; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)4907; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4908; GFX11-GISEL-NEXT:    s_endpgm4909;4910; GFX12-GISEL-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split1:4911; GFX12-GISEL:       ; %bb.0:4912; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244913; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 04914; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x04915; GFX12-GISEL-NEXT:    s_add_co_u32 s0, s0, 0x8004916; GFX12-GISEL-NEXT:    s_add_co_ci_u32 s1, s1, 0x800000004917; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] scope:SCOPE_SYS4918; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x04919; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off4920; GFX12-GISEL-NEXT:    s_endpgm4921;4922; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split1:4923; GFX11-SDAG-TRUE16:       ; %bb.0:4924; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244925; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 04926; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)4927; GFX11-SDAG-TRUE16-NEXT:    s_add_u32 s0, s0, 0x8004928; GFX11-SDAG-TRUE16-NEXT:    s_addc_u32 s1, s1, 0x800000004929; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] glc dlc4930; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)4931; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4932; GFX11-SDAG-TRUE16-NEXT:    s_endpgm4933;4934; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split1:4935; GFX11-SDAG-FAKE16:       ; %bb.0:4936; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244937; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 04938; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)4939; GFX11-SDAG-FAKE16-NEXT:    s_add_u32 s0, s0, 0x8004940; GFX11-SDAG-FAKE16-NEXT:    s_addc_u32 s1, s1, 0x800000004941; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] glc dlc4942; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)4943; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4944; GFX11-SDAG-FAKE16-NEXT:    s_endpgm4945;4946; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split1:4947; GFX12-SDAG-TRUE16:       ; %bb.0:4948; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244949; GFX12-SDAG-TRUE16-NEXT:    s_movk_i32 s2, 0x8004950; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 04951; GFX12-SDAG-TRUE16-NEXT:    s_brev_b32 s3, 14952; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x04953; GFX12-SDAG-TRUE16-NEXT:    s_add_nc_u64 s[0:1], s[0:1], s[2:3]4954; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] scope:SCOPE_SYS4955; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x04956; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off4957; GFX12-SDAG-TRUE16-NEXT:    s_endpgm4958;4959; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_11bit_neg_high_split1:4960; GFX12-SDAG-FAKE16:       ; %bb.0:4961; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244962; GFX12-SDAG-FAKE16-NEXT:    s_movk_i32 s2, 0x8004963; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 04964; GFX12-SDAG-FAKE16-NEXT:    s_brev_b32 s3, 14965; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x04966; GFX12-SDAG-FAKE16-NEXT:    s_add_nc_u64 s[0:1], s[0:1], s[2:3]4967; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] scope:SCOPE_SYS4968; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x04969; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off4970; GFX12-SDAG-FAKE16-NEXT:    s_endpgm4971  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -92233720368547737604972  %load = load volatile i8, ptr addrspace(1) %gep, align 14973  store i8 %load, ptr addrspace(1) poison4974  ret void4975}4976 4977; Fill 12-bit low-bits, negative high bits (1ull << 63) | 40954978define amdgpu_kernel void @global_inst_salu_offset_64bit_12bit_neg_high_split0(ptr addrspace(1) %p) {4979; GFX9-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split0:4980; GFX9:       ; %bb.0:4981; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244982; GFX9-NEXT:    v_mov_b32_e32 v0, 04983; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4984; GFX9-NEXT:    s_add_u32 s0, s0, 0xfff4985; GFX9-NEXT:    s_addc_u32 s1, s1, 0x800000004986; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc4987; GFX9-NEXT:    s_waitcnt vmcnt(0)4988; GFX9-NEXT:    global_store_byte v[0:1], v0, off4989; GFX9-NEXT:    s_endpgm4990;4991; GFX10-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split0:4992; GFX10:       ; %bb.0:4993; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244994; GFX10-NEXT:    v_mov_b32_e32 v0, 04995; GFX10-NEXT:    s_waitcnt lgkmcnt(0)4996; GFX10-NEXT:    s_add_u32 s0, s0, 0xfff4997; GFX10-NEXT:    s_addc_u32 s1, s1, 0x800000004998; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] glc dlc4999; GFX10-NEXT:    s_waitcnt vmcnt(0)5000; GFX10-NEXT:    global_store_byte v[0:1], v0, off5001; GFX10-NEXT:    s_endpgm5002;5003; GFX11-GISEL-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split0:5004; GFX11-GISEL:       ; %bb.0:5005; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245006; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 05007; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)5008; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0xfff5009; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, 0x800000005010; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] glc dlc5011; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)5012; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off5013; GFX11-GISEL-NEXT:    s_endpgm5014;5015; GFX12-GISEL-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split0:5016; GFX12-GISEL:       ; %bb.0:5017; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245018; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 05019; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x05020; GFX12-GISEL-NEXT:    s_add_co_u32 s0, s0, 0xfff5021; GFX12-GISEL-NEXT:    s_add_co_ci_u32 s1, s1, 0x800000005022; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] scope:SCOPE_SYS5023; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x05024; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off5025; GFX12-GISEL-NEXT:    s_endpgm5026;5027; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split0:5028; GFX11-SDAG-TRUE16:       ; %bb.0:5029; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245030; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 05031; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)5032; GFX11-SDAG-TRUE16-NEXT:    s_add_u32 s0, s0, 0xfff5033; GFX11-SDAG-TRUE16-NEXT:    s_addc_u32 s1, s1, 0x800000005034; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] glc dlc5035; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)5036; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off5037; GFX11-SDAG-TRUE16-NEXT:    s_endpgm5038;5039; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split0:5040; GFX11-SDAG-FAKE16:       ; %bb.0:5041; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245042; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 05043; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)5044; GFX11-SDAG-FAKE16-NEXT:    s_add_u32 s0, s0, 0xfff5045; GFX11-SDAG-FAKE16-NEXT:    s_addc_u32 s1, s1, 0x800000005046; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] glc dlc5047; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)5048; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off5049; GFX11-SDAG-FAKE16-NEXT:    s_endpgm5050;5051; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split0:5052; GFX12-SDAG-TRUE16:       ; %bb.0:5053; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245054; GFX12-SDAG-TRUE16-NEXT:    s_movk_i32 s2, 0xfff5055; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 05056; GFX12-SDAG-TRUE16-NEXT:    s_brev_b32 s3, 15057; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x05058; GFX12-SDAG-TRUE16-NEXT:    s_add_nc_u64 s[0:1], s[0:1], s[2:3]5059; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] scope:SCOPE_SYS5060; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x05061; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off5062; GFX12-SDAG-TRUE16-NEXT:    s_endpgm5063;5064; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split0:5065; GFX12-SDAG-FAKE16:       ; %bb.0:5066; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245067; GFX12-SDAG-FAKE16-NEXT:    s_movk_i32 s2, 0xfff5068; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 05069; GFX12-SDAG-FAKE16-NEXT:    s_brev_b32 s3, 15070; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x05071; GFX12-SDAG-FAKE16-NEXT:    s_add_nc_u64 s[0:1], s[0:1], s[2:3]5072; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] scope:SCOPE_SYS5073; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x05074; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off5075; GFX12-SDAG-FAKE16-NEXT:    s_endpgm5076  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -92233720368547717135077  %load = load volatile i8, ptr addrspace(1) %gep, align 15078  store i8 %load, ptr addrspace(1) poison5079  ret void5080}5081 5082; Fill 12-bit low-bits, negative high bits (1ull << 63) | 40965083define amdgpu_kernel void @global_inst_salu_offset_64bit_12bit_neg_high_split1(ptr addrspace(1) %p) {5084; GFX9-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split1:5085; GFX9:       ; %bb.0:5086; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245087; GFX9-NEXT:    v_mov_b32_e32 v0, 05088; GFX9-NEXT:    s_waitcnt lgkmcnt(0)5089; GFX9-NEXT:    s_add_u32 s0, s0, 0x10005090; GFX9-NEXT:    s_addc_u32 s1, s1, 0x800000005091; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc5092; GFX9-NEXT:    s_waitcnt vmcnt(0)5093; GFX9-NEXT:    global_store_byte v[0:1], v0, off5094; GFX9-NEXT:    s_endpgm5095;5096; GFX10-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split1:5097; GFX10:       ; %bb.0:5098; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245099; GFX10-NEXT:    v_mov_b32_e32 v0, 05100; GFX10-NEXT:    s_waitcnt lgkmcnt(0)5101; GFX10-NEXT:    s_add_u32 s0, s0, 0x10005102; GFX10-NEXT:    s_addc_u32 s1, s1, 0x800000005103; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] glc dlc5104; GFX10-NEXT:    s_waitcnt vmcnt(0)5105; GFX10-NEXT:    global_store_byte v[0:1], v0, off5106; GFX10-NEXT:    s_endpgm5107;5108; GFX11-GISEL-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split1:5109; GFX11-GISEL:       ; %bb.0:5110; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245111; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 05112; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)5113; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0x10005114; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, 0x800000005115; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] glc dlc5116; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)5117; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off5118; GFX11-GISEL-NEXT:    s_endpgm5119;5120; GFX12-GISEL-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split1:5121; GFX12-GISEL:       ; %bb.0:5122; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245123; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 05124; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x05125; GFX12-GISEL-NEXT:    s_add_co_u32 s0, s0, 0x10005126; GFX12-GISEL-NEXT:    s_add_co_ci_u32 s1, s1, 0x800000005127; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] scope:SCOPE_SYS5128; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x05129; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off5130; GFX12-GISEL-NEXT:    s_endpgm5131;5132; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split1:5133; GFX11-SDAG-TRUE16:       ; %bb.0:5134; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245135; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 05136; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)5137; GFX11-SDAG-TRUE16-NEXT:    s_add_u32 s0, s0, 0x10005138; GFX11-SDAG-TRUE16-NEXT:    s_addc_u32 s1, s1, 0x800000005139; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] glc dlc5140; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)5141; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off5142; GFX11-SDAG-TRUE16-NEXT:    s_endpgm5143;5144; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split1:5145; GFX11-SDAG-FAKE16:       ; %bb.0:5146; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245147; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 05148; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)5149; GFX11-SDAG-FAKE16-NEXT:    s_add_u32 s0, s0, 0x10005150; GFX11-SDAG-FAKE16-NEXT:    s_addc_u32 s1, s1, 0x800000005151; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] glc dlc5152; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)5153; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off5154; GFX11-SDAG-FAKE16-NEXT:    s_endpgm5155;5156; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split1:5157; GFX12-SDAG-TRUE16:       ; %bb.0:5158; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245159; GFX12-SDAG-TRUE16-NEXT:    s_movk_i32 s2, 0x10005160; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 05161; GFX12-SDAG-TRUE16-NEXT:    s_brev_b32 s3, 15162; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x05163; GFX12-SDAG-TRUE16-NEXT:    s_add_nc_u64 s[0:1], s[0:1], s[2:3]5164; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] scope:SCOPE_SYS5165; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x05166; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off5167; GFX12-SDAG-TRUE16-NEXT:    s_endpgm5168;5169; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_12bit_neg_high_split1:5170; GFX12-SDAG-FAKE16:       ; %bb.0:5171; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245172; GFX12-SDAG-FAKE16-NEXT:    s_movk_i32 s2, 0x10005173; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 05174; GFX12-SDAG-FAKE16-NEXT:    s_brev_b32 s3, 15175; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x05176; GFX12-SDAG-FAKE16-NEXT:    s_add_nc_u64 s[0:1], s[0:1], s[2:3]5177; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] scope:SCOPE_SYS5178; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x05179; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off5180; GFX12-SDAG-FAKE16-NEXT:    s_endpgm5181  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -92233720368547717125182  %load = load volatile i8, ptr addrspace(1) %gep, align 15183  store i8 %load, ptr addrspace(1) poison5184  ret void5185}5186 5187; Fill 13-bit low-bits, negative high bits (1ull << 63) | 81915188define amdgpu_kernel void @global_inst_salu_offset_64bit_13bit_neg_high_split0(ptr addrspace(1) %p) {5189; GFX9-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split0:5190; GFX9:       ; %bb.0:5191; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245192; GFX9-NEXT:    v_mov_b32_e32 v0, 05193; GFX9-NEXT:    s_waitcnt lgkmcnt(0)5194; GFX9-NEXT:    s_add_u32 s0, s0, 0x1fff5195; GFX9-NEXT:    s_addc_u32 s1, s1, 0x800000005196; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc5197; GFX9-NEXT:    s_waitcnt vmcnt(0)5198; GFX9-NEXT:    global_store_byte v[0:1], v0, off5199; GFX9-NEXT:    s_endpgm5200;5201; GFX10-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split0:5202; GFX10:       ; %bb.0:5203; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245204; GFX10-NEXT:    v_mov_b32_e32 v0, 05205; GFX10-NEXT:    s_waitcnt lgkmcnt(0)5206; GFX10-NEXT:    s_add_u32 s0, s0, 0x1fff5207; GFX10-NEXT:    s_addc_u32 s1, s1, 0x800000005208; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] glc dlc5209; GFX10-NEXT:    s_waitcnt vmcnt(0)5210; GFX10-NEXT:    global_store_byte v[0:1], v0, off5211; GFX10-NEXT:    s_endpgm5212;5213; GFX11-GISEL-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split0:5214; GFX11-GISEL:       ; %bb.0:5215; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245216; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 05217; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)5218; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0x1fff5219; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, 0x800000005220; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] glc dlc5221; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)5222; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off5223; GFX11-GISEL-NEXT:    s_endpgm5224;5225; GFX12-GISEL-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split0:5226; GFX12-GISEL:       ; %bb.0:5227; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245228; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 05229; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x05230; GFX12-GISEL-NEXT:    s_add_co_u32 s0, s0, 0x1fff5231; GFX12-GISEL-NEXT:    s_add_co_ci_u32 s1, s1, 0x800000005232; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] scope:SCOPE_SYS5233; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x05234; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off5235; GFX12-GISEL-NEXT:    s_endpgm5236;5237; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split0:5238; GFX11-SDAG-TRUE16:       ; %bb.0:5239; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245240; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 05241; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)5242; GFX11-SDAG-TRUE16-NEXT:    s_add_u32 s0, s0, 0x1fff5243; GFX11-SDAG-TRUE16-NEXT:    s_addc_u32 s1, s1, 0x800000005244; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] glc dlc5245; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)5246; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off5247; GFX11-SDAG-TRUE16-NEXT:    s_endpgm5248;5249; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split0:5250; GFX11-SDAG-FAKE16:       ; %bb.0:5251; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245252; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 05253; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)5254; GFX11-SDAG-FAKE16-NEXT:    s_add_u32 s0, s0, 0x1fff5255; GFX11-SDAG-FAKE16-NEXT:    s_addc_u32 s1, s1, 0x800000005256; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] glc dlc5257; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)5258; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off5259; GFX11-SDAG-FAKE16-NEXT:    s_endpgm5260;5261; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split0:5262; GFX12-SDAG-TRUE16:       ; %bb.0:5263; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245264; GFX12-SDAG-TRUE16-NEXT:    s_movk_i32 s2, 0x1fff5265; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 05266; GFX12-SDAG-TRUE16-NEXT:    s_brev_b32 s3, 15267; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x05268; GFX12-SDAG-TRUE16-NEXT:    s_add_nc_u64 s[0:1], s[0:1], s[2:3]5269; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] scope:SCOPE_SYS5270; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x05271; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off5272; GFX12-SDAG-TRUE16-NEXT:    s_endpgm5273;5274; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split0:5275; GFX12-SDAG-FAKE16:       ; %bb.0:5276; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245277; GFX12-SDAG-FAKE16-NEXT:    s_movk_i32 s2, 0x1fff5278; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 05279; GFX12-SDAG-FAKE16-NEXT:    s_brev_b32 s3, 15280; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x05281; GFX12-SDAG-FAKE16-NEXT:    s_add_nc_u64 s[0:1], s[0:1], s[2:3]5282; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] scope:SCOPE_SYS5283; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x05284; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off5285; GFX12-SDAG-FAKE16-NEXT:    s_endpgm5286  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -92233720368547676175287  %load = load volatile i8, ptr addrspace(1) %gep, align 15288  store i8 %load, ptr addrspace(1) poison5289  ret void5290}5291 5292; Fill 13-bit low-bits, negative high bits (1ull << 63) | 81925293define amdgpu_kernel void @global_inst_salu_offset_64bit_13bit_neg_high_split1(ptr addrspace(1) %p) {5294; GFX9-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split1:5295; GFX9:       ; %bb.0:5296; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245297; GFX9-NEXT:    v_mov_b32_e32 v0, 05298; GFX9-NEXT:    s_waitcnt lgkmcnt(0)5299; GFX9-NEXT:    s_add_u32 s0, s0, 0x20005300; GFX9-NEXT:    s_addc_u32 s1, s1, 0x800000005301; GFX9-NEXT:    global_load_ubyte v0, v0, s[0:1] glc5302; GFX9-NEXT:    s_waitcnt vmcnt(0)5303; GFX9-NEXT:    global_store_byte v[0:1], v0, off5304; GFX9-NEXT:    s_endpgm5305;5306; GFX10-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split1:5307; GFX10:       ; %bb.0:5308; GFX10-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245309; GFX10-NEXT:    v_mov_b32_e32 v0, 05310; GFX10-NEXT:    s_waitcnt lgkmcnt(0)5311; GFX10-NEXT:    s_add_u32 s0, s0, 0x20005312; GFX10-NEXT:    s_addc_u32 s1, s1, 0x800000005313; GFX10-NEXT:    global_load_ubyte v0, v0, s[0:1] glc dlc5314; GFX10-NEXT:    s_waitcnt vmcnt(0)5315; GFX10-NEXT:    global_store_byte v[0:1], v0, off5316; GFX10-NEXT:    s_endpgm5317;5318; GFX11-GISEL-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split1:5319; GFX11-GISEL:       ; %bb.0:5320; GFX11-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245321; GFX11-GISEL-NEXT:    v_mov_b32_e32 v0, 05322; GFX11-GISEL-NEXT:    s_waitcnt lgkmcnt(0)5323; GFX11-GISEL-NEXT:    s_add_u32 s0, s0, 0x20005324; GFX11-GISEL-NEXT:    s_addc_u32 s1, s1, 0x800000005325; GFX11-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] glc dlc5326; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0)5327; GFX11-GISEL-NEXT:    global_store_b8 v[0:1], v0, off5328; GFX11-GISEL-NEXT:    s_endpgm5329;5330; GFX12-GISEL-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split1:5331; GFX12-GISEL:       ; %bb.0:5332; GFX12-GISEL-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245333; GFX12-GISEL-NEXT:    v_mov_b32_e32 v0, 05334; GFX12-GISEL-NEXT:    s_wait_kmcnt 0x05335; GFX12-GISEL-NEXT:    s_add_co_u32 s0, s0, 0x20005336; GFX12-GISEL-NEXT:    s_add_co_ci_u32 s1, s1, 0x800000005337; GFX12-GISEL-NEXT:    global_load_u8 v0, v0, s[0:1] scope:SCOPE_SYS5338; GFX12-GISEL-NEXT:    s_wait_loadcnt 0x05339; GFX12-GISEL-NEXT:    global_store_b8 v[0:1], v0, off5340; GFX12-GISEL-NEXT:    s_endpgm5341;5342; GFX11-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split1:5343; GFX11-SDAG-TRUE16:       ; %bb.0:5344; GFX11-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245345; GFX11-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 05346; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt lgkmcnt(0)5347; GFX11-SDAG-TRUE16-NEXT:    s_add_u32 s0, s0, 0x20005348; GFX11-SDAG-TRUE16-NEXT:    s_addc_u32 s1, s1, 0x800000005349; GFX11-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] glc dlc5350; GFX11-SDAG-TRUE16-NEXT:    s_waitcnt vmcnt(0)5351; GFX11-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off5352; GFX11-SDAG-TRUE16-NEXT:    s_endpgm5353;5354; GFX11-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split1:5355; GFX11-SDAG-FAKE16:       ; %bb.0:5356; GFX11-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245357; GFX11-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 05358; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt lgkmcnt(0)5359; GFX11-SDAG-FAKE16-NEXT:    s_add_u32 s0, s0, 0x20005360; GFX11-SDAG-FAKE16-NEXT:    s_addc_u32 s1, s1, 0x800000005361; GFX11-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] glc dlc5362; GFX11-SDAG-FAKE16-NEXT:    s_waitcnt vmcnt(0)5363; GFX11-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off5364; GFX11-SDAG-FAKE16-NEXT:    s_endpgm5365;5366; GFX12-SDAG-TRUE16-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split1:5367; GFX12-SDAG-TRUE16:       ; %bb.0:5368; GFX12-SDAG-TRUE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245369; GFX12-SDAG-TRUE16-NEXT:    s_movk_i32 s2, 0x20005370; GFX12-SDAG-TRUE16-NEXT:    v_mov_b32_e32 v0, 05371; GFX12-SDAG-TRUE16-NEXT:    s_brev_b32 s3, 15372; GFX12-SDAG-TRUE16-NEXT:    s_wait_kmcnt 0x05373; GFX12-SDAG-TRUE16-NEXT:    s_add_nc_u64 s[0:1], s[0:1], s[2:3]5374; GFX12-SDAG-TRUE16-NEXT:    global_load_d16_u8 v0, v0, s[0:1] scope:SCOPE_SYS5375; GFX12-SDAG-TRUE16-NEXT:    s_wait_loadcnt 0x05376; GFX12-SDAG-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off5377; GFX12-SDAG-TRUE16-NEXT:    s_endpgm5378;5379; GFX12-SDAG-FAKE16-LABEL: global_inst_salu_offset_64bit_13bit_neg_high_split1:5380; GFX12-SDAG-FAKE16:       ; %bb.0:5381; GFX12-SDAG-FAKE16-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245382; GFX12-SDAG-FAKE16-NEXT:    s_movk_i32 s2, 0x20005383; GFX12-SDAG-FAKE16-NEXT:    v_mov_b32_e32 v0, 05384; GFX12-SDAG-FAKE16-NEXT:    s_brev_b32 s3, 15385; GFX12-SDAG-FAKE16-NEXT:    s_wait_kmcnt 0x05386; GFX12-SDAG-FAKE16-NEXT:    s_add_nc_u64 s[0:1], s[0:1], s[2:3]5387; GFX12-SDAG-FAKE16-NEXT:    global_load_u8 v0, v0, s[0:1] scope:SCOPE_SYS5388; GFX12-SDAG-FAKE16-NEXT:    s_wait_loadcnt 0x05389; GFX12-SDAG-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off5390; GFX12-SDAG-FAKE16-NEXT:    s_endpgm5391  %gep = getelementptr i8, ptr addrspace(1) %p, i64 -92233720368547676165392  %load = load volatile i8, ptr addrspace(1) %gep, align 15393  store i8 %load, ptr addrspace(1) poison5394  ret void5395}5396;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:5397; GFX11: {{.*}}5398; GFX11-GISEL-FAKE16: {{.*}}5399; GFX11-GISEL-TRUE16: {{.*}}5400; GFX11-SDAG: {{.*}}5401; GFX12: {{.*}}5402; GFX12-GISEL-FAKE16: {{.*}}5403; GFX12-GISEL-TRUE16: {{.*}}5404; GFX12-SDAG: {{.*}}5405