Lines Matching refs:Name
85 static bool ShouldUpgradeX86Intrinsic(Function *F, StringRef Name) { in ShouldUpgradeX86Intrinsic() argument
91 if (Name == "addcarryx.u32" || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
92 Name == "addcarryx.u64" || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
93 Name == "addcarry.u32" || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
94 Name == "addcarry.u64" || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
95 Name == "subborrow.u32" || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
96 Name == "subborrow.u64" || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
97 Name.startswith("sse2.padds.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
98 Name.startswith("sse2.psubs.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
99 Name.startswith("sse2.paddus.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
100 Name.startswith("sse2.psubus.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
101 Name.startswith("avx2.padds.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
102 Name.startswith("avx2.psubs.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
103 Name.startswith("avx2.paddus.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
104 Name.startswith("avx2.psubus.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
105 Name.startswith("avx512.padds.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
106 Name.startswith("avx512.psubs.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
107 Name.startswith("avx512.mask.padds.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
108 Name.startswith("avx512.mask.psubs.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
109 Name.startswith("avx512.mask.paddus.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
110 Name.startswith("avx512.mask.psubus.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
111 Name=="ssse3.pabs.b.128" || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
112 Name=="ssse3.pabs.w.128" || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
113 Name=="ssse3.pabs.d.128" || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
114 Name.startswith("fma4.vfmadd.s") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
115 Name.startswith("fma.vfmadd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
116 Name.startswith("fma.vfmsub.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
117 Name.startswith("fma.vfmsubadd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
118 Name.startswith("fma.vfnmadd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
119 Name.startswith("fma.vfnmsub.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
120 Name.startswith("avx512.mask.vfmadd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
121 Name.startswith("avx512.mask.vfnmadd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
122 Name.startswith("avx512.mask.vfnmsub.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
123 Name.startswith("avx512.mask3.vfmadd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
124 Name.startswith("avx512.maskz.vfmadd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
125 Name.startswith("avx512.mask3.vfmsub.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
126 Name.startswith("avx512.mask3.vfnmsub.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
127 Name.startswith("avx512.mask.vfmaddsub.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
128 Name.startswith("avx512.maskz.vfmaddsub.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
129 Name.startswith("avx512.mask3.vfmaddsub.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
130 Name.startswith("avx512.mask3.vfmsubadd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
131 Name.startswith("avx512.mask.shuf.i") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
132 Name.startswith("avx512.mask.shuf.f") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
133 Name.startswith("avx512.kunpck") || //added in 6.0 in ShouldUpgradeX86Intrinsic()
134 Name.startswith("avx2.pabs.") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
135 Name.startswith("avx512.mask.pabs.") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
136 Name.startswith("avx512.broadcastm") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
137 Name == "sse.sqrt.ss" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
138 Name == "sse2.sqrt.sd" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
139 Name.startswith("avx512.mask.sqrt.p") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
140 Name.startswith("avx.sqrt.p") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
141 Name.startswith("sse2.sqrt.p") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
142 Name.startswith("sse.sqrt.p") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
143 Name.startswith("avx512.mask.pbroadcast") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
144 Name.startswith("sse2.pcmpeq.") || // Added in 3.1 in ShouldUpgradeX86Intrinsic()
145 Name.startswith("sse2.pcmpgt.") || // Added in 3.1 in ShouldUpgradeX86Intrinsic()
146 Name.startswith("avx2.pcmpeq.") || // Added in 3.1 in ShouldUpgradeX86Intrinsic()
147 Name.startswith("avx2.pcmpgt.") || // Added in 3.1 in ShouldUpgradeX86Intrinsic()
148 Name.startswith("avx512.mask.pcmpeq.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
149 Name.startswith("avx512.mask.pcmpgt.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
150 Name.startswith("avx.vperm2f128.") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
151 Name == "avx2.vperm2i128" || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
152 Name == "sse.add.ss" || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
153 Name == "sse2.add.sd" || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
154 Name == "sse.sub.ss" || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
155 Name == "sse2.sub.sd" || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
156 Name == "sse.mul.ss" || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
157 Name == "sse2.mul.sd" || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
158 Name == "sse.div.ss" || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
159 Name == "sse2.div.sd" || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
160 Name == "sse41.pmaxsb" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
161 Name == "sse2.pmaxs.w" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
162 Name == "sse41.pmaxsd" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
163 Name == "sse2.pmaxu.b" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
164 Name == "sse41.pmaxuw" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
165 Name == "sse41.pmaxud" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
166 Name == "sse41.pminsb" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
167 Name == "sse2.pmins.w" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
168 Name == "sse41.pminsd" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
169 Name == "sse2.pminu.b" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
170 Name == "sse41.pminuw" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
171 Name == "sse41.pminud" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
172 Name == "avx512.kand.w" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
173 Name == "avx512.kandn.w" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
174 Name == "avx512.knot.w" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
175 Name == "avx512.kor.w" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
176 Name == "avx512.kxor.w" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
177 Name == "avx512.kxnor.w" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
178 Name == "avx512.kortestc.w" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
179 Name == "avx512.kortestz.w" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
180 Name.startswith("avx512.mask.pshuf.b.") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
181 Name.startswith("avx2.pmax") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
182 Name.startswith("avx2.pmin") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
183 Name.startswith("avx512.mask.pmax") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
184 Name.startswith("avx512.mask.pmin") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
185 Name.startswith("avx2.vbroadcast") || // Added in 3.8 in ShouldUpgradeX86Intrinsic()
186 Name.startswith("avx2.pbroadcast") || // Added in 3.8 in ShouldUpgradeX86Intrinsic()
187 Name.startswith("avx.vpermil.") || // Added in 3.1 in ShouldUpgradeX86Intrinsic()
188 Name.startswith("sse2.pshuf") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
189 Name.startswith("avx512.pbroadcast") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
190 Name.startswith("avx512.mask.broadcast.s") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
191 Name.startswith("avx512.mask.movddup") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
192 Name.startswith("avx512.mask.movshdup") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
193 Name.startswith("avx512.mask.movsldup") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
194 Name.startswith("avx512.mask.pshuf.d.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
195 Name.startswith("avx512.mask.pshufl.w.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
196 Name.startswith("avx512.mask.pshufh.w.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
197 Name.startswith("avx512.mask.shuf.p") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
198 Name.startswith("avx512.mask.vpermil.p") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
199 Name.startswith("avx512.mask.perm.df.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
200 Name.startswith("avx512.mask.perm.di.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
201 Name.startswith("avx512.mask.punpckl") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
202 Name.startswith("avx512.mask.punpckh") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
203 Name.startswith("avx512.mask.unpckl.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
204 Name.startswith("avx512.mask.unpckh.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
205 Name.startswith("avx512.mask.pand.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
206 Name.startswith("avx512.mask.pandn.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
207 Name.startswith("avx512.mask.por.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
208 Name.startswith("avx512.mask.pxor.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
209 Name.startswith("avx512.mask.and.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
210 Name.startswith("avx512.mask.andn.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
211 Name.startswith("avx512.mask.or.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
212 Name.startswith("avx512.mask.xor.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
213 Name.startswith("avx512.mask.padd.") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
214 Name.startswith("avx512.mask.psub.") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
215 Name.startswith("avx512.mask.pmull.") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
216 Name.startswith("avx512.mask.cvtdq2pd.") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
217 Name.startswith("avx512.mask.cvtudq2pd.") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
218 Name.startswith("avx512.mask.cvtudq2ps.") || // Added in 7.0 updated 9.0 in ShouldUpgradeX86Intrinsic()
219 Name.startswith("avx512.mask.cvtqq2pd.") || // Added in 7.0 updated 9.0 in ShouldUpgradeX86Intrinsic()
220 Name.startswith("avx512.mask.cvtuqq2pd.") || // Added in 7.0 updated 9.0 in ShouldUpgradeX86Intrinsic()
221 Name.startswith("avx512.mask.cvtdq2ps.") || // Added in 7.0 updated 9.0 in ShouldUpgradeX86Intrinsic()
222 Name == "avx512.mask.vcvtph2ps.128" || // Added in 11.0 in ShouldUpgradeX86Intrinsic()
223 Name == "avx512.mask.vcvtph2ps.256" || // Added in 11.0 in ShouldUpgradeX86Intrinsic()
224 Name == "avx512.mask.cvtqq2ps.256" || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
225 Name == "avx512.mask.cvtqq2ps.512" || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
226 Name == "avx512.mask.cvtuqq2ps.256" || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
227 Name == "avx512.mask.cvtuqq2ps.512" || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
228 Name == "avx512.mask.cvtpd2dq.256" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
229 Name == "avx512.mask.cvtpd2ps.256" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
230 Name == "avx512.mask.cvttpd2dq.256" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
231 Name == "avx512.mask.cvttps2dq.128" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
232 Name == "avx512.mask.cvttps2dq.256" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
233 Name == "avx512.mask.cvtps2pd.128" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
234 Name == "avx512.mask.cvtps2pd.256" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
235 Name == "avx512.cvtusi2sd" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
236 Name.startswith("avx512.mask.permvar.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
237 Name == "sse2.pmulu.dq" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
238 Name == "sse41.pmuldq" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
239 Name == "avx2.pmulu.dq" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
240 Name == "avx2.pmul.dq" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
241 Name == "avx512.pmulu.dq.512" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
242 Name == "avx512.pmul.dq.512" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
243 Name.startswith("avx512.mask.pmul.dq.") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
244 Name.startswith("avx512.mask.pmulu.dq.") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
245 Name.startswith("avx512.mask.pmul.hr.sw.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
246 Name.startswith("avx512.mask.pmulh.w.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
247 Name.startswith("avx512.mask.pmulhu.w.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
248 Name.startswith("avx512.mask.pmaddw.d.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
249 Name.startswith("avx512.mask.pmaddubs.w.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
250 Name.startswith("avx512.mask.packsswb.") || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
251 Name.startswith("avx512.mask.packssdw.") || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
252 Name.startswith("avx512.mask.packuswb.") || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
253 Name.startswith("avx512.mask.packusdw.") || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
254 Name.startswith("avx512.mask.cmp.b") || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
255 Name.startswith("avx512.mask.cmp.d") || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
256 Name.startswith("avx512.mask.cmp.q") || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
257 Name.startswith("avx512.mask.cmp.w") || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
258 Name.startswith("avx512.cmp.p") || // Added in 12.0 in ShouldUpgradeX86Intrinsic()
259 Name.startswith("avx512.mask.ucmp.") || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
260 Name.startswith("avx512.cvtb2mask.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
261 Name.startswith("avx512.cvtw2mask.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
262 Name.startswith("avx512.cvtd2mask.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
263 Name.startswith("avx512.cvtq2mask.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
264 Name.startswith("avx512.mask.vpermilvar.") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
265 Name.startswith("avx512.mask.psll.d") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
266 Name.startswith("avx512.mask.psll.q") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
267 Name.startswith("avx512.mask.psll.w") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
268 Name.startswith("avx512.mask.psra.d") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
269 Name.startswith("avx512.mask.psra.q") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
270 Name.startswith("avx512.mask.psra.w") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
271 Name.startswith("avx512.mask.psrl.d") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
272 Name.startswith("avx512.mask.psrl.q") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
273 Name.startswith("avx512.mask.psrl.w") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
274 Name.startswith("avx512.mask.pslli") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
275 Name.startswith("avx512.mask.psrai") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
276 Name.startswith("avx512.mask.psrli") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
277 Name.startswith("avx512.mask.psllv") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
278 Name.startswith("avx512.mask.psrav") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
279 Name.startswith("avx512.mask.psrlv") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
280 Name.startswith("sse41.pmovsx") || // Added in 3.8 in ShouldUpgradeX86Intrinsic()
281 Name.startswith("sse41.pmovzx") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
282 Name.startswith("avx2.pmovsx") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
283 Name.startswith("avx2.pmovzx") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
284 Name.startswith("avx512.mask.pmovsx") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
285 Name.startswith("avx512.mask.pmovzx") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
286 Name.startswith("avx512.mask.lzcnt.") || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
287 Name.startswith("avx512.mask.pternlog.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
288 Name.startswith("avx512.maskz.pternlog.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
289 Name.startswith("avx512.mask.vpmadd52") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
290 Name.startswith("avx512.maskz.vpmadd52") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
291 Name.startswith("avx512.mask.vpermi2var.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
292 Name.startswith("avx512.mask.vpermt2var.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
293 Name.startswith("avx512.maskz.vpermt2var.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
294 Name.startswith("avx512.mask.vpdpbusd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
295 Name.startswith("avx512.maskz.vpdpbusd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
296 Name.startswith("avx512.mask.vpdpbusds.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
297 Name.startswith("avx512.maskz.vpdpbusds.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
298 Name.startswith("avx512.mask.vpdpwssd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
299 Name.startswith("avx512.maskz.vpdpwssd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
300 Name.startswith("avx512.mask.vpdpwssds.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
301 Name.startswith("avx512.maskz.vpdpwssds.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
302 Name.startswith("avx512.mask.dbpsadbw.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
303 Name.startswith("avx512.mask.vpshld.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
304 Name.startswith("avx512.mask.vpshrd.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
305 Name.startswith("avx512.mask.vpshldv.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
306 Name.startswith("avx512.mask.vpshrdv.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
307 Name.startswith("avx512.maskz.vpshldv.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
308 Name.startswith("avx512.maskz.vpshrdv.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
309 Name.startswith("avx512.vpshld.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
310 Name.startswith("avx512.vpshrd.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
311 Name.startswith("avx512.mask.add.p") || // Added in 7.0. 128/256 in 4.0 in ShouldUpgradeX86Intrinsic()
312 Name.startswith("avx512.mask.sub.p") || // Added in 7.0. 128/256 in 4.0 in ShouldUpgradeX86Intrinsic()
313 Name.startswith("avx512.mask.mul.p") || // Added in 7.0. 128/256 in 4.0 in ShouldUpgradeX86Intrinsic()
314 Name.startswith("avx512.mask.div.p") || // Added in 7.0. 128/256 in 4.0 in ShouldUpgradeX86Intrinsic()
315 Name.startswith("avx512.mask.max.p") || // Added in 7.0. 128/256 in 5.0 in ShouldUpgradeX86Intrinsic()
316 Name.startswith("avx512.mask.min.p") || // Added in 7.0. 128/256 in 5.0 in ShouldUpgradeX86Intrinsic()
317 Name.startswith("avx512.mask.fpclass.p") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
318 Name.startswith("avx512.mask.vpshufbitqmb.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
319 Name.startswith("avx512.mask.pmultishift.qb.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
320 Name.startswith("avx512.mask.conflict.") || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
321 Name == "avx512.mask.pmov.qd.256" || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
322 Name == "avx512.mask.pmov.qd.512" || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
323 Name == "avx512.mask.pmov.wb.256" || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
324 Name == "avx512.mask.pmov.wb.512" || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
325 Name == "sse.cvtsi2ss" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
326 Name == "sse.cvtsi642ss" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
327 Name == "sse2.cvtsi2sd" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
328 Name == "sse2.cvtsi642sd" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
329 Name == "sse2.cvtss2sd" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
330 Name == "sse2.cvtdq2pd" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
331 Name == "sse2.cvtdq2ps" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
332 Name == "sse2.cvtps2pd" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
333 Name == "avx.cvtdq2.pd.256" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
334 Name == "avx.cvtdq2.ps.256" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
335 Name == "avx.cvt.ps2.pd.256" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
336 Name.startswith("vcvtph2ps.") || // Added in 11.0 in ShouldUpgradeX86Intrinsic()
337 Name.startswith("avx.vinsertf128.") || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
338 Name == "avx2.vinserti128" || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
339 Name.startswith("avx512.mask.insert") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
340 Name.startswith("avx.vextractf128.") || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
341 Name == "avx2.vextracti128" || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
342 Name.startswith("avx512.mask.vextract") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
343 Name.startswith("sse4a.movnt.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
344 Name.startswith("avx.movnt.") || // Added in 3.2 in ShouldUpgradeX86Intrinsic()
345 Name.startswith("avx512.storent.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
346 Name == "sse41.movntdqa" || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
347 Name == "avx2.movntdqa" || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
348 Name == "avx512.movntdqa" || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
349 Name == "sse2.storel.dq" || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
350 Name.startswith("sse.storeu.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
351 Name.startswith("sse2.storeu.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
352 Name.startswith("avx.storeu.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
353 Name.startswith("avx512.mask.storeu.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
354 Name.startswith("avx512.mask.store.p") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
355 Name.startswith("avx512.mask.store.b.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
356 Name.startswith("avx512.mask.store.w.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
357 Name.startswith("avx512.mask.store.d.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
358 Name.startswith("avx512.mask.store.q.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
359 Name == "avx512.mask.store.ss" || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
360 Name.startswith("avx512.mask.loadu.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
361 Name.startswith("avx512.mask.load.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
362 Name.startswith("avx512.mask.expand.load.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
363 Name.startswith("avx512.mask.compress.store.") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
364 Name.startswith("avx512.mask.expand.b") || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
365 Name.startswith("avx512.mask.expand.w") || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
366 Name.startswith("avx512.mask.expand.d") || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
367 Name.startswith("avx512.mask.expand.q") || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
368 Name.startswith("avx512.mask.expand.p") || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
369 Name.startswith("avx512.mask.compress.b") || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
370 Name.startswith("avx512.mask.compress.w") || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
371 Name.startswith("avx512.mask.compress.d") || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
372 Name.startswith("avx512.mask.compress.q") || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
373 Name.startswith("avx512.mask.compress.p") || // Added in 9.0 in ShouldUpgradeX86Intrinsic()
374 Name == "sse42.crc32.64.8" || // Added in 3.4 in ShouldUpgradeX86Intrinsic()
375 Name.startswith("avx.vbroadcast.s") || // Added in 3.5 in ShouldUpgradeX86Intrinsic()
376 Name.startswith("avx512.vbroadcast.s") || // Added in 7.0 in ShouldUpgradeX86Intrinsic()
377 Name.startswith("avx512.mask.palignr.") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
378 Name.startswith("avx512.mask.valign.") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
379 Name.startswith("sse2.psll.dq") || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
380 Name.startswith("sse2.psrl.dq") || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
381 Name.startswith("avx2.psll.dq") || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
382 Name.startswith("avx2.psrl.dq") || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
383 Name.startswith("avx512.psll.dq") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
384 Name.startswith("avx512.psrl.dq") || // Added in 3.9 in ShouldUpgradeX86Intrinsic()
385 Name == "sse41.pblendw" || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
386 Name.startswith("sse41.blendp") || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
387 Name.startswith("avx.blend.p") || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
388 Name == "avx2.pblendw" || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
389 Name.startswith("avx2.pblendd.") || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
390 Name.startswith("avx.vbroadcastf128") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
391 Name == "avx2.vbroadcasti128" || // Added in 3.7 in ShouldUpgradeX86Intrinsic()
392 Name.startswith("avx512.mask.broadcastf32x4.") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
393 Name.startswith("avx512.mask.broadcastf64x2.") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
394 Name.startswith("avx512.mask.broadcastf32x8.") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
395 Name.startswith("avx512.mask.broadcastf64x4.") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
396 Name.startswith("avx512.mask.broadcasti32x4.") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
397 Name.startswith("avx512.mask.broadcasti64x2.") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
398 Name.startswith("avx512.mask.broadcasti32x8.") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
399 Name.startswith("avx512.mask.broadcasti64x4.") || // Added in 6.0 in ShouldUpgradeX86Intrinsic()
400 Name == "xop.vpcmov" || // Added in 3.8 in ShouldUpgradeX86Intrinsic()
401 Name == "xop.vpcmov.256" || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
402 Name.startswith("avx512.mask.move.s") || // Added in 4.0 in ShouldUpgradeX86Intrinsic()
403 Name.startswith("avx512.cvtmask2") || // Added in 5.0 in ShouldUpgradeX86Intrinsic()
404 Name.startswith("xop.vpcom") || // Added in 3.2, Updated in 9.0 in ShouldUpgradeX86Intrinsic()
405 Name.startswith("xop.vprot") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
406 Name.startswith("avx512.prol") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
407 Name.startswith("avx512.pror") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
408 Name.startswith("avx512.mask.prorv.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
409 Name.startswith("avx512.mask.pror.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
410 Name.startswith("avx512.mask.prolv.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
411 Name.startswith("avx512.mask.prol.") || // Added in 8.0 in ShouldUpgradeX86Intrinsic()
412 Name.startswith("avx512.ptestm") || //Added in 6.0 in ShouldUpgradeX86Intrinsic()
413 Name.startswith("avx512.ptestnm") || //Added in 6.0 in ShouldUpgradeX86Intrinsic()
414 Name.startswith("avx512.mask.pavg")) // Added in 6.0 in ShouldUpgradeX86Intrinsic()
420 static bool UpgradeX86IntrinsicFunction(Function *F, StringRef Name, in UpgradeX86IntrinsicFunction() argument
423 if (!Name.startswith("x86.")) in UpgradeX86IntrinsicFunction()
426 Name = Name.substr(4); in UpgradeX86IntrinsicFunction()
428 if (ShouldUpgradeX86Intrinsic(F, Name)) { in UpgradeX86IntrinsicFunction()
433 if (Name == "rdtscp") { // Added in 8.0 in UpgradeX86IntrinsicFunction()
445 if (Name.startswith("sse41.ptest")) { // Added in 3.2 in UpgradeX86IntrinsicFunction()
446 if (Name.substr(11) == "c") in UpgradeX86IntrinsicFunction()
448 if (Name.substr(11) == "z") in UpgradeX86IntrinsicFunction()
450 if (Name.substr(11) == "nzc") in UpgradeX86IntrinsicFunction()
455 if (Name == "sse41.insertps") // Added in 3.6 in UpgradeX86IntrinsicFunction()
458 if (Name == "sse41.dppd") // Added in 3.6 in UpgradeX86IntrinsicFunction()
461 if (Name == "sse41.dpps") // Added in 3.6 in UpgradeX86IntrinsicFunction()
464 if (Name == "sse41.mpsadbw") // Added in 3.6 in UpgradeX86IntrinsicFunction()
467 if (Name == "avx.dp.ps.256") // Added in 3.6 in UpgradeX86IntrinsicFunction()
470 if (Name == "avx2.mpsadbw") // Added in 3.6 in UpgradeX86IntrinsicFunction()
473 if (Name == "avx512.mask.cmp.pd.128") // Added in 7.0 in UpgradeX86IntrinsicFunction()
476 if (Name == "avx512.mask.cmp.pd.256") // Added in 7.0 in UpgradeX86IntrinsicFunction()
479 if (Name == "avx512.mask.cmp.pd.512") // Added in 7.0 in UpgradeX86IntrinsicFunction()
482 if (Name == "avx512.mask.cmp.ps.128") // Added in 7.0 in UpgradeX86IntrinsicFunction()
485 if (Name == "avx512.mask.cmp.ps.256") // Added in 7.0 in UpgradeX86IntrinsicFunction()
488 if (Name == "avx512.mask.cmp.ps.512") // Added in 7.0 in UpgradeX86IntrinsicFunction()
493 if (Name.startswith("xop.vfrcz.ss") && F->arg_size() == 2) { in UpgradeX86IntrinsicFunction()
499 if (Name.startswith("xop.vfrcz.sd") && F->arg_size() == 2) { in UpgradeX86IntrinsicFunction()
506 if (Name.startswith("xop.vpermil2")) { // Added in 3.9 in UpgradeX86IntrinsicFunction()
526 if (Name == "seh.recoverfp") { in UpgradeX86IntrinsicFunction()
538 StringRef Name = F->getName(); in UpgradeIntrinsicFunction1() local
539 if (Name.size() <= 8 || !Name.startswith("llvm.")) in UpgradeIntrinsicFunction1()
541 Name = Name.substr(5); // Strip off "llvm." in UpgradeIntrinsicFunction1()
543 switch (Name[0]) { in UpgradeIntrinsicFunction1()
546 if (Name.startswith("arm.rbit") || Name.startswith("aarch64.rbit")) { in UpgradeIntrinsicFunction1()
551 if (Name.startswith("aarch64.neon.frintn")) { in UpgradeIntrinsicFunction1()
556 if (Name.startswith("aarch64.neon.rbit")) { in UpgradeIntrinsicFunction1()
561 if (Name.startswith("arm.neon.vclz")) { in UpgradeIntrinsicFunction1()
571 "llvm.ctlz." + Name.substr(14), F->getParent()); in UpgradeIntrinsicFunction1()
574 if (Name.startswith("arm.neon.vcnt")) { in UpgradeIntrinsicFunction1()
580 if (vldRegex.match(Name)) { in UpgradeIntrinsicFunction1()
587 "llvm." + Name + ".p0i8", F->getParent()); in UpgradeIntrinsicFunction1()
591 if (vstRegex.match(Name)) { in UpgradeIntrinsicFunction1()
604 if (Name.find("lane") == StringRef::npos) in UpgradeIntrinsicFunction1()
612 if (Name == "aarch64.thread.pointer" || Name == "arm.thread.pointer") { in UpgradeIntrinsicFunction1()
616 if (Name.startswith("arm.neon.vqadds.")) { in UpgradeIntrinsicFunction1()
621 if (Name.startswith("arm.neon.vqaddu.")) { in UpgradeIntrinsicFunction1()
626 if (Name.startswith("arm.neon.vqsubs.")) { in UpgradeIntrinsicFunction1()
631 if (Name.startswith("arm.neon.vqsubu.")) { in UpgradeIntrinsicFunction1()
636 if (Name.startswith("aarch64.neon.addp")) { in UpgradeIntrinsicFunction1()
649 if ((Name.startswith("arm.neon.bfdot.") || in UpgradeIntrinsicFunction1()
650 Name.startswith("aarch64.neon.bfdot.")) && in UpgradeIntrinsicFunction1()
651 Name.endswith("i8")) { in UpgradeIntrinsicFunction1()
653 StringSwitch<Intrinsic::ID>(Name) in UpgradeIntrinsicFunction1()
678 if ((Name.startswith("arm.neon.bfm") || in UpgradeIntrinsicFunction1()
679 Name.startswith("aarch64.neon.bfm")) && in UpgradeIntrinsicFunction1()
680 Name.endswith(".v4f32.v16i8")) { in UpgradeIntrinsicFunction1()
682 StringSwitch<Intrinsic::ID>(Name) in UpgradeIntrinsicFunction1()
707 if (Name.startswith("ctlz.") && F->arg_size() == 1) { in UpgradeIntrinsicFunction1()
713 if (Name.startswith("cttz.") && F->arg_size() == 1) { in UpgradeIntrinsicFunction1()
722 if (Name == "dbg.value" && F->arg_size() == 4) { in UpgradeIntrinsicFunction1()
732 if (R.match(Name, &Groups)) { in UpgradeIntrinsicFunction1()
757 if (R2.match(Name, &Groups)) { in UpgradeIntrinsicFunction1()
775 bool IsLifetimeStart = Name.startswith("lifetime.start"); in UpgradeIntrinsicFunction1()
776 if (IsLifetimeStart || Name.startswith("invariant.start")) { in UpgradeIntrinsicFunction1()
788 bool IsLifetimeEnd = Name.startswith("lifetime.end"); in UpgradeIntrinsicFunction1()
789 if (IsLifetimeEnd || Name.startswith("invariant.end")) { in UpgradeIntrinsicFunction1()
801 if (Name.startswith("invariant.group.barrier")) { in UpgradeIntrinsicFunction1()
815 if (Name.startswith("masked.load.")) { in UpgradeIntrinsicFunction1()
826 if (Name.startswith("masked.store.")) { in UpgradeIntrinsicFunction1()
840 if (Name.startswith("masked.gather.")) { in UpgradeIntrinsicFunction1()
850 if (Name.startswith("masked.scatter.")) { in UpgradeIntrinsicFunction1()
864 if (Name.startswith("memcpy.") && F->arg_size() == 5) { in UpgradeIntrinsicFunction1()
872 if (Name.startswith("memmove.") && F->arg_size() == 5) { in UpgradeIntrinsicFunction1()
880 if (Name.startswith("memset.") && F->arg_size() == 5) { in UpgradeIntrinsicFunction1()
895 if (Name.startswith("nvvm.")) { in UpgradeIntrinsicFunction1()
896 Name = Name.substr(5); in UpgradeIntrinsicFunction1()
899 Intrinsic::ID IID = StringSwitch<Intrinsic::ID>(Name) in UpgradeIntrinsicFunction1()
914 bool Expand = StringSwitch<bool>(Name) in UpgradeIntrinsicFunction1()
932 if (Name.startswith("objectsize.")) { in UpgradeIntrinsicFunction1()
946 if (Name == "prefetch") { in UpgradeIntrinsicFunction1()
956 } else if (Name.startswith("ptr.annotation.") && F->arg_size() == 4) { in UpgradeIntrinsicFunction1()
966 if (Name == "stackprotectorcheck") { in UpgradeIntrinsicFunction1()
973 if (Name == "var.annotation" && F->arg_size() == 4) { in UpgradeIntrinsicFunction1()
983 if (UpgradeX86IntrinsicFunction(F, Name, NewFn)) in UpgradeIntrinsicFunction1()
1555 static bool upgradeAVX512MaskToSelect(StringRef Name, IRBuilder<> &Builder, in upgradeAVX512MaskToSelect() argument
1557 Name = Name.substr(12); // Remove avx512.mask. in upgradeAVX512MaskToSelect()
1562 if (Name.startswith("max.p")) { in upgradeAVX512MaskToSelect()
1573 } else if (Name.startswith("min.p")) { in upgradeAVX512MaskToSelect()
1584 } else if (Name.startswith("pshuf.b.")) { in upgradeAVX512MaskToSelect()
1593 } else if (Name.startswith("pmul.hr.sw.")) { in upgradeAVX512MaskToSelect()
1602 } else if (Name.startswith("pmulh.w.")) { in upgradeAVX512MaskToSelect()
1611 } else if (Name.startswith("pmulhu.w.")) { in upgradeAVX512MaskToSelect()
1620 } else if (Name.startswith("pmaddw.d.")) { in upgradeAVX512MaskToSelect()
1629 } else if (Name.startswith("pmaddubs.w.")) { in upgradeAVX512MaskToSelect()
1638 } else if (Name.startswith("packsswb.")) { in upgradeAVX512MaskToSelect()
1647 } else if (Name.startswith("packssdw.")) { in upgradeAVX512MaskToSelect()
1656 } else if (Name.startswith("packuswb.")) { in upgradeAVX512MaskToSelect()
1665 } else if (Name.startswith("packusdw.")) { in upgradeAVX512MaskToSelect()
1674 } else if (Name.startswith("vpermilvar.")) { in upgradeAVX512MaskToSelect()
1689 } else if (Name == "cvtpd2dq.256") { in upgradeAVX512MaskToSelect()
1691 } else if (Name == "cvtpd2ps.256") { in upgradeAVX512MaskToSelect()
1693 } else if (Name == "cvttpd2dq.256") { in upgradeAVX512MaskToSelect()
1695 } else if (Name == "cvttps2dq.128") { in upgradeAVX512MaskToSelect()
1697 } else if (Name == "cvttps2dq.256") { in upgradeAVX512MaskToSelect()
1699 } else if (Name.startswith("permvar.")) { in upgradeAVX512MaskToSelect()
1731 } else if (Name.startswith("dbpsadbw.")) { in upgradeAVX512MaskToSelect()
1740 } else if (Name.startswith("pmultishift.qb.")) { in upgradeAVX512MaskToSelect()
1749 } else if (Name.startswith("conflict.")) { in upgradeAVX512MaskToSelect()
1750 if (Name[9] == 'd' && VecWidth == 128) in upgradeAVX512MaskToSelect()
1752 else if (Name[9] == 'd' && VecWidth == 256) in upgradeAVX512MaskToSelect()
1754 else if (Name[9] == 'd' && VecWidth == 512) in upgradeAVX512MaskToSelect()
1756 else if (Name[9] == 'q' && VecWidth == 128) in upgradeAVX512MaskToSelect()
1758 else if (Name[9] == 'q' && VecWidth == 256) in upgradeAVX512MaskToSelect()
1760 else if (Name[9] == 'q' && VecWidth == 512) in upgradeAVX512MaskToSelect()
1764 } else if (Name.startswith("pavg.")) { in upgradeAVX512MaskToSelect()
1765 if (Name[5] == 'b' && VecWidth == 128) in upgradeAVX512MaskToSelect()
1767 else if (Name[5] == 'b' && VecWidth == 256) in upgradeAVX512MaskToSelect()
1769 else if (Name[5] == 'b' && VecWidth == 512) in upgradeAVX512MaskToSelect()
1771 else if (Name[5] == 'w' && VecWidth == 128) in upgradeAVX512MaskToSelect()
1773 else if (Name[5] == 'w' && VecWidth == 256) in upgradeAVX512MaskToSelect()
1775 else if (Name[5] == 'w' && VecWidth == 512) in upgradeAVX512MaskToSelect()
1817 StringRef Name = F->getName(); in UpgradeIntrinsicCall() local
1819 assert(Name.startswith("llvm.") && "Intrinsic doesn't start with 'llvm.'"); in UpgradeIntrinsicCall()
1820 Name = Name.substr(5); in UpgradeIntrinsicCall()
1822 bool IsX86 = Name.startswith("x86."); in UpgradeIntrinsicCall()
1824 Name = Name.substr(4); in UpgradeIntrinsicCall()
1825 bool IsNVVM = Name.startswith("nvvm."); in UpgradeIntrinsicCall()
1827 Name = Name.substr(5); in UpgradeIntrinsicCall()
1829 if (IsX86 && Name.startswith("sse4a.movnt.")) { in UpgradeIntrinsicCall()
1855 if (IsX86 && (Name.startswith("avx.movnt.") || in UpgradeIntrinsicCall()
1856 Name.startswith("avx512.storent."))) { in UpgradeIntrinsicCall()
1880 if (IsX86 && Name == "sse2.storel.dq") { in UpgradeIntrinsicCall()
1897 if (IsX86 && (Name.startswith("sse.storeu.") || in UpgradeIntrinsicCall()
1898 Name.startswith("sse2.storeu.") || in UpgradeIntrinsicCall()
1899 Name.startswith("avx.storeu."))) { in UpgradeIntrinsicCall()
1913 if (IsX86 && Name == "avx512.mask.store.ss") { in UpgradeIntrinsicCall()
1923 if (IsX86 && (Name.startswith("avx512.mask.store"))) { in UpgradeIntrinsicCall()
1925 bool Aligned = Name[17] != 'u'; // "avx512.mask.storeu". in UpgradeIntrinsicCall()
1936 if (IsX86 && (Name.startswith("sse2.pcmp") || in UpgradeIntrinsicCall()
1937 Name.startswith("avx2.pcmp"))) { in UpgradeIntrinsicCall()
1939 bool CmpEq = Name[9] == 'e'; in UpgradeIntrinsicCall()
1943 } else if (IsX86 && (Name.startswith("avx512.broadcastm"))) { in UpgradeIntrinsicCall()
1951 } else if (IsX86 && (Name == "sse.sqrt.ss" || in UpgradeIntrinsicCall()
1952 Name == "sse2.sqrt.sd")) { in UpgradeIntrinsicCall()
1959 } else if (IsX86 && (Name.startswith("avx.sqrt.p") || in UpgradeIntrinsicCall()
1960 Name.startswith("sse2.sqrt.p") || in UpgradeIntrinsicCall()
1961 Name.startswith("sse.sqrt.p"))) { in UpgradeIntrinsicCall()
1966 } else if (IsX86 && (Name.startswith("avx512.mask.sqrt.p"))) { in UpgradeIntrinsicCall()
1970 Intrinsic::ID IID = Name[18] == 's' ? Intrinsic::x86_avx512_sqrt_ps_512 in UpgradeIntrinsicCall()
1984 } else if (IsX86 && (Name.startswith("avx512.ptestm") || in UpgradeIntrinsicCall()
1985 Name.startswith("avx512.ptestnm"))) { in UpgradeIntrinsicCall()
1993 Name.startswith("avx512.ptestm") ? ICmpInst::ICMP_NE : ICmpInst::ICMP_EQ; in UpgradeIntrinsicCall()
1996 } else if (IsX86 && (Name.startswith("avx512.mask.pbroadcast"))){ in UpgradeIntrinsicCall()
2002 } else if (IsX86 && (Name.startswith("avx512.kunpck"))) { in UpgradeIntrinsicCall()
2021 } else if (IsX86 && Name == "avx512.kand.w") { in UpgradeIntrinsicCall()
2026 } else if (IsX86 && Name == "avx512.kandn.w") { in UpgradeIntrinsicCall()
2032 } else if (IsX86 && Name == "avx512.kor.w") { in UpgradeIntrinsicCall()
2037 } else if (IsX86 && Name == "avx512.kxor.w") { in UpgradeIntrinsicCall()
2042 } else if (IsX86 && Name == "avx512.kxnor.w") { in UpgradeIntrinsicCall()
2048 } else if (IsX86 && Name == "avx512.knot.w") { in UpgradeIntrinsicCall()
2053 (Name == "avx512.kortestz.w" || Name == "avx512.kortestc.w")) { in UpgradeIntrinsicCall()
2059 if (Name[14] == 'c') in UpgradeIntrinsicCall()
2065 } else if (IsX86 && (Name == "sse.add.ss" || Name == "sse2.add.sd" || in UpgradeIntrinsicCall()
2066 Name == "sse.sub.ss" || Name == "sse2.sub.sd" || in UpgradeIntrinsicCall()
2067 Name == "sse.mul.ss" || Name == "sse2.mul.sd" || in UpgradeIntrinsicCall()
2068 Name == "sse.div.ss" || Name == "sse2.div.sd")) { in UpgradeIntrinsicCall()
2075 if (Name.contains(".add.")) in UpgradeIntrinsicCall()
2077 else if (Name.contains(".sub.")) in UpgradeIntrinsicCall()
2079 else if (Name.contains(".mul.")) in UpgradeIntrinsicCall()
2085 } else if (IsX86 && Name.startswith("avx512.mask.pcmp")) { in UpgradeIntrinsicCall()
2087 bool CmpEq = Name[16] == 'e'; in UpgradeIntrinsicCall()
2089 } else if (IsX86 && Name.startswith("avx512.mask.vpshufbitqmb.")) { in UpgradeIntrinsicCall()
2103 } else if (IsX86 && Name.startswith("avx512.mask.fpclass.p")) { in UpgradeIntrinsicCall()
2126 } else if (IsX86 && Name.startswith("avx512.cmp.p")) { in UpgradeIntrinsicCall()
2155 } else if (IsX86 && Name.startswith("avx512.mask.cmp.")) { in UpgradeIntrinsicCall()
2159 } else if (IsX86 && Name.startswith("avx512.mask.ucmp.")) { in UpgradeIntrinsicCall()
2162 } else if (IsX86 && (Name.startswith("avx512.cvtb2mask.") || in UpgradeIntrinsicCall()
2163 Name.startswith("avx512.cvtw2mask.") || in UpgradeIntrinsicCall()
2164 Name.startswith("avx512.cvtd2mask.") || in UpgradeIntrinsicCall()
2165 Name.startswith("avx512.cvtq2mask."))) { in UpgradeIntrinsicCall()
2170 } else if(IsX86 && (Name == "ssse3.pabs.b.128" || in UpgradeIntrinsicCall()
2171 Name == "ssse3.pabs.w.128" || in UpgradeIntrinsicCall()
2172 Name == "ssse3.pabs.d.128" || in UpgradeIntrinsicCall()
2173 Name.startswith("avx2.pabs") || in UpgradeIntrinsicCall()
2174 Name.startswith("avx512.mask.pabs"))) { in UpgradeIntrinsicCall()
2176 } else if (IsX86 && (Name == "sse41.pmaxsb" || in UpgradeIntrinsicCall()
2177 Name == "sse2.pmaxs.w" || in UpgradeIntrinsicCall()
2178 Name == "sse41.pmaxsd" || in UpgradeIntrinsicCall()
2179 Name.startswith("avx2.pmaxs") || in UpgradeIntrinsicCall()
2180 Name.startswith("avx512.mask.pmaxs"))) { in UpgradeIntrinsicCall()
2182 } else if (IsX86 && (Name == "sse2.pmaxu.b" || in UpgradeIntrinsicCall()
2183 Name == "sse41.pmaxuw" || in UpgradeIntrinsicCall()
2184 Name == "sse41.pmaxud" || in UpgradeIntrinsicCall()
2185 Name.startswith("avx2.pmaxu") || in UpgradeIntrinsicCall()
2186 Name.startswith("avx512.mask.pmaxu"))) { in UpgradeIntrinsicCall()
2188 } else if (IsX86 && (Name == "sse41.pminsb" || in UpgradeIntrinsicCall()
2189 Name == "sse2.pmins.w" || in UpgradeIntrinsicCall()
2190 Name == "sse41.pminsd" || in UpgradeIntrinsicCall()
2191 Name.startswith("avx2.pmins") || in UpgradeIntrinsicCall()
2192 Name.startswith("avx512.mask.pmins"))) { in UpgradeIntrinsicCall()
2194 } else if (IsX86 && (Name == "sse2.pminu.b" || in UpgradeIntrinsicCall()
2195 Name == "sse41.pminuw" || in UpgradeIntrinsicCall()
2196 Name == "sse41.pminud" || in UpgradeIntrinsicCall()
2197 Name.startswith("avx2.pminu") || in UpgradeIntrinsicCall()
2198 Name.startswith("avx512.mask.pminu"))) { in UpgradeIntrinsicCall()
2200 } else if (IsX86 && (Name == "sse2.pmulu.dq" || in UpgradeIntrinsicCall()
2201 Name == "avx2.pmulu.dq" || in UpgradeIntrinsicCall()
2202 Name == "avx512.pmulu.dq.512" || in UpgradeIntrinsicCall()
2203 Name.startswith("avx512.mask.pmulu.dq."))) { in UpgradeIntrinsicCall()
2205 } else if (IsX86 && (Name == "sse41.pmuldq" || in UpgradeIntrinsicCall()
2206 Name == "avx2.pmul.dq" || in UpgradeIntrinsicCall()
2207 Name == "avx512.pmul.dq.512" || in UpgradeIntrinsicCall()
2208 Name.startswith("avx512.mask.pmul.dq."))) { in UpgradeIntrinsicCall()
2210 } else if (IsX86 && (Name == "sse.cvtsi2ss" || in UpgradeIntrinsicCall()
2211 Name == "sse2.cvtsi2sd" || in UpgradeIntrinsicCall()
2212 Name == "sse.cvtsi642ss" || in UpgradeIntrinsicCall()
2213 Name == "sse2.cvtsi642sd")) { in UpgradeIntrinsicCall()
2218 } else if (IsX86 && Name == "avx512.cvtusi2sd") { in UpgradeIntrinsicCall()
2223 } else if (IsX86 && Name == "sse2.cvtss2sd") { in UpgradeIntrinsicCall()
2228 } else if (IsX86 && (Name == "sse2.cvtdq2pd" || in UpgradeIntrinsicCall()
2229 Name == "sse2.cvtdq2ps" || in UpgradeIntrinsicCall()
2230 Name == "avx.cvtdq2.pd.256" || in UpgradeIntrinsicCall()
2231 Name == "avx.cvtdq2.ps.256" || in UpgradeIntrinsicCall()
2232 Name.startswith("avx512.mask.cvtdq2pd.") || in UpgradeIntrinsicCall()
2233 Name.startswith("avx512.mask.cvtudq2pd.") || in UpgradeIntrinsicCall()
2234 Name.startswith("avx512.mask.cvtdq2ps.") || in UpgradeIntrinsicCall()
2235 Name.startswith("avx512.mask.cvtudq2ps.") || in UpgradeIntrinsicCall()
2236 Name.startswith("avx512.mask.cvtqq2pd.") || in UpgradeIntrinsicCall()
2237 Name.startswith("avx512.mask.cvtuqq2pd.") || in UpgradeIntrinsicCall()
2238 Name == "avx512.mask.cvtqq2ps.256" || in UpgradeIntrinsicCall()
2239 Name == "avx512.mask.cvtqq2ps.512" || in UpgradeIntrinsicCall()
2240 Name == "avx512.mask.cvtuqq2ps.256" || in UpgradeIntrinsicCall()
2241 Name == "avx512.mask.cvtuqq2ps.512" || in UpgradeIntrinsicCall()
2242 Name == "sse2.cvtps2pd" || in UpgradeIntrinsicCall()
2243 Name == "avx.cvt.ps2.pd.256" || in UpgradeIntrinsicCall()
2244 Name == "avx512.mask.cvtps2pd.128" || in UpgradeIntrinsicCall()
2245 Name == "avx512.mask.cvtps2pd.256")) { in UpgradeIntrinsicCall()
2257 bool IsUnsigned = (StringRef::npos != Name.find("cvtu")); in UpgradeIntrinsicCall()
2276 } else if (IsX86 && (Name.startswith("avx512.mask.vcvtph2ps.") || in UpgradeIntrinsicCall()
2277 Name.startswith("vcvtph2ps."))) { in UpgradeIntrinsicCall()
2292 } else if (IsX86 && (Name.startswith("avx512.mask.loadu."))) { in UpgradeIntrinsicCall()
2296 } else if (IsX86 && (Name.startswith("avx512.mask.load."))) { in UpgradeIntrinsicCall()
2300 } else if (IsX86 && Name.startswith("avx512.mask.expand.load.")) { in UpgradeIntrinsicCall()
2315 } else if (IsX86 && Name.startswith("avx512.mask.compress.store.")) { in UpgradeIntrinsicCall()
2331 } else if (IsX86 && (Name.startswith("avx512.mask.compress.") || in UpgradeIntrinsicCall()
2332 Name.startswith("avx512.mask.expand."))) { in UpgradeIntrinsicCall()
2338 bool IsCompress = Name[12] == 'c'; in UpgradeIntrinsicCall()
2344 } else if (IsX86 && Name.startswith("xop.vpcom")) { in UpgradeIntrinsicCall()
2346 if (Name.endswith("ub") || Name.endswith("uw") || Name.endswith("ud") || in UpgradeIntrinsicCall()
2347 Name.endswith("uq")) in UpgradeIntrinsicCall()
2349 else if (Name.endswith("b") || Name.endswith("w") || Name.endswith("d") || in UpgradeIntrinsicCall()
2350 Name.endswith("q")) in UpgradeIntrinsicCall()
2359 Name = Name.substr(9); // strip off "xop.vpcom" in UpgradeIntrinsicCall()
2360 if (Name.startswith("lt")) in UpgradeIntrinsicCall()
2362 else if (Name.startswith("le")) in UpgradeIntrinsicCall()
2364 else if (Name.startswith("gt")) in UpgradeIntrinsicCall()
2366 else if (Name.startswith("ge")) in UpgradeIntrinsicCall()
2368 else if (Name.startswith("eq")) in UpgradeIntrinsicCall()
2370 else if (Name.startswith("ne")) in UpgradeIntrinsicCall()
2372 else if (Name.startswith("false")) in UpgradeIntrinsicCall()
2374 else if (Name.startswith("true")) in UpgradeIntrinsicCall()
2381 } else if (IsX86 && Name.startswith("xop.vpcmov")) { in UpgradeIntrinsicCall()
2387 } else if (IsX86 && (Name.startswith("xop.vprot") || in UpgradeIntrinsicCall()
2388 Name.startswith("avx512.prol") || in UpgradeIntrinsicCall()
2389 Name.startswith("avx512.mask.prol"))) { in UpgradeIntrinsicCall()
2391 } else if (IsX86 && (Name.startswith("avx512.pror") || in UpgradeIntrinsicCall()
2392 Name.startswith("avx512.mask.pror"))) { in UpgradeIntrinsicCall()
2394 } else if (IsX86 && (Name.startswith("avx512.vpshld.") || in UpgradeIntrinsicCall()
2395 Name.startswith("avx512.mask.vpshld") || in UpgradeIntrinsicCall()
2396 Name.startswith("avx512.maskz.vpshld"))) { in UpgradeIntrinsicCall()
2397 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
2399 } else if (IsX86 && (Name.startswith("avx512.vpshrd.") || in UpgradeIntrinsicCall()
2400 Name.startswith("avx512.mask.vpshrd") || in UpgradeIntrinsicCall()
2401 Name.startswith("avx512.maskz.vpshrd"))) { in UpgradeIntrinsicCall()
2402 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
2404 } else if (IsX86 && Name == "sse42.crc32.64.8") { in UpgradeIntrinsicCall()
2410 } else if (IsX86 && (Name.startswith("avx.vbroadcast.s") || in UpgradeIntrinsicCall()
2411 Name.startswith("avx512.vbroadcast.s"))) { in UpgradeIntrinsicCall()
2424 } else if (IsX86 && (Name.startswith("sse41.pmovsx") || in UpgradeIntrinsicCall()
2425 Name.startswith("sse41.pmovzx") || in UpgradeIntrinsicCall()
2426 Name.startswith("avx2.pmovsx") || in UpgradeIntrinsicCall()
2427 Name.startswith("avx2.pmovzx") || in UpgradeIntrinsicCall()
2428 Name.startswith("avx512.mask.pmovsx") || in UpgradeIntrinsicCall()
2429 Name.startswith("avx512.mask.pmovzx"))) { in UpgradeIntrinsicCall()
2441 bool DoSext = (StringRef::npos != Name.find("pmovsx")); in UpgradeIntrinsicCall()
2448 } else if (Name == "avx512.mask.pmov.qd.256" || in UpgradeIntrinsicCall()
2449 Name == "avx512.mask.pmov.qd.512" || in UpgradeIntrinsicCall()
2450 Name == "avx512.mask.pmov.wb.256" || in UpgradeIntrinsicCall()
2451 Name == "avx512.mask.pmov.wb.512") { in UpgradeIntrinsicCall()
2456 } else if (IsX86 && (Name.startswith("avx.vbroadcastf128") || in UpgradeIntrinsicCall()
2457 Name == "avx2.vbroadcasti128")) { in UpgradeIntrinsicCall()
2470 } else if (IsX86 && (Name.startswith("avx512.mask.shuf.i") || in UpgradeIntrinsicCall()
2471 Name.startswith("avx512.mask.shuf.f"))) { in UpgradeIntrinsicCall()
2492 }else if (IsX86 && (Name.startswith("avx512.mask.broadcastf") || in UpgradeIntrinsicCall()
2493 Name.startswith("avx512.mask.broadcasti"))) { in UpgradeIntrinsicCall()
2509 } else if (IsX86 && (Name.startswith("avx2.pbroadcast") || in UpgradeIntrinsicCall()
2510 Name.startswith("avx2.vbroadcast") || in UpgradeIntrinsicCall()
2511 Name.startswith("avx512.pbroadcast") || in UpgradeIntrinsicCall()
2512 Name.startswith("avx512.mask.broadcast.s"))) { in UpgradeIntrinsicCall()
2524 } else if (IsX86 && (Name.startswith("sse2.padds.") || in UpgradeIntrinsicCall()
2525 Name.startswith("avx2.padds.") || in UpgradeIntrinsicCall()
2526 Name.startswith("avx512.padds.") || in UpgradeIntrinsicCall()
2527 Name.startswith("avx512.mask.padds."))) { in UpgradeIntrinsicCall()
2529 } else if (IsX86 && (Name.startswith("sse2.psubs.") || in UpgradeIntrinsicCall()
2530 Name.startswith("avx2.psubs.") || in UpgradeIntrinsicCall()
2531 Name.startswith("avx512.psubs.") || in UpgradeIntrinsicCall()
2532 Name.startswith("avx512.mask.psubs."))) { in UpgradeIntrinsicCall()
2534 } else if (IsX86 && (Name.startswith("sse2.paddus.") || in UpgradeIntrinsicCall()
2535 Name.startswith("avx2.paddus.") || in UpgradeIntrinsicCall()
2536 Name.startswith("avx512.mask.paddus."))) { in UpgradeIntrinsicCall()
2538 } else if (IsX86 && (Name.startswith("sse2.psubus.") || in UpgradeIntrinsicCall()
2539 Name.startswith("avx2.psubus.") || in UpgradeIntrinsicCall()
2540 Name.startswith("avx512.mask.psubus."))) { in UpgradeIntrinsicCall()
2542 } else if (IsX86 && Name.startswith("avx512.mask.palignr.")) { in UpgradeIntrinsicCall()
2549 } else if (IsX86 && Name.startswith("avx512.mask.valign.")) { in UpgradeIntrinsicCall()
2556 } else if (IsX86 && (Name == "sse2.psll.dq" || in UpgradeIntrinsicCall()
2557 Name == "avx2.psll.dq")) { in UpgradeIntrinsicCall()
2562 } else if (IsX86 && (Name == "sse2.psrl.dq" || in UpgradeIntrinsicCall()
2563 Name == "avx2.psrl.dq")) { in UpgradeIntrinsicCall()
2568 } else if (IsX86 && (Name == "sse2.psll.dq.bs" || in UpgradeIntrinsicCall()
2569 Name == "avx2.psll.dq.bs" || in UpgradeIntrinsicCall()
2570 Name == "avx512.psll.dq.512")) { in UpgradeIntrinsicCall()
2574 } else if (IsX86 && (Name == "sse2.psrl.dq.bs" || in UpgradeIntrinsicCall()
2575 Name == "avx2.psrl.dq.bs" || in UpgradeIntrinsicCall()
2576 Name == "avx512.psrl.dq.512")) { in UpgradeIntrinsicCall()
2580 } else if (IsX86 && (Name == "sse41.pblendw" || in UpgradeIntrinsicCall()
2581 Name.startswith("sse41.blendp") || in UpgradeIntrinsicCall()
2582 Name.startswith("avx.blend.p") || in UpgradeIntrinsicCall()
2583 Name == "avx2.pblendw" || in UpgradeIntrinsicCall()
2584 Name.startswith("avx2.pblendd."))) { in UpgradeIntrinsicCall()
2596 } else if (IsX86 && (Name.startswith("avx.vinsertf128.") || in UpgradeIntrinsicCall()
2597 Name == "avx2.vinserti128" || in UpgradeIntrinsicCall()
2598 Name.startswith("avx512.mask.insert"))) { in UpgradeIntrinsicCall()
2642 } else if (IsX86 && (Name.startswith("avx.vextractf128.") || in UpgradeIntrinsicCall()
2643 Name == "avx2.vextracti128" || in UpgradeIntrinsicCall()
2644 Name.startswith("avx512.mask.vextract"))) { in UpgradeIntrinsicCall()
2667 } else if (!IsX86 && Name == "stackprotectorcheck") { in UpgradeIntrinsicCall()
2669 } else if (IsX86 && (Name.startswith("avx512.mask.perm.df.") || in UpgradeIntrinsicCall()
2670 Name.startswith("avx512.mask.perm.di."))) { in UpgradeIntrinsicCall()
2685 } else if (IsX86 && (Name.startswith("avx.vperm2f128.") || in UpgradeIntrinsicCall()
2686 Name == "avx2.vperm2i128")) { in UpgradeIntrinsicCall()
2721 } else if (IsX86 && (Name.startswith("avx.vpermil.") || in UpgradeIntrinsicCall()
2722 Name == "sse2.pshuf.d" || in UpgradeIntrinsicCall()
2723 Name.startswith("avx512.mask.vpermil.p") || in UpgradeIntrinsicCall()
2724 Name.startswith("avx512.mask.pshuf.d."))) { in UpgradeIntrinsicCall()
2745 } else if (IsX86 && (Name == "sse2.pshufl.w" || in UpgradeIntrinsicCall()
2746 Name.startswith("avx512.mask.pshufl.w."))) { in UpgradeIntrinsicCall()
2764 } else if (IsX86 && (Name == "sse2.pshufh.w" || in UpgradeIntrinsicCall()
2765 Name.startswith("avx512.mask.pshufh.w."))) { in UpgradeIntrinsicCall()
2783 } else if (IsX86 && Name.startswith("avx512.mask.shuf.p")) { in UpgradeIntrinsicCall()
2808 } else if (IsX86 && (Name.startswith("avx512.mask.movddup") || in UpgradeIntrinsicCall()
2809 Name.startswith("avx512.mask.movshdup") || in UpgradeIntrinsicCall()
2810 Name.startswith("avx512.mask.movsldup"))) { in UpgradeIntrinsicCall()
2816 if (Name.startswith("avx512.mask.movshdup.")) in UpgradeIntrinsicCall()
2830 } else if (IsX86 && (Name.startswith("avx512.mask.punpckl") || in UpgradeIntrinsicCall()
2831 Name.startswith("avx512.mask.unpckl."))) { in UpgradeIntrinsicCall()
2846 } else if (IsX86 && (Name.startswith("avx512.mask.punpckh") || in UpgradeIntrinsicCall()
2847 Name.startswith("avx512.mask.unpckh."))) { in UpgradeIntrinsicCall()
2862 } else if (IsX86 && (Name.startswith("avx512.mask.and.") || in UpgradeIntrinsicCall()
2863 Name.startswith("avx512.mask.pand."))) { in UpgradeIntrinsicCall()
2871 } else if (IsX86 && (Name.startswith("avx512.mask.andn.") || in UpgradeIntrinsicCall()
2872 Name.startswith("avx512.mask.pandn."))) { in UpgradeIntrinsicCall()
2881 } else if (IsX86 && (Name.startswith("avx512.mask.or.") || in UpgradeIntrinsicCall()
2882 Name.startswith("avx512.mask.por."))) { in UpgradeIntrinsicCall()
2890 } else if (IsX86 && (Name.startswith("avx512.mask.xor.") || in UpgradeIntrinsicCall()
2891 Name.startswith("avx512.mask.pxor."))) { in UpgradeIntrinsicCall()
2899 } else if (IsX86 && Name.startswith("avx512.mask.padd.")) { in UpgradeIntrinsicCall()
2903 } else if (IsX86 && Name.startswith("avx512.mask.psub.")) { in UpgradeIntrinsicCall()
2907 } else if (IsX86 && Name.startswith("avx512.mask.pmull.")) { in UpgradeIntrinsicCall()
2911 } else if (IsX86 && Name.startswith("avx512.mask.add.p")) { in UpgradeIntrinsicCall()
2912 if (Name.endswith(".512")) { in UpgradeIntrinsicCall()
2914 if (Name[17] == 's') in UpgradeIntrinsicCall()
2927 } else if (IsX86 && Name.startswith("avx512.mask.div.p")) { in UpgradeIntrinsicCall()
2928 if (Name.endswith(".512")) { in UpgradeIntrinsicCall()
2930 if (Name[17] == 's') in UpgradeIntrinsicCall()
2943 } else if (IsX86 && Name.startswith("avx512.mask.mul.p")) { in UpgradeIntrinsicCall()
2944 if (Name.endswith(".512")) { in UpgradeIntrinsicCall()
2946 if (Name[17] == 's') in UpgradeIntrinsicCall()
2959 } else if (IsX86 && Name.startswith("avx512.mask.sub.p")) { in UpgradeIntrinsicCall()
2960 if (Name.endswith(".512")) { in UpgradeIntrinsicCall()
2962 if (Name[17] == 's') in UpgradeIntrinsicCall()
2975 } else if (IsX86 && (Name.startswith("avx512.mask.max.p") || in UpgradeIntrinsicCall()
2976 Name.startswith("avx512.mask.min.p")) && in UpgradeIntrinsicCall()
2977 Name.drop_front(18) == ".512") { in UpgradeIntrinsicCall()
2978 bool IsDouble = Name[17] == 'd'; in UpgradeIntrinsicCall()
2979 bool IsMin = Name[13] == 'i'; in UpgradeIntrinsicCall()
2991 } else if (IsX86 && Name.startswith("avx512.mask.lzcnt.")) { in UpgradeIntrinsicCall()
2998 } else if (IsX86 && Name.startswith("avx512.mask.psll")) { in UpgradeIntrinsicCall()
2999 bool IsImmediate = Name[16] == 'i' || in UpgradeIntrinsicCall()
3000 (Name.size() > 18 && Name[18] == 'i'); in UpgradeIntrinsicCall()
3001 bool IsVariable = Name[16] == 'v'; in UpgradeIntrinsicCall()
3002 char Size = Name[16] == '.' ? Name[17] : in UpgradeIntrinsicCall()
3003 Name[17] == '.' ? Name[18] : in UpgradeIntrinsicCall()
3004 Name[18] == '.' ? Name[19] : in UpgradeIntrinsicCall()
3005 Name[20]; in UpgradeIntrinsicCall()
3008 if (IsVariable && Name[17] != '.') { in UpgradeIntrinsicCall()
3009 if (Size == 'd' && Name[17] == '2') // avx512.mask.psllv2.di in UpgradeIntrinsicCall()
3011 else if (Size == 'd' && Name[17] == '4') // avx512.mask.psllv4.di in UpgradeIntrinsicCall()
3013 else if (Size == 's' && Name[17] == '4') // avx512.mask.psllv4.si in UpgradeIntrinsicCall()
3015 else if (Size == 's' && Name[17] == '8') // avx512.mask.psllv8.si in UpgradeIntrinsicCall()
3017 else if (Size == 'h' && Name[17] == '8') // avx512.mask.psllv8.hi in UpgradeIntrinsicCall()
3019 else if (Size == 'h' && Name[17] == '1') // avx512.mask.psllv16.hi in UpgradeIntrinsicCall()
3021 else if (Name[17] == '3' && Name[18] == '2') // avx512.mask.psllv32hi in UpgradeIntrinsicCall()
3025 } else if (Name.endswith(".128")) { in UpgradeIntrinsicCall()
3037 } else if (Name.endswith(".256")) { in UpgradeIntrinsicCall()
3066 } else if (IsX86 && Name.startswith("avx512.mask.psrl")) { in UpgradeIntrinsicCall()
3067 bool IsImmediate = Name[16] == 'i' || in UpgradeIntrinsicCall()
3068 (Name.size() > 18 && Name[18] == 'i'); in UpgradeIntrinsicCall()
3069 bool IsVariable = Name[16] == 'v'; in UpgradeIntrinsicCall()
3070 char Size = Name[16] == '.' ? Name[17] : in UpgradeIntrinsicCall()
3071 Name[17] == '.' ? Name[18] : in UpgradeIntrinsicCall()
3072 Name[18] == '.' ? Name[19] : in UpgradeIntrinsicCall()
3073 Name[20]; in UpgradeIntrinsicCall()
3076 if (IsVariable && Name[17] != '.') { in UpgradeIntrinsicCall()
3077 if (Size == 'd' && Name[17] == '2') // avx512.mask.psrlv2.di in UpgradeIntrinsicCall()
3079 else if (Size == 'd' && Name[17] == '4') // avx512.mask.psrlv4.di in UpgradeIntrinsicCall()
3081 else if (Size == 's' && Name[17] == '4') // avx512.mask.psrlv4.si in UpgradeIntrinsicCall()
3083 else if (Size == 's' && Name[17] == '8') // avx512.mask.psrlv8.si in UpgradeIntrinsicCall()
3085 else if (Size == 'h' && Name[17] == '8') // avx512.mask.psrlv8.hi in UpgradeIntrinsicCall()
3087 else if (Size == 'h' && Name[17] == '1') // avx512.mask.psrlv16.hi in UpgradeIntrinsicCall()
3089 else if (Name[17] == '3' && Name[18] == '2') // avx512.mask.psrlv32hi in UpgradeIntrinsicCall()
3093 } else if (Name.endswith(".128")) { in UpgradeIntrinsicCall()
3105 } else if (Name.endswith(".256")) { in UpgradeIntrinsicCall()
3134 } else if (IsX86 && Name.startswith("avx512.mask.psra")) { in UpgradeIntrinsicCall()
3135 bool IsImmediate = Name[16] == 'i' || in UpgradeIntrinsicCall()
3136 (Name.size() > 18 && Name[18] == 'i'); in UpgradeIntrinsicCall()
3137 bool IsVariable = Name[16] == 'v'; in UpgradeIntrinsicCall()
3138 char Size = Name[16] == '.' ? Name[17] : in UpgradeIntrinsicCall()
3139 Name[17] == '.' ? Name[18] : in UpgradeIntrinsicCall()
3140 Name[18] == '.' ? Name[19] : in UpgradeIntrinsicCall()
3141 Name[20]; in UpgradeIntrinsicCall()
3144 if (IsVariable && Name[17] != '.') { in UpgradeIntrinsicCall()
3145 if (Size == 's' && Name[17] == '4') // avx512.mask.psrav4.si in UpgradeIntrinsicCall()
3147 else if (Size == 's' && Name[17] == '8') // avx512.mask.psrav8.si in UpgradeIntrinsicCall()
3149 else if (Size == 'h' && Name[17] == '8') // avx512.mask.psrav8.hi in UpgradeIntrinsicCall()
3151 else if (Size == 'h' && Name[17] == '1') // avx512.mask.psrav16.hi in UpgradeIntrinsicCall()
3153 else if (Name[17] == '3' && Name[18] == '2') // avx512.mask.psrav32hi in UpgradeIntrinsicCall()
3157 } else if (Name.endswith(".128")) { in UpgradeIntrinsicCall()
3170 } else if (Name.endswith(".256")) { in UpgradeIntrinsicCall()
3200 } else if (IsX86 && Name.startswith("avx512.mask.move.s")) { in UpgradeIntrinsicCall()
3202 } else if (IsX86 && Name.startswith("avx512.cvtmask2")) { in UpgradeIntrinsicCall()
3204 } else if (IsX86 && Name.endswith(".movntdqa")) { in UpgradeIntrinsicCall()
3219 } else if (IsX86 && (Name.startswith("fma.vfmadd.") || in UpgradeIntrinsicCall()
3220 Name.startswith("fma.vfmsub.") || in UpgradeIntrinsicCall()
3221 Name.startswith("fma.vfnmadd.") || in UpgradeIntrinsicCall()
3222 Name.startswith("fma.vfnmsub."))) { in UpgradeIntrinsicCall()
3223 bool NegMul = Name[6] == 'n'; in UpgradeIntrinsicCall()
3224 bool NegAcc = NegMul ? Name[8] == 's' : Name[7] == 's'; in UpgradeIntrinsicCall()
3225 bool IsScalar = NegMul ? Name[12] == 's' : Name[11] == 's'; in UpgradeIntrinsicCall()
3251 } else if (IsX86 && Name.startswith("fma4.vfmadd.s")) { in UpgradeIntrinsicCall()
3266 } else if (IsX86 && (Name.startswith("avx512.mask.vfmadd.s") || in UpgradeIntrinsicCall()
3267 Name.startswith("avx512.maskz.vfmadd.s") || in UpgradeIntrinsicCall()
3268 Name.startswith("avx512.mask3.vfmadd.s") || in UpgradeIntrinsicCall()
3269 Name.startswith("avx512.mask3.vfmsub.s") || in UpgradeIntrinsicCall()
3270 Name.startswith("avx512.mask3.vfnmsub.s"))) { in UpgradeIntrinsicCall()
3271 bool IsMask3 = Name[11] == '3'; in UpgradeIntrinsicCall()
3272 bool IsMaskZ = Name[11] == 'z'; in UpgradeIntrinsicCall()
3274 Name = Name.drop_front(IsMask3 || IsMaskZ ? 13 : 12); in UpgradeIntrinsicCall()
3275 bool NegMul = Name[2] == 'n'; in UpgradeIntrinsicCall()
3276 bool NegAcc = NegMul ? Name[4] == 's' : Name[3] == 's'; in UpgradeIntrinsicCall()
3298 if (Name.back() == 'd') in UpgradeIntrinsicCall()
3324 } else if (IsX86 && (Name.startswith("avx512.mask.vfmadd.p") || in UpgradeIntrinsicCall()
3325 Name.startswith("avx512.mask.vfnmadd.p") || in UpgradeIntrinsicCall()
3326 Name.startswith("avx512.mask.vfnmsub.p") || in UpgradeIntrinsicCall()
3327 Name.startswith("avx512.mask3.vfmadd.p") || in UpgradeIntrinsicCall()
3328 Name.startswith("avx512.mask3.vfmsub.p") || in UpgradeIntrinsicCall()
3329 Name.startswith("avx512.mask3.vfnmsub.p") || in UpgradeIntrinsicCall()
3330 Name.startswith("avx512.maskz.vfmadd.p"))) { in UpgradeIntrinsicCall()
3331 bool IsMask3 = Name[11] == '3'; in UpgradeIntrinsicCall()
3332 bool IsMaskZ = Name[11] == 'z'; in UpgradeIntrinsicCall()
3334 Name = Name.drop_front(IsMask3 || IsMaskZ ? 13 : 12); in UpgradeIntrinsicCall()
3335 bool NegMul = Name[2] == 'n'; in UpgradeIntrinsicCall()
3336 bool NegAcc = NegMul ? Name[4] == 's' : Name[3] == 's'; in UpgradeIntrinsicCall()
3354 if (Name[Name.size()-5] == 's') in UpgradeIntrinsicCall()
3373 } else if (IsX86 && Name.startswith("fma.vfmsubadd.p")) { in UpgradeIntrinsicCall()
3393 } else if (IsX86 && (Name.startswith("avx512.mask.vfmaddsub.p") || in UpgradeIntrinsicCall()
3394 Name.startswith("avx512.mask3.vfmaddsub.p") || in UpgradeIntrinsicCall()
3395 Name.startswith("avx512.maskz.vfmaddsub.p") || in UpgradeIntrinsicCall()
3396 Name.startswith("avx512.mask3.vfmsubadd.p"))) { in UpgradeIntrinsicCall()
3397 bool IsMask3 = Name[11] == '3'; in UpgradeIntrinsicCall()
3398 bool IsMaskZ = Name[11] == 'z'; in UpgradeIntrinsicCall()
3400 Name = Name.drop_front(IsMask3 || IsMaskZ ? 13 : 12); in UpgradeIntrinsicCall()
3401 bool IsSubAdd = Name[3] == 's'; in UpgradeIntrinsicCall()
3405 if (Name[Name.size()-5] == 's') in UpgradeIntrinsicCall()
3444 } else if (IsX86 && (Name.startswith("avx512.mask.pternlog.") || in UpgradeIntrinsicCall()
3445 Name.startswith("avx512.maskz.pternlog."))) { in UpgradeIntrinsicCall()
3446 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
3472 } else if (IsX86 && (Name.startswith("avx512.mask.vpmadd52") || in UpgradeIntrinsicCall()
3473 Name.startswith("avx512.maskz.vpmadd52"))) { in UpgradeIntrinsicCall()
3474 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
3475 bool High = Name[20] == 'h' || Name[21] == 'h'; in UpgradeIntrinsicCall()
3500 } else if (IsX86 && (Name.startswith("avx512.mask.vpermi2var.") || in UpgradeIntrinsicCall()
3501 Name.startswith("avx512.mask.vpermt2var.") || in UpgradeIntrinsicCall()
3502 Name.startswith("avx512.maskz.vpermt2var."))) { in UpgradeIntrinsicCall()
3503 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
3504 bool IndexForm = Name[17] == 'i'; in UpgradeIntrinsicCall()
3506 } else if (IsX86 && (Name.startswith("avx512.mask.vpdpbusd.") || in UpgradeIntrinsicCall()
3507 Name.startswith("avx512.maskz.vpdpbusd.") || in UpgradeIntrinsicCall()
3508 Name.startswith("avx512.mask.vpdpbusds.") || in UpgradeIntrinsicCall()
3509 Name.startswith("avx512.maskz.vpdpbusds."))) { in UpgradeIntrinsicCall()
3510 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
3511 bool IsSaturating = Name[ZeroMask ? 21 : 20] == 's'; in UpgradeIntrinsicCall()
3536 } else if (IsX86 && (Name.startswith("avx512.mask.vpdpwssd.") || in UpgradeIntrinsicCall()
3537 Name.startswith("avx512.maskz.vpdpwssd.") || in UpgradeIntrinsicCall()
3538 Name.startswith("avx512.mask.vpdpwssds.") || in UpgradeIntrinsicCall()
3539 Name.startswith("avx512.maskz.vpdpwssds."))) { in UpgradeIntrinsicCall()
3540 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
3541 bool IsSaturating = Name[ZeroMask ? 21 : 20] == 's'; in UpgradeIntrinsicCall()
3566 } else if (IsX86 && (Name == "addcarryx.u32" || Name == "addcarryx.u64" || in UpgradeIntrinsicCall()
3567 Name == "addcarry.u32" || Name == "addcarry.u64" || in UpgradeIntrinsicCall()
3568 Name == "subborrow.u32" || Name == "subborrow.u64")) { in UpgradeIntrinsicCall()
3570 if (Name[0] == 'a' && Name.back() == '2') in UpgradeIntrinsicCall()
3572 else if (Name[0] == 'a' && Name.back() == '4') in UpgradeIntrinsicCall()
3574 else if (Name[0] == 's' && Name.back() == '2') in UpgradeIntrinsicCall()
3576 else if (Name[0] == 's' && Name.back() == '4') in UpgradeIntrinsicCall()
3599 } else if (IsX86 && Name.startswith("avx512.mask.") && in UpgradeIntrinsicCall()
3600 upgradeAVX512MaskToSelect(Name, Builder, *CI, Rep)) { in UpgradeIntrinsicCall()
3602 } else if (IsNVVM && (Name == "abs.i" || Name == "abs.ll")) { in UpgradeIntrinsicCall()
3608 } else if (IsNVVM && (Name.startswith("atomic.load.add.f32.p") || in UpgradeIntrinsicCall()
3609 Name.startswith("atomic.load.add.f64.p"))) { in UpgradeIntrinsicCall()
3614 } else if (IsNVVM && (Name == "max.i" || Name == "max.ll" || in UpgradeIntrinsicCall()
3615 Name == "max.ui" || Name == "max.ull")) { in UpgradeIntrinsicCall()
3618 Value *Cmp = Name.endswith(".ui") || Name.endswith(".ull") in UpgradeIntrinsicCall()
3622 } else if (IsNVVM && (Name == "min.i" || Name == "min.ll" || in UpgradeIntrinsicCall()
3623 Name == "min.ui" || Name == "min.ull")) { in UpgradeIntrinsicCall()
3626 Value *Cmp = Name.endswith(".ui") || Name.endswith(".ull") in UpgradeIntrinsicCall()
3630 } else if (IsNVVM && Name == "clz.ll") { in UpgradeIntrinsicCall()
3638 } else if (IsNVVM && Name == "popc.ll") { in UpgradeIntrinsicCall()
3647 } else if (IsNVVM && Name == "h2f") { in UpgradeIntrinsicCall()