; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc -mcpu=tahiti -mtriple=amdgcn-- -verify-machineinstrs < %s | FileCheck %s -check-prefixes=GFX67,GFX6
; RUN: llc -mcpu=hawaii -mtriple=amdgcn-- -verify-machineinstrs < %s | FileCheck %s -check-prefixes=GFX67,GFX7
; RUN: llc -mcpu=fiji -mtriple=amdgcn-- -verify-machineinstrs < %s | FileCheck %s -check-prefix=GFX8
; RUN: llc -mcpu=gfx900 -mtriple=amdgcn-- -verify-machineinstrs < %s | FileCheck %s -check-prefixes=GFX910,GFX9
; RUN: llc -mcpu=gfx1010 -mtriple=amdgcn-- -verify-machineinstrs < %s | FileCheck %s -check-prefixes=GFX910,GFX10
; RUN: llc -mcpu=gfx1100 -mtriple=amdgcn-- -verify-machineinstrs < %s | FileCheck %s -check-prefix=GFX11
; RUN: llc -mcpu=gfx1200 -mtriple=amdgcn-- -verify-machineinstrs < %s | FileCheck %s -check-prefix=GFX12

define amdgpu_ps void @raw_buffer_load_i8_tfe(<4 x i32> inreg %rsrc, ptr addrspace(1) %data_addr, ptr addrspace(1) %tfe_addr) {
; GFX67-LABEL: raw_buffer_load_i8_tfe:
; GFX67:       ; %bb.0:
; GFX67-NEXT:    v_mov_b32_e32 v4, 0
; GFX67-NEXT:    v_mov_b32_e32 v5, v4
; GFX67-NEXT:    buffer_load_ubyte v[4:5], off, s[0:3], 0 tfe
; GFX67-NEXT:    s_mov_b32 s2, 0
; GFX67-NEXT:    s_mov_b32 s3, 0xf000
; GFX67-NEXT:    s_mov_b32 s0, s2
; GFX67-NEXT:    s_mov_b32 s1, s2
; GFX67-NEXT:    s_waitcnt vmcnt(0)
; GFX67-NEXT:    buffer_store_byte v4, v[0:1], s[0:3], 0 addr64
; GFX67-NEXT:    buffer_store_dword v5, v[2:3], s[0:3], 0 addr64
; GFX67-NEXT:    s_endpgm
;
; GFX8-LABEL: raw_buffer_load_i8_tfe:
; GFX8:       ; %bb.0:
; GFX8-NEXT:    v_mov_b32_e32 v4, 0
; GFX8-NEXT:    v_mov_b32_e32 v5, v4
; GFX8-NEXT:    buffer_load_ubyte v[4:5], off, s[0:3], 0 tfe
; GFX8-NEXT:    s_waitcnt vmcnt(0)
; GFX8-NEXT:    flat_store_byte v[0:1], v4
; GFX8-NEXT:    flat_store_dword v[2:3], v5
; GFX8-NEXT:    s_endpgm
;
; GFX910-LABEL: raw_buffer_load_i8_tfe:
; GFX910:       ; %bb.0:
; GFX910-NEXT:    v_mov_b32_e32 v4, 0
; GFX910-NEXT:    v_mov_b32_e32 v5, v4
; GFX910-NEXT:    buffer_load_ubyte v[4:5], off, s[0:3], 0 tfe
; GFX910-NEXT:    s_waitcnt vmcnt(0)
; GFX910-NEXT:    global_store_byte v[0:1], v4, off
; GFX910-NEXT:    global_store_dword v[2:3], v5, off
; GFX910-NEXT:    s_endpgm
;
; GFX11-LABEL: raw_buffer_load_i8_tfe:
; GFX11:       ; %bb.0:
; GFX11-NEXT:    v_mov_b32_e32 v4, 0
; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX11-NEXT:    v_mov_b32_e32 v5, v4
; GFX11-NEXT:    buffer_load_u8 v[4:5], off, s[0:3], 0 tfe
; GFX11-NEXT:    s_waitcnt vmcnt(0)
; GFX11-NEXT:    global_store_b8 v[0:1], v4, off
; GFX11-NEXT:    global_store_b32 v[2:3], v5, off
; GFX11-NEXT:    s_endpgm
;
; GFX12-LABEL: raw_buffer_load_i8_tfe:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v4, 0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_mov_b32_e32 v5, v4
; GFX12-NEXT:    buffer_load_u8 v[4:5], off, s[0:3], null tfe
; GFX12-NEXT:    s_wait_loadcnt 0x0
; GFX12-NEXT:    global_store_b8 v[0:1], v4, off
; GFX12-NEXT:    global_store_b32 v[2:3], v5, off
; GFX12-NEXT:    s_endpgm
  %res = call { i8, i32 } @llvm.amdgcn.raw.buffer.load.sl_i8i32s(<4 x i32> %rsrc, i32 0, i32 0, i32 0)
  %data = extractvalue { i8, i32 } %res, 0
  store i8 %data, ptr addrspace(1) %data_addr
  %tfe = extractvalue { i8, i32 } %res, 1
  store i32 %tfe, ptr addrspace(1) %tfe_addr
  ret void
}

