1*4178e334SSimon Pilgrim; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=z13 \ 233435c4cSUlrich Weigand; RUN: | FileCheck -check-prefix=CHECK -check-prefix=CHECK-Z13 %s 3*4178e334SSimon Pilgrim; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=z14 \ 433435c4cSUlrich Weigand; RUN: | FileCheck -check-prefix=CHECK -check-prefix=CHECK-Z14 %s 5fccc7d66SJonas Paulsson; 6fccc7d66SJonas Paulsson; Note: The scalarized vector instructions cost is not including any 7fccc7d66SJonas Paulsson; extracts, due to the undef operands 8fccc7d66SJonas Paulsson; 9fccc7d66SJonas Paulsson; Note: FRem is implemented with libcall, so not included here. 10fccc7d66SJonas Paulsson 11fccc7d66SJonas Paulssondefine void @fadd() { 12fccc7d66SJonas Paulsson %res0 = fadd float undef, undef 13fccc7d66SJonas Paulsson %res1 = fadd double undef, undef 14fccc7d66SJonas Paulsson %res2 = fadd fp128 undef, undef 15fccc7d66SJonas Paulsson %res3 = fadd <2 x float> undef, undef 16fccc7d66SJonas Paulsson %res4 = fadd <2 x double> undef, undef 17fccc7d66SJonas Paulsson %res5 = fadd <4 x float> undef, undef 18fccc7d66SJonas Paulsson %res6 = fadd <4 x double> undef, undef 19fccc7d66SJonas Paulsson %res7 = fadd <8 x float> undef, undef 20fccc7d66SJonas Paulsson %res8 = fadd <8 x double> undef, undef 21fccc7d66SJonas Paulsson %res9 = fadd <16 x float> undef, undef 22fccc7d66SJonas Paulsson %res10 = fadd <16 x double> undef, undef 23fccc7d66SJonas Paulsson 24fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res0 = fadd float undef, undef 25fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res1 = fadd double undef, undef 26fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = fadd fp128 undef, undef 2733435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res3 = fadd <2 x float> undef, undef 2833435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res3 = fadd <2 x float> undef, undef 29fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = fadd <2 x double> undef, undef 3033435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res5 = fadd <4 x float> undef, undef 3133435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res5 = fadd <4 x float> undef, undef 32fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res6 = fadd <4 x double> undef, undef 3333435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 16 for instruction: %res7 = fadd <8 x float> undef, undef 3433435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 2 for instruction: %res7 = fadd <8 x float> undef, undef 35fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res8 = fadd <8 x double> undef, undef 3633435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 32 for instruction: %res9 = fadd <16 x float> undef, undef 3733435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 4 for instruction: %res9 = fadd <16 x float> undef, undef 38fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res10 = fadd <16 x double> undef, undef 39fccc7d66SJonas Paulsson 40fccc7d66SJonas Paulsson ret void; 41fccc7d66SJonas Paulsson} 42fccc7d66SJonas Paulsson 43fccc7d66SJonas Paulssondefine void @fsub() { 44fccc7d66SJonas Paulsson %res0 = fsub float undef, undef 45fccc7d66SJonas Paulsson %res1 = fsub double undef, undef 46fccc7d66SJonas Paulsson %res2 = fsub fp128 undef, undef 47fccc7d66SJonas Paulsson %res3 = fsub <2 x float> undef, undef 48fccc7d66SJonas Paulsson %res4 = fsub <2 x double> undef, undef 49fccc7d66SJonas Paulsson %res5 = fsub <4 x float> undef, undef 50fccc7d66SJonas Paulsson %res6 = fsub <4 x double> undef, undef 51fccc7d66SJonas Paulsson %res7 = fsub <8 x float> undef, undef 52fccc7d66SJonas Paulsson %res8 = fsub <8 x double> undef, undef 53fccc7d66SJonas Paulsson %res9 = fsub <16 x float> undef, undef 54fccc7d66SJonas Paulsson %res10 = fsub <16 x double> undef, undef 55fccc7d66SJonas Paulsson 56fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res0 = fsub float undef, undef 57fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res1 = fsub double undef, undef 58fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = fsub fp128 undef, undef 5933435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res3 = fsub <2 x float> undef, undef 6033435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res3 = fsub <2 x float> undef, undef 61fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = fsub <2 x double> undef, undef 6233435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res5 = fsub <4 x float> undef, undef 6333435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res5 = fsub <4 x float> undef, undef 64fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res6 = fsub <4 x double> undef, undef 6533435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 16 for instruction: %res7 = fsub <8 x float> undef, undef 6633435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 2 for instruction: %res7 = fsub <8 x float> undef, undef 67fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res8 = fsub <8 x double> undef, undef 6833435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 32 for instruction: %res9 = fsub <16 x float> undef, undef 6933435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 4 for instruction: %res9 = fsub <16 x float> undef, undef 70fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res10 = fsub <16 x double> undef, undef 71fccc7d66SJonas Paulsson 72fccc7d66SJonas Paulsson ret void; 73fccc7d66SJonas Paulsson} 74fccc7d66SJonas Paulsson 75fccc7d66SJonas Paulssondefine void @fmul() { 76fccc7d66SJonas Paulsson %res0 = fmul float undef, undef 77fccc7d66SJonas Paulsson %res1 = fmul double undef, undef 78fccc7d66SJonas Paulsson %res2 = fmul fp128 undef, undef 79fccc7d66SJonas Paulsson %res3 = fmul <2 x float> undef, undef 80fccc7d66SJonas Paulsson %res4 = fmul <2 x double> undef, undef 81fccc7d66SJonas Paulsson %res5 = fmul <4 x float> undef, undef 82fccc7d66SJonas Paulsson %res6 = fmul <4 x double> undef, undef 83fccc7d66SJonas Paulsson %res7 = fmul <8 x float> undef, undef 84fccc7d66SJonas Paulsson %res8 = fmul <8 x double> undef, undef 85fccc7d66SJonas Paulsson %res9 = fmul <16 x float> undef, undef 86fccc7d66SJonas Paulsson %res10 = fmul <16 x double> undef, undef 87fccc7d66SJonas Paulsson 88fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res0 = fmul float undef, undef 89fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res1 = fmul double undef, undef 90fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = fmul fp128 undef, undef 9133435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res3 = fmul <2 x float> undef, undef 9233435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res3 = fmul <2 x float> undef, undef 93fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = fmul <2 x double> undef, undef 9433435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res5 = fmul <4 x float> undef, undef 9533435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res5 = fmul <4 x float> undef, undef 96fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res6 = fmul <4 x double> undef, undef 9733435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 16 for instruction: %res7 = fmul <8 x float> undef, undef 9833435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 2 for instruction: %res7 = fmul <8 x float> undef, undef 99fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res8 = fmul <8 x double> undef, undef 10033435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 32 for instruction: %res9 = fmul <16 x float> undef, undef 10133435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 4 for instruction: %res9 = fmul <16 x float> undef, undef 102fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res10 = fmul <16 x double> undef, undef 103fccc7d66SJonas Paulsson 104fccc7d66SJonas Paulsson ret void; 105fccc7d66SJonas Paulsson} 106fccc7d66SJonas Paulsson 107fccc7d66SJonas Paulssondefine void @fdiv() { 108fccc7d66SJonas Paulsson %res0 = fdiv float undef, undef 109fccc7d66SJonas Paulsson %res1 = fdiv double undef, undef 110fccc7d66SJonas Paulsson %res2 = fdiv fp128 undef, undef 111fccc7d66SJonas Paulsson %res3 = fdiv <2 x float> undef, undef 112fccc7d66SJonas Paulsson %res4 = fdiv <2 x double> undef, undef 113fccc7d66SJonas Paulsson %res5 = fdiv <4 x float> undef, undef 114fccc7d66SJonas Paulsson %res6 = fdiv <4 x double> undef, undef 115fccc7d66SJonas Paulsson %res7 = fdiv <8 x float> undef, undef 116fccc7d66SJonas Paulsson %res8 = fdiv <8 x double> undef, undef 117fccc7d66SJonas Paulsson %res9 = fdiv <16 x float> undef, undef 118fccc7d66SJonas Paulsson %res10 = fdiv <16 x double> undef, undef 119fccc7d66SJonas Paulsson 120fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res0 = fdiv float undef, undef 121fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res1 = fdiv double undef, undef 122fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = fdiv fp128 undef, undef 12333435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res3 = fdiv <2 x float> undef, undef 12433435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res3 = fdiv <2 x float> undef, undef 125fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = fdiv <2 x double> undef, undef 12633435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res5 = fdiv <4 x float> undef, undef 12733435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res5 = fdiv <4 x float> undef, undef 128fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res6 = fdiv <4 x double> undef, undef 12933435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 16 for instruction: %res7 = fdiv <8 x float> undef, undef 13033435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 2 for instruction: %res7 = fdiv <8 x float> undef, undef 131fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res8 = fdiv <8 x double> undef, undef 13233435c4cSUlrich Weigand; CHECK-Z13: Cost Model: Found an estimated cost of 32 for instruction: %res9 = fdiv <16 x float> undef, undef 13333435c4cSUlrich Weigand; CHECK-Z14: Cost Model: Found an estimated cost of 4 for instruction: %res9 = fdiv <16 x float> undef, undef 134fccc7d66SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res10 = fdiv <16 x double> undef, undef 135fccc7d66SJonas Paulsson 136fccc7d66SJonas Paulsson ret void; 137fccc7d66SJonas Paulsson} 138fccc7d66SJonas Paulsson 139