; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
; RUN: opt -S -passes=amdgpu-lower-buffer-fat-pointers -mtriple=amdgpu9.00-- -mattr=+unaligned-access-mode < %s | FileCheck %s --check-prefixes=CHECK,RECORDS32
; RUN: opt -S -passes=amdgpu-lower-buffer-fat-pointers -mtriple=amdgpu12.50-- -mattr=+unaligned-access-mode < %s | FileCheck %s --check-prefixes=CHECK,RECORDS45
; RUN: opt -S -passes=amdgpu-lower-buffer-fat-pointers -mtriple=amdgpu-- -mattr=+unaligned-access-mode,+unaligned-buffer-access < %s | FileCheck %s --check-prefixes=CHECK,UNKNOWN

; Ensure that "this isn't out of bounds" tests work correctly even when
; when size manipulation is needed.

;; Make sure this always works with 2^44, even on 32-bit num_records.
define <8 x half> @bound_i64_2p44(ptr addrspace(1) inreg %ptr, i32 %off) {
; RECORDS32-LABEL: define <8 x half> @bound_i64_2p44(
; RECORDS32-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0:[0-9]+]] {
; RECORDS32-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i64(ptr addrspace(1) [[PTR]], i16 0, i64 17592186044416, i32 0)
; RECORDS32-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 1024)
; RECORDS32-NEXT:    [[RET:%.*]] = call <8 x half> @llvm.amdgcn.raw.ptr.buffer.load.v8f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; RECORDS32-NEXT:    ret <8 x half> [[RET]]
;
; RECORDS45-LABEL: define <8 x half> @bound_i64_2p44(
; RECORDS45-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0:[0-9]+]] {
; RECORDS45-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i64(ptr addrspace(1) [[PTR]], i16 0, i64 17592186044416, i32 0)
; RECORDS45-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 1024)
; RECORDS45-NEXT:    [[RET:%.*]] = call <8 x half> @llvm.amdgcn.raw.ptr.buffer.load.v8f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; RECORDS45-NEXT:    ret <8 x half> [[RET]]
;
; UNKNOWN-LABEL: define <8 x half> @bound_i64_2p44(
; UNKNOWN-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0:[0-9]+]] {
; UNKNOWN-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i64(ptr addrspace(1) [[PTR]], i16 0, i64 17592186044416, i32 0)
; UNKNOWN-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 1024)
; UNKNOWN-NEXT:    [[RET_OFF_0:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_0:%.*]] = insertelement <8 x half> poison, half [[RET_OFF_0]], i64 0
; UNKNOWN-NEXT:    [[Q_OFF_PTR_2:%.*]] = add i32 [[Q]], 2
; UNKNOWN-NEXT:    [[RET_OFF_2:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_2]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_1:%.*]] = insertelement <8 x half> [[RET_SLICE_0]], half [[RET_OFF_2]], i64 1
; UNKNOWN-NEXT:    [[Q_OFF_PTR_4:%.*]] = add i32 [[Q]], 4
; UNKNOWN-NEXT:    [[RET_OFF_4:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_4]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_2:%.*]] = insertelement <8 x half> [[RET_SLICE_1]], half [[RET_OFF_4]], i64 2
; UNKNOWN-NEXT:    [[Q_OFF_PTR_6:%.*]] = add i32 [[Q]], 6
; UNKNOWN-NEXT:    [[RET_OFF_6:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_6]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_3:%.*]] = insertelement <8 x half> [[RET_SLICE_2]], half [[RET_OFF_6]], i64 3
; UNKNOWN-NEXT:    [[Q_OFF_PTR_8:%.*]] = add i32 [[Q]], 8
; UNKNOWN-NEXT:    [[RET_OFF_8:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_8]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_4:%.*]] = insertelement <8 x half> [[RET_SLICE_3]], half [[RET_OFF_8]], i64 4
; UNKNOWN-NEXT:    [[Q_OFF_PTR_10:%.*]] = add i32 [[Q]], 10
; UNKNOWN-NEXT:    [[RET_OFF_10:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_10]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_5:%.*]] = insertelement <8 x half> [[RET_SLICE_4]], half [[RET_OFF_10]], i64 5
; UNKNOWN-NEXT:    [[Q_OFF_PTR_12:%.*]] = add i32 [[Q]], 12
; UNKNOWN-NEXT:    [[RET_OFF_12:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_12]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_6:%.*]] = insertelement <8 x half> [[RET_SLICE_5]], half [[RET_OFF_12]], i64 6
; UNKNOWN-NEXT:    [[Q_OFF_PTR_14:%.*]] = add i32 [[Q]], 14
; UNKNOWN-NEXT:    [[RET_OFF_14:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_14]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET:%.*]] = insertelement <8 x half> [[RET_SLICE_6]], half [[RET_OFF_14]], i64 7
; UNKNOWN-NEXT:    ret <8 x half> [[RET]]
;
  %buf = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i64(ptr addrspace(1) %ptr, i16 0, i64 17592186044416, i32 0)
  %p = addrspacecast ptr addrspace(8) %buf to ptr addrspace(7)
  %off.clamped = call i32 @llvm.umin.i32(i32 %off, i32 1024)
  %q = getelementptr i8, ptr addrspace(7) %p, i32 %off.clamped
  %ret = load <8 x half>, ptr addrspace(7) %q, align 2
  ret <8 x half> %ret
}