define amdgpu_ps void @raw_buffer_load_i16_tfe(<4 x i32> inreg %rsrc, ptr addrspace(1) %data_addr, ptr addrspace(1) %tfe_addr) {
; GFX67-LABEL: raw_buffer_load_i16_tfe:
; GFX67:       ; %bb.0:
; GFX67-NEXT:    v_mov_b32_e32 v4, 0
; GFX67-NEXT:    v_mov_b32_e32 v5, v4
; GFX67-NEXT:    buffer_load_ushort v[4:5], off, s[0:3], 0 tfe
; GFX67-NEXT:    s_mov_b32 s2, 0
; GFX67-NEXT:    s_mov_b32 s3, 0xf000
; GFX67-NEXT:    s_mov_b32 s0, s2
; GFX67-NEXT:    s_mov_b32 s1, s2
; GFX67-NEXT:    s_waitcnt vmcnt(0)
; GFX67-NEXT:    buffer_store_short v4, v[0:1], s[0:3], 0 addr64
; GFX67-NEXT:    buffer_store_dword v5, v[2:3], s[0:3], 0 addr64
; GFX67-NEXT:    s_endpgm
;
; GFX8-LABEL: raw_buffer_load_i16_tfe:
; GFX8:       ; %bb.0:
; GFX8-NEXT:    v_mov_b32_e32 v4, 0
; GFX8-NEXT:    v_mov_b32_e32 v5, v4
; GFX8-NEXT:    buffer_load_ushort v[4:5], off, s[0:3], 0 tfe
; GFX8-NEXT:    s_waitcnt vmcnt(0)
; GFX8-NEXT:    flat_store_short v[0:1], v4
; GFX8-NEXT:    flat_store_dword v[2:3], v5
; GFX8-NEXT:    s_endpgm
;
; GFX910-LABEL: raw_buffer_load_i16_tfe:
; GFX910:       ; %bb.0:
; GFX910-NEXT:    v_mov_b32_e32 v4, 0
; GFX910-NEXT:    v_mov_b32_e32 v5, v4
; GFX910-NEXT:    buffer_load_ushort v[4:5], off, s[0:3], 0 tfe
; GFX910-NEXT:    s_waitcnt vmcnt(0)
; GFX910-NEXT:    global_store_short v[0:1], v4, off
; GFX910-NEXT:    global_store_dword v[2:3], v5, off
; GFX910-NEXT:    s_endpgm
;
; GFX11-LABEL: raw_buffer_load_i16_tfe:
; GFX11:       ; %bb.0:
; GFX11-NEXT:    v_mov_b32_e32 v4, 0
; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX11-NEXT:    v_mov_b32_e32 v5, v4
; GFX11-NEXT:    buffer_load_u16 v[4:5], off, s[0:3], 0 tfe
; GFX11-NEXT:    s_waitcnt vmcnt(0)
; GFX11-NEXT:    global_store_b16 v[0:1], v4, off
; GFX11-NEXT:    global_store_b32 v[2:3], v5, off
; GFX11-NEXT:    s_endpgm
;
; GFX12-LABEL: raw_buffer_load_i16_tfe:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v4, 0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_mov_b32_e32 v5, v4
; GFX12-NEXT:    buffer_load_u16 v[4:5], off, s[0:3], null tfe
; GFX12-NEXT:    s_wait_loadcnt 0x0
; GFX12-NEXT:    global_store_b16 v[0:1], v4, off
; GFX12-NEXT:    global_store_b32 v[2:3], v5, off
; GFX12-NEXT:    s_endpgm
  %res = call { i16, i32 } @llvm.amdgcn.raw.buffer.load.sl_i16i32s(<4 x i32> %rsrc, i32 0, i32 0, i32 0)
  %data = extractvalue { i16, i32 } %res, 0
  store i16 %data, ptr addrspace(1) %data_addr
  %tfe = extractvalue { i16, i32 } %res, 1
  store i32 %tfe, ptr addrspace(1) %tfe_addr
  ret void
}

define amdgpu_ps void @raw_buffer_load_f16_tfe(<4 x i32> inreg %rsrc, ptr addrspace(1) %data_addr, ptr addrspace(1) %tfe_addr) {
; GFX67-LABEL: raw_buffer_load_f16_tfe:
; GFX67:       ; %bb.0:
; GFX67-NEXT:    v_mov_b32_e32 v4, 0
; GFX67-NEXT:    v_mov_b32_e32 v5, v4
; GFX67-NEXT:    buffer_load_ushort v[4:5], off, s[0:3], 0 tfe
; GFX67-NEXT:    s_mov_b32 s2, 0
; GFX67-NEXT:    s_mov_b32 s3, 0xf000
; GFX67-NEXT:    s_mov_b32 s0, s2
; GFX67-NEXT:    s_mov_b32 s1, s2
; GFX67-NEXT:    s_waitcnt vmcnt(0)
; GFX67-NEXT:    buffer_store_short v4, v[0:1], s[0:3], 0 addr64
; GFX67-NEXT:    buffer_store_dword v5, v[2:3], s[0:3], 0 addr64
; GFX67-NEXT:    s_endpgm
;
; GFX8-LABEL: raw_buffer_load_f16_tfe:
; GFX8:       ; %bb.0:
; GFX8-NEXT:    v_mov_b32_e32 v4, 0
; GFX8-NEXT:    v_mov_b32_e32 v5, v4
; GFX8-NEXT:    buffer_load_ushort v[4:5], off, s[0:3], 0 tfe
; GFX8-NEXT:    s_waitcnt vmcnt(0)
; GFX8-NEXT:    flat_store_short v[0:1], v4
; GFX8-NEXT:    flat_store_dword v[2:3], v5
; GFX8-NEXT:    s_endpgm
;
; GFX910-LABEL: raw_buffer_load_f16_tfe:
; GFX910:       ; %bb.0:
; GFX910-NEXT:    v_mov_b32_e32 v4, 0
; GFX910-NEXT:    v_mov_b32_e32 v5, v4
; GFX910-NEXT:    buffer_load_ushort v[4:5], off, s[0:3], 0 tfe
; GFX910-NEXT:    s_waitcnt vmcnt(0)
; GFX910-NEXT:    global_store_short v[0:1], v4, off
; GFX910-NEXT:    global_store_dword v[2:3], v5, off
; GFX910-NEXT:    s_endpgm
;
; GFX11-LABEL: raw_buffer_load_f16_tfe:
; GFX11:       ; %bb.0:
; GFX11-NEXT:    v_mov_b32_e32 v4, 0
; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX11-NEXT:    v_mov_b32_e32 v5, v4
; GFX11-NEXT:    buffer_load_u16 v[4:5], off, s[0:3], 0 tfe
; GFX11-NEXT:    s_waitcnt vmcnt(0)
; GFX11-NEXT:    global_store_b16 v[0:1], v4, off
; GFX11-NEXT:    global_store_b32 v[2:3], v5, off
; GFX11-NEXT:    s_endpgm
;
; GFX12-LABEL: raw_buffer_load_f16_tfe:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v4, 0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_mov_b32_e32 v5, v4
; GFX12-NEXT:    buffer_load_u16 v[4:5], off, s[0:3], null tfe
; GFX12-NEXT:    s_wait_loadcnt 0x0
; GFX12-NEXT:    global_store_b16 v[0:1], v4, off
; GFX12-NEXT:    global_store_b32 v[2:3], v5, off
; GFX12-NEXT:    s_endpgm
  %res = call { half, i32 } @llvm.amdgcn.raw.buffer.load.sl_f16i32s(<4 x i32> %rsrc, i32 0, i32 0, i32 0)
  %data = extractvalue { half, i32 } %res, 0
  store half %data, ptr addrspace(1) %data_addr
  %tfe = extractvalue { half, i32 } %res, 1
  store i32 %tfe, ptr addrspace(1) %tfe_addr
  ret void
}

