; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
; RUN: opt -passes="print<cost-model>" 2>&1 -disable-output -mtriple=amdgcn-unknown-amdhsa -mcpu=gfx90a < %s | FileCheck %s --check-prefixes=GFX90A

define void @stores_i1(i32 %arg) {
; GFX90A-LABEL: 'stores_i1'
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i1 poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <2 x i1> poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <3 x i1> poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <4 x i1> poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: ret void
;
  store i1 poison, ptr poison
  store <2 x i1> poison, ptr poison
  store <3 x i1> poison, ptr poison
  store <4 x i1> poison, ptr poison

  ret void
}

define void @stores_i8(i32 %arg) {
; GFX90A-LABEL: 'stores_i8'
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i8 poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i8> poison, ptr poison, align 2
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i8> poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i8> poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i8 poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i8> poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i8> poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i8> poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i8 poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i8> poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i8> poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i8> poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: ret void
;
  store i8 poison, ptr poison
  store <2 x i8> poison, ptr poison
  store <3 x i8> poison, ptr poison
  store <4 x i8> poison, ptr poison

  store i8 poison, ptr poison, align 1
  store <2 x i8> poison, ptr poison, align 1
  store <3 x i8> poison, ptr poison, align 1
  store <4 x i8> poison, ptr poison, align 1

  store i8 poison, ptr poison, align 4
  store <2 x i8> poison, ptr poison, align 4
  store <3 x i8> poison, ptr poison, align 4
  store <4 x i8> poison, ptr poison, align 4

  ret void
}

define void @stores_i16(i32 %arg) {
; GFX90A-LABEL: 'stores_i16'
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i16 poison, ptr poison, align 2
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i16> poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i16> poison, ptr poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> poison, ptr poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i16 poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i16> poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i16> poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i16 poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i16> poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i16> poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i16 poison, ptr poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i16> poison, ptr poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i16> poison, ptr poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> poison, ptr poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: ret void
;
  store i16 poison, ptr poison
  store <2 x i16> poison, ptr poison
  store <3 x i16> poison, ptr poison
  store <4 x i16> poison, ptr poison

  store i16 poison, ptr poison, align 1
  store <2 x i16> poison, ptr poison, align 1
  store <3 x i16> poison, ptr poison, align 1
  store <4 x i16> poison, ptr poison, align 1

  store i16 poison, ptr poison, align 4
  store <2 x i16> poison, ptr poison, align 4
  store <3 x i16> poison, ptr poison, align 4
  store <4 x i16> poison, ptr poison, align 4

  store i16 poison, ptr poison, align 8
  store <2 x i16> poison, ptr poison, align 8
  store <3 x i16> poison, ptr poison, align 8
  store <4 x i16> poison, ptr poison, align 8

  ret void
}

define void @stores_i32(i32 %arg) {
; GFX90A-LABEL: 'stores_i32'
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i32 poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i32> poison, ptr poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i32> poison, ptr poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> poison, ptr poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i32 poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i32> poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i32> poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> poison, ptr poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i32 poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i32> poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i32> poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> poison, ptr poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i32 poison, ptr poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i32> poison, ptr poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i32> poison, ptr poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> poison, ptr poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i32 poison, ptr poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i32> poison, ptr poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i32> poison, ptr poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> poison, ptr poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: ret void
;
  store i32 poison, ptr poison
  store <2 x i32> poison, ptr poison
  store <3 x i32> poison, ptr poison
  store <4 x i32> poison, ptr poison

  store i32 poison, ptr poison, align 1
  store <2 x i32> poison, ptr poison, align 1
  store <3 x i32> poison, ptr poison, align 1
  store <4 x i32> poison, ptr poison, align 1

  store i32 poison, ptr poison, align 4
  store <2 x i32> poison, ptr poison, align 4
  store <3 x i32> poison, ptr poison, align 4
  store <4 x i32> poison, ptr poison, align 4

  store i32 poison, ptr poison, align 8
  store <2 x i32> poison, ptr poison, align 8
  store <3 x i32> poison, ptr poison, align 8
  store <4 x i32> poison, ptr poison, align 8

  store i32 poison, ptr poison, align 16
  store <2 x i32> poison, ptr poison, align 16
  store <3 x i32> poison, ptr poison, align 16
  store <4 x i32> poison, ptr poison, align 16

  ret void
}