;; And when it's given as an i45.
define <8 x half> @bound_i45_2p44(ptr addrspace(1) inreg %ptr, i32 %off) {
; RECORDS32-LABEL: define <8 x half> @bound_i45_2p44(
; RECORDS32-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; RECORDS32-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i45(ptr addrspace(1) [[PTR]], i16 0, i45 -17592186044416, i32 0)
; RECORDS32-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 1024)
; RECORDS32-NEXT:    [[RET:%.*]] = call <8 x half> @llvm.amdgcn.raw.ptr.buffer.load.v8f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; RECORDS32-NEXT:    ret <8 x half> [[RET]]
;
; RECORDS45-LABEL: define <8 x half> @bound_i45_2p44(
; RECORDS45-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; RECORDS45-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i45(ptr addrspace(1) [[PTR]], i16 0, i45 -17592186044416, i32 0)
; RECORDS45-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 1024)
; RECORDS45-NEXT:    [[RET:%.*]] = call <8 x half> @llvm.amdgcn.raw.ptr.buffer.load.v8f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; RECORDS45-NEXT:    ret <8 x half> [[RET]]
;
; UNKNOWN-LABEL: define <8 x half> @bound_i45_2p44(
; UNKNOWN-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; UNKNOWN-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i45(ptr addrspace(1) [[PTR]], i16 0, i45 -17592186044416, i32 0)
; UNKNOWN-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 1024)
; UNKNOWN-NEXT:    [[RET_OFF_0:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_0:%.*]] = insertelement <8 x half> poison, half [[RET_OFF_0]], i64 0
; UNKNOWN-NEXT:    [[Q_OFF_PTR_2:%.*]] = add i32 [[Q]], 2
; UNKNOWN-NEXT:    [[RET_OFF_2:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_2]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_1:%.*]] = insertelement <8 x half> [[RET_SLICE_0]], half [[RET_OFF_2]], i64 1
; UNKNOWN-NEXT:    [[Q_OFF_PTR_4:%.*]] = add i32 [[Q]], 4
; UNKNOWN-NEXT:    [[RET_OFF_4:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_4]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_2:%.*]] = insertelement <8 x half> [[RET_SLICE_1]], half [[RET_OFF_4]], i64 2
; UNKNOWN-NEXT:    [[Q_OFF_PTR_6:%.*]] = add i32 [[Q]], 6
; UNKNOWN-NEXT:    [[RET_OFF_6:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_6]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_3:%.*]] = insertelement <8 x half> [[RET_SLICE_2]], half [[RET_OFF_6]], i64 3
; UNKNOWN-NEXT:    [[Q_OFF_PTR_8:%.*]] = add i32 [[Q]], 8
; UNKNOWN-NEXT:    [[RET_OFF_8:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_8]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_4:%.*]] = insertelement <8 x half> [[RET_SLICE_3]], half [[RET_OFF_8]], i64 4
; UNKNOWN-NEXT:    [[Q_OFF_PTR_10:%.*]] = add i32 [[Q]], 10
; UNKNOWN-NEXT:    [[RET_OFF_10:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_10]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_5:%.*]] = insertelement <8 x half> [[RET_SLICE_4]], half [[RET_OFF_10]], i64 5
; UNKNOWN-NEXT:    [[Q_OFF_PTR_12:%.*]] = add i32 [[Q]], 12
; UNKNOWN-NEXT:    [[RET_OFF_12:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_12]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_6:%.*]] = insertelement <8 x half> [[RET_SLICE_5]], half [[RET_OFF_12]], i64 6
; UNKNOWN-NEXT:    [[Q_OFF_PTR_14:%.*]] = add i32 [[Q]], 14
; UNKNOWN-NEXT:    [[RET_OFF_14:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_14]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET:%.*]] = insertelement <8 x half> [[RET_SLICE_6]], half [[RET_OFF_14]], i64 7
; UNKNOWN-NEXT:    ret <8 x half> [[RET]]
;
  %buf = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i45(ptr addrspace(1) %ptr, i16 0, i45 17592186044416, i32 0)
  %p = addrspacecast ptr addrspace(8) %buf to ptr addrspace(7)
  %off.clamped = call i32 @llvm.umin.i32(i32 %off, i32 1024)
  %q = getelementptr i8, ptr addrspace(7) %p, i32 %off.clamped
  %ret = load <8 x half>, ptr addrspace(7) %q, align 2
  ret <8 x half> %ret
}