define amdgpu_ps void @raw_buffer_load_i32_tfe(<4 x i32> inreg %rsrc, ptr addrspace(1) %data_addr, ptr addrspace(1) %tfe_addr) {
; GFX67-LABEL: raw_buffer_load_i32_tfe:
; GFX67:       ; %bb.0:
; GFX67-NEXT:    v_mov_b32_e32 v4, 0
; GFX67-NEXT:    v_mov_b32_e32 v5, v4
; GFX67-NEXT:    buffer_load_dword v[4:5], off, s[0:3], 0 tfe
; GFX67-NEXT:    s_mov_b32 s2, 0
; GFX67-NEXT:    s_mov_b32 s3, 0xf000
; GFX67-NEXT:    s_mov_b32 s0, s2
; GFX67-NEXT:    s_mov_b32 s1, s2
; GFX67-NEXT:    s_waitcnt vmcnt(0)
; GFX67-NEXT:    buffer_store_dword v4, v[0:1], s[0:3], 0 addr64
; GFX67-NEXT:    buffer_store_dword v5, v[2:3], s[0:3], 0 addr64
; GFX67-NEXT:    s_endpgm
;
; GFX8-LABEL: raw_buffer_load_i32_tfe:
; GFX8:       ; %bb.0:
; GFX8-NEXT:    v_mov_b32_e32 v4, 0
; GFX8-NEXT:    v_mov_b32_e32 v5, v4
; GFX8-NEXT:    buffer_load_dword v[4:5], off, s[0:3], 0 tfe
; GFX8-NEXT:    s_waitcnt vmcnt(0)
; GFX8-NEXT:    flat_store_dword v[0:1], v4
; GFX8-NEXT:    flat_store_dword v[2:3], v5
; GFX8-NEXT:    s_endpgm
;
; GFX910-LABEL: raw_buffer_load_i32_tfe:
; GFX910:       ; %bb.0:
; GFX910-NEXT:    v_mov_b32_e32 v4, 0
; GFX910-NEXT:    v_mov_b32_e32 v5, v4
; GFX910-NEXT:    buffer_load_dword v[4:5], off, s[0:3], 0 tfe
; GFX910-NEXT:    s_waitcnt vmcnt(0)
; GFX910-NEXT:    global_store_dword v[0:1], v4, off
; GFX910-NEXT:    global_store_dword v[2:3], v5, off
; GFX910-NEXT:    s_endpgm
;
; GFX11-LABEL: raw_buffer_load_i32_tfe:
; GFX11:       ; %bb.0:
; GFX11-NEXT:    v_mov_b32_e32 v4, 0
; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX11-NEXT:    v_mov_b32_e32 v5, v4
; GFX11-NEXT:    buffer_load_b32 v[4:5], off, s[0:3], 0 tfe
; GFX11-NEXT:    s_waitcnt vmcnt(0)
; GFX11-NEXT:    global_store_b32 v[0:1], v4, off
; GFX11-NEXT:    global_store_b32 v[2:3], v5, off
; GFX11-NEXT:    s_endpgm
;
; GFX12-LABEL: raw_buffer_load_i32_tfe:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v4, 0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_mov_b32_e32 v5, v4
; GFX12-NEXT:    buffer_load_b32 v[4:5], off, s[0:3], null tfe
; GFX12-NEXT:    s_wait_loadcnt 0x0
; GFX12-NEXT:    global_store_b32 v[0:1], v4, off
; GFX12-NEXT:    global_store_b32 v[2:3], v5, off
; GFX12-NEXT:    s_endpgm
  %res = call { i32, i32 } @llvm.amdgcn.raw.buffer.load.sl_i32i32s(<4 x i32> %rsrc, i32 0, i32 0, i32 0)
  %data = extractvalue { i32, i32 } %res, 0
  store i32 %data, ptr addrspace(1) %data_addr
  %tfe = extractvalue { i32, i32 } %res, 1
  store i32 %tfe, ptr addrspace(1) %tfe_addr
  ret void
}

