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 (vstRegex.match(Name)) { in UpgradeIntrinsicFunction1()
593 if (!Name.contains("lane")) in UpgradeIntrinsicFunction1()
601 if (Name == "aarch64.thread.pointer" || Name == "arm.thread.pointer") { in UpgradeIntrinsicFunction1()
605 if (Name.startswith("arm.neon.vqadds.")) { in UpgradeIntrinsicFunction1()
610 if (Name.startswith("arm.neon.vqaddu.")) { in UpgradeIntrinsicFunction1()
615 if (Name.startswith("arm.neon.vqsubs.")) { in UpgradeIntrinsicFunction1()
620 if (Name.startswith("arm.neon.vqsubu.")) { in UpgradeIntrinsicFunction1()
625 if (Name.startswith("aarch64.neon.addp")) { in UpgradeIntrinsicFunction1()
638 if ((Name.startswith("arm.neon.bfdot.") || in UpgradeIntrinsicFunction1()
639 Name.startswith("aarch64.neon.bfdot.")) && in UpgradeIntrinsicFunction1()
640 Name.endswith("i8")) { in UpgradeIntrinsicFunction1()
642 StringSwitch<Intrinsic::ID>(Name) in UpgradeIntrinsicFunction1()
667 if ((Name.startswith("arm.neon.bfm") || in UpgradeIntrinsicFunction1()
668 Name.startswith("aarch64.neon.bfm")) && in UpgradeIntrinsicFunction1()
669 Name.endswith(".v4f32.v16i8")) { in UpgradeIntrinsicFunction1()
671 StringSwitch<Intrinsic::ID>(Name) in UpgradeIntrinsicFunction1()
693 if (Name == "arm.mve.vctp64" && in UpgradeIntrinsicFunction1()
701 if (Name == "arm.mve.mull.int.predicated.v2i64.v4i32.v4i1" || in UpgradeIntrinsicFunction1()
702 Name == "arm.mve.vqdmull.predicated.v2i64.v4i32.v4i1" || in UpgradeIntrinsicFunction1()
703 Name == "arm.mve.vldr.gather.base.predicated.v2i64.v2i64.v4i1" || in UpgradeIntrinsicFunction1()
704 Name == "arm.mve.vldr.gather.base.wb.predicated.v2i64.v2i64.v4i1" || in UpgradeIntrinsicFunction1()
705 Name == "arm.mve.vldr.gather.offset.predicated.v2i64.p0i64.v2i64.v4i1" || in UpgradeIntrinsicFunction1()
706 Name == "arm.mve.vstr.scatter.base.predicated.v2i64.v2i64.v4i1" || in UpgradeIntrinsicFunction1()
707 Name == "arm.mve.vstr.scatter.base.wb.predicated.v2i64.v2i64.v4i1" || in UpgradeIntrinsicFunction1()
708 Name == "arm.mve.vstr.scatter.offset.predicated.p0i64.v2i64.v2i64.v4i1" || in UpgradeIntrinsicFunction1()
709 Name == "arm.cde.vcx1q.predicated.v2i64.v4i1" || in UpgradeIntrinsicFunction1()
710 Name == "arm.cde.vcx1qa.predicated.v2i64.v4i1" || in UpgradeIntrinsicFunction1()
711 Name == "arm.cde.vcx2q.predicated.v2i64.v4i1" || in UpgradeIntrinsicFunction1()
712 Name == "arm.cde.vcx2qa.predicated.v2i64.v4i1" || in UpgradeIntrinsicFunction1()
713 Name == "arm.cde.vcx3q.predicated.v2i64.v4i1" || in UpgradeIntrinsicFunction1()
714 Name == "arm.cde.vcx3qa.predicated.v2i64.v4i1") in UpgradeIntrinsicFunction1()
717 if (Name == "amdgcn.alignbit") { in UpgradeIntrinsicFunction1()
728 if (Name.startswith("ctlz.") && F->arg_size() == 1) { in UpgradeIntrinsicFunction1()
734 if (Name.startswith("cttz.") && F->arg_size() == 1) { in UpgradeIntrinsicFunction1()
743 if (Name == "dbg.value" && F->arg_size() == 4) { in UpgradeIntrinsicFunction1()
751 if (Name.startswith("experimental.vector.extract.")) { in UpgradeIntrinsicFunction1()
759 if (Name.startswith("experimental.vector.insert.")) { in UpgradeIntrinsicFunction1()
770 if (R.match(Name, &Groups)) { in UpgradeIntrinsicFunction1()
795 if (R2.match(Name, &Groups)) { in UpgradeIntrinsicFunction1()
813 bool IsLifetimeStart = Name.startswith("lifetime.start"); in UpgradeIntrinsicFunction1()
814 if (IsLifetimeStart || Name.startswith("invariant.start")) { in UpgradeIntrinsicFunction1()
826 bool IsLifetimeEnd = Name.startswith("lifetime.end"); in UpgradeIntrinsicFunction1()
827 if (IsLifetimeEnd || Name.startswith("invariant.end")) { in UpgradeIntrinsicFunction1()
839 if (Name.startswith("invariant.group.barrier")) { in UpgradeIntrinsicFunction1()
853 if (Name.startswith("masked.load.")) { in UpgradeIntrinsicFunction1()
864 if (Name.startswith("masked.store.")) { in UpgradeIntrinsicFunction1()
878 if (Name.startswith("masked.gather.")) { in UpgradeIntrinsicFunction1()
888 if (Name.startswith("masked.scatter.")) { in UpgradeIntrinsicFunction1()
902 if (Name.startswith("memcpy.") && F->arg_size() == 5) { in UpgradeIntrinsicFunction1()
910 if (Name.startswith("memmove.") && F->arg_size() == 5) { in UpgradeIntrinsicFunction1()
918 if (Name.startswith("memset.") && F->arg_size() == 5) { in UpgradeIntrinsicFunction1()
933 if (Name.startswith("nvvm.")) { in UpgradeIntrinsicFunction1()
934 Name = Name.substr(5); in UpgradeIntrinsicFunction1()
937 Intrinsic::ID IID = StringSwitch<Intrinsic::ID>(Name) in UpgradeIntrinsicFunction1()
952 bool Expand = StringSwitch<bool>(Name) in UpgradeIntrinsicFunction1()
970 if (Name.startswith("objectsize.")) { in UpgradeIntrinsicFunction1()
984 if (Name == "prefetch") { in UpgradeIntrinsicFunction1()
994 } else if (Name.startswith("ptr.annotation.") && F->arg_size() == 4) { in UpgradeIntrinsicFunction1()
1004 if (Name == "stackprotectorcheck") { in UpgradeIntrinsicFunction1()
1011 if (Name == "var.annotation" && F->arg_size() == 4) { in UpgradeIntrinsicFunction1()
1021 if (UpgradeX86IntrinsicFunction(F, Name, NewFn)) in UpgradeIntrinsicFunction1()
1037 std::string Name = F->getName().str(); in UpgradeIntrinsicFunction1() local
1040 Name, F->getParent()); in UpgradeIntrinsicFunction1()
1618 static bool upgradeAVX512MaskToSelect(StringRef Name, IRBuilder<> &Builder, in upgradeAVX512MaskToSelect() argument
1620 Name = Name.substr(12); // Remove avx512.mask. in upgradeAVX512MaskToSelect()
1625 if (Name.startswith("max.p")) { in upgradeAVX512MaskToSelect()
1636 } else if (Name.startswith("min.p")) { in upgradeAVX512MaskToSelect()
1647 } else if (Name.startswith("pshuf.b.")) { in upgradeAVX512MaskToSelect()
1656 } else if (Name.startswith("pmul.hr.sw.")) { in upgradeAVX512MaskToSelect()
1665 } else if (Name.startswith("pmulh.w.")) { in upgradeAVX512MaskToSelect()
1674 } else if (Name.startswith("pmulhu.w.")) { in upgradeAVX512MaskToSelect()
1683 } else if (Name.startswith("pmaddw.d.")) { in upgradeAVX512MaskToSelect()
1692 } else if (Name.startswith("pmaddubs.w.")) { in upgradeAVX512MaskToSelect()
1701 } else if (Name.startswith("packsswb.")) { in upgradeAVX512MaskToSelect()
1710 } else if (Name.startswith("packssdw.")) { in upgradeAVX512MaskToSelect()
1719 } else if (Name.startswith("packuswb.")) { in upgradeAVX512MaskToSelect()
1728 } else if (Name.startswith("packusdw.")) { in upgradeAVX512MaskToSelect()
1737 } else if (Name.startswith("vpermilvar.")) { in upgradeAVX512MaskToSelect()
1752 } else if (Name == "cvtpd2dq.256") { in upgradeAVX512MaskToSelect()
1754 } else if (Name == "cvtpd2ps.256") { in upgradeAVX512MaskToSelect()
1756 } else if (Name == "cvttpd2dq.256") { in upgradeAVX512MaskToSelect()
1758 } else if (Name == "cvttps2dq.128") { in upgradeAVX512MaskToSelect()
1760 } else if (Name == "cvttps2dq.256") { in upgradeAVX512MaskToSelect()
1762 } else if (Name.startswith("permvar.")) { in upgradeAVX512MaskToSelect()
1794 } else if (Name.startswith("dbpsadbw.")) { in upgradeAVX512MaskToSelect()
1803 } else if (Name.startswith("pmultishift.qb.")) { in upgradeAVX512MaskToSelect()
1812 } else if (Name.startswith("conflict.")) { in upgradeAVX512MaskToSelect()
1813 if (Name[9] == 'd' && VecWidth == 128) in upgradeAVX512MaskToSelect()
1815 else if (Name[9] == 'd' && VecWidth == 256) in upgradeAVX512MaskToSelect()
1817 else if (Name[9] == 'd' && VecWidth == 512) in upgradeAVX512MaskToSelect()
1819 else if (Name[9] == 'q' && VecWidth == 128) in upgradeAVX512MaskToSelect()
1821 else if (Name[9] == 'q' && VecWidth == 256) in upgradeAVX512MaskToSelect()
1823 else if (Name[9] == 'q' && VecWidth == 512) in upgradeAVX512MaskToSelect()
1827 } else if (Name.startswith("pavg.")) { in upgradeAVX512MaskToSelect()
1828 if (Name[5] == 'b' && VecWidth == 128) in upgradeAVX512MaskToSelect()
1830 else if (Name[5] == 'b' && VecWidth == 256) in upgradeAVX512MaskToSelect()
1832 else if (Name[5] == 'b' && VecWidth == 512) in upgradeAVX512MaskToSelect()
1834 else if (Name[5] == 'w' && VecWidth == 128) in upgradeAVX512MaskToSelect()
1836 else if (Name[5] == 'w' && VecWidth == 256) in upgradeAVX512MaskToSelect()
1838 else if (Name[5] == 'w' && VecWidth == 512) in upgradeAVX512MaskToSelect()
1867 static Value *UpgradeARMIntrinsicCall(StringRef Name, CallBase *CI, Function *F, in UpgradeARMIntrinsicCall() argument
1869 if (Name == "mve.vctp64.old") { in UpgradeARMIntrinsicCall()
1885 } else if (Name == "mve.mull.int.predicated.v2i64.v4i32.v4i1" || in UpgradeARMIntrinsicCall()
1886 Name == "mve.vqdmull.predicated.v2i64.v4i32.v4i1" || in UpgradeARMIntrinsicCall()
1887 Name == "mve.vldr.gather.base.predicated.v2i64.v2i64.v4i1" || in UpgradeARMIntrinsicCall()
1888 Name == "mve.vldr.gather.base.wb.predicated.v2i64.v2i64.v4i1" || in UpgradeARMIntrinsicCall()
1889 Name == "mve.vldr.gather.offset.predicated.v2i64.p0i64.v2i64.v4i1" || in UpgradeARMIntrinsicCall()
1890 Name == "mve.vstr.scatter.base.predicated.v2i64.v2i64.v4i1" || in UpgradeARMIntrinsicCall()
1891 Name == "mve.vstr.scatter.base.wb.predicated.v2i64.v2i64.v4i1" || in UpgradeARMIntrinsicCall()
1892 Name == "mve.vstr.scatter.offset.predicated.p0i64.v2i64.v2i64.v4i1" || in UpgradeARMIntrinsicCall()
1893 Name == "cde.vcx1q.predicated.v2i64.v4i1" || in UpgradeARMIntrinsicCall()
1894 Name == "cde.vcx1qa.predicated.v2i64.v4i1" || in UpgradeARMIntrinsicCall()
1895 Name == "cde.vcx2q.predicated.v2i64.v4i1" || in UpgradeARMIntrinsicCall()
1896 Name == "cde.vcx2qa.predicated.v2i64.v4i1" || in UpgradeARMIntrinsicCall()
1897 Name == "cde.vcx3q.predicated.v2i64.v4i1" || in UpgradeARMIntrinsicCall()
1898 Name == "cde.vcx3qa.predicated.v2i64.v4i1") { in UpgradeARMIntrinsicCall()
1969 StringRef Name = F->getName(); in UpgradeIntrinsicCall() local
1971 assert(Name.startswith("llvm.") && "Intrinsic doesn't start with 'llvm.'"); in UpgradeIntrinsicCall()
1972 Name = Name.substr(5); in UpgradeIntrinsicCall()
1974 bool IsX86 = Name.startswith("x86."); in UpgradeIntrinsicCall()
1976 Name = Name.substr(4); in UpgradeIntrinsicCall()
1977 bool IsNVVM = Name.startswith("nvvm."); in UpgradeIntrinsicCall()
1979 Name = Name.substr(5); in UpgradeIntrinsicCall()
1980 bool IsARM = Name.startswith("arm."); in UpgradeIntrinsicCall()
1982 Name = Name.substr(4); in UpgradeIntrinsicCall()
1984 if (IsX86 && Name.startswith("sse4a.movnt.")) { in UpgradeIntrinsicCall()
2010 if (IsX86 && (Name.startswith("avx.movnt.") || in UpgradeIntrinsicCall()
2011 Name.startswith("avx512.storent."))) { in UpgradeIntrinsicCall()
2035 if (IsX86 && Name == "sse2.storel.dq") { in UpgradeIntrinsicCall()
2052 if (IsX86 && (Name.startswith("sse.storeu.") || in UpgradeIntrinsicCall()
2053 Name.startswith("sse2.storeu.") || in UpgradeIntrinsicCall()
2054 Name.startswith("avx.storeu."))) { in UpgradeIntrinsicCall()
2068 if (IsX86 && Name == "avx512.mask.store.ss") { in UpgradeIntrinsicCall()
2078 if (IsX86 && (Name.startswith("avx512.mask.store"))) { in UpgradeIntrinsicCall()
2080 bool Aligned = Name[17] != 'u'; // "avx512.mask.storeu". in UpgradeIntrinsicCall()
2091 if (IsX86 && (Name.startswith("sse2.pcmp") || in UpgradeIntrinsicCall()
2092 Name.startswith("avx2.pcmp"))) { in UpgradeIntrinsicCall()
2094 bool CmpEq = Name[9] == 'e'; in UpgradeIntrinsicCall()
2098 } else if (IsX86 && (Name.startswith("avx512.broadcastm"))) { in UpgradeIntrinsicCall()
2106 } else if (IsX86 && (Name == "sse.sqrt.ss" || in UpgradeIntrinsicCall()
2107 Name == "sse2.sqrt.sd")) { in UpgradeIntrinsicCall()
2114 } else if (IsX86 && (Name.startswith("avx.sqrt.p") || in UpgradeIntrinsicCall()
2115 Name.startswith("sse2.sqrt.p") || in UpgradeIntrinsicCall()
2116 Name.startswith("sse.sqrt.p"))) { in UpgradeIntrinsicCall()
2121 } else if (IsX86 && (Name.startswith("avx512.mask.sqrt.p"))) { in UpgradeIntrinsicCall()
2125 Intrinsic::ID IID = Name[18] == 's' ? Intrinsic::x86_avx512_sqrt_ps_512 in UpgradeIntrinsicCall()
2139 } else if (IsX86 && (Name.startswith("avx512.ptestm") || in UpgradeIntrinsicCall()
2140 Name.startswith("avx512.ptestnm"))) { in UpgradeIntrinsicCall()
2148 Name.startswith("avx512.ptestm") ? ICmpInst::ICMP_NE : ICmpInst::ICMP_EQ; in UpgradeIntrinsicCall()
2151 } else if (IsX86 && (Name.startswith("avx512.mask.pbroadcast"))){ in UpgradeIntrinsicCall()
2157 } else if (IsX86 && (Name.startswith("avx512.kunpck"))) { in UpgradeIntrinsicCall()
2176 } else if (IsX86 && Name == "avx512.kand.w") { in UpgradeIntrinsicCall()
2181 } else if (IsX86 && Name == "avx512.kandn.w") { in UpgradeIntrinsicCall()
2187 } else if (IsX86 && Name == "avx512.kor.w") { in UpgradeIntrinsicCall()
2192 } else if (IsX86 && Name == "avx512.kxor.w") { in UpgradeIntrinsicCall()
2197 } else if (IsX86 && Name == "avx512.kxnor.w") { in UpgradeIntrinsicCall()
2203 } else if (IsX86 && Name == "avx512.knot.w") { in UpgradeIntrinsicCall()
2208 (Name == "avx512.kortestz.w" || Name == "avx512.kortestc.w")) { in UpgradeIntrinsicCall()
2214 if (Name[14] == 'c') in UpgradeIntrinsicCall()
2220 } else if (IsX86 && (Name == "sse.add.ss" || Name == "sse2.add.sd" || in UpgradeIntrinsicCall()
2221 Name == "sse.sub.ss" || Name == "sse2.sub.sd" || in UpgradeIntrinsicCall()
2222 Name == "sse.mul.ss" || Name == "sse2.mul.sd" || in UpgradeIntrinsicCall()
2223 Name == "sse.div.ss" || Name == "sse2.div.sd")) { in UpgradeIntrinsicCall()
2230 if (Name.contains(".add.")) in UpgradeIntrinsicCall()
2232 else if (Name.contains(".sub.")) in UpgradeIntrinsicCall()
2234 else if (Name.contains(".mul.")) in UpgradeIntrinsicCall()
2240 } else if (IsX86 && Name.startswith("avx512.mask.pcmp")) { in UpgradeIntrinsicCall()
2242 bool CmpEq = Name[16] == 'e'; in UpgradeIntrinsicCall()
2244 } else if (IsX86 && Name.startswith("avx512.mask.vpshufbitqmb.")) { in UpgradeIntrinsicCall()
2258 } else if (IsX86 && Name.startswith("avx512.mask.fpclass.p")) { in UpgradeIntrinsicCall()
2281 } else if (IsX86 && Name.startswith("avx512.cmp.p")) { in UpgradeIntrinsicCall()
2309 } else if (IsX86 && Name.startswith("avx512.mask.cmp.")) { in UpgradeIntrinsicCall()
2313 } else if (IsX86 && Name.startswith("avx512.mask.ucmp.")) { in UpgradeIntrinsicCall()
2316 } else if (IsX86 && (Name.startswith("avx512.cvtb2mask.") || in UpgradeIntrinsicCall()
2317 Name.startswith("avx512.cvtw2mask.") || in UpgradeIntrinsicCall()
2318 Name.startswith("avx512.cvtd2mask.") || in UpgradeIntrinsicCall()
2319 Name.startswith("avx512.cvtq2mask."))) { in UpgradeIntrinsicCall()
2324 } else if(IsX86 && (Name == "ssse3.pabs.b.128" || in UpgradeIntrinsicCall()
2325 Name == "ssse3.pabs.w.128" || in UpgradeIntrinsicCall()
2326 Name == "ssse3.pabs.d.128" || in UpgradeIntrinsicCall()
2327 Name.startswith("avx2.pabs") || in UpgradeIntrinsicCall()
2328 Name.startswith("avx512.mask.pabs"))) { in UpgradeIntrinsicCall()
2330 } else if (IsX86 && (Name == "sse41.pmaxsb" || in UpgradeIntrinsicCall()
2331 Name == "sse2.pmaxs.w" || in UpgradeIntrinsicCall()
2332 Name == "sse41.pmaxsd" || in UpgradeIntrinsicCall()
2333 Name.startswith("avx2.pmaxs") || in UpgradeIntrinsicCall()
2334 Name.startswith("avx512.mask.pmaxs"))) { in UpgradeIntrinsicCall()
2336 } else if (IsX86 && (Name == "sse2.pmaxu.b" || in UpgradeIntrinsicCall()
2337 Name == "sse41.pmaxuw" || in UpgradeIntrinsicCall()
2338 Name == "sse41.pmaxud" || in UpgradeIntrinsicCall()
2339 Name.startswith("avx2.pmaxu") || in UpgradeIntrinsicCall()
2340 Name.startswith("avx512.mask.pmaxu"))) { in UpgradeIntrinsicCall()
2342 } else if (IsX86 && (Name == "sse41.pminsb" || in UpgradeIntrinsicCall()
2343 Name == "sse2.pmins.w" || in UpgradeIntrinsicCall()
2344 Name == "sse41.pminsd" || in UpgradeIntrinsicCall()
2345 Name.startswith("avx2.pmins") || in UpgradeIntrinsicCall()
2346 Name.startswith("avx512.mask.pmins"))) { in UpgradeIntrinsicCall()
2348 } else if (IsX86 && (Name == "sse2.pminu.b" || in UpgradeIntrinsicCall()
2349 Name == "sse41.pminuw" || in UpgradeIntrinsicCall()
2350 Name == "sse41.pminud" || in UpgradeIntrinsicCall()
2351 Name.startswith("avx2.pminu") || in UpgradeIntrinsicCall()
2352 Name.startswith("avx512.mask.pminu"))) { in UpgradeIntrinsicCall()
2354 } else if (IsX86 && (Name == "sse2.pmulu.dq" || in UpgradeIntrinsicCall()
2355 Name == "avx2.pmulu.dq" || in UpgradeIntrinsicCall()
2356 Name == "avx512.pmulu.dq.512" || in UpgradeIntrinsicCall()
2357 Name.startswith("avx512.mask.pmulu.dq."))) { in UpgradeIntrinsicCall()
2359 } else if (IsX86 && (Name == "sse41.pmuldq" || in UpgradeIntrinsicCall()
2360 Name == "avx2.pmul.dq" || in UpgradeIntrinsicCall()
2361 Name == "avx512.pmul.dq.512" || in UpgradeIntrinsicCall()
2362 Name.startswith("avx512.mask.pmul.dq."))) { in UpgradeIntrinsicCall()
2364 } else if (IsX86 && (Name == "sse.cvtsi2ss" || in UpgradeIntrinsicCall()
2365 Name == "sse2.cvtsi2sd" || in UpgradeIntrinsicCall()
2366 Name == "sse.cvtsi642ss" || in UpgradeIntrinsicCall()
2367 Name == "sse2.cvtsi642sd")) { in UpgradeIntrinsicCall()
2372 } else if (IsX86 && Name == "avx512.cvtusi2sd") { in UpgradeIntrinsicCall()
2377 } else if (IsX86 && Name == "sse2.cvtss2sd") { in UpgradeIntrinsicCall()
2382 } else if (IsX86 && (Name == "sse2.cvtdq2pd" || in UpgradeIntrinsicCall()
2383 Name == "sse2.cvtdq2ps" || in UpgradeIntrinsicCall()
2384 Name == "avx.cvtdq2.pd.256" || in UpgradeIntrinsicCall()
2385 Name == "avx.cvtdq2.ps.256" || in UpgradeIntrinsicCall()
2386 Name.startswith("avx512.mask.cvtdq2pd.") || in UpgradeIntrinsicCall()
2387 Name.startswith("avx512.mask.cvtudq2pd.") || in UpgradeIntrinsicCall()
2388 Name.startswith("avx512.mask.cvtdq2ps.") || in UpgradeIntrinsicCall()
2389 Name.startswith("avx512.mask.cvtudq2ps.") || in UpgradeIntrinsicCall()
2390 Name.startswith("avx512.mask.cvtqq2pd.") || in UpgradeIntrinsicCall()
2391 Name.startswith("avx512.mask.cvtuqq2pd.") || in UpgradeIntrinsicCall()
2392 Name == "avx512.mask.cvtqq2ps.256" || in UpgradeIntrinsicCall()
2393 Name == "avx512.mask.cvtqq2ps.512" || in UpgradeIntrinsicCall()
2394 Name == "avx512.mask.cvtuqq2ps.256" || in UpgradeIntrinsicCall()
2395 Name == "avx512.mask.cvtuqq2ps.512" || in UpgradeIntrinsicCall()
2396 Name == "sse2.cvtps2pd" || in UpgradeIntrinsicCall()
2397 Name == "avx.cvt.ps2.pd.256" || in UpgradeIntrinsicCall()
2398 Name == "avx512.mask.cvtps2pd.128" || in UpgradeIntrinsicCall()
2399 Name == "avx512.mask.cvtps2pd.256")) { in UpgradeIntrinsicCall()
2411 bool IsUnsigned = (StringRef::npos != Name.find("cvtu")); in UpgradeIntrinsicCall()
2430 } else if (IsX86 && (Name.startswith("avx512.mask.vcvtph2ps.") || in UpgradeIntrinsicCall()
2431 Name.startswith("vcvtph2ps."))) { in UpgradeIntrinsicCall()
2446 } else if (IsX86 && Name.startswith("avx512.mask.load")) { in UpgradeIntrinsicCall()
2448 bool Aligned = Name[16] != 'u'; // "avx512.mask.loadu". in UpgradeIntrinsicCall()
2452 } else if (IsX86 && Name.startswith("avx512.mask.expand.load.")) { in UpgradeIntrinsicCall()
2467 } else if (IsX86 && Name.startswith("avx512.mask.compress.store.")) { in UpgradeIntrinsicCall()
2483 } else if (IsX86 && (Name.startswith("avx512.mask.compress.") || in UpgradeIntrinsicCall()
2484 Name.startswith("avx512.mask.expand."))) { in UpgradeIntrinsicCall()
2490 bool IsCompress = Name[12] == 'c'; in UpgradeIntrinsicCall()
2496 } else if (IsX86 && Name.startswith("xop.vpcom")) { in UpgradeIntrinsicCall()
2498 if (Name.endswith("ub") || Name.endswith("uw") || Name.endswith("ud") || in UpgradeIntrinsicCall()
2499 Name.endswith("uq")) in UpgradeIntrinsicCall()
2501 else if (Name.endswith("b") || Name.endswith("w") || Name.endswith("d") || in UpgradeIntrinsicCall()
2502 Name.endswith("q")) in UpgradeIntrinsicCall()
2511 Name = Name.substr(9); // strip off "xop.vpcom" in UpgradeIntrinsicCall()
2512 if (Name.startswith("lt")) in UpgradeIntrinsicCall()
2514 else if (Name.startswith("le")) in UpgradeIntrinsicCall()
2516 else if (Name.startswith("gt")) in UpgradeIntrinsicCall()
2518 else if (Name.startswith("ge")) in UpgradeIntrinsicCall()
2520 else if (Name.startswith("eq")) in UpgradeIntrinsicCall()
2522 else if (Name.startswith("ne")) in UpgradeIntrinsicCall()
2524 else if (Name.startswith("false")) in UpgradeIntrinsicCall()
2526 else if (Name.startswith("true")) in UpgradeIntrinsicCall()
2533 } else if (IsX86 && Name.startswith("xop.vpcmov")) { in UpgradeIntrinsicCall()
2539 } else if (IsX86 && (Name.startswith("xop.vprot") || in UpgradeIntrinsicCall()
2540 Name.startswith("avx512.prol") || in UpgradeIntrinsicCall()
2541 Name.startswith("avx512.mask.prol"))) { in UpgradeIntrinsicCall()
2543 } else if (IsX86 && (Name.startswith("avx512.pror") || in UpgradeIntrinsicCall()
2544 Name.startswith("avx512.mask.pror"))) { in UpgradeIntrinsicCall()
2546 } else if (IsX86 && (Name.startswith("avx512.vpshld.") || in UpgradeIntrinsicCall()
2547 Name.startswith("avx512.mask.vpshld") || in UpgradeIntrinsicCall()
2548 Name.startswith("avx512.maskz.vpshld"))) { in UpgradeIntrinsicCall()
2549 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
2551 } else if (IsX86 && (Name.startswith("avx512.vpshrd.") || in UpgradeIntrinsicCall()
2552 Name.startswith("avx512.mask.vpshrd") || in UpgradeIntrinsicCall()
2553 Name.startswith("avx512.maskz.vpshrd"))) { in UpgradeIntrinsicCall()
2554 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
2556 } else if (IsX86 && Name == "sse42.crc32.64.8") { in UpgradeIntrinsicCall()
2562 } else if (IsX86 && (Name.startswith("avx.vbroadcast.s") || in UpgradeIntrinsicCall()
2563 Name.startswith("avx512.vbroadcast.s"))) { in UpgradeIntrinsicCall()
2576 } else if (IsX86 && (Name.startswith("sse41.pmovsx") || in UpgradeIntrinsicCall()
2577 Name.startswith("sse41.pmovzx") || in UpgradeIntrinsicCall()
2578 Name.startswith("avx2.pmovsx") || in UpgradeIntrinsicCall()
2579 Name.startswith("avx2.pmovzx") || in UpgradeIntrinsicCall()
2580 Name.startswith("avx512.mask.pmovsx") || in UpgradeIntrinsicCall()
2581 Name.startswith("avx512.mask.pmovzx"))) { in UpgradeIntrinsicCall()
2593 bool DoSext = (StringRef::npos != Name.find("pmovsx")); in UpgradeIntrinsicCall()
2600 } else if (Name == "avx512.mask.pmov.qd.256" || in UpgradeIntrinsicCall()
2601 Name == "avx512.mask.pmov.qd.512" || in UpgradeIntrinsicCall()
2602 Name == "avx512.mask.pmov.wb.256" || in UpgradeIntrinsicCall()
2603 Name == "avx512.mask.pmov.wb.512") { in UpgradeIntrinsicCall()
2608 } else if (IsX86 && (Name.startswith("avx.vbroadcastf128") || in UpgradeIntrinsicCall()
2609 Name == "avx2.vbroadcasti128")) { in UpgradeIntrinsicCall()
2622 } else if (IsX86 && (Name.startswith("avx512.mask.shuf.i") || in UpgradeIntrinsicCall()
2623 Name.startswith("avx512.mask.shuf.f"))) { in UpgradeIntrinsicCall()
2644 }else if (IsX86 && (Name.startswith("avx512.mask.broadcastf") || in UpgradeIntrinsicCall()
2645 Name.startswith("avx512.mask.broadcasti"))) { in UpgradeIntrinsicCall()
2661 } else if (IsX86 && (Name.startswith("avx2.pbroadcast") || in UpgradeIntrinsicCall()
2662 Name.startswith("avx2.vbroadcast") || in UpgradeIntrinsicCall()
2663 Name.startswith("avx512.pbroadcast") || in UpgradeIntrinsicCall()
2664 Name.startswith("avx512.mask.broadcast.s"))) { in UpgradeIntrinsicCall()
2676 } else if (IsX86 && (Name.startswith("sse2.padds.") || in UpgradeIntrinsicCall()
2677 Name.startswith("avx2.padds.") || in UpgradeIntrinsicCall()
2678 Name.startswith("avx512.padds.") || in UpgradeIntrinsicCall()
2679 Name.startswith("avx512.mask.padds."))) { in UpgradeIntrinsicCall()
2681 } else if (IsX86 && (Name.startswith("sse2.psubs.") || in UpgradeIntrinsicCall()
2682 Name.startswith("avx2.psubs.") || in UpgradeIntrinsicCall()
2683 Name.startswith("avx512.psubs.") || in UpgradeIntrinsicCall()
2684 Name.startswith("avx512.mask.psubs."))) { in UpgradeIntrinsicCall()
2686 } else if (IsX86 && (Name.startswith("sse2.paddus.") || in UpgradeIntrinsicCall()
2687 Name.startswith("avx2.paddus.") || in UpgradeIntrinsicCall()
2688 Name.startswith("avx512.mask.paddus."))) { in UpgradeIntrinsicCall()
2690 } else if (IsX86 && (Name.startswith("sse2.psubus.") || in UpgradeIntrinsicCall()
2691 Name.startswith("avx2.psubus.") || in UpgradeIntrinsicCall()
2692 Name.startswith("avx512.mask.psubus."))) { in UpgradeIntrinsicCall()
2694 } else if (IsX86 && Name.startswith("avx512.mask.palignr.")) { in UpgradeIntrinsicCall()
2701 } else if (IsX86 && Name.startswith("avx512.mask.valign.")) { in UpgradeIntrinsicCall()
2708 } else if (IsX86 && (Name == "sse2.psll.dq" || in UpgradeIntrinsicCall()
2709 Name == "avx2.psll.dq")) { in UpgradeIntrinsicCall()
2714 } else if (IsX86 && (Name == "sse2.psrl.dq" || in UpgradeIntrinsicCall()
2715 Name == "avx2.psrl.dq")) { in UpgradeIntrinsicCall()
2720 } else if (IsX86 && (Name == "sse2.psll.dq.bs" || in UpgradeIntrinsicCall()
2721 Name == "avx2.psll.dq.bs" || in UpgradeIntrinsicCall()
2722 Name == "avx512.psll.dq.512")) { in UpgradeIntrinsicCall()
2726 } else if (IsX86 && (Name == "sse2.psrl.dq.bs" || in UpgradeIntrinsicCall()
2727 Name == "avx2.psrl.dq.bs" || in UpgradeIntrinsicCall()
2728 Name == "avx512.psrl.dq.512")) { in UpgradeIntrinsicCall()
2732 } else if (IsX86 && (Name == "sse41.pblendw" || in UpgradeIntrinsicCall()
2733 Name.startswith("sse41.blendp") || in UpgradeIntrinsicCall()
2734 Name.startswith("avx.blend.p") || in UpgradeIntrinsicCall()
2735 Name == "avx2.pblendw" || in UpgradeIntrinsicCall()
2736 Name.startswith("avx2.pblendd."))) { in UpgradeIntrinsicCall()
2748 } else if (IsX86 && (Name.startswith("avx.vinsertf128.") || in UpgradeIntrinsicCall()
2749 Name == "avx2.vinserti128" || in UpgradeIntrinsicCall()
2750 Name.startswith("avx512.mask.insert"))) { in UpgradeIntrinsicCall()
2794 } else if (IsX86 && (Name.startswith("avx.vextractf128.") || in UpgradeIntrinsicCall()
2795 Name == "avx2.vextracti128" || in UpgradeIntrinsicCall()
2796 Name.startswith("avx512.mask.vextract"))) { in UpgradeIntrinsicCall()
2819 } else if (!IsX86 && Name == "stackprotectorcheck") { in UpgradeIntrinsicCall()
2821 } else if (IsX86 && (Name.startswith("avx512.mask.perm.df.") || in UpgradeIntrinsicCall()
2822 Name.startswith("avx512.mask.perm.di."))) { in UpgradeIntrinsicCall()
2837 } else if (IsX86 && (Name.startswith("avx.vperm2f128.") || in UpgradeIntrinsicCall()
2838 Name == "avx2.vperm2i128")) { in UpgradeIntrinsicCall()
2873 } else if (IsX86 && (Name.startswith("avx.vpermil.") || in UpgradeIntrinsicCall()
2874 Name == "sse2.pshuf.d" || in UpgradeIntrinsicCall()
2875 Name.startswith("avx512.mask.vpermil.p") || in UpgradeIntrinsicCall()
2876 Name.startswith("avx512.mask.pshuf.d."))) { in UpgradeIntrinsicCall()
2897 } else if (IsX86 && (Name == "sse2.pshufl.w" || in UpgradeIntrinsicCall()
2898 Name.startswith("avx512.mask.pshufl.w."))) { in UpgradeIntrinsicCall()
2916 } else if (IsX86 && (Name == "sse2.pshufh.w" || in UpgradeIntrinsicCall()
2917 Name.startswith("avx512.mask.pshufh.w."))) { in UpgradeIntrinsicCall()
2935 } else if (IsX86 && Name.startswith("avx512.mask.shuf.p")) { in UpgradeIntrinsicCall()
2960 } else if (IsX86 && (Name.startswith("avx512.mask.movddup") || in UpgradeIntrinsicCall()
2961 Name.startswith("avx512.mask.movshdup") || in UpgradeIntrinsicCall()
2962 Name.startswith("avx512.mask.movsldup"))) { in UpgradeIntrinsicCall()
2968 if (Name.startswith("avx512.mask.movshdup.")) in UpgradeIntrinsicCall()
2982 } else if (IsX86 && (Name.startswith("avx512.mask.punpckl") || in UpgradeIntrinsicCall()
2983 Name.startswith("avx512.mask.unpckl."))) { in UpgradeIntrinsicCall()
2998 } else if (IsX86 && (Name.startswith("avx512.mask.punpckh") || in UpgradeIntrinsicCall()
2999 Name.startswith("avx512.mask.unpckh."))) { in UpgradeIntrinsicCall()
3014 } else if (IsX86 && (Name.startswith("avx512.mask.and.") || in UpgradeIntrinsicCall()
3015 Name.startswith("avx512.mask.pand."))) { in UpgradeIntrinsicCall()
3023 } else if (IsX86 && (Name.startswith("avx512.mask.andn.") || in UpgradeIntrinsicCall()
3024 Name.startswith("avx512.mask.pandn."))) { in UpgradeIntrinsicCall()
3033 } else if (IsX86 && (Name.startswith("avx512.mask.or.") || in UpgradeIntrinsicCall()
3034 Name.startswith("avx512.mask.por."))) { in UpgradeIntrinsicCall()
3042 } else if (IsX86 && (Name.startswith("avx512.mask.xor.") || in UpgradeIntrinsicCall()
3043 Name.startswith("avx512.mask.pxor."))) { in UpgradeIntrinsicCall()
3051 } else if (IsX86 && Name.startswith("avx512.mask.padd.")) { in UpgradeIntrinsicCall()
3055 } else if (IsX86 && Name.startswith("avx512.mask.psub.")) { in UpgradeIntrinsicCall()
3059 } else if (IsX86 && Name.startswith("avx512.mask.pmull.")) { in UpgradeIntrinsicCall()
3063 } else if (IsX86 && Name.startswith("avx512.mask.add.p")) { in UpgradeIntrinsicCall()
3064 if (Name.endswith(".512")) { in UpgradeIntrinsicCall()
3066 if (Name[17] == 's') in UpgradeIntrinsicCall()
3079 } else if (IsX86 && Name.startswith("avx512.mask.div.p")) { in UpgradeIntrinsicCall()
3080 if (Name.endswith(".512")) { in UpgradeIntrinsicCall()
3082 if (Name[17] == 's') in UpgradeIntrinsicCall()
3095 } else if (IsX86 && Name.startswith("avx512.mask.mul.p")) { in UpgradeIntrinsicCall()
3096 if (Name.endswith(".512")) { in UpgradeIntrinsicCall()
3098 if (Name[17] == 's') in UpgradeIntrinsicCall()
3111 } else if (IsX86 && Name.startswith("avx512.mask.sub.p")) { in UpgradeIntrinsicCall()
3112 if (Name.endswith(".512")) { in UpgradeIntrinsicCall()
3114 if (Name[17] == 's') in UpgradeIntrinsicCall()
3127 } else if (IsX86 && (Name.startswith("avx512.mask.max.p") || in UpgradeIntrinsicCall()
3128 Name.startswith("avx512.mask.min.p")) && in UpgradeIntrinsicCall()
3129 Name.drop_front(18) == ".512") { in UpgradeIntrinsicCall()
3130 bool IsDouble = Name[17] == 'd'; in UpgradeIntrinsicCall()
3131 bool IsMin = Name[13] == 'i'; in UpgradeIntrinsicCall()
3143 } else if (IsX86 && Name.startswith("avx512.mask.lzcnt.")) { in UpgradeIntrinsicCall()
3150 } else if (IsX86 && Name.startswith("avx512.mask.psll")) { in UpgradeIntrinsicCall()
3151 bool IsImmediate = Name[16] == 'i' || in UpgradeIntrinsicCall()
3152 (Name.size() > 18 && Name[18] == 'i'); in UpgradeIntrinsicCall()
3153 bool IsVariable = Name[16] == 'v'; in UpgradeIntrinsicCall()
3154 char Size = Name[16] == '.' ? Name[17] : in UpgradeIntrinsicCall()
3155 Name[17] == '.' ? Name[18] : in UpgradeIntrinsicCall()
3156 Name[18] == '.' ? Name[19] : in UpgradeIntrinsicCall()
3157 Name[20]; in UpgradeIntrinsicCall()
3160 if (IsVariable && Name[17] != '.') { in UpgradeIntrinsicCall()
3161 if (Size == 'd' && Name[17] == '2') // avx512.mask.psllv2.di in UpgradeIntrinsicCall()
3163 else if (Size == 'd' && Name[17] == '4') // avx512.mask.psllv4.di in UpgradeIntrinsicCall()
3165 else if (Size == 's' && Name[17] == '4') // avx512.mask.psllv4.si in UpgradeIntrinsicCall()
3167 else if (Size == 's' && Name[17] == '8') // avx512.mask.psllv8.si in UpgradeIntrinsicCall()
3169 else if (Size == 'h' && Name[17] == '8') // avx512.mask.psllv8.hi in UpgradeIntrinsicCall()
3171 else if (Size == 'h' && Name[17] == '1') // avx512.mask.psllv16.hi in UpgradeIntrinsicCall()
3173 else if (Name[17] == '3' && Name[18] == '2') // avx512.mask.psllv32hi in UpgradeIntrinsicCall()
3177 } else if (Name.endswith(".128")) { in UpgradeIntrinsicCall()
3189 } else if (Name.endswith(".256")) { in UpgradeIntrinsicCall()
3218 } else if (IsX86 && Name.startswith("avx512.mask.psrl")) { in UpgradeIntrinsicCall()
3219 bool IsImmediate = Name[16] == 'i' || in UpgradeIntrinsicCall()
3220 (Name.size() > 18 && Name[18] == 'i'); in UpgradeIntrinsicCall()
3221 bool IsVariable = Name[16] == 'v'; in UpgradeIntrinsicCall()
3222 char Size = Name[16] == '.' ? Name[17] : in UpgradeIntrinsicCall()
3223 Name[17] == '.' ? Name[18] : in UpgradeIntrinsicCall()
3224 Name[18] == '.' ? Name[19] : in UpgradeIntrinsicCall()
3225 Name[20]; in UpgradeIntrinsicCall()
3228 if (IsVariable && Name[17] != '.') { in UpgradeIntrinsicCall()
3229 if (Size == 'd' && Name[17] == '2') // avx512.mask.psrlv2.di in UpgradeIntrinsicCall()
3231 else if (Size == 'd' && Name[17] == '4') // avx512.mask.psrlv4.di in UpgradeIntrinsicCall()
3233 else if (Size == 's' && Name[17] == '4') // avx512.mask.psrlv4.si in UpgradeIntrinsicCall()
3235 else if (Size == 's' && Name[17] == '8') // avx512.mask.psrlv8.si in UpgradeIntrinsicCall()
3237 else if (Size == 'h' && Name[17] == '8') // avx512.mask.psrlv8.hi in UpgradeIntrinsicCall()
3239 else if (Size == 'h' && Name[17] == '1') // avx512.mask.psrlv16.hi in UpgradeIntrinsicCall()
3241 else if (Name[17] == '3' && Name[18] == '2') // avx512.mask.psrlv32hi in UpgradeIntrinsicCall()
3245 } else if (Name.endswith(".128")) { in UpgradeIntrinsicCall()
3257 } else if (Name.endswith(".256")) { in UpgradeIntrinsicCall()
3286 } else if (IsX86 && Name.startswith("avx512.mask.psra")) { in UpgradeIntrinsicCall()
3287 bool IsImmediate = Name[16] == 'i' || in UpgradeIntrinsicCall()
3288 (Name.size() > 18 && Name[18] == 'i'); in UpgradeIntrinsicCall()
3289 bool IsVariable = Name[16] == 'v'; in UpgradeIntrinsicCall()
3290 char Size = Name[16] == '.' ? Name[17] : in UpgradeIntrinsicCall()
3291 Name[17] == '.' ? Name[18] : in UpgradeIntrinsicCall()
3292 Name[18] == '.' ? Name[19] : in UpgradeIntrinsicCall()
3293 Name[20]; in UpgradeIntrinsicCall()
3296 if (IsVariable && Name[17] != '.') { in UpgradeIntrinsicCall()
3297 if (Size == 's' && Name[17] == '4') // avx512.mask.psrav4.si in UpgradeIntrinsicCall()
3299 else if (Size == 's' && Name[17] == '8') // avx512.mask.psrav8.si in UpgradeIntrinsicCall()
3301 else if (Size == 'h' && Name[17] == '8') // avx512.mask.psrav8.hi in UpgradeIntrinsicCall()
3303 else if (Size == 'h' && Name[17] == '1') // avx512.mask.psrav16.hi in UpgradeIntrinsicCall()
3305 else if (Name[17] == '3' && Name[18] == '2') // avx512.mask.psrav32hi in UpgradeIntrinsicCall()
3309 } else if (Name.endswith(".128")) { in UpgradeIntrinsicCall()
3322 } else if (Name.endswith(".256")) { in UpgradeIntrinsicCall()
3352 } else if (IsX86 && Name.startswith("avx512.mask.move.s")) { in UpgradeIntrinsicCall()
3354 } else if (IsX86 && Name.startswith("avx512.cvtmask2")) { in UpgradeIntrinsicCall()
3356 } else if (IsX86 && Name.endswith(".movntdqa")) { in UpgradeIntrinsicCall()
3371 } else if (IsX86 && (Name.startswith("fma.vfmadd.") || in UpgradeIntrinsicCall()
3372 Name.startswith("fma.vfmsub.") || in UpgradeIntrinsicCall()
3373 Name.startswith("fma.vfnmadd.") || in UpgradeIntrinsicCall()
3374 Name.startswith("fma.vfnmsub."))) { in UpgradeIntrinsicCall()
3375 bool NegMul = Name[6] == 'n'; in UpgradeIntrinsicCall()
3376 bool NegAcc = NegMul ? Name[8] == 's' : Name[7] == 's'; in UpgradeIntrinsicCall()
3377 bool IsScalar = NegMul ? Name[12] == 's' : Name[11] == 's'; in UpgradeIntrinsicCall()
3403 } else if (IsX86 && Name.startswith("fma4.vfmadd.s")) { in UpgradeIntrinsicCall()
3418 } else if (IsX86 && (Name.startswith("avx512.mask.vfmadd.s") || in UpgradeIntrinsicCall()
3419 Name.startswith("avx512.maskz.vfmadd.s") || in UpgradeIntrinsicCall()
3420 Name.startswith("avx512.mask3.vfmadd.s") || in UpgradeIntrinsicCall()
3421 Name.startswith("avx512.mask3.vfmsub.s") || in UpgradeIntrinsicCall()
3422 Name.startswith("avx512.mask3.vfnmsub.s"))) { in UpgradeIntrinsicCall()
3423 bool IsMask3 = Name[11] == '3'; in UpgradeIntrinsicCall()
3424 bool IsMaskZ = Name[11] == 'z'; in UpgradeIntrinsicCall()
3426 Name = Name.drop_front(IsMask3 || IsMaskZ ? 13 : 12); in UpgradeIntrinsicCall()
3427 bool NegMul = Name[2] == 'n'; in UpgradeIntrinsicCall()
3428 bool NegAcc = NegMul ? Name[4] == 's' : Name[3] == 's'; in UpgradeIntrinsicCall()
3450 if (Name.back() == 'd') in UpgradeIntrinsicCall()
3476 } else if (IsX86 && (Name.startswith("avx512.mask.vfmadd.p") || in UpgradeIntrinsicCall()
3477 Name.startswith("avx512.mask.vfnmadd.p") || in UpgradeIntrinsicCall()
3478 Name.startswith("avx512.mask.vfnmsub.p") || in UpgradeIntrinsicCall()
3479 Name.startswith("avx512.mask3.vfmadd.p") || in UpgradeIntrinsicCall()
3480 Name.startswith("avx512.mask3.vfmsub.p") || in UpgradeIntrinsicCall()
3481 Name.startswith("avx512.mask3.vfnmsub.p") || in UpgradeIntrinsicCall()
3482 Name.startswith("avx512.maskz.vfmadd.p"))) { in UpgradeIntrinsicCall()
3483 bool IsMask3 = Name[11] == '3'; in UpgradeIntrinsicCall()
3484 bool IsMaskZ = Name[11] == 'z'; in UpgradeIntrinsicCall()
3486 Name = Name.drop_front(IsMask3 || IsMaskZ ? 13 : 12); in UpgradeIntrinsicCall()
3487 bool NegMul = Name[2] == 'n'; in UpgradeIntrinsicCall()
3488 bool NegAcc = NegMul ? Name[4] == 's' : Name[3] == 's'; in UpgradeIntrinsicCall()
3506 if (Name[Name.size()-5] == 's') in UpgradeIntrinsicCall()
3525 } else if (IsX86 && Name.startswith("fma.vfmsubadd.p")) { in UpgradeIntrinsicCall()
3545 } else if (IsX86 && (Name.startswith("avx512.mask.vfmaddsub.p") || in UpgradeIntrinsicCall()
3546 Name.startswith("avx512.mask3.vfmaddsub.p") || in UpgradeIntrinsicCall()
3547 Name.startswith("avx512.maskz.vfmaddsub.p") || in UpgradeIntrinsicCall()
3548 Name.startswith("avx512.mask3.vfmsubadd.p"))) { in UpgradeIntrinsicCall()
3549 bool IsMask3 = Name[11] == '3'; in UpgradeIntrinsicCall()
3550 bool IsMaskZ = Name[11] == 'z'; in UpgradeIntrinsicCall()
3552 Name = Name.drop_front(IsMask3 || IsMaskZ ? 13 : 12); in UpgradeIntrinsicCall()
3553 bool IsSubAdd = Name[3] == 's'; in UpgradeIntrinsicCall()
3557 if (Name[Name.size()-5] == 's') in UpgradeIntrinsicCall()
3596 } else if (IsX86 && (Name.startswith("avx512.mask.pternlog.") || in UpgradeIntrinsicCall()
3597 Name.startswith("avx512.maskz.pternlog."))) { in UpgradeIntrinsicCall()
3598 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
3624 } else if (IsX86 && (Name.startswith("avx512.mask.vpmadd52") || in UpgradeIntrinsicCall()
3625 Name.startswith("avx512.maskz.vpmadd52"))) { in UpgradeIntrinsicCall()
3626 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
3627 bool High = Name[20] == 'h' || Name[21] == 'h'; in UpgradeIntrinsicCall()
3652 } else if (IsX86 && (Name.startswith("avx512.mask.vpermi2var.") || in UpgradeIntrinsicCall()
3653 Name.startswith("avx512.mask.vpermt2var.") || in UpgradeIntrinsicCall()
3654 Name.startswith("avx512.maskz.vpermt2var."))) { in UpgradeIntrinsicCall()
3655 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
3656 bool IndexForm = Name[17] == 'i'; in UpgradeIntrinsicCall()
3658 } else if (IsX86 && (Name.startswith("avx512.mask.vpdpbusd.") || in UpgradeIntrinsicCall()
3659 Name.startswith("avx512.maskz.vpdpbusd.") || in UpgradeIntrinsicCall()
3660 Name.startswith("avx512.mask.vpdpbusds.") || in UpgradeIntrinsicCall()
3661 Name.startswith("avx512.maskz.vpdpbusds."))) { in UpgradeIntrinsicCall()
3662 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
3663 bool IsSaturating = Name[ZeroMask ? 21 : 20] == 's'; in UpgradeIntrinsicCall()
3688 } else if (IsX86 && (Name.startswith("avx512.mask.vpdpwssd.") || in UpgradeIntrinsicCall()
3689 Name.startswith("avx512.maskz.vpdpwssd.") || in UpgradeIntrinsicCall()
3690 Name.startswith("avx512.mask.vpdpwssds.") || in UpgradeIntrinsicCall()
3691 Name.startswith("avx512.maskz.vpdpwssds."))) { in UpgradeIntrinsicCall()
3692 bool ZeroMask = Name[11] == 'z'; in UpgradeIntrinsicCall()
3693 bool IsSaturating = Name[ZeroMask ? 21 : 20] == 's'; in UpgradeIntrinsicCall()
3718 } else if (IsX86 && (Name == "addcarryx.u32" || Name == "addcarryx.u64" || in UpgradeIntrinsicCall()
3719 Name == "addcarry.u32" || Name == "addcarry.u64" || in UpgradeIntrinsicCall()
3720 Name == "subborrow.u32" || Name == "subborrow.u64")) { in UpgradeIntrinsicCall()
3722 if (Name[0] == 'a' && Name.back() == '2') in UpgradeIntrinsicCall()
3724 else if (Name[0] == 'a' && Name.back() == '4') in UpgradeIntrinsicCall()
3726 else if (Name[0] == 's' && Name.back() == '2') in UpgradeIntrinsicCall()
3728 else if (Name[0] == 's' && Name.back() == '4') in UpgradeIntrinsicCall()
3751 } else if (IsX86 && Name.startswith("avx512.mask.") && in UpgradeIntrinsicCall()
3752 upgradeAVX512MaskToSelect(Name, Builder, *CI, Rep)) { in UpgradeIntrinsicCall()
3754 } else if (IsNVVM && (Name == "abs.i" || Name == "abs.ll")) { in UpgradeIntrinsicCall()
3760 } else if (IsNVVM && (Name.startswith("atomic.load.add.f32.p") || in UpgradeIntrinsicCall()
3761 Name.startswith("atomic.load.add.f64.p"))) { in UpgradeIntrinsicCall()
3766 } else if (IsNVVM && (Name == "max.i" || Name == "max.ll" || in UpgradeIntrinsicCall()
3767 Name == "max.ui" || Name == "max.ull")) { in UpgradeIntrinsicCall()
3770 Value *Cmp = Name.endswith(".ui") || Name.endswith(".ull") in UpgradeIntrinsicCall()
3774 } else if (IsNVVM && (Name == "min.i" || Name == "min.ll" || in UpgradeIntrinsicCall()
3775 Name == "min.ui" || Name == "min.ull")) { in UpgradeIntrinsicCall()
3778 Value *Cmp = Name.endswith(".ui") || Name.endswith(".ull") in UpgradeIntrinsicCall()
3782 } else if (IsNVVM && Name == "clz.ll") { in UpgradeIntrinsicCall()
3790 } else if (IsNVVM && Name == "popc.ll") { in UpgradeIntrinsicCall()
3799 } else if (IsNVVM && Name == "h2f") { in UpgradeIntrinsicCall()
3805 Rep = UpgradeARMIntrinsicCall(Name, CI, F, Builder); in UpgradeIntrinsicCall()