Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / Analysis / CostModel / SystemZ / int-arith.ll
blob71863b923ca38b3c43dfcad5a5dce0089b05bf39
1 ; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=z13 | FileCheck %s
3 ; Note: The scalarized vector instructions costs are not including any
4 ; extracts, due to the undef operands.
6 define void @add() {
7   %res0 = add i8 undef, undef
8   %res1 = add i16 undef, undef
9   %res2 = add i32 undef, undef
10   %res3 = add i64 undef, undef
11   %res4 = add <2 x i8> undef, undef
12   %res5 = add <2 x i16> undef, undef
13   %res6 = add <2 x i32> undef, undef
14   %res7 = add <2 x i64> undef, undef
15   %res8 = add <4 x i8> undef, undef
16   %res9 = add <4 x i16> undef, undef
17   %res10 = add <4 x i32> undef, undef
18   %res11 = add <4 x i64> undef, undef
19   %res12 = add <8 x i8> undef, undef
20   %res13 = add <8 x i16> undef, undef
21   %res14 = add <8 x i32> undef, undef
22   %res15 = add <8 x i64> undef, undef
23   %res16 = add <16 x i8> undef, undef
24   %res17 = add <16 x i16> undef, undef
25   %res18 = add <16 x i32> undef, undef
26   %res19 = add <16 x i64> undef, undef
28 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res0 = add i8 undef, undef
29 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res1 = add i16 undef, undef
30 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res2 = add i32 undef, undef
31 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res3 = add i64 undef, undef
32 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res4 = add <2 x i8> undef, undef
33 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res5 = add <2 x i16> undef, undef
34 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res6 = add <2 x i32> undef, undef
35 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res7 = add <2 x i64> undef, undef
36 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res8 = add <4 x i8> undef, undef
37 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res9 = add <4 x i16> undef, undef
38 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res10 = add <4 x i32> undef, undef
39 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %res11 = add <4 x i64> undef, undef
40 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res12 = add <8 x i8> undef, undef
41 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res13 = add <8 x i16> undef, undef
42 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %res14 = add <8 x i32> undef, undef
43 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %res15 = add <8 x i64> undef, undef
44 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res16 = add <16 x i8> undef, undef
45 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %res17 = add <16 x i16> undef, undef
46 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %res18 = add <16 x i32> undef, undef
47 ; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %res19 = add <16 x i64> undef, undef
49   ret void;
52 define void @sub() {
53   %res0 = sub i8 undef, undef
54   %res1 = sub i16 undef, undef
55   %res2 = sub i32 undef, undef
56   %res3 = sub i64 undef, undef
57   %res4 = sub <2 x i8> undef, undef
58   %res5 = sub <2 x i16> undef, undef
59   %res6 = sub <2 x i32> undef, undef
60   %res7 = sub <2 x i64> undef, undef
61   %res8 = sub <4 x i8> undef, undef
62   %res9 = sub <4 x i16> undef, undef
63   %res10 = sub <4 x i32> undef, undef
64   %res11 = sub <4 x i64> undef, undef
65   %res12 = sub <8 x i8> undef, undef
66   %res13 = sub <8 x i16> undef, undef
67   %res14 = sub <8 x i32> undef, undef
68   %res15 = sub <8 x i64> undef, undef
69   %res16 = sub <16 x i8> undef, undef
70   %res17 = sub <16 x i16> undef, undef
71   %res18 = sub <16 x i32> undef, undef
72   %res19 = sub <16 x i64> undef, undef
74 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res0 = sub i8 undef, undef
75 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res1 = sub i16 undef, undef
76 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res2 = sub i32 undef, undef
77 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res3 = sub i64 undef, undef
78 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res4 = sub <2 x i8> undef, undef
79 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res5 = sub <2 x i16> undef, undef
80 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res6 = sub <2 x i32> undef, undef
81 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res7 = sub <2 x i64> undef, undef
82 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res8 = sub <4 x i8> undef, undef
83 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res9 = sub <4 x i16> undef, undef
84 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res10 = sub <4 x i32> undef, undef
85 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %res11 = sub <4 x i64> undef, undef
86 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res12 = sub <8 x i8> undef, undef
87 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res13 = sub <8 x i16> undef, undef
88 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %res14 = sub <8 x i32> undef, undef
89 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %res15 = sub <8 x i64> undef, undef
90 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res16 = sub <16 x i8> undef, undef
91 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %res17 = sub <16 x i16> undef, undef
92 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %res18 = sub <16 x i32> undef, undef
93 ; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %res19 = sub <16 x i64> undef, undef
95   ret void;
98 define void @mul() {
99   %res0 = mul i8 undef, undef
100   %res1 = mul i16 undef, undef
101   %res2 = mul i32 undef, undef
102   %res3 = mul i64 undef, undef
103   %res4 = mul <2 x i8> undef, undef
104   %res5 = mul <2 x i16> undef, undef
105   %res6 = mul <2 x i32> undef, undef
106   %res7 = mul <2 x i64> undef, undef
107   %res8 = mul <4 x i8> undef, undef
108   %res9 = mul <4 x i16> undef, undef
109   %res10 = mul <4 x i32> undef, undef
110   %res11 = mul <4 x i64> undef, undef
111   %res12 = mul <8 x i8> undef, undef
112   %res13 = mul <8 x i16> undef, undef
113   %res14 = mul <8 x i32> undef, undef
114   %res15 = mul <8 x i64> undef, undef
115   %res16 = mul <16 x i8> undef, undef
116   %res17 = mul <16 x i16> undef, undef
117   %res18 = mul <16 x i32> undef, undef
118   %res19 = mul <16 x i64> undef, undef
120 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res0 = mul i8 undef, undef
121 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res1 = mul i16 undef, undef
122 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res2 = mul i32 undef, undef
123 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res3 = mul i64 undef, undef
124 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res4 = mul <2 x i8> undef, undef
125 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res5 = mul <2 x i16> undef, undef
126 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res6 = mul <2 x i32> undef, undef
127 ; CHECK: Cost Model: Found an estimated cost of 3 for instruction:   %res7 = mul <2 x i64> undef, undef
128 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res8 = mul <4 x i8> undef, undef
129 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res9 = mul <4 x i16> undef, undef
130 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res10 = mul <4 x i32> undef, undef
131 ; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %res11 = mul <4 x i64> undef, undef
132 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res12 = mul <8 x i8> undef, undef
133 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res13 = mul <8 x i16> undef, undef
134 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %res14 = mul <8 x i32> undef, undef
135 ; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %res15 = mul <8 x i64> undef, undef
136 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %res16 = mul <16 x i8> undef, undef
137 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %res17 = mul <16 x i16> undef, undef
138 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %res18 = mul <16 x i32> undef, undef
139 ; CHECK: Cost Model: Found an estimated cost of 24 for instruction:   %res19 = mul <16 x i64> undef, undef
141   ret void;