;; Bound is int32_max.
define <8 x half> @bound_i32_2p31(ptr addrspace(1) inreg %ptr, i32 %off) {
; RECORDS32-LABEL: define <8 x half> @bound_i32_2p31(
; RECORDS32-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; RECORDS32-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i32(ptr addrspace(1) [[PTR]], i16 0, i32 -2147483648, i32 0)
; RECORDS32-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 1024)
; RECORDS32-NEXT:    [[RET:%.*]] = call <8 x half> @llvm.amdgcn.raw.ptr.buffer.load.v8f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; RECORDS32-NEXT:    ret <8 x half> [[RET]]
;
; RECORDS45-LABEL: define <8 x half> @bound_i32_2p31(
; RECORDS45-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; RECORDS45-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i32(ptr addrspace(1) [[PTR]], i16 0, i32 -2147483648, i32 0)
; RECORDS45-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 1024)
; RECORDS45-NEXT:    [[RET:%.*]] = call <8 x half> @llvm.amdgcn.raw.ptr.buffer.load.v8f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; RECORDS45-NEXT:    ret <8 x half> [[RET]]
;
; UNKNOWN-LABEL: define <8 x half> @bound_i32_2p31(
; UNKNOWN-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; UNKNOWN-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i32(ptr addrspace(1) [[PTR]], i16 0, i32 -2147483648, i32 0)
; UNKNOWN-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 1024)
; UNKNOWN-NEXT:    [[RET_OFF_0:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_0:%.*]] = insertelement <8 x half> poison, half [[RET_OFF_0]], i64 0
; UNKNOWN-NEXT:    [[Q_OFF_PTR_2:%.*]] = add i32 [[Q]], 2
; UNKNOWN-NEXT:    [[RET_OFF_2:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_2]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_1:%.*]] = insertelement <8 x half> [[RET_SLICE_0]], half [[RET_OFF_2]], i64 1
; UNKNOWN-NEXT:    [[Q_OFF_PTR_4:%.*]] = add i32 [[Q]], 4
; UNKNOWN-NEXT:    [[RET_OFF_4:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_4]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_2:%.*]] = insertelement <8 x half> [[RET_SLICE_1]], half [[RET_OFF_4]], i64 2
; UNKNOWN-NEXT:    [[Q_OFF_PTR_6:%.*]] = add i32 [[Q]], 6
; UNKNOWN-NEXT:    [[RET_OFF_6:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_6]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_3:%.*]] = insertelement <8 x half> [[RET_SLICE_2]], half [[RET_OFF_6]], i64 3
; UNKNOWN-NEXT:    [[Q_OFF_PTR_8:%.*]] = add i32 [[Q]], 8
; UNKNOWN-NEXT:    [[RET_OFF_8:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_8]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_4:%.*]] = insertelement <8 x half> [[RET_SLICE_3]], half [[RET_OFF_8]], i64 4
; UNKNOWN-NEXT:    [[Q_OFF_PTR_10:%.*]] = add i32 [[Q]], 10
; UNKNOWN-NEXT:    [[RET_OFF_10:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_10]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_5:%.*]] = insertelement <8 x half> [[RET_SLICE_4]], half [[RET_OFF_10]], i64 5
; UNKNOWN-NEXT:    [[Q_OFF_PTR_12:%.*]] = add i32 [[Q]], 12
; UNKNOWN-NEXT:    [[RET_OFF_12:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_12]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_6:%.*]] = insertelement <8 x half> [[RET_SLICE_5]], half [[RET_OFF_12]], i64 6
; UNKNOWN-NEXT:    [[Q_OFF_PTR_14:%.*]] = add i32 [[Q]], 14
; UNKNOWN-NEXT:    [[RET_OFF_14:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_14]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET:%.*]] = insertelement <8 x half> [[RET_SLICE_6]], half [[RET_OFF_14]], i64 7
; UNKNOWN-NEXT:    ret <8 x half> [[RET]]
;
  %buf = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i32(ptr addrspace(1) %ptr, i16 0, i32 2147483648, i32 0)
  %p = addrspacecast ptr addrspace(8) %buf to ptr addrspace(7)
  %off.clamped = call i32 @llvm.umin.i32(i32 %off, i32 1024)
  %q = getelementptr i8, ptr addrspace(7) %p, i32 %off.clamped
  %ret = load <8 x half>, ptr addrspace(7) %q, align 2
  ret <8 x half> %ret
}

