brintos

brintos / llvm-project-archived public Read only

0
0
Text · 77.7 KiB · 1de5e13 Raw
1711 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 -mattr=+unaligned-access-mode < %s | FileCheck -check-prefixes=GFX12,GFX12-UNALIGNED %s3; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 -mattr=-unaligned-access-mode < %s | FileCheck -check-prefixes=GFX12,GFX12-NOUNALIGNED %s4; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=gfx1250 -mattr=+unaligned-access-mode < %s | FileCheck -check-prefixes=GFX12,GFX1250,GFX1250-UNALIGNED %s5; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=gfx1250 -mattr=-unaligned-access-mode < %s | FileCheck -check-prefixes=GFX12,GFX1250,GFX1250-NOUNALIGNED %s6; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=gfx900 -mattr=+unaligned-access-mode < %s | FileCheck -check-prefixes=GCN,GFX9,GFX9-UNALIGNED %s7; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=gfx900 -mattr=-unaligned-access-mode < %s | FileCheck -check-prefixes=GCN,GFX9,GFX9-NOUNALIGNED %s8; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=hawaii -mattr=+unaligned-access-mode < %s | FileCheck -check-prefixes=GCN,GFX7,GFX7-UNALIGNED %s9; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=hawaii -mattr=-unaligned-access-mode < %s | FileCheck -check-prefixes=GCN,GFX7,GFX7-NOUNALIGNED %s10 11; RUN: llc -global-isel -new-reg-bank-select -mtriple=amdgcn-amd-amdpal -mcpu=tahiti < %s | FileCheck -check-prefixes=GCN,GFX6 %s12 13define <3 x i32> @v_load_constant_v3i32_align1(ptr addrspace(4) %ptr) {14; GFX12-UNALIGNED-LABEL: v_load_constant_v3i32_align1:15; GFX12-UNALIGNED:       ; %bb.0:16; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x017; GFX12-UNALIGNED-NEXT:    s_wait_expcnt 0x018; GFX12-UNALIGNED-NEXT:    s_wait_samplecnt 0x019; GFX12-UNALIGNED-NEXT:    s_wait_bvhcnt 0x020; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x021; GFX12-UNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off22; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt 0x023; GFX12-UNALIGNED-NEXT:    s_setpc_b64 s[30:31]24;25; GFX12-NOUNALIGNED-LABEL: v_load_constant_v3i32_align1:26; GFX12-NOUNALIGNED:       ; %bb.0:27; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x028; GFX12-NOUNALIGNED-NEXT:    s_wait_expcnt 0x029; GFX12-NOUNALIGNED-NEXT:    s_wait_samplecnt 0x030; GFX12-NOUNALIGNED-NEXT:    s_wait_bvhcnt 0x031; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x032; GFX12-NOUNALIGNED-NEXT:    s_clause 0xb33; GFX12-NOUNALIGNED-NEXT:    global_load_u8 v2, v[0:1], off34; GFX12-NOUNALIGNED-NEXT:    global_load_u8 v3, v[0:1], off offset:135; GFX12-NOUNALIGNED-NEXT:    global_load_u8 v4, v[0:1], off offset:236; GFX12-NOUNALIGNED-NEXT:    global_load_u8 v5, v[0:1], off offset:337; GFX12-NOUNALIGNED-NEXT:    global_load_u8 v6, v[0:1], off offset:438; GFX12-NOUNALIGNED-NEXT:    global_load_u8 v7, v[0:1], off offset:539; GFX12-NOUNALIGNED-NEXT:    global_load_u8 v8, v[0:1], off offset:640; GFX12-NOUNALIGNED-NEXT:    global_load_u8 v9, v[0:1], off offset:741; GFX12-NOUNALIGNED-NEXT:    global_load_u8 v10, v[0:1], off offset:842; GFX12-NOUNALIGNED-NEXT:    global_load_u8 v11, v[0:1], off offset:943; GFX12-NOUNALIGNED-NEXT:    global_load_u8 v12, v[0:1], off offset:1144; GFX12-NOUNALIGNED-NEXT:    global_load_u8 v0, v[0:1], off offset:1045; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0xa46; GFX12-NOUNALIGNED-NEXT:    v_lshl_or_b32 v1, v3, 8, v247; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x948; GFX12-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v3, 16, v449; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x850; GFX12-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v2, 24, v551; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x652; GFX12-NOUNALIGNED-NEXT:    v_lshl_or_b32 v4, v7, 8, v653; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x554; GFX12-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v6, 16, v855; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x456; GFX12-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v5, 24, v957; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x258; GFX12-NOUNALIGNED-NEXT:    v_lshl_or_b32 v7, v11, 8, v1059; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x160; GFX12-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v8, 24, v1261; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x062; GFX12-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v9, 16, v063; GFX12-NOUNALIGNED-NEXT:    v_or3_b32 v0, v2, v3, v164; GFX12-NOUNALIGNED-NEXT:    v_or3_b32 v1, v5, v6, v465; GFX12-NOUNALIGNED-NEXT:    s_delay_alu instid0(VALU_DEP_3)66; GFX12-NOUNALIGNED-NEXT:    v_or3_b32 v2, v8, v9, v767; GFX12-NOUNALIGNED-NEXT:    s_setpc_b64 s[30:31]68;69; GFX1250-UNALIGNED-LABEL: v_load_constant_v3i32_align1:70; GFX1250-UNALIGNED:       ; %bb.0:71; GFX1250-UNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x072; GFX1250-UNALIGNED-NEXT:    s_wait_kmcnt 0x073; GFX1250-UNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off74; GFX1250-UNALIGNED-NEXT:    s_wait_loadcnt 0x075; GFX1250-UNALIGNED-NEXT:    s_set_pc_i64 s[30:31]76;77; GFX1250-NOUNALIGNED-LABEL: v_load_constant_v3i32_align1:78; GFX1250-NOUNALIGNED:       ; %bb.0:79; GFX1250-NOUNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x080; GFX1250-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x081; GFX1250-NOUNALIGNED-NEXT:    s_clause 0xb82; GFX1250-NOUNALIGNED-NEXT:    global_load_u8 v2, v[0:1], off83; GFX1250-NOUNALIGNED-NEXT:    global_load_u8 v3, v[0:1], off offset:184; GFX1250-NOUNALIGNED-NEXT:    global_load_u8 v4, v[0:1], off offset:285; GFX1250-NOUNALIGNED-NEXT:    global_load_u8 v5, v[0:1], off offset:386; GFX1250-NOUNALIGNED-NEXT:    global_load_u8 v6, v[0:1], off offset:487; GFX1250-NOUNALIGNED-NEXT:    global_load_u8 v7, v[0:1], off offset:588; GFX1250-NOUNALIGNED-NEXT:    global_load_u8 v8, v[0:1], off offset:689; GFX1250-NOUNALIGNED-NEXT:    global_load_u8 v9, v[0:1], off offset:790; GFX1250-NOUNALIGNED-NEXT:    global_load_u8 v10, v[0:1], off offset:891; GFX1250-NOUNALIGNED-NEXT:    global_load_u8 v11, v[0:1], off offset:992; GFX1250-NOUNALIGNED-NEXT:    global_load_u8 v12, v[0:1], off offset:1193; GFX1250-NOUNALIGNED-NEXT:    global_load_u8 v13, v[0:1], off offset:1094; GFX1250-NOUNALIGNED-NEXT:    s_wait_loadcnt 0xa95; GFX1250-NOUNALIGNED-NEXT:    s_wait_xcnt 0x096; GFX1250-NOUNALIGNED-NEXT:    v_lshl_or_b32 v0, v3, 8, v297; GFX1250-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x898; GFX1250-NOUNALIGNED-NEXT:    v_dual_lshlrev_b32 v2, 16, v4 :: v_dual_lshlrev_b32 v1, 24, v599; GFX1250-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x6100; GFX1250-NOUNALIGNED-NEXT:    v_lshl_or_b32 v3, v7, 8, v6101; GFX1250-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x4102; GFX1250-NOUNALIGNED-NEXT:    v_dual_lshlrev_b32 v5, 16, v8 :: v_dual_lshlrev_b32 v4, 24, v9103; GFX1250-NOUNALIGNED-NEXT:    v_or3_b32 v0, v1, v2, v0104; GFX1250-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x2105; GFX1250-NOUNALIGNED-NEXT:    v_lshl_or_b32 v6, v11, 8, v10106; GFX1250-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x0107; GFX1250-NOUNALIGNED-NEXT:    v_dual_lshlrev_b32 v7, 24, v12 :: v_dual_lshlrev_b32 v8, 16, v13108; GFX1250-NOUNALIGNED-NEXT:    v_or3_b32 v1, v4, v5, v3109; GFX1250-NOUNALIGNED-NEXT:    s_delay_alu instid0(VALU_DEP_2)110; GFX1250-NOUNALIGNED-NEXT:    v_or3_b32 v2, v7, v8, v6111; GFX1250-NOUNALIGNED-NEXT:    s_set_pc_i64 s[30:31]112;113; GFX9-UNALIGNED-LABEL: v_load_constant_v3i32_align1:114; GFX9-UNALIGNED:       ; %bb.0:115; GFX9-UNALIGNED-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)116; GFX9-UNALIGNED-NEXT:    global_load_dwordx3 v[0:2], v[0:1], off117; GFX9-UNALIGNED-NEXT:    s_waitcnt vmcnt(0)118; GFX9-UNALIGNED-NEXT:    s_setpc_b64 s[30:31]119;120; GFX9-NOUNALIGNED-LABEL: v_load_constant_v3i32_align1:121; GFX9-NOUNALIGNED:       ; %bb.0:122; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)123; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v2, v[0:1], off124; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v3, v[0:1], off offset:1125; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v4, v[0:1], off offset:2126; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v5, v[0:1], off offset:3127; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v6, v[0:1], off offset:4128; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v7, v[0:1], off offset:5129; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v8, v[0:1], off offset:6130; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v9, v[0:1], off offset:7131; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v10, v[0:1], off offset:8132; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v11, v[0:1], off offset:9133; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v12, v[0:1], off offset:11134; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v13, v[0:1], off offset:10135; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(10)136; GFX9-NOUNALIGNED-NEXT:    v_lshl_or_b32 v0, v3, 8, v2137; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(9)138; GFX9-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v2, 16, v4139; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(8)140; GFX9-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v1, 24, v5141; GFX9-NOUNALIGNED-NEXT:    v_or3_b32 v0, v1, v2, v0142; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(6)143; GFX9-NOUNALIGNED-NEXT:    v_lshl_or_b32 v3, v7, 8, v6144; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(5)145; GFX9-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v5, 16, v8146; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(4)147; GFX9-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v4, 24, v9148; GFX9-NOUNALIGNED-NEXT:    v_or3_b32 v1, v4, v5, v3149; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(2)150; GFX9-NOUNALIGNED-NEXT:    v_lshl_or_b32 v6, v11, 8, v10151; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(1)152; GFX9-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v7, 24, v12153; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(0)154; GFX9-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v8, 16, v13155; GFX9-NOUNALIGNED-NEXT:    v_or3_b32 v2, v7, v8, v6156; GFX9-NOUNALIGNED-NEXT:    s_setpc_b64 s[30:31]157;158; GFX7-UNALIGNED-LABEL: v_load_constant_v3i32_align1:159; GFX7-UNALIGNED:       ; %bb.0:160; GFX7-UNALIGNED-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)161; GFX7-UNALIGNED-NEXT:    s_mov_b32 s6, 0162; GFX7-UNALIGNED-NEXT:    s_mov_b32 s7, 0xf000163; GFX7-UNALIGNED-NEXT:    s_mov_b64 s[4:5], 0164; GFX7-UNALIGNED-NEXT:    buffer_load_dwordx3 v[0:2], v[0:1], s[4:7], 0 addr64165; GFX7-UNALIGNED-NEXT:    s_waitcnt vmcnt(0)166; GFX7-UNALIGNED-NEXT:    s_setpc_b64 s[30:31]167;168; GFX7-NOUNALIGNED-LABEL: v_load_constant_v3i32_align1:169; GFX7-NOUNALIGNED:       ; %bb.0:170; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)171; GFX7-NOUNALIGNED-NEXT:    s_mov_b32 s6, 0172; GFX7-NOUNALIGNED-NEXT:    s_mov_b32 s7, 0xf000173; GFX7-NOUNALIGNED-NEXT:    s_mov_b64 s[4:5], 0174; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v2, v[0:1], s[4:7], 0 addr64 offset:1175; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v3, v[0:1], s[4:7], 0 addr64 offset:3176; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v4, v[0:1], s[4:7], 0 addr64 offset:2177; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v5, v[0:1], s[4:7], 0 addr64 offset:5178; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v6, v[0:1], s[4:7], 0 addr64 offset:7179; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v7, v[0:1], s[4:7], 0 addr64 offset:6180; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v8, v[0:1], s[4:7], 0 addr64 offset:9181; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v9, v[0:1], s[4:7], 0 addr64 offset:11182; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v10, v[0:1], s[4:7], 0 addr64 offset:10183; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v11, v[0:1], s[4:7], 0 addr64184; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v12, v[0:1], s[4:7], 0 addr64 offset:4185; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v0, v[0:1], s[4:7], 0 addr64 offset:8186; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(11)187; GFX7-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v1, 8, v2188; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(10)189; GFX7-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v2, 24, v3190; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(9)191; GFX7-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v3, 16, v4192; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(8)193; GFX7-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v4, 8, v5194; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(7)195; GFX7-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v5, 24, v6196; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(6)197; GFX7-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v6, 16, v7198; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(5)199; GFX7-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v7, 8, v8200; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(4)201; GFX7-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v8, 24, v9202; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(3)203; GFX7-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v9, 16, v10204; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(2)205; GFX7-NOUNALIGNED-NEXT:    v_or_b32_e32 v1, v1, v11206; GFX7-NOUNALIGNED-NEXT:    v_or_b32_e32 v2, v2, v3207; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(1)208; GFX7-NOUNALIGNED-NEXT:    v_or_b32_e32 v3, v4, v12209; GFX7-NOUNALIGNED-NEXT:    v_or_b32_e32 v4, v5, v6210; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(0)211; GFX7-NOUNALIGNED-NEXT:    v_or_b32_e32 v5, v7, v0212; GFX7-NOUNALIGNED-NEXT:    v_or_b32_e32 v6, v8, v9213; GFX7-NOUNALIGNED-NEXT:    v_or_b32_e32 v0, v2, v1214; GFX7-NOUNALIGNED-NEXT:    v_or_b32_e32 v1, v4, v3215; GFX7-NOUNALIGNED-NEXT:    v_or_b32_e32 v2, v6, v5216; GFX7-NOUNALIGNED-NEXT:    s_setpc_b64 s[30:31]217;218; GFX6-LABEL: v_load_constant_v3i32_align1:219; GFX6:       ; %bb.0:220; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)221; GFX6-NEXT:    s_mov_b32 s6, 0222; GFX6-NEXT:    s_mov_b32 s7, 0xf000223; GFX6-NEXT:    s_mov_b64 s[4:5], 0224; GFX6-NEXT:    buffer_load_ubyte v2, v[0:1], s[4:7], 0 addr64 offset:1225; GFX6-NEXT:    buffer_load_ubyte v3, v[0:1], s[4:7], 0 addr64 offset:3226; GFX6-NEXT:    buffer_load_ubyte v4, v[0:1], s[4:7], 0 addr64 offset:2227; GFX6-NEXT:    buffer_load_ubyte v5, v[0:1], s[4:7], 0 addr64 offset:5228; GFX6-NEXT:    buffer_load_ubyte v6, v[0:1], s[4:7], 0 addr64 offset:7229; GFX6-NEXT:    buffer_load_ubyte v7, v[0:1], s[4:7], 0 addr64 offset:6230; GFX6-NEXT:    buffer_load_ubyte v8, v[0:1], s[4:7], 0 addr64 offset:9231; GFX6-NEXT:    buffer_load_ubyte v9, v[0:1], s[4:7], 0 addr64 offset:11232; GFX6-NEXT:    buffer_load_ubyte v10, v[0:1], s[4:7], 0 addr64 offset:10233; GFX6-NEXT:    buffer_load_ubyte v11, v[0:1], s[4:7], 0 addr64234; GFX6-NEXT:    buffer_load_ubyte v12, v[0:1], s[4:7], 0 addr64 offset:4235; GFX6-NEXT:    buffer_load_ubyte v0, v[0:1], s[4:7], 0 addr64 offset:8236; GFX6-NEXT:    s_waitcnt vmcnt(11)237; GFX6-NEXT:    v_lshlrev_b32_e32 v1, 8, v2238; GFX6-NEXT:    s_waitcnt vmcnt(10)239; GFX6-NEXT:    v_lshlrev_b32_e32 v2, 24, v3240; GFX6-NEXT:    s_waitcnt vmcnt(9)241; GFX6-NEXT:    v_lshlrev_b32_e32 v3, 16, v4242; GFX6-NEXT:    s_waitcnt vmcnt(8)243; GFX6-NEXT:    v_lshlrev_b32_e32 v4, 8, v5244; GFX6-NEXT:    s_waitcnt vmcnt(7)245; GFX6-NEXT:    v_lshlrev_b32_e32 v5, 24, v6246; GFX6-NEXT:    s_waitcnt vmcnt(6)247; GFX6-NEXT:    v_lshlrev_b32_e32 v6, 16, v7248; GFX6-NEXT:    s_waitcnt vmcnt(5)249; GFX6-NEXT:    v_lshlrev_b32_e32 v7, 8, v8250; GFX6-NEXT:    s_waitcnt vmcnt(4)251; GFX6-NEXT:    v_lshlrev_b32_e32 v8, 24, v9252; GFX6-NEXT:    s_waitcnt vmcnt(3)253; GFX6-NEXT:    v_lshlrev_b32_e32 v9, 16, v10254; GFX6-NEXT:    s_waitcnt vmcnt(2)255; GFX6-NEXT:    v_or_b32_e32 v1, v1, v11256; GFX6-NEXT:    v_or_b32_e32 v2, v2, v3257; GFX6-NEXT:    s_waitcnt vmcnt(1)258; GFX6-NEXT:    v_or_b32_e32 v3, v4, v12259; GFX6-NEXT:    v_or_b32_e32 v4, v5, v6260; GFX6-NEXT:    s_waitcnt vmcnt(0)261; GFX6-NEXT:    v_or_b32_e32 v5, v7, v0262; GFX6-NEXT:    v_or_b32_e32 v6, v8, v9263; GFX6-NEXT:    v_or_b32_e32 v0, v2, v1264; GFX6-NEXT:    v_or_b32_e32 v1, v4, v3265; GFX6-NEXT:    v_or_b32_e32 v2, v6, v5266; GFX6-NEXT:    s_setpc_b64 s[30:31]267  %load = load <3 x i32>, ptr addrspace(4) %ptr, align 1268  ret <3 x i32> %load269}270 271define <3 x i32> @v_load_constant_v3i32_align2(ptr addrspace(4) %ptr) {272; GFX12-UNALIGNED-LABEL: v_load_constant_v3i32_align2:273; GFX12-UNALIGNED:       ; %bb.0:274; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0275; GFX12-UNALIGNED-NEXT:    s_wait_expcnt 0x0276; GFX12-UNALIGNED-NEXT:    s_wait_samplecnt 0x0277; GFX12-UNALIGNED-NEXT:    s_wait_bvhcnt 0x0278; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x0279; GFX12-UNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off280; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt 0x0281; GFX12-UNALIGNED-NEXT:    s_setpc_b64 s[30:31]282;283; GFX12-NOUNALIGNED-LABEL: v_load_constant_v3i32_align2:284; GFX12-NOUNALIGNED:       ; %bb.0:285; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0286; GFX12-NOUNALIGNED-NEXT:    s_wait_expcnt 0x0287; GFX12-NOUNALIGNED-NEXT:    s_wait_samplecnt 0x0288; GFX12-NOUNALIGNED-NEXT:    s_wait_bvhcnt 0x0289; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x0290; GFX12-NOUNALIGNED-NEXT:    s_clause 0x5291; GFX12-NOUNALIGNED-NEXT:    global_load_u16 v2, v[0:1], off292; GFX12-NOUNALIGNED-NEXT:    global_load_u16 v3, v[0:1], off offset:2293; GFX12-NOUNALIGNED-NEXT:    global_load_u16 v4, v[0:1], off offset:4294; GFX12-NOUNALIGNED-NEXT:    global_load_u16 v5, v[0:1], off offset:6295; GFX12-NOUNALIGNED-NEXT:    global_load_u16 v6, v[0:1], off offset:8296; GFX12-NOUNALIGNED-NEXT:    global_load_u16 v7, v[0:1], off offset:10297; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x4298; GFX12-NOUNALIGNED-NEXT:    v_lshl_or_b32 v0, v3, 16, v2299; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x2300; GFX12-NOUNALIGNED-NEXT:    v_lshl_or_b32 v1, v5, 16, v4301; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x0302; GFX12-NOUNALIGNED-NEXT:    v_lshl_or_b32 v2, v7, 16, v6303; GFX12-NOUNALIGNED-NEXT:    s_setpc_b64 s[30:31]304;305; GFX1250-UNALIGNED-LABEL: v_load_constant_v3i32_align2:306; GFX1250-UNALIGNED:       ; %bb.0:307; GFX1250-UNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0308; GFX1250-UNALIGNED-NEXT:    s_wait_kmcnt 0x0309; GFX1250-UNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off310; GFX1250-UNALIGNED-NEXT:    s_wait_loadcnt 0x0311; GFX1250-UNALIGNED-NEXT:    s_set_pc_i64 s[30:31]312;313; GFX1250-NOUNALIGNED-LABEL: v_load_constant_v3i32_align2:314; GFX1250-NOUNALIGNED:       ; %bb.0:315; GFX1250-NOUNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0316; GFX1250-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x0317; GFX1250-NOUNALIGNED-NEXT:    s_clause 0x5318; GFX1250-NOUNALIGNED-NEXT:    global_load_u16 v2, v[0:1], off319; GFX1250-NOUNALIGNED-NEXT:    global_load_u16 v3, v[0:1], off offset:2320; GFX1250-NOUNALIGNED-NEXT:    global_load_u16 v4, v[0:1], off offset:4321; GFX1250-NOUNALIGNED-NEXT:    global_load_u16 v5, v[0:1], off offset:6322; GFX1250-NOUNALIGNED-NEXT:    global_load_u16 v6, v[0:1], off offset:8323; GFX1250-NOUNALIGNED-NEXT:    global_load_u16 v7, v[0:1], off offset:10324; GFX1250-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x4325; GFX1250-NOUNALIGNED-NEXT:    s_wait_xcnt 0x0326; GFX1250-NOUNALIGNED-NEXT:    v_lshl_or_b32 v0, v3, 16, v2327; GFX1250-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x2328; GFX1250-NOUNALIGNED-NEXT:    v_lshl_or_b32 v1, v5, 16, v4329; GFX1250-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x0330; GFX1250-NOUNALIGNED-NEXT:    v_lshl_or_b32 v2, v7, 16, v6331; GFX1250-NOUNALIGNED-NEXT:    s_set_pc_i64 s[30:31]332;333; GFX9-UNALIGNED-LABEL: v_load_constant_v3i32_align2:334; GFX9-UNALIGNED:       ; %bb.0:335; GFX9-UNALIGNED-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)336; GFX9-UNALIGNED-NEXT:    global_load_dwordx3 v[0:2], v[0:1], off337; GFX9-UNALIGNED-NEXT:    s_waitcnt vmcnt(0)338; GFX9-UNALIGNED-NEXT:    s_setpc_b64 s[30:31]339;340; GFX9-NOUNALIGNED-LABEL: v_load_constant_v3i32_align2:341; GFX9-NOUNALIGNED:       ; %bb.0:342; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)343; GFX9-NOUNALIGNED-NEXT:    global_load_ushort v2, v[0:1], off344; GFX9-NOUNALIGNED-NEXT:    global_load_ushort v3, v[0:1], off offset:2345; GFX9-NOUNALIGNED-NEXT:    global_load_ushort v4, v[0:1], off offset:4346; GFX9-NOUNALIGNED-NEXT:    global_load_ushort v5, v[0:1], off offset:6347; GFX9-NOUNALIGNED-NEXT:    global_load_ushort v6, v[0:1], off offset:8348; GFX9-NOUNALIGNED-NEXT:    global_load_ushort v7, v[0:1], off offset:10349; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(4)350; GFX9-NOUNALIGNED-NEXT:    v_lshl_or_b32 v0, v3, 16, v2351; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(2)352; GFX9-NOUNALIGNED-NEXT:    v_lshl_or_b32 v1, v5, 16, v4353; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(0)354; GFX9-NOUNALIGNED-NEXT:    v_lshl_or_b32 v2, v7, 16, v6355; GFX9-NOUNALIGNED-NEXT:    s_setpc_b64 s[30:31]356;357; GFX7-UNALIGNED-LABEL: v_load_constant_v3i32_align2:358; GFX7-UNALIGNED:       ; %bb.0:359; GFX7-UNALIGNED-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)360; GFX7-UNALIGNED-NEXT:    s_mov_b32 s6, 0361; GFX7-UNALIGNED-NEXT:    s_mov_b32 s7, 0xf000362; GFX7-UNALIGNED-NEXT:    s_mov_b64 s[4:5], 0363; GFX7-UNALIGNED-NEXT:    buffer_load_dwordx3 v[0:2], v[0:1], s[4:7], 0 addr64364; GFX7-UNALIGNED-NEXT:    s_waitcnt vmcnt(0)365; GFX7-UNALIGNED-NEXT:    s_setpc_b64 s[30:31]366;367; GFX7-NOUNALIGNED-LABEL: v_load_constant_v3i32_align2:368; GFX7-NOUNALIGNED:       ; %bb.0:369; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)370; GFX7-NOUNALIGNED-NEXT:    s_mov_b32 s6, 0371; GFX7-NOUNALIGNED-NEXT:    s_mov_b32 s7, 0xf000372; GFX7-NOUNALIGNED-NEXT:    s_mov_b64 s[4:5], 0373; GFX7-NOUNALIGNED-NEXT:    buffer_load_ushort v2, v[0:1], s[4:7], 0 addr64 offset:2374; GFX7-NOUNALIGNED-NEXT:    buffer_load_ushort v3, v[0:1], s[4:7], 0 addr64 offset:6375; GFX7-NOUNALIGNED-NEXT:    buffer_load_ushort v4, v[0:1], s[4:7], 0 addr64 offset:10376; GFX7-NOUNALIGNED-NEXT:    buffer_load_ushort v5, v[0:1], s[4:7], 0 addr64377; GFX7-NOUNALIGNED-NEXT:    buffer_load_ushort v6, v[0:1], s[4:7], 0 addr64 offset:4378; GFX7-NOUNALIGNED-NEXT:    buffer_load_ushort v7, v[0:1], s[4:7], 0 addr64 offset:8379; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(5)380; GFX7-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v0, 16, v2381; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(4)382; GFX7-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v1, 16, v3383; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(3)384; GFX7-NOUNALIGNED-NEXT:    v_lshlrev_b32_e32 v2, 16, v4385; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(2)386; GFX7-NOUNALIGNED-NEXT:    v_or_b32_e32 v0, v0, v5387; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(1)388; GFX7-NOUNALIGNED-NEXT:    v_or_b32_e32 v1, v1, v6389; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(0)390; GFX7-NOUNALIGNED-NEXT:    v_or_b32_e32 v2, v2, v7391; GFX7-NOUNALIGNED-NEXT:    s_setpc_b64 s[30:31]392;393; GFX6-LABEL: v_load_constant_v3i32_align2:394; GFX6:       ; %bb.0:395; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)396; GFX6-NEXT:    s_mov_b32 s6, 0397; GFX6-NEXT:    s_mov_b32 s7, 0xf000398; GFX6-NEXT:    s_mov_b64 s[4:5], 0399; GFX6-NEXT:    buffer_load_ushort v2, v[0:1], s[4:7], 0 addr64 offset:2400; GFX6-NEXT:    buffer_load_ushort v3, v[0:1], s[4:7], 0 addr64 offset:6401; GFX6-NEXT:    buffer_load_ushort v4, v[0:1], s[4:7], 0 addr64 offset:10402; GFX6-NEXT:    buffer_load_ushort v5, v[0:1], s[4:7], 0 addr64403; GFX6-NEXT:    buffer_load_ushort v6, v[0:1], s[4:7], 0 addr64 offset:4404; GFX6-NEXT:    buffer_load_ushort v7, v[0:1], s[4:7], 0 addr64 offset:8405; GFX6-NEXT:    s_waitcnt vmcnt(5)406; GFX6-NEXT:    v_lshlrev_b32_e32 v0, 16, v2407; GFX6-NEXT:    s_waitcnt vmcnt(4)408; GFX6-NEXT:    v_lshlrev_b32_e32 v1, 16, v3409; GFX6-NEXT:    s_waitcnt vmcnt(3)410; GFX6-NEXT:    v_lshlrev_b32_e32 v2, 16, v4411; GFX6-NEXT:    s_waitcnt vmcnt(2)412; GFX6-NEXT:    v_or_b32_e32 v0, v0, v5413; GFX6-NEXT:    s_waitcnt vmcnt(1)414; GFX6-NEXT:    v_or_b32_e32 v1, v1, v6415; GFX6-NEXT:    s_waitcnt vmcnt(0)416; GFX6-NEXT:    v_or_b32_e32 v2, v2, v7417; GFX6-NEXT:    s_setpc_b64 s[30:31]418  %load = load <3 x i32>, ptr addrspace(4) %ptr, align 2419  ret <3 x i32> %load420}421 422define <3 x i32> @v_load_constant_v3i32_align4(ptr addrspace(4) %ptr) {423; GFX12-UNALIGNED-LABEL: v_load_constant_v3i32_align4:424; GFX12-UNALIGNED:       ; %bb.0:425; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0426; GFX12-UNALIGNED-NEXT:    s_wait_expcnt 0x0427; GFX12-UNALIGNED-NEXT:    s_wait_samplecnt 0x0428; GFX12-UNALIGNED-NEXT:    s_wait_bvhcnt 0x0429; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x0430; GFX12-UNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off431; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt 0x0432; GFX12-UNALIGNED-NEXT:    s_setpc_b64 s[30:31]433;434; GFX12-NOUNALIGNED-LABEL: v_load_constant_v3i32_align4:435; GFX12-NOUNALIGNED:       ; %bb.0:436; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0437; GFX12-NOUNALIGNED-NEXT:    s_wait_expcnt 0x0438; GFX12-NOUNALIGNED-NEXT:    s_wait_samplecnt 0x0439; GFX12-NOUNALIGNED-NEXT:    s_wait_bvhcnt 0x0440; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x0441; GFX12-NOUNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off442; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x0443; GFX12-NOUNALIGNED-NEXT:    s_setpc_b64 s[30:31]444;445; GFX1250-LABEL: v_load_constant_v3i32_align4:446; GFX1250:       ; %bb.0:447; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x0448; GFX1250-NEXT:    s_wait_kmcnt 0x0449; GFX1250-NEXT:    global_load_b96 v[0:2], v[0:1], off450; GFX1250-NEXT:    s_wait_loadcnt 0x0451; GFX1250-NEXT:    s_set_pc_i64 s[30:31]452;453; GFX9-LABEL: v_load_constant_v3i32_align4:454; GFX9:       ; %bb.0:455; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)456; GFX9-NEXT:    global_load_dwordx3 v[0:2], v[0:1], off457; GFX9-NEXT:    s_waitcnt vmcnt(0)458; GFX9-NEXT:    s_setpc_b64 s[30:31]459;460; GFX7-LABEL: v_load_constant_v3i32_align4:461; GFX7:       ; %bb.0:462; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)463; GFX7-NEXT:    s_mov_b32 s6, 0464; GFX7-NEXT:    s_mov_b32 s7, 0xf000465; GFX7-NEXT:    s_mov_b64 s[4:5], 0466; GFX7-NEXT:    buffer_load_dwordx3 v[0:2], v[0:1], s[4:7], 0 addr64467; GFX7-NEXT:    s_waitcnt vmcnt(0)468; GFX7-NEXT:    s_setpc_b64 s[30:31]469;470; GFX6-LABEL: v_load_constant_v3i32_align4:471; GFX6:       ; %bb.0:472; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)473; GFX6-NEXT:    s_mov_b32 s6, 0474; GFX6-NEXT:    s_mov_b32 s7, 0xf000475; GFX6-NEXT:    s_mov_b64 s[4:5], 0476; GFX6-NEXT:    buffer_load_dwordx2 v[3:4], v[0:1], s[4:7], 0 addr64477; GFX6-NEXT:    buffer_load_dword v2, v[0:1], s[4:7], 0 addr64 offset:8478; GFX6-NEXT:    s_waitcnt vmcnt(1)479; GFX6-NEXT:    v_mov_b32_e32 v0, v3480; GFX6-NEXT:    v_mov_b32_e32 v1, v4481; GFX6-NEXT:    s_waitcnt vmcnt(0)482; GFX6-NEXT:    s_setpc_b64 s[30:31]483  %load = load <3 x i32>, ptr addrspace(4) %ptr, align 4484  ret <3 x i32> %load485}486 487define i96 @v_load_constant_i96_align8(ptr addrspace(4) %ptr) {488; GFX12-UNALIGNED-LABEL: v_load_constant_i96_align8:489; GFX12-UNALIGNED:       ; %bb.0:490; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0491; GFX12-UNALIGNED-NEXT:    s_wait_expcnt 0x0492; GFX12-UNALIGNED-NEXT:    s_wait_samplecnt 0x0493; GFX12-UNALIGNED-NEXT:    s_wait_bvhcnt 0x0494; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x0495; GFX12-UNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off496; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt 0x0497; GFX12-UNALIGNED-NEXT:    s_setpc_b64 s[30:31]498;499; GFX12-NOUNALIGNED-LABEL: v_load_constant_i96_align8:500; GFX12-NOUNALIGNED:       ; %bb.0:501; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0502; GFX12-NOUNALIGNED-NEXT:    s_wait_expcnt 0x0503; GFX12-NOUNALIGNED-NEXT:    s_wait_samplecnt 0x0504; GFX12-NOUNALIGNED-NEXT:    s_wait_bvhcnt 0x0505; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x0506; GFX12-NOUNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off507; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x0508; GFX12-NOUNALIGNED-NEXT:    s_setpc_b64 s[30:31]509;510; GFX1250-LABEL: v_load_constant_i96_align8:511; GFX1250:       ; %bb.0:512; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x0513; GFX1250-NEXT:    s_wait_kmcnt 0x0514; GFX1250-NEXT:    global_load_b96 v[0:2], v[0:1], off515; GFX1250-NEXT:    s_wait_loadcnt 0x0516; GFX1250-NEXT:    s_set_pc_i64 s[30:31]517;518; GFX9-LABEL: v_load_constant_i96_align8:519; GFX9:       ; %bb.0:520; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)521; GFX9-NEXT:    global_load_dwordx3 v[0:2], v[0:1], off522; GFX9-NEXT:    s_waitcnt vmcnt(0)523; GFX9-NEXT:    s_setpc_b64 s[30:31]524;525; GFX7-LABEL: v_load_constant_i96_align8:526; GFX7:       ; %bb.0:527; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)528; GFX7-NEXT:    s_mov_b32 s6, 0529; GFX7-NEXT:    s_mov_b32 s7, 0xf000530; GFX7-NEXT:    s_mov_b64 s[4:5], 0531; GFX7-NEXT:    buffer_load_dwordx3 v[0:2], v[0:1], s[4:7], 0 addr64532; GFX7-NEXT:    s_waitcnt vmcnt(0)533; GFX7-NEXT:    s_setpc_b64 s[30:31]534;535; GFX6-LABEL: v_load_constant_i96_align8:536; GFX6:       ; %bb.0:537; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)538; GFX6-NEXT:    s_mov_b32 s6, 0539; GFX6-NEXT:    s_mov_b32 s7, 0xf000540; GFX6-NEXT:    s_mov_b64 s[4:5], 0541; GFX6-NEXT:    buffer_load_dwordx2 v[3:4], v[0:1], s[4:7], 0 addr64542; GFX6-NEXT:    buffer_load_dword v2, v[0:1], s[4:7], 0 addr64 offset:8543; GFX6-NEXT:    s_waitcnt vmcnt(1)544; GFX6-NEXT:    v_mov_b32_e32 v0, v3545; GFX6-NEXT:    v_mov_b32_e32 v1, v4546; GFX6-NEXT:    s_waitcnt vmcnt(0)547; GFX6-NEXT:    s_setpc_b64 s[30:31]548  %load = load i96, ptr addrspace(4) %ptr, align 8549  ret i96 %load550}551 552define <3 x i32> @v_load_constant_v3i32_align8(ptr addrspace(4) %ptr) {553; GFX12-UNALIGNED-LABEL: v_load_constant_v3i32_align8:554; GFX12-UNALIGNED:       ; %bb.0:555; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0556; GFX12-UNALIGNED-NEXT:    s_wait_expcnt 0x0557; GFX12-UNALIGNED-NEXT:    s_wait_samplecnt 0x0558; GFX12-UNALIGNED-NEXT:    s_wait_bvhcnt 0x0559; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x0560; GFX12-UNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off561; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt 0x0562; GFX12-UNALIGNED-NEXT:    s_setpc_b64 s[30:31]563;564; GFX12-NOUNALIGNED-LABEL: v_load_constant_v3i32_align8:565; GFX12-NOUNALIGNED:       ; %bb.0:566; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0567; GFX12-NOUNALIGNED-NEXT:    s_wait_expcnt 0x0568; GFX12-NOUNALIGNED-NEXT:    s_wait_samplecnt 0x0569; GFX12-NOUNALIGNED-NEXT:    s_wait_bvhcnt 0x0570; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x0571; GFX12-NOUNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off572; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x0573; GFX12-NOUNALIGNED-NEXT:    s_setpc_b64 s[30:31]574;575; GFX1250-LABEL: v_load_constant_v3i32_align8:576; GFX1250:       ; %bb.0:577; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x0578; GFX1250-NEXT:    s_wait_kmcnt 0x0579; GFX1250-NEXT:    global_load_b96 v[0:2], v[0:1], off580; GFX1250-NEXT:    s_wait_loadcnt 0x0581; GFX1250-NEXT:    s_set_pc_i64 s[30:31]582;583; GFX9-LABEL: v_load_constant_v3i32_align8:584; GFX9:       ; %bb.0:585; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)586; GFX9-NEXT:    global_load_dwordx3 v[0:2], v[0:1], off587; GFX9-NEXT:    s_waitcnt vmcnt(0)588; GFX9-NEXT:    s_setpc_b64 s[30:31]589;590; GFX7-LABEL: v_load_constant_v3i32_align8:591; GFX7:       ; %bb.0:592; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)593; GFX7-NEXT:    s_mov_b32 s6, 0594; GFX7-NEXT:    s_mov_b32 s7, 0xf000595; GFX7-NEXT:    s_mov_b64 s[4:5], 0596; GFX7-NEXT:    buffer_load_dwordx3 v[0:2], v[0:1], s[4:7], 0 addr64597; GFX7-NEXT:    s_waitcnt vmcnt(0)598; GFX7-NEXT:    s_setpc_b64 s[30:31]599;600; GFX6-LABEL: v_load_constant_v3i32_align8:601; GFX6:       ; %bb.0:602; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)603; GFX6-NEXT:    s_mov_b32 s6, 0604; GFX6-NEXT:    s_mov_b32 s7, 0xf000605; GFX6-NEXT:    s_mov_b64 s[4:5], 0606; GFX6-NEXT:    buffer_load_dwordx2 v[3:4], v[0:1], s[4:7], 0 addr64607; GFX6-NEXT:    buffer_load_dword v2, v[0:1], s[4:7], 0 addr64 offset:8608; GFX6-NEXT:    s_waitcnt vmcnt(1)609; GFX6-NEXT:    v_mov_b32_e32 v0, v3610; GFX6-NEXT:    v_mov_b32_e32 v1, v4611; GFX6-NEXT:    s_waitcnt vmcnt(0)612; GFX6-NEXT:    s_setpc_b64 s[30:31]613  %load = load <3 x i32>, ptr addrspace(4) %ptr, align 8614  ret <3 x i32> %load615}616 617define <6 x i16> @v_load_constant_v6i16_align8(ptr addrspace(4) %ptr) {618; GFX12-UNALIGNED-LABEL: v_load_constant_v6i16_align8:619; GFX12-UNALIGNED:       ; %bb.0:620; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0621; GFX12-UNALIGNED-NEXT:    s_wait_expcnt 0x0622; GFX12-UNALIGNED-NEXT:    s_wait_samplecnt 0x0623; GFX12-UNALIGNED-NEXT:    s_wait_bvhcnt 0x0624; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x0625; GFX12-UNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off626; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt 0x0627; GFX12-UNALIGNED-NEXT:    s_setpc_b64 s[30:31]628;629; GFX12-NOUNALIGNED-LABEL: v_load_constant_v6i16_align8:630; GFX12-NOUNALIGNED:       ; %bb.0:631; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0632; GFX12-NOUNALIGNED-NEXT:    s_wait_expcnt 0x0633; GFX12-NOUNALIGNED-NEXT:    s_wait_samplecnt 0x0634; GFX12-NOUNALIGNED-NEXT:    s_wait_bvhcnt 0x0635; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x0636; GFX12-NOUNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off637; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x0638; GFX12-NOUNALIGNED-NEXT:    s_setpc_b64 s[30:31]639;640; GFX1250-LABEL: v_load_constant_v6i16_align8:641; GFX1250:       ; %bb.0:642; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x0643; GFX1250-NEXT:    s_wait_kmcnt 0x0644; GFX1250-NEXT:    global_load_b96 v[0:2], v[0:1], off645; GFX1250-NEXT:    s_wait_loadcnt 0x0646; GFX1250-NEXT:    s_set_pc_i64 s[30:31]647;648; GFX9-LABEL: v_load_constant_v6i16_align8:649; GFX9:       ; %bb.0:650; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)651; GFX9-NEXT:    global_load_dwordx3 v[0:2], v[0:1], off652; GFX9-NEXT:    s_waitcnt vmcnt(0)653; GFX9-NEXT:    s_setpc_b64 s[30:31]654;655; GFX7-LABEL: v_load_constant_v6i16_align8:656; GFX7:       ; %bb.0:657; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)658; GFX7-NEXT:    s_mov_b32 s6, 0659; GFX7-NEXT:    s_mov_b32 s7, 0xf000660; GFX7-NEXT:    s_mov_b64 s[4:5], 0661; GFX7-NEXT:    buffer_load_dwordx3 v[6:8], v[0:1], s[4:7], 0 addr64662; GFX7-NEXT:    s_waitcnt vmcnt(0)663; GFX7-NEXT:    v_lshrrev_b32_e32 v1, 16, v6664; GFX7-NEXT:    v_lshrrev_b32_e32 v3, 16, v7665; GFX7-NEXT:    v_lshrrev_b32_e32 v5, 16, v8666; GFX7-NEXT:    v_mov_b32_e32 v0, v6667; GFX7-NEXT:    v_mov_b32_e32 v2, v7668; GFX7-NEXT:    v_mov_b32_e32 v4, v8669; GFX7-NEXT:    s_setpc_b64 s[30:31]670;671; GFX6-LABEL: v_load_constant_v6i16_align8:672; GFX6:       ; %bb.0:673; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)674; GFX6-NEXT:    s_mov_b32 s6, 0675; GFX6-NEXT:    s_mov_b32 s7, 0xf000676; GFX6-NEXT:    s_mov_b64 s[4:5], 0677; GFX6-NEXT:    buffer_load_dwordx2 v[6:7], v[0:1], s[4:7], 0 addr64678; GFX6-NEXT:    buffer_load_dword v4, v[0:1], s[4:7], 0 addr64 offset:8679; GFX6-NEXT:    s_waitcnt vmcnt(1)680; GFX6-NEXT:    v_lshrrev_b32_e32 v1, 16, v6681; GFX6-NEXT:    v_lshrrev_b32_e32 v3, 16, v7682; GFX6-NEXT:    s_waitcnt vmcnt(0)683; GFX6-NEXT:    v_lshrrev_b32_e32 v5, 16, v4684; GFX6-NEXT:    v_mov_b32_e32 v0, v6685; GFX6-NEXT:    v_mov_b32_e32 v2, v7686; GFX6-NEXT:    s_setpc_b64 s[30:31]687  %load = load <6 x i16>, ptr addrspace(4) %ptr, align 8688  ret <6 x i16> %load689}690 691define <12 x i8> @v_load_constant_v12i8_align8(ptr addrspace(4) %ptr) {692; GFX12-UNALIGNED-LABEL: v_load_constant_v12i8_align8:693; GFX12-UNALIGNED:       ; %bb.0:694; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0695; GFX12-UNALIGNED-NEXT:    s_wait_expcnt 0x0696; GFX12-UNALIGNED-NEXT:    s_wait_samplecnt 0x0697; GFX12-UNALIGNED-NEXT:    s_wait_bvhcnt 0x0698; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x0699; GFX12-UNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off700; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt 0x0701; GFX12-UNALIGNED-NEXT:    v_lshrrev_b32_e32 v13, 8, v0702; GFX12-UNALIGNED-NEXT:    v_lshrrev_b32_e32 v12, 16, v0703; GFX12-UNALIGNED-NEXT:    v_lshrrev_b32_e32 v3, 24, v0704; GFX12-UNALIGNED-NEXT:    v_lshrrev_b32_e32 v5, 8, v1705; GFX12-UNALIGNED-NEXT:    v_lshrrev_b32_e32 v6, 16, v1706; GFX12-UNALIGNED-NEXT:    v_lshrrev_b32_e32 v7, 24, v1707; GFX12-UNALIGNED-NEXT:    v_lshrrev_b32_e32 v9, 8, v2708; GFX12-UNALIGNED-NEXT:    v_lshrrev_b32_e32 v10, 16, v2709; GFX12-UNALIGNED-NEXT:    v_lshrrev_b32_e32 v11, 24, v2710; GFX12-UNALIGNED-NEXT:    v_dual_mov_b32 v4, v1 :: v_dual_mov_b32 v1, v13711; GFX12-UNALIGNED-NEXT:    v_mov_b32_e32 v8, v2712; GFX12-UNALIGNED-NEXT:    v_mov_b32_e32 v2, v12713; GFX12-UNALIGNED-NEXT:    s_setpc_b64 s[30:31]714;715; GFX12-NOUNALIGNED-LABEL: v_load_constant_v12i8_align8:716; GFX12-NOUNALIGNED:       ; %bb.0:717; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0718; GFX12-NOUNALIGNED-NEXT:    s_wait_expcnt 0x0719; GFX12-NOUNALIGNED-NEXT:    s_wait_samplecnt 0x0720; GFX12-NOUNALIGNED-NEXT:    s_wait_bvhcnt 0x0721; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x0722; GFX12-NOUNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off723; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x0724; GFX12-NOUNALIGNED-NEXT:    v_lshrrev_b32_e32 v13, 8, v0725; GFX12-NOUNALIGNED-NEXT:    v_lshrrev_b32_e32 v12, 16, v0726; GFX12-NOUNALIGNED-NEXT:    v_lshrrev_b32_e32 v3, 24, v0727; GFX12-NOUNALIGNED-NEXT:    v_lshrrev_b32_e32 v5, 8, v1728; GFX12-NOUNALIGNED-NEXT:    v_lshrrev_b32_e32 v6, 16, v1729; GFX12-NOUNALIGNED-NEXT:    v_lshrrev_b32_e32 v7, 24, v1730; GFX12-NOUNALIGNED-NEXT:    v_lshrrev_b32_e32 v9, 8, v2731; GFX12-NOUNALIGNED-NEXT:    v_lshrrev_b32_e32 v10, 16, v2732; GFX12-NOUNALIGNED-NEXT:    v_lshrrev_b32_e32 v11, 24, v2733; GFX12-NOUNALIGNED-NEXT:    v_dual_mov_b32 v4, v1 :: v_dual_mov_b32 v1, v13734; GFX12-NOUNALIGNED-NEXT:    v_mov_b32_e32 v8, v2735; GFX12-NOUNALIGNED-NEXT:    v_mov_b32_e32 v2, v12736; GFX12-NOUNALIGNED-NEXT:    s_setpc_b64 s[30:31]737;738; GFX1250-LABEL: v_load_constant_v12i8_align8:739; GFX1250:       ; %bb.0:740; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x0741; GFX1250-NEXT:    s_wait_kmcnt 0x0742; GFX1250-NEXT:    global_load_b96 v[0:2], v[0:1], off743; GFX1250-NEXT:    s_wait_loadcnt 0x0744; GFX1250-NEXT:    v_dual_lshrrev_b32 v13, 8, v0 :: v_dual_lshrrev_b32 v12, 16, v0745; GFX1250-NEXT:    v_dual_lshrrev_b32 v3, 24, v0 :: v_dual_lshrrev_b32 v5, 8, v1746; GFX1250-NEXT:    v_dual_lshrrev_b32 v6, 16, v1 :: v_dual_lshrrev_b32 v7, 24, v1747; GFX1250-NEXT:    v_dual_lshrrev_b32 v9, 8, v2 :: v_dual_lshrrev_b32 v10, 16, v2748; GFX1250-NEXT:    v_dual_mov_b32 v4, v1 :: v_dual_lshrrev_b32 v11, 24, v2749; GFX1250-NEXT:    s_wait_xcnt 0x0750; GFX1250-NEXT:    v_dual_mov_b32 v8, v2 :: v_dual_mov_b32 v1, v13751; GFX1250-NEXT:    v_mov_b32_e32 v2, v12752; GFX1250-NEXT:    s_set_pc_i64 s[30:31]753;754; GFX9-LABEL: v_load_constant_v12i8_align8:755; GFX9:       ; %bb.0:756; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)757; GFX9-NEXT:    global_load_dwordx3 v[0:2], v[0:1], off758; GFX9-NEXT:    s_waitcnt vmcnt(0)759; GFX9-NEXT:    v_lshrrev_b32_e32 v13, 8, v0760; GFX9-NEXT:    v_lshrrev_b32_e32 v12, 16, v0761; GFX9-NEXT:    v_lshrrev_b32_e32 v3, 24, v0762; GFX9-NEXT:    v_lshrrev_b32_e32 v5, 8, v1763; GFX9-NEXT:    v_lshrrev_b32_e32 v6, 16, v1764; GFX9-NEXT:    v_lshrrev_b32_e32 v7, 24, v1765; GFX9-NEXT:    v_lshrrev_b32_e32 v9, 8, v2766; GFX9-NEXT:    v_lshrrev_b32_e32 v10, 16, v2767; GFX9-NEXT:    v_lshrrev_b32_e32 v11, 24, v2768; GFX9-NEXT:    v_mov_b32_e32 v4, v1769; GFX9-NEXT:    v_mov_b32_e32 v8, v2770; GFX9-NEXT:    v_mov_b32_e32 v1, v13771; GFX9-NEXT:    v_mov_b32_e32 v2, v12772; GFX9-NEXT:    s_setpc_b64 s[30:31]773;774; GFX7-LABEL: v_load_constant_v12i8_align8:775; GFX7:       ; %bb.0:776; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)777; GFX7-NEXT:    s_mov_b32 s6, 0778; GFX7-NEXT:    s_mov_b32 s7, 0xf000779; GFX7-NEXT:    s_mov_b64 s[4:5], 0780; GFX7-NEXT:    buffer_load_dwordx3 v[0:2], v[0:1], s[4:7], 0 addr64781; GFX7-NEXT:    s_waitcnt vmcnt(0)782; GFX7-NEXT:    v_lshrrev_b32_e32 v13, 8, v0783; GFX7-NEXT:    v_lshrrev_b32_e32 v12, 16, v0784; GFX7-NEXT:    v_lshrrev_b32_e32 v3, 24, v0785; GFX7-NEXT:    v_lshrrev_b32_e32 v5, 8, v1786; GFX7-NEXT:    v_lshrrev_b32_e32 v6, 16, v1787; GFX7-NEXT:    v_lshrrev_b32_e32 v7, 24, v1788; GFX7-NEXT:    v_lshrrev_b32_e32 v9, 8, v2789; GFX7-NEXT:    v_lshrrev_b32_e32 v10, 16, v2790; GFX7-NEXT:    v_lshrrev_b32_e32 v11, 24, v2791; GFX7-NEXT:    v_mov_b32_e32 v4, v1792; GFX7-NEXT:    v_mov_b32_e32 v8, v2793; GFX7-NEXT:    v_mov_b32_e32 v1, v13794; GFX7-NEXT:    v_mov_b32_e32 v2, v12795; GFX7-NEXT:    s_setpc_b64 s[30:31]796;797; GFX6-LABEL: v_load_constant_v12i8_align8:798; GFX6:       ; %bb.0:799; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)800; GFX6-NEXT:    s_mov_b32 s6, 0801; GFX6-NEXT:    s_mov_b32 s7, 0xf000802; GFX6-NEXT:    s_mov_b64 s[4:5], 0803; GFX6-NEXT:    buffer_load_dwordx2 v[12:13], v[0:1], s[4:7], 0 addr64804; GFX6-NEXT:    buffer_load_dword v8, v[0:1], s[4:7], 0 addr64 offset:8805; GFX6-NEXT:    s_waitcnt vmcnt(1)806; GFX6-NEXT:    v_lshrrev_b32_e32 v1, 8, v12807; GFX6-NEXT:    v_lshrrev_b32_e32 v2, 16, v12808; GFX6-NEXT:    v_lshrrev_b32_e32 v3, 24, v12809; GFX6-NEXT:    v_lshrrev_b32_e32 v5, 8, v13810; GFX6-NEXT:    v_lshrrev_b32_e32 v6, 16, v13811; GFX6-NEXT:    v_lshrrev_b32_e32 v7, 24, v13812; GFX6-NEXT:    s_waitcnt vmcnt(0)813; GFX6-NEXT:    v_lshrrev_b32_e32 v9, 8, v8814; GFX6-NEXT:    v_lshrrev_b32_e32 v10, 16, v8815; GFX6-NEXT:    v_lshrrev_b32_e32 v11, 24, v8816; GFX6-NEXT:    v_mov_b32_e32 v0, v12817; GFX6-NEXT:    v_mov_b32_e32 v4, v13818; GFX6-NEXT:    s_setpc_b64 s[30:31]819  %load = load <12 x i8>, ptr addrspace(4) %ptr, align 8820  ret <12 x i8> %load821}822 823define <3 x i32> @v_load_constant_v3i32_align16(ptr addrspace(4) %ptr) {824; GFX12-UNALIGNED-LABEL: v_load_constant_v3i32_align16:825; GFX12-UNALIGNED:       ; %bb.0:826; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0827; GFX12-UNALIGNED-NEXT:    s_wait_expcnt 0x0828; GFX12-UNALIGNED-NEXT:    s_wait_samplecnt 0x0829; GFX12-UNALIGNED-NEXT:    s_wait_bvhcnt 0x0830; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x0831; GFX12-UNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off832; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt 0x0833; GFX12-UNALIGNED-NEXT:    s_setpc_b64 s[30:31]834;835; GFX12-NOUNALIGNED-LABEL: v_load_constant_v3i32_align16:836; GFX12-NOUNALIGNED:       ; %bb.0:837; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt_dscnt 0x0838; GFX12-NOUNALIGNED-NEXT:    s_wait_expcnt 0x0839; GFX12-NOUNALIGNED-NEXT:    s_wait_samplecnt 0x0840; GFX12-NOUNALIGNED-NEXT:    s_wait_bvhcnt 0x0841; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x0842; GFX12-NOUNALIGNED-NEXT:    global_load_b96 v[0:2], v[0:1], off843; GFX12-NOUNALIGNED-NEXT:    s_wait_loadcnt 0x0844; GFX12-NOUNALIGNED-NEXT:    s_setpc_b64 s[30:31]845;846; GFX1250-LABEL: v_load_constant_v3i32_align16:847; GFX1250:       ; %bb.0:848; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x0849; GFX1250-NEXT:    s_wait_kmcnt 0x0850; GFX1250-NEXT:    global_load_b96 v[0:2], v[0:1], off851; GFX1250-NEXT:    s_wait_loadcnt 0x0852; GFX1250-NEXT:    s_set_pc_i64 s[30:31]853;854; GFX9-LABEL: v_load_constant_v3i32_align16:855; GFX9:       ; %bb.0:856; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)857; GFX9-NEXT:    global_load_dwordx3 v[0:2], v[0:1], off858; GFX9-NEXT:    s_waitcnt vmcnt(0)859; GFX9-NEXT:    s_setpc_b64 s[30:31]860;861; GFX7-LABEL: v_load_constant_v3i32_align16:862; GFX7:       ; %bb.0:863; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)864; GFX7-NEXT:    s_mov_b32 s6, 0865; GFX7-NEXT:    s_mov_b32 s7, 0xf000866; GFX7-NEXT:    s_mov_b64 s[4:5], 0867; GFX7-NEXT:    buffer_load_dwordx3 v[0:2], v[0:1], s[4:7], 0 addr64868; GFX7-NEXT:    s_waitcnt vmcnt(0)869; GFX7-NEXT:    s_setpc_b64 s[30:31]870;871; GFX6-LABEL: v_load_constant_v3i32_align16:872; GFX6:       ; %bb.0:873; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)874; GFX6-NEXT:    s_mov_b32 s6, 0875; GFX6-NEXT:    s_mov_b32 s7, 0xf000876; GFX6-NEXT:    s_mov_b64 s[4:5], 0877; GFX6-NEXT:    buffer_load_dwordx4 v[0:3], v[0:1], s[4:7], 0 addr64878; GFX6-NEXT:    s_waitcnt vmcnt(0)879; GFX6-NEXT:    s_setpc_b64 s[30:31]880  %load = load <3 x i32>, ptr addrspace(4) %ptr, align 16881  ret <3 x i32> %load882}883 884define amdgpu_ps <3 x i32> @s_load_constant_v3i32_align1(ptr addrspace(4) inreg %ptr) {885; GFX12-UNALIGNED-LABEL: s_load_constant_v3i32_align1:886; GFX12-UNALIGNED:       ; %bb.0:887; GFX12-UNALIGNED-NEXT:    v_mov_b32_e32 v0, 0888; GFX12-UNALIGNED-NEXT:    global_load_b96 v[0:2], v0, s[0:1]889; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt 0x0890; GFX12-UNALIGNED-NEXT:    v_readfirstlane_b32 s0, v0891; GFX12-UNALIGNED-NEXT:    v_readfirstlane_b32 s1, v1892; GFX12-UNALIGNED-NEXT:    v_readfirstlane_b32 s2, v2893; GFX12-UNALIGNED-NEXT:    ; return to shader part epilog894;895; GFX12-NOUNALIGNED-LABEL: s_load_constant_v3i32_align1:896; GFX12-NOUNALIGNED:       ; %bb.0:897; GFX12-NOUNALIGNED-NEXT:    s_clause 0xb898; GFX12-NOUNALIGNED-NEXT:    s_load_u8 s2, s[0:1], 0x1899; GFX12-NOUNALIGNED-NEXT:    s_load_u8 s3, s[0:1], 0x3900; GFX12-NOUNALIGNED-NEXT:    s_load_u8 s4, s[0:1], 0x2901; GFX12-NOUNALIGNED-NEXT:    s_load_u8 s5, s[0:1], 0x5902; GFX12-NOUNALIGNED-NEXT:    s_load_u8 s6, s[0:1], 0x7903; GFX12-NOUNALIGNED-NEXT:    s_load_u8 s7, s[0:1], 0x6904; GFX12-NOUNALIGNED-NEXT:    s_load_u8 s8, s[0:1], 0x9905; GFX12-NOUNALIGNED-NEXT:    s_load_u8 s9, s[0:1], 0xb906; GFX12-NOUNALIGNED-NEXT:    s_load_u8 s10, s[0:1], 0x0907; GFX12-NOUNALIGNED-NEXT:    s_load_u8 s11, s[0:1], 0x4908; GFX12-NOUNALIGNED-NEXT:    s_load_u8 s12, s[0:1], 0xa909; GFX12-NOUNALIGNED-NEXT:    s_load_u8 s1, s[0:1], 0x8910; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x0911; GFX12-NOUNALIGNED-NEXT:    s_lshl_b32 s0, s2, 8912; GFX12-NOUNALIGNED-NEXT:    s_lshl_b32 s2, s3, 24913; GFX12-NOUNALIGNED-NEXT:    s_lshl_b32 s3, s4, 16914; GFX12-NOUNALIGNED-NEXT:    s_lshl_b32 s4, s5, 8915; GFX12-NOUNALIGNED-NEXT:    s_or_b32 s2, s2, s3916; GFX12-NOUNALIGNED-NEXT:    s_lshl_b32 s5, s6, 24917; GFX12-NOUNALIGNED-NEXT:    s_lshl_b32 s6, s7, 16918; GFX12-NOUNALIGNED-NEXT:    s_lshl_b32 s7, s8, 8919; GFX12-NOUNALIGNED-NEXT:    s_or_b32 s0, s0, s10920; GFX12-NOUNALIGNED-NEXT:    s_lshl_b32 s8, s9, 24921; GFX12-NOUNALIGNED-NEXT:    s_or_b32 s0, s2, s0922; GFX12-NOUNALIGNED-NEXT:    s_lshl_b32 s2, s12, 16923; GFX12-NOUNALIGNED-NEXT:    s_or_b32 s3, s4, s11924; GFX12-NOUNALIGNED-NEXT:    s_or_b32 s4, s5, s6925; GFX12-NOUNALIGNED-NEXT:    s_or_b32 s5, s7, s1926; GFX12-NOUNALIGNED-NEXT:    s_or_b32 s2, s8, s2927; GFX12-NOUNALIGNED-NEXT:    s_or_b32 s1, s4, s3928; GFX12-NOUNALIGNED-NEXT:    s_or_b32 s2, s2, s5929; GFX12-NOUNALIGNED-NEXT:    ; return to shader part epilog930;931; GFX1250-UNALIGNED-LABEL: s_load_constant_v3i32_align1:932; GFX1250-UNALIGNED:       ; %bb.0:933; GFX1250-UNALIGNED-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1934; GFX1250-UNALIGNED-NEXT:    v_mov_b32_e32 v0, 0935; GFX1250-UNALIGNED-NEXT:    global_load_b96 v[0:2], v0, s[0:1]936; GFX1250-UNALIGNED-NEXT:    s_wait_loadcnt 0x0937; GFX1250-UNALIGNED-NEXT:    v_readfirstlane_b32 s0, v0938; GFX1250-UNALIGNED-NEXT:    v_readfirstlane_b32 s1, v1939; GFX1250-UNALIGNED-NEXT:    v_readfirstlane_b32 s2, v2940; GFX1250-UNALIGNED-NEXT:    ; return to shader part epilog941;942; GFX1250-NOUNALIGNED-LABEL: s_load_constant_v3i32_align1:943; GFX1250-NOUNALIGNED:       ; %bb.0:944; GFX1250-NOUNALIGNED-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1945; GFX1250-NOUNALIGNED-NEXT:    s_clause 0xb946; GFX1250-NOUNALIGNED-NEXT:    s_load_u8 s2, s[0:1], 0x1947; GFX1250-NOUNALIGNED-NEXT:    s_load_u8 s3, s[0:1], 0x3948; GFX1250-NOUNALIGNED-NEXT:    s_load_u8 s4, s[0:1], 0x2949; GFX1250-NOUNALIGNED-NEXT:    s_load_u8 s5, s[0:1], 0x5950; GFX1250-NOUNALIGNED-NEXT:    s_load_u8 s6, s[0:1], 0x7951; GFX1250-NOUNALIGNED-NEXT:    s_load_u8 s7, s[0:1], 0x6952; GFX1250-NOUNALIGNED-NEXT:    s_load_u8 s8, s[0:1], 0x9953; GFX1250-NOUNALIGNED-NEXT:    s_load_u8 s9, s[0:1], 0xb954; GFX1250-NOUNALIGNED-NEXT:    s_load_u8 s10, s[0:1], 0x0955; GFX1250-NOUNALIGNED-NEXT:    s_load_u8 s11, s[0:1], 0x4956; GFX1250-NOUNALIGNED-NEXT:    s_load_u8 s12, s[0:1], 0xa957; GFX1250-NOUNALIGNED-NEXT:    s_load_u8 s13, s[0:1], 0x8958; GFX1250-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x0959; GFX1250-NOUNALIGNED-NEXT:    s_lshl_b32 s0, s2, 8960; GFX1250-NOUNALIGNED-NEXT:    s_lshl_b32 s1, s3, 24961; GFX1250-NOUNALIGNED-NEXT:    s_lshl_b32 s2, s4, 16962; GFX1250-NOUNALIGNED-NEXT:    s_lshl_b32 s3, s5, 8963; GFX1250-NOUNALIGNED-NEXT:    s_or_b32 s1, s1, s2964; GFX1250-NOUNALIGNED-NEXT:    s_lshl_b32 s4, s6, 24965; GFX1250-NOUNALIGNED-NEXT:    s_lshl_b32 s5, s7, 16966; GFX1250-NOUNALIGNED-NEXT:    s_lshl_b32 s6, s8, 8967; GFX1250-NOUNALIGNED-NEXT:    s_or_b32 s0, s0, s10968; GFX1250-NOUNALIGNED-NEXT:    s_lshl_b32 s7, s9, 24969; GFX1250-NOUNALIGNED-NEXT:    s_or_b32 s0, s1, s0970; GFX1250-NOUNALIGNED-NEXT:    s_lshl_b32 s1, s12, 16971; GFX1250-NOUNALIGNED-NEXT:    s_or_b32 s2, s3, s11972; GFX1250-NOUNALIGNED-NEXT:    s_or_b32 s3, s4, s5973; GFX1250-NOUNALIGNED-NEXT:    s_or_b32 s4, s6, s13974; GFX1250-NOUNALIGNED-NEXT:    s_or_b32 s5, s7, s1975; GFX1250-NOUNALIGNED-NEXT:    s_or_b32 s1, s3, s2976; GFX1250-NOUNALIGNED-NEXT:    s_or_b32 s2, s5, s4977; GFX1250-NOUNALIGNED-NEXT:    ; return to shader part epilog978;979; GFX9-UNALIGNED-LABEL: s_load_constant_v3i32_align1:980; GFX9-UNALIGNED:       ; %bb.0:981; GFX9-UNALIGNED-NEXT:    v_mov_b32_e32 v0, 0982; GFX9-UNALIGNED-NEXT:    global_load_dwordx3 v[0:2], v0, s[0:1]983; GFX9-UNALIGNED-NEXT:    s_waitcnt vmcnt(0)984; GFX9-UNALIGNED-NEXT:    v_readfirstlane_b32 s0, v0985; GFX9-UNALIGNED-NEXT:    v_readfirstlane_b32 s1, v1986; GFX9-UNALIGNED-NEXT:    v_readfirstlane_b32 s2, v2987; GFX9-UNALIGNED-NEXT:    ; return to shader part epilog988;989; GFX9-NOUNALIGNED-LABEL: s_load_constant_v3i32_align1:990; GFX9-NOUNALIGNED:       ; %bb.0:991; GFX9-NOUNALIGNED-NEXT:    v_mov_b32_e32 v0, 0992; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v1, v0, s[0:1]993; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v2, v0, s[0:1] offset:1994; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v3, v0, s[0:1] offset:2995; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v4, v0, s[0:1] offset:3996; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v5, v0, s[0:1] offset:4997; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v6, v0, s[0:1] offset:5998; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v7, v0, s[0:1] offset:6999; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v8, v0, s[0:1] offset:71000; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v9, v0, s[0:1] offset:81001; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v10, v0, s[0:1] offset:91002; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v11, v0, s[0:1] offset:101003; GFX9-NOUNALIGNED-NEXT:    global_load_ubyte v12, v0, s[0:1] offset:111004; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(11)1005; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s0, v11006; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(10)1007; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s1, v21008; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(9)1009; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s2, v31010; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(8)1011; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s3, v41012; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(7)1013; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s4, v51014; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(6)1015; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s5, v61016; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(5)1017; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s6, v71018; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(4)1019; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s7, v81020; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(3)1021; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s8, v91022; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(2)1023; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s9, v101024; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(1)1025; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s10, v111026; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(0)1027; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s11, v121028; GFX9-NOUNALIGNED-NEXT:    s_lshl_b32 s1, s1, 81029; GFX9-NOUNALIGNED-NEXT:    s_lshl_b32 s3, s3, 241030; GFX9-NOUNALIGNED-NEXT:    s_lshl_b32 s2, s2, 161031; GFX9-NOUNALIGNED-NEXT:    s_lshl_b32 s5, s5, 81032; GFX9-NOUNALIGNED-NEXT:    s_lshl_b32 s7, s7, 241033; GFX9-NOUNALIGNED-NEXT:    s_lshl_b32 s6, s6, 161034; GFX9-NOUNALIGNED-NEXT:    s_lshl_b32 s9, s9, 81035; GFX9-NOUNALIGNED-NEXT:    s_lshl_b32 s11, s11, 241036; GFX9-NOUNALIGNED-NEXT:    s_lshl_b32 s10, s10, 161037; GFX9-NOUNALIGNED-NEXT:    s_or_b32 s0, s1, s01038; GFX9-NOUNALIGNED-NEXT:    s_or_b32 s1, s3, s21039; GFX9-NOUNALIGNED-NEXT:    s_or_b32 s2, s5, s41040; GFX9-NOUNALIGNED-NEXT:    s_or_b32 s3, s7, s61041; GFX9-NOUNALIGNED-NEXT:    s_or_b32 s4, s9, s81042; GFX9-NOUNALIGNED-NEXT:    s_or_b32 s5, s11, s101043; GFX9-NOUNALIGNED-NEXT:    s_or_b32 s0, s1, s01044; GFX9-NOUNALIGNED-NEXT:    s_or_b32 s1, s3, s21045; GFX9-NOUNALIGNED-NEXT:    s_or_b32 s2, s5, s41046; GFX9-NOUNALIGNED-NEXT:    ; return to shader part epilog1047;1048; GFX7-UNALIGNED-LABEL: s_load_constant_v3i32_align1:1049; GFX7-UNALIGNED:       ; %bb.0:1050; GFX7-UNALIGNED-NEXT:    s_mov_b32 s2, -11051; GFX7-UNALIGNED-NEXT:    s_mov_b32 s3, 0xf0001052; GFX7-UNALIGNED-NEXT:    buffer_load_dwordx3 v[0:2], off, s[0:3], 01053; GFX7-UNALIGNED-NEXT:    s_waitcnt vmcnt(0)1054; GFX7-UNALIGNED-NEXT:    v_readfirstlane_b32 s0, v01055; GFX7-UNALIGNED-NEXT:    v_readfirstlane_b32 s1, v11056; GFX7-UNALIGNED-NEXT:    v_readfirstlane_b32 s2, v21057; GFX7-UNALIGNED-NEXT:    ; return to shader part epilog1058;1059; GFX7-NOUNALIGNED-LABEL: s_load_constant_v3i32_align1:1060; GFX7-NOUNALIGNED:       ; %bb.0:1061; GFX7-NOUNALIGNED-NEXT:    s_mov_b32 s2, -11062; GFX7-NOUNALIGNED-NEXT:    s_mov_b32 s3, 0xf0001063; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v0, off, s[0:3], 01064; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v1, off, s[0:3], 0 offset:11065; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v2, off, s[0:3], 0 offset:21066; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v3, off, s[0:3], 0 offset:31067; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v4, off, s[0:3], 0 offset:41068; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v5, off, s[0:3], 0 offset:51069; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v6, off, s[0:3], 0 offset:61070; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v7, off, s[0:3], 0 offset:71071; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v8, off, s[0:3], 0 offset:81072; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v9, off, s[0:3], 0 offset:91073; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v10, off, s[0:3], 0 offset:101074; GFX7-NOUNALIGNED-NEXT:    buffer_load_ubyte v11, off, s[0:3], 0 offset:111075; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(11)1076; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s0, v01077; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(10)1078; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s1, v11079; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(9)1080; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s2, v21081; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(8)1082; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s3, v31083; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(7)1084; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s4, v41085; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(6)1086; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s5, v51087; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(5)1088; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s6, v61089; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(4)1090; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s7, v71091; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(3)1092; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s8, v81093; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(2)1094; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s9, v91095; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(1)1096; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s10, v101097; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(0)1098; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s11, v111099; GFX7-NOUNALIGNED-NEXT:    s_lshl_b32 s1, s1, 81100; GFX7-NOUNALIGNED-NEXT:    s_lshl_b32 s3, s3, 241101; GFX7-NOUNALIGNED-NEXT:    s_lshl_b32 s2, s2, 161102; GFX7-NOUNALIGNED-NEXT:    s_lshl_b32 s5, s5, 81103; GFX7-NOUNALIGNED-NEXT:    s_lshl_b32 s7, s7, 241104; GFX7-NOUNALIGNED-NEXT:    s_lshl_b32 s6, s6, 161105; GFX7-NOUNALIGNED-NEXT:    s_lshl_b32 s9, s9, 81106; GFX7-NOUNALIGNED-NEXT:    s_lshl_b32 s11, s11, 241107; GFX7-NOUNALIGNED-NEXT:    s_lshl_b32 s10, s10, 161108; GFX7-NOUNALIGNED-NEXT:    s_or_b32 s0, s1, s01109; GFX7-NOUNALIGNED-NEXT:    s_or_b32 s1, s3, s21110; GFX7-NOUNALIGNED-NEXT:    s_or_b32 s2, s5, s41111; GFX7-NOUNALIGNED-NEXT:    s_or_b32 s3, s7, s61112; GFX7-NOUNALIGNED-NEXT:    s_or_b32 s4, s9, s81113; GFX7-NOUNALIGNED-NEXT:    s_or_b32 s5, s11, s101114; GFX7-NOUNALIGNED-NEXT:    s_or_b32 s0, s1, s01115; GFX7-NOUNALIGNED-NEXT:    s_or_b32 s1, s3, s21116; GFX7-NOUNALIGNED-NEXT:    s_or_b32 s2, s5, s41117; GFX7-NOUNALIGNED-NEXT:    ; return to shader part epilog1118;1119; GFX6-LABEL: s_load_constant_v3i32_align1:1120; GFX6:       ; %bb.0:1121; GFX6-NEXT:    s_mov_b32 s2, -11122; GFX6-NEXT:    s_mov_b32 s3, 0xf0001123; GFX6-NEXT:    buffer_load_ubyte v0, off, s[0:3], 01124; GFX6-NEXT:    buffer_load_ubyte v1, off, s[0:3], 0 offset:11125; GFX6-NEXT:    buffer_load_ubyte v2, off, s[0:3], 0 offset:21126; GFX6-NEXT:    buffer_load_ubyte v3, off, s[0:3], 0 offset:31127; GFX6-NEXT:    buffer_load_ubyte v4, off, s[0:3], 0 offset:41128; GFX6-NEXT:    buffer_load_ubyte v5, off, s[0:3], 0 offset:51129; GFX6-NEXT:    buffer_load_ubyte v6, off, s[0:3], 0 offset:61130; GFX6-NEXT:    buffer_load_ubyte v7, off, s[0:3], 0 offset:71131; GFX6-NEXT:    buffer_load_ubyte v8, off, s[0:3], 0 offset:81132; GFX6-NEXT:    buffer_load_ubyte v9, off, s[0:3], 0 offset:91133; GFX6-NEXT:    buffer_load_ubyte v10, off, s[0:3], 0 offset:101134; GFX6-NEXT:    buffer_load_ubyte v11, off, s[0:3], 0 offset:111135; GFX6-NEXT:    s_waitcnt vmcnt(11)1136; GFX6-NEXT:    v_readfirstlane_b32 s0, v01137; GFX6-NEXT:    s_waitcnt vmcnt(10)1138; GFX6-NEXT:    v_readfirstlane_b32 s1, v11139; GFX6-NEXT:    s_waitcnt vmcnt(9)1140; GFX6-NEXT:    v_readfirstlane_b32 s2, v21141; GFX6-NEXT:    s_waitcnt vmcnt(8)1142; GFX6-NEXT:    v_readfirstlane_b32 s3, v31143; GFX6-NEXT:    s_waitcnt vmcnt(7)1144; GFX6-NEXT:    v_readfirstlane_b32 s4, v41145; GFX6-NEXT:    s_waitcnt vmcnt(6)1146; GFX6-NEXT:    v_readfirstlane_b32 s5, v51147; GFX6-NEXT:    s_waitcnt vmcnt(5)1148; GFX6-NEXT:    v_readfirstlane_b32 s6, v61149; GFX6-NEXT:    s_waitcnt vmcnt(4)1150; GFX6-NEXT:    v_readfirstlane_b32 s7, v71151; GFX6-NEXT:    s_waitcnt vmcnt(3)1152; GFX6-NEXT:    v_readfirstlane_b32 s8, v81153; GFX6-NEXT:    s_waitcnt vmcnt(2)1154; GFX6-NEXT:    v_readfirstlane_b32 s9, v91155; GFX6-NEXT:    s_waitcnt vmcnt(1)1156; GFX6-NEXT:    v_readfirstlane_b32 s10, v101157; GFX6-NEXT:    s_waitcnt vmcnt(0)1158; GFX6-NEXT:    v_readfirstlane_b32 s11, v111159; GFX6-NEXT:    s_lshl_b32 s1, s1, 81160; GFX6-NEXT:    s_lshl_b32 s3, s3, 241161; GFX6-NEXT:    s_lshl_b32 s2, s2, 161162; GFX6-NEXT:    s_lshl_b32 s5, s5, 81163; GFX6-NEXT:    s_lshl_b32 s7, s7, 241164; GFX6-NEXT:    s_lshl_b32 s6, s6, 161165; GFX6-NEXT:    s_lshl_b32 s9, s9, 81166; GFX6-NEXT:    s_lshl_b32 s11, s11, 241167; GFX6-NEXT:    s_lshl_b32 s10, s10, 161168; GFX6-NEXT:    s_or_b32 s0, s1, s01169; GFX6-NEXT:    s_or_b32 s1, s3, s21170; GFX6-NEXT:    s_or_b32 s2, s5, s41171; GFX6-NEXT:    s_or_b32 s3, s7, s61172; GFX6-NEXT:    s_or_b32 s4, s9, s81173; GFX6-NEXT:    s_or_b32 s5, s11, s101174; GFX6-NEXT:    s_or_b32 s0, s1, s01175; GFX6-NEXT:    s_or_b32 s1, s3, s21176; GFX6-NEXT:    s_or_b32 s2, s5, s41177; GFX6-NEXT:    ; return to shader part epilog1178  %load = load <3 x i32>, ptr addrspace(4) %ptr, align 11179  ret <3 x i32> %load1180}1181 1182define amdgpu_ps <3 x i32> @s_load_constant_v3i32_align2(ptr addrspace(4) inreg %ptr) {1183; GFX12-UNALIGNED-LABEL: s_load_constant_v3i32_align2:1184; GFX12-UNALIGNED:       ; %bb.0:1185; GFX12-UNALIGNED-NEXT:    v_mov_b32_e32 v0, 01186; GFX12-UNALIGNED-NEXT:    global_load_b96 v[0:2], v0, s[0:1]1187; GFX12-UNALIGNED-NEXT:    s_wait_loadcnt 0x01188; GFX12-UNALIGNED-NEXT:    v_readfirstlane_b32 s0, v01189; GFX12-UNALIGNED-NEXT:    v_readfirstlane_b32 s1, v11190; GFX12-UNALIGNED-NEXT:    v_readfirstlane_b32 s2, v21191; GFX12-UNALIGNED-NEXT:    ; return to shader part epilog1192;1193; GFX12-NOUNALIGNED-LABEL: s_load_constant_v3i32_align2:1194; GFX12-NOUNALIGNED:       ; %bb.0:1195; GFX12-NOUNALIGNED-NEXT:    s_clause 0x51196; GFX12-NOUNALIGNED-NEXT:    s_load_u16 s2, s[0:1], 0x21197; GFX12-NOUNALIGNED-NEXT:    s_load_u16 s3, s[0:1], 0x61198; GFX12-NOUNALIGNED-NEXT:    s_load_u16 s4, s[0:1], 0xa1199; GFX12-NOUNALIGNED-NEXT:    s_load_u16 s5, s[0:1], 0x01200; GFX12-NOUNALIGNED-NEXT:    s_load_u16 s6, s[0:1], 0x41201; GFX12-NOUNALIGNED-NEXT:    s_load_u16 s7, s[0:1], 0x81202; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x01203; GFX12-NOUNALIGNED-NEXT:    s_lshl_b32 s0, s2, 161204; GFX12-NOUNALIGNED-NEXT:    s_lshl_b32 s1, s3, 161205; GFX12-NOUNALIGNED-NEXT:    s_lshl_b32 s2, s4, 161206; GFX12-NOUNALIGNED-NEXT:    s_or_b32 s0, s0, s51207; GFX12-NOUNALIGNED-NEXT:    s_or_b32 s1, s1, s61208; GFX12-NOUNALIGNED-NEXT:    s_or_b32 s2, s2, s71209; GFX12-NOUNALIGNED-NEXT:    ; return to shader part epilog1210;1211; GFX1250-UNALIGNED-LABEL: s_load_constant_v3i32_align2:1212; GFX1250-UNALIGNED:       ; %bb.0:1213; GFX1250-UNALIGNED-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11214; GFX1250-UNALIGNED-NEXT:    v_mov_b32_e32 v0, 01215; GFX1250-UNALIGNED-NEXT:    global_load_b96 v[0:2], v0, s[0:1]1216; GFX1250-UNALIGNED-NEXT:    s_wait_loadcnt 0x01217; GFX1250-UNALIGNED-NEXT:    v_readfirstlane_b32 s0, v01218; GFX1250-UNALIGNED-NEXT:    v_readfirstlane_b32 s1, v11219; GFX1250-UNALIGNED-NEXT:    v_readfirstlane_b32 s2, v21220; GFX1250-UNALIGNED-NEXT:    ; return to shader part epilog1221;1222; GFX1250-NOUNALIGNED-LABEL: s_load_constant_v3i32_align2:1223; GFX1250-NOUNALIGNED:       ; %bb.0:1224; GFX1250-NOUNALIGNED-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11225; GFX1250-NOUNALIGNED-NEXT:    s_clause 0x51226; GFX1250-NOUNALIGNED-NEXT:    s_load_u16 s2, s[0:1], 0x21227; GFX1250-NOUNALIGNED-NEXT:    s_load_u16 s3, s[0:1], 0x61228; GFX1250-NOUNALIGNED-NEXT:    s_load_u16 s4, s[0:1], 0xa1229; GFX1250-NOUNALIGNED-NEXT:    s_load_u16 s5, s[0:1], 0x01230; GFX1250-NOUNALIGNED-NEXT:    s_load_u16 s6, s[0:1], 0x41231; GFX1250-NOUNALIGNED-NEXT:    s_load_u16 s7, s[0:1], 0x81232; GFX1250-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x01233; GFX1250-NOUNALIGNED-NEXT:    s_lshl_b32 s0, s2, 161234; GFX1250-NOUNALIGNED-NEXT:    s_lshl_b32 s1, s3, 161235; GFX1250-NOUNALIGNED-NEXT:    s_lshl_b32 s2, s4, 161236; GFX1250-NOUNALIGNED-NEXT:    s_or_b32 s0, s0, s51237; GFX1250-NOUNALIGNED-NEXT:    s_or_b32 s1, s1, s61238; GFX1250-NOUNALIGNED-NEXT:    s_or_b32 s2, s2, s71239; GFX1250-NOUNALIGNED-NEXT:    ; return to shader part epilog1240;1241; GFX9-UNALIGNED-LABEL: s_load_constant_v3i32_align2:1242; GFX9-UNALIGNED:       ; %bb.0:1243; GFX9-UNALIGNED-NEXT:    v_mov_b32_e32 v0, 01244; GFX9-UNALIGNED-NEXT:    global_load_dwordx3 v[0:2], v0, s[0:1]1245; GFX9-UNALIGNED-NEXT:    s_waitcnt vmcnt(0)1246; GFX9-UNALIGNED-NEXT:    v_readfirstlane_b32 s0, v01247; GFX9-UNALIGNED-NEXT:    v_readfirstlane_b32 s1, v11248; GFX9-UNALIGNED-NEXT:    v_readfirstlane_b32 s2, v21249; GFX9-UNALIGNED-NEXT:    ; return to shader part epilog1250;1251; GFX9-NOUNALIGNED-LABEL: s_load_constant_v3i32_align2:1252; GFX9-NOUNALIGNED:       ; %bb.0:1253; GFX9-NOUNALIGNED-NEXT:    v_mov_b32_e32 v0, 01254; GFX9-NOUNALIGNED-NEXT:    global_load_ushort v1, v0, s[0:1]1255; GFX9-NOUNALIGNED-NEXT:    global_load_ushort v2, v0, s[0:1] offset:21256; GFX9-NOUNALIGNED-NEXT:    global_load_ushort v3, v0, s[0:1] offset:41257; GFX9-NOUNALIGNED-NEXT:    global_load_ushort v4, v0, s[0:1] offset:61258; GFX9-NOUNALIGNED-NEXT:    global_load_ushort v5, v0, s[0:1] offset:81259; GFX9-NOUNALIGNED-NEXT:    global_load_ushort v6, v0, s[0:1] offset:101260; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(5)1261; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s0, v11262; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(4)1263; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s1, v21264; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(3)1265; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s2, v31266; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(2)1267; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s3, v41268; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(1)1269; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s4, v51270; GFX9-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(0)1271; GFX9-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s5, v61272; GFX9-NOUNALIGNED-NEXT:    s_lshl_b32 s1, s1, 161273; GFX9-NOUNALIGNED-NEXT:    s_lshl_b32 s3, s3, 161274; GFX9-NOUNALIGNED-NEXT:    s_lshl_b32 s5, s5, 161275; GFX9-NOUNALIGNED-NEXT:    s_or_b32 s0, s1, s01276; GFX9-NOUNALIGNED-NEXT:    s_or_b32 s1, s3, s21277; GFX9-NOUNALIGNED-NEXT:    s_or_b32 s2, s5, s41278; GFX9-NOUNALIGNED-NEXT:    ; return to shader part epilog1279;1280; GFX7-UNALIGNED-LABEL: s_load_constant_v3i32_align2:1281; GFX7-UNALIGNED:       ; %bb.0:1282; GFX7-UNALIGNED-NEXT:    s_mov_b32 s2, -11283; GFX7-UNALIGNED-NEXT:    s_mov_b32 s3, 0xf0001284; GFX7-UNALIGNED-NEXT:    buffer_load_dwordx3 v[0:2], off, s[0:3], 01285; GFX7-UNALIGNED-NEXT:    s_waitcnt vmcnt(0)1286; GFX7-UNALIGNED-NEXT:    v_readfirstlane_b32 s0, v01287; GFX7-UNALIGNED-NEXT:    v_readfirstlane_b32 s1, v11288; GFX7-UNALIGNED-NEXT:    v_readfirstlane_b32 s2, v21289; GFX7-UNALIGNED-NEXT:    ; return to shader part epilog1290;1291; GFX7-NOUNALIGNED-LABEL: s_load_constant_v3i32_align2:1292; GFX7-NOUNALIGNED:       ; %bb.0:1293; GFX7-NOUNALIGNED-NEXT:    s_mov_b32 s2, -11294; GFX7-NOUNALIGNED-NEXT:    s_mov_b32 s3, 0xf0001295; GFX7-NOUNALIGNED-NEXT:    buffer_load_ushort v0, off, s[0:3], 01296; GFX7-NOUNALIGNED-NEXT:    buffer_load_ushort v1, off, s[0:3], 0 offset:21297; GFX7-NOUNALIGNED-NEXT:    buffer_load_ushort v2, off, s[0:3], 0 offset:41298; GFX7-NOUNALIGNED-NEXT:    buffer_load_ushort v3, off, s[0:3], 0 offset:61299; GFX7-NOUNALIGNED-NEXT:    buffer_load_ushort v4, off, s[0:3], 0 offset:81300; GFX7-NOUNALIGNED-NEXT:    buffer_load_ushort v5, off, s[0:3], 0 offset:101301; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(5)1302; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s0, v01303; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(4)1304; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s1, v11305; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(3)1306; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s2, v21307; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(2)1308; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s3, v31309; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(1)1310; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s4, v41311; GFX7-NOUNALIGNED-NEXT:    s_waitcnt vmcnt(0)1312; GFX7-NOUNALIGNED-NEXT:    v_readfirstlane_b32 s5, v51313; GFX7-NOUNALIGNED-NEXT:    s_lshl_b32 s1, s1, 161314; GFX7-NOUNALIGNED-NEXT:    s_lshl_b32 s3, s3, 161315; GFX7-NOUNALIGNED-NEXT:    s_lshl_b32 s5, s5, 161316; GFX7-NOUNALIGNED-NEXT:    s_or_b32 s0, s1, s01317; GFX7-NOUNALIGNED-NEXT:    s_or_b32 s1, s3, s21318; GFX7-NOUNALIGNED-NEXT:    s_or_b32 s2, s5, s41319; GFX7-NOUNALIGNED-NEXT:    ; return to shader part epilog1320;1321; GFX6-LABEL: s_load_constant_v3i32_align2:1322; GFX6:       ; %bb.0:1323; GFX6-NEXT:    s_mov_b32 s2, -11324; GFX6-NEXT:    s_mov_b32 s3, 0xf0001325; GFX6-NEXT:    buffer_load_ushort v0, off, s[0:3], 01326; GFX6-NEXT:    buffer_load_ushort v1, off, s[0:3], 0 offset:21327; GFX6-NEXT:    buffer_load_ushort v2, off, s[0:3], 0 offset:41328; GFX6-NEXT:    buffer_load_ushort v3, off, s[0:3], 0 offset:61329; GFX6-NEXT:    buffer_load_ushort v4, off, s[0:3], 0 offset:81330; GFX6-NEXT:    buffer_load_ushort v5, off, s[0:3], 0 offset:101331; GFX6-NEXT:    s_waitcnt vmcnt(5)1332; GFX6-NEXT:    v_readfirstlane_b32 s0, v01333; GFX6-NEXT:    s_waitcnt vmcnt(4)1334; GFX6-NEXT:    v_readfirstlane_b32 s1, v11335; GFX6-NEXT:    s_waitcnt vmcnt(3)1336; GFX6-NEXT:    v_readfirstlane_b32 s2, v21337; GFX6-NEXT:    s_waitcnt vmcnt(2)1338; GFX6-NEXT:    v_readfirstlane_b32 s3, v31339; GFX6-NEXT:    s_waitcnt vmcnt(1)1340; GFX6-NEXT:    v_readfirstlane_b32 s4, v41341; GFX6-NEXT:    s_waitcnt vmcnt(0)1342; GFX6-NEXT:    v_readfirstlane_b32 s5, v51343; GFX6-NEXT:    s_lshl_b32 s1, s1, 161344; GFX6-NEXT:    s_lshl_b32 s3, s3, 161345; GFX6-NEXT:    s_lshl_b32 s5, s5, 161346; GFX6-NEXT:    s_or_b32 s0, s1, s01347; GFX6-NEXT:    s_or_b32 s1, s3, s21348; GFX6-NEXT:    s_or_b32 s2, s5, s41349; GFX6-NEXT:    ; return to shader part epilog1350  %load = load <3 x i32>, ptr addrspace(4) %ptr, align 21351  ret <3 x i32> %load1352}1353 1354define amdgpu_ps <3 x i32> @s_load_constant_v3i32_align4(ptr addrspace(4) inreg %ptr) {1355; GFX12-UNALIGNED-LABEL: s_load_constant_v3i32_align4:1356; GFX12-UNALIGNED:       ; %bb.0:1357; GFX12-UNALIGNED-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01358; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x01359; GFX12-UNALIGNED-NEXT:    ; return to shader part epilog1360;1361; GFX12-NOUNALIGNED-LABEL: s_load_constant_v3i32_align4:1362; GFX12-NOUNALIGNED:       ; %bb.0:1363; GFX12-NOUNALIGNED-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01364; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x01365; GFX12-NOUNALIGNED-NEXT:    ; return to shader part epilog1366;1367; GFX1250-LABEL: s_load_constant_v3i32_align4:1368; GFX1250:       ; %bb.0:1369; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11370; GFX1250-NEXT:    s_mov_b32 s4, s01371; GFX1250-NEXT:    s_mov_b32 s5, s11372; GFX1250-NEXT:    s_load_b96 s[0:2], s[4:5], 0x01373; GFX1250-NEXT:    s_wait_kmcnt 0x01374; GFX1250-NEXT:    ; return to shader part epilog1375;1376; GFX9-LABEL: s_load_constant_v3i32_align4:1377; GFX9:       ; %bb.0:1378; GFX9-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x01379; GFX9-NEXT:    s_load_dword s2, s[0:1], 0x81380; GFX9-NEXT:    s_waitcnt lgkmcnt(0)1381; GFX9-NEXT:    s_mov_b32 s0, s41382; GFX9-NEXT:    s_mov_b32 s1, s51383; GFX9-NEXT:    ; return to shader part epilog1384;1385; GFX7-LABEL: s_load_constant_v3i32_align4:1386; GFX7:       ; %bb.0:1387; GFX7-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x01388; GFX7-NEXT:    s_load_dword s2, s[0:1], 0x21389; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1390; GFX7-NEXT:    s_mov_b32 s0, s41391; GFX7-NEXT:    s_mov_b32 s1, s51392; GFX7-NEXT:    ; return to shader part epilog1393;1394; GFX6-LABEL: s_load_constant_v3i32_align4:1395; GFX6:       ; %bb.0:1396; GFX6-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x01397; GFX6-NEXT:    s_load_dword s2, s[0:1], 0x21398; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1399; GFX6-NEXT:    s_mov_b32 s0, s41400; GFX6-NEXT:    s_mov_b32 s1, s51401; GFX6-NEXT:    ; return to shader part epilog1402  %load = load <3 x i32>, ptr addrspace(4) %ptr, align 41403  ret <3 x i32> %load1404}1405 1406define amdgpu_ps i96 @s_load_constant_i96_align8(ptr addrspace(4) inreg %ptr) {1407; GFX12-UNALIGNED-LABEL: s_load_constant_i96_align8:1408; GFX12-UNALIGNED:       ; %bb.0:1409; GFX12-UNALIGNED-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01410; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x01411; GFX12-UNALIGNED-NEXT:    ; return to shader part epilog1412;1413; GFX12-NOUNALIGNED-LABEL: s_load_constant_i96_align8:1414; GFX12-NOUNALIGNED:       ; %bb.0:1415; GFX12-NOUNALIGNED-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01416; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x01417; GFX12-NOUNALIGNED-NEXT:    ; return to shader part epilog1418;1419; GFX1250-LABEL: s_load_constant_i96_align8:1420; GFX1250:       ; %bb.0:1421; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11422; GFX1250-NEXT:    s_mov_b32 s4, s01423; GFX1250-NEXT:    s_mov_b32 s5, s11424; GFX1250-NEXT:    s_load_b96 s[0:2], s[4:5], 0x01425; GFX1250-NEXT:    s_wait_kmcnt 0x01426; GFX1250-NEXT:    ; return to shader part epilog1427;1428; GFX9-LABEL: s_load_constant_i96_align8:1429; GFX9:       ; %bb.0:1430; GFX9-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x01431; GFX9-NEXT:    s_load_dword s2, s[0:1], 0x81432; GFX9-NEXT:    s_waitcnt lgkmcnt(0)1433; GFX9-NEXT:    s_mov_b32 s0, s41434; GFX9-NEXT:    s_mov_b32 s1, s51435; GFX9-NEXT:    ; return to shader part epilog1436;1437; GFX7-LABEL: s_load_constant_i96_align8:1438; GFX7:       ; %bb.0:1439; GFX7-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x01440; GFX7-NEXT:    s_load_dword s2, s[0:1], 0x21441; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1442; GFX7-NEXT:    s_mov_b32 s0, s41443; GFX7-NEXT:    s_mov_b32 s1, s51444; GFX7-NEXT:    ; return to shader part epilog1445;1446; GFX6-LABEL: s_load_constant_i96_align8:1447; GFX6:       ; %bb.0:1448; GFX6-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x01449; GFX6-NEXT:    s_load_dword s2, s[0:1], 0x21450; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1451; GFX6-NEXT:    s_mov_b32 s0, s41452; GFX6-NEXT:    s_mov_b32 s1, s51453; GFX6-NEXT:    ; return to shader part epilog1454  %load = load i96, ptr addrspace(4) %ptr, align 81455  ret i96 %load1456}1457 1458define amdgpu_ps <3 x i32> @s_load_constant_v3i32_align8(ptr addrspace(4) inreg %ptr) {1459; GFX12-UNALIGNED-LABEL: s_load_constant_v3i32_align8:1460; GFX12-UNALIGNED:       ; %bb.0:1461; GFX12-UNALIGNED-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01462; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x01463; GFX12-UNALIGNED-NEXT:    ; return to shader part epilog1464;1465; GFX12-NOUNALIGNED-LABEL: s_load_constant_v3i32_align8:1466; GFX12-NOUNALIGNED:       ; %bb.0:1467; GFX12-NOUNALIGNED-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01468; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x01469; GFX12-NOUNALIGNED-NEXT:    ; return to shader part epilog1470;1471; GFX1250-LABEL: s_load_constant_v3i32_align8:1472; GFX1250:       ; %bb.0:1473; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11474; GFX1250-NEXT:    s_mov_b32 s4, s01475; GFX1250-NEXT:    s_mov_b32 s5, s11476; GFX1250-NEXT:    s_load_b96 s[0:2], s[4:5], 0x01477; GFX1250-NEXT:    s_wait_kmcnt 0x01478; GFX1250-NEXT:    ; return to shader part epilog1479;1480; GFX9-LABEL: s_load_constant_v3i32_align8:1481; GFX9:       ; %bb.0:1482; GFX9-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x01483; GFX9-NEXT:    s_load_dword s2, s[0:1], 0x81484; GFX9-NEXT:    s_waitcnt lgkmcnt(0)1485; GFX9-NEXT:    s_mov_b32 s0, s41486; GFX9-NEXT:    s_mov_b32 s1, s51487; GFX9-NEXT:    ; return to shader part epilog1488;1489; GFX7-LABEL: s_load_constant_v3i32_align8:1490; GFX7:       ; %bb.0:1491; GFX7-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x01492; GFX7-NEXT:    s_load_dword s2, s[0:1], 0x21493; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1494; GFX7-NEXT:    s_mov_b32 s0, s41495; GFX7-NEXT:    s_mov_b32 s1, s51496; GFX7-NEXT:    ; return to shader part epilog1497;1498; GFX6-LABEL: s_load_constant_v3i32_align8:1499; GFX6:       ; %bb.0:1500; GFX6-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x01501; GFX6-NEXT:    s_load_dword s2, s[0:1], 0x21502; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1503; GFX6-NEXT:    s_mov_b32 s0, s41504; GFX6-NEXT:    s_mov_b32 s1, s51505; GFX6-NEXT:    ; return to shader part epilog1506  %load = load <3 x i32>, ptr addrspace(4) %ptr, align 81507  ret <3 x i32> %load1508}1509 1510define amdgpu_ps <3 x i32> @s_load_constant_v6i16_align8(ptr addrspace(4) inreg %ptr) {1511; GFX12-UNALIGNED-LABEL: s_load_constant_v6i16_align8:1512; GFX12-UNALIGNED:       ; %bb.0:1513; GFX12-UNALIGNED-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01514; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x01515; GFX12-UNALIGNED-NEXT:    ; return to shader part epilog1516;1517; GFX12-NOUNALIGNED-LABEL: s_load_constant_v6i16_align8:1518; GFX12-NOUNALIGNED:       ; %bb.0:1519; GFX12-NOUNALIGNED-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01520; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x01521; GFX12-NOUNALIGNED-NEXT:    ; return to shader part epilog1522;1523; GFX1250-LABEL: s_load_constant_v6i16_align8:1524; GFX1250:       ; %bb.0:1525; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11526; GFX1250-NEXT:    s_mov_b32 s4, s01527; GFX1250-NEXT:    s_mov_b32 s5, s11528; GFX1250-NEXT:    s_load_b96 s[0:2], s[4:5], 0x01529; GFX1250-NEXT:    s_wait_kmcnt 0x01530; GFX1250-NEXT:    ; return to shader part epilog1531;1532; GFX9-LABEL: s_load_constant_v6i16_align8:1533; GFX9:       ; %bb.0:1534; GFX9-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x01535; GFX9-NEXT:    s_load_dword s2, s[0:1], 0x81536; GFX9-NEXT:    s_waitcnt lgkmcnt(0)1537; GFX9-NEXT:    s_mov_b32 s0, s41538; GFX9-NEXT:    s_mov_b32 s1, s51539; GFX9-NEXT:    ; return to shader part epilog1540;1541; GFX7-LABEL: s_load_constant_v6i16_align8:1542; GFX7:       ; %bb.0:1543; GFX7-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x01544; GFX7-NEXT:    s_load_dword s2, s[0:1], 0x21545; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1546; GFX7-NEXT:    s_mov_b32 s0, s41547; GFX7-NEXT:    s_mov_b32 s1, s51548; GFX7-NEXT:    ; return to shader part epilog1549;1550; GFX6-LABEL: s_load_constant_v6i16_align8:1551; GFX6:       ; %bb.0:1552; GFX6-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x01553; GFX6-NEXT:    s_load_dword s2, s[0:1], 0x21554; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1555; GFX6-NEXT:    s_mov_b32 s0, s41556; GFX6-NEXT:    s_mov_b32 s1, s51557; GFX6-NEXT:    ; return to shader part epilog1558  %load = load <6 x i16>, ptr addrspace(4) %ptr, align 81559  %cast = bitcast <6 x i16> %load to <3 x i32>1560  ret <3 x i32> %cast1561}1562 1563define amdgpu_ps <12 x i8> @s_load_constant_v12i8_align8(ptr addrspace(4) inreg %ptr) {1564; GFX12-UNALIGNED-LABEL: s_load_constant_v12i8_align8:1565; GFX12-UNALIGNED:       ; %bb.0:1566; GFX12-UNALIGNED-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01567; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x01568; GFX12-UNALIGNED-NEXT:    s_lshr_b32 s13, s0, 81569; GFX12-UNALIGNED-NEXT:    s_lshr_b32 s12, s0, 161570; GFX12-UNALIGNED-NEXT:    s_lshr_b32 s3, s0, 241571; GFX12-UNALIGNED-NEXT:    s_lshr_b32 s5, s1, 81572; GFX12-UNALIGNED-NEXT:    s_lshr_b32 s6, s1, 161573; GFX12-UNALIGNED-NEXT:    s_lshr_b32 s7, s1, 241574; GFX12-UNALIGNED-NEXT:    s_lshr_b32 s9, s2, 81575; GFX12-UNALIGNED-NEXT:    s_lshr_b32 s10, s2, 161576; GFX12-UNALIGNED-NEXT:    s_lshr_b32 s11, s2, 241577; GFX12-UNALIGNED-NEXT:    s_mov_b32 s4, s11578; GFX12-UNALIGNED-NEXT:    s_mov_b32 s8, s21579; GFX12-UNALIGNED-NEXT:    s_mov_b32 s1, s131580; GFX12-UNALIGNED-NEXT:    s_mov_b32 s2, s121581; GFX12-UNALIGNED-NEXT:    ; return to shader part epilog1582;1583; GFX12-NOUNALIGNED-LABEL: s_load_constant_v12i8_align8:1584; GFX12-NOUNALIGNED:       ; %bb.0:1585; GFX12-NOUNALIGNED-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01586; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x01587; GFX12-NOUNALIGNED-NEXT:    s_lshr_b32 s13, s0, 81588; GFX12-NOUNALIGNED-NEXT:    s_lshr_b32 s12, s0, 161589; GFX12-NOUNALIGNED-NEXT:    s_lshr_b32 s3, s0, 241590; GFX12-NOUNALIGNED-NEXT:    s_lshr_b32 s5, s1, 81591; GFX12-NOUNALIGNED-NEXT:    s_lshr_b32 s6, s1, 161592; GFX12-NOUNALIGNED-NEXT:    s_lshr_b32 s7, s1, 241593; GFX12-NOUNALIGNED-NEXT:    s_lshr_b32 s9, s2, 81594; GFX12-NOUNALIGNED-NEXT:    s_lshr_b32 s10, s2, 161595; GFX12-NOUNALIGNED-NEXT:    s_lshr_b32 s11, s2, 241596; GFX12-NOUNALIGNED-NEXT:    s_mov_b32 s4, s11597; GFX12-NOUNALIGNED-NEXT:    s_mov_b32 s8, s21598; GFX12-NOUNALIGNED-NEXT:    s_mov_b32 s1, s131599; GFX12-NOUNALIGNED-NEXT:    s_mov_b32 s2, s121600; GFX12-NOUNALIGNED-NEXT:    ; return to shader part epilog1601;1602; GFX1250-LABEL: s_load_constant_v12i8_align8:1603; GFX1250:       ; %bb.0:1604; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11605; GFX1250-NEXT:    s_mov_b32 s4, s01606; GFX1250-NEXT:    s_mov_b32 s5, s11607; GFX1250-NEXT:    s_load_b96 s[0:2], s[4:5], 0x01608; GFX1250-NEXT:    s_wait_kmcnt 0x01609; GFX1250-NEXT:    s_lshr_b32 s13, s0, 81610; GFX1250-NEXT:    s_lshr_b32 s12, s0, 161611; GFX1250-NEXT:    s_lshr_b32 s3, s0, 241612; GFX1250-NEXT:    s_lshr_b32 s5, s1, 81613; GFX1250-NEXT:    s_lshr_b32 s6, s1, 161614; GFX1250-NEXT:    s_lshr_b32 s7, s1, 241615; GFX1250-NEXT:    s_lshr_b32 s9, s2, 81616; GFX1250-NEXT:    s_lshr_b32 s10, s2, 161617; GFX1250-NEXT:    s_lshr_b32 s11, s2, 241618; GFX1250-NEXT:    s_mov_b32 s4, s11619; GFX1250-NEXT:    s_mov_b32 s8, s21620; GFX1250-NEXT:    s_mov_b32 s1, s131621; GFX1250-NEXT:    s_mov_b32 s2, s121622; GFX1250-NEXT:    ; return to shader part epilog1623;1624; GFX9-LABEL: s_load_constant_v12i8_align8:1625; GFX9:       ; %bb.0:1626; GFX9-NEXT:    s_load_dwordx2 s[12:13], s[0:1], 0x01627; GFX9-NEXT:    s_load_dword s8, s[0:1], 0x81628; GFX9-NEXT:    s_waitcnt lgkmcnt(0)1629; GFX9-NEXT:    s_lshr_b32 s1, s12, 81630; GFX9-NEXT:    s_lshr_b32 s2, s12, 161631; GFX9-NEXT:    s_lshr_b32 s3, s12, 241632; GFX9-NEXT:    s_lshr_b32 s5, s13, 81633; GFX9-NEXT:    s_lshr_b32 s6, s13, 161634; GFX9-NEXT:    s_lshr_b32 s7, s13, 241635; GFX9-NEXT:    s_lshr_b32 s9, s8, 81636; GFX9-NEXT:    s_lshr_b32 s10, s8, 161637; GFX9-NEXT:    s_lshr_b32 s11, s8, 241638; GFX9-NEXT:    s_mov_b32 s0, s121639; GFX9-NEXT:    s_mov_b32 s4, s131640; GFX9-NEXT:    ; return to shader part epilog1641;1642; GFX7-LABEL: s_load_constant_v12i8_align8:1643; GFX7:       ; %bb.0:1644; GFX7-NEXT:    s_load_dwordx2 s[12:13], s[0:1], 0x01645; GFX7-NEXT:    s_load_dword s8, s[0:1], 0x21646; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1647; GFX7-NEXT:    s_lshr_b32 s1, s12, 81648; GFX7-NEXT:    s_lshr_b32 s2, s12, 161649; GFX7-NEXT:    s_lshr_b32 s3, s12, 241650; GFX7-NEXT:    s_lshr_b32 s5, s13, 81651; GFX7-NEXT:    s_lshr_b32 s6, s13, 161652; GFX7-NEXT:    s_lshr_b32 s7, s13, 241653; GFX7-NEXT:    s_lshr_b32 s9, s8, 81654; GFX7-NEXT:    s_lshr_b32 s10, s8, 161655; GFX7-NEXT:    s_lshr_b32 s11, s8, 241656; GFX7-NEXT:    s_mov_b32 s0, s121657; GFX7-NEXT:    s_mov_b32 s4, s131658; GFX7-NEXT:    ; return to shader part epilog1659;1660; GFX6-LABEL: s_load_constant_v12i8_align8:1661; GFX6:       ; %bb.0:1662; GFX6-NEXT:    s_load_dwordx2 s[12:13], s[0:1], 0x01663; GFX6-NEXT:    s_load_dword s8, s[0:1], 0x21664; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1665; GFX6-NEXT:    s_lshr_b32 s1, s12, 81666; GFX6-NEXT:    s_lshr_b32 s2, s12, 161667; GFX6-NEXT:    s_lshr_b32 s3, s12, 241668; GFX6-NEXT:    s_lshr_b32 s5, s13, 81669; GFX6-NEXT:    s_lshr_b32 s6, s13, 161670; GFX6-NEXT:    s_lshr_b32 s7, s13, 241671; GFX6-NEXT:    s_lshr_b32 s9, s8, 81672; GFX6-NEXT:    s_lshr_b32 s10, s8, 161673; GFX6-NEXT:    s_lshr_b32 s11, s8, 241674; GFX6-NEXT:    s_mov_b32 s0, s121675; GFX6-NEXT:    s_mov_b32 s4, s131676; GFX6-NEXT:    ; return to shader part epilog1677  %load = load <12 x i8>, ptr addrspace(4) %ptr, align 81678  ret <12 x i8> %load1679}1680 1681define amdgpu_ps <3 x i32> @s_load_constant_v3i32_align16(ptr addrspace(4) inreg %ptr) {1682; GFX12-UNALIGNED-LABEL: s_load_constant_v3i32_align16:1683; GFX12-UNALIGNED:       ; %bb.0:1684; GFX12-UNALIGNED-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01685; GFX12-UNALIGNED-NEXT:    s_wait_kmcnt 0x01686; GFX12-UNALIGNED-NEXT:    ; return to shader part epilog1687;1688; GFX12-NOUNALIGNED-LABEL: s_load_constant_v3i32_align16:1689; GFX12-NOUNALIGNED:       ; %bb.0:1690; GFX12-NOUNALIGNED-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01691; GFX12-NOUNALIGNED-NEXT:    s_wait_kmcnt 0x01692; GFX12-NOUNALIGNED-NEXT:    ; return to shader part epilog1693;1694; GFX1250-LABEL: s_load_constant_v3i32_align16:1695; GFX1250:       ; %bb.0:1696; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11697; GFX1250-NEXT:    s_load_b96 s[0:2], s[0:1], 0x01698; GFX1250-NEXT:    s_wait_kmcnt 0x01699; GFX1250-NEXT:    ; return to shader part epilog1700;1701; GCN-LABEL: s_load_constant_v3i32_align16:1702; GCN:       ; %bb.0:1703; GCN-NEXT:    s_load_dwordx4 s[0:3], s[0:1], 0x01704; GCN-NEXT:    s_waitcnt lgkmcnt(0)1705; GCN-NEXT:    ; return to shader part epilog1706  %load = load <3 x i32>, ptr addrspace(4) %ptr, align 161707  ret <3 x i32> %load1708}1709;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:1710; GFX12: {{.*}}1711