; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
; RUN: llc < %s -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs | FileCheck %s --check-prefixes=SDAG
; RUN: llc < %s -global-isel -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs | FileCheck %s --check-prefixes=GISEL

define amdgpu_kernel void @buffers_dont_alias(ptr addrspace(8) noalias %a, ptr addrspace(8) noalias %b) {
; SDAG-LABEL: buffers_dont_alias:
; SDAG:       ; %bb.0:
; SDAG-NEXT:    s_load_dwordx8 s[4:11], s[2:3], 0x24
; SDAG-NEXT:    s_waitcnt lgkmcnt(0)
; SDAG-NEXT:    buffer_load_dwordx4 v[0:3], off, s[4:7], 0
; SDAG-NEXT:    s_waitcnt vmcnt(0)
; SDAG-NEXT:    v_mul_f32_e32 v0, v0, v0
; SDAG-NEXT:    v_mul_f32_e32 v1, v1, v1
; SDAG-NEXT:    v_mul_f32_e32 v2, v2, v2
; SDAG-NEXT:    v_mul_f32_e32 v3, v3, v3
; SDAG-NEXT:    buffer_store_dwordx4 v[0:3], off, s[8:11], 0
; SDAG-NEXT:    s_endpgm
;
; GISEL-LABEL: buffers_dont_alias:
; GISEL:       ; %bb.0:
; GISEL-NEXT:    s_load_dwordx8 s[4:11], s[2:3], 0x24
; GISEL-NEXT:    s_waitcnt lgkmcnt(0)
; GISEL-NEXT:    buffer_load_dwordx4 v[0:3], off, s[4:7], 0
; GISEL-NEXT:    s_waitcnt vmcnt(0)
; GISEL-NEXT:    v_mul_f32_e32 v0, v0, v0
; GISEL-NEXT:    v_mul_f32_e32 v1, v1, v1
; GISEL-NEXT:    v_mul_f32_e32 v2, v2, v2
; GISEL-NEXT:    v_mul_f32_e32 v3, v3, v3
; GISEL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[8:11], 0
; GISEL-NEXT:    s_endpgm
  %l0 = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 0, i32 0, i32 0)
  %s0 = fmul float %l0, %l0
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %s0, ptr addrspace(8) %b, i32 0, i32 0, i32 0)

  %l1 = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 4, i32 0, i32 0)
  %s1 = fmul float %l1, %l1
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %s1, ptr addrspace(8) %b, i32 4, i32 0, i32 0)

  %l2 = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 8, i32 0, i32 0)
  %s2 = fmul float %l2, %l2
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %s2, ptr addrspace(8) %b, i32 8, i32 0, i32 0)

  %l3 = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 12, i32 0, i32 0)
  %s3 = fmul float %l3, %l3
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %s3, ptr addrspace(8) %b, i32 12, i32 0, i32 0)

  ret void
}