;; Test cases where the num_records mod 2^32 would lead to requiring
;; scalarization, but not if we read num_records as a 45-bit value.
define <8 x half> @bound_i32_2p11(ptr addrspace(1) inreg %ptr, i32 %off) {
; CHECK-LABEL: define <8 x half> @bound_i32_2p11(
; CHECK-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0:[0-9]+]] {
; CHECK-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i32(ptr addrspace(1) [[PTR]], i16 0, i32 2048, i32 0)
; CHECK-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 4096)
; CHECK-NEXT:    [[RET_OFF_0:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_0:%.*]] = insertelement <8 x half> poison, half [[RET_OFF_0]], i64 0
; CHECK-NEXT:    [[Q_OFF_PTR_2:%.*]] = add i32 [[Q]], 2
; CHECK-NEXT:    [[RET_OFF_2:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_2]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_1:%.*]] = insertelement <8 x half> [[RET_SLICE_0]], half [[RET_OFF_2]], i64 1
; CHECK-NEXT:    [[Q_OFF_PTR_4:%.*]] = add i32 [[Q]], 4
; CHECK-NEXT:    [[RET_OFF_4:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_4]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_2:%.*]] = insertelement <8 x half> [[RET_SLICE_1]], half [[RET_OFF_4]], i64 2
; CHECK-NEXT:    [[Q_OFF_PTR_6:%.*]] = add i32 [[Q]], 6
; CHECK-NEXT:    [[RET_OFF_6:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_6]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_3:%.*]] = insertelement <8 x half> [[RET_SLICE_2]], half [[RET_OFF_6]], i64 3
; CHECK-NEXT:    [[Q_OFF_PTR_8:%.*]] = add i32 [[Q]], 8
; CHECK-NEXT:    [[RET_OFF_8:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_8]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_4:%.*]] = insertelement <8 x half> [[RET_SLICE_3]], half [[RET_OFF_8]], i64 4
; CHECK-NEXT:    [[Q_OFF_PTR_10:%.*]] = add i32 [[Q]], 10
; CHECK-NEXT:    [[RET_OFF_10:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_10]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_5:%.*]] = insertelement <8 x half> [[RET_SLICE_4]], half [[RET_OFF_10]], i64 5
; CHECK-NEXT:    [[Q_OFF_PTR_12:%.*]] = add i32 [[Q]], 12
; CHECK-NEXT:    [[RET_OFF_12:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_12]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_6:%.*]] = insertelement <8 x half> [[RET_SLICE_5]], half [[RET_OFF_12]], i64 6
; CHECK-NEXT:    [[Q_OFF_PTR_14:%.*]] = add i32 [[Q]], 14
; CHECK-NEXT:    [[RET_OFF_14:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_14]], i32 0, i32 0)
; CHECK-NEXT:    [[RET:%.*]] = insertelement <8 x half> [[RET_SLICE_6]], half [[RET_OFF_14]], i64 7
; CHECK-NEXT:    ret <8 x half> [[RET]]
;
  %buf = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i32(ptr addrspace(1) %ptr, i16 0, i32 2048, i32 0)
  %p = addrspacecast ptr addrspace(8) %buf to ptr addrspace(7)
  %off.clamped = call i32 @llvm.umin.i32(i32 %off, i32 4096)
  %q = getelementptr i8, ptr addrspace(7) %p, i32 %off.clamped
  %ret = load <8 x half>, ptr addrspace(7) %q, align 2
  ret <8 x half> %ret
}