define amdgpu_ps void @raw_buffer_load_v2i32_tfe(<4 x i32> inreg %rsrc, ptr addrspace(1) %data_addr, ptr addrspace(1) %tfe_addr) {
; GFX6-LABEL: raw_buffer_load_v2i32_tfe:
; GFX6:       ; %bb.0:
; GFX6-NEXT:    v_mov_b32_e32 v4, 0
; GFX6-NEXT:    v_mov_b32_e32 v5, v4
; GFX6-NEXT:    v_mov_b32_e32 v6, v4
; GFX6-NEXT:    v_mov_b32_e32 v7, v4
; GFX6-NEXT:    buffer_load_dwordx3 v[4:7], off, s[0:3], 0 tfe
; GFX6-NEXT:    s_mov_b32 s2, 0
; GFX6-NEXT:    s_mov_b32 s3, 0xf000
; GFX6-NEXT:    s_mov_b32 s0, s2
; GFX6-NEXT:    s_mov_b32 s1, s2
; GFX6-NEXT:    s_waitcnt vmcnt(0)
; GFX6-NEXT:    buffer_store_dwordx2 v[4:5], v[0:1], s[0:3], 0 addr64
; GFX6-NEXT:    buffer_store_dword v6, v[2:3], s[0:3], 0 addr64
; GFX6-NEXT:    s_endpgm
;
; GFX7-LABEL: raw_buffer_load_v2i32_tfe:
; GFX7:       ; %bb.0:
; GFX7-NEXT:    v_mov_b32_e32 v4, 0
; GFX7-NEXT:    v_mov_b32_e32 v5, v4
; GFX7-NEXT:    v_mov_b32_e32 v6, v4
; GFX7-NEXT:    buffer_load_dwordx2 v[4:6], off, s[0:3], 0 tfe
; GFX7-NEXT:    s_mov_b32 s2, 0
; GFX7-NEXT:    s_mov_b32 s3, 0xf000
; GFX7-NEXT:    s_mov_b32 s0, s2
; GFX7-NEXT:    s_mov_b32 s1, s2
; GFX7-NEXT:    s_waitcnt vmcnt(0)
; GFX7-NEXT:    buffer_store_dwordx2 v[4:5], v[0:1], s[0:3], 0 addr64
; GFX7-NEXT:    buffer_store_dword v6, v[2:3], s[0:3], 0 addr64
; GFX7-NEXT:    s_endpgm
;
; GFX8-LABEL: raw_buffer_load_v2i32_tfe:
; GFX8:       ; %bb.0:
; GFX8-NEXT:    v_mov_b32_e32 v4, 0
; GFX8-NEXT:    v_mov_b32_e32 v5, v4
; GFX8-NEXT:    v_mov_b32_e32 v6, v4
; GFX8-NEXT:    buffer_load_dwordx2 v[4:6], off, s[0:3], 0 tfe
; GFX8-NEXT:    s_waitcnt vmcnt(0)
; GFX8-NEXT:    flat_store_dwordx2 v[0:1], v[4:5]
; GFX8-NEXT:    flat_store_dword v[2:3], v6
; GFX8-NEXT:    s_endpgm
;
; GFX910-LABEL: raw_buffer_load_v2i32_tfe:
; GFX910:       ; %bb.0:
; GFX910-NEXT:    v_mov_b32_e32 v4, 0
; GFX910-NEXT:    v_mov_b32_e32 v5, v4
; GFX910-NEXT:    v_mov_b32_e32 v6, v4
; GFX910-NEXT:    buffer_load_dwordx2 v[4:6], off, s[0:3], 0 tfe
; GFX910-NEXT:    s_waitcnt vmcnt(0)
; GFX910-NEXT:    global_store_dwordx2 v[0:1], v[4:5], off
; GFX910-NEXT:    global_store_dword v[2:3], v6, off
; GFX910-NEXT:    s_endpgm
;
; GFX11-LABEL: raw_buffer_load_v2i32_tfe:
; GFX11:       ; %bb.0:
; GFX11-NEXT:    v_mov_b32_e32 v4, 0
; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX11-NEXT:    v_mov_b32_e32 v5, v4
; GFX11-NEXT:    v_mov_b32_e32 v6, v4
; GFX11-NEXT:    buffer_load_b64 v[4:6], off, s[0:3], 0 tfe
; GFX11-NEXT:    s_waitcnt vmcnt(0)
; GFX11-NEXT:    global_store_b64 v[0:1], v[4:5], off
; GFX11-NEXT:    global_store_b32 v[2:3], v6, off
; GFX11-NEXT:    s_endpgm
;
; GFX12-LABEL: raw_buffer_load_v2i32_tfe:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v4, 0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_dual_mov_b32 v5, v4 :: v_dual_mov_b32 v6, v4
; GFX12-NEXT:    buffer_load_b64 v[4:6], off, s[0:3], null tfe
; GFX12-NEXT:    s_wait_loadcnt 0x0
; GFX12-NEXT:    global_store_b64 v[0:1], v[4:5], off
; GFX12-NEXT:    global_store_b32 v[2:3], v6, off
; GFX12-NEXT:    s_endpgm
  %res = call { <2 x i32>, i32 } @llvm.amdgcn.raw.buffer.load.sl_v2i32i32s(<4 x i32> %rsrc, i32 0, i32 0, i32 0)
  %data = extractvalue { <2 x i32>, i32 } %res, 0
  store <2 x i32> %data, ptr addrspace(1) %data_addr
  %tfe = extractvalue { <2 x i32>, i32 } %res, 1
  store i32 %tfe, ptr addrspace(1) %tfe_addr
  ret void
}

define amdgpu_ps void @raw_buffer_load_v2f32_tfe(<4 x i32> inreg %rsrc, ptr addrspace(1) %data_addr, ptr addrspace(1) %tfe_addr) {
; GFX6-LABEL: raw_buffer_load_v2f32_tfe:
; GFX6:       ; %bb.0:
; GFX6-NEXT:    v_mov_b32_e32 v4, 0
; GFX6-NEXT:    v_mov_b32_e32 v5, v4
; GFX6-NEXT:    v_mov_b32_e32 v6, v4
; GFX6-NEXT:    v_mov_b32_e32 v7, v4
; GFX6-NEXT:    buffer_load_dwordx3 v[4:7], off, s[0:3], 0 tfe
; GFX6-NEXT:    s_mov_b32 s2, 0
; GFX6-NEXT:    s_mov_b32 s3, 0xf000
; GFX6-NEXT:    s_mov_b32 s0, s2
; GFX6-NEXT:    s_mov_b32 s1, s2
; GFX6-NEXT:    s_waitcnt vmcnt(0)
; GFX6-NEXT:    buffer_store_dwordx2 v[4:5], v[0:1], s[0:3], 0 addr64
; GFX6-NEXT:    buffer_store_dword v6, v[2:3], s[0:3], 0 addr64
; GFX6-NEXT:    s_endpgm
;
; GFX7-LABEL: raw_buffer_load_v2f32_tfe:
; GFX7:       ; %bb.0:
; GFX7-NEXT:    v_mov_b32_e32 v4, 0
; GFX7-NEXT:    v_mov_b32_e32 v5, v4
; GFX7-NEXT:    v_mov_b32_e32 v6, v4
; GFX7-NEXT:    buffer_load_dwordx2 v[4:6], off, s[0:3], 0 tfe
; GFX7-NEXT:    s_mov_b32 s2, 0
; GFX7-NEXT:    s_mov_b32 s3, 0xf000
; GFX7-NEXT:    s_mov_b32 s0, s2
; GFX7-NEXT:    s_mov_b32 s1, s2
; GFX7-NEXT:    s_waitcnt vmcnt(0)
; GFX7-NEXT:    buffer_store_dwordx2 v[4:5], v[0:1], s[0:3], 0 addr64
; GFX7-NEXT:    buffer_store_dword v6, v[2:3], s[0:3], 0 addr64
; GFX7-NEXT:    s_endpgm
;
; GFX8-LABEL: raw_buffer_load_v2f32_tfe:
; GFX8:       ; %bb.0:
; GFX8-NEXT:    v_mov_b32_e32 v4, 0
; GFX8-NEXT:    v_mov_b32_e32 v5, v4
; GFX8-NEXT:    v_mov_b32_e32 v6, v4
; GFX8-NEXT:    buffer_load_dwordx2 v[4:6], off, s[0:3], 0 tfe
; GFX8-NEXT:    s_waitcnt vmcnt(0)
; GFX8-NEXT:    flat_store_dwordx2 v[0:1], v[4:5]
; GFX8-NEXT:    flat_store_dword v[2:3], v6
; GFX8-NEXT:    s_endpgm
;
; GFX910-LABEL: raw_buffer_load_v2f32_tfe:
; GFX910:       ; %bb.0:
; GFX910-NEXT:    v_mov_b32_e32 v4, 0
; GFX910-NEXT:    v_mov_b32_e32 v5, v4
; GFX910-NEXT:    v_mov_b32_e32 v6, v4
; GFX910-NEXT:    buffer_load_dwordx2 v[4:6], off, s[0:3], 0 tfe
; GFX910-NEXT:    s_waitcnt vmcnt(0)
; GFX910-NEXT:    global_store_dwordx2 v[0:1], v[4:5], off
; GFX910-NEXT:    global_store_dword v[2:3], v6, off
; GFX910-NEXT:    s_endpgm
;
; GFX11-LABEL: raw_buffer_load_v2f32_tfe:
; GFX11:       ; %bb.0:
; GFX11-NEXT:    v_mov_b32_e32 v4, 0
; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX11-NEXT:    v_mov_b32_e32 v5, v4
; GFX11-NEXT:    v_mov_b32_e32 v6, v4
; GFX11-NEXT:    buffer_load_b64 v[4:6], off, s[0:3], 0 tfe
; GFX11-NEXT:    s_waitcnt vmcnt(0)
; GFX11-NEXT:    global_store_b64 v[0:1], v[4:5], off
; GFX11-NEXT:    global_store_b32 v[2:3], v6, off
; GFX11-NEXT:    s_endpgm
;
; GFX12-LABEL: raw_buffer_load_v2f32_tfe:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v4, 0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_dual_mov_b32 v5, v4 :: v_dual_mov_b32 v6, v4
; GFX12-NEXT:    buffer_load_b64 v[4:6], off, s[0:3], null tfe
; GFX12-NEXT:    s_wait_loadcnt 0x0
; GFX12-NEXT:    global_store_b64 v[0:1], v[4:5], off
; GFX12-NEXT:    global_store_b32 v[2:3], v6, off
; GFX12-NEXT:    s_endpgm
  %res = call { <2 x float>, i32 } @llvm.amdgcn.raw.buffer.load.sl_v2f32i32s(<4 x i32> %rsrc, i32 0, i32 0, i32 0)
  %data = extractvalue { <2 x float>, i32 } %res, 0
  store <2 x float> %data, ptr addrspace(1) %data_addr
  %tfe = extractvalue { <2 x float>, i32 } %res, 1
  store i32 %tfe, ptr addrspace(1) %tfe_addr
  ret void
}