define void @stores_addrspace_1(i32 %arg) {
; GFX90A-LABEL: 'stores_addrspace_1'
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <1 x i1> poison, ptr addrspace(1) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <1 x i8> poison, ptr addrspace(1) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <1 x i16> poison, ptr addrspace(1) poison, align 2
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <1 x i32> poison, ptr addrspace(1) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <2 x i1> poison, ptr addrspace(1) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i8> poison, ptr addrspace(1) poison, align 2
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i16> poison, ptr addrspace(1) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i32> poison, ptr addrspace(1) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <3 x i1> poison, ptr addrspace(1) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i8> poison, ptr addrspace(1) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i16> poison, ptr addrspace(1) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i32> poison, ptr addrspace(1) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <4 x i1> poison, ptr addrspace(1) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i8> poison, ptr addrspace(1) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> poison, ptr addrspace(1) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> poison, ptr addrspace(1) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: store <8 x i1> poison, ptr addrspace(1) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i8> poison, ptr addrspace(1) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> poison, ptr addrspace(1) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i32> poison, ptr addrspace(1) poison, align 32
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 16 for instruction: store <16 x i1> poison, ptr addrspace(1) poison, align 2
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <16 x i8> poison, ptr addrspace(1) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <16 x i16> poison, ptr addrspace(1) poison, align 32
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <16 x i32> poison, ptr addrspace(1) poison, align 64
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 32 for instruction: store <32 x i1> poison, ptr addrspace(1) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <32 x i8> poison, ptr addrspace(1) poison, align 32
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <32 x i16> poison, ptr addrspace(1) poison, align 64
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <32 x i32> poison, ptr addrspace(1) poison, align 128
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 64 for instruction: store <64 x i1> poison, ptr addrspace(1) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <64 x i8> poison, ptr addrspace(1) poison, align 64
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <64 x i16> poison, ptr addrspace(1) poison, align 128
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <64 x i32> poison, ptr addrspace(1) poison, align 256
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 128 for instruction: store <128 x i1> poison, ptr addrspace(1) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <128 x i8> poison, ptr addrspace(1) poison, align 128
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <128 x i16> poison, ptr addrspace(1) poison, align 256
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <128 x i32> poison, ptr addrspace(1) poison, align 512
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: ret void
;
  store <1 x i1> poison, ptr addrspace(1) poison
  store <1 x i8> poison, ptr addrspace(1) poison
  store <1 x i16> poison, ptr addrspace(1) poison
  store <1 x i32> poison, ptr addrspace(1) poison

  store <2 x i1> poison, ptr addrspace(1) poison
  store <2 x i8> poison, ptr addrspace(1) poison
  store <2 x i16> poison, ptr addrspace(1) poison
  store <2 x i32> poison, ptr addrspace(1) poison

  store <3 x i1> poison, ptr addrspace(1) poison
  store <3 x i8> poison, ptr addrspace(1) poison
  store <3 x i16> poison, ptr addrspace(1) poison
  store <3 x i32> poison, ptr addrspace(1) poison

  store <4 x i1> poison, ptr addrspace(1) poison
  store <4 x i8> poison, ptr addrspace(1) poison
  store <4 x i16> poison, ptr addrspace(1) poison
  store <4 x i32> poison, ptr addrspace(1) poison

  store <8 x i1> poison, ptr addrspace(1) poison
  store <8 x i8> poison, ptr addrspace(1) poison
  store <8 x i16> poison, ptr addrspace(1) poison
  store <8 x i32> poison, ptr addrspace(1) poison

  store <16 x i1> poison, ptr addrspace(1) poison
  store <16 x i8> poison, ptr addrspace(1) poison
  store <16 x i16> poison, ptr addrspace(1) poison
  store <16 x i32> poison, ptr addrspace(1) poison

  store <32 x i1> poison, ptr addrspace(1) poison
  store <32 x i8> poison, ptr addrspace(1) poison
  store <32 x i16> poison, ptr addrspace(1) poison
  store <32 x i32> poison, ptr addrspace(1) poison

  store <64 x i1> poison, ptr addrspace(1) poison
  store <64 x i8> poison, ptr addrspace(1) poison
  store <64 x i16> poison, ptr addrspace(1) poison
  store <64 x i32> poison, ptr addrspace(1) poison

  store <128 x i1> poison, ptr addrspace(1) poison
  store <128 x i8> poison, ptr addrspace(1) poison
  store <128 x i16> poison, ptr addrspace(1) poison
  store <128 x i32> poison, ptr addrspace(1) poison

  ret void
}

