1 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
2 ; RUN: opt < %s -mtriple=aarch64-unknown-linux-gnu -passes="print<cost-model>" -cost-kind=throughput 2>&1 -disable-output | FileCheck %s
4 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
6 define void @extaddv1(i8 %i8, i16 %i16, i32 %i32, i64 %i64) {
7 ; CHECK-LABEL: 'extaddv1'
8 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_16 = sext i8 %i8 to i16
9 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_16 = add i16 %i16, %sw_8_16
10 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_16 = sext i8 %i8 to i16
11 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_16 = sext i8 %i8 to i16
12 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = add i16 %sl1_8_16, %sl2_8_16
13 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_16 = zext i8 %i8 to i16
14 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_16 = add i16 %i16, %zw_8_16
15 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_16 = zext i8 %i8 to i16
16 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_16 = zext i8 %i8 to i16
17 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = add i16 %zl1_8_16, %zl2_8_16
18 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_32 = sext i8 %i8 to i32
19 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_32 = add i32 %i32, %sw_8_32
20 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_32 = sext i8 %i8 to i32
21 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_32 = sext i8 %i8 to i32
22 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_32 = add i32 %sl1_8_32, %sl2_8_32
23 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_32 = zext i8 %i8 to i32
24 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_32 = add i32 %i32, %zw_8_32
25 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_32 = zext i8 %i8 to i32
26 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_32 = zext i8 %i8 to i32
27 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_32 = add i32 %zl1_8_32, %zl2_8_32
28 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_64 = sext i8 %i8 to i64
29 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_64 = add i64 %i64, %sw_8_64
30 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_64 = sext i8 %i8 to i64
31 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_64 = sext i8 %i8 to i64
32 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_64 = add i64 %sl1_8_64, %sl2_8_64
33 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_8_64 = zext i8 %i8 to i64
34 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_64 = add i64 %i64, %zw_8_64
35 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_8_64 = zext i8 %i8 to i64
36 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_8_64 = zext i8 %i8 to i64
37 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_64 = add i64 %zl1_8_64, %zl2_8_64
38 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_32 = sext i16 %i16 to i32
39 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_32 = add i32 %i32, %sw_16_32
40 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_16_32 = sext i16 %i16 to i32
41 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_16_32 = sext i16 %i16 to i32
42 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_32 = add i32 %sl1_16_32, %sl2_16_32
43 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_16_32 = zext i16 %i16 to i32
44 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_32 = add i32 %i32, %zw_16_32
45 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_16_32 = zext i16 %i16 to i32
46 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_16_32 = zext i16 %i16 to i32
47 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_32 = add i32 %zl1_16_32, %zl2_16_32
48 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_64 = sext i16 %i16 to i64
49 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_64 = add i64 %i64, %sw_16_64
50 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_16_64 = sext i16 %i16 to i64
51 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_16_64 = sext i16 %i16 to i64
52 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_64 = add i64 %sl1_16_64, %sl2_16_64
53 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_16_64 = zext i16 %i16 to i64
54 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_64 = add i64 %i64, %zw_16_64
55 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_16_64 = zext i16 %i16 to i64
56 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_16_64 = zext i16 %i16 to i64
57 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_64 = add i64 %zl1_16_64, %zl2_16_64
58 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_32_64 = sext i32 %i32 to i64
59 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_32_64 = add i64 %i64, %sw_32_64
60 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_32_64 = sext i32 %i32 to i64
61 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_32_64 = sext i32 %i32 to i64
62 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_32_64 = add i64 %sl1_32_64, %sl2_32_64
63 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_32_64 = zext i32 %i32 to i64
64 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_32_64 = add i64 %i64, %zw_32_64
65 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext i32 %i32 to i64
66 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext i32 %i32 to i64
67 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_32_64 = add i64 %zl1_32_64, %zl2_32_64
68 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
70 %sw_8_16 = sext i8 %i8 to i16
71 %asw_8_16 = add i16 %i16, %sw_8_16
72 %sl1_8_16 = sext i8 %i8 to i16
73 %sl2_8_16 = sext i8 %i8 to i16
74 %asl_8_16 = add i16 %sl1_8_16, %sl2_8_16
76 %zw_8_16 = zext i8 %i8 to i16
77 %azw_8_16 = add i16 %i16, %zw_8_16
78 %zl1_8_16 = zext i8 %i8 to i16
79 %zl2_8_16 = zext i8 %i8 to i16
80 %azl_8_16 = add i16 %zl1_8_16, %zl2_8_16
82 %sw_8_32 = sext i8 %i8 to i32
83 %asw_8_32 = add i32 %i32, %sw_8_32
84 %sl1_8_32 = sext i8 %i8 to i32
85 %sl2_8_32 = sext i8 %i8 to i32
86 %asl_8_32 = add i32 %sl1_8_32, %sl2_8_32
88 %zw_8_32 = zext i8 %i8 to i32
89 %azw_8_32 = add i32 %i32, %zw_8_32
90 %zl1_8_32 = zext i8 %i8 to i32
91 %zl2_8_32 = zext i8 %i8 to i32
92 %azl_8_32 = add i32 %zl1_8_32, %zl2_8_32
94 %sw_8_64 = sext i8 %i8 to i64
95 %asw_8_64 = add i64 %i64, %sw_8_64
96 %sl1_8_64 = sext i8 %i8 to i64
97 %sl2_8_64 = sext i8 %i8 to i64
98 %asl_8_64 = add i64 %sl1_8_64, %sl2_8_64
100 %zw_8_64 = zext i8 %i8 to i64
101 %azw_8_64 = add i64 %i64, %zw_8_64
102 %zl1_8_64 = zext i8 %i8 to i64
103 %zl2_8_64 = zext i8 %i8 to i64
104 %azl_8_64 = add i64 %zl1_8_64, %zl2_8_64
106 %sw_16_32 = sext i16 %i16 to i32
107 %asw_16_32 = add i32 %i32, %sw_16_32
108 %sl1_16_32 = sext i16 %i16 to i32
109 %sl2_16_32 = sext i16 %i16 to i32
110 %asl_16_32 = add i32 %sl1_16_32, %sl2_16_32
112 %zw_16_32 = zext i16 %i16 to i32
113 %azw_16_32 = add i32 %i32, %zw_16_32
114 %zl1_16_32 = zext i16 %i16 to i32
115 %zl2_16_32 = zext i16 %i16 to i32
116 %azl_16_32 = add i32 %zl1_16_32, %zl2_16_32
118 %sw_16_64 = sext i16 %i16 to i64
119 %asw_16_64 = add i64 %i64, %sw_16_64
120 %sl1_16_64 = sext i16 %i16 to i64
121 %sl2_16_64 = sext i16 %i16 to i64
122 %asl_16_64 = add i64 %sl1_16_64, %sl2_16_64
124 %zw_16_64 = zext i16 %i16 to i64
125 %azw_16_64 = add i64 %i64, %zw_16_64
126 %zl1_16_64 = zext i16 %i16 to i64
127 %zl2_16_64 = zext i16 %i16 to i64
128 %azl_16_64 = add i64 %zl1_16_64, %zl2_16_64
130 %sw_32_64 = sext i32 %i32 to i64
131 %asw_32_64 = add i64 %i64, %sw_32_64
132 %sl1_32_64 = sext i32 %i32 to i64
133 %sl2_32_64 = sext i32 %i32 to i64
134 %asl_32_64 = add i64 %sl1_32_64, %sl2_32_64
136 %zw_32_64 = zext i32 %i32 to i64
137 %azw_32_64 = add i64 %i64, %zw_32_64
138 %zl1_32_64 = zext i32 %i32 to i64
139 %zl2_32_64 = zext i32 %i32 to i64
140 %azl_32_64 = add i64 %zl1_32_64, %zl2_32_64
145 define void @extaddv2(<2 x i8> %i8, <2 x i16> %i16, <2 x i32> %i32, <2 x i64> %i64) {
146 ; CHECK-LABEL: 'extaddv2'
147 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_16 = sext <2 x i8> %i8 to <2 x i16>
148 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_16 = add <2 x i16> %i16, %sw_8_16
149 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_16 = sext <2 x i8> %i8 to <2 x i16>
150 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_16 = sext <2 x i8> %i8 to <2 x i16>
151 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = add <2 x i16> %sl1_8_16, %sl2_8_16
152 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_16 = zext <2 x i8> %i8 to <2 x i16>
153 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_16 = add <2 x i16> %i16, %zw_8_16
154 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_16 = zext <2 x i8> %i8 to <2 x i16>
155 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_16 = zext <2 x i8> %i8 to <2 x i16>
156 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = add <2 x i16> %zl1_8_16, %zl2_8_16
157 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_32 = sext <2 x i8> %i8 to <2 x i32>
158 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_32 = add <2 x i32> %i32, %sw_8_32
159 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_32 = sext <2 x i8> %i8 to <2 x i32>
160 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_32 = sext <2 x i8> %i8 to <2 x i32>
161 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_32 = add <2 x i32> %sl1_8_32, %sl2_8_32
162 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_32 = zext <2 x i8> %i8 to <2 x i32>
163 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_32 = add <2 x i32> %i32, %zw_8_32
164 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_32 = zext <2 x i8> %i8 to <2 x i32>
165 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_32 = zext <2 x i8> %i8 to <2 x i32>
166 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_32 = add <2 x i32> %zl1_8_32, %zl2_8_32
167 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_64 = sext <2 x i8> %i8 to <2 x i64>
168 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_64 = add <2 x i64> %i64, %sw_8_64
169 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_64 = sext <2 x i8> %i8 to <2 x i64>
170 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_64 = sext <2 x i8> %i8 to <2 x i64>
171 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_64 = add <2 x i64> %sl1_8_64, %sl2_8_64
172 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_64 = zext <2 x i8> %i8 to <2 x i64>
173 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_64 = add <2 x i64> %i64, %zw_8_64
174 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_64 = zext <2 x i8> %i8 to <2 x i64>
175 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_64 = zext <2 x i8> %i8 to <2 x i64>
176 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_64 = add <2 x i64> %zl1_8_64, %zl2_8_64
177 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_32 = sext <2 x i16> %i16 to <2 x i32>
178 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_32 = add <2 x i32> %i32, %sw_16_32
179 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_16_32 = sext <2 x i16> %i16 to <2 x i32>
180 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_16_32 = sext <2 x i16> %i16 to <2 x i32>
181 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_32 = add <2 x i32> %sl1_16_32, %sl2_16_32
182 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_16_32 = zext <2 x i16> %i16 to <2 x i32>
183 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_32 = add <2 x i32> %i32, %zw_16_32
184 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_16_32 = zext <2 x i16> %i16 to <2 x i32>
185 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_16_32 = zext <2 x i16> %i16 to <2 x i32>
186 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_32 = add <2 x i32> %zl1_16_32, %zl2_16_32
187 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_64 = sext <2 x i16> %i16 to <2 x i64>
188 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_64 = add <2 x i64> %i64, %sw_16_64
189 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_16_64 = sext <2 x i16> %i16 to <2 x i64>
190 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_16_64 = sext <2 x i16> %i16 to <2 x i64>
191 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_64 = add <2 x i64> %sl1_16_64, %sl2_16_64
192 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_16_64 = zext <2 x i16> %i16 to <2 x i64>
193 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_64 = add <2 x i64> %i64, %zw_16_64
194 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_16_64 = zext <2 x i16> %i16 to <2 x i64>
195 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_16_64 = zext <2 x i16> %i16 to <2 x i64>
196 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_64 = add <2 x i64> %zl1_16_64, %zl2_16_64
197 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_32_64 = sext <2 x i32> %i32 to <2 x i64>
198 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_32_64 = add <2 x i64> %i64, %sw_32_64
199 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_32_64 = sext <2 x i32> %i32 to <2 x i64>
200 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_32_64 = sext <2 x i32> %i32 to <2 x i64>
201 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_32_64 = add <2 x i64> %sl1_32_64, %sl2_32_64
202 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_32_64 = zext <2 x i32> %i32 to <2 x i64>
203 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_32_64 = add <2 x i64> %i64, %zw_32_64
204 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext <2 x i32> %i32 to <2 x i64>
205 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext <2 x i32> %i32 to <2 x i64>
206 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_32_64 = add <2 x i64> %zl1_32_64, %zl2_32_64
207 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
209 %sw_8_16 = sext <2 x i8> %i8 to <2 x i16>
210 %asw_8_16 = add <2 x i16> %i16, %sw_8_16
211 %sl1_8_16 = sext <2 x i8> %i8 to <2 x i16>
212 %sl2_8_16 = sext <2 x i8> %i8 to <2 x i16>
213 %asl_8_16 = add <2 x i16> %sl1_8_16, %sl2_8_16
215 %zw_8_16 = zext <2 x i8> %i8 to <2 x i16>
216 %azw_8_16 = add <2 x i16> %i16, %zw_8_16
217 %zl1_8_16 = zext <2 x i8> %i8 to <2 x i16>
218 %zl2_8_16 = zext <2 x i8> %i8 to <2 x i16>
219 %azl_8_16 = add <2 x i16> %zl1_8_16, %zl2_8_16
221 %sw_8_32 = sext <2 x i8> %i8 to <2 x i32>
222 %asw_8_32 = add <2 x i32> %i32, %sw_8_32
223 %sl1_8_32 = sext <2 x i8> %i8 to <2 x i32>
224 %sl2_8_32 = sext <2 x i8> %i8 to <2 x i32>
225 %asl_8_32 = add <2 x i32> %sl1_8_32, %sl2_8_32
227 %zw_8_32 = zext <2 x i8> %i8 to <2 x i32>
228 %azw_8_32 = add <2 x i32> %i32, %zw_8_32
229 %zl1_8_32 = zext <2 x i8> %i8 to <2 x i32>
230 %zl2_8_32 = zext <2 x i8> %i8 to <2 x i32>
231 %azl_8_32 = add <2 x i32> %zl1_8_32, %zl2_8_32
233 %sw_8_64 = sext <2 x i8> %i8 to <2 x i64>
234 %asw_8_64 = add <2 x i64> %i64, %sw_8_64
235 %sl1_8_64 = sext <2 x i8> %i8 to <2 x i64>
236 %sl2_8_64 = sext <2 x i8> %i8 to <2 x i64>
237 %asl_8_64 = add <2 x i64> %sl1_8_64, %sl2_8_64
239 %zw_8_64 = zext <2 x i8> %i8 to <2 x i64>
240 %azw_8_64 = add <2 x i64> %i64, %zw_8_64
241 %zl1_8_64 = zext <2 x i8> %i8 to <2 x i64>
242 %zl2_8_64 = zext <2 x i8> %i8 to <2 x i64>
243 %azl_8_64 = add <2 x i64> %zl1_8_64, %zl2_8_64
245 %sw_16_32 = sext <2 x i16> %i16 to <2 x i32>
246 %asw_16_32 = add <2 x i32> %i32, %sw_16_32
247 %sl1_16_32 = sext <2 x i16> %i16 to <2 x i32>
248 %sl2_16_32 = sext <2 x i16> %i16 to <2 x i32>
249 %asl_16_32 = add <2 x i32> %sl1_16_32, %sl2_16_32
251 %zw_16_32 = zext <2 x i16> %i16 to <2 x i32>
252 %azw_16_32 = add <2 x i32> %i32, %zw_16_32
253 %zl1_16_32 = zext <2 x i16> %i16 to <2 x i32>
254 %zl2_16_32 = zext <2 x i16> %i16 to <2 x i32>
255 %azl_16_32 = add <2 x i32> %zl1_16_32, %zl2_16_32
257 %sw_16_64 = sext <2 x i16> %i16 to <2 x i64>
258 %asw_16_64 = add <2 x i64> %i64, %sw_16_64
259 %sl1_16_64 = sext <2 x i16> %i16 to <2 x i64>
260 %sl2_16_64 = sext <2 x i16> %i16 to <2 x i64>
261 %asl_16_64 = add <2 x i64> %sl1_16_64, %sl2_16_64
263 %zw_16_64 = zext <2 x i16> %i16 to <2 x i64>
264 %azw_16_64 = add <2 x i64> %i64, %zw_16_64
265 %zl1_16_64 = zext <2 x i16> %i16 to <2 x i64>
266 %zl2_16_64 = zext <2 x i16> %i16 to <2 x i64>
267 %azl_16_64 = add <2 x i64> %zl1_16_64, %zl2_16_64
269 %sw_32_64 = sext <2 x i32> %i32 to <2 x i64>
270 %asw_32_64 = add <2 x i64> %i64, %sw_32_64
271 %sl1_32_64 = sext <2 x i32> %i32 to <2 x i64>
272 %sl2_32_64 = sext <2 x i32> %i32 to <2 x i64>
273 %asl_32_64 = add <2 x i64> %sl1_32_64, %sl2_32_64
275 %zw_32_64 = zext <2 x i32> %i32 to <2 x i64>
276 %azw_32_64 = add <2 x i64> %i64, %zw_32_64
277 %zl1_32_64 = zext <2 x i32> %i32 to <2 x i64>
278 %zl2_32_64 = zext <2 x i32> %i32 to <2 x i64>
279 %azl_32_64 = add <2 x i64> %zl1_32_64, %zl2_32_64
284 define void @extaddv4(<4 x i8> %i8, <4 x i16> %i16, <4 x i32> %i32, <4 x i64> %i64) {
285 ; CHECK-LABEL: 'extaddv4'
286 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_16 = sext <4 x i8> %i8 to <4 x i16>
287 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_16 = add <4 x i16> %i16, %sw_8_16
288 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_16 = sext <4 x i8> %i8 to <4 x i16>
289 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_16 = sext <4 x i8> %i8 to <4 x i16>
290 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = add <4 x i16> %sl1_8_16, %sl2_8_16
291 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_16 = zext <4 x i8> %i8 to <4 x i16>
292 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_16 = add <4 x i16> %i16, %zw_8_16
293 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_16 = zext <4 x i8> %i8 to <4 x i16>
294 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_16 = zext <4 x i8> %i8 to <4 x i16>
295 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = add <4 x i16> %zl1_8_16, %zl2_8_16
296 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_32 = sext <4 x i8> %i8 to <4 x i32>
297 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_32 = add <4 x i32> %i32, %sw_8_32
298 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_32 = sext <4 x i8> %i8 to <4 x i32>
299 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_32 = sext <4 x i8> %i8 to <4 x i32>
300 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_32 = add <4 x i32> %sl1_8_32, %sl2_8_32
301 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_32 = zext <4 x i8> %i8 to <4 x i32>
302 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_32 = add <4 x i32> %i32, %zw_8_32
303 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_32 = zext <4 x i8> %i8 to <4 x i32>
304 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_32 = zext <4 x i8> %i8 to <4 x i32>
305 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_32 = add <4 x i32> %zl1_8_32, %zl2_8_32
306 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sw_8_64 = sext <4 x i8> %i8 to <4 x i64>
307 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_8_64 = add <4 x i64> %i64, %sw_8_64
308 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl1_8_64 = sext <4 x i8> %i8 to <4 x i64>
309 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl2_8_64 = sext <4 x i8> %i8 to <4 x i64>
310 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_8_64 = add <4 x i64> %sl1_8_64, %sl2_8_64
311 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zw_8_64 = zext <4 x i8> %i8 to <4 x i64>
312 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_8_64 = add <4 x i64> %i64, %zw_8_64
313 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl1_8_64 = zext <4 x i8> %i8 to <4 x i64>
314 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl2_8_64 = zext <4 x i8> %i8 to <4 x i64>
315 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_8_64 = add <4 x i64> %zl1_8_64, %zl2_8_64
316 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_16_32 = sext <4 x i16> %i16 to <4 x i32>
317 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_32 = add <4 x i32> %i32, %sw_16_32
318 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_16_32 = sext <4 x i16> %i16 to <4 x i32>
319 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_16_32 = sext <4 x i16> %i16 to <4 x i32>
320 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_32 = add <4 x i32> %sl1_16_32, %sl2_16_32
321 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_16_32 = zext <4 x i16> %i16 to <4 x i32>
322 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_32 = add <4 x i32> %i32, %zw_16_32
323 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_16_32 = zext <4 x i16> %i16 to <4 x i32>
324 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_16_32 = zext <4 x i16> %i16 to <4 x i32>
325 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_32 = add <4 x i32> %zl1_16_32, %zl2_16_32
326 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sw_16_64 = sext <4 x i16> %i16 to <4 x i64>
327 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_16_64 = add <4 x i64> %i64, %sw_16_64
328 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl1_16_64 = sext <4 x i16> %i16 to <4 x i64>
329 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl2_16_64 = sext <4 x i16> %i16 to <4 x i64>
330 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_16_64 = add <4 x i64> %sl1_16_64, %sl2_16_64
331 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zw_16_64 = zext <4 x i16> %i16 to <4 x i64>
332 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_16_64 = add <4 x i64> %i64, %zw_16_64
333 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl1_16_64 = zext <4 x i16> %i16 to <4 x i64>
334 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl2_16_64 = zext <4 x i16> %i16 to <4 x i64>
335 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_16_64 = add <4 x i64> %zl1_16_64, %zl2_16_64
336 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_32_64 = sext <4 x i32> %i32 to <4 x i64>
337 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_32_64 = add <4 x i64> %i64, %sw_32_64
338 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_32_64 = sext <4 x i32> %i32 to <4 x i64>
339 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_32_64 = sext <4 x i32> %i32 to <4 x i64>
340 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_32_64 = add <4 x i64> %sl1_32_64, %sl2_32_64
341 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_32_64 = zext <4 x i32> %i32 to <4 x i64>
342 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_32_64 = add <4 x i64> %i64, %zw_32_64
343 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext <4 x i32> %i32 to <4 x i64>
344 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext <4 x i32> %i32 to <4 x i64>
345 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_32_64 = add <4 x i64> %zl1_32_64, %zl2_32_64
346 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
348 %sw_8_16 = sext <4 x i8> %i8 to <4 x i16>
349 %asw_8_16 = add <4 x i16> %i16, %sw_8_16
350 %sl1_8_16 = sext <4 x i8> %i8 to <4 x i16>
351 %sl2_8_16 = sext <4 x i8> %i8 to <4 x i16>
352 %asl_8_16 = add <4 x i16> %sl1_8_16, %sl2_8_16
354 %zw_8_16 = zext <4 x i8> %i8 to <4 x i16>
355 %azw_8_16 = add <4 x i16> %i16, %zw_8_16
356 %zl1_8_16 = zext <4 x i8> %i8 to <4 x i16>
357 %zl2_8_16 = zext <4 x i8> %i8 to <4 x i16>
358 %azl_8_16 = add <4 x i16> %zl1_8_16, %zl2_8_16
360 %sw_8_32 = sext <4 x i8> %i8 to <4 x i32>
361 %asw_8_32 = add <4 x i32> %i32, %sw_8_32
362 %sl1_8_32 = sext <4 x i8> %i8 to <4 x i32>
363 %sl2_8_32 = sext <4 x i8> %i8 to <4 x i32>
364 %asl_8_32 = add <4 x i32> %sl1_8_32, %sl2_8_32
366 %zw_8_32 = zext <4 x i8> %i8 to <4 x i32>
367 %azw_8_32 = add <4 x i32> %i32, %zw_8_32
368 %zl1_8_32 = zext <4 x i8> %i8 to <4 x i32>
369 %zl2_8_32 = zext <4 x i8> %i8 to <4 x i32>
370 %azl_8_32 = add <4 x i32> %zl1_8_32, %zl2_8_32
372 %sw_8_64 = sext <4 x i8> %i8 to <4 x i64>
373 %asw_8_64 = add <4 x i64> %i64, %sw_8_64
374 %sl1_8_64 = sext <4 x i8> %i8 to <4 x i64>
375 %sl2_8_64 = sext <4 x i8> %i8 to <4 x i64>
376 %asl_8_64 = add <4 x i64> %sl1_8_64, %sl2_8_64
378 %zw_8_64 = zext <4 x i8> %i8 to <4 x i64>
379 %azw_8_64 = add <4 x i64> %i64, %zw_8_64
380 %zl1_8_64 = zext <4 x i8> %i8 to <4 x i64>
381 %zl2_8_64 = zext <4 x i8> %i8 to <4 x i64>
382 %azl_8_64 = add <4 x i64> %zl1_8_64, %zl2_8_64
384 %sw_16_32 = sext <4 x i16> %i16 to <4 x i32>
385 %asw_16_32 = add <4 x i32> %i32, %sw_16_32
386 %sl1_16_32 = sext <4 x i16> %i16 to <4 x i32>
387 %sl2_16_32 = sext <4 x i16> %i16 to <4 x i32>
388 %asl_16_32 = add <4 x i32> %sl1_16_32, %sl2_16_32
390 %zw_16_32 = zext <4 x i16> %i16 to <4 x i32>
391 %azw_16_32 = add <4 x i32> %i32, %zw_16_32
392 %zl1_16_32 = zext <4 x i16> %i16 to <4 x i32>
393 %zl2_16_32 = zext <4 x i16> %i16 to <4 x i32>
394 %azl_16_32 = add <4 x i32> %zl1_16_32, %zl2_16_32
396 %sw_16_64 = sext <4 x i16> %i16 to <4 x i64>
397 %asw_16_64 = add <4 x i64> %i64, %sw_16_64
398 %sl1_16_64 = sext <4 x i16> %i16 to <4 x i64>
399 %sl2_16_64 = sext <4 x i16> %i16 to <4 x i64>
400 %asl_16_64 = add <4 x i64> %sl1_16_64, %sl2_16_64
402 %zw_16_64 = zext <4 x i16> %i16 to <4 x i64>
403 %azw_16_64 = add <4 x i64> %i64, %zw_16_64
404 %zl1_16_64 = zext <4 x i16> %i16 to <4 x i64>
405 %zl2_16_64 = zext <4 x i16> %i16 to <4 x i64>
406 %azl_16_64 = add <4 x i64> %zl1_16_64, %zl2_16_64
408 %sw_32_64 = sext <4 x i32> %i32 to <4 x i64>
409 %asw_32_64 = add <4 x i64> %i64, %sw_32_64
410 %sl1_32_64 = sext <4 x i32> %i32 to <4 x i64>
411 %sl2_32_64 = sext <4 x i32> %i32 to <4 x i64>
412 %asl_32_64 = add <4 x i64> %sl1_32_64, %sl2_32_64
414 %zw_32_64 = zext <4 x i32> %i32 to <4 x i64>
415 %azw_32_64 = add <4 x i64> %i64, %zw_32_64
416 %zl1_32_64 = zext <4 x i32> %i32 to <4 x i64>
417 %zl2_32_64 = zext <4 x i32> %i32 to <4 x i64>
418 %azl_32_64 = add <4 x i64> %zl1_32_64, %zl2_32_64
423 define void @extaddv8(<8 x i8> %i8, <8 x i16> %i16, <8 x i32> %i32, <8 x i64> %i64) {
424 ; CHECK-LABEL: 'extaddv8'
425 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_8_16 = sext <8 x i8> %i8 to <8 x i16>
426 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_16 = add <8 x i16> %i16, %sw_8_16
427 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>
428 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_8_16 = sext <8 x i8> %i8 to <8 x i16>
429 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = add <8 x i16> %sl1_8_16, %sl2_8_16
430 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_8_16 = zext <8 x i8> %i8 to <8 x i16>
431 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_16 = add <8 x i16> %i16, %zw_8_16
432 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>
433 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_8_16 = zext <8 x i8> %i8 to <8 x i16>
434 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = add <8 x i16> %zl1_8_16, %zl2_8_16
435 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sw_8_32 = sext <8 x i8> %i8 to <8 x i32>
436 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_8_32 = add <8 x i32> %i32, %sw_8_32
437 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl1_8_32 = sext <8 x i8> %i8 to <8 x i32>
438 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl2_8_32 = sext <8 x i8> %i8 to <8 x i32>
439 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_8_32 = add <8 x i32> %sl1_8_32, %sl2_8_32
440 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zw_8_32 = zext <8 x i8> %i8 to <8 x i32>
441 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_8_32 = add <8 x i32> %i32, %zw_8_32
442 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl1_8_32 = zext <8 x i8> %i8 to <8 x i32>
443 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl2_8_32 = zext <8 x i8> %i8 to <8 x i32>
444 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_8_32 = add <8 x i32> %zl1_8_32, %zl2_8_32
445 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %sw_8_64 = sext <8 x i8> %i8 to <8 x i64>
446 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asw_8_64 = add <8 x i64> %i64, %sw_8_64
447 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %sl1_8_64 = sext <8 x i8> %i8 to <8 x i64>
448 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %sl2_8_64 = sext <8 x i8> %i8 to <8 x i64>
449 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_8_64 = add <8 x i64> %sl1_8_64, %sl2_8_64
450 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %zw_8_64 = zext <8 x i8> %i8 to <8 x i64>
451 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azw_8_64 = add <8 x i64> %i64, %zw_8_64
452 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %zl1_8_64 = zext <8 x i8> %i8 to <8 x i64>
453 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %zl2_8_64 = zext <8 x i8> %i8 to <8 x i64>
454 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_8_64 = add <8 x i64> %zl1_8_64, %zl2_8_64
455 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_16_32 = sext <8 x i16> %i16 to <8 x i32>
456 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_16_32 = add <8 x i32> %i32, %sw_16_32
457 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_16_32 = sext <8 x i16> %i16 to <8 x i32>
458 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_16_32 = sext <8 x i16> %i16 to <8 x i32>
459 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_16_32 = add <8 x i32> %sl1_16_32, %sl2_16_32
460 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_16_32 = zext <8 x i16> %i16 to <8 x i32>
461 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_16_32 = add <8 x i32> %i32, %zw_16_32
462 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_16_32 = zext <8 x i16> %i16 to <8 x i32>
463 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_16_32 = zext <8 x i16> %i16 to <8 x i32>
464 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_16_32 = add <8 x i32> %zl1_16_32, %zl2_16_32
465 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sw_16_64 = sext <8 x i16> %i16 to <8 x i64>
466 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asw_16_64 = add <8 x i64> %i64, %sw_16_64
467 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sl1_16_64 = sext <8 x i16> %i16 to <8 x i64>
468 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sl2_16_64 = sext <8 x i16> %i16 to <8 x i64>
469 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_16_64 = add <8 x i64> %sl1_16_64, %sl2_16_64
470 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zw_16_64 = zext <8 x i16> %i16 to <8 x i64>
471 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azw_16_64 = add <8 x i64> %i64, %zw_16_64
472 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zl1_16_64 = zext <8 x i16> %i16 to <8 x i64>
473 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zl2_16_64 = zext <8 x i16> %i16 to <8 x i64>
474 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_16_64 = add <8 x i64> %zl1_16_64, %zl2_16_64
475 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_32_64 = sext <8 x i32> %i32 to <8 x i64>
476 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asw_32_64 = add <8 x i64> %i64, %sw_32_64
477 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_32_64 = sext <8 x i32> %i32 to <8 x i64>
478 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_32_64 = sext <8 x i32> %i32 to <8 x i64>
479 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_32_64 = add <8 x i64> %sl1_32_64, %sl2_32_64
480 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_32_64 = zext <8 x i32> %i32 to <8 x i64>
481 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azw_32_64 = add <8 x i64> %i64, %zw_32_64
482 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext <8 x i32> %i32 to <8 x i64>
483 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext <8 x i32> %i32 to <8 x i64>
484 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_32_64 = add <8 x i64> %zl1_32_64, %zl2_32_64
485 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
487 %sw_8_16 = sext <8 x i8> %i8 to <8 x i16>
488 %asw_8_16 = add <8 x i16> %i16, %sw_8_16
489 %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>
490 %sl2_8_16 = sext <8 x i8> %i8 to <8 x i16>
491 %asl_8_16 = add <8 x i16> %sl1_8_16, %sl2_8_16
493 %zw_8_16 = zext <8 x i8> %i8 to <8 x i16>
494 %azw_8_16 = add <8 x i16> %i16, %zw_8_16
495 %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>
496 %zl2_8_16 = zext <8 x i8> %i8 to <8 x i16>
497 %azl_8_16 = add <8 x i16> %zl1_8_16, %zl2_8_16
499 %sw_8_32 = sext <8 x i8> %i8 to <8 x i32>
500 %asw_8_32 = add <8 x i32> %i32, %sw_8_32
501 %sl1_8_32 = sext <8 x i8> %i8 to <8 x i32>
502 %sl2_8_32 = sext <8 x i8> %i8 to <8 x i32>
503 %asl_8_32 = add <8 x i32> %sl1_8_32, %sl2_8_32
505 %zw_8_32 = zext <8 x i8> %i8 to <8 x i32>
506 %azw_8_32 = add <8 x i32> %i32, %zw_8_32
507 %zl1_8_32 = zext <8 x i8> %i8 to <8 x i32>
508 %zl2_8_32 = zext <8 x i8> %i8 to <8 x i32>
509 %azl_8_32 = add <8 x i32> %zl1_8_32, %zl2_8_32
511 %sw_8_64 = sext <8 x i8> %i8 to <8 x i64>
512 %asw_8_64 = add <8 x i64> %i64, %sw_8_64
513 %sl1_8_64 = sext <8 x i8> %i8 to <8 x i64>
514 %sl2_8_64 = sext <8 x i8> %i8 to <8 x i64>
515 %asl_8_64 = add <8 x i64> %sl1_8_64, %sl2_8_64
517 %zw_8_64 = zext <8 x i8> %i8 to <8 x i64>
518 %azw_8_64 = add <8 x i64> %i64, %zw_8_64
519 %zl1_8_64 = zext <8 x i8> %i8 to <8 x i64>
520 %zl2_8_64 = zext <8 x i8> %i8 to <8 x i64>
521 %azl_8_64 = add <8 x i64> %zl1_8_64, %zl2_8_64
523 %sw_16_32 = sext <8 x i16> %i16 to <8 x i32>
524 %asw_16_32 = add <8 x i32> %i32, %sw_16_32
525 %sl1_16_32 = sext <8 x i16> %i16 to <8 x i32>
526 %sl2_16_32 = sext <8 x i16> %i16 to <8 x i32>
527 %asl_16_32 = add <8 x i32> %sl1_16_32, %sl2_16_32
529 %zw_16_32 = zext <8 x i16> %i16 to <8 x i32>
530 %azw_16_32 = add <8 x i32> %i32, %zw_16_32
531 %zl1_16_32 = zext <8 x i16> %i16 to <8 x i32>
532 %zl2_16_32 = zext <8 x i16> %i16 to <8 x i32>
533 %azl_16_32 = add <8 x i32> %zl1_16_32, %zl2_16_32
535 %sw_16_64 = sext <8 x i16> %i16 to <8 x i64>
536 %asw_16_64 = add <8 x i64> %i64, %sw_16_64
537 %sl1_16_64 = sext <8 x i16> %i16 to <8 x i64>
538 %sl2_16_64 = sext <8 x i16> %i16 to <8 x i64>
539 %asl_16_64 = add <8 x i64> %sl1_16_64, %sl2_16_64
541 %zw_16_64 = zext <8 x i16> %i16 to <8 x i64>
542 %azw_16_64 = add <8 x i64> %i64, %zw_16_64
543 %zl1_16_64 = zext <8 x i16> %i16 to <8 x i64>
544 %zl2_16_64 = zext <8 x i16> %i16 to <8 x i64>
545 %azl_16_64 = add <8 x i64> %zl1_16_64, %zl2_16_64
547 %sw_32_64 = sext <8 x i32> %i32 to <8 x i64>
548 %asw_32_64 = add <8 x i64> %i64, %sw_32_64
549 %sl1_32_64 = sext <8 x i32> %i32 to <8 x i64>
550 %sl2_32_64 = sext <8 x i32> %i32 to <8 x i64>
551 %asl_32_64 = add <8 x i64> %sl1_32_64, %sl2_32_64
553 %zw_32_64 = zext <8 x i32> %i32 to <8 x i64>
554 %azw_32_64 = add <8 x i64> %i64, %zw_32_64
555 %zl1_32_64 = zext <8 x i32> %i32 to <8 x i64>
556 %zl2_32_64 = zext <8 x i32> %i32 to <8 x i64>
557 %azl_32_64 = add <8 x i64> %zl1_32_64, %zl2_32_64
562 define void @extaddv16(<16 x i8> %i8, <16 x i16> %i16, <16 x i32> %i32, <16 x i64> %i64) {
563 ; CHECK-LABEL: 'extaddv16'
564 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_8_16 = sext <16 x i8> %i8 to <16 x i16>
565 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_8_16 = add <16 x i16> %i16, %sw_8_16
566 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_8_16 = sext <16 x i8> %i8 to <16 x i16>
567 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_8_16 = sext <16 x i8> %i8 to <16 x i16>
568 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_8_16 = add <16 x i16> %sl1_8_16, %sl2_8_16
569 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_8_16 = zext <16 x i8> %i8 to <16 x i16>
570 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_8_16 = add <16 x i16> %i16, %zw_8_16
571 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_8_16 = zext <16 x i8> %i8 to <16 x i16>
572 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_8_16 = zext <16 x i8> %i8 to <16 x i16>
573 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_8_16 = add <16 x i16> %zl1_8_16, %zl2_8_16
574 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sw_8_32 = sext <16 x i8> %i8 to <16 x i32>
575 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asw_8_32 = add <16 x i32> %i32, %sw_8_32
576 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sl1_8_32 = sext <16 x i8> %i8 to <16 x i32>
577 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sl2_8_32 = sext <16 x i8> %i8 to <16 x i32>
578 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_8_32 = add <16 x i32> %sl1_8_32, %sl2_8_32
579 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zw_8_32 = zext <16 x i8> %i8 to <16 x i32>
580 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azw_8_32 = add <16 x i32> %i32, %zw_8_32
581 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zl1_8_32 = zext <16 x i8> %i8 to <16 x i32>
582 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zl2_8_32 = zext <16 x i8> %i8 to <16 x i32>
583 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_8_32 = add <16 x i32> %zl1_8_32, %zl2_8_32
584 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %sw_8_64 = sext <16 x i8> %i8 to <16 x i64>
585 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asw_8_64 = add <16 x i64> %i64, %sw_8_64
586 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %sl1_8_64 = sext <16 x i8> %i8 to <16 x i64>
587 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %sl2_8_64 = sext <16 x i8> %i8 to <16 x i64>
588 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asl_8_64 = add <16 x i64> %sl1_8_64, %sl2_8_64
589 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %zw_8_64 = zext <16 x i8> %i8 to <16 x i64>
590 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azw_8_64 = add <16 x i64> %i64, %zw_8_64
591 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %zl1_8_64 = zext <16 x i8> %i8 to <16 x i64>
592 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %zl2_8_64 = zext <16 x i8> %i8 to <16 x i64>
593 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azl_8_64 = add <16 x i64> %zl1_8_64, %zl2_8_64
594 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_16_32 = sext <16 x i16> %i16 to <16 x i32>
595 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asw_16_32 = add <16 x i32> %i32, %sw_16_32
596 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_16_32 = sext <16 x i16> %i16 to <16 x i32>
597 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_16_32 = sext <16 x i16> %i16 to <16 x i32>
598 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_16_32 = add <16 x i32> %sl1_16_32, %sl2_16_32
599 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_16_32 = zext <16 x i16> %i16 to <16 x i32>
600 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azw_16_32 = add <16 x i32> %i32, %zw_16_32
601 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_16_32 = zext <16 x i16> %i16 to <16 x i32>
602 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_16_32 = zext <16 x i16> %i16 to <16 x i32>
603 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_16_32 = add <16 x i32> %zl1_16_32, %zl2_16_32
604 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %sw_16_64 = sext <16 x i16> %i16 to <16 x i64>
605 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asw_16_64 = add <16 x i64> %i64, %sw_16_64
606 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %sl1_16_64 = sext <16 x i16> %i16 to <16 x i64>
607 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %sl2_16_64 = sext <16 x i16> %i16 to <16 x i64>
608 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asl_16_64 = add <16 x i64> %sl1_16_64, %sl2_16_64
609 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %zw_16_64 = zext <16 x i16> %i16 to <16 x i64>
610 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azw_16_64 = add <16 x i64> %i64, %zw_16_64
611 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %zl1_16_64 = zext <16 x i16> %i16 to <16 x i64>
612 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %zl2_16_64 = zext <16 x i16> %i16 to <16 x i64>
613 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azl_16_64 = add <16 x i64> %zl1_16_64, %zl2_16_64
614 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_32_64 = sext <16 x i32> %i32 to <16 x i64>
615 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asw_32_64 = add <16 x i64> %i64, %sw_32_64
616 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_32_64 = sext <16 x i32> %i32 to <16 x i64>
617 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_32_64 = sext <16 x i32> %i32 to <16 x i64>
618 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asl_32_64 = add <16 x i64> %sl1_32_64, %sl2_32_64
619 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_32_64 = zext <16 x i32> %i32 to <16 x i64>
620 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azw_32_64 = add <16 x i64> %i64, %zw_32_64
621 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext <16 x i32> %i32 to <16 x i64>
622 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext <16 x i32> %i32 to <16 x i64>
623 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azl_32_64 = add <16 x i64> %zl1_32_64, %zl2_32_64
624 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
626 %sw_8_16 = sext <16 x i8> %i8 to <16 x i16>
627 %asw_8_16 = add <16 x i16> %i16, %sw_8_16
628 %sl1_8_16 = sext <16 x i8> %i8 to <16 x i16>
629 %sl2_8_16 = sext <16 x i8> %i8 to <16 x i16>
630 %asl_8_16 = add <16 x i16> %sl1_8_16, %sl2_8_16
632 %zw_8_16 = zext <16 x i8> %i8 to <16 x i16>
633 %azw_8_16 = add <16 x i16> %i16, %zw_8_16
634 %zl1_8_16 = zext <16 x i8> %i8 to <16 x i16>
635 %zl2_8_16 = zext <16 x i8> %i8 to <16 x i16>
636 %azl_8_16 = add <16 x i16> %zl1_8_16, %zl2_8_16
638 %sw_8_32 = sext <16 x i8> %i8 to <16 x i32>
639 %asw_8_32 = add <16 x i32> %i32, %sw_8_32
640 %sl1_8_32 = sext <16 x i8> %i8 to <16 x i32>
641 %sl2_8_32 = sext <16 x i8> %i8 to <16 x i32>
642 %asl_8_32 = add <16 x i32> %sl1_8_32, %sl2_8_32
644 %zw_8_32 = zext <16 x i8> %i8 to <16 x i32>
645 %azw_8_32 = add <16 x i32> %i32, %zw_8_32
646 %zl1_8_32 = zext <16 x i8> %i8 to <16 x i32>
647 %zl2_8_32 = zext <16 x i8> %i8 to <16 x i32>
648 %azl_8_32 = add <16 x i32> %zl1_8_32, %zl2_8_32
650 %sw_8_64 = sext <16 x i8> %i8 to <16 x i64>
651 %asw_8_64 = add <16 x i64> %i64, %sw_8_64
652 %sl1_8_64 = sext <16 x i8> %i8 to <16 x i64>
653 %sl2_8_64 = sext <16 x i8> %i8 to <16 x i64>
654 %asl_8_64 = add <16 x i64> %sl1_8_64, %sl2_8_64
656 %zw_8_64 = zext <16 x i8> %i8 to <16 x i64>
657 %azw_8_64 = add <16 x i64> %i64, %zw_8_64
658 %zl1_8_64 = zext <16 x i8> %i8 to <16 x i64>
659 %zl2_8_64 = zext <16 x i8> %i8 to <16 x i64>
660 %azl_8_64 = add <16 x i64> %zl1_8_64, %zl2_8_64
662 %sw_16_32 = sext <16 x i16> %i16 to <16 x i32>
663 %asw_16_32 = add <16 x i32> %i32, %sw_16_32
664 %sl1_16_32 = sext <16 x i16> %i16 to <16 x i32>
665 %sl2_16_32 = sext <16 x i16> %i16 to <16 x i32>
666 %asl_16_32 = add <16 x i32> %sl1_16_32, %sl2_16_32
668 %zw_16_32 = zext <16 x i16> %i16 to <16 x i32>
669 %azw_16_32 = add <16 x i32> %i32, %zw_16_32
670 %zl1_16_32 = zext <16 x i16> %i16 to <16 x i32>
671 %zl2_16_32 = zext <16 x i16> %i16 to <16 x i32>
672 %azl_16_32 = add <16 x i32> %zl1_16_32, %zl2_16_32
674 %sw_16_64 = sext <16 x i16> %i16 to <16 x i64>
675 %asw_16_64 = add <16 x i64> %i64, %sw_16_64
676 %sl1_16_64 = sext <16 x i16> %i16 to <16 x i64>
677 %sl2_16_64 = sext <16 x i16> %i16 to <16 x i64>
678 %asl_16_64 = add <16 x i64> %sl1_16_64, %sl2_16_64
680 %zw_16_64 = zext <16 x i16> %i16 to <16 x i64>
681 %azw_16_64 = add <16 x i64> %i64, %zw_16_64
682 %zl1_16_64 = zext <16 x i16> %i16 to <16 x i64>
683 %zl2_16_64 = zext <16 x i16> %i16 to <16 x i64>
684 %azl_16_64 = add <16 x i64> %zl1_16_64, %zl2_16_64
686 %sw_32_64 = sext <16 x i32> %i32 to <16 x i64>
687 %asw_32_64 = add <16 x i64> %i64, %sw_32_64
688 %sl1_32_64 = sext <16 x i32> %i32 to <16 x i64>
689 %sl2_32_64 = sext <16 x i32> %i32 to <16 x i64>
690 %asl_32_64 = add <16 x i64> %sl1_32_64, %sl2_32_64
692 %zw_32_64 = zext <16 x i32> %i32 to <16 x i64>
693 %azw_32_64 = add <16 x i64> %i64, %zw_32_64
694 %zl1_32_64 = zext <16 x i32> %i32 to <16 x i64>
695 %zl2_32_64 = zext <16 x i32> %i32 to <16 x i64>
696 %azl_32_64 = add <16 x i64> %zl1_32_64, %zl2_32_64
701 define void @extsubv1(i8 %i8, i16 %i16, i32 %i32, i64 %i64) {
702 ; CHECK-LABEL: 'extsubv1'
703 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_16 = sext i8 %i8 to i16
704 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_16 = sub i16 %i16, %sw_8_16
705 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_16 = sext i8 %i8 to i16
706 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_16 = sext i8 %i8 to i16
707 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = sub i16 %sl1_8_16, %sl2_8_16
708 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_16 = zext i8 %i8 to i16
709 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_16 = sub i16 %i16, %zw_8_16
710 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_16 = zext i8 %i8 to i16
711 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_16 = zext i8 %i8 to i16
712 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = sub i16 %zl1_8_16, %zl2_8_16
713 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_32 = sext i8 %i8 to i32
714 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_32 = sub i32 %i32, %sw_8_32
715 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_32 = sext i8 %i8 to i32
716 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_32 = sext i8 %i8 to i32
717 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_32 = sub i32 %sl1_8_32, %sl2_8_32
718 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_32 = zext i8 %i8 to i32
719 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_32 = sub i32 %i32, %zw_8_32
720 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_32 = zext i8 %i8 to i32
721 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_32 = zext i8 %i8 to i32
722 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_32 = sub i32 %zl1_8_32, %zl2_8_32
723 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_64 = sext i8 %i8 to i64
724 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_64 = sub i64 %i64, %sw_8_64
725 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_64 = sext i8 %i8 to i64
726 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_64 = sext i8 %i8 to i64
727 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_64 = sub i64 %sl1_8_64, %sl2_8_64
728 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_8_64 = zext i8 %i8 to i64
729 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_64 = sub i64 %i64, %zw_8_64
730 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_8_64 = zext i8 %i8 to i64
731 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_8_64 = zext i8 %i8 to i64
732 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_64 = sub i64 %zl1_8_64, %zl2_8_64
733 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_32 = sext i16 %i16 to i32
734 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_32 = sub i32 %i32, %sw_16_32
735 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_16_32 = sext i16 %i16 to i32
736 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_16_32 = sext i16 %i16 to i32
737 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_32 = sub i32 %sl1_16_32, %sl2_16_32
738 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_16_32 = zext i16 %i16 to i32
739 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_32 = sub i32 %i32, %zw_16_32
740 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_16_32 = zext i16 %i16 to i32
741 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_16_32 = zext i16 %i16 to i32
742 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_32 = sub i32 %zl1_16_32, %zl2_16_32
743 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_64 = sext i16 %i16 to i64
744 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_64 = sub i64 %i64, %sw_16_64
745 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_16_64 = sext i16 %i16 to i64
746 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_16_64 = sext i16 %i16 to i64
747 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_64 = sub i64 %sl1_16_64, %sl2_16_64
748 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_16_64 = zext i16 %i16 to i64
749 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_64 = sub i64 %i64, %zw_16_64
750 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_16_64 = zext i16 %i16 to i64
751 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_16_64 = zext i16 %i16 to i64
752 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_64 = sub i64 %zl1_16_64, %zl2_16_64
753 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_32_64 = sext i32 %i32 to i64
754 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_32_64 = sub i64 %i64, %sw_32_64
755 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_32_64 = sext i32 %i32 to i64
756 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_32_64 = sext i32 %i32 to i64
757 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_32_64 = sub i64 %sl1_32_64, %sl2_32_64
758 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_32_64 = zext i32 %i32 to i64
759 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_32_64 = sub i64 %i64, %zw_32_64
760 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext i32 %i32 to i64
761 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext i32 %i32 to i64
762 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_32_64 = sub i64 %zl1_32_64, %zl2_32_64
763 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
765 %sw_8_16 = sext i8 %i8 to i16
766 %asw_8_16 = sub i16 %i16, %sw_8_16
767 %sl1_8_16 = sext i8 %i8 to i16
768 %sl2_8_16 = sext i8 %i8 to i16
769 %asl_8_16 = sub i16 %sl1_8_16, %sl2_8_16
771 %zw_8_16 = zext i8 %i8 to i16
772 %azw_8_16 = sub i16 %i16, %zw_8_16
773 %zl1_8_16 = zext i8 %i8 to i16
774 %zl2_8_16 = zext i8 %i8 to i16
775 %azl_8_16 = sub i16 %zl1_8_16, %zl2_8_16
777 %sw_8_32 = sext i8 %i8 to i32
778 %asw_8_32 = sub i32 %i32, %sw_8_32
779 %sl1_8_32 = sext i8 %i8 to i32
780 %sl2_8_32 = sext i8 %i8 to i32
781 %asl_8_32 = sub i32 %sl1_8_32, %sl2_8_32
783 %zw_8_32 = zext i8 %i8 to i32
784 %azw_8_32 = sub i32 %i32, %zw_8_32
785 %zl1_8_32 = zext i8 %i8 to i32
786 %zl2_8_32 = zext i8 %i8 to i32
787 %azl_8_32 = sub i32 %zl1_8_32, %zl2_8_32
789 %sw_8_64 = sext i8 %i8 to i64
790 %asw_8_64 = sub i64 %i64, %sw_8_64
791 %sl1_8_64 = sext i8 %i8 to i64
792 %sl2_8_64 = sext i8 %i8 to i64
793 %asl_8_64 = sub i64 %sl1_8_64, %sl2_8_64
795 %zw_8_64 = zext i8 %i8 to i64
796 %azw_8_64 = sub i64 %i64, %zw_8_64
797 %zl1_8_64 = zext i8 %i8 to i64
798 %zl2_8_64 = zext i8 %i8 to i64
799 %azl_8_64 = sub i64 %zl1_8_64, %zl2_8_64
801 %sw_16_32 = sext i16 %i16 to i32
802 %asw_16_32 = sub i32 %i32, %sw_16_32
803 %sl1_16_32 = sext i16 %i16 to i32
804 %sl2_16_32 = sext i16 %i16 to i32
805 %asl_16_32 = sub i32 %sl1_16_32, %sl2_16_32
807 %zw_16_32 = zext i16 %i16 to i32
808 %azw_16_32 = sub i32 %i32, %zw_16_32
809 %zl1_16_32 = zext i16 %i16 to i32
810 %zl2_16_32 = zext i16 %i16 to i32
811 %azl_16_32 = sub i32 %zl1_16_32, %zl2_16_32
813 %sw_16_64 = sext i16 %i16 to i64
814 %asw_16_64 = sub i64 %i64, %sw_16_64
815 %sl1_16_64 = sext i16 %i16 to i64
816 %sl2_16_64 = sext i16 %i16 to i64
817 %asl_16_64 = sub i64 %sl1_16_64, %sl2_16_64
819 %zw_16_64 = zext i16 %i16 to i64
820 %azw_16_64 = sub i64 %i64, %zw_16_64
821 %zl1_16_64 = zext i16 %i16 to i64
822 %zl2_16_64 = zext i16 %i16 to i64
823 %azl_16_64 = sub i64 %zl1_16_64, %zl2_16_64
825 %sw_32_64 = sext i32 %i32 to i64
826 %asw_32_64 = sub i64 %i64, %sw_32_64
827 %sl1_32_64 = sext i32 %i32 to i64
828 %sl2_32_64 = sext i32 %i32 to i64
829 %asl_32_64 = sub i64 %sl1_32_64, %sl2_32_64
831 %zw_32_64 = zext i32 %i32 to i64
832 %azw_32_64 = sub i64 %i64, %zw_32_64
833 %zl1_32_64 = zext i32 %i32 to i64
834 %zl2_32_64 = zext i32 %i32 to i64
835 %azl_32_64 = sub i64 %zl1_32_64, %zl2_32_64
840 define void @extsubv2(<2 x i8> %i8, <2 x i16> %i16, <2 x i32> %i32, <2 x i64> %i64) {
841 ; CHECK-LABEL: 'extsubv2'
842 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_16 = sext <2 x i8> %i8 to <2 x i16>
843 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_16 = sub <2 x i16> %i16, %sw_8_16
844 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_16 = sext <2 x i8> %i8 to <2 x i16>
845 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_16 = sext <2 x i8> %i8 to <2 x i16>
846 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = sub <2 x i16> %sl1_8_16, %sl2_8_16
847 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_16 = zext <2 x i8> %i8 to <2 x i16>
848 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_16 = sub <2 x i16> %i16, %zw_8_16
849 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_16 = zext <2 x i8> %i8 to <2 x i16>
850 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_16 = zext <2 x i8> %i8 to <2 x i16>
851 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = sub <2 x i16> %zl1_8_16, %zl2_8_16
852 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_32 = sext <2 x i8> %i8 to <2 x i32>
853 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_32 = sub <2 x i32> %i32, %sw_8_32
854 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_32 = sext <2 x i8> %i8 to <2 x i32>
855 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_32 = sext <2 x i8> %i8 to <2 x i32>
856 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_32 = sub <2 x i32> %sl1_8_32, %sl2_8_32
857 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_32 = zext <2 x i8> %i8 to <2 x i32>
858 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_32 = sub <2 x i32> %i32, %zw_8_32
859 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_32 = zext <2 x i8> %i8 to <2 x i32>
860 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_32 = zext <2 x i8> %i8 to <2 x i32>
861 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_32 = sub <2 x i32> %zl1_8_32, %zl2_8_32
862 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_64 = sext <2 x i8> %i8 to <2 x i64>
863 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_64 = sub <2 x i64> %i64, %sw_8_64
864 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_64 = sext <2 x i8> %i8 to <2 x i64>
865 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_64 = sext <2 x i8> %i8 to <2 x i64>
866 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_64 = sub <2 x i64> %sl1_8_64, %sl2_8_64
867 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_64 = zext <2 x i8> %i8 to <2 x i64>
868 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_64 = sub <2 x i64> %i64, %zw_8_64
869 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_64 = zext <2 x i8> %i8 to <2 x i64>
870 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_64 = zext <2 x i8> %i8 to <2 x i64>
871 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_64 = sub <2 x i64> %zl1_8_64, %zl2_8_64
872 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_32 = sext <2 x i16> %i16 to <2 x i32>
873 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_32 = sub <2 x i32> %i32, %sw_16_32
874 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_16_32 = sext <2 x i16> %i16 to <2 x i32>
875 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_16_32 = sext <2 x i16> %i16 to <2 x i32>
876 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_32 = sub <2 x i32> %sl1_16_32, %sl2_16_32
877 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_16_32 = zext <2 x i16> %i16 to <2 x i32>
878 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_32 = sub <2 x i32> %i32, %zw_16_32
879 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_16_32 = zext <2 x i16> %i16 to <2 x i32>
880 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_16_32 = zext <2 x i16> %i16 to <2 x i32>
881 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_32 = sub <2 x i32> %zl1_16_32, %zl2_16_32
882 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_64 = sext <2 x i16> %i16 to <2 x i64>
883 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_64 = sub <2 x i64> %i64, %sw_16_64
884 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_16_64 = sext <2 x i16> %i16 to <2 x i64>
885 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_16_64 = sext <2 x i16> %i16 to <2 x i64>
886 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_64 = sub <2 x i64> %sl1_16_64, %sl2_16_64
887 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_16_64 = zext <2 x i16> %i16 to <2 x i64>
888 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_64 = sub <2 x i64> %i64, %zw_16_64
889 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_16_64 = zext <2 x i16> %i16 to <2 x i64>
890 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_16_64 = zext <2 x i16> %i16 to <2 x i64>
891 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_64 = sub <2 x i64> %zl1_16_64, %zl2_16_64
892 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_32_64 = sext <2 x i32> %i32 to <2 x i64>
893 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_32_64 = sub <2 x i64> %i64, %sw_32_64
894 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_32_64 = sext <2 x i32> %i32 to <2 x i64>
895 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_32_64 = sext <2 x i32> %i32 to <2 x i64>
896 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_32_64 = sub <2 x i64> %sl1_32_64, %sl2_32_64
897 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_32_64 = zext <2 x i32> %i32 to <2 x i64>
898 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_32_64 = sub <2 x i64> %i64, %zw_32_64
899 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext <2 x i32> %i32 to <2 x i64>
900 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext <2 x i32> %i32 to <2 x i64>
901 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_32_64 = sub <2 x i64> %zl1_32_64, %zl2_32_64
902 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
904 %sw_8_16 = sext <2 x i8> %i8 to <2 x i16>
905 %asw_8_16 = sub <2 x i16> %i16, %sw_8_16
906 %sl1_8_16 = sext <2 x i8> %i8 to <2 x i16>
907 %sl2_8_16 = sext <2 x i8> %i8 to <2 x i16>
908 %asl_8_16 = sub <2 x i16> %sl1_8_16, %sl2_8_16
910 %zw_8_16 = zext <2 x i8> %i8 to <2 x i16>
911 %azw_8_16 = sub <2 x i16> %i16, %zw_8_16
912 %zl1_8_16 = zext <2 x i8> %i8 to <2 x i16>
913 %zl2_8_16 = zext <2 x i8> %i8 to <2 x i16>
914 %azl_8_16 = sub <2 x i16> %zl1_8_16, %zl2_8_16
916 %sw_8_32 = sext <2 x i8> %i8 to <2 x i32>
917 %asw_8_32 = sub <2 x i32> %i32, %sw_8_32
918 %sl1_8_32 = sext <2 x i8> %i8 to <2 x i32>
919 %sl2_8_32 = sext <2 x i8> %i8 to <2 x i32>
920 %asl_8_32 = sub <2 x i32> %sl1_8_32, %sl2_8_32
922 %zw_8_32 = zext <2 x i8> %i8 to <2 x i32>
923 %azw_8_32 = sub <2 x i32> %i32, %zw_8_32
924 %zl1_8_32 = zext <2 x i8> %i8 to <2 x i32>
925 %zl2_8_32 = zext <2 x i8> %i8 to <2 x i32>
926 %azl_8_32 = sub <2 x i32> %zl1_8_32, %zl2_8_32
928 %sw_8_64 = sext <2 x i8> %i8 to <2 x i64>
929 %asw_8_64 = sub <2 x i64> %i64, %sw_8_64
930 %sl1_8_64 = sext <2 x i8> %i8 to <2 x i64>
931 %sl2_8_64 = sext <2 x i8> %i8 to <2 x i64>
932 %asl_8_64 = sub <2 x i64> %sl1_8_64, %sl2_8_64
934 %zw_8_64 = zext <2 x i8> %i8 to <2 x i64>
935 %azw_8_64 = sub <2 x i64> %i64, %zw_8_64
936 %zl1_8_64 = zext <2 x i8> %i8 to <2 x i64>
937 %zl2_8_64 = zext <2 x i8> %i8 to <2 x i64>
938 %azl_8_64 = sub <2 x i64> %zl1_8_64, %zl2_8_64
940 %sw_16_32 = sext <2 x i16> %i16 to <2 x i32>
941 %asw_16_32 = sub <2 x i32> %i32, %sw_16_32
942 %sl1_16_32 = sext <2 x i16> %i16 to <2 x i32>
943 %sl2_16_32 = sext <2 x i16> %i16 to <2 x i32>
944 %asl_16_32 = sub <2 x i32> %sl1_16_32, %sl2_16_32
946 %zw_16_32 = zext <2 x i16> %i16 to <2 x i32>
947 %azw_16_32 = sub <2 x i32> %i32, %zw_16_32
948 %zl1_16_32 = zext <2 x i16> %i16 to <2 x i32>
949 %zl2_16_32 = zext <2 x i16> %i16 to <2 x i32>
950 %azl_16_32 = sub <2 x i32> %zl1_16_32, %zl2_16_32
952 %sw_16_64 = sext <2 x i16> %i16 to <2 x i64>
953 %asw_16_64 = sub <2 x i64> %i64, %sw_16_64
954 %sl1_16_64 = sext <2 x i16> %i16 to <2 x i64>
955 %sl2_16_64 = sext <2 x i16> %i16 to <2 x i64>
956 %asl_16_64 = sub <2 x i64> %sl1_16_64, %sl2_16_64
958 %zw_16_64 = zext <2 x i16> %i16 to <2 x i64>
959 %azw_16_64 = sub <2 x i64> %i64, %zw_16_64
960 %zl1_16_64 = zext <2 x i16> %i16 to <2 x i64>
961 %zl2_16_64 = zext <2 x i16> %i16 to <2 x i64>
962 %azl_16_64 = sub <2 x i64> %zl1_16_64, %zl2_16_64
964 %sw_32_64 = sext <2 x i32> %i32 to <2 x i64>
965 %asw_32_64 = sub <2 x i64> %i64, %sw_32_64
966 %sl1_32_64 = sext <2 x i32> %i32 to <2 x i64>
967 %sl2_32_64 = sext <2 x i32> %i32 to <2 x i64>
968 %asl_32_64 = sub <2 x i64> %sl1_32_64, %sl2_32_64
970 %zw_32_64 = zext <2 x i32> %i32 to <2 x i64>
971 %azw_32_64 = sub <2 x i64> %i64, %zw_32_64
972 %zl1_32_64 = zext <2 x i32> %i32 to <2 x i64>
973 %zl2_32_64 = zext <2 x i32> %i32 to <2 x i64>
974 %azl_32_64 = sub <2 x i64> %zl1_32_64, %zl2_32_64
979 define void @extsubv4(<4 x i8> %i8, <4 x i16> %i16, <4 x i32> %i32, <4 x i64> %i64) {
980 ; CHECK-LABEL: 'extsubv4'
981 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_16 = sext <4 x i8> %i8 to <4 x i16>
982 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_16 = sub <4 x i16> %i16, %sw_8_16
983 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_16 = sext <4 x i8> %i8 to <4 x i16>
984 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_16 = sext <4 x i8> %i8 to <4 x i16>
985 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = sub <4 x i16> %sl1_8_16, %sl2_8_16
986 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_16 = zext <4 x i8> %i8 to <4 x i16>
987 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_16 = sub <4 x i16> %i16, %zw_8_16
988 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_16 = zext <4 x i8> %i8 to <4 x i16>
989 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_16 = zext <4 x i8> %i8 to <4 x i16>
990 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = sub <4 x i16> %zl1_8_16, %zl2_8_16
991 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_32 = sext <4 x i8> %i8 to <4 x i32>
992 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_32 = sub <4 x i32> %i32, %sw_8_32
993 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_32 = sext <4 x i8> %i8 to <4 x i32>
994 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_32 = sext <4 x i8> %i8 to <4 x i32>
995 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_32 = sub <4 x i32> %sl1_8_32, %sl2_8_32
996 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_32 = zext <4 x i8> %i8 to <4 x i32>
997 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_32 = sub <4 x i32> %i32, %zw_8_32
998 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_32 = zext <4 x i8> %i8 to <4 x i32>
999 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_32 = zext <4 x i8> %i8 to <4 x i32>
1000 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_32 = sub <4 x i32> %zl1_8_32, %zl2_8_32
1001 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sw_8_64 = sext <4 x i8> %i8 to <4 x i64>
1002 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_8_64 = sub <4 x i64> %i64, %sw_8_64
1003 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl1_8_64 = sext <4 x i8> %i8 to <4 x i64>
1004 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl2_8_64 = sext <4 x i8> %i8 to <4 x i64>
1005 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_8_64 = sub <4 x i64> %sl1_8_64, %sl2_8_64
1006 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zw_8_64 = zext <4 x i8> %i8 to <4 x i64>
1007 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_8_64 = sub <4 x i64> %i64, %zw_8_64
1008 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl1_8_64 = zext <4 x i8> %i8 to <4 x i64>
1009 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl2_8_64 = zext <4 x i8> %i8 to <4 x i64>
1010 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_8_64 = sub <4 x i64> %zl1_8_64, %zl2_8_64
1011 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_16_32 = sext <4 x i16> %i16 to <4 x i32>
1012 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_32 = sub <4 x i32> %i32, %sw_16_32
1013 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_16_32 = sext <4 x i16> %i16 to <4 x i32>
1014 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_16_32 = sext <4 x i16> %i16 to <4 x i32>
1015 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_32 = sub <4 x i32> %sl1_16_32, %sl2_16_32
1016 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_16_32 = zext <4 x i16> %i16 to <4 x i32>
1017 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_32 = sub <4 x i32> %i32, %zw_16_32
1018 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_16_32 = zext <4 x i16> %i16 to <4 x i32>
1019 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_16_32 = zext <4 x i16> %i16 to <4 x i32>
1020 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_32 = sub <4 x i32> %zl1_16_32, %zl2_16_32
1021 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sw_16_64 = sext <4 x i16> %i16 to <4 x i64>
1022 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_16_64 = sub <4 x i64> %i64, %sw_16_64
1023 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl1_16_64 = sext <4 x i16> %i16 to <4 x i64>
1024 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl2_16_64 = sext <4 x i16> %i16 to <4 x i64>
1025 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_16_64 = sub <4 x i64> %sl1_16_64, %sl2_16_64
1026 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zw_16_64 = zext <4 x i16> %i16 to <4 x i64>
1027 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_16_64 = sub <4 x i64> %i64, %zw_16_64
1028 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl1_16_64 = zext <4 x i16> %i16 to <4 x i64>
1029 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl2_16_64 = zext <4 x i16> %i16 to <4 x i64>
1030 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_16_64 = sub <4 x i64> %zl1_16_64, %zl2_16_64
1031 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_32_64 = sext <4 x i32> %i32 to <4 x i64>
1032 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_32_64 = sub <4 x i64> %i64, %sw_32_64
1033 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_32_64 = sext <4 x i32> %i32 to <4 x i64>
1034 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_32_64 = sext <4 x i32> %i32 to <4 x i64>
1035 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_32_64 = sub <4 x i64> %sl1_32_64, %sl2_32_64
1036 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_32_64 = zext <4 x i32> %i32 to <4 x i64>
1037 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_32_64 = sub <4 x i64> %i64, %zw_32_64
1038 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext <4 x i32> %i32 to <4 x i64>
1039 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext <4 x i32> %i32 to <4 x i64>
1040 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_32_64 = sub <4 x i64> %zl1_32_64, %zl2_32_64
1041 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
1043 %sw_8_16 = sext <4 x i8> %i8 to <4 x i16>
1044 %asw_8_16 = sub <4 x i16> %i16, %sw_8_16
1045 %sl1_8_16 = sext <4 x i8> %i8 to <4 x i16>
1046 %sl2_8_16 = sext <4 x i8> %i8 to <4 x i16>
1047 %asl_8_16 = sub <4 x i16> %sl1_8_16, %sl2_8_16
1049 %zw_8_16 = zext <4 x i8> %i8 to <4 x i16>
1050 %azw_8_16 = sub <4 x i16> %i16, %zw_8_16
1051 %zl1_8_16 = zext <4 x i8> %i8 to <4 x i16>
1052 %zl2_8_16 = zext <4 x i8> %i8 to <4 x i16>
1053 %azl_8_16 = sub <4 x i16> %zl1_8_16, %zl2_8_16
1055 %sw_8_32 = sext <4 x i8> %i8 to <4 x i32>
1056 %asw_8_32 = sub <4 x i32> %i32, %sw_8_32
1057 %sl1_8_32 = sext <4 x i8> %i8 to <4 x i32>
1058 %sl2_8_32 = sext <4 x i8> %i8 to <4 x i32>
1059 %asl_8_32 = sub <4 x i32> %sl1_8_32, %sl2_8_32
1061 %zw_8_32 = zext <4 x i8> %i8 to <4 x i32>
1062 %azw_8_32 = sub <4 x i32> %i32, %zw_8_32
1063 %zl1_8_32 = zext <4 x i8> %i8 to <4 x i32>
1064 %zl2_8_32 = zext <4 x i8> %i8 to <4 x i32>
1065 %azl_8_32 = sub <4 x i32> %zl1_8_32, %zl2_8_32
1067 %sw_8_64 = sext <4 x i8> %i8 to <4 x i64>
1068 %asw_8_64 = sub <4 x i64> %i64, %sw_8_64
1069 %sl1_8_64 = sext <4 x i8> %i8 to <4 x i64>
1070 %sl2_8_64 = sext <4 x i8> %i8 to <4 x i64>
1071 %asl_8_64 = sub <4 x i64> %sl1_8_64, %sl2_8_64
1073 %zw_8_64 = zext <4 x i8> %i8 to <4 x i64>
1074 %azw_8_64 = sub <4 x i64> %i64, %zw_8_64
1075 %zl1_8_64 = zext <4 x i8> %i8 to <4 x i64>
1076 %zl2_8_64 = zext <4 x i8> %i8 to <4 x i64>
1077 %azl_8_64 = sub <4 x i64> %zl1_8_64, %zl2_8_64
1079 %sw_16_32 = sext <4 x i16> %i16 to <4 x i32>
1080 %asw_16_32 = sub <4 x i32> %i32, %sw_16_32
1081 %sl1_16_32 = sext <4 x i16> %i16 to <4 x i32>
1082 %sl2_16_32 = sext <4 x i16> %i16 to <4 x i32>
1083 %asl_16_32 = sub <4 x i32> %sl1_16_32, %sl2_16_32
1085 %zw_16_32 = zext <4 x i16> %i16 to <4 x i32>
1086 %azw_16_32 = sub <4 x i32> %i32, %zw_16_32
1087 %zl1_16_32 = zext <4 x i16> %i16 to <4 x i32>
1088 %zl2_16_32 = zext <4 x i16> %i16 to <4 x i32>
1089 %azl_16_32 = sub <4 x i32> %zl1_16_32, %zl2_16_32
1091 %sw_16_64 = sext <4 x i16> %i16 to <4 x i64>
1092 %asw_16_64 = sub <4 x i64> %i64, %sw_16_64
1093 %sl1_16_64 = sext <4 x i16> %i16 to <4 x i64>
1094 %sl2_16_64 = sext <4 x i16> %i16 to <4 x i64>
1095 %asl_16_64 = sub <4 x i64> %sl1_16_64, %sl2_16_64
1097 %zw_16_64 = zext <4 x i16> %i16 to <4 x i64>
1098 %azw_16_64 = sub <4 x i64> %i64, %zw_16_64
1099 %zl1_16_64 = zext <4 x i16> %i16 to <4 x i64>
1100 %zl2_16_64 = zext <4 x i16> %i16 to <4 x i64>
1101 %azl_16_64 = sub <4 x i64> %zl1_16_64, %zl2_16_64
1103 %sw_32_64 = sext <4 x i32> %i32 to <4 x i64>
1104 %asw_32_64 = sub <4 x i64> %i64, %sw_32_64
1105 %sl1_32_64 = sext <4 x i32> %i32 to <4 x i64>
1106 %sl2_32_64 = sext <4 x i32> %i32 to <4 x i64>
1107 %asl_32_64 = sub <4 x i64> %sl1_32_64, %sl2_32_64
1109 %zw_32_64 = zext <4 x i32> %i32 to <4 x i64>
1110 %azw_32_64 = sub <4 x i64> %i64, %zw_32_64
1111 %zl1_32_64 = zext <4 x i32> %i32 to <4 x i64>
1112 %zl2_32_64 = zext <4 x i32> %i32 to <4 x i64>
1113 %azl_32_64 = sub <4 x i64> %zl1_32_64, %zl2_32_64
1118 define void @extsubv8(<8 x i8> %i8, <8 x i16> %i16, <8 x i32> %i32, <8 x i64> %i64) {
1119 ; CHECK-LABEL: 'extsubv8'
1120 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_8_16 = sext <8 x i8> %i8 to <8 x i16>
1121 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_16 = sub <8 x i16> %i16, %sw_8_16
1122 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>
1123 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_8_16 = sext <8 x i8> %i8 to <8 x i16>
1124 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = sub <8 x i16> %sl1_8_16, %sl2_8_16
1125 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_8_16 = zext <8 x i8> %i8 to <8 x i16>
1126 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_16 = sub <8 x i16> %i16, %zw_8_16
1127 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>
1128 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_8_16 = zext <8 x i8> %i8 to <8 x i16>
1129 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = sub <8 x i16> %zl1_8_16, %zl2_8_16
1130 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sw_8_32 = sext <8 x i8> %i8 to <8 x i32>
1131 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_8_32 = sub <8 x i32> %i32, %sw_8_32
1132 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl1_8_32 = sext <8 x i8> %i8 to <8 x i32>
1133 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl2_8_32 = sext <8 x i8> %i8 to <8 x i32>
1134 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_8_32 = sub <8 x i32> %sl1_8_32, %sl2_8_32
1135 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zw_8_32 = zext <8 x i8> %i8 to <8 x i32>
1136 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_8_32 = sub <8 x i32> %i32, %zw_8_32
1137 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl1_8_32 = zext <8 x i8> %i8 to <8 x i32>
1138 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl2_8_32 = zext <8 x i8> %i8 to <8 x i32>
1139 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_8_32 = sub <8 x i32> %zl1_8_32, %zl2_8_32
1140 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %sw_8_64 = sext <8 x i8> %i8 to <8 x i64>
1141 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asw_8_64 = sub <8 x i64> %i64, %sw_8_64
1142 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %sl1_8_64 = sext <8 x i8> %i8 to <8 x i64>
1143 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %sl2_8_64 = sext <8 x i8> %i8 to <8 x i64>
1144 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_8_64 = sub <8 x i64> %sl1_8_64, %sl2_8_64
1145 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %zw_8_64 = zext <8 x i8> %i8 to <8 x i64>
1146 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azw_8_64 = sub <8 x i64> %i64, %zw_8_64
1147 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %zl1_8_64 = zext <8 x i8> %i8 to <8 x i64>
1148 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %zl2_8_64 = zext <8 x i8> %i8 to <8 x i64>
1149 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_8_64 = sub <8 x i64> %zl1_8_64, %zl2_8_64
1150 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_16_32 = sext <8 x i16> %i16 to <8 x i32>
1151 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_16_32 = sub <8 x i32> %i32, %sw_16_32
1152 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_16_32 = sext <8 x i16> %i16 to <8 x i32>
1153 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_16_32 = sext <8 x i16> %i16 to <8 x i32>
1154 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_16_32 = sub <8 x i32> %sl1_16_32, %sl2_16_32
1155 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_16_32 = zext <8 x i16> %i16 to <8 x i32>
1156 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_16_32 = sub <8 x i32> %i32, %zw_16_32
1157 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_16_32 = zext <8 x i16> %i16 to <8 x i32>
1158 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_16_32 = zext <8 x i16> %i16 to <8 x i32>
1159 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_16_32 = sub <8 x i32> %zl1_16_32, %zl2_16_32
1160 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sw_16_64 = sext <8 x i16> %i16 to <8 x i64>
1161 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asw_16_64 = sub <8 x i64> %i64, %sw_16_64
1162 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sl1_16_64 = sext <8 x i16> %i16 to <8 x i64>
1163 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sl2_16_64 = sext <8 x i16> %i16 to <8 x i64>
1164 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_16_64 = sub <8 x i64> %sl1_16_64, %sl2_16_64
1165 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zw_16_64 = zext <8 x i16> %i16 to <8 x i64>
1166 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azw_16_64 = sub <8 x i64> %i64, %zw_16_64
1167 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zl1_16_64 = zext <8 x i16> %i16 to <8 x i64>
1168 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zl2_16_64 = zext <8 x i16> %i16 to <8 x i64>
1169 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_16_64 = sub <8 x i64> %zl1_16_64, %zl2_16_64
1170 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_32_64 = sext <8 x i32> %i32 to <8 x i64>
1171 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asw_32_64 = sub <8 x i64> %i64, %sw_32_64
1172 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_32_64 = sext <8 x i32> %i32 to <8 x i64>
1173 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_32_64 = sext <8 x i32> %i32 to <8 x i64>
1174 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_32_64 = sub <8 x i64> %sl1_32_64, %sl2_32_64
1175 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_32_64 = zext <8 x i32> %i32 to <8 x i64>
1176 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azw_32_64 = sub <8 x i64> %i64, %zw_32_64
1177 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext <8 x i32> %i32 to <8 x i64>
1178 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext <8 x i32> %i32 to <8 x i64>
1179 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_32_64 = sub <8 x i64> %zl1_32_64, %zl2_32_64
1180 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
1182 %sw_8_16 = sext <8 x i8> %i8 to <8 x i16>
1183 %asw_8_16 = sub <8 x i16> %i16, %sw_8_16
1184 %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>
1185 %sl2_8_16 = sext <8 x i8> %i8 to <8 x i16>
1186 %asl_8_16 = sub <8 x i16> %sl1_8_16, %sl2_8_16
1188 %zw_8_16 = zext <8 x i8> %i8 to <8 x i16>
1189 %azw_8_16 = sub <8 x i16> %i16, %zw_8_16
1190 %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>
1191 %zl2_8_16 = zext <8 x i8> %i8 to <8 x i16>
1192 %azl_8_16 = sub <8 x i16> %zl1_8_16, %zl2_8_16
1194 %sw_8_32 = sext <8 x i8> %i8 to <8 x i32>
1195 %asw_8_32 = sub <8 x i32> %i32, %sw_8_32
1196 %sl1_8_32 = sext <8 x i8> %i8 to <8 x i32>
1197 %sl2_8_32 = sext <8 x i8> %i8 to <8 x i32>
1198 %asl_8_32 = sub <8 x i32> %sl1_8_32, %sl2_8_32
1200 %zw_8_32 = zext <8 x i8> %i8 to <8 x i32>
1201 %azw_8_32 = sub <8 x i32> %i32, %zw_8_32
1202 %zl1_8_32 = zext <8 x i8> %i8 to <8 x i32>
1203 %zl2_8_32 = zext <8 x i8> %i8 to <8 x i32>
1204 %azl_8_32 = sub <8 x i32> %zl1_8_32, %zl2_8_32
1206 %sw_8_64 = sext <8 x i8> %i8 to <8 x i64>
1207 %asw_8_64 = sub <8 x i64> %i64, %sw_8_64
1208 %sl1_8_64 = sext <8 x i8> %i8 to <8 x i64>
1209 %sl2_8_64 = sext <8 x i8> %i8 to <8 x i64>
1210 %asl_8_64 = sub <8 x i64> %sl1_8_64, %sl2_8_64
1212 %zw_8_64 = zext <8 x i8> %i8 to <8 x i64>
1213 %azw_8_64 = sub <8 x i64> %i64, %zw_8_64
1214 %zl1_8_64 = zext <8 x i8> %i8 to <8 x i64>
1215 %zl2_8_64 = zext <8 x i8> %i8 to <8 x i64>
1216 %azl_8_64 = sub <8 x i64> %zl1_8_64, %zl2_8_64
1218 %sw_16_32 = sext <8 x i16> %i16 to <8 x i32>
1219 %asw_16_32 = sub <8 x i32> %i32, %sw_16_32
1220 %sl1_16_32 = sext <8 x i16> %i16 to <8 x i32>
1221 %sl2_16_32 = sext <8 x i16> %i16 to <8 x i32>
1222 %asl_16_32 = sub <8 x i32> %sl1_16_32, %sl2_16_32
1224 %zw_16_32 = zext <8 x i16> %i16 to <8 x i32>
1225 %azw_16_32 = sub <8 x i32> %i32, %zw_16_32
1226 %zl1_16_32 = zext <8 x i16> %i16 to <8 x i32>
1227 %zl2_16_32 = zext <8 x i16> %i16 to <8 x i32>
1228 %azl_16_32 = sub <8 x i32> %zl1_16_32, %zl2_16_32
1230 %sw_16_64 = sext <8 x i16> %i16 to <8 x i64>
1231 %asw_16_64 = sub <8 x i64> %i64, %sw_16_64
1232 %sl1_16_64 = sext <8 x i16> %i16 to <8 x i64>
1233 %sl2_16_64 = sext <8 x i16> %i16 to <8 x i64>
1234 %asl_16_64 = sub <8 x i64> %sl1_16_64, %sl2_16_64
1236 %zw_16_64 = zext <8 x i16> %i16 to <8 x i64>
1237 %azw_16_64 = sub <8 x i64> %i64, %zw_16_64
1238 %zl1_16_64 = zext <8 x i16> %i16 to <8 x i64>
1239 %zl2_16_64 = zext <8 x i16> %i16 to <8 x i64>
1240 %azl_16_64 = sub <8 x i64> %zl1_16_64, %zl2_16_64
1242 %sw_32_64 = sext <8 x i32> %i32 to <8 x i64>
1243 %asw_32_64 = sub <8 x i64> %i64, %sw_32_64
1244 %sl1_32_64 = sext <8 x i32> %i32 to <8 x i64>
1245 %sl2_32_64 = sext <8 x i32> %i32 to <8 x i64>
1246 %asl_32_64 = sub <8 x i64> %sl1_32_64, %sl2_32_64
1248 %zw_32_64 = zext <8 x i32> %i32 to <8 x i64>
1249 %azw_32_64 = sub <8 x i64> %i64, %zw_32_64
1250 %zl1_32_64 = zext <8 x i32> %i32 to <8 x i64>
1251 %zl2_32_64 = zext <8 x i32> %i32 to <8 x i64>
1252 %azl_32_64 = sub <8 x i64> %zl1_32_64, %zl2_32_64
1257 define void @extsubv16(<16 x i8> %i8, <16 x i16> %i16, <16 x i32> %i32, <16 x i64> %i64) {
1258 ; CHECK-LABEL: 'extsubv16'
1259 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_8_16 = sext <16 x i8> %i8 to <16 x i16>
1260 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_8_16 = sub <16 x i16> %i16, %sw_8_16
1261 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_8_16 = sext <16 x i8> %i8 to <16 x i16>
1262 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_8_16 = sext <16 x i8> %i8 to <16 x i16>
1263 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_8_16 = sub <16 x i16> %sl1_8_16, %sl2_8_16
1264 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_8_16 = zext <16 x i8> %i8 to <16 x i16>
1265 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_8_16 = sub <16 x i16> %i16, %zw_8_16
1266 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_8_16 = zext <16 x i8> %i8 to <16 x i16>
1267 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_8_16 = zext <16 x i8> %i8 to <16 x i16>
1268 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_8_16 = sub <16 x i16> %zl1_8_16, %zl2_8_16
1269 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sw_8_32 = sext <16 x i8> %i8 to <16 x i32>
1270 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asw_8_32 = sub <16 x i32> %i32, %sw_8_32
1271 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sl1_8_32 = sext <16 x i8> %i8 to <16 x i32>
1272 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sl2_8_32 = sext <16 x i8> %i8 to <16 x i32>
1273 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_8_32 = sub <16 x i32> %sl1_8_32, %sl2_8_32
1274 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zw_8_32 = zext <16 x i8> %i8 to <16 x i32>
1275 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azw_8_32 = sub <16 x i32> %i32, %zw_8_32
1276 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zl1_8_32 = zext <16 x i8> %i8 to <16 x i32>
1277 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zl2_8_32 = zext <16 x i8> %i8 to <16 x i32>
1278 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_8_32 = sub <16 x i32> %zl1_8_32, %zl2_8_32
1279 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %sw_8_64 = sext <16 x i8> %i8 to <16 x i64>
1280 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asw_8_64 = sub <16 x i64> %i64, %sw_8_64
1281 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %sl1_8_64 = sext <16 x i8> %i8 to <16 x i64>
1282 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %sl2_8_64 = sext <16 x i8> %i8 to <16 x i64>
1283 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asl_8_64 = sub <16 x i64> %sl1_8_64, %sl2_8_64
1284 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %zw_8_64 = zext <16 x i8> %i8 to <16 x i64>
1285 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azw_8_64 = sub <16 x i64> %i64, %zw_8_64
1286 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %zl1_8_64 = zext <16 x i8> %i8 to <16 x i64>
1287 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %zl2_8_64 = zext <16 x i8> %i8 to <16 x i64>
1288 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azl_8_64 = sub <16 x i64> %zl1_8_64, %zl2_8_64
1289 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_16_32 = sext <16 x i16> %i16 to <16 x i32>
1290 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asw_16_32 = sub <16 x i32> %i32, %sw_16_32
1291 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_16_32 = sext <16 x i16> %i16 to <16 x i32>
1292 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_16_32 = sext <16 x i16> %i16 to <16 x i32>
1293 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_16_32 = sub <16 x i32> %sl1_16_32, %sl2_16_32
1294 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_16_32 = zext <16 x i16> %i16 to <16 x i32>
1295 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azw_16_32 = sub <16 x i32> %i32, %zw_16_32
1296 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_16_32 = zext <16 x i16> %i16 to <16 x i32>
1297 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_16_32 = zext <16 x i16> %i16 to <16 x i32>
1298 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_16_32 = sub <16 x i32> %zl1_16_32, %zl2_16_32
1299 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %sw_16_64 = sext <16 x i16> %i16 to <16 x i64>
1300 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asw_16_64 = sub <16 x i64> %i64, %sw_16_64
1301 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %sl1_16_64 = sext <16 x i16> %i16 to <16 x i64>
1302 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %sl2_16_64 = sext <16 x i16> %i16 to <16 x i64>
1303 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asl_16_64 = sub <16 x i64> %sl1_16_64, %sl2_16_64
1304 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %zw_16_64 = zext <16 x i16> %i16 to <16 x i64>
1305 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azw_16_64 = sub <16 x i64> %i64, %zw_16_64
1306 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %zl1_16_64 = zext <16 x i16> %i16 to <16 x i64>
1307 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %zl2_16_64 = zext <16 x i16> %i16 to <16 x i64>
1308 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azl_16_64 = sub <16 x i64> %zl1_16_64, %zl2_16_64
1309 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sw_32_64 = sext <16 x i32> %i32 to <16 x i64>
1310 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asw_32_64 = sub <16 x i64> %i64, %sw_32_64
1311 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_32_64 = sext <16 x i32> %i32 to <16 x i64>
1312 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_32_64 = sext <16 x i32> %i32 to <16 x i64>
1313 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asl_32_64 = sub <16 x i64> %sl1_32_64, %sl2_32_64
1314 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_32_64 = zext <16 x i32> %i32 to <16 x i64>
1315 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azw_32_64 = sub <16 x i64> %i64, %zw_32_64
1316 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext <16 x i32> %i32 to <16 x i64>
1317 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext <16 x i32> %i32 to <16 x i64>
1318 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azl_32_64 = sub <16 x i64> %zl1_32_64, %zl2_32_64
1319 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
1321 %sw_8_16 = sext <16 x i8> %i8 to <16 x i16>
1322 %asw_8_16 = sub <16 x i16> %i16, %sw_8_16
1323 %sl1_8_16 = sext <16 x i8> %i8 to <16 x i16>
1324 %sl2_8_16 = sext <16 x i8> %i8 to <16 x i16>
1325 %asl_8_16 = sub <16 x i16> %sl1_8_16, %sl2_8_16
1327 %zw_8_16 = zext <16 x i8> %i8 to <16 x i16>
1328 %azw_8_16 = sub <16 x i16> %i16, %zw_8_16
1329 %zl1_8_16 = zext <16 x i8> %i8 to <16 x i16>
1330 %zl2_8_16 = zext <16 x i8> %i8 to <16 x i16>
1331 %azl_8_16 = sub <16 x i16> %zl1_8_16, %zl2_8_16
1333 %sw_8_32 = sext <16 x i8> %i8 to <16 x i32>
1334 %asw_8_32 = sub <16 x i32> %i32, %sw_8_32
1335 %sl1_8_32 = sext <16 x i8> %i8 to <16 x i32>
1336 %sl2_8_32 = sext <16 x i8> %i8 to <16 x i32>
1337 %asl_8_32 = sub <16 x i32> %sl1_8_32, %sl2_8_32
1339 %zw_8_32 = zext <16 x i8> %i8 to <16 x i32>
1340 %azw_8_32 = sub <16 x i32> %i32, %zw_8_32
1341 %zl1_8_32 = zext <16 x i8> %i8 to <16 x i32>
1342 %zl2_8_32 = zext <16 x i8> %i8 to <16 x i32>
1343 %azl_8_32 = sub <16 x i32> %zl1_8_32, %zl2_8_32
1345 %sw_8_64 = sext <16 x i8> %i8 to <16 x i64>
1346 %asw_8_64 = sub <16 x i64> %i64, %sw_8_64
1347 %sl1_8_64 = sext <16 x i8> %i8 to <16 x i64>
1348 %sl2_8_64 = sext <16 x i8> %i8 to <16 x i64>
1349 %asl_8_64 = sub <16 x i64> %sl1_8_64, %sl2_8_64
1351 %zw_8_64 = zext <16 x i8> %i8 to <16 x i64>
1352 %azw_8_64 = sub <16 x i64> %i64, %zw_8_64
1353 %zl1_8_64 = zext <16 x i8> %i8 to <16 x i64>
1354 %zl2_8_64 = zext <16 x i8> %i8 to <16 x i64>
1355 %azl_8_64 = sub <16 x i64> %zl1_8_64, %zl2_8_64
1357 %sw_16_32 = sext <16 x i16> %i16 to <16 x i32>
1358 %asw_16_32 = sub <16 x i32> %i32, %sw_16_32
1359 %sl1_16_32 = sext <16 x i16> %i16 to <16 x i32>
1360 %sl2_16_32 = sext <16 x i16> %i16 to <16 x i32>
1361 %asl_16_32 = sub <16 x i32> %sl1_16_32, %sl2_16_32
1363 %zw_16_32 = zext <16 x i16> %i16 to <16 x i32>
1364 %azw_16_32 = sub <16 x i32> %i32, %zw_16_32
1365 %zl1_16_32 = zext <16 x i16> %i16 to <16 x i32>
1366 %zl2_16_32 = zext <16 x i16> %i16 to <16 x i32>
1367 %azl_16_32 = sub <16 x i32> %zl1_16_32, %zl2_16_32
1369 %sw_16_64 = sext <16 x i16> %i16 to <16 x i64>
1370 %asw_16_64 = sub <16 x i64> %i64, %sw_16_64
1371 %sl1_16_64 = sext <16 x i16> %i16 to <16 x i64>
1372 %sl2_16_64 = sext <16 x i16> %i16 to <16 x i64>
1373 %asl_16_64 = sub <16 x i64> %sl1_16_64, %sl2_16_64
1375 %zw_16_64 = zext <16 x i16> %i16 to <16 x i64>
1376 %azw_16_64 = sub <16 x i64> %i64, %zw_16_64
1377 %zl1_16_64 = zext <16 x i16> %i16 to <16 x i64>
1378 %zl2_16_64 = zext <16 x i16> %i16 to <16 x i64>
1379 %azl_16_64 = sub <16 x i64> %zl1_16_64, %zl2_16_64
1381 %sw_32_64 = sext <16 x i32> %i32 to <16 x i64>
1382 %asw_32_64 = sub <16 x i64> %i64, %sw_32_64
1383 %sl1_32_64 = sext <16 x i32> %i32 to <16 x i64>
1384 %sl2_32_64 = sext <16 x i32> %i32 to <16 x i64>
1385 %asl_32_64 = sub <16 x i64> %sl1_32_64, %sl2_32_64
1387 %zw_32_64 = zext <16 x i32> %i32 to <16 x i64>
1388 %azw_32_64 = sub <16 x i64> %i64, %zw_32_64
1389 %zl1_32_64 = zext <16 x i32> %i32 to <16 x i64>
1390 %zl2_32_64 = zext <16 x i32> %i32 to <16 x i64>
1391 %azl_32_64 = sub <16 x i64> %zl1_32_64, %zl2_32_64
1396 define void @extmulv1(i8 %i8, i16 %i16, i32 %i32, i64 %i64) {
1397 ; CHECK-LABEL: 'extmulv1'
1398 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_16 = sext i8 %i8 to i16
1399 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_16 = mul i16 %i16, %sw_8_16
1400 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_16 = sext i8 %i8 to i16
1401 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_16 = sext i8 %i8 to i16
1402 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = mul i16 %sl1_8_16, %sl2_8_16
1403 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_16 = zext i8 %i8 to i16
1404 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_16 = mul i16 %i16, %zw_8_16
1405 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_16 = zext i8 %i8 to i16
1406 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_16 = zext i8 %i8 to i16
1407 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = mul i16 %zl1_8_16, %zl2_8_16
1408 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_32 = sext i8 %i8 to i32
1409 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_32 = mul i32 %i32, %sw_8_32
1410 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_32 = sext i8 %i8 to i32
1411 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_32 = sext i8 %i8 to i32
1412 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_32 = mul i32 %sl1_8_32, %sl2_8_32
1413 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_32 = zext i8 %i8 to i32
1414 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_32 = mul i32 %i32, %zw_8_32
1415 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_32 = zext i8 %i8 to i32
1416 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_32 = zext i8 %i8 to i32
1417 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_32 = mul i32 %zl1_8_32, %zl2_8_32
1418 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_64 = sext i8 %i8 to i64
1419 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_64 = mul i64 %i64, %sw_8_64
1420 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_64 = sext i8 %i8 to i64
1421 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_64 = sext i8 %i8 to i64
1422 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_64 = mul i64 %sl1_8_64, %sl2_8_64
1423 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_8_64 = zext i8 %i8 to i64
1424 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_64 = mul i64 %i64, %zw_8_64
1425 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_8_64 = zext i8 %i8 to i64
1426 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_8_64 = zext i8 %i8 to i64
1427 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_64 = mul i64 %zl1_8_64, %zl2_8_64
1428 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_32 = sext i16 %i16 to i32
1429 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_32 = mul i32 %i32, %sw_16_32
1430 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_16_32 = sext i16 %i16 to i32
1431 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_16_32 = sext i16 %i16 to i32
1432 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_32 = mul i32 %sl1_16_32, %sl2_16_32
1433 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_16_32 = zext i16 %i16 to i32
1434 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_32 = mul i32 %i32, %zw_16_32
1435 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_16_32 = zext i16 %i16 to i32
1436 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_16_32 = zext i16 %i16 to i32
1437 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_32 = mul i32 %zl1_16_32, %zl2_16_32
1438 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_64 = sext i16 %i16 to i64
1439 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_64 = mul i64 %i64, %sw_16_64
1440 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_16_64 = sext i16 %i16 to i64
1441 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_16_64 = sext i16 %i16 to i64
1442 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_64 = mul i64 %sl1_16_64, %sl2_16_64
1443 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_16_64 = zext i16 %i16 to i64
1444 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_64 = mul i64 %i64, %zw_16_64
1445 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_16_64 = zext i16 %i16 to i64
1446 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_16_64 = zext i16 %i16 to i64
1447 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_64 = mul i64 %zl1_16_64, %zl2_16_64
1448 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_32_64 = sext i32 %i32 to i64
1449 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_32_64 = mul i64 %i64, %sw_32_64
1450 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_32_64 = sext i32 %i32 to i64
1451 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_32_64 = sext i32 %i32 to i64
1452 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_32_64 = mul i64 %sl1_32_64, %sl2_32_64
1453 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zw_32_64 = zext i32 %i32 to i64
1454 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_32_64 = mul i64 %i64, %zw_32_64
1455 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext i32 %i32 to i64
1456 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext i32 %i32 to i64
1457 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_32_64 = mul i64 %zl1_32_64, %zl2_32_64
1458 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
1460 %sw_8_16 = sext i8 %i8 to i16
1461 %asw_8_16 = mul i16 %i16, %sw_8_16
1462 %sl1_8_16 = sext i8 %i8 to i16
1463 %sl2_8_16 = sext i8 %i8 to i16
1464 %asl_8_16 = mul i16 %sl1_8_16, %sl2_8_16
1466 %zw_8_16 = zext i8 %i8 to i16
1467 %azw_8_16 = mul i16 %i16, %zw_8_16
1468 %zl1_8_16 = zext i8 %i8 to i16
1469 %zl2_8_16 = zext i8 %i8 to i16
1470 %azl_8_16 = mul i16 %zl1_8_16, %zl2_8_16
1472 %sw_8_32 = sext i8 %i8 to i32
1473 %asw_8_32 = mul i32 %i32, %sw_8_32
1474 %sl1_8_32 = sext i8 %i8 to i32
1475 %sl2_8_32 = sext i8 %i8 to i32
1476 %asl_8_32 = mul i32 %sl1_8_32, %sl2_8_32
1478 %zw_8_32 = zext i8 %i8 to i32
1479 %azw_8_32 = mul i32 %i32, %zw_8_32
1480 %zl1_8_32 = zext i8 %i8 to i32
1481 %zl2_8_32 = zext i8 %i8 to i32
1482 %azl_8_32 = mul i32 %zl1_8_32, %zl2_8_32
1484 %sw_8_64 = sext i8 %i8 to i64
1485 %asw_8_64 = mul i64 %i64, %sw_8_64
1486 %sl1_8_64 = sext i8 %i8 to i64
1487 %sl2_8_64 = sext i8 %i8 to i64
1488 %asl_8_64 = mul i64 %sl1_8_64, %sl2_8_64
1490 %zw_8_64 = zext i8 %i8 to i64
1491 %azw_8_64 = mul i64 %i64, %zw_8_64
1492 %zl1_8_64 = zext i8 %i8 to i64
1493 %zl2_8_64 = zext i8 %i8 to i64
1494 %azl_8_64 = mul i64 %zl1_8_64, %zl2_8_64
1496 %sw_16_32 = sext i16 %i16 to i32
1497 %asw_16_32 = mul i32 %i32, %sw_16_32
1498 %sl1_16_32 = sext i16 %i16 to i32
1499 %sl2_16_32 = sext i16 %i16 to i32
1500 %asl_16_32 = mul i32 %sl1_16_32, %sl2_16_32
1502 %zw_16_32 = zext i16 %i16 to i32
1503 %azw_16_32 = mul i32 %i32, %zw_16_32
1504 %zl1_16_32 = zext i16 %i16 to i32
1505 %zl2_16_32 = zext i16 %i16 to i32
1506 %azl_16_32 = mul i32 %zl1_16_32, %zl2_16_32
1508 %sw_16_64 = sext i16 %i16 to i64
1509 %asw_16_64 = mul i64 %i64, %sw_16_64
1510 %sl1_16_64 = sext i16 %i16 to i64
1511 %sl2_16_64 = sext i16 %i16 to i64
1512 %asl_16_64 = mul i64 %sl1_16_64, %sl2_16_64
1514 %zw_16_64 = zext i16 %i16 to i64
1515 %azw_16_64 = mul i64 %i64, %zw_16_64
1516 %zl1_16_64 = zext i16 %i16 to i64
1517 %zl2_16_64 = zext i16 %i16 to i64
1518 %azl_16_64 = mul i64 %zl1_16_64, %zl2_16_64
1520 %sw_32_64 = sext i32 %i32 to i64
1521 %asw_32_64 = mul i64 %i64, %sw_32_64
1522 %sl1_32_64 = sext i32 %i32 to i64
1523 %sl2_32_64 = sext i32 %i32 to i64
1524 %asl_32_64 = mul i64 %sl1_32_64, %sl2_32_64
1526 %zw_32_64 = zext i32 %i32 to i64
1527 %azw_32_64 = mul i64 %i64, %zw_32_64
1528 %zl1_32_64 = zext i32 %i32 to i64
1529 %zl2_32_64 = zext i32 %i32 to i64
1530 %azl_32_64 = mul i64 %zl1_32_64, %zl2_32_64
1535 define void @extmulv2(<2 x i8> %i8, <2 x i16> %i16, <2 x i32> %i32, <2 x i64> %i64) {
1536 ; CHECK-LABEL: 'extmulv2'
1537 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_16 = sext <2 x i8> %i8 to <2 x i16>
1538 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_16 = mul <2 x i16> %i16, %sw_8_16
1539 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_16 = sext <2 x i8> %i8 to <2 x i16>
1540 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_16 = sext <2 x i8> %i8 to <2 x i16>
1541 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = mul <2 x i16> %sl1_8_16, %sl2_8_16
1542 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_16 = zext <2 x i8> %i8 to <2 x i16>
1543 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_16 = mul <2 x i16> %i16, %zw_8_16
1544 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_16 = zext <2 x i8> %i8 to <2 x i16>
1545 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_16 = zext <2 x i8> %i8 to <2 x i16>
1546 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = mul <2 x i16> %zl1_8_16, %zl2_8_16
1547 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_32 = sext <2 x i8> %i8 to <2 x i32>
1548 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_32 = mul <2 x i32> %i32, %sw_8_32
1549 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_32 = sext <2 x i8> %i8 to <2 x i32>
1550 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_32 = sext <2 x i8> %i8 to <2 x i32>
1551 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_32 = mul <2 x i32> %sl1_8_32, %sl2_8_32
1552 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_32 = zext <2 x i8> %i8 to <2 x i32>
1553 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_32 = mul <2 x i32> %i32, %zw_8_32
1554 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_32 = zext <2 x i8> %i8 to <2 x i32>
1555 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_32 = zext <2 x i8> %i8 to <2 x i32>
1556 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_32 = mul <2 x i32> %zl1_8_32, %zl2_8_32
1557 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_64 = sext <2 x i8> %i8 to <2 x i64>
1558 ; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %asw_8_64 = mul <2 x i64> %i64, %sw_8_64
1559 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_64 = sext <2 x i8> %i8 to <2 x i64>
1560 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_64 = sext <2 x i8> %i8 to <2 x i64>
1561 ; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %asl_8_64 = mul <2 x i64> %sl1_8_64, %sl2_8_64
1562 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_64 = zext <2 x i8> %i8 to <2 x i64>
1563 ; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %azw_8_64 = mul <2 x i64> %i64, %zw_8_64
1564 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_64 = zext <2 x i8> %i8 to <2 x i64>
1565 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_64 = zext <2 x i8> %i8 to <2 x i64>
1566 ; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %azl_8_64 = mul <2 x i64> %zl1_8_64, %zl2_8_64
1567 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_32 = sext <2 x i16> %i16 to <2 x i32>
1568 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_32 = mul <2 x i32> %i32, %sw_16_32
1569 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_16_32 = sext <2 x i16> %i16 to <2 x i32>
1570 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_16_32 = sext <2 x i16> %i16 to <2 x i32>
1571 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_32 = mul <2 x i32> %sl1_16_32, %sl2_16_32
1572 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_16_32 = zext <2 x i16> %i16 to <2 x i32>
1573 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_32 = mul <2 x i32> %i32, %zw_16_32
1574 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_16_32 = zext <2 x i16> %i16 to <2 x i32>
1575 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_16_32 = zext <2 x i16> %i16 to <2 x i32>
1576 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_32 = mul <2 x i32> %zl1_16_32, %zl2_16_32
1577 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_64 = sext <2 x i16> %i16 to <2 x i64>
1578 ; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %asw_16_64 = mul <2 x i64> %i64, %sw_16_64
1579 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_16_64 = sext <2 x i16> %i16 to <2 x i64>
1580 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_16_64 = sext <2 x i16> %i16 to <2 x i64>
1581 ; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %asl_16_64 = mul <2 x i64> %sl1_16_64, %sl2_16_64
1582 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_16_64 = zext <2 x i16> %i16 to <2 x i64>
1583 ; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %azw_16_64 = mul <2 x i64> %i64, %zw_16_64
1584 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_16_64 = zext <2 x i16> %i16 to <2 x i64>
1585 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_16_64 = zext <2 x i16> %i16 to <2 x i64>
1586 ; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %azl_16_64 = mul <2 x i64> %zl1_16_64, %zl2_16_64
1587 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_32_64 = sext <2 x i32> %i32 to <2 x i64>
1588 ; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %asw_32_64 = mul <2 x i64> %i64, %sw_32_64
1589 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_32_64 = sext <2 x i32> %i32 to <2 x i64>
1590 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_32_64 = sext <2 x i32> %i32 to <2 x i64>
1591 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_32_64 = mul <2 x i64> %sl1_32_64, %sl2_32_64
1592 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_32_64 = zext <2 x i32> %i32 to <2 x i64>
1593 ; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %azw_32_64 = mul <2 x i64> %i64, %zw_32_64
1594 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext <2 x i32> %i32 to <2 x i64>
1595 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext <2 x i32> %i32 to <2 x i64>
1596 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_32_64 = mul <2 x i64> %zl1_32_64, %zl2_32_64
1597 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
1599 %sw_8_16 = sext <2 x i8> %i8 to <2 x i16>
1600 %asw_8_16 = mul <2 x i16> %i16, %sw_8_16
1601 %sl1_8_16 = sext <2 x i8> %i8 to <2 x i16>
1602 %sl2_8_16 = sext <2 x i8> %i8 to <2 x i16>
1603 %asl_8_16 = mul <2 x i16> %sl1_8_16, %sl2_8_16
1605 %zw_8_16 = zext <2 x i8> %i8 to <2 x i16>
1606 %azw_8_16 = mul <2 x i16> %i16, %zw_8_16
1607 %zl1_8_16 = zext <2 x i8> %i8 to <2 x i16>
1608 %zl2_8_16 = zext <2 x i8> %i8 to <2 x i16>
1609 %azl_8_16 = mul <2 x i16> %zl1_8_16, %zl2_8_16
1611 %sw_8_32 = sext <2 x i8> %i8 to <2 x i32>
1612 %asw_8_32 = mul <2 x i32> %i32, %sw_8_32
1613 %sl1_8_32 = sext <2 x i8> %i8 to <2 x i32>
1614 %sl2_8_32 = sext <2 x i8> %i8 to <2 x i32>
1615 %asl_8_32 = mul <2 x i32> %sl1_8_32, %sl2_8_32
1617 %zw_8_32 = zext <2 x i8> %i8 to <2 x i32>
1618 %azw_8_32 = mul <2 x i32> %i32, %zw_8_32
1619 %zl1_8_32 = zext <2 x i8> %i8 to <2 x i32>
1620 %zl2_8_32 = zext <2 x i8> %i8 to <2 x i32>
1621 %azl_8_32 = mul <2 x i32> %zl1_8_32, %zl2_8_32
1623 %sw_8_64 = sext <2 x i8> %i8 to <2 x i64>
1624 %asw_8_64 = mul <2 x i64> %i64, %sw_8_64
1625 %sl1_8_64 = sext <2 x i8> %i8 to <2 x i64>
1626 %sl2_8_64 = sext <2 x i8> %i8 to <2 x i64>
1627 %asl_8_64 = mul <2 x i64> %sl1_8_64, %sl2_8_64
1629 %zw_8_64 = zext <2 x i8> %i8 to <2 x i64>
1630 %azw_8_64 = mul <2 x i64> %i64, %zw_8_64
1631 %zl1_8_64 = zext <2 x i8> %i8 to <2 x i64>
1632 %zl2_8_64 = zext <2 x i8> %i8 to <2 x i64>
1633 %azl_8_64 = mul <2 x i64> %zl1_8_64, %zl2_8_64
1635 %sw_16_32 = sext <2 x i16> %i16 to <2 x i32>
1636 %asw_16_32 = mul <2 x i32> %i32, %sw_16_32
1637 %sl1_16_32 = sext <2 x i16> %i16 to <2 x i32>
1638 %sl2_16_32 = sext <2 x i16> %i16 to <2 x i32>
1639 %asl_16_32 = mul <2 x i32> %sl1_16_32, %sl2_16_32
1641 %zw_16_32 = zext <2 x i16> %i16 to <2 x i32>
1642 %azw_16_32 = mul <2 x i32> %i32, %zw_16_32
1643 %zl1_16_32 = zext <2 x i16> %i16 to <2 x i32>
1644 %zl2_16_32 = zext <2 x i16> %i16 to <2 x i32>
1645 %azl_16_32 = mul <2 x i32> %zl1_16_32, %zl2_16_32
1647 %sw_16_64 = sext <2 x i16> %i16 to <2 x i64>
1648 %asw_16_64 = mul <2 x i64> %i64, %sw_16_64
1649 %sl1_16_64 = sext <2 x i16> %i16 to <2 x i64>
1650 %sl2_16_64 = sext <2 x i16> %i16 to <2 x i64>
1651 %asl_16_64 = mul <2 x i64> %sl1_16_64, %sl2_16_64
1653 %zw_16_64 = zext <2 x i16> %i16 to <2 x i64>
1654 %azw_16_64 = mul <2 x i64> %i64, %zw_16_64
1655 %zl1_16_64 = zext <2 x i16> %i16 to <2 x i64>
1656 %zl2_16_64 = zext <2 x i16> %i16 to <2 x i64>
1657 %azl_16_64 = mul <2 x i64> %zl1_16_64, %zl2_16_64
1659 %sw_32_64 = sext <2 x i32> %i32 to <2 x i64>
1660 %asw_32_64 = mul <2 x i64> %i64, %sw_32_64
1661 %sl1_32_64 = sext <2 x i32> %i32 to <2 x i64>
1662 %sl2_32_64 = sext <2 x i32> %i32 to <2 x i64>
1663 %asl_32_64 = mul <2 x i64> %sl1_32_64, %sl2_32_64
1665 %zw_32_64 = zext <2 x i32> %i32 to <2 x i64>
1666 %azw_32_64 = mul <2 x i64> %i64, %zw_32_64
1667 %zl1_32_64 = zext <2 x i32> %i32 to <2 x i64>
1668 %zl2_32_64 = zext <2 x i32> %i32 to <2 x i64>
1669 %azl_32_64 = mul <2 x i64> %zl1_32_64, %zl2_32_64
1674 define void @extmulv4(<4 x i8> %i8, <4 x i16> %i16, <4 x i32> %i32, <4 x i64> %i64) {
1675 ; CHECK-LABEL: 'extmulv4'
1676 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_16 = sext <4 x i8> %i8 to <4 x i16>
1677 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_16 = mul <4 x i16> %i16, %sw_8_16
1678 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_16 = sext <4 x i8> %i8 to <4 x i16>
1679 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_16 = sext <4 x i8> %i8 to <4 x i16>
1680 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = mul <4 x i16> %sl1_8_16, %sl2_8_16
1681 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_16 = zext <4 x i8> %i8 to <4 x i16>
1682 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_16 = mul <4 x i16> %i16, %zw_8_16
1683 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_16 = zext <4 x i8> %i8 to <4 x i16>
1684 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_16 = zext <4 x i8> %i8 to <4 x i16>
1685 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = mul <4 x i16> %zl1_8_16, %zl2_8_16
1686 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_32 = sext <4 x i8> %i8 to <4 x i32>
1687 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_32 = mul <4 x i32> %i32, %sw_8_32
1688 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_32 = sext <4 x i8> %i8 to <4 x i32>
1689 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl2_8_32 = sext <4 x i8> %i8 to <4 x i32>
1690 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_32 = mul <4 x i32> %sl1_8_32, %sl2_8_32
1691 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_32 = zext <4 x i8> %i8 to <4 x i32>
1692 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_32 = mul <4 x i32> %i32, %zw_8_32
1693 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl1_8_32 = zext <4 x i8> %i8 to <4 x i32>
1694 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zl2_8_32 = zext <4 x i8> %i8 to <4 x i32>
1695 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_32 = mul <4 x i32> %zl1_8_32, %zl2_8_32
1696 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sw_8_64 = sext <4 x i8> %i8 to <4 x i64>
1697 ; CHECK-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %asw_8_64 = mul <4 x i64> %i64, %sw_8_64
1698 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl1_8_64 = sext <4 x i8> %i8 to <4 x i64>
1699 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl2_8_64 = sext <4 x i8> %i8 to <4 x i64>
1700 ; CHECK-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %asl_8_64 = mul <4 x i64> %sl1_8_64, %sl2_8_64
1701 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zw_8_64 = zext <4 x i8> %i8 to <4 x i64>
1702 ; CHECK-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %azw_8_64 = mul <4 x i64> %i64, %zw_8_64
1703 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl1_8_64 = zext <4 x i8> %i8 to <4 x i64>
1704 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl2_8_64 = zext <4 x i8> %i8 to <4 x i64>
1705 ; CHECK-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %azl_8_64 = mul <4 x i64> %zl1_8_64, %zl2_8_64
1706 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_16_32 = sext <4 x i16> %i16 to <4 x i32>
1707 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_16_32 = mul <4 x i32> %i32, %sw_16_32
1708 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_16_32 = sext <4 x i16> %i16 to <4 x i32>
1709 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_16_32 = sext <4 x i16> %i16 to <4 x i32>
1710 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_16_32 = mul <4 x i32> %sl1_16_32, %sl2_16_32
1711 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_16_32 = zext <4 x i16> %i16 to <4 x i32>
1712 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_16_32 = mul <4 x i32> %i32, %zw_16_32
1713 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_16_32 = zext <4 x i16> %i16 to <4 x i32>
1714 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_16_32 = zext <4 x i16> %i16 to <4 x i32>
1715 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_16_32 = mul <4 x i32> %zl1_16_32, %zl2_16_32
1716 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sw_16_64 = sext <4 x i16> %i16 to <4 x i64>
1717 ; CHECK-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %asw_16_64 = mul <4 x i64> %i64, %sw_16_64
1718 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl1_16_64 = sext <4 x i16> %i16 to <4 x i64>
1719 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl2_16_64 = sext <4 x i16> %i16 to <4 x i64>
1720 ; CHECK-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %asl_16_64 = mul <4 x i64> %sl1_16_64, %sl2_16_64
1721 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zw_16_64 = zext <4 x i16> %i16 to <4 x i64>
1722 ; CHECK-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %azw_16_64 = mul <4 x i64> %i64, %zw_16_64
1723 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl1_16_64 = zext <4 x i16> %i16 to <4 x i64>
1724 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl2_16_64 = zext <4 x i16> %i16 to <4 x i64>
1725 ; CHECK-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %azl_16_64 = mul <4 x i64> %zl1_16_64, %zl2_16_64
1726 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %sw_32_64 = sext <4 x i32> %i32 to <4 x i64>
1727 ; CHECK-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %asw_32_64 = mul <4 x i64> %i64, %sw_32_64
1728 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_32_64 = sext <4 x i32> %i32 to <4 x i64>
1729 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_32_64 = sext <4 x i32> %i32 to <4 x i64>
1730 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_32_64 = mul <4 x i64> %sl1_32_64, %sl2_32_64
1731 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %zw_32_64 = zext <4 x i32> %i32 to <4 x i64>
1732 ; CHECK-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %azw_32_64 = mul <4 x i64> %i64, %zw_32_64
1733 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext <4 x i32> %i32 to <4 x i64>
1734 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext <4 x i32> %i32 to <4 x i64>
1735 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_32_64 = mul <4 x i64> %zl1_32_64, %zl2_32_64
1736 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
1738 %sw_8_16 = sext <4 x i8> %i8 to <4 x i16>
1739 %asw_8_16 = mul <4 x i16> %i16, %sw_8_16
1740 %sl1_8_16 = sext <4 x i8> %i8 to <4 x i16>
1741 %sl2_8_16 = sext <4 x i8> %i8 to <4 x i16>
1742 %asl_8_16 = mul <4 x i16> %sl1_8_16, %sl2_8_16
1744 %zw_8_16 = zext <4 x i8> %i8 to <4 x i16>
1745 %azw_8_16 = mul <4 x i16> %i16, %zw_8_16
1746 %zl1_8_16 = zext <4 x i8> %i8 to <4 x i16>
1747 %zl2_8_16 = zext <4 x i8> %i8 to <4 x i16>
1748 %azl_8_16 = mul <4 x i16> %zl1_8_16, %zl2_8_16
1750 %sw_8_32 = sext <4 x i8> %i8 to <4 x i32>
1751 %asw_8_32 = mul <4 x i32> %i32, %sw_8_32
1752 %sl1_8_32 = sext <4 x i8> %i8 to <4 x i32>
1753 %sl2_8_32 = sext <4 x i8> %i8 to <4 x i32>
1754 %asl_8_32 = mul <4 x i32> %sl1_8_32, %sl2_8_32
1756 %zw_8_32 = zext <4 x i8> %i8 to <4 x i32>
1757 %azw_8_32 = mul <4 x i32> %i32, %zw_8_32
1758 %zl1_8_32 = zext <4 x i8> %i8 to <4 x i32>
1759 %zl2_8_32 = zext <4 x i8> %i8 to <4 x i32>
1760 %azl_8_32 = mul <4 x i32> %zl1_8_32, %zl2_8_32
1762 %sw_8_64 = sext <4 x i8> %i8 to <4 x i64>
1763 %asw_8_64 = mul <4 x i64> %i64, %sw_8_64
1764 %sl1_8_64 = sext <4 x i8> %i8 to <4 x i64>
1765 %sl2_8_64 = sext <4 x i8> %i8 to <4 x i64>
1766 %asl_8_64 = mul <4 x i64> %sl1_8_64, %sl2_8_64
1768 %zw_8_64 = zext <4 x i8> %i8 to <4 x i64>
1769 %azw_8_64 = mul <4 x i64> %i64, %zw_8_64
1770 %zl1_8_64 = zext <4 x i8> %i8 to <4 x i64>
1771 %zl2_8_64 = zext <4 x i8> %i8 to <4 x i64>
1772 %azl_8_64 = mul <4 x i64> %zl1_8_64, %zl2_8_64
1774 %sw_16_32 = sext <4 x i16> %i16 to <4 x i32>
1775 %asw_16_32 = mul <4 x i32> %i32, %sw_16_32
1776 %sl1_16_32 = sext <4 x i16> %i16 to <4 x i32>
1777 %sl2_16_32 = sext <4 x i16> %i16 to <4 x i32>
1778 %asl_16_32 = mul <4 x i32> %sl1_16_32, %sl2_16_32
1780 %zw_16_32 = zext <4 x i16> %i16 to <4 x i32>
1781 %azw_16_32 = mul <4 x i32> %i32, %zw_16_32
1782 %zl1_16_32 = zext <4 x i16> %i16 to <4 x i32>
1783 %zl2_16_32 = zext <4 x i16> %i16 to <4 x i32>
1784 %azl_16_32 = mul <4 x i32> %zl1_16_32, %zl2_16_32
1786 %sw_16_64 = sext <4 x i16> %i16 to <4 x i64>
1787 %asw_16_64 = mul <4 x i64> %i64, %sw_16_64
1788 %sl1_16_64 = sext <4 x i16> %i16 to <4 x i64>
1789 %sl2_16_64 = sext <4 x i16> %i16 to <4 x i64>
1790 %asl_16_64 = mul <4 x i64> %sl1_16_64, %sl2_16_64
1792 %zw_16_64 = zext <4 x i16> %i16 to <4 x i64>
1793 %azw_16_64 = mul <4 x i64> %i64, %zw_16_64
1794 %zl1_16_64 = zext <4 x i16> %i16 to <4 x i64>
1795 %zl2_16_64 = zext <4 x i16> %i16 to <4 x i64>
1796 %azl_16_64 = mul <4 x i64> %zl1_16_64, %zl2_16_64
1798 %sw_32_64 = sext <4 x i32> %i32 to <4 x i64>
1799 %asw_32_64 = mul <4 x i64> %i64, %sw_32_64
1800 %sl1_32_64 = sext <4 x i32> %i32 to <4 x i64>
1801 %sl2_32_64 = sext <4 x i32> %i32 to <4 x i64>
1802 %asl_32_64 = mul <4 x i64> %sl1_32_64, %sl2_32_64
1804 %zw_32_64 = zext <4 x i32> %i32 to <4 x i64>
1805 %azw_32_64 = mul <4 x i64> %i64, %zw_32_64
1806 %zl1_32_64 = zext <4 x i32> %i32 to <4 x i64>
1807 %zl2_32_64 = zext <4 x i32> %i32 to <4 x i64>
1808 %azl_32_64 = mul <4 x i64> %zl1_32_64, %zl2_32_64
1813 define void @extmulv8(<8 x i8> %i8, <8 x i16> %i16, <8 x i32> %i32, <8 x i64> %i64) {
1814 ; CHECK-LABEL: 'extmulv8'
1815 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sw_8_16 = sext <8 x i8> %i8 to <8 x i16>
1816 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asw_8_16 = mul <8 x i16> %i16, %sw_8_16
1817 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>
1818 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_8_16 = sext <8 x i8> %i8 to <8 x i16>
1819 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = mul <8 x i16> %sl1_8_16, %sl2_8_16
1820 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zw_8_16 = zext <8 x i8> %i8 to <8 x i16>
1821 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azw_8_16 = mul <8 x i16> %i16, %zw_8_16
1822 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>
1823 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_8_16 = zext <8 x i8> %i8 to <8 x i16>
1824 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = mul <8 x i16> %zl1_8_16, %zl2_8_16
1825 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sw_8_32 = sext <8 x i8> %i8 to <8 x i32>
1826 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_8_32 = mul <8 x i32> %i32, %sw_8_32
1827 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl1_8_32 = sext <8 x i8> %i8 to <8 x i32>
1828 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %sl2_8_32 = sext <8 x i8> %i8 to <8 x i32>
1829 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_8_32 = mul <8 x i32> %sl1_8_32, %sl2_8_32
1830 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zw_8_32 = zext <8 x i8> %i8 to <8 x i32>
1831 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_8_32 = mul <8 x i32> %i32, %zw_8_32
1832 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl1_8_32 = zext <8 x i8> %i8 to <8 x i32>
1833 ; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %zl2_8_32 = zext <8 x i8> %i8 to <8 x i32>
1834 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_8_32 = mul <8 x i32> %zl1_8_32, %zl2_8_32
1835 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %sw_8_64 = sext <8 x i8> %i8 to <8 x i64>
1836 ; CHECK-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %asw_8_64 = mul <8 x i64> %i64, %sw_8_64
1837 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %sl1_8_64 = sext <8 x i8> %i8 to <8 x i64>
1838 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %sl2_8_64 = sext <8 x i8> %i8 to <8 x i64>
1839 ; CHECK-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %asl_8_64 = mul <8 x i64> %sl1_8_64, %sl2_8_64
1840 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %zw_8_64 = zext <8 x i8> %i8 to <8 x i64>
1841 ; CHECK-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %azw_8_64 = mul <8 x i64> %i64, %zw_8_64
1842 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %zl1_8_64 = zext <8 x i8> %i8 to <8 x i64>
1843 ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %zl2_8_64 = zext <8 x i8> %i8 to <8 x i64>
1844 ; CHECK-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %azl_8_64 = mul <8 x i64> %zl1_8_64, %zl2_8_64
1845 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %sw_16_32 = sext <8 x i16> %i16 to <8 x i32>
1846 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_16_32 = mul <8 x i32> %i32, %sw_16_32
1847 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_16_32 = sext <8 x i16> %i16 to <8 x i32>
1848 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_16_32 = sext <8 x i16> %i16 to <8 x i32>
1849 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_16_32 = mul <8 x i32> %sl1_16_32, %sl2_16_32
1850 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %zw_16_32 = zext <8 x i16> %i16 to <8 x i32>
1851 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_16_32 = mul <8 x i32> %i32, %zw_16_32
1852 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_16_32 = zext <8 x i16> %i16 to <8 x i32>
1853 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_16_32 = zext <8 x i16> %i16 to <8 x i32>
1854 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_16_32 = mul <8 x i32> %zl1_16_32, %zl2_16_32
1855 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sw_16_64 = sext <8 x i16> %i16 to <8 x i64>
1856 ; CHECK-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %asw_16_64 = mul <8 x i64> %i64, %sw_16_64
1857 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sl1_16_64 = sext <8 x i16> %i16 to <8 x i64>
1858 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sl2_16_64 = sext <8 x i16> %i16 to <8 x i64>
1859 ; CHECK-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %asl_16_64 = mul <8 x i64> %sl1_16_64, %sl2_16_64
1860 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zw_16_64 = zext <8 x i16> %i16 to <8 x i64>
1861 ; CHECK-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %azw_16_64 = mul <8 x i64> %i64, %zw_16_64
1862 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zl1_16_64 = zext <8 x i16> %i16 to <8 x i64>
1863 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zl2_16_64 = zext <8 x i16> %i16 to <8 x i64>
1864 ; CHECK-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %azl_16_64 = mul <8 x i64> %zl1_16_64, %zl2_16_64
1865 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %sw_32_64 = sext <8 x i32> %i32 to <8 x i64>
1866 ; CHECK-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %asw_32_64 = mul <8 x i64> %i64, %sw_32_64
1867 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_32_64 = sext <8 x i32> %i32 to <8 x i64>
1868 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_32_64 = sext <8 x i32> %i32 to <8 x i64>
1869 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_32_64 = mul <8 x i64> %sl1_32_64, %sl2_32_64
1870 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %zw_32_64 = zext <8 x i32> %i32 to <8 x i64>
1871 ; CHECK-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %azw_32_64 = mul <8 x i64> %i64, %zw_32_64
1872 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext <8 x i32> %i32 to <8 x i64>
1873 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext <8 x i32> %i32 to <8 x i64>
1874 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_32_64 = mul <8 x i64> %zl1_32_64, %zl2_32_64
1875 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
1877 %sw_8_16 = sext <8 x i8> %i8 to <8 x i16>
1878 %asw_8_16 = mul <8 x i16> %i16, %sw_8_16
1879 %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>
1880 %sl2_8_16 = sext <8 x i8> %i8 to <8 x i16>
1881 %asl_8_16 = mul <8 x i16> %sl1_8_16, %sl2_8_16
1883 %zw_8_16 = zext <8 x i8> %i8 to <8 x i16>
1884 %azw_8_16 = mul <8 x i16> %i16, %zw_8_16
1885 %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>
1886 %zl2_8_16 = zext <8 x i8> %i8 to <8 x i16>
1887 %azl_8_16 = mul <8 x i16> %zl1_8_16, %zl2_8_16
1889 %sw_8_32 = sext <8 x i8> %i8 to <8 x i32>
1890 %asw_8_32 = mul <8 x i32> %i32, %sw_8_32
1891 %sl1_8_32 = sext <8 x i8> %i8 to <8 x i32>
1892 %sl2_8_32 = sext <8 x i8> %i8 to <8 x i32>
1893 %asl_8_32 = mul <8 x i32> %sl1_8_32, %sl2_8_32
1895 %zw_8_32 = zext <8 x i8> %i8 to <8 x i32>
1896 %azw_8_32 = mul <8 x i32> %i32, %zw_8_32
1897 %zl1_8_32 = zext <8 x i8> %i8 to <8 x i32>
1898 %zl2_8_32 = zext <8 x i8> %i8 to <8 x i32>
1899 %azl_8_32 = mul <8 x i32> %zl1_8_32, %zl2_8_32
1901 %sw_8_64 = sext <8 x i8> %i8 to <8 x i64>
1902 %asw_8_64 = mul <8 x i64> %i64, %sw_8_64
1903 %sl1_8_64 = sext <8 x i8> %i8 to <8 x i64>
1904 %sl2_8_64 = sext <8 x i8> %i8 to <8 x i64>
1905 %asl_8_64 = mul <8 x i64> %sl1_8_64, %sl2_8_64
1907 %zw_8_64 = zext <8 x i8> %i8 to <8 x i64>
1908 %azw_8_64 = mul <8 x i64> %i64, %zw_8_64
1909 %zl1_8_64 = zext <8 x i8> %i8 to <8 x i64>
1910 %zl2_8_64 = zext <8 x i8> %i8 to <8 x i64>
1911 %azl_8_64 = mul <8 x i64> %zl1_8_64, %zl2_8_64
1913 %sw_16_32 = sext <8 x i16> %i16 to <8 x i32>
1914 %asw_16_32 = mul <8 x i32> %i32, %sw_16_32
1915 %sl1_16_32 = sext <8 x i16> %i16 to <8 x i32>
1916 %sl2_16_32 = sext <8 x i16> %i16 to <8 x i32>
1917 %asl_16_32 = mul <8 x i32> %sl1_16_32, %sl2_16_32
1919 %zw_16_32 = zext <8 x i16> %i16 to <8 x i32>
1920 %azw_16_32 = mul <8 x i32> %i32, %zw_16_32
1921 %zl1_16_32 = zext <8 x i16> %i16 to <8 x i32>
1922 %zl2_16_32 = zext <8 x i16> %i16 to <8 x i32>
1923 %azl_16_32 = mul <8 x i32> %zl1_16_32, %zl2_16_32
1925 %sw_16_64 = sext <8 x i16> %i16 to <8 x i64>
1926 %asw_16_64 = mul <8 x i64> %i64, %sw_16_64
1927 %sl1_16_64 = sext <8 x i16> %i16 to <8 x i64>
1928 %sl2_16_64 = sext <8 x i16> %i16 to <8 x i64>
1929 %asl_16_64 = mul <8 x i64> %sl1_16_64, %sl2_16_64
1931 %zw_16_64 = zext <8 x i16> %i16 to <8 x i64>
1932 %azw_16_64 = mul <8 x i64> %i64, %zw_16_64
1933 %zl1_16_64 = zext <8 x i16> %i16 to <8 x i64>
1934 %zl2_16_64 = zext <8 x i16> %i16 to <8 x i64>
1935 %azl_16_64 = mul <8 x i64> %zl1_16_64, %zl2_16_64
1937 %sw_32_64 = sext <8 x i32> %i32 to <8 x i64>
1938 %asw_32_64 = mul <8 x i64> %i64, %sw_32_64
1939 %sl1_32_64 = sext <8 x i32> %i32 to <8 x i64>
1940 %sl2_32_64 = sext <8 x i32> %i32 to <8 x i64>
1941 %asl_32_64 = mul <8 x i64> %sl1_32_64, %sl2_32_64
1943 %zw_32_64 = zext <8 x i32> %i32 to <8 x i64>
1944 %azw_32_64 = mul <8 x i64> %i64, %zw_32_64
1945 %zl1_32_64 = zext <8 x i32> %i32 to <8 x i64>
1946 %zl2_32_64 = zext <8 x i32> %i32 to <8 x i64>
1947 %azl_32_64 = mul <8 x i64> %zl1_32_64, %zl2_32_64
1952 define void @extmulv16(<16 x i8> %i8, <16 x i16> %i16, <16 x i32> %i32, <16 x i64> %i64) {
1953 ; CHECK-LABEL: 'extmulv16'
1954 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %sw_8_16 = sext <16 x i8> %i8 to <16 x i16>
1955 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asw_8_16 = mul <16 x i16> %i16, %sw_8_16
1956 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_8_16 = sext <16 x i8> %i8 to <16 x i16>
1957 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_8_16 = sext <16 x i8> %i8 to <16 x i16>
1958 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %asl_8_16 = mul <16 x i16> %sl1_8_16, %sl2_8_16
1959 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %zw_8_16 = zext <16 x i8> %i8 to <16 x i16>
1960 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azw_8_16 = mul <16 x i16> %i16, %zw_8_16
1961 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_8_16 = zext <16 x i8> %i8 to <16 x i16>
1962 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_8_16 = zext <16 x i8> %i8 to <16 x i16>
1963 ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %azl_8_16 = mul <16 x i16> %zl1_8_16, %zl2_8_16
1964 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sw_8_32 = sext <16 x i8> %i8 to <16 x i32>
1965 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asw_8_32 = mul <16 x i32> %i32, %sw_8_32
1966 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sl1_8_32 = sext <16 x i8> %i8 to <16 x i32>
1967 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %sl2_8_32 = sext <16 x i8> %i8 to <16 x i32>
1968 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_8_32 = mul <16 x i32> %sl1_8_32, %sl2_8_32
1969 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zw_8_32 = zext <16 x i8> %i8 to <16 x i32>
1970 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azw_8_32 = mul <16 x i32> %i32, %zw_8_32
1971 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zl1_8_32 = zext <16 x i8> %i8 to <16 x i32>
1972 ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %zl2_8_32 = zext <16 x i8> %i8 to <16 x i32>
1973 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_8_32 = mul <16 x i32> %zl1_8_32, %zl2_8_32
1974 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %sw_8_64 = sext <16 x i8> %i8 to <16 x i64>
1975 ; CHECK-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %asw_8_64 = mul <16 x i64> %i64, %sw_8_64
1976 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %sl1_8_64 = sext <16 x i8> %i8 to <16 x i64>
1977 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %sl2_8_64 = sext <16 x i8> %i8 to <16 x i64>
1978 ; CHECK-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %asl_8_64 = mul <16 x i64> %sl1_8_64, %sl2_8_64
1979 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %zw_8_64 = zext <16 x i8> %i8 to <16 x i64>
1980 ; CHECK-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %azw_8_64 = mul <16 x i64> %i64, %zw_8_64
1981 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %zl1_8_64 = zext <16 x i8> %i8 to <16 x i64>
1982 ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %zl2_8_64 = zext <16 x i8> %i8 to <16 x i64>
1983 ; CHECK-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %azl_8_64 = mul <16 x i64> %zl1_8_64, %zl2_8_64
1984 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %sw_16_32 = sext <16 x i16> %i16 to <16 x i32>
1985 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asw_16_32 = mul <16 x i32> %i32, %sw_16_32
1986 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_16_32 = sext <16 x i16> %i16 to <16 x i32>
1987 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_16_32 = sext <16 x i16> %i16 to <16 x i32>
1988 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %asl_16_32 = mul <16 x i32> %sl1_16_32, %sl2_16_32
1989 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %zw_16_32 = zext <16 x i16> %i16 to <16 x i32>
1990 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azw_16_32 = mul <16 x i32> %i32, %zw_16_32
1991 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_16_32 = zext <16 x i16> %i16 to <16 x i32>
1992 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_16_32 = zext <16 x i16> %i16 to <16 x i32>
1993 ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %azl_16_32 = mul <16 x i32> %zl1_16_32, %zl2_16_32
1994 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %sw_16_64 = sext <16 x i16> %i16 to <16 x i64>
1995 ; CHECK-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %asw_16_64 = mul <16 x i64> %i64, %sw_16_64
1996 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %sl1_16_64 = sext <16 x i16> %i16 to <16 x i64>
1997 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %sl2_16_64 = sext <16 x i16> %i16 to <16 x i64>
1998 ; CHECK-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %asl_16_64 = mul <16 x i64> %sl1_16_64, %sl2_16_64
1999 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %zw_16_64 = zext <16 x i16> %i16 to <16 x i64>
2000 ; CHECK-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %azw_16_64 = mul <16 x i64> %i64, %zw_16_64
2001 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %zl1_16_64 = zext <16 x i16> %i16 to <16 x i64>
2002 ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %zl2_16_64 = zext <16 x i16> %i16 to <16 x i64>
2003 ; CHECK-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %azl_16_64 = mul <16 x i64> %zl1_16_64, %zl2_16_64
2004 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %sw_32_64 = sext <16 x i32> %i32 to <16 x i64>
2005 ; CHECK-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %asw_32_64 = mul <16 x i64> %i64, %sw_32_64
2006 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl1_32_64 = sext <16 x i32> %i32 to <16 x i64>
2007 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %sl2_32_64 = sext <16 x i32> %i32 to <16 x i64>
2008 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %asl_32_64 = mul <16 x i64> %sl1_32_64, %sl2_32_64
2009 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %zw_32_64 = zext <16 x i32> %i32 to <16 x i64>
2010 ; CHECK-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %azw_32_64 = mul <16 x i64> %i64, %zw_32_64
2011 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_32_64 = zext <16 x i32> %i32 to <16 x i64>
2012 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl2_32_64 = zext <16 x i32> %i32 to <16 x i64>
2013 ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %azl_32_64 = mul <16 x i64> %zl1_32_64, %zl2_32_64
2014 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
2016 %sw_8_16 = sext <16 x i8> %i8 to <16 x i16>
2017 %asw_8_16 = mul <16 x i16> %i16, %sw_8_16
2018 %sl1_8_16 = sext <16 x i8> %i8 to <16 x i16>
2019 %sl2_8_16 = sext <16 x i8> %i8 to <16 x i16>
2020 %asl_8_16 = mul <16 x i16> %sl1_8_16, %sl2_8_16
2022 %zw_8_16 = zext <16 x i8> %i8 to <16 x i16>
2023 %azw_8_16 = mul <16 x i16> %i16, %zw_8_16
2024 %zl1_8_16 = zext <16 x i8> %i8 to <16 x i16>
2025 %zl2_8_16 = zext <16 x i8> %i8 to <16 x i16>
2026 %azl_8_16 = mul <16 x i16> %zl1_8_16, %zl2_8_16
2028 %sw_8_32 = sext <16 x i8> %i8 to <16 x i32>
2029 %asw_8_32 = mul <16 x i32> %i32, %sw_8_32
2030 %sl1_8_32 = sext <16 x i8> %i8 to <16 x i32>
2031 %sl2_8_32 = sext <16 x i8> %i8 to <16 x i32>
2032 %asl_8_32 = mul <16 x i32> %sl1_8_32, %sl2_8_32
2034 %zw_8_32 = zext <16 x i8> %i8 to <16 x i32>
2035 %azw_8_32 = mul <16 x i32> %i32, %zw_8_32
2036 %zl1_8_32 = zext <16 x i8> %i8 to <16 x i32>
2037 %zl2_8_32 = zext <16 x i8> %i8 to <16 x i32>
2038 %azl_8_32 = mul <16 x i32> %zl1_8_32, %zl2_8_32
2040 %sw_8_64 = sext <16 x i8> %i8 to <16 x i64>
2041 %asw_8_64 = mul <16 x i64> %i64, %sw_8_64
2042 %sl1_8_64 = sext <16 x i8> %i8 to <16 x i64>
2043 %sl2_8_64 = sext <16 x i8> %i8 to <16 x i64>
2044 %asl_8_64 = mul <16 x i64> %sl1_8_64, %sl2_8_64
2046 %zw_8_64 = zext <16 x i8> %i8 to <16 x i64>
2047 %azw_8_64 = mul <16 x i64> %i64, %zw_8_64
2048 %zl1_8_64 = zext <16 x i8> %i8 to <16 x i64>
2049 %zl2_8_64 = zext <16 x i8> %i8 to <16 x i64>
2050 %azl_8_64 = mul <16 x i64> %zl1_8_64, %zl2_8_64
2052 %sw_16_32 = sext <16 x i16> %i16 to <16 x i32>
2053 %asw_16_32 = mul <16 x i32> %i32, %sw_16_32
2054 %sl1_16_32 = sext <16 x i16> %i16 to <16 x i32>
2055 %sl2_16_32 = sext <16 x i16> %i16 to <16 x i32>
2056 %asl_16_32 = mul <16 x i32> %sl1_16_32, %sl2_16_32
2058 %zw_16_32 = zext <16 x i16> %i16 to <16 x i32>
2059 %azw_16_32 = mul <16 x i32> %i32, %zw_16_32
2060 %zl1_16_32 = zext <16 x i16> %i16 to <16 x i32>
2061 %zl2_16_32 = zext <16 x i16> %i16 to <16 x i32>
2062 %azl_16_32 = mul <16 x i32> %zl1_16_32, %zl2_16_32
2064 %sw_16_64 = sext <16 x i16> %i16 to <16 x i64>
2065 %asw_16_64 = mul <16 x i64> %i64, %sw_16_64
2066 %sl1_16_64 = sext <16 x i16> %i16 to <16 x i64>
2067 %sl2_16_64 = sext <16 x i16> %i16 to <16 x i64>
2068 %asl_16_64 = mul <16 x i64> %sl1_16_64, %sl2_16_64
2070 %zw_16_64 = zext <16 x i16> %i16 to <16 x i64>
2071 %azw_16_64 = mul <16 x i64> %i64, %zw_16_64
2072 %zl1_16_64 = zext <16 x i16> %i16 to <16 x i64>
2073 %zl2_16_64 = zext <16 x i16> %i16 to <16 x i64>
2074 %azl_16_64 = mul <16 x i64> %zl1_16_64, %zl2_16_64
2076 %sw_32_64 = sext <16 x i32> %i32 to <16 x i64>
2077 %asw_32_64 = mul <16 x i64> %i64, %sw_32_64
2078 %sl1_32_64 = sext <16 x i32> %i32 to <16 x i64>
2079 %sl2_32_64 = sext <16 x i32> %i32 to <16 x i64>
2080 %asl_32_64 = mul <16 x i64> %sl1_32_64, %sl2_32_64
2082 %zw_32_64 = zext <16 x i32> %i32 to <16 x i64>
2083 %azw_32_64 = mul <16 x i64> %i64, %zw_32_64
2084 %zl1_32_64 = zext <16 x i32> %i32 to <16 x i64>
2085 %zl2_32_64 = zext <16 x i32> %i32 to <16 x i64>
2086 %azl_32_64 = mul <16 x i64> %zl1_32_64, %zl2_32_64
2091 define void @extmul_const(<8 x i8> %i8, <8 x i16> %i16, <8 x i32> %i32, <8 x i64> %i64) {
2092 ; CHECK-LABEL: 'extmul_const'
2093 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>
2094 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %asl_8_16 = mul <8 x i16> %sl1_8_16, splat (i16 10)
2095 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>
2096 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %azl_8_16 = mul <8 x i16> %zl1_8_16, splat (i16 10)
2097 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %zl1_8_16b = zext <8 x i8> %i8 to <8 x i16>
2098 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %and = and <8 x i16> %sl1_8_16, splat (i16 255)
2099 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %aal_8_16 = mul <8 x i16> %zl1_8_16b, %and
2100 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
2102 %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>
2103 %asl_8_16 = mul <8 x i16> %sl1_8_16, <i16 10, i16 10, i16 10, i16 10, i16 10, i16 10, i16 10, i16 10>
2105 %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>
2106 %azl_8_16 = mul <8 x i16> %zl1_8_16, <i16 10, i16 10, i16 10, i16 10, i16 10, i16 10, i16 10, i16 10>
2108 %zl1_8_16b = zext <8 x i8> %i8 to <8 x i16>
2109 %and = and <8 x i16> %sl1_8_16, <i16 255, i16 255, i16 255, i16 255, i16 255, i16 255, i16 255, i16 255>
2110 %aal_8_16 = mul <8 x i16> %zl1_8_16b, %and