define amdgpu_ps void @raw_buffer_load_v3i32_tfe(<4 x i32> inreg %rsrc, ptr addrspace(1) %data_addr, ptr addrspace(1) %tfe_addr) {
; GFX6-LABEL: raw_buffer_load_v3i32_tfe:
; GFX6:       ; %bb.0:
; GFX6-NEXT:    v_mov_b32_e32 v4, 0
; GFX6-NEXT:    v_mov_b32_e32 v5, v4
; GFX6-NEXT:    v_mov_b32_e32 v6, v4
; GFX6-NEXT:    v_mov_b32_e32 v7, v4
; GFX6-NEXT:    buffer_load_dwordx3 v[4:7], off, s[0:3], 0 tfe
; GFX6-NEXT:    s_mov_b32 s2, 0
; GFX6-NEXT:    s_mov_b32 s3, 0xf000
; GFX6-NEXT:    s_mov_b32 s0, s2
; GFX6-NEXT:    s_mov_b32 s1, s2
; GFX6-NEXT:    s_waitcnt vmcnt(0)
; GFX6-NEXT:    buffer_store_dword v6, v[0:1], s[0:3], 0 addr64 offset:8
; GFX6-NEXT:    buffer_store_dwordx2 v[4:5], v[0:1], s[0:3], 0 addr64
; GFX6-NEXT:    buffer_store_dword v7, v[2:3], s[0:3], 0 addr64
; GFX6-NEXT:    s_endpgm
;
; GFX7-LABEL: raw_buffer_load_v3i32_tfe:
; GFX7:       ; %bb.0:
; GFX7-NEXT:    v_mov_b32_e32 v4, 0
; GFX7-NEXT:    v_mov_b32_e32 v5, v4
; GFX7-NEXT:    v_mov_b32_e32 v6, v4
; GFX7-NEXT:    v_mov_b32_e32 v7, v4
; GFX7-NEXT:    buffer_load_dwordx3 v[4:7], off, s[0:3], 0 tfe
; GFX7-NEXT:    s_mov_b32 s2, 0
; GFX7-NEXT:    s_mov_b32 s3, 0xf000
; GFX7-NEXT:    s_mov_b32 s0, s2
; GFX7-NEXT:    s_mov_b32 s1, s2
; GFX7-NEXT:    s_waitcnt vmcnt(0)
; GFX7-NEXT:    buffer_store_dwordx3 v[4:6], v[0:1], s[0:3], 0 addr64
; GFX7-NEXT:    buffer_store_dword v7, v[2:3], s[0:3], 0 addr64
; GFX7-NEXT:    s_endpgm
;
; GFX8-LABEL: raw_buffer_load_v3i32_tfe:
; GFX8:       ; %bb.0:
; GFX8-NEXT:    v_mov_b32_e32 v4, 0
; GFX8-NEXT:    v_mov_b32_e32 v5, v4
; GFX8-NEXT:    v_mov_b32_e32 v6, v4
; GFX8-NEXT:    v_mov_b32_e32 v7, v4
; GFX8-NEXT:    buffer_load_dwordx3 v[4:7], off, s[0:3], 0 tfe
; GFX8-NEXT:    s_waitcnt vmcnt(0)
; GFX8-NEXT:    flat_store_dwordx3 v[0:1], v[4:6]
; GFX8-NEXT:    flat_store_dword v[2:3], v7
; GFX8-NEXT:    s_endpgm
;
; GFX910-LABEL: raw_buffer_load_v3i32_tfe:
; GFX910:       ; %bb.0:
; GFX910-NEXT:    v_mov_b32_e32 v4, 0
; GFX910-NEXT:    v_mov_b32_e32 v5, v4
; GFX910-NEXT:    v_mov_b32_e32 v6, v4
; GFX910-NEXT:    v_mov_b32_e32 v7, v4
; GFX910-NEXT:    buffer_load_dwordx3 v[4:7], off, s[0:3], 0 tfe
; GFX910-NEXT:    s_waitcnt vmcnt(0)
; GFX910-NEXT:    global_store_dwordx3 v[0:1], v[4:6], off
; GFX910-NEXT:    global_store_dword v[2:3], v7, off
; GFX910-NEXT:    s_endpgm
;
; GFX11-LABEL: raw_buffer_load_v3i32_tfe:
; GFX11:       ; %bb.0:
; GFX11-NEXT:    v_mov_b32_e32 v4, 0
; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX11-NEXT:    v_mov_b32_e32 v5, v4
; GFX11-NEXT:    v_mov_b32_e32 v6, v4
; GFX11-NEXT:    v_mov_b32_e32 v7, v4
; GFX11-NEXT:    buffer_load_b96 v[4:7], off, s[0:3], 0 tfe
; GFX11-NEXT:    s_waitcnt vmcnt(0)
; GFX11-NEXT:    global_store_b96 v[0:1], v[4:6], off
; GFX11-NEXT:    global_store_b32 v[2:3], v7, off
; GFX11-NEXT:    s_endpgm
;
; GFX12-LABEL: raw_buffer_load_v3i32_tfe:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v4, 0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_dual_mov_b32 v5, v4 :: v_dual_mov_b32 v6, v4
; GFX12-NEXT:    v_mov_b32_e32 v7, v4
; GFX12-NEXT:    buffer_load_b96 v[4:7], off, s[0:3], null tfe
; GFX12-NEXT:    s_wait_loadcnt 0x0
; GFX12-NEXT:    global_store_b96 v[0:1], v[4:6], off
; GFX12-NEXT:    global_store_b32 v[2:3], v7, off
; GFX12-NEXT:    s_endpgm
  %res = call { <3 x i32>, i32 } @llvm.amdgcn.raw.buffer.load.sl_v3i32i32s(<4 x i32> %rsrc, i32 0, i32 0, i32 0)
  %data = extractvalue { <3 x i32>, i32 } %res, 0
  store <3 x i32> %data, ptr addrspace(1) %data_addr
  %tfe = extractvalue { <3 x i32>, i32 } %res, 1
  store i32 %tfe, ptr addrspace(1) %tfe_addr
  ret void
}