define void @stores_addrspace_3(i32 %arg) {
; GFX90A-LABEL: 'stores_addrspace_3'
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <1 x i1> poison, ptr addrspace(3) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <1 x i8> poison, ptr addrspace(3) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <1 x i16> poison, ptr addrspace(3) poison, align 2
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <1 x i32> poison, ptr addrspace(3) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <2 x i1> poison, ptr addrspace(3) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i8> poison, ptr addrspace(3) poison, align 2
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i16> poison, ptr addrspace(3) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i32> poison, ptr addrspace(3) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <3 x i1> poison, ptr addrspace(3) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i8> poison, ptr addrspace(3) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i16> poison, ptr addrspace(3) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i32> poison, ptr addrspace(3) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <4 x i1> poison, ptr addrspace(3) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i8> poison, ptr addrspace(3) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> poison, ptr addrspace(3) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> poison, ptr addrspace(3) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: store <8 x i1> poison, ptr addrspace(3) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i8> poison, ptr addrspace(3) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> poison, ptr addrspace(3) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i32> poison, ptr addrspace(3) poison, align 32
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 16 for instruction: store <16 x i1> poison, ptr addrspace(3) poison, align 2
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <16 x i8> poison, ptr addrspace(3) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <16 x i16> poison, ptr addrspace(3) poison, align 32
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <16 x i32> poison, ptr addrspace(3) poison, align 64
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 32 for instruction: store <32 x i1> poison, ptr addrspace(3) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <32 x i8> poison, ptr addrspace(3) poison, align 32
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <32 x i16> poison, ptr addrspace(3) poison, align 64
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <32 x i32> poison, ptr addrspace(3) poison, align 128
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 64 for instruction: store <64 x i1> poison, ptr addrspace(3) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <64 x i8> poison, ptr addrspace(3) poison, align 64
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <64 x i16> poison, ptr addrspace(3) poison, align 128
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <64 x i32> poison, ptr addrspace(3) poison, align 256
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 128 for instruction: store <128 x i1> poison, ptr addrspace(3) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: store <128 x i8> poison, ptr addrspace(3) poison, align 128
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <128 x i16> poison, ptr addrspace(3) poison, align 256
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <128 x i32> poison, ptr addrspace(3) poison, align 512
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: ret void
;
  store <1 x i1> poison, ptr addrspace(3) poison
  store <1 x i8> poison, ptr addrspace(3) poison
  store <1 x i16> poison, ptr addrspace(3) poison
  store <1 x i32> poison, ptr addrspace(3) poison

  store <2 x i1> poison, ptr addrspace(3) poison
  store <2 x i8> poison, ptr addrspace(3) poison
  store <2 x i16> poison, ptr addrspace(3) poison
  store <2 x i32> poison, ptr addrspace(3) poison

  store <3 x i1> poison, ptr addrspace(3) poison
  store <3 x i8> poison, ptr addrspace(3) poison
  store <3 x i16> poison, ptr addrspace(3) poison
  store <3 x i32> poison, ptr addrspace(3) poison

  store <4 x i1> poison, ptr addrspace(3) poison
  store <4 x i8> poison, ptr addrspace(3) poison
  store <4 x i16> poison, ptr addrspace(3) poison
  store <4 x i32> poison, ptr addrspace(3) poison

  store <8 x i1> poison, ptr addrspace(3) poison
  store <8 x i8> poison, ptr addrspace(3) poison
  store <8 x i16> poison, ptr addrspace(3) poison
  store <8 x i32> poison, ptr addrspace(3) poison

  store <16 x i1> poison, ptr addrspace(3) poison
  store <16 x i8> poison, ptr addrspace(3) poison
  store <16 x i16> poison, ptr addrspace(3) poison
  store <16 x i32> poison, ptr addrspace(3) poison

  store <32 x i1> poison, ptr addrspace(3) poison
  store <32 x i8> poison, ptr addrspace(3) poison
  store <32 x i16> poison, ptr addrspace(3) poison
  store <32 x i32> poison, ptr addrspace(3) poison

  store <64 x i1> poison, ptr addrspace(3) poison
  store <64 x i8> poison, ptr addrspace(3) poison
  store <64 x i16> poison, ptr addrspace(3) poison
  store <64 x i32> poison, ptr addrspace(3) poison

  store <128 x i1> poison, ptr addrspace(3) poison
  store <128 x i8> poison, ptr addrspace(3) poison
  store <128 x i16> poison, ptr addrspace(3) poison
  store <128 x i32> poison, ptr addrspace(3) poison

  ret void
}

