; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=zEC12 | FileCheck %s --check-prefixes=CHECK,ZEC12
; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=z13 | FileCheck %s --check-prefixes=CHECK,Z13
; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=z14 | FileCheck %s --check-prefixes=CHECK,Z14
define void @store() {
store i8 undef, ptr undef
store i16 undef, ptr undef
store i32 undef, ptr undef
store i64 undef, ptr undef
store i128 undef, ptr undef
store float undef, ptr undef
store double undef, ptr undef
store fp128 undef, ptr undef
store <2 x i8> undef, ptr undef
store <2 x i16> undef, ptr undef
store <2 x i32> undef, ptr undef
store <2 x i64> undef, ptr undef
store <2 x float> undef, ptr undef
store <2 x double> undef, ptr undef
store <4 x i8> undef, ptr undef
store <4 x i16> undef, ptr undef
store <4 x i32> undef, ptr undef
store <4 x i64> undef, ptr undef
store <4 x float> undef, ptr undef
store <4 x double> undef, ptr undef
store <8 x i8> undef, ptr undef
store <8 x i16> undef, ptr undef
store <8 x i32> undef, ptr undef
store <8 x i64> undef, ptr undef
store <8 x float> undef, ptr undef
store <8 x double> undef, ptr undef
store <16 x i8> undef, ptr undef
store <16 x i16> undef, ptr undef
store <16 x i32> undef, ptr undef
store <16 x i64> undef, ptr undef
store <16 x float> undef, ptr undef
store <16 x double> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store i8 undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store i16 undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store i32 undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store i64 undef, ptr undef
; ZEC12: Cost Model: Found an estimated cost of 2 for instruction: store i128 undef, ptr undef
; Z13: Cost Model: Found an estimated cost of 1 for instruction: store i128 undef, ptr undef
; Z14: Cost Model: Found an estimated cost of 1 for instruction: store i128 undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store float undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store double undef, ptr undef
; ZEC12: Cost Model: Found an estimated cost of 2 for instruction: store fp128 undef, ptr undef
; Z13: Cost Model: Found an estimated cost of 2 for instruction: store fp128 undef, ptr undef
; Z14: Cost Model: Found an estimated cost of 1 for instruction: store fp128 undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <2 x i8> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <2 x i16> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <2 x i32> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <2 x i64> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <2 x float> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <2 x double> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <4 x i8> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <4 x float> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 2 for instruction: store <4 x double> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <8 x i8> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 2 for instruction: store <8 x i32> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 4 for instruction: store <8 x i64> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 2 for instruction: store <8 x float> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 4 for instruction: store <8 x double> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: store <16 x i8> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 2 for instruction: store <16 x i16> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 4 for instruction: store <16 x i32> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 8 for instruction: store <16 x i64> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 4 for instruction: store <16 x float> undef, ptr undef
; CHECK: Cost Model: Found an estimated cost of 8 for instruction: store <16 x double> undef, ptr undef
ret void;
}
define void @load() {
load i8, ptr undef
load i16, ptr undef
load i32, ptr undef
load i64, ptr undef
load i128, ptr undef
load float, ptr undef
load double, ptr undef
load fp128, ptr undef
load <2 x i8>, ptr undef
load <2 x i16>, ptr undef
load <2 x i32>, ptr undef
load <2 x i64>, ptr undef
load <2 x float>, ptr undef
load <2 x double>, ptr undef
load <4 x i8>, ptr undef
load <4 x i16>, ptr undef
load <4 x i32>, ptr undef
load <4 x i64>, ptr undef
load <4 x float>, ptr undef
load <4 x double>, ptr undef
load <8 x i8>, ptr undef
load <8 x i16>, ptr undef
load <8 x i32>, ptr undef
load <8 x i64>, ptr undef
load <8 x float>, ptr undef
load <8 x double>, ptr undef
load <16 x i8>, ptr undef
load <16 x i16>, ptr undef
load <16 x i32>, ptr undef
load <16 x i64>, ptr undef
load <16 x float>, ptr undef
load <16 x double>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %1 = load i8, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %2 = load i16, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %3 = load i32, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %4 = load i64, ptr undef
; ZEC12: Cost Model: Found an estimated cost of 2 for instruction: %5 = load i128, ptr undef
; Z13: Cost Model: Found an estimated cost of 1 for instruction: %5 = load i128, ptr undef
; Z14: Cost Model: Found an estimated cost of 1 for instruction: %5 = load i128, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %6 = load float, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %7 = load double, ptr undef
; ZEC12: Cost Model: Found an estimated cost of 2 for instruction: %8 = load fp128, ptr undef
; Z13: Cost Model: Found an estimated cost of 2 for instruction: %8 = load fp128, ptr undef
; Z14: Cost Model: Found an estimated cost of 1 for instruction: %8 = load fp128, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %9 = load <2 x i8>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %10 = load <2 x i16>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %11 = load <2 x i32>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %12 = load <2 x i64>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %13 = load <2 x float>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %14 = load <2 x double>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %15 = load <4 x i8>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %16 = load <4 x i16>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %17 = load <4 x i32>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %18 = load <4 x i64>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %19 = load <4 x float>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %20 = load <4 x double>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %21 = load <8 x i8>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %22 = load <8 x i16>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %23 = load <8 x i32>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %24 = load <8 x i64>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %25 = load <8 x float>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %26 = load <8 x double>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %27 = load <16 x i8>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %28 = load <16 x i16>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %29 = load <16 x i32>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %30 = load <16 x i64>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %31 = load <16 x float>, ptr undef
; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %32 = load <16 x double>, ptr undef
ret void;
}