define amdgpu_ps void @raw_buffer_load_v3f32_tfe(<4 x i32> inreg %rsrc, ptr addrspace(1) %data_addr, ptr addrspace(1) %tfe_addr) {
; GFX6-LABEL: raw_buffer_load_v3f32_tfe:
; GFX6:       ; %bb.0:
; GFX6-NEXT:    v_mov_b32_e32 v4, 0
; GFX6-NEXT:    v_mov_b32_e32 v5, v4
; GFX6-NEXT:    v_mov_b32_e32 v6, v4
; GFX6-NEXT:    v_mov_b32_e32 v7, v4
; GFX6-NEXT:    buffer_load_dwordx3 v[4:7], off, s[0:3], 0 tfe
; GFX6-NEXT:    s_mov_b32 s2, 0
; GFX6-NEXT:    s_mov_b32 s3, 0xf000
; GFX6-NEXT:    s_mov_b32 s0, s2
; GFX6-NEXT:    s_mov_b32 s1, s2
; GFX6-NEXT:    s_waitcnt vmcnt(0)
; GFX6-NEXT:    buffer_store_dword v6, v[0:1], s[0:3], 0 addr64 offset:8
; GFX6-NEXT:    buffer_store_dwordx2 v[4:5], v[0:1], s[0:3], 0 addr64
; GFX6-NEXT:    buffer_store_dword v7, v[2:3], s[0:3], 0 addr64
; GFX6-NEXT:    s_endpgm
;
; GFX7-LABEL: raw_buffer_load_v3f32_tfe:
; GFX7:       ; %bb.0:
; GFX7-NEXT:    v_mov_b32_e32 v4, 0
; GFX7-NEXT:    v_mov_b32_e32 v5, v4
; GFX7-NEXT:    v_mov_b32_e32 v6, v4
; GFX7-NEXT:    v_mov_b32_e32 v7, v4
; GFX7-NEXT:    buffer_load_dwordx3 v[4:7], off, s[0:3], 0 tfe
; GFX7-NEXT:    s_mov_b32 s2, 0
; GFX7-NEXT:    s_mov_b32 s3, 0xf000
; GFX7-NEXT:    s_mov_b32 s0, s2
; GFX7-NEXT:    s_mov_b32 s1, s2
; GFX7-NEXT:    s_waitcnt vmcnt(0)
; GFX7-NEXT:    buffer_store_dwordx3 v[4:6], v[0:1], s[0:3], 0 addr64
; GFX7-NEXT:    buffer_store_dword v7, v[2:3], s[0:3], 0 addr64
; GFX7-NEXT:    s_endpgm
;
; GFX8-LABEL: raw_buffer_load_v3f32_tfe:
; GFX8:       ; %bb.0:
; GFX8-NEXT:    v_mov_b32_e32 v4, 0
; GFX8-NEXT:    v_mov_b32_e32 v5, v4
; GFX8-NEXT:    v_mov_b32_e32 v6, v4
; GFX8-NEXT:    v_mov_b32_e32 v7, v4
; GFX8-NEXT:    buffer_load_dwordx3 v[4:7], off, s[0:3], 0 tfe
; GFX8-NEXT:    s_waitcnt vmcnt(0)
; GFX8-NEXT:    flat_store_dwordx3 v[0:1], v[4:6]
; GFX8-NEXT:    flat_store_dword v[2:3], v7
; GFX8-NEXT:    s_endpgm
;
; GFX910-LABEL: raw_buffer_load_v3f32_tfe:
; GFX910:       ; %bb.0:
; GFX910-NEXT:    v_mov_b32_e32 v4, 0
; GFX910-NEXT:    v_mov_b32_e32 v5, v4
; GFX910-NEXT:    v_mov_b32_e32 v6, v4
; GFX910-NEXT:    v_mov_b32_e32 v7, v4
; GFX910-NEXT:    buffer_load_dwordx3 v[4:7], off, s[0:3], 0 tfe
; GFX910-NEXT:    s_waitcnt vmcnt(0)
; GFX910-NEXT:    global_store_dwordx3 v[0:1], v[4:6], off
; GFX910-NEXT:    global_store_dword v[2:3], v7, off
; GFX910-NEXT:    s_endpgm
;
; GFX11-LABEL: raw_buffer_load_v3f32_tfe:
; GFX11:       ; %bb.0:
; GFX11-NEXT:    v_mov_b32_e32 v4, 0
; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX11-NEXT:    v_mov_b32_e32 v5, v4
; GFX11-NEXT:    v_mov_b32_e32 v6, v4
; GFX11-NEXT:    v_mov_b32_e32 v7, v4
; GFX11-NEXT:    buffer_load_b96 v[4:7], off, s[0:3], 0 tfe
; GFX11-NEXT:    s_waitcnt vmcnt(0)
; GFX11-NEXT:    global_store_b96 v[0:1], v[4:6], off
; GFX11-NEXT:    global_store_b32 v[2:3], v7, off
; GFX11-NEXT:    s_endpgm
;
; GFX12-LABEL: raw_buffer_load_v3f32_tfe:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v4, 0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_dual_mov_b32 v5, v4 :: v_dual_mov_b32 v6, v4
; GFX12-NEXT:    v_mov_b32_e32 v7, v4
; GFX12-NEXT:    buffer_load_b96 v[4:7], off, s[0:3], null tfe
; GFX12-NEXT:    s_wait_loadcnt 0x0
; GFX12-NEXT:    global_store_b96 v[0:1], v[4:6], off
; GFX12-NEXT:    global_store_b32 v[2:3], v7, off
; GFX12-NEXT:    s_endpgm
  %res = call { <3 x float>, i32 } @llvm.amdgcn.raw.buffer.load.sl_v3f32i32s(<4 x i32> %rsrc, i32 0, i32 0, i32 0)
  %data = extractvalue { <3 x float>, i32 } %res, 0
  store <3 x float> %data, ptr addrspace(1) %data_addr
  %tfe = extractvalue { <3 x float>, i32 } %res, 1
  store i32 %tfe, ptr addrspace(1) %tfe_addr
  ret void
}