define void @stores_addrspace_5(i32 %arg) {
; GFX90A-LABEL: 'stores_addrspace_5'
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <1 x i1> poison, ptr addrspace(5) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <1 x i8> poison, ptr addrspace(5) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <1 x i16> poison, ptr addrspace(5) poison, align 2
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <1 x i32> poison, ptr addrspace(5) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <2 x i1> poison, ptr addrspace(5) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i8> poison, ptr addrspace(5) poison, align 2
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i16> poison, ptr addrspace(5) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <2 x i32> poison, ptr addrspace(5) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <3 x i1> poison, ptr addrspace(5) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i8> poison, ptr addrspace(5) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i16> poison, ptr addrspace(5) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <3 x i32> poison, ptr addrspace(5) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <4 x i1> poison, ptr addrspace(5) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i8> poison, ptr addrspace(5) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> poison, ptr addrspace(5) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> poison, ptr addrspace(5) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: store <8 x i1> poison, ptr addrspace(5) poison, align 1
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <8 x i8> poison, ptr addrspace(5) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> poison, ptr addrspace(5) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i32> poison, ptr addrspace(5) poison, align 32
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 16 for instruction: store <16 x i1> poison, ptr addrspace(5) poison, align 2
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <16 x i8> poison, ptr addrspace(5) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <16 x i16> poison, ptr addrspace(5) poison, align 32
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <16 x i32> poison, ptr addrspace(5) poison, align 64
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 32 for instruction: store <32 x i1> poison, ptr addrspace(5) poison, align 4
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: store <32 x i8> poison, ptr addrspace(5) poison, align 32
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <32 x i16> poison, ptr addrspace(5) poison, align 64
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <32 x i32> poison, ptr addrspace(5) poison, align 128
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 64 for instruction: store <64 x i1> poison, ptr addrspace(5) poison, align 8
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 16 for instruction: store <64 x i8> poison, ptr addrspace(5) poison, align 64
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <64 x i16> poison, ptr addrspace(5) poison, align 128
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <64 x i32> poison, ptr addrspace(5) poison, align 256
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 128 for instruction: store <128 x i1> poison, ptr addrspace(5) poison, align 16
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 32 for instruction: store <128 x i8> poison, ptr addrspace(5) poison, align 128
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <128 x i16> poison, ptr addrspace(5) poison, align 256
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <128 x i32> poison, ptr addrspace(5) poison, align 512
; GFX90A-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: ret void
;
  store <1 x i1> poison, ptr addrspace(5) poison
  store <1 x i8> poison, ptr addrspace(5) poison
  store <1 x i16> poison, ptr addrspace(5) poison
  store <1 x i32> poison, ptr addrspace(5) poison

  store <2 x i1> poison, ptr addrspace(5) poison
  store <2 x i8> poison, ptr addrspace(5) poison
  store <2 x i16> poison, ptr addrspace(5) poison
  store <2 x i32> poison, ptr addrspace(5) poison

  store <3 x i1> poison, ptr addrspace(5) poison
  store <3 x i8> poison, ptr addrspace(5) poison
  store <3 x i16> poison, ptr addrspace(5) poison
  store <3 x i32> poison, ptr addrspace(5) poison

  store <4 x i1> poison, ptr addrspace(5) poison
  store <4 x i8> poison, ptr addrspace(5) poison
  store <4 x i16> poison, ptr addrspace(5) poison
  store <4 x i32> poison, ptr addrspace(5) poison

  store <8 x i1> poison, ptr addrspace(5) poison
  store <8 x i8> poison, ptr addrspace(5) poison
  store <8 x i16> poison, ptr addrspace(5) poison
  store <8 x i32> poison, ptr addrspace(5) poison

  store <16 x i1> poison, ptr addrspace(5) poison
  store <16 x i8> poison, ptr addrspace(5) poison
  store <16 x i16> poison, ptr addrspace(5) poison
  store <16 x i32> poison, ptr addrspace(5) poison

  store <32 x i1> poison, ptr addrspace(5) poison
  store <32 x i8> poison, ptr addrspace(5) poison
  store <32 x i16> poison, ptr addrspace(5) poison
  store <32 x i32> poison, ptr addrspace(5) poison

  store <64 x i1> poison, ptr addrspace(5) poison
  store <64 x i8> poison, ptr addrspace(5) poison
  store <64 x i16> poison, ptr addrspace(5) poison
  store <64 x i32> poison, ptr addrspace(5) poison

  store <128 x i1> poison, ptr addrspace(5) poison
  store <128 x i8> poison, ptr addrspace(5) poison
  store <128 x i16> poison, ptr addrspace(5) poison
  store <128 x i32> poison, ptr addrspace(5) poison

  ret void
}