define amdgpu_kernel void @buffers_from_flat_dont_alias(ptr noalias %a.flat, ptr noalias %b.flat) {
; SDAG-LABEL: buffers_from_flat_dont_alias:
; SDAG:       ; %bb.0:
; SDAG-NEXT:    s_load_dwordx4 s[4:7], s[2:3], 0x24
; SDAG-NEXT:    s_mov_b32 s3, 0
; SDAG-NEXT:    s_mov_b32 s2, 16
; SDAG-NEXT:    s_waitcnt lgkmcnt(0)
; SDAG-NEXT:    s_and_b32 s1, s5, 0xffff
; SDAG-NEXT:    s_mov_b32 s0, s4
; SDAG-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0
; SDAG-NEXT:    s_and_b32 s1, s7, 0xffff
; SDAG-NEXT:    s_mov_b32 s0, s6
; SDAG-NEXT:    s_waitcnt vmcnt(0)
; SDAG-NEXT:    v_mul_f32_e32 v0, v0, v0
; SDAG-NEXT:    v_mul_f32_e32 v1, v1, v1
; SDAG-NEXT:    v_mul_f32_e32 v2, v2, v2
; SDAG-NEXT:    v_mul_f32_e32 v3, v3, v3
; SDAG-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0
; SDAG-NEXT:    s_endpgm
;
; GISEL-LABEL: buffers_from_flat_dont_alias:
; GISEL:       ; %bb.0:
; GISEL-NEXT:    s_load_dwordx4 s[4:7], s[2:3], 0x24
; GISEL-NEXT:    s_mov_b32 s3, 0
; GISEL-NEXT:    s_mov_b32 s2, 16
; GISEL-NEXT:    s_waitcnt lgkmcnt(0)
; GISEL-NEXT:    s_and_b32 s1, s5, 0xffff
; GISEL-NEXT:    s_mov_b32 s0, s4
; GISEL-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0
; GISEL-NEXT:    s_and_b32 s1, s7, 0xffff
; GISEL-NEXT:    s_mov_b32 s0, s6
; GISEL-NEXT:    s_waitcnt vmcnt(0)
; GISEL-NEXT:    v_mul_f32_e32 v0, v0, v0
; GISEL-NEXT:    v_mul_f32_e32 v1, v1, v1
; GISEL-NEXT:    v_mul_f32_e32 v2, v2, v2
; GISEL-NEXT:    v_mul_f32_e32 v3, v3, v3
; GISEL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0
; GISEL-NEXT:    s_endpgm
  %a = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p0(ptr %a.flat, i16 0, i32 16, i32 0)
  %b = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p0(ptr %b.flat, i16 0, i32 16, i32 0)

  %l0 = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 0, i32 0, i32 0)
  %s0 = fmul float %l0, %l0
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %s0, ptr addrspace(8) %b, i32 0, i32 0, i32 0)

  %l1 = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 4, i32 0, i32 0)
  %s1 = fmul float %l1, %l1
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %s1, ptr addrspace(8) %b, i32 4, i32 0, i32 0)

  %l2 = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 8, i32 0, i32 0)
  %s2 = fmul float %l2, %l2
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %s2, ptr addrspace(8) %b, i32 8, i32 0, i32 0)

  %l3 = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 12, i32 0, i32 0)
  %s3 = fmul float %l3, %l3
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %s3, ptr addrspace(8) %b, i32 12, i32 0, i32 0)

  ret void
}

define amdgpu_kernel void @buffers_might_alias(ptr addrspace(8) %a, ptr addrspace(8) %b) {
; SDAG-LABEL: buffers_might_alias:
; SDAG:       ; %bb.0:
; SDAG-NEXT:    s_load_dwordx8 s[4:11], s[2:3], 0x24
; SDAG-NEXT:    s_waitcnt lgkmcnt(0)
; SDAG-NEXT:    buffer_load_dword v0, off, s[4:7], 0
; SDAG-NEXT:    s_waitcnt vmcnt(0)
; SDAG-NEXT:    v_mul_f32_e32 v0, v0, v0
; SDAG-NEXT:    buffer_store_dword v0, off, s[8:11], 0
; SDAG-NEXT:    buffer_load_dword v0, off, s[4:7], 0 offset:4
; SDAG-NEXT:    s_waitcnt vmcnt(0)
; SDAG-NEXT:    v_mul_f32_e32 v0, v0, v0
; SDAG-NEXT:    buffer_store_dword v0, off, s[8:11], 0 offset:4
; SDAG-NEXT:    buffer_load_dword v0, off, s[4:7], 0 offset:8
; SDAG-NEXT:    s_waitcnt vmcnt(0)
; SDAG-NEXT:    v_mul_f32_e32 v0, v0, v0
; SDAG-NEXT:    buffer_store_dword v0, off, s[8:11], 0 offset:8
; SDAG-NEXT:    buffer_load_dword v0, off, s[4:7], 0 offset:12
; SDAG-NEXT:    s_waitcnt vmcnt(0)
; SDAG-NEXT:    v_mul_f32_e32 v0, v0, v0
; SDAG-NEXT:    buffer_store_dword v0, off, s[8:11], 0 offset:12
; SDAG-NEXT:    s_endpgm
;
; GISEL-LABEL: buffers_might_alias:
; GISEL:       ; %bb.0:
; GISEL-NEXT:    s_load_dwordx8 s[4:11], s[2:3], 0x24
; GISEL-NEXT:    s_waitcnt lgkmcnt(0)
; GISEL-NEXT:    buffer_load_dword v0, off, s[4:7], 0
; GISEL-NEXT:    s_waitcnt vmcnt(0)
; GISEL-NEXT:    v_mul_f32_e32 v0, v0, v0
; GISEL-NEXT:    buffer_store_dword v0, off, s[8:11], 0
; GISEL-NEXT:    buffer_load_dword v0, off, s[4:7], 0 offset:4
; GISEL-NEXT:    s_waitcnt vmcnt(0)
; GISEL-NEXT:    v_mul_f32_e32 v0, v0, v0
; GISEL-NEXT:    buffer_store_dword v0, off, s[8:11], 0 offset:4
; GISEL-NEXT:    buffer_load_dword v0, off, s[4:7], 0 offset:8
; GISEL-NEXT:    s_waitcnt vmcnt(0)
; GISEL-NEXT:    v_mul_f32_e32 v0, v0, v0
; GISEL-NEXT:    buffer_store_dword v0, off, s[8:11], 0 offset:8
; GISEL-NEXT:    buffer_load_dword v0, off, s[4:7], 0 offset:12
; GISEL-NEXT:    s_waitcnt vmcnt(0)
; GISEL-NEXT:    v_mul_f32_e32 v0, v0, v0
; GISEL-NEXT:    buffer_store_dword v0, off, s[8:11], 0 offset:12
; GISEL-NEXT:    s_endpgm
  %l0 = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 0, i32 0, i32 0)
  %s0 = fmul float %l0, %l0
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %s0, ptr addrspace(8) %b, i32 0, i32 0, i32 0)

  %l1 = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 4, i32 0, i32 0)
  %s1 = fmul float %l1, %l1
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %s1, ptr addrspace(8) %b, i32 4, i32 0, i32 0)

  %l2 = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 8, i32 0, i32 0)
  %s2 = fmul float %l2, %l2
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %s2, ptr addrspace(8) %b, i32 8, i32 0, i32 0)

  %l3 = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 12, i32 0, i32 0)
  %s3 = fmul float %l3, %l3
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %s3, ptr addrspace(8) %b, i32 12, i32 0, i32 0)

  ret void
}