define amdgpu_ps void @raw_buffer_load_v4i32_tfe(<4 x i32> inreg %rsrc, ptr addrspace(1) %data_addr, ptr addrspace(1) %tfe_addr) {
; GFX67-LABEL: raw_buffer_load_v4i32_tfe:
; GFX67:       ; %bb.0:
; GFX67-NEXT:    v_mov_b32_e32 v4, 0
; GFX67-NEXT:    v_mov_b32_e32 v5, v4
; GFX67-NEXT:    v_mov_b32_e32 v6, v4
; GFX67-NEXT:    v_mov_b32_e32 v7, v4
; GFX67-NEXT:    v_mov_b32_e32 v8, v4
; GFX67-NEXT:    buffer_load_dwordx4 v[4:8], off, s[0:3], 0 tfe
; GFX67-NEXT:    s_mov_b32 s2, 0
; GFX67-NEXT:    s_mov_b32 s3, 0xf000
; GFX67-NEXT:    s_mov_b32 s0, s2
; GFX67-NEXT:    s_mov_b32 s1, s2
; GFX67-NEXT:    s_waitcnt vmcnt(0)
; GFX67-NEXT:    buffer_store_dwordx4 v[4:7], v[0:1], s[0:3], 0 addr64
; GFX67-NEXT:    buffer_store_dword v8, v[2:3], s[0:3], 0 addr64
; GFX67-NEXT:    s_endpgm
;
; GFX8-LABEL: raw_buffer_load_v4i32_tfe:
; GFX8:       ; %bb.0:
; GFX8-NEXT:    v_mov_b32_e32 v4, 0
; GFX8-NEXT:    v_mov_b32_e32 v5, v4
; GFX8-NEXT:    v_mov_b32_e32 v6, v4
; GFX8-NEXT:    v_mov_b32_e32 v7, v4
; GFX8-NEXT:    v_mov_b32_e32 v8, v4
; GFX8-NEXT:    buffer_load_dwordx4 v[4:8], off, s[0:3], 0 tfe
; GFX8-NEXT:    s_waitcnt vmcnt(0)
; GFX8-NEXT:    flat_store_dwordx4 v[0:1], v[4:7]
; GFX8-NEXT:    flat_store_dword v[2:3], v8
; GFX8-NEXT:    s_endpgm
;
; GFX910-LABEL: raw_buffer_load_v4i32_tfe:
; GFX910:       ; %bb.0:
; GFX910-NEXT:    v_mov_b32_e32 v4, 0
; GFX910-NEXT:    v_mov_b32_e32 v5, v4
; GFX910-NEXT:    v_mov_b32_e32 v6, v4
; GFX910-NEXT:    v_mov_b32_e32 v7, v4
; GFX910-NEXT:    v_mov_b32_e32 v8, v4
; GFX910-NEXT:    buffer_load_dwordx4 v[4:8], off, s[0:3], 0 tfe
; GFX910-NEXT:    s_waitcnt vmcnt(0)
; GFX910-NEXT:    global_store_dwordx4 v[0:1], v[4:7], off
; GFX910-NEXT:    global_store_dword v[2:3], v8, off
; GFX910-NEXT:    s_endpgm
;
; GFX11-LABEL: raw_buffer_load_v4i32_tfe:
; GFX11:       ; %bb.0:
; GFX11-NEXT:    v_mov_b32_e32 v4, 0
; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX11-NEXT:    v_mov_b32_e32 v5, v4
; GFX11-NEXT:    v_mov_b32_e32 v6, v4
; GFX11-NEXT:    v_mov_b32_e32 v7, v4
; GFX11-NEXT:    v_mov_b32_e32 v8, v4
; GFX11-NEXT:    buffer_load_b128 v[4:8], off, s[0:3], 0 tfe
; GFX11-NEXT:    s_waitcnt vmcnt(0)
; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off
; GFX11-NEXT:    global_store_b32 v[2:3], v8, off
; GFX11-NEXT:    s_endpgm
;
; GFX12-LABEL: raw_buffer_load_v4i32_tfe:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v4, 0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_dual_mov_b32 v5, v4 :: v_dual_mov_b32 v6, v4
; GFX12-NEXT:    v_dual_mov_b32 v7, v4 :: v_dual_mov_b32 v8, v4
; GFX12-NEXT:    buffer_load_b128 v[4:8], off, s[0:3], null tfe
; GFX12-NEXT:    s_wait_loadcnt 0x0
; GFX12-NEXT:    global_store_b128 v[0:1], v[4:7], off
; GFX12-NEXT:    global_store_b32 v[2:3], v8, off
; GFX12-NEXT:    s_endpgm
  %res = call { <4 x i32>, i32 } @llvm.amdgcn.raw.buffer.load.sl_v4i32i32s(<4 x i32> %rsrc, i32 0, i32 0, i32 0)
  %data = extractvalue { <4 x i32>, i32 } %res, 0
  store <4 x i32> %data, ptr addrspace(1) %data_addr
  %tfe = extractvalue { <4 x i32>, i32 } %res, 1
  store i32 %tfe, ptr addrspace(1) %tfe_addr
  ret void
}

