xref: /llvm-project/llvm/test/Analysis/CostModel/SystemZ/fp-arith.ll (revision 4178e33470763b406f614b646c8b01d24309e20b)
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