define <8 x half> @bound_i45_2p32_plus_2p11(ptr addrspace(1) inreg %ptr, i32 %off) {
; RECORDS32-LABEL: define <8 x half> @bound_i45_2p32_plus_2p11(
; RECORDS32-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; RECORDS32-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i45(ptr addrspace(1) [[PTR]], i16 0, i45 4294969344, i32 0)
; RECORDS32-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 4096)
; RECORDS32-NEXT:    [[RET_OFF_0:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; RECORDS32-NEXT:    [[RET_SLICE_0:%.*]] = insertelement <8 x half> poison, half [[RET_OFF_0]], i64 0
; RECORDS32-NEXT:    [[Q_OFF_PTR_2:%.*]] = add i32 [[Q]], 2
; RECORDS32-NEXT:    [[RET_OFF_2:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_2]], i32 0, i32 0)
; RECORDS32-NEXT:    [[RET_SLICE_1:%.*]] = insertelement <8 x half> [[RET_SLICE_0]], half [[RET_OFF_2]], i64 1
; RECORDS32-NEXT:    [[Q_OFF_PTR_4:%.*]] = add i32 [[Q]], 4
; RECORDS32-NEXT:    [[RET_OFF_4:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_4]], i32 0, i32 0)
; RECORDS32-NEXT:    [[RET_SLICE_2:%.*]] = insertelement <8 x half> [[RET_SLICE_1]], half [[RET_OFF_4]], i64 2
; RECORDS32-NEXT:    [[Q_OFF_PTR_6:%.*]] = add i32 [[Q]], 6
; RECORDS32-NEXT:    [[RET_OFF_6:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_6]], i32 0, i32 0)
; RECORDS32-NEXT:    [[RET_SLICE_3:%.*]] = insertelement <8 x half> [[RET_SLICE_2]], half [[RET_OFF_6]], i64 3
; RECORDS32-NEXT:    [[Q_OFF_PTR_8:%.*]] = add i32 [[Q]], 8
; RECORDS32-NEXT:    [[RET_OFF_8:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_8]], i32 0, i32 0)
; RECORDS32-NEXT:    [[RET_SLICE_4:%.*]] = insertelement <8 x half> [[RET_SLICE_3]], half [[RET_OFF_8]], i64 4
; RECORDS32-NEXT:    [[Q_OFF_PTR_10:%.*]] = add i32 [[Q]], 10
; RECORDS32-NEXT:    [[RET_OFF_10:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_10]], i32 0, i32 0)
; RECORDS32-NEXT:    [[RET_SLICE_5:%.*]] = insertelement <8 x half> [[RET_SLICE_4]], half [[RET_OFF_10]], i64 5
; RECORDS32-NEXT:    [[Q_OFF_PTR_12:%.*]] = add i32 [[Q]], 12
; RECORDS32-NEXT:    [[RET_OFF_12:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_12]], i32 0, i32 0)
; RECORDS32-NEXT:    [[RET_SLICE_6:%.*]] = insertelement <8 x half> [[RET_SLICE_5]], half [[RET_OFF_12]], i64 6
; RECORDS32-NEXT:    [[Q_OFF_PTR_14:%.*]] = add i32 [[Q]], 14
; RECORDS32-NEXT:    [[RET_OFF_14:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_14]], i32 0, i32 0)
; RECORDS32-NEXT:    [[RET:%.*]] = insertelement <8 x half> [[RET_SLICE_6]], half [[RET_OFF_14]], i64 7
; RECORDS32-NEXT:    ret <8 x half> [[RET]]
;
; RECORDS45-LABEL: define <8 x half> @bound_i45_2p32_plus_2p11(
; RECORDS45-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; RECORDS45-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i45(ptr addrspace(1) [[PTR]], i16 0, i45 4294969344, i32 0)
; RECORDS45-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 4096)
; RECORDS45-NEXT:    [[RET:%.*]] = call <8 x half> @llvm.amdgcn.raw.ptr.buffer.load.v8f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; RECORDS45-NEXT:    ret <8 x half> [[RET]]
;
; UNKNOWN-LABEL: define <8 x half> @bound_i45_2p32_plus_2p11(
; UNKNOWN-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; UNKNOWN-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i45(ptr addrspace(1) [[PTR]], i16 0, i45 4294969344, i32 0)
; UNKNOWN-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 4096)
; UNKNOWN-NEXT:    [[RET_OFF_0:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_0:%.*]] = insertelement <8 x half> poison, half [[RET_OFF_0]], i64 0
; UNKNOWN-NEXT:    [[Q_OFF_PTR_2:%.*]] = add i32 [[Q]], 2
; UNKNOWN-NEXT:    [[RET_OFF_2:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_2]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_1:%.*]] = insertelement <8 x half> [[RET_SLICE_0]], half [[RET_OFF_2]], i64 1
; UNKNOWN-NEXT:    [[Q_OFF_PTR_4:%.*]] = add i32 [[Q]], 4
; UNKNOWN-NEXT:    [[RET_OFF_4:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_4]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_2:%.*]] = insertelement <8 x half> [[RET_SLICE_1]], half [[RET_OFF_4]], i64 2
; UNKNOWN-NEXT:    [[Q_OFF_PTR_6:%.*]] = add i32 [[Q]], 6
; UNKNOWN-NEXT:    [[RET_OFF_6:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_6]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_3:%.*]] = insertelement <8 x half> [[RET_SLICE_2]], half [[RET_OFF_6]], i64 3
; UNKNOWN-NEXT:    [[Q_OFF_PTR_8:%.*]] = add i32 [[Q]], 8
; UNKNOWN-NEXT:    [[RET_OFF_8:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_8]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_4:%.*]] = insertelement <8 x half> [[RET_SLICE_3]], half [[RET_OFF_8]], i64 4
; UNKNOWN-NEXT:    [[Q_OFF_PTR_10:%.*]] = add i32 [[Q]], 10
; UNKNOWN-NEXT:    [[RET_OFF_10:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_10]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_5:%.*]] = insertelement <8 x half> [[RET_SLICE_4]], half [[RET_OFF_10]], i64 5
; UNKNOWN-NEXT:    [[Q_OFF_PTR_12:%.*]] = add i32 [[Q]], 12
; UNKNOWN-NEXT:    [[RET_OFF_12:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_12]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_6:%.*]] = insertelement <8 x half> [[RET_SLICE_5]], half [[RET_OFF_12]], i64 6
; UNKNOWN-NEXT:    [[Q_OFF_PTR_14:%.*]] = add i32 [[Q]], 14
; UNKNOWN-NEXT:    [[RET_OFF_14:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_14]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET:%.*]] = insertelement <8 x half> [[RET_SLICE_6]], half [[RET_OFF_14]], i64 7
; UNKNOWN-NEXT:    ret <8 x half> [[RET]]
;
  %buf = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i45(ptr addrspace(1) %ptr, i16 0, i45 4294969344, i32 0)
  %p = addrspacecast ptr addrspace(8) %buf to ptr addrspace(7)
  %off.clamped = call i32 @llvm.umin.i32(i32 %off, i32 4096)
  %q = getelementptr i8, ptr addrspace(7) %p, i32 %off.clamped
  %ret = load <8 x half>, ptr addrspace(7) %q, align 2
  ret <8 x half> %ret
}