define amdgpu_ps void @raw_buffer_load_v4f32_tfe(<4 x i32> inreg %rsrc, ptr addrspace(1) %data_addr, ptr addrspace(1) %tfe_addr) {
; GFX67-LABEL: raw_buffer_load_v4f32_tfe:
; GFX67:       ; %bb.0:
; GFX67-NEXT:    v_mov_b32_e32 v4, 0
; GFX67-NEXT:    v_mov_b32_e32 v5, v4
; GFX67-NEXT:    v_mov_b32_e32 v6, v4
; GFX67-NEXT:    v_mov_b32_e32 v7, v4
; GFX67-NEXT:    v_mov_b32_e32 v8, v4
; GFX67-NEXT:    buffer_load_dwordx4 v[4:8], off, s[0:3], 0 tfe
; GFX67-NEXT:    s_mov_b32 s2, 0
; GFX67-NEXT:    s_mov_b32 s3, 0xf000
; GFX67-NEXT:    s_mov_b32 s0, s2
; GFX67-NEXT:    s_mov_b32 s1, s2
; GFX67-NEXT:    s_waitcnt vmcnt(0)
; GFX67-NEXT:    buffer_store_dwordx4 v[4:7], v[0:1], s[0:3], 0 addr64
; GFX67-NEXT:    buffer_store_dword v8, v[2:3], s[0:3], 0 addr64
; GFX67-NEXT:    s_endpgm
;
; GFX8-LABEL: raw_buffer_load_v4f32_tfe:
; GFX8:       ; %bb.0:
; GFX8-NEXT:    v_mov_b32_e32 v4, 0
; GFX8-NEXT:    v_mov_b32_e32 v5, v4
; GFX8-NEXT:    v_mov_b32_e32 v6, v4
; GFX8-NEXT:    v_mov_b32_e32 v7, v4
; GFX8-NEXT:    v_mov_b32_e32 v8, v4
; GFX8-NEXT:    buffer_load_dwordx4 v[4:8], off, s[0:3], 0 tfe
; GFX8-NEXT:    s_waitcnt vmcnt(0)
; GFX8-NEXT:    flat_store_dwordx4 v[0:1], v[4:7]
; GFX8-NEXT:    flat_store_dword v[2:3], v8
; GFX8-NEXT:    s_endpgm
;
; GFX910-LABEL: raw_buffer_load_v4f32_tfe:
; GFX910:       ; %bb.0:
; GFX910-NEXT:    v_mov_b32_e32 v4, 0
; GFX910-NEXT:    v_mov_b32_e32 v5, v4
; GFX910-NEXT:    v_mov_b32_e32 v6, v4
; GFX910-NEXT:    v_mov_b32_e32 v7, v4
; GFX910-NEXT:    v_mov_b32_e32 v8, v4
; GFX910-NEXT:    buffer_load_dwordx4 v[4:8], off, s[0:3], 0 tfe
; GFX910-NEXT:    s_waitcnt vmcnt(0)
; GFX910-NEXT:    global_store_dwordx4 v[0:1], v[4:7], off
; GFX910-NEXT:    global_store_dword v[2:3], v8, off
; GFX910-NEXT:    s_endpgm
;
; GFX11-LABEL: raw_buffer_load_v4f32_tfe:
; GFX11:       ; %bb.0:
; GFX11-NEXT:    v_mov_b32_e32 v4, 0
; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX11-NEXT:    v_mov_b32_e32 v5, v4
; GFX11-NEXT:    v_mov_b32_e32 v6, v4
; GFX11-NEXT:    v_mov_b32_e32 v7, v4
; GFX11-NEXT:    v_mov_b32_e32 v8, v4
; GFX11-NEXT:    buffer_load_b128 v[4:8], off, s[0:3], 0 tfe
; GFX11-NEXT:    s_waitcnt vmcnt(0)
; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off
; GFX11-NEXT:    global_store_b32 v[2:3], v8, off
; GFX11-NEXT:    s_endpgm
;
; GFX12-LABEL: raw_buffer_load_v4f32_tfe:
; GFX12:       ; %bb.0:
; GFX12-NEXT:    v_mov_b32_e32 v4, 0
; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
; GFX12-NEXT:    v_dual_mov_b32 v5, v4 :: v_dual_mov_b32 v6, v4
; GFX12-NEXT:    v_dual_mov_b32 v7, v4 :: v_dual_mov_b32 v8, v4
; GFX12-NEXT:    buffer_load_b128 v[4:8], off, s[0:3], null tfe
; GFX12-NEXT:    s_wait_loadcnt 0x0
; GFX12-NEXT:    global_store_b128 v[0:1], v[4:7], off
; GFX12-NEXT:    global_store_b32 v[2:3], v8, off
; GFX12-NEXT:    s_endpgm
  %res = call { <4 x float>, i32 } @llvm.amdgcn.raw.buffer.load.sl_v4f32i32s(<4 x i32> %rsrc, i32 0, i32 0, i32 0)
  %data = extractvalue { <4 x float>, i32 } %res, 0
  store <4 x float> %data, ptr addrspace(1) %data_addr
  %tfe = extractvalue { <4 x float>, i32 } %res, 1
  store i32 %tfe, ptr addrspace(1) %tfe_addr
  ret void
}

declare { i8, i32 } @llvm.amdgcn.raw.buffer.load.sl_i8i32s(<4 x i32>, i32, i32, i32)
declare { i16, i32 } @llvm.amdgcn.raw.buffer.load.sl_i16i32s(<4 x i32>, i32, i32, i32)
declare { half, i32 } @llvm.amdgcn.raw.buffer.load.sl_f16i32s(<4 x i32>, i32, i32, i32)
declare { i32, i32 } @llvm.amdgcn.raw.buffer.load.sl_i32i32s(<4 x i32>, i32, i32, i32)
declare { <2 x i32>, i32 } @llvm.amdgcn.raw.buffer.load.sl_v2i32i32s(<4 x i32>, i32, i32, i32)
declare { <2 x float>, i32 } @llvm.amdgcn.raw.buffer.load.sl_v2f32i32s(<4 x i32>, i32, i32, i32)
declare { <3 x i32>, i32 } @llvm.amdgcn.raw.buffer.load.sl_v3i32i32s(<4 x i32>, i32, i32, i32)
declare { <3 x float>, i32 } @llvm.amdgcn.raw.buffer.load.sl_v3f32i32s(<4 x i32>, i32, i32, i32)
declare { <4 x i32>, i32 } @llvm.amdgcn.raw.buffer.load.sl_v4i32i32s(<4 x i32>, i32, i32, i32)
declare { <4 x float>, i32 } @llvm.amdgcn.raw.buffer.load.sl_v4f32i32s(<4 x i32>, i32, i32, i32)
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
; GFX10: {{.*}}
; GFX9: {{.*}}
