
This patch adjusts the cost model to account for the ability of the AMDGPU optimizer to group together i8 values into i32 values. Co-authored-by: Erich Keane <ekeane@nvidia.com>
410 lines
27 KiB
LLVM
410 lines
27 KiB
LLVM
; 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 @loads_i1(i32 %arg) {
|
|
; GFX90A-LABEL: 'loads_i1'
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %1 = load i1, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %2 = load <2 x i1>, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %3 = load <3 x i1>, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %4 = load <4 x i1>, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 10 for instruction: ret void
|
|
;
|
|
load i1, ptr poison
|
|
load <2 x i1>, ptr poison
|
|
load <3 x i1>, ptr poison
|
|
load <4 x i1>, ptr poison
|
|
|
|
ret void
|
|
}
|
|
|
|
define void @loads_i8(i32 %arg) {
|
|
; GFX90A-LABEL: 'loads_i8'
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %1 = load i8, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %2 = load <2 x i8>, ptr poison, align 2
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %3 = load <3 x i8>, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %4 = load <4 x i8>, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %5 = load i8, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %6 = load <2 x i8>, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %7 = load <3 x i8>, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %8 = load <4 x i8>, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %9 = load i8, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %10 = load <2 x i8>, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %11 = load <3 x i8>, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %12 = load <4 x i8>, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 10 for instruction: ret void
|
|
;
|
|
load i8, ptr poison
|
|
load <2 x i8>, ptr poison
|
|
load <3 x i8>, ptr poison
|
|
load <4 x i8>, ptr poison
|
|
|
|
load i8, ptr poison, align 1
|
|
load <2 x i8>, ptr poison, align 1
|
|
load <3 x i8>, ptr poison, align 1
|
|
load <4 x i8>, ptr poison, align 1
|
|
|
|
load i8, ptr poison, align 4
|
|
load <2 x i8>, ptr poison, align 4
|
|
load <3 x i8>, ptr poison, align 4
|
|
load <4 x i8>, ptr poison, align 4
|
|
|
|
ret void
|
|
}
|
|
|
|
define void @loads_i16(i32 %arg) {
|
|
; GFX90A-LABEL: 'loads_i16'
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %1 = load i16, ptr poison, align 2
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %2 = load <2 x i16>, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %3 = load <3 x i16>, ptr poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %4 = load <4 x i16>, ptr poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %5 = load i16, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %6 = load <2 x i16>, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %7 = load <3 x i16>, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %8 = load <4 x i16>, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %9 = load i16, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %10 = load <2 x i16>, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %11 = load <3 x i16>, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %12 = load <4 x i16>, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %13 = load i16, ptr poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %14 = load <2 x i16>, ptr poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %15 = load <3 x i16>, ptr poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %16 = load <4 x i16>, ptr poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 10 for instruction: ret void
|
|
;
|
|
load i16, ptr poison
|
|
load <2 x i16>, ptr poison
|
|
load <3 x i16>, ptr poison
|
|
load <4 x i16>, ptr poison
|
|
|
|
load i16, ptr poison, align 1
|
|
load <2 x i16>, ptr poison, align 1
|
|
load <3 x i16>, ptr poison, align 1
|
|
load <4 x i16>, ptr poison, align 1
|
|
|
|
load i16, ptr poison, align 4
|
|
load <2 x i16>, ptr poison, align 4
|
|
load <3 x i16>, ptr poison, align 4
|
|
load <4 x i16>, ptr poison, align 4
|
|
|
|
load i16, ptr poison, align 8
|
|
load <2 x i16>, ptr poison, align 8
|
|
load <3 x i16>, ptr poison, align 8
|
|
load <4 x i16>, ptr poison, align 8
|
|
|
|
ret void
|
|
}
|
|
|
|
define void @loads_i32(i32 %arg) {
|
|
; GFX90A-LABEL: 'loads_i32'
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %1 = load i32, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %2 = load <2 x i32>, ptr poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %3 = load <3 x i32>, ptr poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %4 = load <4 x i32>, ptr poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %5 = load i32, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %6 = load <2 x i32>, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %7 = load <3 x i32>, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %8 = load <4 x i32>, ptr poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %9 = load i32, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %10 = load <2 x i32>, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %11 = load <3 x i32>, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %12 = load <4 x i32>, ptr poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %13 = load i32, ptr poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %14 = load <2 x i32>, ptr poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %15 = load <3 x i32>, ptr poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %16 = load <4 x i32>, ptr poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %17 = load i32, ptr poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %18 = load <2 x i32>, ptr poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %19 = load <3 x i32>, ptr poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %20 = load <4 x i32>, ptr poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 10 for instruction: ret void
|
|
;
|
|
load i32, ptr poison
|
|
load <2 x i32>, ptr poison
|
|
load <3 x i32>, ptr poison
|
|
load <4 x i32>, ptr poison
|
|
|
|
load i32, ptr poison, align 1
|
|
load <2 x i32>, ptr poison, align 1
|
|
load <3 x i32>, ptr poison, align 1
|
|
load <4 x i32>, ptr poison, align 1
|
|
|
|
load i32, ptr poison, align 4
|
|
load <2 x i32>, ptr poison, align 4
|
|
load <3 x i32>, ptr poison, align 4
|
|
load <4 x i32>, ptr poison, align 4
|
|
|
|
load i32, ptr poison, align 8
|
|
load <2 x i32>, ptr poison, align 8
|
|
load <3 x i32>, ptr poison, align 8
|
|
load <4 x i32>, ptr poison, align 8
|
|
|
|
load i32, ptr poison, align 16
|
|
load <2 x i32>, ptr poison, align 16
|
|
load <3 x i32>, ptr poison, align 16
|
|
load <4 x i32>, ptr poison, align 16
|
|
|
|
ret void
|
|
}
|
|
|
|
define void @loads_addrspace_1(i32 %arg) {
|
|
; GFX90A-LABEL: 'loads_addrspace_1'
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %1 = load <1 x i1>, ptr addrspace(1) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %2 = load <1 x i8>, ptr addrspace(1) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %3 = load <1 x i16>, ptr addrspace(1) poison, align 2
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %4 = load <1 x i32>, ptr addrspace(1) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %5 = load <2 x i1>, ptr addrspace(1) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %6 = load <2 x i8>, ptr addrspace(1) poison, align 2
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %7 = load <2 x i16>, ptr addrspace(1) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %8 = load <2 x i32>, ptr addrspace(1) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %9 = load <3 x i1>, ptr addrspace(1) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %10 = load <3 x i8>, ptr addrspace(1) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %11 = load <3 x i16>, ptr addrspace(1) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %12 = load <3 x i32>, ptr addrspace(1) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %13 = load <4 x i1>, ptr addrspace(1) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %14 = load <4 x i8>, ptr addrspace(1) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %15 = load <4 x i16>, ptr addrspace(1) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %16 = load <4 x i32>, ptr addrspace(1) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %17 = load <8 x i1>, ptr addrspace(1) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %18 = load <8 x i8>, ptr addrspace(1) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %19 = load <8 x i16>, ptr addrspace(1) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %20 = load <8 x i32>, ptr addrspace(1) poison, align 32
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %21 = load <16 x i1>, ptr addrspace(1) poison, align 2
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %22 = load <16 x i8>, ptr addrspace(1) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %23 = load <16 x i16>, ptr addrspace(1) poison, align 32
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %24 = load <16 x i32>, ptr addrspace(1) poison, align 64
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %25 = load <32 x i1>, ptr addrspace(1) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %26 = load <32 x i8>, ptr addrspace(1) poison, align 32
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %27 = load <32 x i16>, ptr addrspace(1) poison, align 64
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %28 = load <32 x i32>, ptr addrspace(1) poison, align 128
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %29 = load <64 x i1>, ptr addrspace(1) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %30 = load <64 x i8>, ptr addrspace(1) poison, align 64
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %31 = load <64 x i16>, ptr addrspace(1) poison, align 128
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %32 = load <64 x i32>, ptr addrspace(1) poison, align 256
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %33 = load <128 x i1>, ptr addrspace(1) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %34 = load <128 x i8>, ptr addrspace(1) poison, align 128
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %35 = load <128 x i16>, ptr addrspace(1) poison, align 256
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %36 = load <128 x i32>, ptr addrspace(1) poison, align 512
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 10 for instruction: ret void
|
|
;
|
|
load <1 x i1>, ptr addrspace(1) poison
|
|
load <1 x i8>, ptr addrspace(1) poison
|
|
load <1 x i16>, ptr addrspace(1) poison
|
|
load <1 x i32>, ptr addrspace(1) poison
|
|
|
|
load <2 x i1>, ptr addrspace(1) poison
|
|
load <2 x i8>, ptr addrspace(1) poison
|
|
load <2 x i16>, ptr addrspace(1) poison
|
|
load <2 x i32>, ptr addrspace(1) poison
|
|
|
|
load <3 x i1>, ptr addrspace(1) poison
|
|
load <3 x i8>, ptr addrspace(1) poison
|
|
load <3 x i16>, ptr addrspace(1) poison
|
|
load <3 x i32>, ptr addrspace(1) poison
|
|
|
|
load <4 x i1>, ptr addrspace(1) poison
|
|
load <4 x i8>, ptr addrspace(1) poison
|
|
load <4 x i16>, ptr addrspace(1) poison
|
|
load <4 x i32>, ptr addrspace(1) poison
|
|
|
|
load <8 x i1>, ptr addrspace(1) poison
|
|
load <8 x i8>, ptr addrspace(1) poison
|
|
load <8 x i16>, ptr addrspace(1) poison
|
|
load <8 x i32>, ptr addrspace(1) poison
|
|
|
|
load <16 x i1>, ptr addrspace(1) poison
|
|
load <16 x i8>, ptr addrspace(1) poison
|
|
load <16 x i16>, ptr addrspace(1) poison
|
|
load <16 x i32>, ptr addrspace(1) poison
|
|
|
|
load <32 x i1>, ptr addrspace(1) poison
|
|
load <32 x i8>, ptr addrspace(1) poison
|
|
load <32 x i16>, ptr addrspace(1) poison
|
|
load <32 x i32>, ptr addrspace(1) poison
|
|
|
|
load <64 x i1>, ptr addrspace(1) poison
|
|
load <64 x i8>, ptr addrspace(1) poison
|
|
load <64 x i16>, ptr addrspace(1) poison
|
|
load <64 x i32>, ptr addrspace(1) poison
|
|
|
|
load <128 x i1>, ptr addrspace(1) poison
|
|
load <128 x i8>, ptr addrspace(1) poison
|
|
load <128 x i16>, ptr addrspace(1) poison
|
|
load <128 x i32>, ptr addrspace(1) poison
|
|
ret void
|
|
}
|
|
|
|
define void @loads_addrspace_3(i32 %arg) {
|
|
; GFX90A-LABEL: 'loads_addrspace_3'
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %1 = load <1 x i1>, ptr addrspace(3) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %2 = load <1 x i8>, ptr addrspace(3) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %3 = load <1 x i16>, ptr addrspace(3) poison, align 2
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %4 = load <1 x i32>, ptr addrspace(3) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %5 = load <2 x i1>, ptr addrspace(3) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %6 = load <2 x i8>, ptr addrspace(3) poison, align 2
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %7 = load <2 x i16>, ptr addrspace(3) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %8 = load <2 x i32>, ptr addrspace(3) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %9 = load <3 x i1>, ptr addrspace(3) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %10 = load <3 x i8>, ptr addrspace(3) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %11 = load <3 x i16>, ptr addrspace(3) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %12 = load <3 x i32>, ptr addrspace(3) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %13 = load <4 x i1>, ptr addrspace(3) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %14 = load <4 x i8>, ptr addrspace(3) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %15 = load <4 x i16>, ptr addrspace(3) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %16 = load <4 x i32>, ptr addrspace(3) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %17 = load <8 x i1>, ptr addrspace(3) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %18 = load <8 x i8>, ptr addrspace(3) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %19 = load <8 x i16>, ptr addrspace(3) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %20 = load <8 x i32>, ptr addrspace(3) poison, align 32
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %21 = load <16 x i1>, ptr addrspace(3) poison, align 2
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %22 = load <16 x i8>, ptr addrspace(3) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %23 = load <16 x i16>, ptr addrspace(3) poison, align 32
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %24 = load <16 x i32>, ptr addrspace(3) poison, align 64
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %25 = load <32 x i1>, ptr addrspace(3) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %26 = load <32 x i8>, ptr addrspace(3) poison, align 32
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %27 = load <32 x i16>, ptr addrspace(3) poison, align 64
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %28 = load <32 x i32>, ptr addrspace(3) poison, align 128
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %29 = load <64 x i1>, ptr addrspace(3) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %30 = load <64 x i8>, ptr addrspace(3) poison, align 64
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %31 = load <64 x i16>, ptr addrspace(3) poison, align 128
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %32 = load <64 x i32>, ptr addrspace(3) poison, align 256
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %33 = load <128 x i1>, ptr addrspace(3) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %34 = load <128 x i8>, ptr addrspace(3) poison, align 128
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %35 = load <128 x i16>, ptr addrspace(3) poison, align 256
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %36 = load <128 x i32>, ptr addrspace(3) poison, align 512
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 10 for instruction: ret void
|
|
;
|
|
load <1 x i1>, ptr addrspace(3) poison
|
|
load <1 x i8>, ptr addrspace(3) poison
|
|
load <1 x i16>, ptr addrspace(3) poison
|
|
load <1 x i32>, ptr addrspace(3) poison
|
|
|
|
load <2 x i1>, ptr addrspace(3) poison
|
|
load <2 x i8>, ptr addrspace(3) poison
|
|
load <2 x i16>, ptr addrspace(3) poison
|
|
load <2 x i32>, ptr addrspace(3) poison
|
|
|
|
load <3 x i1>, ptr addrspace(3) poison
|
|
load <3 x i8>, ptr addrspace(3) poison
|
|
load <3 x i16>, ptr addrspace(3) poison
|
|
load <3 x i32>, ptr addrspace(3) poison
|
|
|
|
load <4 x i1>, ptr addrspace(3) poison
|
|
load <4 x i8>, ptr addrspace(3) poison
|
|
load <4 x i16>, ptr addrspace(3) poison
|
|
load <4 x i32>, ptr addrspace(3) poison
|
|
|
|
load <8 x i1>, ptr addrspace(3) poison
|
|
load <8 x i8>, ptr addrspace(3) poison
|
|
load <8 x i16>, ptr addrspace(3) poison
|
|
load <8 x i32>, ptr addrspace(3) poison
|
|
|
|
load <16 x i1>, ptr addrspace(3) poison
|
|
load <16 x i8>, ptr addrspace(3) poison
|
|
load <16 x i16>, ptr addrspace(3) poison
|
|
load <16 x i32>, ptr addrspace(3) poison
|
|
|
|
load <32 x i1>, ptr addrspace(3) poison
|
|
load <32 x i8>, ptr addrspace(3) poison
|
|
load <32 x i16>, ptr addrspace(3) poison
|
|
load <32 x i32>, ptr addrspace(3) poison
|
|
|
|
load <64 x i1>, ptr addrspace(3) poison
|
|
load <64 x i8>, ptr addrspace(3) poison
|
|
load <64 x i16>, ptr addrspace(3) poison
|
|
load <64 x i32>, ptr addrspace(3) poison
|
|
|
|
load <128 x i1>, ptr addrspace(3) poison
|
|
load <128 x i8>, ptr addrspace(3) poison
|
|
load <128 x i16>, ptr addrspace(3) poison
|
|
load <128 x i32>, ptr addrspace(3) poison
|
|
ret void
|
|
}
|
|
|
|
define void @loads_addrspace_5(i32 %arg) {
|
|
; GFX90A-LABEL: 'loads_addrspace_5'
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %1 = load <1 x i1>, ptr addrspace(5) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %2 = load <1 x i8>, ptr addrspace(5) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %3 = load <1 x i16>, ptr addrspace(5) poison, align 2
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %4 = load <1 x i32>, ptr addrspace(5) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %5 = load <2 x i1>, ptr addrspace(5) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %6 = load <2 x i8>, ptr addrspace(5) poison, align 2
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %7 = load <2 x i16>, ptr addrspace(5) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %8 = load <2 x i32>, ptr addrspace(5) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %9 = load <3 x i1>, ptr addrspace(5) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %10 = load <3 x i8>, ptr addrspace(5) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %11 = load <3 x i16>, ptr addrspace(5) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %12 = load <3 x i32>, ptr addrspace(5) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %13 = load <4 x i1>, ptr addrspace(5) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %14 = load <4 x i8>, ptr addrspace(5) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %15 = load <4 x i16>, ptr addrspace(5) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %16 = load <4 x i32>, ptr addrspace(5) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %17 = load <8 x i1>, ptr addrspace(5) poison, align 1
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %18 = load <8 x i8>, ptr addrspace(5) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %19 = load <8 x i16>, ptr addrspace(5) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %20 = load <8 x i32>, ptr addrspace(5) poison, align 32
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %21 = load <16 x i1>, ptr addrspace(5) poison, align 2
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %22 = load <16 x i8>, ptr addrspace(5) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %23 = load <16 x i16>, ptr addrspace(5) poison, align 32
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %24 = load <16 x i32>, ptr addrspace(5) poison, align 64
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %25 = load <32 x i1>, ptr addrspace(5) poison, align 4
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %26 = load <32 x i8>, ptr addrspace(5) poison, align 32
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %27 = load <32 x i16>, ptr addrspace(5) poison, align 64
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %28 = load <32 x i32>, ptr addrspace(5) poison, align 128
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %29 = load <64 x i1>, ptr addrspace(5) poison, align 8
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %30 = load <64 x i8>, ptr addrspace(5) poison, align 64
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %31 = load <64 x i16>, ptr addrspace(5) poison, align 128
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %32 = load <64 x i32>, ptr addrspace(5) poison, align 256
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %33 = load <128 x i1>, ptr addrspace(5) poison, align 16
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %34 = load <128 x i8>, ptr addrspace(5) poison, align 128
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %35 = load <128 x i16>, ptr addrspace(5) poison, align 256
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %36 = load <128 x i32>, ptr addrspace(5) poison, align 512
|
|
; GFX90A-NEXT: Cost Model: Found an estimated cost of 10 for instruction: ret void
|
|
;
|
|
load <1 x i1>, ptr addrspace(5) poison
|
|
load <1 x i8>, ptr addrspace(5) poison
|
|
load <1 x i16>, ptr addrspace(5) poison
|
|
load <1 x i32>, ptr addrspace(5) poison
|
|
|
|
load <2 x i1>, ptr addrspace(5) poison
|
|
load <2 x i8>, ptr addrspace(5) poison
|
|
load <2 x i16>, ptr addrspace(5) poison
|
|
load <2 x i32>, ptr addrspace(5) poison
|
|
|
|
load <3 x i1>, ptr addrspace(5) poison
|
|
load <3 x i8>, ptr addrspace(5) poison
|
|
load <3 x i16>, ptr addrspace(5) poison
|
|
load <3 x i32>, ptr addrspace(5) poison
|
|
|
|
load <4 x i1>, ptr addrspace(5) poison
|
|
load <4 x i8>, ptr addrspace(5) poison
|
|
load <4 x i16>, ptr addrspace(5) poison
|
|
load <4 x i32>, ptr addrspace(5) poison
|
|
|
|
load <8 x i1>, ptr addrspace(5) poison
|
|
load <8 x i8>, ptr addrspace(5) poison
|
|
load <8 x i16>, ptr addrspace(5) poison
|
|
load <8 x i32>, ptr addrspace(5) poison
|
|
|
|
load <16 x i1>, ptr addrspace(5) poison
|
|
load <16 x i8>, ptr addrspace(5) poison
|
|
load <16 x i16>, ptr addrspace(5) poison
|
|
load <16 x i32>, ptr addrspace(5) poison
|
|
|
|
load <32 x i1>, ptr addrspace(5) poison
|
|
load <32 x i8>, ptr addrspace(5) poison
|
|
load <32 x i16>, ptr addrspace(5) poison
|
|
load <32 x i32>, ptr addrspace(5) poison
|
|
|
|
load <64 x i1>, ptr addrspace(5) poison
|
|
load <64 x i8>, ptr addrspace(5) poison
|
|
load <64 x i16>, ptr addrspace(5) poison
|
|
load <64 x i32>, ptr addrspace(5) poison
|
|
|
|
load <128 x i1>, ptr addrspace(5) poison
|
|
load <128 x i8>, ptr addrspace(5) poison
|
|
load <128 x i16>, ptr addrspace(5) poison
|
|
load <128 x i32>, ptr addrspace(5) poison
|
|
ret void
|
|
}
|