define <8 x half> @bound_i16_all_ones_in_bounds(ptr addrspace(1) inreg %ptr, i32 %off) {
; RECORDS32-LABEL: define <8 x half> @bound_i16_all_ones_in_bounds(
; RECORDS32-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; RECORDS32-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i16(ptr addrspace(1) [[PTR]], i16 0, i16 -1, i32 0)
; RECORDS32-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 1024)
; RECORDS32-NEXT:    [[RET:%.*]] = call <8 x half> @llvm.amdgcn.raw.ptr.buffer.load.v8f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; RECORDS32-NEXT:    ret <8 x half> [[RET]]
;
; RECORDS45-LABEL: define <8 x half> @bound_i16_all_ones_in_bounds(
; RECORDS45-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; RECORDS45-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i16(ptr addrspace(1) [[PTR]], i16 0, i16 -1, i32 0)
; RECORDS45-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 1024)
; RECORDS45-NEXT:    [[RET:%.*]] = call <8 x half> @llvm.amdgcn.raw.ptr.buffer.load.v8f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; RECORDS45-NEXT:    ret <8 x half> [[RET]]
;
; UNKNOWN-LABEL: define <8 x half> @bound_i16_all_ones_in_bounds(
; UNKNOWN-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; UNKNOWN-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i16(ptr addrspace(1) [[PTR]], i16 0, i16 -1, i32 0)
; UNKNOWN-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 1024)
; UNKNOWN-NEXT:    [[RET_OFF_0:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_0:%.*]] = insertelement <8 x half> poison, half [[RET_OFF_0]], i64 0
; UNKNOWN-NEXT:    [[Q_OFF_PTR_2:%.*]] = add i32 [[Q]], 2
; UNKNOWN-NEXT:    [[RET_OFF_2:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_2]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_1:%.*]] = insertelement <8 x half> [[RET_SLICE_0]], half [[RET_OFF_2]], i64 1
; UNKNOWN-NEXT:    [[Q_OFF_PTR_4:%.*]] = add i32 [[Q]], 4
; UNKNOWN-NEXT:    [[RET_OFF_4:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_4]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_2:%.*]] = insertelement <8 x half> [[RET_SLICE_1]], half [[RET_OFF_4]], i64 2
; UNKNOWN-NEXT:    [[Q_OFF_PTR_6:%.*]] = add i32 [[Q]], 6
; UNKNOWN-NEXT:    [[RET_OFF_6:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_6]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_3:%.*]] = insertelement <8 x half> [[RET_SLICE_2]], half [[RET_OFF_6]], i64 3
; UNKNOWN-NEXT:    [[Q_OFF_PTR_8:%.*]] = add i32 [[Q]], 8
; UNKNOWN-NEXT:    [[RET_OFF_8:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_8]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_4:%.*]] = insertelement <8 x half> [[RET_SLICE_3]], half [[RET_OFF_8]], i64 4
; UNKNOWN-NEXT:    [[Q_OFF_PTR_10:%.*]] = add i32 [[Q]], 10
; UNKNOWN-NEXT:    [[RET_OFF_10:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_10]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_5:%.*]] = insertelement <8 x half> [[RET_SLICE_4]], half [[RET_OFF_10]], i64 5
; UNKNOWN-NEXT:    [[Q_OFF_PTR_12:%.*]] = add i32 [[Q]], 12
; UNKNOWN-NEXT:    [[RET_OFF_12:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_12]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET_SLICE_6:%.*]] = insertelement <8 x half> [[RET_SLICE_5]], half [[RET_OFF_12]], i64 6
; UNKNOWN-NEXT:    [[Q_OFF_PTR_14:%.*]] = add i32 [[Q]], 14
; UNKNOWN-NEXT:    [[RET_OFF_14:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_14]], i32 0, i32 0)
; UNKNOWN-NEXT:    [[RET:%.*]] = insertelement <8 x half> [[RET_SLICE_6]], half [[RET_OFF_14]], i64 7
; UNKNOWN-NEXT:    ret <8 x half> [[RET]]
;
  %buf = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i16(ptr addrspace(1) %ptr, i16 0, i16 -1, i32 0)
  %p = addrspacecast ptr addrspace(8) %buf to ptr addrspace(7)
  %off.clamped = call i32 @llvm.umin.i32(i32 %off, i32 1024)
  %q = getelementptr i8, ptr addrspace(7) %p, i32 %off.clamped
  %ret = load <8 x half>, ptr addrspace(7) %q, align 2
  ret <8 x half> %ret
}