define amdgpu_kernel void @independent_offsets(ptr addrspace(8) %a) {
; SDAG-LABEL: independent_offsets:
; SDAG:       ; %bb.0:
; SDAG-NEXT:    s_load_dwordx4 s[4:7], s[2:3], 0x24
; SDAG-NEXT:    v_lshlrev_b32_e32 v0, 2, v0
; SDAG-NEXT:    v_mov_b32_e32 v2, 1.0
; SDAG-NEXT:    s_waitcnt lgkmcnt(0)
; SDAG-NEXT:    buffer_load_dword v1, v0, s[4:7], 0 offen offset:4
; SDAG-NEXT:    s_nop 0
; SDAG-NEXT:    buffer_store_dword v2, v0, s[4:7], 0 offen
; SDAG-NEXT:    s_waitcnt vmcnt(1)
; SDAG-NEXT:    buffer_store_dword v1, v0, s[4:7], 0 offen offset:8
; SDAG-NEXT:    s_endpgm
;
; GISEL-LABEL: independent_offsets:
; GISEL:       ; %bb.0:
; GISEL-NEXT:    s_load_dwordx4 s[4:7], s[2:3], 0x24
; GISEL-NEXT:    v_lshlrev_b32_e32 v0, 2, v0
; GISEL-NEXT:    v_mov_b32_e32 v2, 1.0
; GISEL-NEXT:    s_waitcnt lgkmcnt(0)
; GISEL-NEXT:    buffer_load_dword v1, v0, s[4:7], 0 offen offset:4
; GISEL-NEXT:    s_nop 0
; GISEL-NEXT:    buffer_store_dword v2, v0, s[4:7], 0 offen
; GISEL-NEXT:    s_waitcnt vmcnt(1)
; GISEL-NEXT:    buffer_store_dword v1, v0, s[4:7], 0 offen offset:8
; GISEL-NEXT:    s_endpgm
  %lane = call i32 @llvm.amdgcn.workitem.id.x()
  %idx = shl i32 %lane, 2
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float 1.0, ptr addrspace(8) %a, i32 %idx, i32 0, i32 0)
  %idx.1 = add i32 %idx, 4
  %idx.2 = add i32 %idx, 8
  %val = call float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8) %a, i32 %idx.1, i32 0, i32 0)
  call void @llvm.amdgcn.raw.ptr.buffer.store.f32(float %val, ptr addrspace(8) %a, i32 %idx.2, i32 0, i32 0)

  ret void
}

declare i32 @llvm.amdgcn.workitem.id.x()

declare float @llvm.amdgcn.raw.ptr.buffer.load.f32(ptr addrspace(8), i32, i32, i32)
declare void @llvm.amdgcn.raw.ptr.buffer.store.f32(float, ptr addrspace(8), i32, i32, i32 immarg)
declare ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p0(ptr readnone nocapture, i16, i32, i32)