define <8 x half> @bound_i16_all_ones_partially_oob(ptr addrspace(1) inreg %ptr, i32 %off) {
; CHECK-LABEL: define <8 x half> @bound_i16_all_ones_partially_oob(
; CHECK-SAME: ptr addrspace(1) inreg [[PTR:%.*]], i32 [[OFF:%.*]]) #[[ATTR0]] {
; CHECK-NEXT:    [[BUF:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i16(ptr addrspace(1) [[PTR]], i16 0, i16 -1, i32 0)
; CHECK-NEXT:    [[Q:%.*]] = call i32 @llvm.umin.i32(i32 [[OFF]], i32 65540)
; CHECK-NEXT:    [[RET_OFF_0:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_0:%.*]] = insertelement <8 x half> poison, half [[RET_OFF_0]], i64 0
; CHECK-NEXT:    [[Q_OFF_PTR_2:%.*]] = add i32 [[Q]], 2
; CHECK-NEXT:    [[RET_OFF_2:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_2]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_1:%.*]] = insertelement <8 x half> [[RET_SLICE_0]], half [[RET_OFF_2]], i64 1
; CHECK-NEXT:    [[Q_OFF_PTR_4:%.*]] = add i32 [[Q]], 4
; CHECK-NEXT:    [[RET_OFF_4:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_4]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_2:%.*]] = insertelement <8 x half> [[RET_SLICE_1]], half [[RET_OFF_4]], i64 2
; CHECK-NEXT:    [[Q_OFF_PTR_6:%.*]] = add i32 [[Q]], 6
; CHECK-NEXT:    [[RET_OFF_6:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_6]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_3:%.*]] = insertelement <8 x half> [[RET_SLICE_2]], half [[RET_OFF_6]], i64 3
; CHECK-NEXT:    [[Q_OFF_PTR_8:%.*]] = add i32 [[Q]], 8
; CHECK-NEXT:    [[RET_OFF_8:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_8]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_4:%.*]] = insertelement <8 x half> [[RET_SLICE_3]], half [[RET_OFF_8]], i64 4
; CHECK-NEXT:    [[Q_OFF_PTR_10:%.*]] = add i32 [[Q]], 10
; CHECK-NEXT:    [[RET_OFF_10:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_10]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_5:%.*]] = insertelement <8 x half> [[RET_SLICE_4]], half [[RET_OFF_10]], i64 5
; CHECK-NEXT:    [[Q_OFF_PTR_12:%.*]] = add i32 [[Q]], 12
; CHECK-NEXT:    [[RET_OFF_12:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_12]], i32 0, i32 0)
; CHECK-NEXT:    [[RET_SLICE_6:%.*]] = insertelement <8 x half> [[RET_SLICE_5]], half [[RET_OFF_12]], i64 6
; CHECK-NEXT:    [[Q_OFF_PTR_14:%.*]] = add i32 [[Q]], 14
; CHECK-NEXT:    [[RET_OFF_14:%.*]] = call half @llvm.amdgcn.raw.ptr.buffer.load.f16(ptr addrspace(8) align 2 [[BUF]], i32 [[Q_OFF_PTR_14]], i32 0, i32 0)
; CHECK-NEXT:    [[RET:%.*]] = insertelement <8 x half> [[RET_SLICE_6]], half [[RET_OFF_14]], i64 7
; CHECK-NEXT:    ret <8 x half> [[RET]]
;
  %buf = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1.i16(ptr addrspace(1) %ptr, i16 0, i16 -1, i32 0)
  %p = addrspacecast ptr addrspace(8) %buf to ptr addrspace(7)
  %off.clamped = call i32 @llvm.umin.i32(i32 %off, i32 65540)
  %q = getelementptr i8, ptr addrspace(7) %p, i32 %off.clamped
  %ret = load <8 x half>, ptr addrspace(7) %q, align 2
  ret <8 x half> %ret
}

!llvm.module.flags = !{!0}
;; Strict buffer OOB mode
!0 = !{i32 7, !"amdgpu.buffer.oob.mode", i32 2}
