|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
include/llvm/CodeGen/TargetLowering.h 2116 setOperationAction(Opc, OrigVT, Promote);
lib/CodeGen/TargetLoweringBase.cpp 615 setOperationAction(ISD::ATOMIC_SWAP, VT, Promote);
630 setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, VT, Expand);
633 setOperationAction(ISD::FGETSIGN, VT, Expand);
634 setOperationAction(ISD::CONCAT_VECTORS, VT, Expand);
635 setOperationAction(ISD::FMINNUM, VT, Expand);
636 setOperationAction(ISD::FMAXNUM, VT, Expand);
637 setOperationAction(ISD::FMINNUM_IEEE, VT, Expand);
638 setOperationAction(ISD::FMAXNUM_IEEE, VT, Expand);
639 setOperationAction(ISD::FMINIMUM, VT, Expand);
640 setOperationAction(ISD::FMAXIMUM, VT, Expand);
641 setOperationAction(ISD::FMAD, VT, Expand);
642 setOperationAction(ISD::SMIN, VT, Expand);
643 setOperationAction(ISD::SMAX, VT, Expand);
644 setOperationAction(ISD::UMIN, VT, Expand);
645 setOperationAction(ISD::UMAX, VT, Expand);
646 setOperationAction(ISD::ABS, VT, Expand);
647 setOperationAction(ISD::FSHL, VT, Expand);
648 setOperationAction(ISD::FSHR, VT, Expand);
649 setOperationAction(ISD::SADDSAT, VT, Expand);
650 setOperationAction(ISD::UADDSAT, VT, Expand);
651 setOperationAction(ISD::SSUBSAT, VT, Expand);
652 setOperationAction(ISD::USUBSAT, VT, Expand);
653 setOperationAction(ISD::SMULFIX, VT, Expand);
654 setOperationAction(ISD::SMULFIXSAT, VT, Expand);
655 setOperationAction(ISD::UMULFIX, VT, Expand);
656 setOperationAction(ISD::UMULFIXSAT, VT, Expand);
659 setOperationAction(ISD::SADDO, VT, Expand);
660 setOperationAction(ISD::SSUBO, VT, Expand);
661 setOperationAction(ISD::UADDO, VT, Expand);
662 setOperationAction(ISD::USUBO, VT, Expand);
663 setOperationAction(ISD::SMULO, VT, Expand);
664 setOperationAction(ISD::UMULO, VT, Expand);
667 setOperationAction(ISD::ADDCARRY, VT, Expand);
668 setOperationAction(ISD::SUBCARRY, VT, Expand);
669 setOperationAction(ISD::SETCCCARRY, VT, Expand);
672 setOperationAction(ISD::ADDC, VT, Expand);
673 setOperationAction(ISD::ADDE, VT, Expand);
674 setOperationAction(ISD::SUBC, VT, Expand);
675 setOperationAction(ISD::SUBE, VT, Expand);
678 setOperationAction(ISD::CTLZ_ZERO_UNDEF, VT, Expand);
679 setOperationAction(ISD::CTTZ_ZERO_UNDEF, VT, Expand);
681 setOperationAction(ISD::BITREVERSE, VT, Expand);
684 setOperationAction(ISD::FROUND, VT, Expand);
685 setOperationAction(ISD::FPOWI, VT, Expand);
689 setOperationAction(ISD::FCOPYSIGN, VT, Expand);
690 setOperationAction(ISD::ANY_EXTEND_VECTOR_INREG, VT, Expand);
691 setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, VT, Expand);
692 setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, VT, Expand);
693 setOperationAction(ISD::SPLAT_VECTOR, VT, Expand);
697 setOperationAction(ISD::STRICT_FADD, VT, Expand);
698 setOperationAction(ISD::STRICT_FSUB, VT, Expand);
699 setOperationAction(ISD::STRICT_FMUL, VT, Expand);
700 setOperationAction(ISD::STRICT_FDIV, VT, Expand);
701 setOperationAction(ISD::STRICT_FREM, VT, Expand);
702 setOperationAction(ISD::STRICT_FMA, VT, Expand);
703 setOperationAction(ISD::STRICT_FSQRT, VT, Expand);
704 setOperationAction(ISD::STRICT_FPOW, VT, Expand);
705 setOperationAction(ISD::STRICT_FPOWI, VT, Expand);
706 setOperationAction(ISD::STRICT_FSIN, VT, Expand);
707 setOperationAction(ISD::STRICT_FCOS, VT, Expand);
708 setOperationAction(ISD::STRICT_FEXP, VT, Expand);
709 setOperationAction(ISD::STRICT_FEXP2, VT, Expand);
710 setOperationAction(ISD::STRICT_FLOG, VT, Expand);
711 setOperationAction(ISD::STRICT_FLOG10, VT, Expand);
712 setOperationAction(ISD::STRICT_FLOG2, VT, Expand);
713 setOperationAction(ISD::STRICT_LRINT, VT, Expand);
714 setOperationAction(ISD::STRICT_LLRINT, VT, Expand);
715 setOperationAction(ISD::STRICT_FRINT, VT, Expand);
716 setOperationAction(ISD::STRICT_FNEARBYINT, VT, Expand);
717 setOperationAction(ISD::STRICT_FCEIL, VT, Expand);
718 setOperationAction(ISD::STRICT_FFLOOR, VT, Expand);
719 setOperationAction(ISD::STRICT_LROUND, VT, Expand);
720 setOperationAction(ISD::STRICT_LLROUND, VT, Expand);
721 setOperationAction(ISD::STRICT_FROUND, VT, Expand);
722 setOperationAction(ISD::STRICT_FTRUNC, VT, Expand);
723 setOperationAction(ISD::STRICT_FMAXNUM, VT, Expand);
724 setOperationAction(ISD::STRICT_FMINNUM, VT, Expand);
725 setOperationAction(ISD::STRICT_FP_ROUND, VT, Expand);
726 setOperationAction(ISD::STRICT_FP_EXTEND, VT, Expand);
727 setOperationAction(ISD::STRICT_FP_TO_SINT, VT, Expand);
728 setOperationAction(ISD::STRICT_FP_TO_UINT, VT, Expand);
731 setOperationAction(ISD::GET_DYNAMIC_AREA_OFFSET, VT, Expand);
734 setOperationAction(ISD::VECREDUCE_FADD, VT, Expand);
735 setOperationAction(ISD::VECREDUCE_FMUL, VT, Expand);
736 setOperationAction(ISD::VECREDUCE_ADD, VT, Expand);
737 setOperationAction(ISD::VECREDUCE_MUL, VT, Expand);
738 setOperationAction(ISD::VECREDUCE_AND, VT, Expand);
739 setOperationAction(ISD::VECREDUCE_OR, VT, Expand);
740 setOperationAction(ISD::VECREDUCE_XOR, VT, Expand);
741 setOperationAction(ISD::VECREDUCE_SMAX, VT, Expand);
742 setOperationAction(ISD::VECREDUCE_SMIN, VT, Expand);
743 setOperationAction(ISD::VECREDUCE_UMAX, VT, Expand);
744 setOperationAction(ISD::VECREDUCE_UMIN, VT, Expand);
745 setOperationAction(ISD::VECREDUCE_FMAX, VT, Expand);
746 setOperationAction(ISD::VECREDUCE_FMIN, VT, Expand);
750 setOperationAction(ISD::PREFETCH, MVT::Other, Expand);
753 setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Expand);
758 setOperationAction(ISD::ConstantFP, MVT::f16, Expand);
759 setOperationAction(ISD::ConstantFP, MVT::f32, Expand);
760 setOperationAction(ISD::ConstantFP, MVT::f64, Expand);
761 setOperationAction(ISD::ConstantFP, MVT::f80, Expand);
762 setOperationAction(ISD::ConstantFP, MVT::f128, Expand);
766 setOperationAction(ISD::FCBRT, VT, Expand);
767 setOperationAction(ISD::FLOG , VT, Expand);
768 setOperationAction(ISD::FLOG2, VT, Expand);
769 setOperationAction(ISD::FLOG10, VT, Expand);
770 setOperationAction(ISD::FEXP , VT, Expand);
771 setOperationAction(ISD::FEXP2, VT, Expand);
772 setOperationAction(ISD::FFLOOR, VT, Expand);
773 setOperationAction(ISD::FNEARBYINT, VT, Expand);
774 setOperationAction(ISD::FCEIL, VT, Expand);
775 setOperationAction(ISD::FRINT, VT, Expand);
776 setOperationAction(ISD::FTRUNC, VT, Expand);
777 setOperationAction(ISD::FROUND, VT, Expand);
778 setOperationAction(ISD::LROUND, VT, Expand);
779 setOperationAction(ISD::LLROUND, VT, Expand);
780 setOperationAction(ISD::LRINT, VT, Expand);
781 setOperationAction(ISD::LLRINT, VT, Expand);
785 setOperationAction(ISD::TRAP, MVT::Other, Expand);
789 setOperationAction(ISD::DEBUGTRAP, MVT::Other, Expand);
lib/Target/AArch64/AArch64ISelLowering.cpp 192 setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);
193 setOperationAction(ISD::GlobalTLSAddress, MVT::i64, Custom);
194 setOperationAction(ISD::SETCC, MVT::i32, Custom);
195 setOperationAction(ISD::SETCC, MVT::i64, Custom);
196 setOperationAction(ISD::SETCC, MVT::f16, Custom);
197 setOperationAction(ISD::SETCC, MVT::f32, Custom);
198 setOperationAction(ISD::SETCC, MVT::f64, Custom);
199 setOperationAction(ISD::BITREVERSE, MVT::i32, Legal);
200 setOperationAction(ISD::BITREVERSE, MVT::i64, Legal);
201 setOperationAction(ISD::BRCOND, MVT::Other, Expand);
202 setOperationAction(ISD::BR_CC, MVT::i32, Custom);
203 setOperationAction(ISD::BR_CC, MVT::i64, Custom);
204 setOperationAction(ISD::BR_CC, MVT::f16, Custom);
205 setOperationAction(ISD::BR_CC, MVT::f32, Custom);
206 setOperationAction(ISD::BR_CC, MVT::f64, Custom);
207 setOperationAction(ISD::SELECT, MVT::i32, Custom);
208 setOperationAction(ISD::SELECT, MVT::i64, Custom);
209 setOperationAction(ISD::SELECT, MVT::f16, Custom);
210 setOperationAction(ISD::SELECT, MVT::f32, Custom);
211 setOperationAction(ISD::SELECT, MVT::f64, Custom);
212 setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
213 setOperationAction(ISD::SELECT_CC, MVT::i64, Custom);
214 setOperationAction(ISD::SELECT_CC, MVT::f16, Custom);
215 setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
216 setOperationAction(ISD::SELECT_CC, MVT::f64, Custom);
217 setOperationAction(ISD::BR_JT, MVT::Other, Custom);
218 setOperationAction(ISD::JumpTable, MVT::i64, Custom);
220 setOperationAction(ISD::SHL_PARTS, MVT::i64, Custom);
221 setOperationAction(ISD::SRA_PARTS, MVT::i64, Custom);
222 setOperationAction(ISD::SRL_PARTS, MVT::i64, Custom);
224 setOperationAction(ISD::FREM, MVT::f32, Expand);
225 setOperationAction(ISD::FREM, MVT::f64, Expand);
226 setOperationAction(ISD::FREM, MVT::f80, Expand);
228 setOperationAction(ISD::BUILD_PAIR, MVT::i64, Expand);
232 setOperationAction(ISD::XOR, MVT::i32, Custom);
233 setOperationAction(ISD::XOR, MVT::i64, Custom);
237 setOperationAction(ISD::FABS, MVT::f128, Expand);
238 setOperationAction(ISD::FADD, MVT::f128, Custom);
239 setOperationAction(ISD::FCOPYSIGN, MVT::f128, Expand);
240 setOperationAction(ISD::FCOS, MVT::f128, Expand);
241 setOperationAction(ISD::FDIV, MVT::f128, Custom);
242 setOperationAction(ISD::FMA, MVT::f128, Expand);
243 setOperationAction(ISD::FMUL, MVT::f128, Custom);
244 setOperationAction(ISD::FNEG, MVT::f128, Expand);
245 setOperationAction(ISD::FPOW, MVT::f128, Expand);
246 setOperationAction(ISD::FREM, MVT::f128, Expand);
247 setOperationAction(ISD::FRINT, MVT::f128, Expand);
248 setOperationAction(ISD::FSIN, MVT::f128, Expand);
249 setOperationAction(ISD::FSINCOS, MVT::f128, Expand);
250 setOperationAction(ISD::FSQRT, MVT::f128, Expand);
251 setOperationAction(ISD::FSUB, MVT::f128, Custom);
252 setOperationAction(ISD::FTRUNC, MVT::f128, Expand);
253 setOperationAction(ISD::SETCC, MVT::f128, Custom);
254 setOperationAction(ISD::BR_CC, MVT::f128, Custom);
255 setOperationAction(ISD::SELECT, MVT::f128, Custom);
256 setOperationAction(ISD::SELECT_CC, MVT::f128, Custom);
257 setOperationAction(ISD::FP_EXTEND, MVT::f128, Custom);
261 setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
262 setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
263 setOperationAction(ISD::FP_TO_SINT, MVT::i128, Custom);
264 setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
265 setOperationAction(ISD::FP_TO_UINT, MVT::i64, Custom);
266 setOperationAction(ISD::FP_TO_UINT, MVT::i128, Custom);
267 setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
268 setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
269 setOperationAction(ISD::SINT_TO_FP, MVT::i128, Custom);
270 setOperationAction(ISD::UINT_TO_FP, MVT::i32, Custom);
271 setOperationAction(ISD::UINT_TO_FP, MVT::i64, Custom);
272 setOperationAction(ISD::UINT_TO_FP, MVT::i128, Custom);
273 setOperationAction(ISD::FP_ROUND, MVT::f32, Custom);
274 setOperationAction(ISD::FP_ROUND, MVT::f64, Custom);
277 setOperationAction(ISD::VASTART, MVT::Other, Custom);
278 setOperationAction(ISD::VAARG, MVT::Other, Custom);
279 setOperationAction(ISD::VACOPY, MVT::Other, Custom);
280 setOperationAction(ISD::VAEND, MVT::Other, Expand);
283 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
284 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
287 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64, Custom);
289 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64, Expand);
292 setOperationAction(ISD::ConstantPool, MVT::i64, Custom);
295 setOperationAction(ISD::BlockAddress, MVT::i64, Custom);
298 setOperationAction(ISD::ADDC, MVT::i32, Custom);
299 setOperationAction(ISD::ADDE, MVT::i32, Custom);
300 setOperationAction(ISD::SUBC, MVT::i32, Custom);
301 setOperationAction(ISD::SUBE, MVT::i32, Custom);
302 setOperationAction(ISD::ADDC, MVT::i64, Custom);
303 setOperationAction(ISD::ADDE, MVT::i64, Custom);
304 setOperationAction(ISD::SUBC, MVT::i64, Custom);
305 setOperationAction(ISD::SUBE, MVT::i64, Custom);
308 setOperationAction(ISD::ROTL, MVT::i32, Expand);
309 setOperationAction(ISD::ROTL, MVT::i64, Expand);
311 setOperationAction(ISD::ROTL, VT, Expand);
312 setOperationAction(ISD::ROTR, VT, Expand);
316 setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand);
317 setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand);
319 setOperationAction(ISD::CTPOP, MVT::i32, Custom);
320 setOperationAction(ISD::CTPOP, MVT::i64, Custom);
322 setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
323 setOperationAction(ISD::SDIVREM, MVT::i64, Expand);
325 setOperationAction(ISD::SDIVREM, VT, Expand);
326 setOperationAction(ISD::UDIVREM, VT, Expand);
328 setOperationAction(ISD::SREM, MVT::i32, Expand);
329 setOperationAction(ISD::SREM, MVT::i64, Expand);
330 setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
331 setOperationAction(ISD::UDIVREM, MVT::i64, Expand);
332 setOperationAction(ISD::UREM, MVT::i32, Expand);
333 setOperationAction(ISD::UREM, MVT::i64, Expand);
336 setOperationAction(ISD::SADDO, MVT::i32, Custom);
337 setOperationAction(ISD::SADDO, MVT::i64, Custom);
338 setOperationAction(ISD::UADDO, MVT::i32, Custom);
339 setOperationAction(ISD::UADDO, MVT::i64, Custom);
340 setOperationAction(ISD::SSUBO, MVT::i32, Custom);
341 setOperationAction(ISD::SSUBO, MVT::i64, Custom);
342 setOperationAction(ISD::USUBO, MVT::i32, Custom);
343 setOperationAction(ISD::USUBO, MVT::i64, Custom);
344 setOperationAction(ISD::SMULO, MVT::i32, Custom);
345 setOperationAction(ISD::SMULO, MVT::i64, Custom);
346 setOperationAction(ISD::UMULO, MVT::i32, Custom);
347 setOperationAction(ISD::UMULO, MVT::i64, Custom);
349 setOperationAction(ISD::FSIN, MVT::f32, Expand);
350 setOperationAction(ISD::FSIN, MVT::f64, Expand);
351 setOperationAction(ISD::FCOS, MVT::f32, Expand);
352 setOperationAction(ISD::FCOS, MVT::f64, Expand);
353 setOperationAction(ISD::FPOW, MVT::f32, Expand);
354 setOperationAction(ISD::FPOW, MVT::f64, Expand);
355 setOperationAction(ISD::FCOPYSIGN, MVT::f64, Custom);
356 setOperationAction(ISD::FCOPYSIGN, MVT::f32, Custom);
358 setOperationAction(ISD::FCOPYSIGN, MVT::f16, Custom);
360 setOperationAction(ISD::FCOPYSIGN, MVT::f16, Promote);
362 setOperationAction(ISD::FREM, MVT::f16, Promote);
363 setOperationAction(ISD::FREM, MVT::v4f16, Expand);
364 setOperationAction(ISD::FREM, MVT::v8f16, Expand);
365 setOperationAction(ISD::FPOW, MVT::f16, Promote);
366 setOperationAction(ISD::FPOW, MVT::v4f16, Expand);
367 setOperationAction(ISD::FPOW, MVT::v8f16, Expand);
368 setOperationAction(ISD::FPOWI, MVT::f16, Promote);
369 setOperationAction(ISD::FPOWI, MVT::v4f16, Expand);
370 setOperationAction(ISD::FPOWI, MVT::v8f16, Expand);
371 setOperationAction(ISD::FCOS, MVT::f16, Promote);
372 setOperationAction(ISD::FCOS, MVT::v4f16, Expand);
373 setOperationAction(ISD::FCOS, MVT::v8f16, Expand);
374 setOperationAction(ISD::FSIN, MVT::f16, Promote);
375 setOperationAction(ISD::FSIN, MVT::v4f16, Expand);
376 setOperationAction(ISD::FSIN, MVT::v8f16, Expand);
377 setOperationAction(ISD::FSINCOS, MVT::f16, Promote);
378 setOperationAction(ISD::FSINCOS, MVT::v4f16, Expand);
379 setOperationAction(ISD::FSINCOS, MVT::v8f16, Expand);
380 setOperationAction(ISD::FEXP, MVT::f16, Promote);
381 setOperationAction(ISD::FEXP, MVT::v4f16, Expand);
382 setOperationAction(ISD::FEXP, MVT::v8f16, Expand);
383 setOperationAction(ISD::FEXP2, MVT::f16, Promote);
384 setOperationAction(ISD::FEXP2, MVT::v4f16, Expand);
385 setOperationAction(ISD::FEXP2, MVT::v8f16, Expand);
386 setOperationAction(ISD::FLOG, MVT::f16, Promote);
387 setOperationAction(ISD::FLOG, MVT::v4f16, Expand);
388 setOperationAction(ISD::FLOG, MVT::v8f16, Expand);
389 setOperationAction(ISD::FLOG2, MVT::f16, Promote);
390 setOperationAction(ISD::FLOG2, MVT::v4f16, Expand);
391 setOperationAction(ISD::FLOG2, MVT::v8f16, Expand);
392 setOperationAction(ISD::FLOG10, MVT::f16, Promote);
393 setOperationAction(ISD::FLOG10, MVT::v4f16, Expand);
394 setOperationAction(ISD::FLOG10, MVT::v8f16, Expand);
397 setOperationAction(ISD::SELECT, MVT::f16, Promote);
398 setOperationAction(ISD::SELECT_CC, MVT::f16, Promote);
399 setOperationAction(ISD::SETCC, MVT::f16, Promote);
400 setOperationAction(ISD::BR_CC, MVT::f16, Promote);
401 setOperationAction(ISD::FADD, MVT::f16, Promote);
402 setOperationAction(ISD::FSUB, MVT::f16, Promote);
403 setOperationAction(ISD::FMUL, MVT::f16, Promote);
404 setOperationAction(ISD::FDIV, MVT::f16, Promote);
405 setOperationAction(ISD::FMA, MVT::f16, Promote);
406 setOperationAction(ISD::FNEG, MVT::f16, Promote);
407 setOperationAction(ISD::FABS, MVT::f16, Promote);
408 setOperationAction(ISD::FCEIL, MVT::f16, Promote);
409 setOperationAction(ISD::FSQRT, MVT::f16, Promote);
410 setOperationAction(ISD::FFLOOR, MVT::f16, Promote);
411 setOperationAction(ISD::FNEARBYINT, MVT::f16, Promote);
412 setOperationAction(ISD::FRINT, MVT::f16, Promote);
413 setOperationAction(ISD::FROUND, MVT::f16, Promote);
414 setOperationAction(ISD::FTRUNC, MVT::f16, Promote);
415 setOperationAction(ISD::FMINNUM, MVT::f16, Promote);
416 setOperationAction(ISD::FMAXNUM, MVT::f16, Promote);
417 setOperationAction(ISD::FMINIMUM, MVT::f16, Promote);
418 setOperationAction(ISD::FMAXIMUM, MVT::f16, Promote);
421 setOperationAction(ISD::FADD, MVT::v4f16, Promote);
422 setOperationAction(ISD::FSUB, MVT::v4f16, Promote);
423 setOperationAction(ISD::FMUL, MVT::v4f16, Promote);
424 setOperationAction(ISD::FDIV, MVT::v4f16, Promote);
425 setOperationAction(ISD::FP_EXTEND, MVT::v4f16, Promote);
426 setOperationAction(ISD::FP_ROUND, MVT::v4f16, Promote);
434 setOperationAction(ISD::FABS, MVT::v4f16, Expand);
435 setOperationAction(ISD::FNEG, MVT::v4f16, Expand);
436 setOperationAction(ISD::FROUND, MVT::v4f16, Expand);
437 setOperationAction(ISD::FMA, MVT::v4f16, Expand);
438 setOperationAction(ISD::SETCC, MVT::v4f16, Expand);
439 setOperationAction(ISD::BR_CC, MVT::v4f16, Expand);
440 setOperationAction(ISD::SELECT, MVT::v4f16, Expand);
441 setOperationAction(ISD::SELECT_CC, MVT::v4f16, Expand);
442 setOperationAction(ISD::FTRUNC, MVT::v4f16, Expand);
443 setOperationAction(ISD::FCOPYSIGN, MVT::v4f16, Expand);
444 setOperationAction(ISD::FFLOOR, MVT::v4f16, Expand);
445 setOperationAction(ISD::FCEIL, MVT::v4f16, Expand);
446 setOperationAction(ISD::FRINT, MVT::v4f16, Expand);
447 setOperationAction(ISD::FNEARBYINT, MVT::v4f16, Expand);
448 setOperationAction(ISD::FSQRT, MVT::v4f16, Expand);
450 setOperationAction(ISD::FABS, MVT::v8f16, Expand);
451 setOperationAction(ISD::FADD, MVT::v8f16, Expand);
452 setOperationAction(ISD::FCEIL, MVT::v8f16, Expand);
453 setOperationAction(ISD::FCOPYSIGN, MVT::v8f16, Expand);
454 setOperationAction(ISD::FDIV, MVT::v8f16, Expand);
455 setOperationAction(ISD::FFLOOR, MVT::v8f16, Expand);
456 setOperationAction(ISD::FMA, MVT::v8f16, Expand);
457 setOperationAction(ISD::FMUL, MVT::v8f16, Expand);
458 setOperationAction(ISD::FNEARBYINT, MVT::v8f16, Expand);
459 setOperationAction(ISD::FNEG, MVT::v8f16, Expand);
460 setOperationAction(ISD::FROUND, MVT::v8f16, Expand);
461 setOperationAction(ISD::FRINT, MVT::v8f16, Expand);
462 setOperationAction(ISD::FSQRT, MVT::v8f16, Expand);
463 setOperationAction(ISD::FSUB, MVT::v8f16, Expand);
464 setOperationAction(ISD::FTRUNC, MVT::v8f16, Expand);
465 setOperationAction(ISD::SETCC, MVT::v8f16, Expand);
466 setOperationAction(ISD::BR_CC, MVT::v8f16, Expand);
467 setOperationAction(ISD::SELECT, MVT::v8f16, Expand);
468 setOperationAction(ISD::SELECT_CC, MVT::v8f16, Expand);
469 setOperationAction(ISD::FP_EXTEND, MVT::v8f16, Expand);
474 setOperationAction(ISD::FFLOOR, Ty, Legal);
475 setOperationAction(ISD::FNEARBYINT, Ty, Legal);
476 setOperationAction(ISD::FCEIL, Ty, Legal);
477 setOperationAction(ISD::FRINT, Ty, Legal);
478 setOperationAction(ISD::FTRUNC, Ty, Legal);
479 setOperationAction(ISD::FROUND, Ty, Legal);
480 setOperationAction(ISD::FMINNUM, Ty, Legal);
481 setOperationAction(ISD::FMAXNUM, Ty, Legal);
482 setOperationAction(ISD::FMINIMUM, Ty, Legal);
483 setOperationAction(ISD::FMAXIMUM, Ty, Legal);
484 setOperationAction(ISD::LROUND, Ty, Legal);
485 setOperationAction(ISD::LLROUND, Ty, Legal);
486 setOperationAction(ISD::LRINT, Ty, Legal);
487 setOperationAction(ISD::LLRINT, Ty, Legal);
491 setOperationAction(ISD::FNEARBYINT, MVT::f16, Legal);
492 setOperationAction(ISD::FFLOOR, MVT::f16, Legal);
493 setOperationAction(ISD::FCEIL, MVT::f16, Legal);
494 setOperationAction(ISD::FRINT, MVT::f16, Legal);
495 setOperationAction(ISD::FTRUNC, MVT::f16, Legal);
496 setOperationAction(ISD::FROUND, MVT::f16, Legal);
497 setOperationAction(ISD::FMINNUM, MVT::f16, Legal);
498 setOperationAction(ISD::FMAXNUM, MVT::f16, Legal);
499 setOperationAction(ISD::FMINIMUM, MVT::f16, Legal);
500 setOperationAction(ISD::FMAXIMUM, MVT::f16, Legal);
503 setOperationAction(ISD::PREFETCH, MVT::Other, Custom);
505 setOperationAction(ISD::FLT_ROUNDS_, MVT::i32, Custom);
507 setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i128, Custom);
508 setOperationAction(ISD::ATOMIC_LOAD_SUB, MVT::i32, Custom);
509 setOperationAction(ISD::ATOMIC_LOAD_SUB, MVT::i64, Custom);
510 setOperationAction(ISD::ATOMIC_LOAD_AND, MVT::i32, Custom);
511 setOperationAction(ISD::ATOMIC_LOAD_AND, MVT::i64, Custom);
516 setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Legal);
521 setOperationAction(ISD::FSINCOS, MVT::f64, Custom);
522 setOperationAction(ISD::FSINCOS, MVT::f32, Custom);
524 setOperationAction(ISD::FSINCOS, MVT::f64, Expand);
525 setOperationAction(ISD::FSINCOS, MVT::f32, Expand);
531 setOperationAction(ISD::ConstantFP, MVT::f32, Legal);
532 setOperationAction(ISD::ConstantFP, MVT::f64, Legal);
554 setOperationAction(ISD::BITCAST, MVT::i16, Custom);
555 setOperationAction(ISD::BITCAST, MVT::f16, Custom);
577 setOperationAction(ISD::TRAP, MVT::Other, Legal);
579 setOperationAction(ISD::DEBUGTRAP, MVT::Other, Legal);
657 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
662 setOperationAction(ISD::FABS, MVT::v1f64, Expand);
663 setOperationAction(ISD::FADD, MVT::v1f64, Expand);
664 setOperationAction(ISD::FCEIL, MVT::v1f64, Expand);
665 setOperationAction(ISD::FCOPYSIGN, MVT::v1f64, Expand);
666 setOperationAction(ISD::FCOS, MVT::v1f64, Expand);
667 setOperationAction(ISD::FDIV, MVT::v1f64, Expand);
668 setOperationAction(ISD::FFLOOR, MVT::v1f64, Expand);
669 setOperationAction(ISD::FMA, MVT::v1f64, Expand);
670 setOperationAction(ISD::FMUL, MVT::v1f64, Expand);
671 setOperationAction(ISD::FNEARBYINT, MVT::v1f64, Expand);
672 setOperationAction(ISD::FNEG, MVT::v1f64, Expand);
673 setOperationAction(ISD::FPOW, MVT::v1f64, Expand);
674 setOperationAction(ISD::FREM, MVT::v1f64, Expand);
675 setOperationAction(ISD::FROUND, MVT::v1f64, Expand);
676 setOperationAction(ISD::FRINT, MVT::v1f64, Expand);
677 setOperationAction(ISD::FSIN, MVT::v1f64, Expand);
678 setOperationAction(ISD::FSINCOS, MVT::v1f64, Expand);
679 setOperationAction(ISD::FSQRT, MVT::v1f64, Expand);
680 setOperationAction(ISD::FSUB, MVT::v1f64, Expand);
681 setOperationAction(ISD::FTRUNC, MVT::v1f64, Expand);
682 setOperationAction(ISD::SETCC, MVT::v1f64, Expand);
683 setOperationAction(ISD::BR_CC, MVT::v1f64, Expand);
684 setOperationAction(ISD::SELECT, MVT::v1f64, Expand);
685 setOperationAction(ISD::SELECT_CC, MVT::v1f64, Expand);
686 setOperationAction(ISD::FP_EXTEND, MVT::v1f64, Expand);
688 setOperationAction(ISD::FP_TO_SINT, MVT::v1i64, Expand);
689 setOperationAction(ISD::FP_TO_UINT, MVT::v1i64, Expand);
690 setOperationAction(ISD::SINT_TO_FP, MVT::v1i64, Expand);
691 setOperationAction(ISD::UINT_TO_FP, MVT::v1i64, Expand);
692 setOperationAction(ISD::FP_ROUND, MVT::v1f64, Expand);
694 setOperationAction(ISD::MUL, MVT::v1i64, Expand);
704 setOperationAction(ISD::SINT_TO_FP, MVT::v2i32, Custom);
705 setOperationAction(ISD::UINT_TO_FP, MVT::v2i32, Custom);
706 setOperationAction(ISD::SINT_TO_FP, MVT::v2i64, Custom);
707 setOperationAction(ISD::UINT_TO_FP, MVT::v2i64, Custom);
710 setOperationAction(ISD::SINT_TO_FP, MVT::v4i32, Custom);
711 setOperationAction(ISD::UINT_TO_FP, MVT::v4i32, Custom);
714 setOperationAction(ISD::SINT_TO_FP, MVT::v4i16, Custom);
715 setOperationAction(ISD::UINT_TO_FP, MVT::v4i16, Custom);
716 setOperationAction(ISD::SINT_TO_FP, MVT::v8i16, Custom);
717 setOperationAction(ISD::UINT_TO_FP, MVT::v8i16, Custom);
727 setOperationAction(ISD::CTLZ, MVT::v1i64, Expand);
728 setOperationAction(ISD::CTLZ, MVT::v2i64, Expand);
731 setOperationAction(ISD::MUL, MVT::v2i64, Expand);
733 setOperationAction(ISD::MUL, MVT::v8i16, Custom);
734 setOperationAction(ISD::MUL, MVT::v4i32, Custom);
735 setOperationAction(ISD::MUL, MVT::v2i64, Custom);
740 setOperationAction(ISD::VECREDUCE_ADD, VT, Custom);
741 setOperationAction(ISD::VECREDUCE_SMAX, VT, Custom);
742 setOperationAction(ISD::VECREDUCE_SMIN, VT, Custom);
743 setOperationAction(ISD::VECREDUCE_UMAX, VT, Custom);
744 setOperationAction(ISD::VECREDUCE_UMIN, VT, Custom);
748 setOperationAction(ISD::VECREDUCE_FMAX, VT, Custom);
749 setOperationAction(ISD::VECREDUCE_FMIN, VT, Custom);
752 setOperationAction(ISD::ANY_EXTEND, MVT::v4i32, Legal);
757 setOperationAction(ISD::SIGN_EXTEND_INREG, VT, Expand);
760 setOperationAction(ISD::MULHS, VT, Legal);
761 setOperationAction(ISD::MULHU, VT, Legal);
763 setOperationAction(ISD::MULHS, VT, Expand);
764 setOperationAction(ISD::MULHU, VT, Expand);
766 setOperationAction(ISD::SMUL_LOHI, VT, Expand);
767 setOperationAction(ISD::UMUL_LOHI, VT, Expand);
769 setOperationAction(ISD::BSWAP, VT, Expand);
770 setOperationAction(ISD::CTTZ, VT, Expand);
782 setOperationAction(ISD::FFLOOR, Ty, Legal);
783 setOperationAction(ISD::FNEARBYINT, Ty, Legal);
784 setOperationAction(ISD::FCEIL, Ty, Legal);
785 setOperationAction(ISD::FRINT, Ty, Legal);
786 setOperationAction(ISD::FTRUNC, Ty, Legal);
787 setOperationAction(ISD::FROUND, Ty, Legal);
792 setOperationAction(ISD::FFLOOR, Ty, Legal);
793 setOperationAction(ISD::FNEARBYINT, Ty, Legal);
794 setOperationAction(ISD::FCEIL, Ty, Legal);
795 setOperationAction(ISD::FRINT, Ty, Legal);
796 setOperationAction(ISD::FTRUNC, Ty, Legal);
797 setOperationAction(ISD::FROUND, Ty, Legal);
810 setOperationAction(ISD::SPLAT_VECTOR, VT, Custom);
828 setOperationAction(ISD::FSIN, VT, Expand);
829 setOperationAction(ISD::FCOS, VT, Expand);
830 setOperationAction(ISD::FPOW, VT, Expand);
831 setOperationAction(ISD::FLOG, VT, Expand);
832 setOperationAction(ISD::FLOG2, VT, Expand);
833 setOperationAction(ISD::FLOG10, VT, Expand);
834 setOperationAction(ISD::FEXP, VT, Expand);
835 setOperationAction(ISD::FEXP2, VT, Expand);
838 setOperationAction(ISD::FCOPYSIGN, VT, Custom);
841 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
842 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
843 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
844 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
845 setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Custom);
846 setOperationAction(ISD::SRA, VT, Custom);
847 setOperationAction(ISD::SRL, VT, Custom);
848 setOperationAction(ISD::SHL, VT, Custom);
849 setOperationAction(ISD::OR, VT, Custom);
850 setOperationAction(ISD::SETCC, VT, Custom);
851 setOperationAction(ISD::CONCAT_VECTORS, VT, Legal);
853 setOperationAction(ISD::SELECT, VT, Expand);
854 setOperationAction(ISD::SELECT_CC, VT, Expand);
855 setOperationAction(ISD::VSELECT, VT, Expand);
861 setOperationAction(ISD::CTPOP, VT, Custom);
863 setOperationAction(ISD::UDIV, VT, Expand);
864 setOperationAction(ISD::SDIV, VT, Expand);
865 setOperationAction(ISD::UREM, VT, Expand);
866 setOperationAction(ISD::SREM, VT, Expand);
867 setOperationAction(ISD::FREM, VT, Expand);
869 setOperationAction(ISD::FP_TO_SINT, VT, Custom);
870 setOperationAction(ISD::FP_TO_UINT, VT, Custom);
873 setOperationAction(ISD::ABS, VT, Legal);
878 setOperationAction(Opcode, VT, Legal);
885 setOperationAction(Opcode, VT, Legal);
lib/Target/AMDGPU/AMDGPUISelLowering.cpp 70 setOperationAction(ISD::LOAD, MVT::f32, Promote);
73 setOperationAction(ISD::LOAD, MVT::v2f32, Promote);
76 setOperationAction(ISD::LOAD, MVT::v3f32, Promote);
79 setOperationAction(ISD::LOAD, MVT::v4f32, Promote);
82 setOperationAction(ISD::LOAD, MVT::v5f32, Promote);
85 setOperationAction(ISD::LOAD, MVT::v8f32, Promote);
88 setOperationAction(ISD::LOAD, MVT::v16f32, Promote);
91 setOperationAction(ISD::LOAD, MVT::v32f32, Promote);
94 setOperationAction(ISD::LOAD, MVT::i64, Promote);
97 setOperationAction(ISD::LOAD, MVT::v2i64, Promote);
100 setOperationAction(ISD::LOAD, MVT::f64, Promote);
103 setOperationAction(ISD::LOAD, MVT::v2f64, Promote);
170 setOperationAction(ISD::STORE, MVT::f32, Promote);
173 setOperationAction(ISD::STORE, MVT::v2f32, Promote);
176 setOperationAction(ISD::STORE, MVT::v3f32, Promote);
179 setOperationAction(ISD::STORE, MVT::v4f32, Promote);
182 setOperationAction(ISD::STORE, MVT::v5f32, Promote);
185 setOperationAction(ISD::STORE, MVT::v8f32, Promote);
188 setOperationAction(ISD::STORE, MVT::v16f32, Promote);
191 setOperationAction(ISD::STORE, MVT::v32f32, Promote);
194 setOperationAction(ISD::STORE, MVT::i64, Promote);
197 setOperationAction(ISD::STORE, MVT::v2i64, Promote);
200 setOperationAction(ISD::STORE, MVT::f64, Promote);
203 setOperationAction(ISD::STORE, MVT::v2f64, Promote);
237 setOperationAction(ISD::Constant, MVT::i32, Legal);
238 setOperationAction(ISD::Constant, MVT::i64, Legal);
239 setOperationAction(ISD::ConstantFP, MVT::f32, Legal);
240 setOperationAction(ISD::ConstantFP, MVT::f64, Legal);
242 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
243 setOperationAction(ISD::BRIND, MVT::Other, Expand);
246 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Custom);
250 setOperationAction(ISD::FCEIL, MVT::f32, Legal);
251 setOperationAction(ISD::FEXP2, MVT::f32, Legal);
252 setOperationAction(ISD::FPOW, MVT::f32, Legal);
253 setOperationAction(ISD::FLOG2, MVT::f32, Legal);
254 setOperationAction(ISD::FABS, MVT::f32, Legal);
255 setOperationAction(ISD::FFLOOR, MVT::f32, Legal);
256 setOperationAction(ISD::FRINT, MVT::f32, Legal);
257 setOperationAction(ISD::FTRUNC, MVT::f32, Legal);
258 setOperationAction(ISD::FMINNUM, MVT::f32, Legal);
259 setOperationAction(ISD::FMAXNUM, MVT::f32, Legal);
261 setOperationAction(ISD::FROUND, MVT::f32, Custom);
262 setOperationAction(ISD::FROUND, MVT::f64, Custom);
264 setOperationAction(ISD::FLOG, MVT::f32, Custom);
265 setOperationAction(ISD::FLOG10, MVT::f32, Custom);
266 setOperationAction(ISD::FEXP, MVT::f32, Custom);
269 setOperationAction(ISD::FNEARBYINT, MVT::f32, Custom);
270 setOperationAction(ISD::FNEARBYINT, MVT::f64, Custom);
272 setOperationAction(ISD::FREM, MVT::f32, Custom);
273 setOperationAction(ISD::FREM, MVT::f64, Custom);
276 setOperationAction(ISD::FSUB, MVT::f64, Expand);
278 setOperationAction(ISD::CONCAT_VECTORS, MVT::v3i32, Custom);
279 setOperationAction(ISD::CONCAT_VECTORS, MVT::v3f32, Custom);
280 setOperationAction(ISD::CONCAT_VECTORS, MVT::v4i32, Custom);
281 setOperationAction(ISD::CONCAT_VECTORS, MVT::v4f32, Custom);
282 setOperationAction(ISD::CONCAT_VECTORS, MVT::v5i32, Custom);
283 setOperationAction(ISD::CONCAT_VECTORS, MVT::v5f32, Custom);
284 setOperationAction(ISD::CONCAT_VECTORS, MVT::v8i32, Custom);
285 setOperationAction(ISD::CONCAT_VECTORS, MVT::v8f32, Custom);
286 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v2f32, Custom);
287 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v2i32, Custom);
288 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v3f32, Custom);
289 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v3i32, Custom);
290 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v4f32, Custom);
291 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v4i32, Custom);
292 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v5f32, Custom);
293 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v5i32, Custom);
294 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v8f32, Custom);
295 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v8i32, Custom);
296 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v16f32, Custom);
297 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v16i32, Custom);
298 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v32f32, Custom);
299 setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v32i32, Custom);
301 setOperationAction(ISD::FP16_TO_FP, MVT::f64, Expand);
302 setOperationAction(ISD::FP_TO_FP16, MVT::f64, Custom);
303 setOperationAction(ISD::FP_TO_FP16, MVT::f32, Custom);
308 setOperationAction(ISD::SDIV, VT, Expand);
309 setOperationAction(ISD::UDIV, VT, Expand);
310 setOperationAction(ISD::SREM, VT, Expand);
311 setOperationAction(ISD::UREM, VT, Expand);
314 setOperationAction(ISD::SDIVREM, VT, Custom);
315 setOperationAction(ISD::UDIVREM, VT, Custom);
318 setOperationAction(ISD::SMUL_LOHI, VT, Expand);
319 setOperationAction(ISD::UMUL_LOHI, VT, Expand);
321 setOperationAction(ISD::BSWAP, VT, Expand);
322 setOperationAction(ISD::CTTZ, VT, Expand);
323 setOperationAction(ISD::CTLZ, VT, Expand);
326 setOperationAction(ISD::ADDC, VT, Legal);
327 setOperationAction(ISD::SUBC, VT, Legal);
328 setOperationAction(ISD::ADDE, VT, Legal);
329 setOperationAction(ISD::SUBE, VT, Legal);
333 setOperationAction(ISD::ROTL, MVT::i32, Expand);
334 setOperationAction(ISD::ROTL, MVT::i64, Expand);
335 setOperationAction(ISD::ROTR, MVT::i64, Expand);
337 setOperationAction(ISD::MUL, MVT::i64, Expand);
338 setOperationAction(ISD::MULHU, MVT::i64, Expand);
339 setOperationAction(ISD::MULHS, MVT::i64, Expand);
340 setOperationAction(ISD::UINT_TO_FP, MVT::i64, Custom);
341 setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
342 setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
343 setOperationAction(ISD::FP_TO_UINT, MVT::i64, Custom);
344 setOperationAction(ISD::SELECT_CC, MVT::i64, Expand);
346 setOperationAction(ISD::SMIN, MVT::i32, Legal);
347 setOperationAction(ISD::UMIN, MVT::i32, Legal);
348 setOperationAction(ISD::SMAX, MVT::i32, Legal);
349 setOperationAction(ISD::UMAX, MVT::i32, Legal);
351 setOperationAction(ISD::CTTZ, MVT::i64, Custom);
352 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i64, Custom);
353 setOperationAction(ISD::CTLZ, MVT::i64, Custom);
354 setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i64, Custom);
362 setOperationAction(ISD::ADD, VT, Expand);
363 setOperationAction(ISD::AND, VT, Expand);
364 setOperationAction(ISD::FP_TO_SINT, VT, Expand);
365 setOperationAction(ISD::FP_TO_UINT, VT, Expand);
366 setOperationAction(ISD::MUL, VT, Expand);
367 setOperationAction(ISD::MULHU, VT, Expand);
368 setOperationAction(ISD::MULHS, VT, Expand);
369 setOperationAction(ISD::OR, VT, Expand);
370 setOperationAction(ISD::SHL, VT, Expand);
371 setOperationAction(ISD::SRA, VT, Expand);
372 setOperationAction(ISD::SRL, VT, Expand);
373 setOperationAction(ISD::ROTL, VT, Expand);
374 setOperationAction(ISD::ROTR, VT, Expand);
375 setOperationAction(ISD::SUB, VT, Expand);
376 setOperationAction(ISD::SINT_TO_FP, VT, Expand);
377 setOperationAction(ISD::UINT_TO_FP, VT, Expand);
378 setOperationAction(ISD::SDIV, VT, Expand);
379 setOperationAction(ISD::UDIV, VT, Expand);
380 setOperationAction(ISD::SREM, VT, Expand);
381 setOperationAction(ISD::UREM, VT, Expand);
382 setOperationAction(ISD::SMUL_LOHI, VT, Expand);
383 setOperationAction(ISD::UMUL_LOHI, VT, Expand);
384 setOperationAction(ISD::SDIVREM, VT, Custom);
385 setOperationAction(ISD::UDIVREM, VT, Expand);
386 setOperationAction(ISD::SELECT, VT, Expand);
387 setOperationAction(ISD::VSELECT, VT, Expand);
388 setOperationAction(ISD::SELECT_CC, VT, Expand);
389 setOperationAction(ISD::XOR, VT, Expand);
390 setOperationAction(ISD::BSWAP, VT, Expand);
391 setOperationAction(ISD::CTPOP, VT, Expand);
392 setOperationAction(ISD::CTTZ, VT, Expand);
393 setOperationAction(ISD::CTLZ, VT, Expand);
394 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Expand);
395 setOperationAction(ISD::SETCC, VT, Expand);
403 setOperationAction(ISD::FABS, VT, Expand);
404 setOperationAction(ISD::FMINNUM, VT, Expand);
405 setOperationAction(ISD::FMAXNUM, VT, Expand);
406 setOperationAction(ISD::FADD, VT, Expand);
407 setOperationAction(ISD::FCEIL, VT, Expand);
408 setOperationAction(ISD::FCOS, VT, Expand);
409 setOperationAction(ISD::FDIV, VT, Expand);
410 setOperationAction(ISD::FEXP2, VT, Expand);
411 setOperationAction(ISD::FEXP, VT, Expand);
412 setOperationAction(ISD::FLOG2, VT, Expand);
413 setOperationAction(ISD::FREM, VT, Expand);
414 setOperationAction(ISD::FLOG, VT, Expand);
415 setOperationAction(ISD::FLOG10, VT, Expand);
416 setOperationAction(ISD::FPOW, VT, Expand);
417 setOperationAction(ISD::FFLOOR, VT, Expand);
418 setOperationAction(ISD::FTRUNC, VT, Expand);
419 setOperationAction(ISD::FMUL, VT, Expand);
420 setOperationAction(ISD::FMA, VT, Expand);
421 setOperationAction(ISD::FRINT, VT, Expand);
422 setOperationAction(ISD::FNEARBYINT, VT, Expand);
423 setOperationAction(ISD::FSQRT, VT, Expand);
424 setOperationAction(ISD::FSIN, VT, Expand);
425 setOperationAction(ISD::FSUB, VT, Expand);
426 setOperationAction(ISD::FNEG, VT, Expand);
427 setOperationAction(ISD::VSELECT, VT, Expand);
428 setOperationAction(ISD::SELECT_CC, VT, Expand);
429 setOperationAction(ISD::FCOPYSIGN, VT, Expand);
430 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Expand);
431 setOperationAction(ISD::SETCC, VT, Expand);
432 setOperationAction(ISD::FCANONICALIZE, VT, Expand);
438 setOperationAction(ISD::SELECT, MVT::v2f32, Promote);
441 setOperationAction(ISD::SELECT, MVT::v3f32, Promote);
444 setOperationAction(ISD::SELECT, MVT::v4f32, Promote);
447 setOperationAction(ISD::SELECT, MVT::v5f32, Promote);
lib/Target/AMDGPU/R600ISelLowering.cpp 68 setOperationAction(ISD::LOAD, MVT::i32, Custom);
69 setOperationAction(ISD::LOAD, MVT::v2i32, Custom);
70 setOperationAction(ISD::LOAD, MVT::v4i32, Custom);
97 setOperationAction(ISD::STORE, MVT::i8, Custom);
98 setOperationAction(ISD::STORE, MVT::i32, Custom);
99 setOperationAction(ISD::STORE, MVT::v2i32, Custom);
100 setOperationAction(ISD::STORE, MVT::v4i32, Custom);
140 setOperationAction(ISD::FCOS, MVT::f32, Custom);
141 setOperationAction(ISD::FSIN, MVT::f32, Custom);
143 setOperationAction(ISD::SETCC, MVT::v4i32, Expand);
144 setOperationAction(ISD::SETCC, MVT::v2i32, Expand);
146 setOperationAction(ISD::BR_CC, MVT::i32, Expand);
147 setOperationAction(ISD::BR_CC, MVT::f32, Expand);
148 setOperationAction(ISD::BRCOND, MVT::Other, Custom);
150 setOperationAction(ISD::FSUB, MVT::f32, Expand);
152 setOperationAction(ISD::FCEIL, MVT::f64, Custom);
153 setOperationAction(ISD::FTRUNC, MVT::f64, Custom);
154 setOperationAction(ISD::FRINT, MVT::f64, Custom);
155 setOperationAction(ISD::FFLOOR, MVT::f64, Custom);
157 setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
158 setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
160 setOperationAction(ISD::SETCC, MVT::i32, Expand);
161 setOperationAction(ISD::SETCC, MVT::f32, Expand);
162 setOperationAction(ISD::FP_TO_UINT, MVT::i1, Custom);
163 setOperationAction(ISD::FP_TO_SINT, MVT::i1, Custom);
164 setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
165 setOperationAction(ISD::FP_TO_UINT, MVT::i64, Custom);
167 setOperationAction(ISD::SELECT, MVT::i32, Expand);
168 setOperationAction(ISD::SELECT, MVT::f32, Expand);
169 setOperationAction(ISD::SELECT, MVT::v2i32, Expand);
170 setOperationAction(ISD::SELECT, MVT::v4i32, Expand);
175 setOperationAction(ISD::UADDO, MVT::i32, Custom);
178 setOperationAction(ISD::USUBO, MVT::i32, Custom);
182 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
184 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i1, Expand);
185 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i1, Expand);
188 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8, Expand);
189 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i8, Expand);
190 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i8, Expand);
193 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
194 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i16, Expand);
195 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i16, Expand);
197 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i32, Legal);
198 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i32, Expand);
199 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i32, Expand);
201 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::Other, Expand);
203 setOperationAction(ISD::FrameIndex, MVT::i32, Custom);
205 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2i32, Custom);
206 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f32, Custom);
207 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4i32, Custom);
208 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4f32, Custom);
210 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2i32, Custom);
211 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2f32, Custom);
212 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4i32, Custom);
213 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4f32, Custom);
217 setOperationAction(ISD::SHL_PARTS, MVT::i32, Custom);
218 setOperationAction(ISD::SRL_PARTS, MVT::i32, Custom);
219 setOperationAction(ISD::SRA_PARTS, MVT::i32, Custom);
222 setOperationAction(ISD::FMA, MVT::f32, Expand);
223 setOperationAction(ISD::FMA, MVT::f64, Expand);
229 setOperationAction(ISD::FMAD, MVT::f32, Legal);
233 setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
234 setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
238 setOperationAction(ISD::CTPOP, MVT::i32, Expand);
241 setOperationAction(ISD::CTPOP, MVT::i64, Expand);
244 setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i32, Custom);
247 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i32, Custom);
254 setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
258 setOperationAction(ISD::ADDC, VT, Expand);
259 setOperationAction(ISD::SUBC, VT, Expand);
260 setOperationAction(ISD::ADDE, VT, Expand);
261 setOperationAction(ISD::SUBE, VT, Expand);
266 setOperationAction(ISD::ATOMIC_LOAD, MVT::i32, Expand);
267 setOperationAction(ISD::ATOMIC_STORE, MVT::i32, Expand);
270 setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
271 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
lib/Target/AMDGPU/SIISelLowering.cpp 164 setOperationAction(ISD::LOAD, MVT::v2i32, Custom);
165 setOperationAction(ISD::LOAD, MVT::v3i32, Custom);
166 setOperationAction(ISD::LOAD, MVT::v4i32, Custom);
167 setOperationAction(ISD::LOAD, MVT::v5i32, Custom);
168 setOperationAction(ISD::LOAD, MVT::v8i32, Custom);
169 setOperationAction(ISD::LOAD, MVT::v16i32, Custom);
170 setOperationAction(ISD::LOAD, MVT::i1, Custom);
171 setOperationAction(ISD::LOAD, MVT::v32i32, Custom);
173 setOperationAction(ISD::STORE, MVT::v2i32, Custom);
174 setOperationAction(ISD::STORE, MVT::v3i32, Custom);
175 setOperationAction(ISD::STORE, MVT::v4i32, Custom);
176 setOperationAction(ISD::STORE, MVT::v5i32, Custom);
177 setOperationAction(ISD::STORE, MVT::v8i32, Custom);
178 setOperationAction(ISD::STORE, MVT::v16i32, Custom);
179 setOperationAction(ISD::STORE, MVT::i1, Custom);
180 setOperationAction(ISD::STORE, MVT::v32i32, Custom);
194 setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
195 setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);
197 setOperationAction(ISD::SELECT, MVT::i1, Promote);
198 setOperationAction(ISD::SELECT, MVT::i64, Custom);
199 setOperationAction(ISD::SELECT, MVT::f64, Promote);
202 setOperationAction(ISD::SELECT_CC, MVT::f32, Expand);
203 setOperationAction(ISD::SELECT_CC, MVT::i32, Expand);
204 setOperationAction(ISD::SELECT_CC, MVT::i64, Expand);
205 setOperationAction(ISD::SELECT_CC, MVT::f64, Expand);
206 setOperationAction(ISD::SELECT_CC, MVT::i1, Expand);
208 setOperationAction(ISD::SETCC, MVT::i1, Promote);
209 setOperationAction(ISD::SETCC, MVT::v2i1, Expand);
210 setOperationAction(ISD::SETCC, MVT::v4i1, Expand);
213 setOperationAction(ISD::TRUNCATE, MVT::v2i32, Expand);
214 setOperationAction(ISD::FP_ROUND, MVT::v2f32, Expand);
216 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i1, Custom);
217 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i1, Custom);
218 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i8, Custom);
219 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i8, Custom);
220 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i16, Custom);
221 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v3i16, Custom);
222 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i16, Custom);
223 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::Other, Custom);
225 setOperationAction(ISD::BRCOND, MVT::Other, Custom);
226 setOperationAction(ISD::BR_CC, MVT::i1, Expand);
227 setOperationAction(ISD::BR_CC, MVT::i32, Expand);
228 setOperationAction(ISD::BR_CC, MVT::i64, Expand);
229 setOperationAction(ISD::BR_CC, MVT::f32, Expand);
230 setOperationAction(ISD::BR_CC, MVT::f64, Expand);
232 setOperationAction(ISD::UADDO, MVT::i32, Legal);
233 setOperationAction(ISD::USUBO, MVT::i32, Legal);
235 setOperationAction(ISD::ADDCARRY, MVT::i32, Legal);
236 setOperationAction(ISD::SUBCARRY, MVT::i32, Legal);
238 setOperationAction(ISD::SHL_PARTS, MVT::i64, Expand);
239 setOperationAction(ISD::SRA_PARTS, MVT::i64, Expand);
240 setOperationAction(ISD::SRL_PARTS, MVT::i64, Expand);
265 setOperationAction(Op, VT, Custom);
268 setOperationAction(Op, VT, Expand);
274 setOperationAction(ISD::FP_EXTEND, MVT::v4f32, Expand);
282 setOperationAction(ISD::BUILD_VECTOR, Vec64, Promote);
285 setOperationAction(ISD::EXTRACT_VECTOR_ELT, Vec64, Promote);
288 setOperationAction(ISD::INSERT_VECTOR_ELT, Vec64, Promote);
291 setOperationAction(ISD::SCALAR_TO_VECTOR, Vec64, Promote);
295 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v8i32, Expand);
296 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v8f32, Expand);
297 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v16i32, Expand);
298 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v16f32, Expand);
300 setOperationAction(ISD::BUILD_VECTOR, MVT::v4f16, Custom);
301 setOperationAction(ISD::BUILD_VECTOR, MVT::v4i16, Custom);
305 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2i16, Custom);
306 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2f16, Custom);
307 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4i16, Custom);
308 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4f16, Custom);
310 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2i16, Custom);
311 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f16, Custom);
312 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2i8, Custom);
313 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4i8, Custom);
314 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v8i8, Custom);
316 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2i8, Custom);
317 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4i8, Custom);
318 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v8i8, Custom);
320 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4i16, Custom);
321 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4f16, Custom);
322 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4i16, Custom);
323 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4f16, Custom);
326 setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v3i32, Custom);
327 setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v3f32, Custom);
328 setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v4i32, Custom);
329 setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v4f32, Custom);
332 setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v5i32, Custom);
333 setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v5f32, Custom);
334 setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v8i32, Custom);
335 setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v8f32, Custom);
339 setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i32, Custom);
340 setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i64, Custom);
344 setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, MVT::i32, Expand);
345 setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, MVT::i64, Expand);
348 setOperationAction(ISD::ADDRSPACECAST, MVT::i32, Custom);
349 setOperationAction(ISD::ADDRSPACECAST, MVT::i64, Custom);
352 setOperationAction(ISD::BSWAP, MVT::i32, Legal);
353 setOperationAction(ISD::BITREVERSE, MVT::i32, Legal);
356 setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Legal);
357 setOperationAction(ISD::TRAP, MVT::Other, Custom);
358 setOperationAction(ISD::DEBUGTRAP, MVT::Other, Custom);
361 setOperationAction(ISD::FLOG, MVT::f16, Custom);
362 setOperationAction(ISD::FEXP, MVT::f16, Custom);
363 setOperationAction(ISD::FLOG10, MVT::f16, Custom);
368 setOperationAction(ISD::FMAD, MVT::f32, Legal);
372 setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
373 setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
377 setOperationAction(ISD::CTPOP, MVT::i32, Expand);
380 setOperationAction(ISD::CTPOP, MVT::i64, Expand);
383 setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i32, Custom);
386 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i32, Custom);
399 setOperationAction(ISD::FMINNUM, MVT::f32, Custom);
400 setOperationAction(ISD::FMAXNUM, MVT::f32, Custom);
401 setOperationAction(ISD::FMINNUM, MVT::f64, Custom);
402 setOperationAction(ISD::FMAXNUM, MVT::f64, Custom);
408 setOperationAction(ISD::FMINNUM_IEEE, MVT::f32, Legal);
409 setOperationAction(ISD::FMAXNUM_IEEE, MVT::f32, Legal);
410 setOperationAction(ISD::FMINNUM_IEEE, MVT::f64, Legal);
411 setOperationAction(ISD::FMAXNUM_IEEE, MVT::f64, Legal);
415 setOperationAction(ISD::FTRUNC, MVT::f64, Legal);
416 setOperationAction(ISD::FCEIL, MVT::f64, Legal);
417 setOperationAction(ISD::FRINT, MVT::f64, Legal);
419 setOperationAction(ISD::FCEIL, MVT::f64, Custom);
420 setOperationAction(ISD::FTRUNC, MVT::f64, Custom);
421 setOperationAction(ISD::FRINT, MVT::f64, Custom);
422 setOperationAction(ISD::FFLOOR, MVT::f64, Custom);
425 setOperationAction(ISD::FFLOOR, MVT::f64, Legal);
427 setOperationAction(ISD::FSIN, MVT::f32, Custom);
428 setOperationAction(ISD::FCOS, MVT::f32, Custom);
429 setOperationAction(ISD::FDIV, MVT::f32, Custom);
430 setOperationAction(ISD::FDIV, MVT::f64, Custom);
433 setOperationAction(ISD::Constant, MVT::i16, Legal);
435 setOperationAction(ISD::SMIN, MVT::i16, Legal);
436 setOperationAction(ISD::SMAX, MVT::i16, Legal);
438 setOperationAction(ISD::UMIN, MVT::i16, Legal);
439 setOperationAction(ISD::UMAX, MVT::i16, Legal);
441 setOperationAction(ISD::SIGN_EXTEND, MVT::i16, Promote);
444 setOperationAction(ISD::ROTR, MVT::i16, Promote);
445 setOperationAction(ISD::ROTL, MVT::i16, Promote);
447 setOperationAction(ISD::SDIV, MVT::i16, Promote);
448 setOperationAction(ISD::UDIV, MVT::i16, Promote);
449 setOperationAction(ISD::SREM, MVT::i16, Promote);
450 setOperationAction(ISD::UREM, MVT::i16, Promote);
452 setOperationAction(ISD::BSWAP, MVT::i16, Promote);
453 setOperationAction(ISD::BITREVERSE, MVT::i16, Promote);
455 setOperationAction(ISD::CTTZ, MVT::i16, Promote);
456 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i16, Promote);
457 setOperationAction(ISD::CTLZ, MVT::i16, Promote);
458 setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i16, Promote);
459 setOperationAction(ISD::CTPOP, MVT::i16, Promote);
461 setOperationAction(ISD::SELECT_CC, MVT::i16, Expand);
463 setOperationAction(ISD::BR_CC, MVT::i16, Expand);
465 setOperationAction(ISD::LOAD, MVT::i16, Custom);
469 setOperationAction(ISD::FP16_TO_FP, MVT::i16, Promote);
471 setOperationAction(ISD::FP_TO_FP16, MVT::i16, Promote);
474 setOperationAction(ISD::FP_TO_SINT, MVT::i16, Promote);
475 setOperationAction(ISD::FP_TO_UINT, MVT::i16, Promote);
476 setOperationAction(ISD::SINT_TO_FP, MVT::i16, Promote);
477 setOperationAction(ISD::UINT_TO_FP, MVT::i16, Promote);
480 setOperationAction(ISD::ConstantFP, MVT::f16, Legal);
483 setOperationAction(ISD::LOAD, MVT::f16, Promote);
485 setOperationAction(ISD::STORE, MVT::f16, Promote);
489 setOperationAction(ISD::FP_ROUND, MVT::f16, Custom);
490 setOperationAction(ISD::FCOS, MVT::f16, Promote);
491 setOperationAction(ISD::FSIN, MVT::f16, Promote);
492 setOperationAction(ISD::FP_TO_SINT, MVT::f16, Promote);
493 setOperationAction(ISD::FP_TO_UINT, MVT::f16, Promote);
494 setOperationAction(ISD::SINT_TO_FP, MVT::f16, Promote);
495 setOperationAction(ISD::UINT_TO_FP, MVT::f16, Promote);
496 setOperationAction(ISD::FROUND, MVT::f16, Custom);
499 setOperationAction(ISD::BR_CC, MVT::f16, Expand);
500 setOperationAction(ISD::SELECT_CC, MVT::f16, Expand);
502 setOperationAction(ISD::FDIV, MVT::f16, Custom);
505 setOperationAction(ISD::FMA, MVT::f16, Legal);
507 setOperationAction(ISD::FMAD, MVT::f16, Legal);
523 setOperationAction(Op, VT, Custom);
526 setOperationAction(Op, VT, Expand);
533 setOperationAction(ISD::Constant, MVT::v2i16, Legal);
534 setOperationAction(ISD::ConstantFP, MVT::v2f16, Legal);
536 setOperationAction(ISD::UNDEF, MVT::v2i16, Legal);
537 setOperationAction(ISD::UNDEF, MVT::v2f16, Legal);
539 setOperationAction(ISD::STORE, MVT::v2i16, Promote);
541 setOperationAction(ISD::STORE, MVT::v2f16, Promote);
544 setOperationAction(ISD::LOAD, MVT::v2i16, Promote);
546 setOperationAction(ISD::LOAD, MVT::v2f16, Promote);
549 setOperationAction(ISD::AND, MVT::v2i16, Promote);
551 setOperationAction(ISD::OR, MVT::v2i16, Promote);
553 setOperationAction(ISD::XOR, MVT::v2i16, Promote);
556 setOperationAction(ISD::LOAD, MVT::v4i16, Promote);
558 setOperationAction(ISD::LOAD, MVT::v4f16, Promote);
561 setOperationAction(ISD::STORE, MVT::v4i16, Promote);
563 setOperationAction(ISD::STORE, MVT::v4f16, Promote);
566 setOperationAction(ISD::ANY_EXTEND, MVT::v2i32, Expand);
567 setOperationAction(ISD::ZERO_EXTEND, MVT::v2i32, Expand);
568 setOperationAction(ISD::SIGN_EXTEND, MVT::v2i32, Expand);
569 setOperationAction(ISD::FP_EXTEND, MVT::v2f32, Expand);
571 setOperationAction(ISD::ANY_EXTEND, MVT::v4i32, Expand);
572 setOperationAction(ISD::ZERO_EXTEND, MVT::v4i32, Expand);
573 setOperationAction(ISD::SIGN_EXTEND, MVT::v4i32, Expand);
576 setOperationAction(ISD::BUILD_VECTOR, MVT::v2i16, Custom);
577 setOperationAction(ISD::BUILD_VECTOR, MVT::v2f16, Custom);
580 setOperationAction(ISD::FNEG, MVT::v2f16, Legal);
583 setOperationAction(ISD::FABS, MVT::v2f16, Legal);
585 setOperationAction(ISD::FMAXNUM, MVT::f16, Custom);
586 setOperationAction(ISD::FMINNUM, MVT::f16, Custom);
587 setOperationAction(ISD::FMAXNUM_IEEE, MVT::f16, Legal);
588 setOperationAction(ISD::FMINNUM_IEEE, MVT::f16, Legal);
590 setOperationAction(ISD::FMINNUM_IEEE, MVT::v4f16, Custom);
591 setOperationAction(ISD::FMAXNUM_IEEE, MVT::v4f16, Custom);
593 setOperationAction(ISD::FMINNUM, MVT::v4f16, Expand);
594 setOperationAction(ISD::FMAXNUM, MVT::v4f16, Expand);
598 setOperationAction(ISD::ADD, MVT::v2i16, Legal);
599 setOperationAction(ISD::SUB, MVT::v2i16, Legal);
600 setOperationAction(ISD::MUL, MVT::v2i16, Legal);
601 setOperationAction(ISD::SHL, MVT::v2i16, Legal);
602 setOperationAction(ISD::SRL, MVT::v2i16, Legal);
603 setOperationAction(ISD::SRA, MVT::v2i16, Legal);
604 setOperationAction(ISD::SMIN, MVT::v2i16, Legal);
605 setOperationAction(ISD::UMIN, MVT::v2i16, Legal);
606 setOperationAction(ISD::SMAX, MVT::v2i16, Legal);
607 setOperationAction(ISD::UMAX, MVT::v2i16, Legal);
609 setOperationAction(ISD::FADD, MVT::v2f16, Legal);
610 setOperationAction(ISD::FMUL, MVT::v2f16, Legal);
611 setOperationAction(ISD::FMA, MVT::v2f16, Legal);
613 setOperationAction(ISD::FMINNUM_IEEE, MVT::v2f16, Legal);
614 setOperationAction(ISD::FMAXNUM_IEEE, MVT::v2f16, Legal);
616 setOperationAction(ISD::FCANONICALIZE, MVT::v2f16, Legal);
618 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2i16, Custom);
619 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f16, Custom);
621 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v4f16, Custom);
622 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v4i16, Custom);
624 setOperationAction(ISD::SHL, MVT::v4i16, Custom);
625 setOperationAction(ISD::SRA, MVT::v4i16, Custom);
626 setOperationAction(ISD::SRL, MVT::v4i16, Custom);
627 setOperationAction(ISD::ADD, MVT::v4i16, Custom);
628 setOperationAction(ISD::SUB, MVT::v4i16, Custom);
629 setOperationAction(ISD::MUL, MVT::v4i16, Custom);
631 setOperationAction(ISD::SMIN, MVT::v4i16, Custom);
632 setOperationAction(ISD::SMAX, MVT::v4i16, Custom);
633 setOperationAction(ISD::UMIN, MVT::v4i16, Custom);
634 setOperationAction(ISD::UMAX, MVT::v4i16, Custom);
636 setOperationAction(ISD::FADD, MVT::v4f16, Custom);
637 setOperationAction(ISD::FMUL, MVT::v4f16, Custom);
638 setOperationAction(ISD::FMA, MVT::v4f16, Custom);
640 setOperationAction(ISD::FMAXNUM, MVT::v2f16, Custom);
641 setOperationAction(ISD::FMINNUM, MVT::v2f16, Custom);
643 setOperationAction(ISD::FMINNUM, MVT::v4f16, Custom);
644 setOperationAction(ISD::FMAXNUM, MVT::v4f16, Custom);
645 setOperationAction(ISD::FCANONICALIZE, MVT::v4f16, Custom);
647 setOperationAction(ISD::FEXP, MVT::v2f16, Custom);
648 setOperationAction(ISD::SELECT, MVT::v4i16, Custom);
649 setOperationAction(ISD::SELECT, MVT::v4f16, Custom);
652 setOperationAction(ISD::FNEG, MVT::v4f16, Custom);
653 setOperationAction(ISD::FABS, MVT::v4f16, Custom);
656 setOperationAction(ISD::SELECT, MVT::v2i16, Promote);
658 setOperationAction(ISD::SELECT, MVT::v2f16, Promote);
662 setOperationAction(ISD::SELECT, MVT::v2i16, Custom);
663 setOperationAction(ISD::SELECT, MVT::v2f16, Custom);
665 setOperationAction(ISD::FNEG, MVT::v2f16, Custom);
666 setOperationAction(ISD::FABS, MVT::v2f16, Custom);
670 setOperationAction(ISD::SELECT, VT, Custom);
673 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
674 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::f32, Custom);
675 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::v4f32, Custom);
676 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::i16, Custom);
677 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::f16, Custom);
678 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::v2i16, Custom);
679 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::v2f16, Custom);
681 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::v2f16, Custom);
682 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::v2i16, Custom);
683 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::v4f16, Custom);
684 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::v4i16, Custom);
685 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::v8f16, Custom);
686 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::Other, Custom);
687 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::f16, Custom);
688 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::i16, Custom);
689 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::i8, Custom);
691 setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
692 setOperationAction(ISD::INTRINSIC_VOID, MVT::v2i16, Custom);
693 setOperationAction(ISD::INTRINSIC_VOID, MVT::v2f16, Custom);
694 setOperationAction(ISD::INTRINSIC_VOID, MVT::v4f16, Custom);
695 setOperationAction(ISD::INTRINSIC_VOID, MVT::v4i16, Custom);
696 setOperationAction(ISD::INTRINSIC_VOID, MVT::f16, Custom);
697 setOperationAction(ISD::INTRINSIC_VOID, MVT::i16, Custom);
698 setOperationAction(ISD::INTRINSIC_VOID, MVT::i8, Custom);
lib/Target/ARC/ARCISelLowering.cpp 90 setOperationAction(Opc, MVT::i32, Expand);
94 setOperationAction(ISD::ADD, MVT::i32, Legal);
95 setOperationAction(ISD::SUB, MVT::i32, Legal);
96 setOperationAction(ISD::AND, MVT::i32, Legal);
97 setOperationAction(ISD::SMAX, MVT::i32, Legal);
98 setOperationAction(ISD::SMIN, MVT::i32, Legal);
101 setOperationAction(ISD::SHL, MVT::i32, Legal);
102 setOperationAction(ISD::SRA, MVT::i32, Legal);
103 setOperationAction(ISD::SRL, MVT::i32, Legal);
104 setOperationAction(ISD::ROTR, MVT::i32, Legal);
106 setOperationAction(ISD::Constant, MVT::i32, Legal);
107 setOperationAction(ISD::UNDEF, MVT::i32, Legal);
110 setOperationAction(ISD::MUL, MVT::i32, Legal);
111 setOperationAction(ISD::MULHS, MVT::i32, Legal);
112 setOperationAction(ISD::MULHU, MVT::i32, Legal);
113 setOperationAction(ISD::LOAD, MVT::i32, Legal);
114 setOperationAction(ISD::STORE, MVT::i32, Legal);
116 setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
117 setOperationAction(ISD::BR_CC, MVT::i32, Custom);
118 setOperationAction(ISD::BRCOND, MVT::Other, Expand);
119 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
120 setOperationAction(ISD::JumpTable, MVT::i32, Custom);
123 setOperationAction(ISD::FRAMEADDR, MVT::i32, Legal);
125 setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
128 setOperationAction(ISD::VASTART, MVT::Other, Custom);
129 setOperationAction(ISD::VAEND, MVT::Other, Expand);
130 setOperationAction(ISD::VAARG, MVT::Other, Expand);
131 setOperationAction(ISD::VACOPY, MVT::Other, Expand);
134 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
135 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
138 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Custom);
lib/Target/ARM/ARMISelLowering.cpp 153 setOperationAction(ISD::LOAD, VT, Promote);
156 setOperationAction(ISD::STORE, VT, Promote);
162 setOperationAction(ISD::SETCC, VT, Custom);
163 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
164 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
166 setOperationAction(ISD::SINT_TO_FP, VT, Custom);
167 setOperationAction(ISD::UINT_TO_FP, VT, Custom);
168 setOperationAction(ISD::FP_TO_SINT, VT, Custom);
169 setOperationAction(ISD::FP_TO_UINT, VT, Custom);
171 setOperationAction(ISD::SINT_TO_FP, VT, Expand);
172 setOperationAction(ISD::UINT_TO_FP, VT, Expand);
173 setOperationAction(ISD::FP_TO_SINT, VT, Expand);
174 setOperationAction(ISD::FP_TO_UINT, VT, Expand);
176 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
177 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
178 setOperationAction(ISD::CONCAT_VECTORS, VT, Legal);
179 setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Legal);
180 setOperationAction(ISD::SELECT, VT, Expand);
181 setOperationAction(ISD::SELECT_CC, VT, Expand);
182 setOperationAction(ISD::VSELECT, VT, Expand);
183 setOperationAction(ISD::SIGN_EXTEND_INREG, VT, Expand);
185 setOperationAction(ISD::SHL, VT, Custom);
186 setOperationAction(ISD::SRA, VT, Custom);
187 setOperationAction(ISD::SRL, VT, Custom);
192 setOperationAction(ISD::AND, VT, Promote);
194 setOperationAction(ISD::OR, VT, Promote);
196 setOperationAction(ISD::XOR, VT, Promote);
201 setOperationAction(ISD::SDIV, VT, Expand);
202 setOperationAction(ISD::UDIV, VT, Expand);
203 setOperationAction(ISD::FDIV, VT, Expand);
204 setOperationAction(ISD::SREM, VT, Expand);
205 setOperationAction(ISD::UREM, VT, Expand);
206 setOperationAction(ISD::FREM, VT, Expand);
211 setOperationAction(Opcode, VT, Legal);
226 setOperationAction(Opc, VT, Expand);
231 setOperationAction(ISD::BITCAST, VT, Legal);
232 setOperationAction(ISD::LOAD, VT, Legal);
233 setOperationAction(ISD::STORE, VT, Legal);
234 setOperationAction(ISD::UNDEF, VT, Legal);
249 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
250 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
251 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
252 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
253 setOperationAction(ISD::SHL, VT, Custom);
254 setOperationAction(ISD::SRA, VT, Custom);
255 setOperationAction(ISD::SRL, VT, Custom);
256 setOperationAction(ISD::SMIN, VT, Legal);
257 setOperationAction(ISD::SMAX, VT, Legal);
258 setOperationAction(ISD::UMIN, VT, Legal);
259 setOperationAction(ISD::UMAX, VT, Legal);
260 setOperationAction(ISD::ABS, VT, Legal);
261 setOperationAction(ISD::SETCC, VT, Custom);
262 setOperationAction(ISD::MLOAD, VT, Custom);
263 setOperationAction(ISD::MSTORE, VT, Legal);
264 setOperationAction(ISD::CTLZ, VT, Legal);
265 setOperationAction(ISD::CTTZ, VT, Custom);
266 setOperationAction(ISD::BITREVERSE, VT, Legal);
267 setOperationAction(ISD::BSWAP, VT, Legal);
268 setOperationAction(ISD::SADDSAT, VT, Legal);
269 setOperationAction(ISD::UADDSAT, VT, Legal);
270 setOperationAction(ISD::SSUBSAT, VT, Legal);
271 setOperationAction(ISD::USUBSAT, VT, Legal);
274 setOperationAction(ISD::UDIV, VT, Expand);
275 setOperationAction(ISD::SDIV, VT, Expand);
276 setOperationAction(ISD::UREM, VT, Expand);
277 setOperationAction(ISD::SREM, VT, Expand);
278 setOperationAction(ISD::CTPOP, VT, Expand);
281 setOperationAction(ISD::VECREDUCE_ADD, VT, Legal);
282 setOperationAction(ISD::VECREDUCE_SMAX, VT, Legal);
283 setOperationAction(ISD::VECREDUCE_UMAX, VT, Legal);
284 setOperationAction(ISD::VECREDUCE_SMIN, VT, Legal);
285 setOperationAction(ISD::VECREDUCE_UMIN, VT, Legal);
288 setOperationAction(ISD::SINT_TO_FP, VT, Expand);
289 setOperationAction(ISD::UINT_TO_FP, VT, Expand);
290 setOperationAction(ISD::FP_TO_SINT, VT, Expand);
291 setOperationAction(ISD::FP_TO_UINT, VT, Expand);
309 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
310 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
311 setOperationAction(ISD::INSERT_VECTOR_ELT, VT.getVectorElementType(), Custom);
312 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
313 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
314 setOperationAction(ISD::BUILD_VECTOR, VT.getVectorElementType(), Custom);
315 setOperationAction(ISD::SCALAR_TO_VECTOR, VT, Legal);
316 setOperationAction(ISD::SETCC, VT, Custom);
317 setOperationAction(ISD::MLOAD, VT, Custom);
318 setOperationAction(ISD::MSTORE, VT, Legal);
328 setOperationAction(ISD::FMINNUM, VT, Legal);
329 setOperationAction(ISD::FMAXNUM, VT, Legal);
330 setOperationAction(ISD::FROUND, VT, Legal);
333 setOperationAction(ISD::FDIV, VT, Expand);
334 setOperationAction(ISD::FREM, VT, Expand);
335 setOperationAction(ISD::FSQRT, VT, Expand);
336 setOperationAction(ISD::FSIN, VT, Expand);
337 setOperationAction(ISD::FCOS, VT, Expand);
338 setOperationAction(ISD::FPOW, VT, Expand);
339 setOperationAction(ISD::FLOG, VT, Expand);
340 setOperationAction(ISD::FLOG2, VT, Expand);
341 setOperationAction(ISD::FLOG10, VT, Expand);
342 setOperationAction(ISD::FEXP, VT, Expand);
343 setOperationAction(ISD::FEXP2, VT, Expand);
344 setOperationAction(ISD::FNEARBYINT, VT, Expand);
355 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
356 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
357 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
360 setOperationAction(ISD::AND, MVT::v2i64, Legal);
361 setOperationAction(ISD::OR, MVT::v2i64, Legal);
362 setOperationAction(ISD::XOR, MVT::v2i64, Legal);
389 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
390 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
391 setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Custom);
392 setOperationAction(ISD::CONCAT_VECTORS, VT, Custom);
393 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
394 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
395 setOperationAction(ISD::SETCC, VT, Custom);
396 setOperationAction(ISD::SCALAR_TO_VECTOR, VT, Expand);
397 setOperationAction(ISD::LOAD, VT, Custom);
398 setOperationAction(ISD::STORE, VT, Custom);
703 setOperationAction(ISD::BITCAST, MVT::i16, Custom);
704 setOperationAction(ISD::BITCAST, MVT::i32, Custom);
705 setOperationAction(ISD::BITCAST, MVT::f16, Custom);
707 setOperationAction(ISD::FMINNUM, MVT::f16, Legal);
708 setOperationAction(ISD::FMAXNUM, MVT::f16, Legal);
717 setOperationAction(ISD::MULHS, VT, Expand);
718 setOperationAction(ISD::SMUL_LOHI, VT, Expand);
719 setOperationAction(ISD::MULHU, VT, Expand);
720 setOperationAction(ISD::UMUL_LOHI, VT, Expand);
722 setOperationAction(ISD::BSWAP, VT, Expand);
725 setOperationAction(ISD::ConstantFP, MVT::f32, Custom);
726 setOperationAction(ISD::ConstantFP, MVT::f64, Custom);
728 setOperationAction(ISD::READ_REGISTER, MVT::i64, Custom);
729 setOperationAction(ISD::WRITE_REGISTER, MVT::i64, Custom);
763 setOperationAction(ISD::FADD, MVT::v2f64, Expand);
764 setOperationAction(ISD::FSUB, MVT::v2f64, Expand);
765 setOperationAction(ISD::FMUL, MVT::v2f64, Expand);
768 setOperationAction(ISD::FDIV, MVT::v2f64, Expand);
769 setOperationAction(ISD::FREM, MVT::v2f64, Expand);
773 setOperationAction(ISD::FCOPYSIGN, MVT::v2f64, Expand);
776 setOperationAction(ISD::SETCC, MVT::v2f64, Expand);
778 setOperationAction(ISD::FNEG, MVT::v2f64, Expand);
779 setOperationAction(ISD::FABS, MVT::v2f64, Expand);
780 setOperationAction(ISD::FSQRT, MVT::v2f64, Expand);
781 setOperationAction(ISD::FSIN, MVT::v2f64, Expand);
782 setOperationAction(ISD::FCOS, MVT::v2f64, Expand);
783 setOperationAction(ISD::FPOW, MVT::v2f64, Expand);
784 setOperationAction(ISD::FLOG, MVT::v2f64, Expand);
785 setOperationAction(ISD::FLOG2, MVT::v2f64, Expand);
786 setOperationAction(ISD::FLOG10, MVT::v2f64, Expand);
787 setOperationAction(ISD::FEXP, MVT::v2f64, Expand);
788 setOperationAction(ISD::FEXP2, MVT::v2f64, Expand);
790 setOperationAction(ISD::FCEIL, MVT::v2f64, Expand);
791 setOperationAction(ISD::FTRUNC, MVT::v2f64, Expand);
792 setOperationAction(ISD::FRINT, MVT::v2f64, Expand);
793 setOperationAction(ISD::FNEARBYINT, MVT::v2f64, Expand);
794 setOperationAction(ISD::FFLOOR, MVT::v2f64, Expand);
795 setOperationAction(ISD::FMA, MVT::v2f64, Expand);
801 setOperationAction(ISD::FSQRT, MVT::v4f32, Expand);
802 setOperationAction(ISD::FSIN, MVT::v4f32, Expand);
803 setOperationAction(ISD::FCOS, MVT::v4f32, Expand);
804 setOperationAction(ISD::FPOW, MVT::v4f32, Expand);
805 setOperationAction(ISD::FLOG, MVT::v4f32, Expand);
806 setOperationAction(ISD::FLOG2, MVT::v4f32, Expand);
807 setOperationAction(ISD::FLOG10, MVT::v4f32, Expand);
808 setOperationAction(ISD::FEXP, MVT::v4f32, Expand);
809 setOperationAction(ISD::FEXP2, MVT::v4f32, Expand);
810 setOperationAction(ISD::FCEIL, MVT::v4f32, Expand);
811 setOperationAction(ISD::FTRUNC, MVT::v4f32, Expand);
812 setOperationAction(ISD::FRINT, MVT::v4f32, Expand);
813 setOperationAction(ISD::FNEARBYINT, MVT::v4f32, Expand);
814 setOperationAction(ISD::FFLOOR, MVT::v4f32, Expand);
817 setOperationAction(ISD::FSQRT, MVT::v2f32, Expand);
818 setOperationAction(ISD::FSIN, MVT::v2f32, Expand);
819 setOperationAction(ISD::FCOS, MVT::v2f32, Expand);
820 setOperationAction(ISD::FPOW, MVT::v2f32, Expand);
821 setOperationAction(ISD::FLOG, MVT::v2f32, Expand);
822 setOperationAction(ISD::FLOG2, MVT::v2f32, Expand);
823 setOperationAction(ISD::FLOG10, MVT::v2f32, Expand);
824 setOperationAction(ISD::FEXP, MVT::v2f32, Expand);
825 setOperationAction(ISD::FEXP2, MVT::v2f32, Expand);
826 setOperationAction(ISD::FCEIL, MVT::v2f32, Expand);
827 setOperationAction(ISD::FTRUNC, MVT::v2f32, Expand);
828 setOperationAction(ISD::FRINT, MVT::v2f32, Expand);
829 setOperationAction(ISD::FNEARBYINT, MVT::v2f32, Expand);
830 setOperationAction(ISD::FFLOOR, MVT::v2f32, Expand);
833 setOperationAction(ISD::MUL, MVT::v1i64, Expand);
835 setOperationAction(ISD::MUL, MVT::v8i16, Custom);
836 setOperationAction(ISD::MUL, MVT::v4i32, Custom);
837 setOperationAction(ISD::MUL, MVT::v2i64, Custom);
839 setOperationAction(ISD::SDIV, MVT::v4i16, Custom);
840 setOperationAction(ISD::SDIV, MVT::v8i8, Custom);
841 setOperationAction(ISD::UDIV, MVT::v4i16, Custom);
842 setOperationAction(ISD::UDIV, MVT::v8i8, Custom);
847 setOperationAction(ISD::SINT_TO_FP, MVT::v4i16, Custom);
848 setOperationAction(ISD::SINT_TO_FP, MVT::v8i16, Custom);
849 setOperationAction(ISD::UINT_TO_FP, MVT::v4i16, Custom);
850 setOperationAction(ISD::UINT_TO_FP, MVT::v8i16, Custom);
851 setOperationAction(ISD::FP_TO_UINT, MVT::v4i16, Custom);
852 setOperationAction(ISD::FP_TO_UINT, MVT::v8i16, Custom);
853 setOperationAction(ISD::FP_TO_SINT, MVT::v4i16, Custom);
854 setOperationAction(ISD::FP_TO_SINT, MVT::v8i16, Custom);
856 setOperationAction(ISD::FP_ROUND, MVT::v2f32, Expand);
857 setOperationAction(ISD::FP_EXTEND, MVT::v2f64, Expand);
862 setOperationAction(ISD::CTPOP, MVT::v2i32, Custom);
863 setOperationAction(ISD::CTPOP, MVT::v4i32, Custom);
864 setOperationAction(ISD::CTPOP, MVT::v4i16, Custom);
865 setOperationAction(ISD::CTPOP, MVT::v8i16, Custom);
866 setOperationAction(ISD::CTPOP, MVT::v1i64, Custom);
867 setOperationAction(ISD::CTPOP, MVT::v2i64, Custom);
869 setOperationAction(ISD::CTLZ, MVT::v1i64, Expand);
870 setOperationAction(ISD::CTLZ, MVT::v2i64, Expand);
873 setOperationAction(ISD::CTTZ, MVT::v8i8, Custom);
874 setOperationAction(ISD::CTTZ, MVT::v4i16, Custom);
875 setOperationAction(ISD::CTTZ, MVT::v2i32, Custom);
876 setOperationAction(ISD::CTTZ, MVT::v1i64, Custom);
878 setOperationAction(ISD::CTTZ, MVT::v16i8, Custom);
879 setOperationAction(ISD::CTTZ, MVT::v8i16, Custom);
880 setOperationAction(ISD::CTTZ, MVT::v4i32, Custom);
881 setOperationAction(ISD::CTTZ, MVT::v2i64, Custom);
883 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v8i8, Custom);
884 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v4i16, Custom);
885 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v2i32, Custom);
886 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v1i64, Custom);
888 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v16i8, Custom);
889 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v8i16, Custom);
890 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v4i32, Custom);
891 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v2i64, Custom);
895 setOperationAction(ISD::FMA, MVT::v2f32, Expand);
896 setOperationAction(ISD::FMA, MVT::v4f32, Expand);
936 setOperationAction(ISD::FADD, MVT::f64, Expand);
937 setOperationAction(ISD::FSUB, MVT::f64, Expand);
938 setOperationAction(ISD::FMUL, MVT::f64, Expand);
939 setOperationAction(ISD::FMA, MVT::f64, Expand);
940 setOperationAction(ISD::FDIV, MVT::f64, Expand);
941 setOperationAction(ISD::FREM, MVT::f64, Expand);
942 setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
943 setOperationAction(ISD::FGETSIGN, MVT::f64, Expand);
944 setOperationAction(ISD::FNEG, MVT::f64, Expand);
945 setOperationAction(ISD::FABS, MVT::f64, Expand);
946 setOperationAction(ISD::FSQRT, MVT::f64, Expand);
947 setOperationAction(ISD::FSIN, MVT::f64, Expand);
948 setOperationAction(ISD::FCOS, MVT::f64, Expand);
949 setOperationAction(ISD::FPOW, MVT::f64, Expand);
950 setOperationAction(ISD::FLOG, MVT::f64, Expand);
951 setOperationAction(ISD::FLOG2, MVT::f64, Expand);
952 setOperationAction(ISD::FLOG10, MVT::f64, Expand);
953 setOperationAction(ISD::FEXP, MVT::f64, Expand);
954 setOperationAction(ISD::FEXP2, MVT::f64, Expand);
955 setOperationAction(ISD::FCEIL, MVT::f64, Expand);
956 setOperationAction(ISD::FTRUNC, MVT::f64, Expand);
957 setOperationAction(ISD::FRINT, MVT::f64, Expand);
958 setOperationAction(ISD::FNEARBYINT, MVT::f64, Expand);
959 setOperationAction(ISD::FFLOOR, MVT::f64, Expand);
960 setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
961 setOperationAction(ISD::UINT_TO_FP, MVT::i32, Custom);
962 setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
963 setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
964 setOperationAction(ISD::FP_TO_SINT, MVT::f64, Custom);
965 setOperationAction(ISD::FP_TO_UINT, MVT::f64, Custom);
966 setOperationAction(ISD::FP_ROUND, MVT::f32, Custom);
970 setOperationAction(ISD::FP_EXTEND, MVT::f64, Custom);
972 setOperationAction(ISD::FP_ROUND, MVT::f16, Custom);
976 setOperationAction(ISD::FP_EXTEND, MVT::f32, Custom);
979 setOperationAction(ISD::FP_ROUND, MVT::f32, Custom);
1017 setOperationAction(ISD::SADDO, MVT::i32, Custom);
1018 setOperationAction(ISD::UADDO, MVT::i32, Custom);
1019 setOperationAction(ISD::SSUBO, MVT::i32, Custom);
1020 setOperationAction(ISD::USUBO, MVT::i32, Custom);
1022 setOperationAction(ISD::ADDCARRY, MVT::i32, Custom);
1023 setOperationAction(ISD::SUBCARRY, MVT::i32, Custom);
1025 setOperationAction(ISD::SADDSAT, MVT::i8, Custom);
1026 setOperationAction(ISD::SSUBSAT, MVT::i8, Custom);
1027 setOperationAction(ISD::SADDSAT, MVT::i16, Custom);
1028 setOperationAction(ISD::SSUBSAT, MVT::i16, Custom);
1031 setOperationAction(ISD::SADDSAT, MVT::i32, Legal);
1032 setOperationAction(ISD::SSUBSAT, MVT::i32, Legal);
1036 setOperationAction(ISD::MUL, MVT::i64, Expand);
1037 setOperationAction(ISD::MULHU, MVT::i32, Expand);
1039 setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
1040 setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
1044 setOperationAction(ISD::MULHS, MVT::i32, Expand);
1046 setOperationAction(ISD::SHL_PARTS, MVT::i32, Custom);
1047 setOperationAction(ISD::SRA_PARTS, MVT::i32, Custom);
1048 setOperationAction(ISD::SRL_PARTS, MVT::i32, Custom);
1049 setOperationAction(ISD::SRL, MVT::i64, Custom);
1050 setOperationAction(ISD::SRA, MVT::i64, Custom);
1051 setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
1052 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::i64, Custom);
1057 setOperationAction(ISD::SHL, MVT::i64, Custom);
1061 setOperationAction(ISD::SHL_PARTS, MVT::i32, Expand);
1062 setOperationAction(ISD::SRA_PARTS, MVT::i32, Expand);
1063 setOperationAction(ISD::SRL_PARTS, MVT::i32, Expand);
1067 setOperationAction(ISD::BITREVERSE, MVT::i32, Legal);
1070 setOperationAction(ISD::ROTL, MVT::i32, Expand);
1072 setOperationAction(ISD::ROTL, VT, Expand);
1073 setOperationAction(ISD::ROTR, VT, Expand);
1075 setOperationAction(ISD::CTTZ, MVT::i32, Custom);
1076 setOperationAction(ISD::CTPOP, MVT::i32, Expand);
1078 setOperationAction(ISD::CTLZ, MVT::i32, Expand);
1079 setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i32, LibCall);
1087 setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Custom);
1091 setOperationAction(ISD::BSWAP, MVT::i32, Expand);
1097 setOperationAction(ISD::SDIV, MVT::i32, LibCall);
1098 setOperationAction(ISD::UDIV, MVT::i32, LibCall);
1102 setOperationAction(ISD::SDIV, MVT::i32, Custom);
1103 setOperationAction(ISD::UDIV, MVT::i32, Custom);
1105 setOperationAction(ISD::SDIV, MVT::i64, Custom);
1106 setOperationAction(ISD::UDIV, MVT::i64, Custom);
1109 setOperationAction(ISD::SREM, MVT::i32, Expand);
1110 setOperationAction(ISD::UREM, MVT::i32, Expand);
1116 setOperationAction(ISD::SREM, MVT::i64, Custom);
1117 setOperationAction(ISD::UREM, MVT::i64, Custom);
1164 setOperationAction(ISD::SDIVREM, MVT::i32, Custom);
1165 setOperationAction(ISD::UDIVREM, MVT::i32, Custom);
1166 setOperationAction(ISD::SDIVREM, MVT::i64, Custom);
1167 setOperationAction(ISD::UDIVREM, MVT::i64, Custom);
1169 setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
1170 setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
1175 setOperationAction(ISD::FPOWI, VT, Custom);
1177 setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
1178 setOperationAction(ISD::ConstantPool, MVT::i32, Custom);
1179 setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom);
1180 setOperationAction(ISD::BlockAddress, MVT::i32, Custom);
1182 setOperationAction(ISD::TRAP, MVT::Other, Legal);
1183 setOperationAction(ISD::DEBUGTRAP, MVT::Other, Legal);
1186 setOperationAction(ISD::VASTART, MVT::Other, Custom);
1187 setOperationAction(ISD::VAARG, MVT::Other, Expand);
1188 setOperationAction(ISD::VACOPY, MVT::Other, Expand);
1189 setOperationAction(ISD::VAEND, MVT::Other, Expand);
1190 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
1191 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
1194 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Custom);
1196 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Expand);
1205 setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Custom);
1207 setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i64, Custom);
1223 setOperationAction(ISD::ATOMIC_FENCE, MVT::Other,
1227 setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i32, Expand);
1228 setOperationAction(ISD::ATOMIC_SWAP, MVT::i32, Expand);
1229 setOperationAction(ISD::ATOMIC_LOAD_ADD, MVT::i32, Expand);
1230 setOperationAction(ISD::ATOMIC_LOAD_SUB, MVT::i32, Expand);
1231 setOperationAction(ISD::ATOMIC_LOAD_AND, MVT::i32, Expand);
1232 setOperationAction(ISD::ATOMIC_LOAD_OR, MVT::i32, Expand);
1233 setOperationAction(ISD::ATOMIC_LOAD_XOR, MVT::i32, Expand);
1234 setOperationAction(ISD::ATOMIC_LOAD_NAND, MVT::i32, Expand);
1235 setOperationAction(ISD::ATOMIC_LOAD_MIN, MVT::i32, Expand);
1236 setOperationAction(ISD::ATOMIC_LOAD_MAX, MVT::i32, Expand);
1237 setOperationAction(ISD::ATOMIC_LOAD_UMIN, MVT::i32, Expand);
1238 setOperationAction(ISD::ATOMIC_LOAD_UMAX, MVT::i32, Expand);
1242 setOperationAction(ISD::ATOMIC_LOAD, MVT::i32, Custom);
1243 setOperationAction(ISD::ATOMIC_STORE, MVT::i32, Custom);
1247 setOperationAction(ISD::PREFETCH, MVT::Other, Custom);
1251 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
1252 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8, Expand);
1254 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
1260 setOperationAction(ISD::BITCAST, MVT::i64, Custom);
1261 setOperationAction(ISD::FLT_ROUNDS_, MVT::i32, Custom);
1265 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
1266 setOperationAction(ISD::EH_SJLJ_SETJMP, MVT::i32, Custom);
1267 setOperationAction(ISD::EH_SJLJ_LONGJMP, MVT::Other, Custom);
1268 setOperationAction(ISD::EH_SJLJ_SETUP_DISPATCH, MVT::Other, Custom);
1272 setOperationAction(ISD::SETCC, MVT::i32, Expand);
1273 setOperationAction(ISD::SETCC, MVT::f32, Expand);
1274 setOperationAction(ISD::SETCC, MVT::f64, Expand);
1275 setOperationAction(ISD::SELECT, MVT::i32, Custom);
1276 setOperationAction(ISD::SELECT, MVT::f32, Custom);
1277 setOperationAction(ISD::SELECT, MVT::f64, Custom);
1278 setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
1279 setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
1280 setOperationAction(ISD::SELECT_CC, MVT::f64, Custom);
1282 setOperationAction(ISD::SETCC, MVT::f16, Expand);
1283 setOperationAction(ISD::SELECT, MVT::f16, Custom);
1284 setOperationAction(ISD::SELECT_CC, MVT::f16, Custom);
1287 setOperationAction(ISD::SETCCCARRY, MVT::i32, Custom);
1289 setOperationAction(ISD::BRCOND, MVT::Other, Custom);
1290 setOperationAction(ISD::BR_CC, MVT::i32, Custom);
1292 setOperationAction(ISD::BR_CC, MVT::f16, Custom);
1293 setOperationAction(ISD::BR_CC, MVT::f32, Custom);
1294 setOperationAction(ISD::BR_CC, MVT::f64, Custom);
1295 setOperationAction(ISD::BR_JT, MVT::Other, Custom);
1298 setOperationAction(ISD::FSIN, MVT::f64, Expand);
1299 setOperationAction(ISD::FSIN, MVT::f32, Expand);
1300 setOperationAction(ISD::FCOS, MVT::f32, Expand);
1301 setOperationAction(ISD::FCOS, MVT::f64, Expand);
1302 setOperationAction(ISD::FSINCOS, MVT::f64, Expand);
1303 setOperationAction(ISD::FSINCOS, MVT::f32, Expand);
1304 setOperationAction(ISD::FREM, MVT::f64, Expand);
1305 setOperationAction(ISD::FREM, MVT::f32, Expand);
1308 setOperationAction(ISD::FCOPYSIGN, MVT::f64, Custom);
1309 setOperationAction(ISD::FCOPYSIGN, MVT::f32, Custom);
1311 setOperationAction(ISD::FPOW, MVT::f64, Expand);
1312 setOperationAction(ISD::FPOW, MVT::f32, Expand);
1315 setOperationAction(ISD::FMA, MVT::f64, Expand);
1316 setOperationAction(ISD::FMA, MVT::f32, Expand);
1323 setOperationAction(ISD::FP16_TO_FP, MVT::f64, Expand);
1324 setOperationAction(ISD::FP_TO_FP16, MVT::f64, Expand);
1329 setOperationAction(ISD::FP16_TO_FP, MVT::f32, Expand);
1330 setOperationAction(ISD::FP_TO_FP16, MVT::f32, Expand);
1337 setOperationAction(ISD::FSINCOS, MVT::f64, Custom);
1338 setOperationAction(ISD::FSINCOS, MVT::f32, Custom);
1343 setOperationAction(ISD::FFLOOR, MVT::f32, Legal);
1344 setOperationAction(ISD::FCEIL, MVT::f32, Legal);
1345 setOperationAction(ISD::FROUND, MVT::f32, Legal);
1346 setOperationAction(ISD::FTRUNC, MVT::f32, Legal);
1347 setOperationAction(ISD::FNEARBYINT, MVT::f32, Legal);
1348 setOperationAction(ISD::FRINT, MVT::f32, Legal);
1349 setOperationAction(ISD::FMINNUM, MVT::f32, Legal);
1350 setOperationAction(ISD::FMAXNUM, MVT::f32, Legal);
1352 setOperationAction(ISD::FMINNUM, MVT::v2f32, Legal);
1353 setOperationAction(ISD::FMAXNUM, MVT::v2f32, Legal);
1354 setOperationAction(ISD::FMINNUM, MVT::v4f32, Legal);
1355 setOperationAction(ISD::FMAXNUM, MVT::v4f32, Legal);
1359 setOperationAction(ISD::FFLOOR, MVT::f64, Legal);
1360 setOperationAction(ISD::FCEIL, MVT::f64, Legal);
1361 setOperationAction(ISD::FROUND, MVT::f64, Legal);
1362 setOperationAction(ISD::FTRUNC, MVT::f64, Legal);
1363 setOperationAction(ISD::FNEARBYINT, MVT::f64, Legal);
1364 setOperationAction(ISD::FRINT, MVT::f64, Legal);
1365 setOperationAction(ISD::FMINNUM, MVT::f64, Legal);
1366 setOperationAction(ISD::FMAXNUM, MVT::f64, Legal);
1372 setOperationAction(ISD::FREM, MVT::f16, Promote);
1373 setOperationAction(ISD::FCOPYSIGN, MVT::f16, Expand);
1374 setOperationAction(ISD::FSIN, MVT::f16, Promote);
1375 setOperationAction(ISD::FCOS, MVT::f16, Promote);
1376 setOperationAction(ISD::FSINCOS, MVT::f16, Promote);
1377 setOperationAction(ISD::FPOWI, MVT::f16, Promote);
1378 setOperationAction(ISD::FPOW, MVT::f16, Promote);
1379 setOperationAction(ISD::FEXP, MVT::f16, Promote);
1380 setOperationAction(ISD::FEXP2, MVT::f16, Promote);
1381 setOperationAction(ISD::FLOG, MVT::f16, Promote);
1382 setOperationAction(ISD::FLOG10, MVT::f16, Promote);
1383 setOperationAction(ISD::FLOG2, MVT::f16, Promote);
1385 setOperationAction(ISD::FROUND, MVT::f16, Legal);
1391 setOperationAction(ISD::FMINIMUM, MVT::f16, Legal);
1392 setOperationAction(ISD::FMAXIMUM, MVT::f16, Legal);
1393 setOperationAction(ISD::FMINIMUM, MVT::f32, Legal);
1394 setOperationAction(ISD::FMAXIMUM, MVT::f32, Legal);
1395 setOperationAction(ISD::FMINIMUM, MVT::v2f32, Legal);
1396 setOperationAction(ISD::FMAXIMUM, MVT::v2f32, Legal);
1397 setOperationAction(ISD::FMINIMUM, MVT::v4f32, Legal);
1398 setOperationAction(ISD::FMAXIMUM, MVT::v4f32, Legal);
1401 setOperationAction(ISD::FMINNUM, MVT::v4f16, Legal);
1402 setOperationAction(ISD::FMAXNUM, MVT::v4f16, Legal);
1403 setOperationAction(ISD::FMINNUM, MVT::v8f16, Legal);
1404 setOperationAction(ISD::FMAXNUM, MVT::v8f16, Legal);
1406 setOperationAction(ISD::FMINIMUM, MVT::v4f16, Legal);
1407 setOperationAction(ISD::FMAXIMUM, MVT::v4f16, Legal);
1408 setOperationAction(ISD::FMINIMUM, MVT::v8f16, Legal);
1409 setOperationAction(ISD::FMAXIMUM, MVT::v8f16, Legal);
lib/Target/AVR/AVRISelLowering.cpp 50 setOperationAction(ISD::GlobalAddress, MVT::i16, Custom);
51 setOperationAction(ISD::BlockAddress, MVT::i16, Custom);
53 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
54 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
55 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i8, Expand);
56 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i16, Expand);
68 setOperationAction(ISD::ADDC, VT, Legal);
69 setOperationAction(ISD::SUBC, VT, Legal);
70 setOperationAction(ISD::ADDE, VT, Legal);
71 setOperationAction(ISD::SUBE, VT, Legal);
76 setOperationAction(ISD::ADD, MVT::i32, Custom);
77 setOperationAction(ISD::ADD, MVT::i64, Custom);
81 setOperationAction(ISD::SRA, MVT::i8, Custom);
82 setOperationAction(ISD::SHL, MVT::i8, Custom);
83 setOperationAction(ISD::SRL, MVT::i8, Custom);
84 setOperationAction(ISD::SRA, MVT::i16, Custom);
85 setOperationAction(ISD::SHL, MVT::i16, Custom);
86 setOperationAction(ISD::SRL, MVT::i16, Custom);
87 setOperationAction(ISD::SHL_PARTS, MVT::i16, Expand);
88 setOperationAction(ISD::SRA_PARTS, MVT::i16, Expand);
89 setOperationAction(ISD::SRL_PARTS, MVT::i16, Expand);
91 setOperationAction(ISD::ROTL, MVT::i8, Custom);
92 setOperationAction(ISD::ROTL, MVT::i16, Expand);
93 setOperationAction(ISD::ROTR, MVT::i8, Custom);
94 setOperationAction(ISD::ROTR, MVT::i16, Expand);
96 setOperationAction(ISD::BR_CC, MVT::i8, Custom);
97 setOperationAction(ISD::BR_CC, MVT::i16, Custom);
98 setOperationAction(ISD::BR_CC, MVT::i32, Custom);
99 setOperationAction(ISD::BR_CC, MVT::i64, Custom);
100 setOperationAction(ISD::BRCOND, MVT::Other, Expand);
102 setOperationAction(ISD::SELECT_CC, MVT::i8, Custom);
103 setOperationAction(ISD::SELECT_CC, MVT::i16, Custom);
104 setOperationAction(ISD::SELECT_CC, MVT::i32, Expand);
105 setOperationAction(ISD::SELECT_CC, MVT::i64, Expand);
106 setOperationAction(ISD::SETCC, MVT::i8, Custom);
107 setOperationAction(ISD::SETCC, MVT::i16, Custom);
108 setOperationAction(ISD::SETCC, MVT::i32, Custom);
109 setOperationAction(ISD::SETCC, MVT::i64, Custom);
110 setOperationAction(ISD::SELECT, MVT::i8, Expand);
111 setOperationAction(ISD::SELECT, MVT::i16, Expand);
113 setOperationAction(ISD::BSWAP, MVT::i16, Expand);
125 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
127 setOperationAction(ISD::VASTART, MVT::Other, Custom);
128 setOperationAction(ISD::VAEND, MVT::Other, Expand);
129 setOperationAction(ISD::VAARG, MVT::Other, Expand);
130 setOperationAction(ISD::VACOPY, MVT::Other, Expand);
134 setOperationAction(ISD::ATOMIC_SWAP, VT, Expand);
135 setOperationAction(ISD::ATOMIC_CMP_SWAP, VT, Expand);
136 setOperationAction(ISD::ATOMIC_LOAD_NAND, VT, Expand);
137 setOperationAction(ISD::ATOMIC_LOAD_MAX, VT, Expand);
138 setOperationAction(ISD::ATOMIC_LOAD_MIN, VT, Expand);
139 setOperationAction(ISD::ATOMIC_LOAD_UMAX, VT, Expand);
140 setOperationAction(ISD::ATOMIC_LOAD_UMIN, VT, Expand);
144 setOperationAction(ISD::UDIV, MVT::i8, Expand);
145 setOperationAction(ISD::UDIV, MVT::i16, Expand);
146 setOperationAction(ISD::UREM, MVT::i8, Expand);
147 setOperationAction(ISD::UREM, MVT::i16, Expand);
148 setOperationAction(ISD::SDIV, MVT::i8, Expand);
149 setOperationAction(ISD::SDIV, MVT::i16, Expand);
150 setOperationAction(ISD::SREM, MVT::i8, Expand);
151 setOperationAction(ISD::SREM, MVT::i16, Expand);
155 setOperationAction(ISD::UDIVREM, VT, Custom);
156 setOperationAction(ISD::SDIVREM, VT, Custom);
160 setOperationAction(ISD::MUL, MVT::i8, Expand);
161 setOperationAction(ISD::MUL, MVT::i16, Expand);
164 setOperationAction(ISD::SMUL_LOHI, MVT::i16, Expand);
165 setOperationAction(ISD::UMUL_LOHI, MVT::i16, Expand);
170 setOperationAction(ISD::SMUL_LOHI, MVT::i8, Expand);
171 setOperationAction(ISD::UMUL_LOHI, MVT::i8, Expand);
175 setOperationAction(ISD::MULHS, VT, Expand);
176 setOperationAction(ISD::MULHU, VT, Expand);
180 setOperationAction(ISD::CTPOP, VT, Expand);
181 setOperationAction(ISD::CTLZ, VT, Expand);
182 setOperationAction(ISD::CTTZ, VT, Expand);
186 setOperationAction(ISD::SIGN_EXTEND_INREG, VT, Expand);
lib/Target/BPF/BPFISelLowering.cpp 71 setOperationAction(ISD::BR_CC, MVT::i64, Custom);
72 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
73 setOperationAction(ISD::BRIND, MVT::Other, Expand);
74 setOperationAction(ISD::BRCOND, MVT::Other, Expand);
76 setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);
78 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64, Custom);
79 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
80 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
86 setOperationAction(ISD::SDIVREM, VT, Expand);
87 setOperationAction(ISD::UDIVREM, VT, Expand);
88 setOperationAction(ISD::SREM, VT, Expand);
89 setOperationAction(ISD::UREM, VT, Expand);
90 setOperationAction(ISD::MULHU, VT, Expand);
91 setOperationAction(ISD::MULHS, VT, Expand);
92 setOperationAction(ISD::UMUL_LOHI, VT, Expand);
93 setOperationAction(ISD::SMUL_LOHI, VT, Expand);
94 setOperationAction(ISD::ROTR, VT, Expand);
95 setOperationAction(ISD::ROTL, VT, Expand);
96 setOperationAction(ISD::SHL_PARTS, VT, Expand);
97 setOperationAction(ISD::SRL_PARTS, VT, Expand);
98 setOperationAction(ISD::SRA_PARTS, VT, Expand);
99 setOperationAction(ISD::CTPOP, VT, Expand);
101 setOperationAction(ISD::SETCC, VT, Expand);
102 setOperationAction(ISD::SELECT, VT, Expand);
103 setOperationAction(ISD::SELECT_CC, VT, Custom);
107 setOperationAction(ISD::BSWAP, MVT::i32, Promote);
108 setOperationAction(ISD::BR_CC, MVT::i32,
112 setOperationAction(ISD::CTTZ, MVT::i64, Custom);
113 setOperationAction(ISD::CTLZ, MVT::i64, Custom);
114 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i64, Custom);
115 setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i64, Custom);
117 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
118 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8, Expand);
119 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
120 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i32, Expand);
lib/Target/Hexagon/HexagonISelLowering.cpp 1292 setOperationAction(ISD::ConstantFP, MVT::f32, Legal);
1293 setOperationAction(ISD::ConstantFP, MVT::f64, Legal);
1294 setOperationAction(ISD::TRAP, MVT::Other, Legal);
1295 setOperationAction(ISD::ConstantPool, MVT::i32, Custom);
1296 setOperationAction(ISD::JumpTable, MVT::i32, Custom);
1297 setOperationAction(ISD::BUILD_PAIR, MVT::i64, Expand);
1298 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
1299 setOperationAction(ISD::INLINEASM, MVT::Other, Custom);
1300 setOperationAction(ISD::INLINEASM_BR, MVT::Other, Custom);
1301 setOperationAction(ISD::PREFETCH, MVT::Other, Custom);
1302 setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Custom);
1303 setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
1304 setOperationAction(ISD::EH_RETURN, MVT::Other, Custom);
1305 setOperationAction(ISD::GLOBAL_OFFSET_TABLE, MVT::i32, Custom);
1306 setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom);
1307 setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Custom);
1310 setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
1311 setOperationAction(ISD::GlobalAddress, MVT::i8, Custom);
1312 setOperationAction(ISD::BlockAddress, MVT::i32, Custom);
1315 setOperationAction(ISD::SETCC, MVT::i8, Custom);
1316 setOperationAction(ISD::SETCC, MVT::i16, Custom);
1317 setOperationAction(ISD::SETCC, MVT::v4i8, Custom);
1318 setOperationAction(ISD::SETCC, MVT::v2i16, Custom);
1321 setOperationAction(ISD::VASTART, MVT::Other, Custom);
1322 setOperationAction(ISD::VAEND, MVT::Other, Expand);
1323 setOperationAction(ISD::VAARG, MVT::Other, Expand);
1324 setOperationAction(ISD::VACOPY, MVT::Other, Expand);
1326 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
1327 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
1328 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Custom);
1334 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
1336 setOperationAction(ISD::ABS, MVT::i32, Legal);
1337 setOperationAction(ISD::ABS, MVT::i64, Legal);
1342 setOperationAction(ISD::UADDO, VT, Custom);
1343 setOperationAction(ISD::USUBO, VT, Custom);
1344 setOperationAction(ISD::SADDO, VT, Expand);
1345 setOperationAction(ISD::SSUBO, VT, Expand);
1346 setOperationAction(ISD::ADDCARRY, VT, Expand);
1347 setOperationAction(ISD::SUBCARRY, VT, Expand);
1349 setOperationAction(ISD::ADDCARRY, MVT::i64, Custom);
1350 setOperationAction(ISD::SUBCARRY, MVT::i64, Custom);
1352 setOperationAction(ISD::CTLZ, MVT::i8, Promote);
1353 setOperationAction(ISD::CTLZ, MVT::i16, Promote);
1354 setOperationAction(ISD::CTTZ, MVT::i8, Promote);
1355 setOperationAction(ISD::CTTZ, MVT::i16, Promote);
1358 setOperationAction(ISD::CTPOP, MVT::i8, Promote);
1359 setOperationAction(ISD::CTPOP, MVT::i16, Promote);
1360 setOperationAction(ISD::CTPOP, MVT::i32, Promote);
1361 setOperationAction(ISD::CTPOP, MVT::i64, Legal);
1363 setOperationAction(ISD::BITREVERSE, MVT::i32, Legal);
1364 setOperationAction(ISD::BITREVERSE, MVT::i64, Legal);
1365 setOperationAction(ISD::BSWAP, MVT::i32, Legal);
1366 setOperationAction(ISD::BSWAP, MVT::i64, Legal);
1368 setOperationAction(ISD::FSHL, MVT::i32, Legal);
1369 setOperationAction(ISD::FSHL, MVT::i64, Legal);
1370 setOperationAction(ISD::FSHR, MVT::i32, Legal);
1371 setOperationAction(ISD::FSHR, MVT::i64, Legal);
1379 setOperationAction(IntExpOp, VT, Expand);
1386 setOperationAction(FPExpOp, VT, Expand);
1403 setOperationAction(ISD::BR_CC, VT, Expand);
1404 setOperationAction(ISD::SELECT_CC, VT, Expand);
1407 setOperationAction(ISD::BR_CC, VT, Expand);
1408 setOperationAction(ISD::SELECT_CC, VT, Expand);
1410 setOperationAction(ISD::BR_CC, MVT::Other, Expand);
1444 setOperationAction(VectExpOp, VT, Expand);
1459 setOperationAction(ISD::SELECT, VT, Promote);
1462 setOperationAction(ISD::SRA, VT, Custom);
1463 setOperationAction(ISD::SHL, VT, Custom);
1464 setOperationAction(ISD::SRL, VT, Custom);
1479 setOperationAction(ISD::BUILD_VECTOR, NativeVT, Custom);
1480 setOperationAction(ISD::EXTRACT_VECTOR_ELT, NativeVT, Custom);
1481 setOperationAction(ISD::INSERT_VECTOR_ELT, NativeVT, Custom);
1482 setOperationAction(ISD::EXTRACT_SUBVECTOR, NativeVT, Custom);
1483 setOperationAction(ISD::INSERT_SUBVECTOR, NativeVT, Custom);
1484 setOperationAction(ISD::CONCAT_VECTORS, NativeVT, Custom);
1486 setOperationAction(ISD::ADD, NativeVT, Legal);
1487 setOperationAction(ISD::SUB, NativeVT, Legal);
1488 setOperationAction(ISD::MUL, NativeVT, Legal);
1489 setOperationAction(ISD::AND, NativeVT, Legal);
1490 setOperationAction(ISD::OR, NativeVT, Legal);
1491 setOperationAction(ISD::XOR, NativeVT, Legal);
1500 setOperationAction(ISD::LOAD, VT, Custom);
1501 setOperationAction(ISD::STORE, VT, Custom);
1516 setOperationAction(ISD::BITCAST, MVT::i8, Custom);
1517 setOperationAction(ISD::SETCC, MVT::v2i16, Custom);
1518 setOperationAction(ISD::VSELECT, MVT::v4i8, Custom);
1519 setOperationAction(ISD::VSELECT, MVT::v2i16, Custom);
1520 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v4i8, Custom);
1521 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v4i16, Custom);
1522 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v8i8, Custom);
1525 setOperationAction(ISD::FMA, MVT::f64, Expand);
1526 setOperationAction(ISD::FADD, MVT::f64, Expand);
1527 setOperationAction(ISD::FSUB, MVT::f64, Expand);
1528 setOperationAction(ISD::FMUL, MVT::f64, Expand);
1530 setOperationAction(ISD::FMINNUM, MVT::f32, Legal);
1531 setOperationAction(ISD::FMAXNUM, MVT::f32, Legal);
1533 setOperationAction(ISD::FP_TO_UINT, MVT::i1, Promote);
1534 setOperationAction(ISD::FP_TO_UINT, MVT::i8, Promote);
1535 setOperationAction(ISD::FP_TO_UINT, MVT::i16, Promote);
1536 setOperationAction(ISD::FP_TO_SINT, MVT::i1, Promote);
1537 setOperationAction(ISD::FP_TO_SINT, MVT::i8, Promote);
1538 setOperationAction(ISD::FP_TO_SINT, MVT::i16, Promote);
1539 setOperationAction(ISD::UINT_TO_FP, MVT::i1, Promote);
1540 setOperationAction(ISD::UINT_TO_FP, MVT::i8, Promote);
1541 setOperationAction(ISD::UINT_TO_FP, MVT::i16, Promote);
1542 setOperationAction(ISD::SINT_TO_FP, MVT::i1, Promote);
1543 setOperationAction(ISD::SINT_TO_FP, MVT::i8, Promote);
1544 setOperationAction(ISD::SINT_TO_FP, MVT::i16, Promote);
1557 setOperationAction(ISD::ROTL, MVT::i32, Legal);
1558 setOperationAction(ISD::ROTL, MVT::i64, Legal);
1559 setOperationAction(ISD::ROTR, MVT::i32, Legal);
1560 setOperationAction(ISD::ROTR, MVT::i64, Legal);
1563 setOperationAction(ISD::FADD, MVT::f64, Legal);
1564 setOperationAction(ISD::FSUB, MVT::f64, Legal);
lib/Target/Hexagon/HexagonISelLoweringHVX.cpp 65 setOperationAction(Opc, FromTy, Promote);
69 setOperationAction(ISD::VECTOR_SHUFFLE, ByteV, Legal);
70 setOperationAction(ISD::VECTOR_SHUFFLE, ByteW, Legal);
76 setOperationAction(ISD::AND, T, Legal);
77 setOperationAction(ISD::OR, T, Legal);
78 setOperationAction(ISD::XOR, T, Legal);
79 setOperationAction(ISD::ADD, T, Legal);
80 setOperationAction(ISD::SUB, T, Legal);
81 setOperationAction(ISD::CTPOP, T, Legal);
82 setOperationAction(ISD::CTLZ, T, Legal);
84 setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, T, Legal);
85 setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, T, Legal);
86 setOperationAction(ISD::BSWAP, T, Legal);
89 setOperationAction(ISD::CTTZ, T, Custom);
90 setOperationAction(ISD::LOAD, T, Custom);
91 setOperationAction(ISD::MUL, T, Custom);
92 setOperationAction(ISD::MULHS, T, Custom);
93 setOperationAction(ISD::MULHU, T, Custom);
94 setOperationAction(ISD::BUILD_VECTOR, T, Custom);
96 setOperationAction(ISD::CONCAT_VECTORS, T, Custom);
97 setOperationAction(ISD::INSERT_SUBVECTOR, T, Custom);
98 setOperationAction(ISD::INSERT_VECTOR_ELT, T, Custom);
99 setOperationAction(ISD::EXTRACT_SUBVECTOR, T, Custom);
100 setOperationAction(ISD::EXTRACT_VECTOR_ELT, T, Custom);
101 setOperationAction(ISD::ANY_EXTEND, T, Custom);
102 setOperationAction(ISD::SIGN_EXTEND, T, Custom);
103 setOperationAction(ISD::ZERO_EXTEND, T, Custom);
105 setOperationAction(ISD::ANY_EXTEND_VECTOR_INREG, T, Custom);
107 setOperationAction(ISD::SRA, T, Custom);
108 setOperationAction(ISD::SHL, T, Custom);
109 setOperationAction(ISD::SRL, T, Custom);
128 setOperationAction(ISD::BUILD_VECTOR, T, Custom);
130 setOperationAction(ISD::CONCAT_VECTORS, T, Custom);
134 setOperationAction(ISD::ANY_EXTEND, T, Custom);
135 setOperationAction(ISD::SIGN_EXTEND, T, Custom);
136 setOperationAction(ISD::ZERO_EXTEND, T, Custom);
137 setOperationAction(ISD::SIGN_EXTEND_INREG, T, Custom);
138 setOperationAction(ISD::ANY_EXTEND_VECTOR_INREG, T, Custom);
139 setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, T, Legal);
140 setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, T, Legal);
142 setOperationAction(ISD::LOAD, T, Custom);
143 setOperationAction(ISD::STORE, T, Custom);
144 setOperationAction(ISD::CTLZ, T, Custom);
145 setOperationAction(ISD::CTTZ, T, Custom);
146 setOperationAction(ISD::CTPOP, T, Custom);
148 setOperationAction(ISD::ADD, T, Legal);
149 setOperationAction(ISD::SUB, T, Legal);
150 setOperationAction(ISD::MUL, T, Custom);
151 setOperationAction(ISD::MULHS, T, Custom);
152 setOperationAction(ISD::MULHU, T, Custom);
153 setOperationAction(ISD::AND, T, Custom);
154 setOperationAction(ISD::OR, T, Custom);
155 setOperationAction(ISD::XOR, T, Custom);
156 setOperationAction(ISD::SETCC, T, Custom);
157 setOperationAction(ISD::VSELECT, T, Custom);
159 setOperationAction(ISD::SRA, T, Custom);
160 setOperationAction(ISD::SHL, T, Custom);
161 setOperationAction(ISD::SRL, T, Custom);
178 setOperationAction(ISD::SETCC, BoolW, Custom);
179 setOperationAction(ISD::AND, BoolW, Custom);
180 setOperationAction(ISD::OR, BoolW, Custom);
181 setOperationAction(ISD::XOR, BoolW, Custom);
186 setOperationAction(ISD::BUILD_VECTOR, BoolV, Custom);
187 setOperationAction(ISD::CONCAT_VECTORS, BoolV, Custom);
188 setOperationAction(ISD::INSERT_SUBVECTOR, BoolV, Custom);
189 setOperationAction(ISD::INSERT_VECTOR_ELT, BoolV, Custom);
190 setOperationAction(ISD::EXTRACT_SUBVECTOR, BoolV, Custom);
191 setOperationAction(ISD::EXTRACT_VECTOR_ELT, BoolV, Custom);
192 setOperationAction(ISD::AND, BoolV, Legal);
193 setOperationAction(ISD::OR, BoolV, Legal);
194 setOperationAction(ISD::XOR, BoolV, Legal);
lib/Target/Lanai/LanaiISelLowering.cpp 85 setOperationAction(ISD::BR_CC, MVT::i32, Custom);
86 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
87 setOperationAction(ISD::BRCOND, MVT::Other, Expand);
88 setOperationAction(ISD::SETCC, MVT::i32, Custom);
89 setOperationAction(ISD::SELECT, MVT::i32, Expand);
90 setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
92 setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
93 setOperationAction(ISD::BlockAddress, MVT::i32, Custom);
94 setOperationAction(ISD::JumpTable, MVT::i32, Custom);
95 setOperationAction(ISD::ConstantPool, MVT::i32, Custom);
97 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Custom);
98 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
99 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
101 setOperationAction(ISD::VASTART, MVT::Other, Custom);
102 setOperationAction(ISD::VAARG, MVT::Other, Expand);
103 setOperationAction(ISD::VACOPY, MVT::Other, Expand);
104 setOperationAction(ISD::VAEND, MVT::Other, Expand);
106 setOperationAction(ISD::SDIV, MVT::i32, Expand);
107 setOperationAction(ISD::UDIV, MVT::i32, Expand);
108 setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
109 setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
110 setOperationAction(ISD::SREM, MVT::i32, Expand);
111 setOperationAction(ISD::UREM, MVT::i32, Expand);
113 setOperationAction(ISD::MUL, MVT::i32, Custom);
114 setOperationAction(ISD::MULHU, MVT::i32, Expand);
115 setOperationAction(ISD::MULHS, MVT::i32, Expand);
116 setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
117 setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
119 setOperationAction(ISD::ROTR, MVT::i32, Expand);
120 setOperationAction(ISD::ROTL, MVT::i32, Expand);
121 setOperationAction(ISD::SHL_PARTS, MVT::i32, Custom);
122 setOperationAction(ISD::SRL_PARTS, MVT::i32, Custom);
123 setOperationAction(ISD::SRA_PARTS, MVT::i32, Expand);
125 setOperationAction(ISD::BSWAP, MVT::i32, Expand);
126 setOperationAction(ISD::CTPOP, MVT::i32, Legal);
127 setOperationAction(ISD::CTLZ, MVT::i32, Legal);
128 setOperationAction(ISD::CTTZ, MVT::i32, Legal);
130 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
131 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8, Expand);
132 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
lib/Target/MSP430/MSP430ISelLowering.cpp 71 setOperationAction(ISD::SRA, MVT::i8, Custom);
72 setOperationAction(ISD::SHL, MVT::i8, Custom);
73 setOperationAction(ISD::SRL, MVT::i8, Custom);
74 setOperationAction(ISD::SRA, MVT::i16, Custom);
75 setOperationAction(ISD::SHL, MVT::i16, Custom);
76 setOperationAction(ISD::SRL, MVT::i16, Custom);
77 setOperationAction(ISD::ROTL, MVT::i8, Expand);
78 setOperationAction(ISD::ROTR, MVT::i8, Expand);
79 setOperationAction(ISD::ROTL, MVT::i16, Expand);
80 setOperationAction(ISD::ROTR, MVT::i16, Expand);
81 setOperationAction(ISD::GlobalAddress, MVT::i16, Custom);
82 setOperationAction(ISD::ExternalSymbol, MVT::i16, Custom);
83 setOperationAction(ISD::BlockAddress, MVT::i16, Custom);
84 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
85 setOperationAction(ISD::BR_CC, MVT::i8, Custom);
86 setOperationAction(ISD::BR_CC, MVT::i16, Custom);
87 setOperationAction(ISD::BRCOND, MVT::Other, Expand);
88 setOperationAction(ISD::SETCC, MVT::i8, Custom);
89 setOperationAction(ISD::SETCC, MVT::i16, Custom);
90 setOperationAction(ISD::SELECT, MVT::i8, Expand);
91 setOperationAction(ISD::SELECT, MVT::i16, Expand);
92 setOperationAction(ISD::SELECT_CC, MVT::i8, Custom);
93 setOperationAction(ISD::SELECT_CC, MVT::i16, Custom);
94 setOperationAction(ISD::SIGN_EXTEND, MVT::i16, Custom);
95 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i8, Expand);
96 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i16, Expand);
97 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
98 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
100 setOperationAction(ISD::CTTZ, MVT::i8, Expand);
101 setOperationAction(ISD::CTTZ, MVT::i16, Expand);
102 setOperationAction(ISD::CTLZ, MVT::i8, Expand);
103 setOperationAction(ISD::CTLZ, MVT::i16, Expand);
104 setOperationAction(ISD::CTPOP, MVT::i8, Expand);
105 setOperationAction(ISD::CTPOP, MVT::i16, Expand);
107 setOperationAction(ISD::SHL_PARTS, MVT::i8, Expand);
108 setOperationAction(ISD::SHL_PARTS, MVT::i16, Expand);
109 setOperationAction(ISD::SRL_PARTS, MVT::i8, Expand);
110 setOperationAction(ISD::SRL_PARTS, MVT::i16, Expand);
111 setOperationAction(ISD::SRA_PARTS, MVT::i8, Expand);
112 setOperationAction(ISD::SRA_PARTS, MVT::i16, Expand);
114 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
117 setOperationAction(ISD::MUL, MVT::i8, Promote);
118 setOperationAction(ISD::MULHS, MVT::i8, Promote);
119 setOperationAction(ISD::MULHU, MVT::i8, Promote);
120 setOperationAction(ISD::SMUL_LOHI, MVT::i8, Promote);
121 setOperationAction(ISD::UMUL_LOHI, MVT::i8, Promote);
122 setOperationAction(ISD::MUL, MVT::i16, LibCall);
123 setOperationAction(ISD::MULHS, MVT::i16, Expand);
124 setOperationAction(ISD::MULHU, MVT::i16, Expand);
125 setOperationAction(ISD::SMUL_LOHI, MVT::i16, Expand);
126 setOperationAction(ISD::UMUL_LOHI, MVT::i16, Expand);
128 setOperationAction(ISD::UDIV, MVT::i8, Promote);
129 setOperationAction(ISD::UDIVREM, MVT::i8, Promote);
130 setOperationAction(ISD::UREM, MVT::i8, Promote);
131 setOperationAction(ISD::SDIV, MVT::i8, Promote);
132 setOperationAction(ISD::SDIVREM, MVT::i8, Promote);
133 setOperationAction(ISD::SREM, MVT::i8, Promote);
134 setOperationAction(ISD::UDIV, MVT::i16, LibCall);
135 setOperationAction(ISD::UDIVREM, MVT::i16, Expand);
136 setOperationAction(ISD::UREM, MVT::i16, LibCall);
137 setOperationAction(ISD::SDIV, MVT::i16, LibCall);
138 setOperationAction(ISD::SDIVREM, MVT::i16, Expand);
139 setOperationAction(ISD::SREM, MVT::i16, LibCall);
142 setOperationAction(ISD::VASTART, MVT::Other, Custom);
143 setOperationAction(ISD::VAARG, MVT::Other, Expand);
144 setOperationAction(ISD::VAEND, MVT::Other, Expand);
145 setOperationAction(ISD::VACOPY, MVT::Other, Expand);
146 setOperationAction(ISD::JumpTable, MVT::i16, Custom);
lib/Target/Mips/Mips16ISelLowering.cpp 130 setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Expand);
131 setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i32, Expand);
132 setOperationAction(ISD::ATOMIC_SWAP, MVT::i32, Expand);
133 setOperationAction(ISD::ATOMIC_LOAD_ADD, MVT::i32, Expand);
134 setOperationAction(ISD::ATOMIC_LOAD_SUB, MVT::i32, Expand);
135 setOperationAction(ISD::ATOMIC_LOAD_AND, MVT::i32, Expand);
136 setOperationAction(ISD::ATOMIC_LOAD_OR, MVT::i32, Expand);
137 setOperationAction(ISD::ATOMIC_LOAD_XOR, MVT::i32, Expand);
138 setOperationAction(ISD::ATOMIC_LOAD_NAND, MVT::i32, Expand);
139 setOperationAction(ISD::ATOMIC_LOAD_MIN, MVT::i32, Expand);
140 setOperationAction(ISD::ATOMIC_LOAD_MAX, MVT::i32, Expand);
141 setOperationAction(ISD::ATOMIC_LOAD_UMIN, MVT::i32, Expand);
142 setOperationAction(ISD::ATOMIC_LOAD_UMAX, MVT::i32, Expand);
144 setOperationAction(ISD::ROTR, MVT::i32, Expand);
145 setOperationAction(ISD::ROTR, MVT::i64, Expand);
146 setOperationAction(ISD::BSWAP, MVT::i32, Expand);
147 setOperationAction(ISD::BSWAP, MVT::i64, Expand);
lib/Target/Mips/MipsISelLowering.cpp 347 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
348 setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
349 setOperationAction(ISD::BlockAddress, MVT::i32, Custom);
350 setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom);
351 setOperationAction(ISD::JumpTable, MVT::i32, Custom);
352 setOperationAction(ISD::ConstantPool, MVT::i32, Custom);
353 setOperationAction(ISD::SELECT, MVT::f32, Custom);
354 setOperationAction(ISD::SELECT, MVT::f64, Custom);
355 setOperationAction(ISD::SELECT, MVT::i32, Custom);
356 setOperationAction(ISD::SETCC, MVT::f32, Custom);
357 setOperationAction(ISD::SETCC, MVT::f64, Custom);
358 setOperationAction(ISD::BRCOND, MVT::Other, Custom);
359 setOperationAction(ISD::FCOPYSIGN, MVT::f32, Custom);
360 setOperationAction(ISD::FCOPYSIGN, MVT::f64, Custom);
361 setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
364 setOperationAction(ISD::FABS, MVT::f32, Custom);
365 setOperationAction(ISD::FABS, MVT::f64, Custom);
369 setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);
370 setOperationAction(ISD::BlockAddress, MVT::i64, Custom);
371 setOperationAction(ISD::GlobalTLSAddress, MVT::i64, Custom);
372 setOperationAction(ISD::JumpTable, MVT::i64, Custom);
373 setOperationAction(ISD::ConstantPool, MVT::i64, Custom);
374 setOperationAction(ISD::SELECT, MVT::i64, Custom);
375 setOperationAction(ISD::LOAD, MVT::i64, Custom);
376 setOperationAction(ISD::STORE, MVT::i64, Custom);
377 setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
378 setOperationAction(ISD::SHL_PARTS, MVT::i64, Custom);
379 setOperationAction(ISD::SRA_PARTS, MVT::i64, Custom);
380 setOperationAction(ISD::SRL_PARTS, MVT::i64, Custom);
384 setOperationAction(ISD::SHL_PARTS, MVT::i32, Custom);
385 setOperationAction(ISD::SRA_PARTS, MVT::i32, Custom);
386 setOperationAction(ISD::SRL_PARTS, MVT::i32, Custom);
389 setOperationAction(ISD::EH_DWARF_CFA, MVT::i32, Custom);
391 setOperationAction(ISD::EH_DWARF_CFA, MVT::i64, Custom);
393 setOperationAction(ISD::SDIV, MVT::i32, Expand);
394 setOperationAction(ISD::SREM, MVT::i32, Expand);
395 setOperationAction(ISD::UDIV, MVT::i32, Expand);
396 setOperationAction(ISD::UREM, MVT::i32, Expand);
397 setOperationAction(ISD::SDIV, MVT::i64, Expand);
398 setOperationAction(ISD::SREM, MVT::i64, Expand);
399 setOperationAction(ISD::UDIV, MVT::i64, Expand);
400 setOperationAction(ISD::UREM, MVT::i64, Expand);
403 setOperationAction(ISD::BR_CC, MVT::f32, Expand);
404 setOperationAction(ISD::BR_CC, MVT::f64, Expand);
405 setOperationAction(ISD::BR_CC, MVT::i32, Expand);
406 setOperationAction(ISD::BR_CC, MVT::i64, Expand);
407 setOperationAction(ISD::SELECT_CC, MVT::i32, Expand);
408 setOperationAction(ISD::SELECT_CC, MVT::i64, Expand);
409 setOperationAction(ISD::SELECT_CC, MVT::f32, Expand);
410 setOperationAction(ISD::SELECT_CC, MVT::f64, Expand);
411 setOperationAction(ISD::UINT_TO_FP, MVT::i32, Expand);
412 setOperationAction(ISD::UINT_TO_FP, MVT::i64, Expand);
413 setOperationAction(ISD::FP_TO_UINT, MVT::i32, Expand);
414 setOperationAction(ISD::FP_TO_UINT, MVT::i64, Expand);
415 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
417 setOperationAction(ISD::CTPOP, MVT::i32, Legal);
418 setOperationAction(ISD::CTPOP, MVT::i64, Legal);
420 setOperationAction(ISD::CTPOP, MVT::i32, Expand);
421 setOperationAction(ISD::CTPOP, MVT::i64, Expand);
423 setOperationAction(ISD::CTTZ, MVT::i32, Expand);
424 setOperationAction(ISD::CTTZ, MVT::i64, Expand);
425 setOperationAction(ISD::ROTL, MVT::i32, Expand);
426 setOperationAction(ISD::ROTL, MVT::i64, Expand);
427 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Expand);
428 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64, Expand);
431 setOperationAction(ISD::ROTR, MVT::i32, Expand);
434 setOperationAction(ISD::ROTR, MVT::i64, Expand);
436 setOperationAction(ISD::FSIN, MVT::f32, Expand);
437 setOperationAction(ISD::FSIN, MVT::f64, Expand);
438 setOperationAction(ISD::FCOS, MVT::f32, Expand);
439 setOperationAction(ISD::FCOS, MVT::f64, Expand);
440 setOperationAction(ISD::FSINCOS, MVT::f32, Expand);
441 setOperationAction(ISD::FSINCOS, MVT::f64, Expand);
442 setOperationAction(ISD::FPOW, MVT::f32, Expand);
443 setOperationAction(ISD::FPOW, MVT::f64, Expand);
444 setOperationAction(ISD::FLOG, MVT::f32, Expand);
445 setOperationAction(ISD::FLOG2, MVT::f32, Expand);
446 setOperationAction(ISD::FLOG10, MVT::f32, Expand);
447 setOperationAction(ISD::FEXP, MVT::f32, Expand);
448 setOperationAction(ISD::FMA, MVT::f32, Expand);
449 setOperationAction(ISD::FMA, MVT::f64, Expand);
450 setOperationAction(ISD::FREM, MVT::f32, Expand);
451 setOperationAction(ISD::FREM, MVT::f64, Expand);
454 setOperationAction(ISD::FP16_TO_FP, MVT::f32, Expand);
455 setOperationAction(ISD::FP_TO_FP16, MVT::f32, Expand);
456 setOperationAction(ISD::FP16_TO_FP, MVT::f64, Expand);
457 setOperationAction(ISD::FP_TO_FP16, MVT::f64, Expand);
459 setOperationAction(ISD::EH_RETURN, MVT::Other, Custom);
461 setOperationAction(ISD::VASTART, MVT::Other, Custom);
462 setOperationAction(ISD::VAARG, MVT::Other, Custom);
463 setOperationAction(ISD::VACOPY, MVT::Other, Expand);
464 setOperationAction(ISD::VAEND, MVT::Other, Expand);
467 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
468 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
471 setOperationAction(ISD::ATOMIC_LOAD, MVT::i64, Expand);
472 setOperationAction(ISD::ATOMIC_STORE, MVT::i64, Expand);
476 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8, Expand);
477 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
482 setOperationAction(ISD::CTLZ, MVT::i32, Expand);
484 setOperationAction(ISD::CTLZ, MVT::i64, Expand);
487 setOperationAction(ISD::BSWAP, MVT::i32, Expand);
489 setOperationAction(ISD::BSWAP, MVT::i64, Expand);
498 setOperationAction(ISD::TRAP, MVT::Other, Legal);
lib/Target/Mips/MipsSEISelLowering.cpp 92 setOperationAction(Opc, VecTys[i], Expand);
94 setOperationAction(ISD::ADD, VecTys[i], Legal);
95 setOperationAction(ISD::SUB, VecTys[i], Legal);
96 setOperationAction(ISD::LOAD, VecTys[i], Legal);
97 setOperationAction(ISD::STORE, VecTys[i], Legal);
98 setOperationAction(ISD::BITCAST, VecTys[i], Legal);
108 setOperationAction(ISD::ADDC, MVT::i32, Legal);
109 setOperationAction(ISD::ADDE, MVT::i32, Legal);
114 setOperationAction(ISD::MUL, MVT::v2i16, Legal);
127 setOperationAction(ISD::SETCC, MVT::f16, Promote);
128 setOperationAction(ISD::BR_CC, MVT::f16, Promote);
129 setOperationAction(ISD::SELECT_CC, MVT::f16, Promote);
130 setOperationAction(ISD::SELECT, MVT::f16, Promote);
131 setOperationAction(ISD::FADD, MVT::f16, Promote);
132 setOperationAction(ISD::FSUB, MVT::f16, Promote);
133 setOperationAction(ISD::FMUL, MVT::f16, Promote);
134 setOperationAction(ISD::FDIV, MVT::f16, Promote);
135 setOperationAction(ISD::FREM, MVT::f16, Promote);
136 setOperationAction(ISD::FMA, MVT::f16, Promote);
137 setOperationAction(ISD::FNEG, MVT::f16, Promote);
138 setOperationAction(ISD::FABS, MVT::f16, Promote);
139 setOperationAction(ISD::FCEIL, MVT::f16, Promote);
140 setOperationAction(ISD::FCOPYSIGN, MVT::f16, Promote);
141 setOperationAction(ISD::FCOS, MVT::f16, Promote);
142 setOperationAction(ISD::FP_EXTEND, MVT::f16, Promote);
143 setOperationAction(ISD::FFLOOR, MVT::f16, Promote);
144 setOperationAction(ISD::FNEARBYINT, MVT::f16, Promote);
145 setOperationAction(ISD::FPOW, MVT::f16, Promote);
146 setOperationAction(ISD::FPOWI, MVT::f16, Promote);
147 setOperationAction(ISD::FRINT, MVT::f16, Promote);
148 setOperationAction(ISD::FSIN, MVT::f16, Promote);
149 setOperationAction(ISD::FSINCOS, MVT::f16, Promote);
150 setOperationAction(ISD::FSQRT, MVT::f16, Promote);
151 setOperationAction(ISD::FEXP, MVT::f16, Promote);
152 setOperationAction(ISD::FEXP2, MVT::f16, Promote);
153 setOperationAction(ISD::FLOG, MVT::f16, Promote);
154 setOperationAction(ISD::FLOG2, MVT::f16, Promote);
155 setOperationAction(ISD::FLOG10, MVT::f16, Promote);
156 setOperationAction(ISD::FROUND, MVT::f16, Promote);
157 setOperationAction(ISD::FTRUNC, MVT::f16, Promote);
158 setOperationAction(ISD::FMINNUM, MVT::f16, Promote);
159 setOperationAction(ISD::FMAXNUM, MVT::f16, Promote);
160 setOperationAction(ISD::FMINIMUM, MVT::f16, Promote);
161 setOperationAction(ISD::FMAXIMUM, MVT::f16, Promote);
182 setOperationAction(ISD::SMUL_LOHI, MVT::i32, Custom);
183 setOperationAction(ISD::UMUL_LOHI, MVT::i32, Custom);
184 setOperationAction(ISD::MULHS, MVT::i32, Custom);
185 setOperationAction(ISD::MULHU, MVT::i32, Custom);
188 setOperationAction(ISD::MUL, MVT::i64, Legal);
190 setOperationAction(ISD::MUL, MVT::i64, Custom);
193 setOperationAction(ISD::SMUL_LOHI, MVT::i64, Custom);
194 setOperationAction(ISD::UMUL_LOHI, MVT::i64, Custom);
195 setOperationAction(ISD::MULHS, MVT::i64, Custom);
196 setOperationAction(ISD::MULHU, MVT::i64, Custom);
197 setOperationAction(ISD::SDIVREM, MVT::i64, Custom);
198 setOperationAction(ISD::UDIVREM, MVT::i64, Custom);
201 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::i64, Custom);
202 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::i64, Custom);
204 setOperationAction(ISD::SDIVREM, MVT::i32, Custom);
205 setOperationAction(ISD::UDIVREM, MVT::i32, Custom);
206 setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Custom);
207 setOperationAction(ISD::LOAD, MVT::i32, Custom);
208 setOperationAction(ISD::STORE, MVT::i32, Custom);
212 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
213 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::Other, Custom);
214 setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
218 setOperationAction(ISD::BITCAST, MVT::i64, Custom);
222 setOperationAction(ISD::LOAD, MVT::f64, Custom);
223 setOperationAction(ISD::STORE, MVT::f64, Custom);
229 setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
230 setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
231 setOperationAction(ISD::MUL, MVT::i32, Legal);
232 setOperationAction(ISD::MULHS, MVT::i32, Legal);
233 setOperationAction(ISD::MULHU, MVT::i32, Legal);
237 setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
238 setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
239 setOperationAction(ISD::SDIV, MVT::i32, Legal);
240 setOperationAction(ISD::UDIV, MVT::i32, Legal);
241 setOperationAction(ISD::SREM, MVT::i32, Legal);
242 setOperationAction(ISD::UREM, MVT::i32, Legal);
246 setOperationAction(ISD::SETCC, MVT::i32, Legal);
247 setOperationAction(ISD::SELECT, MVT::i32, Legal);
248 setOperationAction(ISD::SELECT_CC, MVT::i32, Expand);
250 setOperationAction(ISD::SETCC, MVT::f32, Legal);
251 setOperationAction(ISD::SELECT, MVT::f32, Legal);
252 setOperationAction(ISD::SELECT_CC, MVT::f32, Expand);
255 setOperationAction(ISD::SETCC, MVT::f64, Legal);
256 setOperationAction(ISD::SELECT, MVT::f64, Custom);
257 setOperationAction(ISD::SELECT_CC, MVT::f64, Expand);
259 setOperationAction(ISD::BRCOND, MVT::Other, Legal);
276 setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand);
277 setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand);
278 setOperationAction(ISD::MUL, MVT::i64, Legal);
279 setOperationAction(ISD::MULHS, MVT::i64, Legal);
280 setOperationAction(ISD::MULHU, MVT::i64, Legal);
284 setOperationAction(ISD::SDIVREM, MVT::i64, Expand);
285 setOperationAction(ISD::UDIVREM, MVT::i64, Expand);
286 setOperationAction(ISD::SDIV, MVT::i64, Legal);
287 setOperationAction(ISD::UDIV, MVT::i64, Legal);
288 setOperationAction(ISD::SREM, MVT::i64, Legal);
289 setOperationAction(ISD::UREM, MVT::i64, Legal);
293 setOperationAction(ISD::SETCC, MVT::i64, Legal);
294 setOperationAction(ISD::SELECT, MVT::i64, Legal);
295 setOperationAction(ISD::SELECT_CC, MVT::i64, Expand);
322 setOperationAction(Opc, Ty, Expand);
324 setOperationAction(ISD::BITCAST, Ty, Legal);
325 setOperationAction(ISD::LOAD, Ty, Legal);
326 setOperationAction(ISD::STORE, Ty, Legal);
327 setOperationAction(ISD::EXTRACT_VECTOR_ELT, Ty, Custom);
328 setOperationAction(ISD::INSERT_VECTOR_ELT, Ty, Legal);
329 setOperationAction(ISD::BUILD_VECTOR, Ty, Custom);
330 setOperationAction(ISD::UNDEF, Ty, Legal);
332 setOperationAction(ISD::ADD, Ty, Legal);
333 setOperationAction(ISD::AND, Ty, Legal);
334 setOperationAction(ISD::CTLZ, Ty, Legal);
335 setOperationAction(ISD::CTPOP, Ty, Legal);
336 setOperationAction(ISD::MUL, Ty, Legal);
337 setOperationAction(ISD::OR, Ty, Legal);
338 setOperationAction(ISD::SDIV, Ty, Legal);
339 setOperationAction(ISD::SREM, Ty, Legal);
340 setOperationAction(ISD::SHL, Ty, Legal);
341 setOperationAction(ISD::SRA, Ty, Legal);
342 setOperationAction(ISD::SRL, Ty, Legal);
343 setOperationAction(ISD::SUB, Ty, Legal);
344 setOperationAction(ISD::SMAX, Ty, Legal);
345 setOperationAction(ISD::SMIN, Ty, Legal);
346 setOperationAction(ISD::UDIV, Ty, Legal);
347 setOperationAction(ISD::UREM, Ty, Legal);
348 setOperationAction(ISD::UMAX, Ty, Legal);
349 setOperationAction(ISD::UMIN, Ty, Legal);
350 setOperationAction(ISD::VECTOR_SHUFFLE, Ty, Custom);
351 setOperationAction(ISD::VSELECT, Ty, Legal);
352 setOperationAction(ISD::XOR, Ty, Legal);
355 setOperationAction(ISD::FP_TO_SINT, Ty, Legal);
356 setOperationAction(ISD::FP_TO_UINT, Ty, Legal);
357 setOperationAction(ISD::SINT_TO_FP, Ty, Legal);
358 setOperationAction(ISD::UINT_TO_FP, Ty, Legal);
361 setOperationAction(ISD::SETCC, Ty, Legal);
376 setOperationAction(Opc, Ty, Expand);
378 setOperationAction(ISD::LOAD, Ty, Legal);
379 setOperationAction(ISD::STORE, Ty, Legal);
380 setOperationAction(ISD::BITCAST, Ty, Legal);
381 setOperationAction(ISD::EXTRACT_VECTOR_ELT, Ty, Legal);
382 setOperationAction(ISD::INSERT_VECTOR_ELT, Ty, Legal);
383 setOperationAction(ISD::BUILD_VECTOR, Ty, Custom);
386 setOperationAction(ISD::FABS, Ty, Legal);
387 setOperationAction(ISD::FADD, Ty, Legal);
388 setOperationAction(ISD::FDIV, Ty, Legal);
389 setOperationAction(ISD::FEXP2, Ty, Legal);
390 setOperationAction(ISD::FLOG2, Ty, Legal);
391 setOperationAction(ISD::FMA, Ty, Legal);
392 setOperationAction(ISD::FMUL, Ty, Legal);
393 setOperationAction(ISD::FRINT, Ty, Legal);
394 setOperationAction(ISD::FSQRT, Ty, Legal);
395 setOperationAction(ISD::FSUB, Ty, Legal);
396 setOperationAction(ISD::VSELECT, Ty, Legal);
398 setOperationAction(ISD::SETCC, Ty, Legal);
lib/Target/NVPTX/NVPTXISelLowering.cpp 372 setOperationAction(Op, VT, STI.allowFP16Math() ? Action : NoF16Action);
385 setOperationAction(ISD::SINT_TO_FP, MVT::f16, Legal);
386 setOperationAction(ISD::FP_TO_SINT, MVT::f16, Legal);
387 setOperationAction(ISD::BUILD_VECTOR, MVT::v2f16, Custom);
388 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f16, Custom);
389 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2f16, Expand);
390 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v2f16, Expand);
398 setOperationAction(ISD::SELECT_CC, VT, Expand);
399 setOperationAction(ISD::BR_CC, VT, Expand);
404 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i64, Legal);
405 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i32, Legal);
406 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Legal);
407 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8 , Legal);
408 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
410 setOperationAction(ISD::SHL_PARTS, MVT::i32 , Custom);
411 setOperationAction(ISD::SRA_PARTS, MVT::i32 , Custom);
412 setOperationAction(ISD::SRL_PARTS, MVT::i32 , Custom);
413 setOperationAction(ISD::SHL_PARTS, MVT::i64 , Custom);
414 setOperationAction(ISD::SRA_PARTS, MVT::i64 , Custom);
415 setOperationAction(ISD::SRL_PARTS, MVT::i64 , Custom);
417 setOperationAction(ISD::BITREVERSE, MVT::i32, Legal);
418 setOperationAction(ISD::BITREVERSE, MVT::i64, Legal);
423 setOperationAction(ISD::ROTL, MVT::i64, Legal);
424 setOperationAction(ISD::ROTR, MVT::i64, Legal);
425 setOperationAction(ISD::ROTL, MVT::i32, Legal);
426 setOperationAction(ISD::ROTR, MVT::i32, Legal);
428 setOperationAction(ISD::ROTL, MVT::i16, Expand);
429 setOperationAction(ISD::ROTR, MVT::i16, Expand);
430 setOperationAction(ISD::ROTL, MVT::i8, Expand);
431 setOperationAction(ISD::ROTR, MVT::i8, Expand);
432 setOperationAction(ISD::BSWAP, MVT::i16, Expand);
433 setOperationAction(ISD::BSWAP, MVT::i32, Expand);
434 setOperationAction(ISD::BSWAP, MVT::i64, Expand);
438 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
439 setOperationAction(ISD::BRIND, MVT::Other, Expand);
441 setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
442 setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);
446 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::Other, Custom);
465 setOperationAction(ISD::LOAD, MVT::i1, Custom);
466 setOperationAction(ISD::STORE, MVT::i1, Custom);
475 setOperationAction(ISD::ConstantFP, MVT::f64, Legal);
476 setOperationAction(ISD::ConstantFP, MVT::f32, Legal);
477 setOperationAction(ISD::ConstantFP, MVT::f16, Legal);
480 setOperationAction(ISD::TRAP, MVT::Other, Legal);
485 setOperationAction(ISD::LOAD, VT, Custom);
486 setOperationAction(ISD::STORE, VT, Custom);
487 setOperationAction(ISD::INTRINSIC_W_CHAIN, VT, Custom);
492 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::i8, Custom);
495 setOperationAction(ISD::ABS, Ty, Legal);
496 setOperationAction(ISD::SMIN, Ty, Legal);
497 setOperationAction(ISD::SMAX, Ty, Legal);
498 setOperationAction(ISD::UMIN, Ty, Legal);
499 setOperationAction(ISD::UMAX, Ty, Legal);
501 setOperationAction(ISD::CTPOP, Ty, Legal);
502 setOperationAction(ISD::CTLZ, Ty, Legal);
505 setOperationAction(ISD::CTTZ, MVT::i16, Expand);
506 setOperationAction(ISD::CTTZ, MVT::i32, Expand);
507 setOperationAction(ISD::CTTZ, MVT::i64, Expand);
510 setOperationAction(ISD::SELECT, MVT::i1, Custom);
513 setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand);
514 setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand);
542 setOperationAction(ISD::FNEG, MVT::f16, Expand);
543 setOperationAction(ISD::FNEG, MVT::v2f16, Expand);
550 setOperationAction(Op, MVT::f16, Legal);
551 setOperationAction(Op, MVT::f32, Legal);
552 setOperationAction(Op, MVT::f64, Legal);
553 setOperationAction(Op, MVT::v2f16, Expand);
556 setOperationAction(ISD::FROUND, MVT::f16, Promote);
557 setOperationAction(ISD::FROUND, MVT::v2f16, Expand);
558 setOperationAction(ISD::FROUND, MVT::f32, Custom);
559 setOperationAction(ISD::FROUND, MVT::f64, Custom);
563 setOperationAction(ISD::FCOPYSIGN, MVT::f16, Expand);
564 setOperationAction(ISD::FCOPYSIGN, MVT::v2f16, Expand);
565 setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
566 setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
573 setOperationAction(Op, MVT::f16, Promote);
574 setOperationAction(Op, MVT::f32, Legal);
575 setOperationAction(Op, MVT::f64, Legal);
576 setOperationAction(Op, MVT::v2f16, Expand);
578 setOperationAction(ISD::FMINNUM, MVT::f16, Promote);
579 setOperationAction(ISD::FMAXNUM, MVT::f16, Promote);
580 setOperationAction(ISD::FMINIMUM, MVT::f16, Promote);
581 setOperationAction(ISD::FMAXIMUM, MVT::f16, Promote);
lib/Target/PowerPC/PPCISelLowering.cpp 157 setOperationAction(ISD::BITREVERSE, MVT::i32, Legal);
158 setOperationAction(ISD::BITREVERSE, MVT::i64, Legal);
161 setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i32, Custom);
192 setOperationAction(ISD::ADDC, VT, Legal);
193 setOperationAction(ISD::ADDE, VT, Legal);
194 setOperationAction(ISD::SUBC, VT, Legal);
195 setOperationAction(ISD::SUBE, VT, Legal);
199 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
202 setOperationAction(ISD::SINT_TO_FP, MVT::i1, Promote);
205 setOperationAction(ISD::UINT_TO_FP, MVT::i1, Promote);
209 setOperationAction(ISD::SINT_TO_FP, MVT::i1, Custom);
210 setOperationAction(ISD::UINT_TO_FP, MVT::i1, Custom);
214 setOperationAction(ISD::LOAD, MVT::i1, Custom);
215 setOperationAction(ISD::STORE, MVT::i1, Custom);
219 setOperationAction(ISD::TRUNCATE, MVT::i1, Custom);
232 setOperationAction(ISD::FP_TO_SINT, MVT::ppcf128, Custom);
233 setOperationAction(ISD::FP_TO_UINT, MVT::ppcf128, Custom);
236 setOperationAction(ISD::FFLOOR, MVT::ppcf128, Expand);
237 setOperationAction(ISD::FCEIL, MVT::ppcf128, Expand);
238 setOperationAction(ISD::FTRUNC, MVT::ppcf128, Expand);
239 setOperationAction(ISD::FRINT, MVT::ppcf128, Expand);
240 setOperationAction(ISD::FNEARBYINT, MVT::ppcf128, Expand);
241 setOperationAction(ISD::FREM, MVT::ppcf128, Expand);
250 setOperationAction(ISD::SREM, MVT::i32, Custom);
251 setOperationAction(ISD::UREM, MVT::i32, Custom);
252 setOperationAction(ISD::SREM, MVT::i64, Custom);
253 setOperationAction(ISD::UREM, MVT::i64, Custom);
255 setOperationAction(ISD::SREM, MVT::i32, Expand);
256 setOperationAction(ISD::UREM, MVT::i32, Expand);
257 setOperationAction(ISD::SREM, MVT::i64, Expand);
258 setOperationAction(ISD::UREM, MVT::i64, Expand);
262 setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
263 setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
264 setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand);
265 setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand);
266 setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
267 setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
268 setOperationAction(ISD::UDIVREM, MVT::i64, Expand);
269 setOperationAction(ISD::SDIVREM, MVT::i64, Expand);
272 setOperationAction(ISD::FSIN , MVT::f64, Expand);
273 setOperationAction(ISD::FCOS , MVT::f64, Expand);
274 setOperationAction(ISD::FSINCOS, MVT::f64, Expand);
275 setOperationAction(ISD::FREM , MVT::f64, Expand);
276 setOperationAction(ISD::FPOW , MVT::f64, Expand);
277 setOperationAction(ISD::FSIN , MVT::f32, Expand);
278 setOperationAction(ISD::FCOS , MVT::f32, Expand);
279 setOperationAction(ISD::FSINCOS, MVT::f32, Expand);
280 setOperationAction(ISD::FREM , MVT::f32, Expand);
281 setOperationAction(ISD::FPOW , MVT::f32, Expand);
283 setOperationAction(ISD::FMA , MVT::f64, Expand);
284 setOperationAction(ISD::FMA , MVT::f32, Expand);
286 setOperationAction(ISD::FMA , MVT::f64, Legal);
287 setOperationAction(ISD::FMA , MVT::f32, Legal);
290 setOperationAction(ISD::FLT_ROUNDS_, MVT::i32, Custom);
296 setOperationAction(ISD::FSQRT, MVT::f64, Expand);
301 setOperationAction(ISD::FSQRT, MVT::f32, Expand);
304 setOperationAction(ISD::FCOPYSIGN, MVT::f64, Legal);
305 setOperationAction(ISD::FCOPYSIGN, MVT::f32, Legal);
307 setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
308 setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
312 setOperationAction(ISD::FFLOOR, MVT::f64, Legal);
313 setOperationAction(ISD::FCEIL, MVT::f64, Legal);
314 setOperationAction(ISD::FTRUNC, MVT::f64, Legal);
315 setOperationAction(ISD::FROUND, MVT::f64, Legal);
317 setOperationAction(ISD::FFLOOR, MVT::f32, Legal);
318 setOperationAction(ISD::FCEIL, MVT::f32, Legal);
319 setOperationAction(ISD::FTRUNC, MVT::f32, Legal);
320 setOperationAction(ISD::FROUND, MVT::f32, Legal);
326 setOperationAction(ISD::BSWAP, MVT::i32 , Expand);
328 setOperationAction(ISD::BSWAP, MVT::i64 , Custom);
330 setOperationAction(ISD::BSWAP, MVT::i64 , Expand);
332 setOperationAction(ISD::CTTZ , MVT::i32 , Legal);
333 setOperationAction(ISD::CTTZ , MVT::i64 , Legal);
335 setOperationAction(ISD::CTTZ , MVT::i32 , Expand);
336 setOperationAction(ISD::CTTZ , MVT::i64 , Expand);
340 setOperationAction(ISD::CTPOP, MVT::i32 , Legal);
341 setOperationAction(ISD::CTPOP, MVT::i64 , Legal);
343 setOperationAction(ISD::CTPOP, MVT::i32 , Expand);
344 setOperationAction(ISD::CTPOP, MVT::i64 , Expand);
348 setOperationAction(ISD::ROTR, MVT::i32 , Expand);
349 setOperationAction(ISD::ROTR, MVT::i64 , Expand);
353 setOperationAction(ISD::SELECT, MVT::i32, Expand);
354 setOperationAction(ISD::SELECT, MVT::i64, Expand);
355 setOperationAction(ISD::SELECT, MVT::f32, Expand);
356 setOperationAction(ISD::SELECT, MVT::f64, Expand);
360 setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
361 setOperationAction(ISD::SELECT_CC, MVT::f64, Custom);
365 setOperationAction(ISD::SETCC, MVT::i32, Custom);
369 setOperationAction(ISD::BRCOND, MVT::Other, Expand);
371 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
375 setOperationAction(ISD::FP_TO_SINT, MVT::i32, Legal);
376 setOperationAction(ISD::SINT_TO_FP, MVT::i32, Legal);
377 setOperationAction(ISD::UINT_TO_FP, MVT::i32, Legal);
380 setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
383 setOperationAction(ISD::SINT_TO_FP, MVT::i32, Expand);
384 setOperationAction(ISD::UINT_TO_FP, MVT::i32, Expand);
388 setOperationAction(ISD::BITCAST, MVT::f32, Legal);
389 setOperationAction(ISD::BITCAST, MVT::i32, Legal);
390 setOperationAction(ISD::BITCAST, MVT::i64, Legal);
391 setOperationAction(ISD::BITCAST, MVT::f64, Legal);
393 setOperationAction(ISD::BITCAST, MVT::f32, Expand);
394 setOperationAction(ISD::BITCAST, MVT::i32, Expand);
395 setOperationAction(ISD::BITCAST, MVT::i64, Expand);
396 setOperationAction(ISD::BITCAST, MVT::f64, Expand);
400 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
408 setOperationAction(ISD::EH_SJLJ_SETJMP, MVT::i32, Custom);
409 setOperationAction(ISD::EH_SJLJ_LONGJMP, MVT::Other, Custom);
413 setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
414 setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom);
415 setOperationAction(ISD::BlockAddress, MVT::i32, Custom);
416 setOperationAction(ISD::ConstantPool, MVT::i32, Custom);
417 setOperationAction(ISD::JumpTable, MVT::i32, Custom);
418 setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);
419 setOperationAction(ISD::GlobalTLSAddress, MVT::i64, Custom);
420 setOperationAction(ISD::BlockAddress, MVT::i64, Custom);
421 setOperationAction(ISD::ConstantPool, MVT::i64, Custom);
422 setOperationAction(ISD::JumpTable, MVT::i64, Custom);
425 setOperationAction(ISD::TRAP, MVT::Other, Legal);
428 setOperationAction(ISD::INIT_TRAMPOLINE, MVT::Other, Custom);
429 setOperationAction(ISD::ADJUST_TRAMPOLINE, MVT::Other, Custom);
432 setOperationAction(ISD::VASTART , MVT::Other, Custom);
436 setOperationAction(ISD::VAARG, MVT::i1, Promote);
438 setOperationAction(ISD::VAARG, MVT::i8, Promote);
440 setOperationAction(ISD::VAARG, MVT::i16, Promote);
442 setOperationAction(ISD::VAARG, MVT::i32, Promote);
444 setOperationAction(ISD::VAARG, MVT::Other, Expand);
447 setOperationAction(ISD::VAARG, MVT::Other, Custom);
448 setOperationAction(ISD::VAARG, MVT::i64, Custom);
450 setOperationAction(ISD::VAARG, MVT::Other, Expand);
454 setOperationAction(ISD::VACOPY , MVT::Other, Custom);
456 setOperationAction(ISD::VACOPY , MVT::Other, Expand);
459 setOperationAction(ISD::VAEND , MVT::Other, Expand);
460 setOperationAction(ISD::STACKSAVE , MVT::Other, Expand);
461 setOperationAction(ISD::STACKRESTORE , MVT::Other, Custom);
462 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32 , Custom);
463 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64 , Custom);
464 setOperationAction(ISD::GET_DYNAMIC_AREA_OFFSET, MVT::i32, Custom);
465 setOperationAction(ISD::GET_DYNAMIC_AREA_OFFSET, MVT::i64, Custom);
466 setOperationAction(ISD::EH_DWARF_CFA, MVT::i32, Custom);
467 setOperationAction(ISD::EH_DWARF_CFA, MVT::i64, Custom);
470 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
473 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::i1, Custom);
475 setOperationAction(ISD::INTRINSIC_VOID, MVT::i8, Custom);
476 setOperationAction(ISD::INTRINSIC_VOID, MVT::i16, Custom);
477 setOperationAction(ISD::INTRINSIC_VOID, MVT::i32, Custom);
478 setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
502 setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
503 setOperationAction(ISD::FP_TO_UINT, MVT::i64, Expand);
504 setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
505 setOperationAction(ISD::UINT_TO_FP, MVT::i64, Expand);
508 setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
511 setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
515 setOperationAction(ISD::FP_TO_UINT, MVT::i32, Legal);
517 setOperationAction(ISD::FP_TO_UINT, MVT::i32, Expand);
523 setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
524 setOperationAction(ISD::FP_TO_UINT, MVT::i64, Custom);
525 setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
526 setOperationAction(ISD::UINT_TO_FP, MVT::i64, Custom);
529 setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
530 setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
531 setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
532 setOperationAction(ISD::UINT_TO_FP, MVT::i32, Custom);
539 setOperationAction(ISD::BUILD_PAIR, MVT::i64, Expand);
541 setOperationAction(ISD::SHL_PARTS, MVT::i64, Custom);
542 setOperationAction(ISD::SRA_PARTS, MVT::i64, Custom);
543 setOperationAction(ISD::SRL_PARTS, MVT::i64, Custom);
546 setOperationAction(ISD::SHL_PARTS, MVT::i32, Custom);
547 setOperationAction(ISD::SRA_PARTS, MVT::i32, Custom);
548 setOperationAction(ISD::SRL_PARTS, MVT::i32, Custom);
552 setOperationAction(ISD::FMAXNUM_IEEE, MVT::f64, Legal);
553 setOperationAction(ISD::FMAXNUM_IEEE, MVT::f32, Legal);
554 setOperationAction(ISD::FMINNUM_IEEE, MVT::f64, Legal);
555 setOperationAction(ISD::FMINNUM_IEEE, MVT::f32, Legal);
563 setOperationAction(ISD::ADD, VT, Legal);
564 setOperationAction(ISD::SUB, VT, Legal);
569 setOperationAction(ISD::SMAX, VT, Legal);
570 setOperationAction(ISD::SMIN, VT, Legal);
571 setOperationAction(ISD::UMAX, VT, Legal);
572 setOperationAction(ISD::UMIN, VT, Legal);
575 setOperationAction(ISD::SMAX, VT, Expand);
576 setOperationAction(ISD::SMIN, VT, Expand);
577 setOperationAction(ISD::UMAX, VT, Expand);
578 setOperationAction(ISD::UMIN, VT, Expand);
582 setOperationAction(ISD::FMAXNUM, VT, Legal);
583 setOperationAction(ISD::FMINNUM, VT, Legal);
588 setOperationAction(ISD::CTPOP, VT, Legal);
589 setOperationAction(ISD::CTLZ, VT, Legal);
592 setOperationAction(ISD::CTPOP, VT, Expand);
593 setOperationAction(ISD::CTLZ, VT, Expand);
598 setOperationAction(ISD::CTTZ, VT, Legal);
600 setOperationAction(ISD::CTTZ, VT, Expand);
603 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Promote);
607 setOperationAction(ISD::AND , VT, Promote);
609 setOperationAction(ISD::OR , VT, Promote);
611 setOperationAction(ISD::XOR , VT, Promote);
613 setOperationAction(ISD::LOAD , VT, Promote);
615 setOperationAction(ISD::SELECT, VT, Promote);
617 setOperationAction(ISD::VSELECT, VT, Legal);
618 setOperationAction(ISD::SELECT_CC, VT, Promote);
620 setOperationAction(ISD::STORE, VT, Promote);
624 setOperationAction(ISD::MUL , VT, Expand);
625 setOperationAction(ISD::SDIV, VT, Expand);
626 setOperationAction(ISD::SREM, VT, Expand);
627 setOperationAction(ISD::UDIV, VT, Expand);
628 setOperationAction(ISD::UREM, VT, Expand);
629 setOperationAction(ISD::FDIV, VT, Expand);
630 setOperationAction(ISD::FREM, VT, Expand);
631 setOperationAction(ISD::FNEG, VT, Expand);
632 setOperationAction(ISD::FSQRT, VT, Expand);
633 setOperationAction(ISD::FLOG, VT, Expand);
634 setOperationAction(ISD::FLOG10, VT, Expand);
635 setOperationAction(ISD::FLOG2, VT, Expand);
636 setOperationAction(ISD::FEXP, VT, Expand);
637 setOperationAction(ISD::FEXP2, VT, Expand);
638 setOperationAction(ISD::FSIN, VT, Expand);
639 setOperationAction(ISD::FCOS, VT, Expand);
640 setOperationAction(ISD::FABS, VT, Expand);
641 setOperationAction(ISD::FFLOOR, VT, Expand);
642 setOperationAction(ISD::FCEIL, VT, Expand);
643 setOperationAction(ISD::FTRUNC, VT, Expand);
644 setOperationAction(ISD::FRINT, VT, Expand);
645 setOperationAction(ISD::FNEARBYINT, VT, Expand);
646 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Expand);
647 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Expand);
648 setOperationAction(ISD::BUILD_VECTOR, VT, Expand);
649 setOperationAction(ISD::MULHU, VT, Expand);
650 setOperationAction(ISD::MULHS, VT, Expand);
651 setOperationAction(ISD::UMUL_LOHI, VT, Expand);
652 setOperationAction(ISD::SMUL_LOHI, VT, Expand);
653 setOperationAction(ISD::UDIVREM, VT, Expand);
654 setOperationAction(ISD::SDIVREM, VT, Expand);
655 setOperationAction(ISD::SCALAR_TO_VECTOR, VT, Expand);
656 setOperationAction(ISD::FPOW, VT, Expand);
657 setOperationAction(ISD::BSWAP, VT, Expand);
658 setOperationAction(ISD::SIGN_EXTEND_INREG, VT, Expand);
659 setOperationAction(ISD::ROTL, VT, Expand);
660 setOperationAction(ISD::ROTR, VT, Expand);
670 setOperationAction(ISD::SMAX, MVT::v2i64, Expand);
671 setOperationAction(ISD::SMIN, MVT::v2i64, Expand);
672 setOperationAction(ISD::UMAX, MVT::v2i64, Expand);
673 setOperationAction(ISD::UMIN, MVT::v2i64, Expand);
677 setOperationAction(ISD::ABS, VT, Custom);
681 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v16i8, Custom);
685 setOperationAction(ISD::TRUNCATE, MVT::v8i8, Custom);
686 setOperationAction(ISD::TRUNCATE, MVT::v4i8, Custom);
687 setOperationAction(ISD::TRUNCATE, MVT::v2i8, Custom);
688 setOperationAction(ISD::TRUNCATE, MVT::v4i16, Custom);
689 setOperationAction(ISD::TRUNCATE, MVT::v2i16, Custom);
691 setOperationAction(ISD::AND , MVT::v4i32, Legal);
692 setOperationAction(ISD::OR , MVT::v4i32, Legal);
693 setOperationAction(ISD::XOR , MVT::v4i32, Legal);
694 setOperationAction(ISD::LOAD , MVT::v4i32, Legal);
695 setOperationAction(ISD::SELECT, MVT::v4i32,
697 setOperationAction(ISD::STORE , MVT::v4i32, Legal);
698 setOperationAction(ISD::FP_TO_SINT, MVT::v4i32, Legal);
699 setOperationAction(ISD::FP_TO_UINT, MVT::v4i32, Legal);
700 setOperationAction(ISD::SINT_TO_FP, MVT::v4i32, Legal);
701 setOperationAction(ISD::UINT_TO_FP, MVT::v4i32, Legal);
702 setOperationAction(ISD::FFLOOR, MVT::v4f32, Legal);
703 setOperationAction(ISD::FCEIL, MVT::v4f32, Legal);
704 setOperationAction(ISD::FTRUNC, MVT::v4f32, Legal);
705 setOperationAction(ISD::FNEARBYINT, MVT::v4f32, Legal);
710 setOperationAction(ISD::ABS, MVT::v2i64, Expand);
717 setOperationAction(ISD::MUL, MVT::v4f32, Legal);
718 setOperationAction(ISD::FMA, MVT::v4f32, Legal);
721 setOperationAction(ISD::FDIV, MVT::v4f32, Legal);
722 setOperationAction(ISD::FSQRT, MVT::v4f32, Legal);
726 setOperationAction(ISD::MUL, MVT::v4i32, Legal);
728 setOperationAction(ISD::MUL, MVT::v4i32, Custom);
730 setOperationAction(ISD::MUL, MVT::v8i16, Custom);
731 setOperationAction(ISD::MUL, MVT::v16i8, Custom);
733 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4f32, Custom);
734 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4i32, Custom);
736 setOperationAction(ISD::BUILD_VECTOR, MVT::v16i8, Custom);
737 setOperationAction(ISD::BUILD_VECTOR, MVT::v8i16, Custom);
738 setOperationAction(ISD::BUILD_VECTOR, MVT::v4i32, Custom);
739 setOperationAction(ISD::BUILD_VECTOR, MVT::v4f32, Custom);
748 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v2f64, Legal);
749 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f64, Legal);
751 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4f32, Legal);
752 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4f32, Legal);
755 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v16i8, Legal);
756 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v8i16, Legal);
757 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4i32, Legal);
758 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v2i64, Legal);
759 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v16i8, Legal);
760 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v8i16, Legal);
761 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4i32, Legal);
762 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2i64, Legal);
764 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f64, Legal);
766 setOperationAction(ISD::FFLOOR, MVT::v2f64, Legal);
767 setOperationAction(ISD::FCEIL, MVT::v2f64, Legal);
768 setOperationAction(ISD::FTRUNC, MVT::v2f64, Legal);
769 setOperationAction(ISD::FNEARBYINT, MVT::v2f64, Legal);
770 setOperationAction(ISD::FROUND, MVT::v2f64, Legal);
772 setOperationAction(ISD::FROUND, MVT::v4f32, Legal);
774 setOperationAction(ISD::MUL, MVT::v2f64, Legal);
775 setOperationAction(ISD::FMA, MVT::v2f64, Legal);
777 setOperationAction(ISD::FDIV, MVT::v2f64, Legal);
778 setOperationAction(ISD::FSQRT, MVT::v2f64, Legal);
786 setOperationAction(ISD::LOAD, MVT::v2f64, Legal);
787 setOperationAction(ISD::STORE, MVT::v2f64, Legal);
789 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v2f64, Legal);
801 setOperationAction(ISD::SHL, MVT::v2i64, Legal);
802 setOperationAction(ISD::SRA, MVT::v2i64, Legal);
803 setOperationAction(ISD::SRL, MVT::v2i64, Legal);
809 setOperationAction(ISD::SHL, MVT::v1i128, Expand);
810 setOperationAction(ISD::SRL, MVT::v1i128, Expand);
811 setOperationAction(ISD::SRA, MVT::v1i128, Expand);
813 setOperationAction(ISD::SETCC, MVT::v2i64, Legal);
816 setOperationAction(ISD::SHL, MVT::v2i64, Expand);
817 setOperationAction(ISD::SRA, MVT::v2i64, Expand);
818 setOperationAction(ISD::SRL, MVT::v2i64, Expand);
820 setOperationAction(ISD::SETCC, MVT::v2i64, Custom);
823 setOperationAction(ISD::ADD, MVT::v2i64, Expand);
824 setOperationAction(ISD::SUB, MVT::v2i64, Expand);
827 setOperationAction(ISD::LOAD, MVT::v2i64, Promote);
829 setOperationAction(ISD::STORE, MVT::v2i64, Promote);
832 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v2i64, Legal);
834 setOperationAction(ISD::SINT_TO_FP, MVT::v2i64, Legal);
835 setOperationAction(ISD::UINT_TO_FP, MVT::v2i64, Legal);
836 setOperationAction(ISD::FP_TO_SINT, MVT::v2i64, Legal);
837 setOperationAction(ISD::FP_TO_UINT, MVT::v2i64, Legal);
842 setOperationAction(ISD::UINT_TO_FP, MVT::v2i8, Custom);
843 setOperationAction(ISD::UINT_TO_FP, MVT::v4i8, Custom);
844 setOperationAction(ISD::UINT_TO_FP, MVT::v2i16, Custom);
845 setOperationAction(ISD::UINT_TO_FP, MVT::v4i16, Custom);
846 setOperationAction(ISD::SINT_TO_FP, MVT::v2i8, Custom);
847 setOperationAction(ISD::SINT_TO_FP, MVT::v4i8, Custom);
848 setOperationAction(ISD::SINT_TO_FP, MVT::v2i16, Custom);
849 setOperationAction(ISD::SINT_TO_FP, MVT::v4i16, Custom);
851 setOperationAction(ISD::FNEG, MVT::v4f32, Legal);
852 setOperationAction(ISD::FNEG, MVT::v2f64, Legal);
853 setOperationAction(ISD::FABS, MVT::v4f32, Legal);
854 setOperationAction(ISD::FABS, MVT::v2f64, Legal);
855 setOperationAction(ISD::FCOPYSIGN, MVT::v4f32, Legal);
856 setOperationAction(ISD::FCOPYSIGN, MVT::v2f64, Legal);
859 setOperationAction(ISD::BUILD_VECTOR, MVT::v2i64, Custom);
860 setOperationAction(ISD::BUILD_VECTOR, MVT::v2f64, Custom);
871 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4i32, Custom);
872 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4f32, Custom);
877 setOperationAction(ISD::SHL, MVT::v1i128, Legal);
878 setOperationAction(ISD::SRL, MVT::v1i128, Legal);
879 setOperationAction(ISD::SRA, MVT::v1i128, Expand);
883 setOperationAction(ISD::FADD, MVT::f128, Legal);
884 setOperationAction(ISD::FSUB, MVT::f128, Legal);
885 setOperationAction(ISD::FDIV, MVT::f128, Legal);
886 setOperationAction(ISD::FMUL, MVT::f128, Legal);
887 setOperationAction(ISD::FP_EXTEND, MVT::f128, Legal);
891 setOperationAction(ISD::FMA, MVT::f128, Legal);
899 setOperationAction(ISD::FTRUNC, MVT::f128, Legal);
900 setOperationAction(ISD::FRINT, MVT::f128, Legal);
901 setOperationAction(ISD::FFLOOR, MVT::f128, Legal);
902 setOperationAction(ISD::FCEIL, MVT::f128, Legal);
903 setOperationAction(ISD::FNEARBYINT, MVT::f128, Legal);
904 setOperationAction(ISD::FROUND, MVT::f128, Legal);
906 setOperationAction(ISD::SELECT, MVT::f128, Expand);
907 setOperationAction(ISD::FP_ROUND, MVT::f64, Legal);
908 setOperationAction(ISD::FP_ROUND, MVT::f32, Legal);
911 setOperationAction(ISD::BITCAST, MVT::i128, Custom);
913 setOperationAction(ISD::FSIN , MVT::f128, Expand);
914 setOperationAction(ISD::FCOS , MVT::f128, Expand);
915 setOperationAction(ISD::FPOW, MVT::f128, Expand);
916 setOperationAction(ISD::FPOWI, MVT::f128, Expand);
917 setOperationAction(ISD::FREM, MVT::f128, Expand);
919 setOperationAction(ISD::FP_EXTEND, MVT::v2f32, Custom);
924 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v8i16, Custom);
925 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v16i8, Custom);
930 setOperationAction(ISD::FADD, MVT::v4f64, Legal);
931 setOperationAction(ISD::FSUB, MVT::v4f64, Legal);
932 setOperationAction(ISD::FMUL, MVT::v4f64, Legal);
933 setOperationAction(ISD::FREM, MVT::v4f64, Expand);
935 setOperationAction(ISD::FCOPYSIGN, MVT::v4f64, Legal);
936 setOperationAction(ISD::FGETSIGN, MVT::v4f64, Expand);
938 setOperationAction(ISD::LOAD , MVT::v4f64, Custom);
939 setOperationAction(ISD::STORE , MVT::v4f64, Custom);
945 setOperationAction(ISD::SELECT, MVT::v4f64, Expand);
946 setOperationAction(ISD::VSELECT, MVT::v4f64, Legal);
948 setOperationAction(ISD::EXTRACT_VECTOR_ELT , MVT::v4f64, Legal);
949 setOperationAction(ISD::INSERT_VECTOR_ELT , MVT::v4f64, Expand);
950 setOperationAction(ISD::CONCAT_VECTORS , MVT::v4f64, Expand);
951 setOperationAction(ISD::EXTRACT_SUBVECTOR , MVT::v4f64, Expand);
952 setOperationAction(ISD::VECTOR_SHUFFLE , MVT::v4f64, Custom);
953 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4f64, Legal);
954 setOperationAction(ISD::BUILD_VECTOR, MVT::v4f64, Custom);
956 setOperationAction(ISD::FP_TO_SINT , MVT::v4f64, Legal);
957 setOperationAction(ISD::FP_TO_UINT , MVT::v4f64, Expand);
959 setOperationAction(ISD::FP_ROUND , MVT::v4f32, Legal);
960 setOperationAction(ISD::FP_EXTEND, MVT::v4f64, Legal);
962 setOperationAction(ISD::FNEG , MVT::v4f64, Legal);
963 setOperationAction(ISD::FABS , MVT::v4f64, Legal);
964 setOperationAction(ISD::FSIN , MVT::v4f64, Expand);
965 setOperationAction(ISD::FCOS , MVT::v4f64, Expand);
966 setOperationAction(ISD::FPOW , MVT::v4f64, Expand);
967 setOperationAction(ISD::FLOG , MVT::v4f64, Expand);
968 setOperationAction(ISD::FLOG2 , MVT::v4f64, Expand);
969 setOperationAction(ISD::FLOG10 , MVT::v4f64, Expand);
970 setOperationAction(ISD::FEXP , MVT::v4f64, Expand);
971 setOperationAction(ISD::FEXP2 , MVT::v4f64, Expand);
973 setOperationAction(ISD::FMINNUM, MVT::v4f64, Legal);
974 setOperationAction(ISD::FMAXNUM, MVT::v4f64, Legal);
981 setOperationAction(ISD::FADD, MVT::v4f32, Legal);
982 setOperationAction(ISD::FSUB, MVT::v4f32, Legal);
983 setOperationAction(ISD::FMUL, MVT::v4f32, Legal);
984 setOperationAction(ISD::FREM, MVT::v4f32, Expand);
986 setOperationAction(ISD::FCOPYSIGN, MVT::v4f32, Legal);
987 setOperationAction(ISD::FGETSIGN, MVT::v4f32, Expand);
989 setOperationAction(ISD::LOAD , MVT::v4f32, Custom);
990 setOperationAction(ISD::STORE , MVT::v4f32, Custom);
993 setOperationAction(ISD::SELECT, MVT::v4f32, Expand);
994 setOperationAction(ISD::VSELECT, MVT::v4f32, Legal);
996 setOperationAction(ISD::EXTRACT_VECTOR_ELT , MVT::v4f32, Legal);
997 setOperationAction(ISD::INSERT_VECTOR_ELT , MVT::v4f32, Expand);
998 setOperationAction(ISD::CONCAT_VECTORS , MVT::v4f32, Expand);
999 setOperationAction(ISD::EXTRACT_SUBVECTOR , MVT::v4f32, Expand);
1000 setOperationAction(ISD::VECTOR_SHUFFLE , MVT::v4f32, Custom);
1001 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4f32, Legal);
1002 setOperationAction(ISD::BUILD_VECTOR, MVT::v4f32, Custom);
1004 setOperationAction(ISD::FP_TO_SINT , MVT::v4f32, Legal);
1005 setOperationAction(ISD::FP_TO_UINT , MVT::v4f32, Expand);
1007 setOperationAction(ISD::FNEG , MVT::v4f32, Legal);
1008 setOperationAction(ISD::FABS , MVT::v4f32, Legal);
1009 setOperationAction(ISD::FSIN , MVT::v4f32, Expand);
1010 setOperationAction(ISD::FCOS , MVT::v4f32, Expand);
1011 setOperationAction(ISD::FPOW , MVT::v4f32, Expand);
1012 setOperationAction(ISD::FLOG , MVT::v4f32, Expand);
1013 setOperationAction(ISD::FLOG2 , MVT::v4f32, Expand);
1014 setOperationAction(ISD::FLOG10 , MVT::v4f32, Expand);
1015 setOperationAction(ISD::FEXP , MVT::v4f32, Expand);
1016 setOperationAction(ISD::FEXP2 , MVT::v4f32, Expand);
1018 setOperationAction(ISD::FMINNUM, MVT::v4f32, Legal);
1019 setOperationAction(ISD::FMAXNUM, MVT::v4f32, Legal);
1026 setOperationAction(ISD::AND , MVT::v4i1, Legal);
1027 setOperationAction(ISD::OR , MVT::v4i1, Legal);
1028 setOperationAction(ISD::XOR , MVT::v4i1, Legal);
1031 setOperationAction(ISD::SELECT, MVT::v4i1, Expand);
1032 setOperationAction(ISD::VSELECT, MVT::v4i1, Legal);
1034 setOperationAction(ISD::LOAD , MVT::v4i1, Custom);
1035 setOperationAction(ISD::STORE , MVT::v4i1, Custom);
1037 setOperationAction(ISD::EXTRACT_VECTOR_ELT , MVT::v4i1, Custom);
1038 setOperationAction(ISD::INSERT_VECTOR_ELT , MVT::v4i1, Expand);
1039 setOperationAction(ISD::CONCAT_VECTORS , MVT::v4i1, Expand);
1040 setOperationAction(ISD::EXTRACT_SUBVECTOR , MVT::v4i1, Expand);
1041 setOperationAction(ISD::VECTOR_SHUFFLE , MVT::v4i1, Custom);
1042 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4i1, Expand);
1043 setOperationAction(ISD::BUILD_VECTOR, MVT::v4i1, Custom);
1045 setOperationAction(ISD::SINT_TO_FP, MVT::v4i1, Custom);
1046 setOperationAction(ISD::UINT_TO_FP, MVT::v4i1, Custom);
1050 setOperationAction(ISD::FFLOOR, MVT::v4f64, Legal);
1051 setOperationAction(ISD::FCEIL, MVT::v4f64, Legal);
1052 setOperationAction(ISD::FTRUNC, MVT::v4f64, Legal);
1053 setOperationAction(ISD::FROUND, MVT::v4f64, Legal);
1055 setOperationAction(ISD::FFLOOR, MVT::v4f32, Legal);
1056 setOperationAction(ISD::FCEIL, MVT::v4f32, Legal);
1057 setOperationAction(ISD::FTRUNC, MVT::v4f32, Legal);
1058 setOperationAction(ISD::FROUND, MVT::v4f32, Legal);
1060 setOperationAction(ISD::FNEARBYINT, MVT::v4f64, Expand);
1061 setOperationAction(ISD::FNEARBYINT, MVT::v4f32, Expand);
1064 setOperationAction(ISD::FRINT, MVT::v4f64, Expand);
1065 setOperationAction(ISD::FRINT, MVT::v4f32, Expand);
1068 setOperationAction(ISD::FDIV, MVT::v4f64, Legal);
1069 setOperationAction(ISD::FSQRT, MVT::v4f64, Legal);
1071 setOperationAction(ISD::FDIV, MVT::v4f32, Legal);
1072 setOperationAction(ISD::FSQRT, MVT::v4f32, Legal);
1074 setOperationAction(ISD::FDIV, MVT::v4f64, Expand);
1075 setOperationAction(ISD::FSQRT, MVT::v4f64, Expand);
1077 setOperationAction(ISD::FDIV, MVT::v4f32, Expand);
1078 setOperationAction(ISD::FSQRT, MVT::v4f32, Expand);
1083 setOperationAction(ISD::PREFETCH, MVT::Other, Legal);
1085 setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, isPPC64 ? Legal : Custom);
1088 setOperationAction(ISD::ATOMIC_LOAD, MVT::i64, Expand);
1089 setOperationAction(ISD::ATOMIC_STORE, MVT::i64, Expand);
lib/Target/RISCV/RISCVISelLowering.cpp 84 setOperationAction(ISD::DYNAMIC_STACKALLOC, XLenVT, Expand);
86 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
87 setOperationAction(ISD::BR_CC, XLenVT, Expand);
88 setOperationAction(ISD::SELECT, XLenVT, Custom);
89 setOperationAction(ISD::SELECT_CC, XLenVT, Expand);
91 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
92 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
94 setOperationAction(ISD::VASTART, MVT::Other, Custom);
95 setOperationAction(ISD::VAARG, MVT::Other, Expand);
96 setOperationAction(ISD::VACOPY, MVT::Other, Expand);
97 setOperationAction(ISD::VAEND, MVT::Other, Expand);
100 setOperationAction(ISD::SIGN_EXTEND_INREG, VT, Expand);
103 setOperationAction(ISD::ADD, MVT::i32, Custom);
104 setOperationAction(ISD::SUB, MVT::i32, Custom);
105 setOperationAction(ISD::SHL, MVT::i32, Custom);
106 setOperationAction(ISD::SRA, MVT::i32, Custom);
107 setOperationAction(ISD::SRL, MVT::i32, Custom);
111 setOperationAction(ISD::MUL, XLenVT, Expand);
112 setOperationAction(ISD::MULHS, XLenVT, Expand);
113 setOperationAction(ISD::MULHU, XLenVT, Expand);
114 setOperationAction(ISD::SDIV, XLenVT, Expand);
115 setOperationAction(ISD::UDIV, XLenVT, Expand);
116 setOperationAction(ISD::SREM, XLenVT, Expand);
117 setOperationAction(ISD::UREM, XLenVT, Expand);
121 setOperationAction(ISD::MUL, MVT::i32, Custom);
122 setOperationAction(ISD::SDIV, MVT::i32, Custom);
123 setOperationAction(ISD::UDIV, MVT::i32, Custom);
124 setOperationAction(ISD::UREM, MVT::i32, Custom);
127 setOperationAction(ISD::SDIVREM, XLenVT, Expand);
128 setOperationAction(ISD::UDIVREM, XLenVT, Expand);
129 setOperationAction(ISD::SMUL_LOHI, XLenVT, Expand);
130 setOperationAction(ISD::UMUL_LOHI, XLenVT, Expand);
132 setOperationAction(ISD::SHL_PARTS, XLenVT, Custom);
133 setOperationAction(ISD::SRL_PARTS, XLenVT, Custom);
134 setOperationAction(ISD::SRA_PARTS, XLenVT, Custom);
136 setOperationAction(ISD::ROTL, XLenVT, Expand);
137 setOperationAction(ISD::ROTR, XLenVT, Expand);
138 setOperationAction(ISD::BSWAP, XLenVT, Expand);
139 setOperationAction(ISD::CTTZ, XLenVT, Expand);
140 setOperationAction(ISD::CTLZ, XLenVT, Expand);
141 setOperationAction(ISD::CTPOP, XLenVT, Expand);
153 setOperationAction(ISD::FMINNUM, MVT::f32, Legal);
154 setOperationAction(ISD::FMAXNUM, MVT::f32, Legal);
157 setOperationAction(ISD::SELECT_CC, MVT::f32, Expand);
158 setOperationAction(ISD::SELECT, MVT::f32, Custom);
159 setOperationAction(ISD::BR_CC, MVT::f32, Expand);
161 setOperationAction(Op, MVT::f32, Expand);
167 setOperationAction(ISD::BITCAST, MVT::i32, Custom);
170 setOperationAction(ISD::FMINNUM, MVT::f64, Legal);
171 setOperationAction(ISD::FMAXNUM, MVT::f64, Legal);
174 setOperationAction(ISD::SELECT_CC, MVT::f64, Expand);
175 setOperationAction(ISD::SELECT, MVT::f64, Custom);
176 setOperationAction(ISD::BR_CC, MVT::f64, Expand);
180 setOperationAction(Op, MVT::f64, Expand);
185 setOperationAction(ISD::GlobalAddress, XLenVT, Custom);
186 setOperationAction(ISD::BlockAddress, XLenVT, Custom);
187 setOperationAction(ISD::ConstantPool, XLenVT, Custom);
189 setOperationAction(ISD::GlobalTLSAddress, XLenVT, Custom);
193 setOperationAction(ISD::READCYCLECOUNTER, MVT::i64,
196 setOperationAction(ISD::TRAP, MVT::Other, Legal);
197 setOperationAction(ISD::DEBUGTRAP, MVT::Other, Legal);
lib/Target/Sparc/SparcISelLowering.cpp 1438 setOperationAction(Op, MVT::v2i32, Expand);
1454 setOperationAction(ISD::LOAD, MVT::v2i32, Legal);
1455 setOperationAction(ISD::STORE, MVT::v2i32, Legal);
1456 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2i32, Legal);
1457 setOperationAction(ISD::BUILD_VECTOR, MVT::v2i32, Legal);
1460 setOperationAction(ISD::LOAD, MVT::i64, Custom);
1461 setOperationAction(ISD::STORE, MVT::i64, Custom);
1484 setOperationAction(ISD::GlobalAddress, PtrVT, Custom);
1485 setOperationAction(ISD::GlobalTLSAddress, PtrVT, Custom);
1486 setOperationAction(ISD::ConstantPool, PtrVT, Custom);
1487 setOperationAction(ISD::BlockAddress, PtrVT, Custom);
1490 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
1491 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8 , Expand);
1492 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1 , Expand);
1495 setOperationAction(ISD::UREM, MVT::i32, Expand);
1496 setOperationAction(ISD::SREM, MVT::i32, Expand);
1497 setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
1498 setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
1502 setOperationAction(ISD::UREM, MVT::i64, Expand);
1503 setOperationAction(ISD::SREM, MVT::i64, Expand);
1504 setOperationAction(ISD::SDIVREM, MVT::i64, Expand);
1505 setOperationAction(ISD::UDIVREM, MVT::i64, Expand);
1509 setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
1510 setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
1511 setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
1512 setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
1515 setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
1516 setOperationAction(ISD::UINT_TO_FP, MVT::i32, Custom);
1517 setOperationAction(ISD::FP_TO_UINT, MVT::i64, Custom);
1518 setOperationAction(ISD::UINT_TO_FP, MVT::i64, Custom);
1520 setOperationAction(ISD::BITCAST, MVT::f32, Expand);
1521 setOperationAction(ISD::BITCAST, MVT::i32, Expand);
1524 setOperationAction(ISD::SELECT, MVT::i32, Expand);
1525 setOperationAction(ISD::SELECT, MVT::f32, Expand);
1526 setOperationAction(ISD::SELECT, MVT::f64, Expand);
1527 setOperationAction(ISD::SELECT, MVT::f128, Expand);
1529 setOperationAction(ISD::SETCC, MVT::i32, Expand);
1530 setOperationAction(ISD::SETCC, MVT::f32, Expand);
1531 setOperationAction(ISD::SETCC, MVT::f64, Expand);
1532 setOperationAction(ISD::SETCC, MVT::f128, Expand);
1535 setOperationAction(ISD::BRCOND, MVT::Other, Expand);
1536 setOperationAction(ISD::BRIND, MVT::Other, Expand);
1537 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
1538 setOperationAction(ISD::BR_CC, MVT::i32, Custom);
1539 setOperationAction(ISD::BR_CC, MVT::f32, Custom);
1540 setOperationAction(ISD::BR_CC, MVT::f64, Custom);
1541 setOperationAction(ISD::BR_CC, MVT::f128, Custom);
1543 setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
1544 setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
1545 setOperationAction(ISD::SELECT_CC, MVT::f64, Custom);
1546 setOperationAction(ISD::SELECT_CC, MVT::f128, Custom);
1548 setOperationAction(ISD::ADDC, MVT::i32, Custom);
1549 setOperationAction(ISD::ADDE, MVT::i32, Custom);
1550 setOperationAction(ISD::SUBC, MVT::i32, Custom);
1551 setOperationAction(ISD::SUBE, MVT::i32, Custom);
1554 setOperationAction(ISD::ADDC, MVT::i64, Custom);
1555 setOperationAction(ISD::ADDE, MVT::i64, Custom);
1556 setOperationAction(ISD::SUBC, MVT::i64, Custom);
1557 setOperationAction(ISD::SUBE, MVT::i64, Custom);
1558 setOperationAction(ISD::BITCAST, MVT::f64, Expand);
1559 setOperationAction(ISD::BITCAST, MVT::i64, Expand);
1560 setOperationAction(ISD::SELECT, MVT::i64, Expand);
1561 setOperationAction(ISD::SETCC, MVT::i64, Expand);
1562 setOperationAction(ISD::BR_CC, MVT::i64, Custom);
1563 setOperationAction(ISD::SELECT_CC, MVT::i64, Custom);
1565 setOperationAction(ISD::CTPOP, MVT::i64,
1567 setOperationAction(ISD::CTTZ , MVT::i64, Expand);
1568 setOperationAction(ISD::CTLZ , MVT::i64, Expand);
1569 setOperationAction(ISD::BSWAP, MVT::i64, Expand);
1570 setOperationAction(ISD::ROTL , MVT::i64, Expand);
1571 setOperationAction(ISD::ROTR , MVT::i64, Expand);
1572 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64, Custom);
1588 setOperationAction(ISD::ATOMIC_SWAP, MVT::i32, Legal);
1590 setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Legal);
1593 setOperationAction(ISD::ATOMIC_LOAD, MVT::i32, Custom);
1594 setOperationAction(ISD::ATOMIC_STORE, MVT::i32, Custom);
1597 setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i64, Legal);
1598 setOperationAction(ISD::ATOMIC_SWAP, MVT::i64, Legal);
1599 setOperationAction(ISD::ATOMIC_LOAD, MVT::i64, Custom);
1600 setOperationAction(ISD::ATOMIC_STORE, MVT::i64, Custom);
1612 setOperationAction(ISD::FNEG, MVT::f64, Custom);
1613 setOperationAction(ISD::FABS, MVT::f64, Custom);
1616 setOperationAction(ISD::FSIN , MVT::f128, Expand);
1617 setOperationAction(ISD::FCOS , MVT::f128, Expand);
1618 setOperationAction(ISD::FSINCOS, MVT::f128, Expand);
1619 setOperationAction(ISD::FREM , MVT::f128, Expand);
1620 setOperationAction(ISD::FMA , MVT::f128, Expand);
1621 setOperationAction(ISD::FSIN , MVT::f64, Expand);
1622 setOperationAction(ISD::FCOS , MVT::f64, Expand);
1623 setOperationAction(ISD::FSINCOS, MVT::f64, Expand);
1624 setOperationAction(ISD::FREM , MVT::f64, Expand);
1625 setOperationAction(ISD::FMA , MVT::f64, Expand);
1626 setOperationAction(ISD::FSIN , MVT::f32, Expand);
1627 setOperationAction(ISD::FCOS , MVT::f32, Expand);
1628 setOperationAction(ISD::FSINCOS, MVT::f32, Expand);
1629 setOperationAction(ISD::FREM , MVT::f32, Expand);
1630 setOperationAction(ISD::FMA , MVT::f32, Expand);
1631 setOperationAction(ISD::CTTZ , MVT::i32, Expand);
1632 setOperationAction(ISD::CTLZ , MVT::i32, Expand);
1633 setOperationAction(ISD::ROTL , MVT::i32, Expand);
1634 setOperationAction(ISD::ROTR , MVT::i32, Expand);
1635 setOperationAction(ISD::BSWAP, MVT::i32, Expand);
1636 setOperationAction(ISD::FCOPYSIGN, MVT::f128, Expand);
1637 setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
1638 setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
1639 setOperationAction(ISD::FPOW , MVT::f128, Expand);
1640 setOperationAction(ISD::FPOW , MVT::f64, Expand);
1641 setOperationAction(ISD::FPOW , MVT::f32, Expand);
1643 setOperationAction(ISD::SHL_PARTS, MVT::i32, Expand);
1644 setOperationAction(ISD::SRA_PARTS, MVT::i32, Expand);
1645 setOperationAction(ISD::SRL_PARTS, MVT::i32, Expand);
1648 setOperationAction(ISD::MULHU, MVT::i32, Expand);
1649 setOperationAction(ISD::MULHS, MVT::i32, Expand);
1650 setOperationAction(ISD::MUL, MVT::i32, Expand);
1654 setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
1655 setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
1658 setOperationAction(ISD::SDIV, MVT::i32, Expand);
1661 setOperationAction(ISD::UDIV, MVT::i32, Expand);
1669 setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand);
1670 setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand);
1671 setOperationAction(ISD::MULHU, MVT::i64, Expand);
1672 setOperationAction(ISD::MULHS, MVT::i64, Expand);
1674 setOperationAction(ISD::UMULO, MVT::i64, Custom);
1675 setOperationAction(ISD::SMULO, MVT::i64, Custom);
1677 setOperationAction(ISD::SHL_PARTS, MVT::i64, Expand);
1678 setOperationAction(ISD::SRA_PARTS, MVT::i64, Expand);
1679 setOperationAction(ISD::SRL_PARTS, MVT::i64, Expand);
1683 setOperationAction(ISD::VASTART , MVT::Other, Custom);
1685 setOperationAction(ISD::VAARG , MVT::Other, Custom);
1687 setOperationAction(ISD::TRAP , MVT::Other, Legal);
1688 setOperationAction(ISD::DEBUGTRAP , MVT::Other, Legal);
1691 setOperationAction(ISD::VACOPY , MVT::Other, Expand);
1692 setOperationAction(ISD::VAEND , MVT::Other, Expand);
1693 setOperationAction(ISD::STACKSAVE , MVT::Other, Expand);
1694 setOperationAction(ISD::STACKRESTORE , MVT::Other, Expand);
1695 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32 , Custom);
1699 setOperationAction(ISD::CTPOP, MVT::i32,
1703 setOperationAction(ISD::LOAD, MVT::f128, Legal);
1704 setOperationAction(ISD::STORE, MVT::f128, Legal);
1706 setOperationAction(ISD::LOAD, MVT::f128, Custom);
1707 setOperationAction(ISD::STORE, MVT::f128, Custom);
1711 setOperationAction(ISD::FADD, MVT::f128, Legal);
1712 setOperationAction(ISD::FSUB, MVT::f128, Legal);
1713 setOperationAction(ISD::FMUL, MVT::f128, Legal);
1714 setOperationAction(ISD::FDIV, MVT::f128, Legal);
1715 setOperationAction(ISD::FSQRT, MVT::f128, Legal);
1716 setOperationAction(ISD::FP_EXTEND, MVT::f128, Legal);
1717 setOperationAction(ISD::FP_ROUND, MVT::f64, Legal);
1719 setOperationAction(ISD::FNEG, MVT::f128, Legal);
1720 setOperationAction(ISD::FABS, MVT::f128, Legal);
1722 setOperationAction(ISD::FNEG, MVT::f128, Custom);
1723 setOperationAction(ISD::FABS, MVT::f128, Custom);
1736 setOperationAction(ISD::FADD, MVT::f128, Custom);
1737 setOperationAction(ISD::FSUB, MVT::f128, Custom);
1738 setOperationAction(ISD::FMUL, MVT::f128, Custom);
1739 setOperationAction(ISD::FDIV, MVT::f128, Custom);
1740 setOperationAction(ISD::FSQRT, MVT::f128, Custom);
1741 setOperationAction(ISD::FNEG, MVT::f128, Custom);
1742 setOperationAction(ISD::FABS, MVT::f128, Custom);
1744 setOperationAction(ISD::FP_EXTEND, MVT::f128, Custom);
1745 setOperationAction(ISD::FP_ROUND, MVT::f64, Custom);
1746 setOperationAction(ISD::FP_ROUND, MVT::f32, Custom);
1791 setOperationAction(ISD::FDIV, MVT::f32, Promote);
1792 setOperationAction(ISD::FSQRT, MVT::f32, Promote);
1796 setOperationAction(ISD::FMUL, MVT::f32, Promote);
1804 setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Custom);
1806 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
lib/Target/SystemZ/SystemZISelLowering.cpp 134 setOperationAction(ISD::SETCC, VT, Custom);
137 setOperationAction(ISD::SELECT, VT, Expand);
140 setOperationAction(ISD::SELECT_CC, VT, Custom);
141 setOperationAction(ISD::BR_CC, VT, Custom);
147 setOperationAction(ISD::BR_JT, MVT::Other, Expand);
150 setOperationAction(ISD::BRCOND, MVT::Other, Expand);
159 setOperationAction(ISD::SDIV, VT, Expand);
160 setOperationAction(ISD::UDIV, VT, Expand);
161 setOperationAction(ISD::SREM, VT, Expand);
162 setOperationAction(ISD::UREM, VT, Expand);
163 setOperationAction(ISD::SDIVREM, VT, Custom);
164 setOperationAction(ISD::UDIVREM, VT, Custom);
167 setOperationAction(ISD::SADDO, VT, Custom);
168 setOperationAction(ISD::SSUBO, VT, Custom);
171 setOperationAction(ISD::UADDO, VT, Custom);
172 setOperationAction(ISD::USUBO, VT, Custom);
175 setOperationAction(ISD::ADDCARRY, VT, Custom);
176 setOperationAction(ISD::SUBCARRY, VT, Custom);
180 setOperationAction(ISD::ATOMIC_LOAD, VT, Custom);
181 setOperationAction(ISD::ATOMIC_STORE, VT, Custom);
185 setOperationAction(ISD::ATOMIC_LOAD_SUB, VT, Custom);
189 setOperationAction(ISD::CTPOP, VT, Custom);
191 setOperationAction(ISD::CTPOP, VT, Expand);
194 setOperationAction(ISD::CTTZ, VT, Expand);
195 setOperationAction(ISD::ROTR, VT, Expand);
198 setOperationAction(ISD::MULHS, VT, Expand);
199 setOperationAction(ISD::MULHU, VT, Expand);
200 setOperationAction(ISD::SMUL_LOHI, VT, Custom);
201 setOperationAction(ISD::UMUL_LOHI, VT, Custom);
208 setOperationAction(ISD::FP_TO_UINT, VT, Expand);
212 setOperationAction(ISD::STRICT_FP_TO_SINT, VT, Legal);
214 setOperationAction(ISD::STRICT_FP_TO_UINT, VT, Legal);
221 setOperationAction(ISD::ATOMIC_SWAP, MVT::i32, Custom);
222 setOperationAction(ISD::ATOMIC_LOAD_ADD, MVT::i32, Custom);
223 setOperationAction(ISD::ATOMIC_LOAD_SUB, MVT::i32, Custom);
224 setOperationAction(ISD::ATOMIC_LOAD_AND, MVT::i32, Custom);
225 setOperationAction(ISD::ATOMIC_LOAD_OR, MVT::i32, Custom);
226 setOperationAction(ISD::ATOMIC_LOAD_XOR, MVT::i32, Custom);
227 setOperationAction(ISD::ATOMIC_LOAD_NAND, MVT::i32, Custom);
228 setOperationAction(ISD::ATOMIC_LOAD_MIN, MVT::i32, Custom);
229 setOperationAction(ISD::ATOMIC_LOAD_MAX, MVT::i32, Custom);
230 setOperationAction(ISD::ATOMIC_LOAD_UMIN, MVT::i32, Custom);
231 setOperationAction(ISD::ATOMIC_LOAD_UMAX, MVT::i32, Custom);
235 setOperationAction(ISD::ATOMIC_LOAD, MVT::i128, Custom);
236 setOperationAction(ISD::ATOMIC_STORE, MVT::i128, Custom);
240 setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, MVT::i32, Custom);
241 setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, MVT::i64, Custom);
242 setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, MVT::i128, Custom);
244 setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Custom);
247 setOperationAction(ISD::TRAP, MVT::Other, Legal);
252 setOperationAction(ISD::UINT_TO_FP, MVT::i32, Promote);
253 setOperationAction(ISD::UINT_TO_FP, MVT::i64, Expand);
257 setOperationAction(ISD::CTLZ, MVT::i32, Promote);
258 setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i32, Promote);
259 setOperationAction(ISD::CTLZ, MVT::i64, Legal);
263 setOperationAction(ISD::CTPOP, MVT::i32, Promote);
264 setOperationAction(ISD::CTPOP, MVT::i64, Legal);
268 setOperationAction(ISD::OR, MVT::i64, Custom);
271 setOperationAction(ISD::SRL_PARTS, MVT::i64, Expand);
272 setOperationAction(ISD::SHL_PARTS, MVT::i64, Expand);
273 setOperationAction(ISD::SRA_PARTS, MVT::i64, Expand);
276 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
284 setOperationAction(ISD::ConstantPool, PtrVT, Custom);
285 setOperationAction(ISD::GlobalAddress, PtrVT, Custom);
286 setOperationAction(ISD::GlobalTLSAddress, PtrVT, Custom);
287 setOperationAction(ISD::BlockAddress, PtrVT, Custom);
288 setOperationAction(ISD::JumpTable, PtrVT, Custom);
292 setOperationAction(ISD::DYNAMIC_STACKALLOC, PtrVT, Custom);
293 setOperationAction(ISD::GET_DYNAMIC_AREA_OFFSET, PtrVT, Custom);
297 setOperationAction(ISD::STACKSAVE, MVT::Other, Custom);
298 setOperationAction(ISD::STACKRESTORE, MVT::Other, Custom);
301 setOperationAction(ISD::PREFETCH, MVT::Other, Custom);
307 setOperationAction(Opcode, VT, Expand);
322 setOperationAction(ISD::LOAD, VT, Legal);
323 setOperationAction(ISD::STORE, VT, Legal);
324 setOperationAction(ISD::VSELECT, VT, Legal);
325 setOperationAction(ISD::BITCAST, VT, Legal);
326 setOperationAction(ISD::UNDEF, VT, Legal);
330 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
331 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
339 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Legal);
340 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Legal);
341 setOperationAction(ISD::ADD, VT, Legal);
342 setOperationAction(ISD::SUB, VT, Legal);
344 setOperationAction(ISD::MUL, VT, Legal);
345 setOperationAction(ISD::AND, VT, Legal);
346 setOperationAction(ISD::OR, VT, Legal);
347 setOperationAction(ISD::XOR, VT, Legal);
349 setOperationAction(ISD::CTPOP, VT, Legal);
351 setOperationAction(ISD::CTPOP, VT, Custom);
352 setOperationAction(ISD::CTTZ, VT, Legal);
353 setOperationAction(ISD::CTLZ, VT, Legal);
356 setOperationAction(ISD::SCALAR_TO_VECTOR, VT, Custom);
359 setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, VT, Custom);
360 setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, VT, Custom);
364 setOperationAction(ISD::SHL, VT, Custom);
365 setOperationAction(ISD::SRA, VT, Custom);
366 setOperationAction(ISD::SRL, VT, Custom);
370 setOperationAction(ISD::ROTL, VT, Expand);
371 setOperationAction(ISD::ROTR, VT, Expand);
375 setOperationAction(ISD::SETCC, VT, Custom);
382 setOperationAction(ISD::FP_TO_SINT, MVT::v2i64, Legal);
383 setOperationAction(ISD::FP_TO_SINT, MVT::v2f64, Legal);
384 setOperationAction(ISD::FP_TO_UINT, MVT::v2i64, Legal);
385 setOperationAction(ISD::FP_TO_UINT, MVT::v2f64, Legal);
386 setOperationAction(ISD::SINT_TO_FP, MVT::v2i64, Legal);
387 setOperationAction(ISD::SINT_TO_FP, MVT::v2f64, Legal);
388 setOperationAction(ISD::UINT_TO_FP, MVT::v2i64, Legal);
389 setOperationAction(ISD::UINT_TO_FP, MVT::v2f64, Legal);
391 setOperationAction(ISD::STRICT_FP_TO_SINT, MVT::v2i64, Legal);
392 setOperationAction(ISD::STRICT_FP_TO_SINT, MVT::v2f64, Legal);
393 setOperationAction(ISD::STRICT_FP_TO_UINT, MVT::v2i64, Legal);
394 setOperationAction(ISD::STRICT_FP_TO_UINT, MVT::v2f64, Legal);
398 setOperationAction(ISD::FP_TO_SINT, MVT::v4i32, Legal);
399 setOperationAction(ISD::FP_TO_SINT, MVT::v4f32, Legal);
400 setOperationAction(ISD::FP_TO_UINT, MVT::v4i32, Legal);
401 setOperationAction(ISD::FP_TO_UINT, MVT::v4f32, Legal);
402 setOperationAction(ISD::SINT_TO_FP, MVT::v4i32, Legal);
403 setOperationAction(ISD::SINT_TO_FP, MVT::v4f32, Legal);
404 setOperationAction(ISD::UINT_TO_FP, MVT::v4i32, Legal);
405 setOperationAction(ISD::UINT_TO_FP, MVT::v4f32, Legal);
407 setOperationAction(ISD::STRICT_FP_TO_SINT, MVT::v4i32, Legal);
408 setOperationAction(ISD::STRICT_FP_TO_SINT, MVT::v4f32, Legal);
409 setOperationAction(ISD::STRICT_FP_TO_UINT, MVT::v4i32, Legal);
410 setOperationAction(ISD::STRICT_FP_TO_UINT, MVT::v4f32, Legal);
420 setOperationAction(ISD::FRINT, VT, Legal);
424 setOperationAction(ISD::FNEARBYINT, VT, Legal);
425 setOperationAction(ISD::FFLOOR, VT, Legal);
426 setOperationAction(ISD::FCEIL, VT, Legal);
427 setOperationAction(ISD::FTRUNC, VT, Legal);
428 setOperationAction(ISD::FROUND, VT, Legal);
432 setOperationAction(ISD::FSIN, VT, Expand);
433 setOperationAction(ISD::FCOS, VT, Expand);
434 setOperationAction(ISD::FSINCOS, VT, Expand);
435 setOperationAction(ISD::FREM, VT, Expand);
436 setOperationAction(ISD::FPOW, VT, Expand);
439 setOperationAction(ISD::STRICT_FADD, VT, Legal);
440 setOperationAction(ISD::STRICT_FSUB, VT, Legal);
441 setOperationAction(ISD::STRICT_FMUL, VT, Legal);
442 setOperationAction(ISD::STRICT_FDIV, VT, Legal);
443 setOperationAction(ISD::STRICT_FMA, VT, Legal);
444 setOperationAction(ISD::STRICT_FSQRT, VT, Legal);
445 setOperationAction(ISD::STRICT_FRINT, VT, Legal);
446 setOperationAction(ISD::STRICT_FP_ROUND, VT, Legal);
447 setOperationAction(ISD::STRICT_FP_EXTEND, VT, Legal);
449 setOperationAction(ISD::STRICT_FNEARBYINT, VT, Legal);
450 setOperationAction(ISD::STRICT_FFLOOR, VT, Legal);
451 setOperationAction(ISD::STRICT_FCEIL, VT, Legal);
452 setOperationAction(ISD::STRICT_FROUND, VT, Legal);
453 setOperationAction(ISD::STRICT_FTRUNC, VT, Legal);
461 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4f32, Legal);
462 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v2f64, Legal);
466 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4f32, Custom);
467 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2f64, Custom);
468 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4f32, Custom);
469 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f64, Custom);
472 setOperationAction(ISD::FADD, MVT::v2f64, Legal);
473 setOperationAction(ISD::FNEG, MVT::v2f64, Legal);
474 setOperationAction(ISD::FSUB, MVT::v2f64, Legal);
475 setOperationAction(ISD::FMUL, MVT::v2f64, Legal);
476 setOperationAction(ISD::FMA, MVT::v2f64, Legal);
477 setOperationAction(ISD::FDIV, MVT::v2f64, Legal);
478 setOperationAction(ISD::FABS, MVT::v2f64, Legal);
479 setOperationAction(ISD::FSQRT, MVT::v2f64, Legal);
480 setOperationAction(ISD::FRINT, MVT::v2f64, Legal);
481 setOperationAction(ISD::FNEARBYINT, MVT::v2f64, Legal);
482 setOperationAction(ISD::FFLOOR, MVT::v2f64, Legal);
483 setOperationAction(ISD::FCEIL, MVT::v2f64, Legal);
484 setOperationAction(ISD::FTRUNC, MVT::v2f64, Legal);
485 setOperationAction(ISD::FROUND, MVT::v2f64, Legal);
488 setOperationAction(ISD::STRICT_FADD, MVT::v2f64, Legal);
489 setOperationAction(ISD::STRICT_FSUB, MVT::v2f64, Legal);
490 setOperationAction(ISD::STRICT_FMUL, MVT::v2f64, Legal);
491 setOperationAction(ISD::STRICT_FMA, MVT::v2f64, Legal);
492 setOperationAction(ISD::STRICT_FDIV, MVT::v2f64, Legal);
493 setOperationAction(ISD::STRICT_FSQRT, MVT::v2f64, Legal);
494 setOperationAction(ISD::STRICT_FRINT, MVT::v2f64, Legal);
495 setOperationAction(ISD::STRICT_FNEARBYINT, MVT::v2f64, Legal);
496 setOperationAction(ISD::STRICT_FFLOOR, MVT::v2f64, Legal);
497 setOperationAction(ISD::STRICT_FCEIL, MVT::v2f64, Legal);
498 setOperationAction(ISD::STRICT_FTRUNC, MVT::v2f64, Legal);
499 setOperationAction(ISD::STRICT_FROUND, MVT::v2f64, Legal);
504 setOperationAction(ISD::FADD, MVT::v4f32, Legal);
505 setOperationAction(ISD::FNEG, MVT::v4f32, Legal);
506 setOperationAction(ISD::FSUB, MVT::v4f32, Legal);
507 setOperationAction(ISD::FMUL, MVT::v4f32, Legal);
508 setOperationAction(ISD::FMA, MVT::v4f32, Legal);
509 setOperationAction(ISD::FDIV, MVT::v4f32, Legal);
510 setOperationAction(ISD::FABS, MVT::v4f32, Legal);
511 setOperationAction(ISD::FSQRT, MVT::v4f32, Legal);
512 setOperationAction(ISD::FRINT, MVT::v4f32, Legal);
513 setOperationAction(ISD::FNEARBYINT, MVT::v4f32, Legal);
514 setOperationAction(ISD::FFLOOR, MVT::v4f32, Legal);
515 setOperationAction(ISD::FCEIL, MVT::v4f32, Legal);
516 setOperationAction(ISD::FTRUNC, MVT::v4f32, Legal);
517 setOperationAction(ISD::FROUND, MVT::v4f32, Legal);
519 setOperationAction(ISD::FMAXNUM, MVT::f64, Legal);
520 setOperationAction(ISD::FMAXIMUM, MVT::f64, Legal);
521 setOperationAction(ISD::FMINNUM, MVT::f64, Legal);
522 setOperationAction(ISD::FMINIMUM, MVT::f64, Legal);
524 setOperationAction(ISD::FMAXNUM, MVT::v2f64, Legal);
525 setOperationAction(ISD::FMAXIMUM, MVT::v2f64, Legal);
526 setOperationAction(ISD::FMINNUM, MVT::v2f64, Legal);
527 setOperationAction(ISD::FMINIMUM, MVT::v2f64, Legal);
529 setOperationAction(ISD::FMAXNUM, MVT::f32, Legal);
530 setOperationAction(ISD::FMAXIMUM, MVT::f32, Legal);
531 setOperationAction(ISD::FMINNUM, MVT::f32, Legal);
532 setOperationAction(ISD::FMINIMUM, MVT::f32, Legal);
534 setOperationAction(ISD::FMAXNUM, MVT::v4f32, Legal);
535 setOperationAction(ISD::FMAXIMUM, MVT::v4f32, Legal);
536 setOperationAction(ISD::FMINNUM, MVT::v4f32, Legal);
537 setOperationAction(ISD::FMINIMUM, MVT::v4f32, Legal);
539 setOperationAction(ISD::FMAXNUM, MVT::f128, Legal);
540 setOperationAction(ISD::FMAXIMUM, MVT::f128, Legal);
541 setOperationAction(ISD::FMINNUM, MVT::f128, Legal);
542 setOperationAction(ISD::FMINIMUM, MVT::f128, Legal);
545 setOperationAction(ISD::STRICT_FADD, MVT::v4f32, Legal);
546 setOperationAction(ISD::STRICT_FSUB, MVT::v4f32, Legal);
547 setOperationAction(ISD::STRICT_FMUL, MVT::v4f32, Legal);
548 setOperationAction(ISD::STRICT_FMA, MVT::v4f32, Legal);
549 setOperationAction(ISD::STRICT_FDIV, MVT::v4f32, Legal);
550 setOperationAction(ISD::STRICT_FSQRT, MVT::v4f32, Legal);
551 setOperationAction(ISD::STRICT_FRINT, MVT::v4f32, Legal);
552 setOperationAction(ISD::STRICT_FNEARBYINT, MVT::v4f32, Legal);
553 setOperationAction(ISD::STRICT_FFLOOR, MVT::v4f32, Legal);
554 setOperationAction(ISD::STRICT_FCEIL, MVT::v4f32, Legal);
555 setOperationAction(ISD::STRICT_FROUND, MVT::v4f32, Legal);
556 setOperationAction(ISD::STRICT_FTRUNC, MVT::v4f32, Legal);
559 setOperationAction(ISD::STRICT_FMAXNUM, VT, Legal);
560 setOperationAction(ISD::STRICT_FMINNUM, VT, Legal);
565 setOperationAction(ISD::FMA, MVT::f32, Legal);
566 setOperationAction(ISD::FMA, MVT::f64, Legal);
568 setOperationAction(ISD::FMA, MVT::f128, Legal);
570 setOperationAction(ISD::FMA, MVT::f128, Expand);
574 setOperationAction(ISD::FCOPYSIGN, MVT::f128, Expand);
596 setOperationAction(ISD::BITCAST, MVT::i32, Custom);
597 setOperationAction(ISD::BITCAST, MVT::f32, Custom);
602 setOperationAction(ISD::VASTART, MVT::Other, Custom);
603 setOperationAction(ISD::VACOPY, MVT::Other, Custom);
604 setOperationAction(ISD::VAEND, MVT::Other, Expand);
623 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::Other, Custom);
624 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
lib/Target/WebAssembly/WebAssemblyISelLowering.cpp 71 setOperationAction(ISD::GlobalAddress, MVTPtr, Custom);
72 setOperationAction(ISD::ExternalSymbol, MVTPtr, Custom);
73 setOperationAction(ISD::JumpTable, MVTPtr, Custom);
74 setOperationAction(ISD::BlockAddress, MVTPtr, Custom);
75 setOperationAction(ISD::BRIND, MVT::Other, Custom);
79 setOperationAction(ISD::VASTART, MVT::Other, Custom);
80 setOperationAction(ISD::VAARG, MVT::Other, Expand);
81 setOperationAction(ISD::VACOPY, MVT::Other, Expand);
82 setOperationAction(ISD::VAEND, MVT::Other, Expand);
86 setOperationAction(ISD::ConstantFP, T, Legal);
94 setOperationAction(Op, T, Expand);
99 setOperationAction(Op, T, Legal);
101 setOperationAction(ISD::FMINIMUM, T, Legal);
102 setOperationAction(ISD::FMAXIMUM, T, Legal);
104 setOperationAction(ISD::FP16_TO_FP, T, Expand);
105 setOperationAction(ISD::FP_TO_FP16, T, Expand);
116 setOperationAction(Op, T, Expand);
119 setOperationAction(Op, T, Expand);
121 setOperationAction(Op, MVT::v2i64, Expand);
129 setOperationAction(Op, T, Legal);
133 setOperationAction(ISD::BUILD_VECTOR, T, Custom);
136 setOperationAction(ISD::BUILD_VECTOR, T, Custom);
140 setOperationAction(ISD::VECTOR_SHUFFLE, T, Custom);
143 setOperationAction(ISD::VECTOR_SHUFFLE, T, Custom);
148 setOperationAction(Op, T, Custom);
150 setOperationAction(Op, MVT::v2i64, Custom);
156 setOperationAction(Op, T, Custom);
159 setOperationAction(Op, T, Custom);
163 setOperationAction(ISD::MUL, MVT::v2i64, Expand);
168 setOperationAction(Op, T, Expand);
171 setOperationAction(Op, T, Expand);
178 setOperationAction(Op, T, Expand);
180 setOperationAction(Op, MVT::v2i64, Expand);
187 setOperationAction(Op, MVT::v4f32, Expand);
189 setOperationAction(Op, MVT::v2f64, Expand);
194 setOperationAction(ISD::FSQRT, MVT::v4f32, Expand);
195 setOperationAction(ISD::FDIV, MVT::v4f32, Expand);
201 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
206 setOperationAction(ISD::SIGN_EXTEND_INREG, T, Action);
209 setOperationAction(ISD::SIGN_EXTEND_INREG, T, Expand);
212 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
213 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
214 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVTPtr, Expand);
216 setOperationAction(ISD::FrameIndex, MVT::i32, Custom);
217 setOperationAction(ISD::CopyToReg, MVT::Other, Custom);
222 setOperationAction(Op, T, Expand);
225 setOperationAction(ISD::BR_JT, MVT::Other, Custom);
259 setOperationAction(ISD::BUILD_PAIR, MVT::i64, Expand);
262 setOperationAction(ISD::TRAP, MVT::Other, Legal);
265 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
266 setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
lib/Target/X86/X86ISelLowering.cpp 207 setOperationAction(ISD::ABS , MVT::i16 , Custom);
208 setOperationAction(ISD::ABS , MVT::i32 , Custom);
210 setOperationAction(ISD::ABS , MVT::i64 , Custom);
214 setOperationAction(ShiftOp , MVT::i16 , Custom);
215 setOperationAction(ShiftOp , MVT::i32 , Custom);
217 setOperationAction(ShiftOp , MVT::i64 , Custom);
222 setOperationAction(ISD::UINT_TO_FP , MVT::i1 , Promote);
223 setOperationAction(ISD::UINT_TO_FP , MVT::i8 , Promote);
224 setOperationAction(ISD::UINT_TO_FP , MVT::i16 , Promote);
229 setOperationAction(ISD::UINT_TO_FP , MVT::i64 , Custom);
232 setOperationAction(ISD::UINT_TO_FP , MVT::i32 , Custom);
234 setOperationAction(ISD::UINT_TO_FP , MVT::i32 , Expand);
239 setOperationAction(ISD::SINT_TO_FP , MVT::i1 , Promote);
240 setOperationAction(ISD::SINT_TO_FP , MVT::i8 , Promote);
245 setOperationAction(ISD::SINT_TO_FP , MVT::i16 , Promote);
247 setOperationAction(ISD::SINT_TO_FP , MVT::i32 , Custom);
249 setOperationAction(ISD::SINT_TO_FP , MVT::i16 , Custom);
250 setOperationAction(ISD::SINT_TO_FP , MVT::i32 , Custom);
253 setOperationAction(ISD::SINT_TO_FP , MVT::i16 , Promote);
254 setOperationAction(ISD::SINT_TO_FP , MVT::i32 , Expand);
259 setOperationAction(ISD::FP_TO_SINT , MVT::i1 , Promote);
260 setOperationAction(ISD::FP_TO_SINT , MVT::i8 , Promote);
265 setOperationAction(ISD::FP_TO_SINT , MVT::i64 , Custom);
266 setOperationAction(ISD::SINT_TO_FP , MVT::i64 , Custom);
268 setOperationAction(ISD::FP_TO_SINT , MVT::i16 , Custom);
269 setOperationAction(ISD::FP_TO_SINT , MVT::i32 , Custom);
271 setOperationAction(ISD::FP_TO_SINT , MVT::i16 , Promote);
272 setOperationAction(ISD::FP_TO_SINT , MVT::i32 , Expand);
273 setOperationAction(ISD::FP_TO_SINT , MVT::i64 , Expand);
278 setOperationAction(ISD::FP_TO_UINT , MVT::i1 , Promote);
279 setOperationAction(ISD::FP_TO_UINT , MVT::i8 , Promote);
280 setOperationAction(ISD::FP_TO_UINT , MVT::i16 , Promote);
283 setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
284 setOperationAction(ISD::FP_TO_UINT, MVT::i64, Custom);
289 setOperationAction(ISD::BITCAST , MVT::f32 , Expand);
290 setOperationAction(ISD::BITCAST , MVT::i32 , Expand);
292 setOperationAction(ISD::BITCAST , MVT::f64 , Expand);
294 setOperationAction(ISD::BITCAST , MVT::i64 , Expand);
297 setOperationAction(ISD::BITCAST , MVT::i64 , Custom);
310 setOperationAction(ISD::MULHS, VT, Expand);
311 setOperationAction(ISD::MULHU, VT, Expand);
312 setOperationAction(ISD::SDIV, VT, Expand);
313 setOperationAction(ISD::UDIV, VT, Expand);
314 setOperationAction(ISD::SREM, VT, Expand);
315 setOperationAction(ISD::UREM, VT, Expand);
318 setOperationAction(ISD::BR_JT , MVT::Other, Expand);
319 setOperationAction(ISD::BRCOND , MVT::Other, Custom);
322 setOperationAction(ISD::BR_CC, VT, Expand);
323 setOperationAction(ISD::SELECT_CC, VT, Expand);
326 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i32, Legal);
327 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16 , Legal);
328 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8 , Legal);
329 setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1 , Expand);
331 setOperationAction(ISD::FREM , MVT::f32 , Expand);
332 setOperationAction(ISD::FREM , MVT::f64 , Expand);
333 setOperationAction(ISD::FREM , MVT::f80 , Expand);
334 setOperationAction(ISD::FREM , MVT::f128 , Expand);
335 setOperationAction(ISD::FLT_ROUNDS_ , MVT::i32 , Custom);
342 setOperationAction(ISD::CTTZ , MVT::i16 , Custom);
343 setOperationAction(ISD::CTTZ , MVT::i32 , Custom);
344 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i16 , Legal);
345 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i32 , Legal);
347 setOperationAction(ISD::CTTZ , MVT::i64 , Custom);
348 setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i64, Legal);
358 setOperationAction(ISD::CTLZ , MVT::i8 , Custom);
359 setOperationAction(ISD::CTLZ , MVT::i16 , Custom);
360 setOperationAction(ISD::CTLZ , MVT::i32 , Custom);
361 setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i8 , Custom);
362 setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i16 , Custom);
363 setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i32 , Custom);
365 setOperationAction(ISD::CTLZ , MVT::i64 , Custom);
366 setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i64, Custom);
374 setOperationAction(ISD::FP16_TO_FP, MVT::f32, Expand);
375 setOperationAction(ISD::FP_TO_FP16, MVT::f32, Expand);
379 setOperationAction(ISD::FP16_TO_FP, MVT::f64, Expand);
380 setOperationAction(ISD::FP16_TO_FP, MVT::f80, Expand);
381 setOperationAction(ISD::FP16_TO_FP, MVT::f128, Expand);
382 setOperationAction(ISD::FP_TO_FP16, MVT::f64, Expand);
383 setOperationAction(ISD::FP_TO_FP16, MVT::f80, Expand);
384 setOperationAction(ISD::FP_TO_FP16, MVT::f128, Expand);
398 setOperationAction(ISD::CTPOP , MVT::i8 , Expand);
399 setOperationAction(ISD::CTPOP , MVT::i16 , Expand);
400 setOperationAction(ISD::CTPOP , MVT::i32 , Expand);
402 setOperationAction(ISD::CTPOP , MVT::i64 , Expand);
404 setOperationAction(ISD::CTPOP , MVT::i64 , Custom);
407 setOperationAction(ISD::READCYCLECOUNTER , MVT::i64 , Custom);
410 setOperationAction(ISD::BSWAP , MVT::i16 , Expand);
413 setOperationAction(ISD::SELECT , MVT::i1 , Promote);
416 setOperationAction(ISD::SELECT, VT, Custom);
417 setOperationAction(ISD::SETCC, VT, Custom);
422 setOperationAction(ISD::SELECT, VT, Custom);
423 setOperationAction(ISD::SETCC, VT, Custom);
427 setOperationAction(ISD::SELECT, MVT::x86mmx, Custom);
428 setOperationAction(ISD::SELECT_CC, MVT::x86mmx, Expand);
430 setOperationAction(ISD::EH_RETURN , MVT::Other, Custom);
433 setOperationAction(ISD::EH_SJLJ_SETJMP, MVT::i32, Custom);
434 setOperationAction(ISD::EH_SJLJ_LONGJMP, MVT::Other, Custom);
435 setOperationAction(ISD::EH_SJLJ_SETUP_DISPATCH, MVT::Other, Custom);
443 setOperationAction(ISD::ConstantPool , VT, Custom);
444 setOperationAction(ISD::JumpTable , VT, Custom);
445 setOperationAction(ISD::GlobalAddress , VT, Custom);
446 setOperationAction(ISD::GlobalTLSAddress, VT, Custom);
447 setOperationAction(ISD::ExternalSymbol , VT, Custom);
448 setOperationAction(ISD::BlockAddress , VT, Custom);
455 setOperationAction(ISD::SHL_PARTS, VT, Custom);
456 setOperationAction(ISD::SRA_PARTS, VT, Custom);
457 setOperationAction(ISD::SRL_PARTS, VT, Custom);
461 setOperationAction(ISD::PREFETCH , MVT::Other, Legal);
463 setOperationAction(ISD::ATOMIC_FENCE , MVT::Other, Custom);
467 setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, VT, Custom);
468 setOperationAction(ISD::ATOMIC_LOAD_SUB, VT, Custom);
469 setOperationAction(ISD::ATOMIC_LOAD_ADD, VT, Custom);
470 setOperationAction(ISD::ATOMIC_LOAD_OR, VT, Custom);
471 setOperationAction(ISD::ATOMIC_LOAD_XOR, VT, Custom);
472 setOperationAction(ISD::ATOMIC_LOAD_AND, VT, Custom);
473 setOperationAction(ISD::ATOMIC_STORE, VT, Custom);
477 setOperationAction(ISD::ATOMIC_LOAD, MVT::i64, Custom);
480 setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, MVT::i128, Custom);
487 setOperationAction(ISD::EH_LABEL, MVT::Other, Expand);
490 setOperationAction(ISD::FRAME_TO_ARGS_OFFSET, MVT::i32, Custom);
491 setOperationAction(ISD::FRAME_TO_ARGS_OFFSET, MVT::i64, Custom);
493 setOperationAction(ISD::INIT_TRAMPOLINE, MVT::Other, Custom);
494 setOperationAction(ISD::ADJUST_TRAMPOLINE, MVT::Other, Custom);
496 setOperationAction(ISD::TRAP, MVT::Other, Legal);
497 setOperationAction(ISD::DEBUGTRAP, MVT::Other, Legal);
500 setOperationAction(ISD::VASTART , MVT::Other, Custom);
501 setOperationAction(ISD::VAEND , MVT::Other, Expand);
503 setOperationAction(ISD::VAARG, MVT::Other, Is64Bit ? Custom : Expand);
504 setOperationAction(ISD::VACOPY, MVT::Other, Is64Bit ? Custom : Expand);
506 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
507 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
509 setOperationAction(ISD::DYNAMIC_STACKALLOC, PtrVT, Custom);
512 setOperationAction(ISD::GC_TRANSITION_START, MVT::Other, Custom);
513 setOperationAction(ISD::GC_TRANSITION_END, MVT::Other, Custom);
531 setOperationAction(ISD::FABS, VT, Custom);
534 setOperationAction(ISD::FNEG, VT, Custom);
537 setOperationAction(ISD::FCOPYSIGN, VT, Custom);
540 setOperationAction(ISD::FADD, VT, Custom);
541 setOperationAction(ISD::FSUB, VT, Custom);
544 setOperationAction(ISD::FSIN , VT, Expand);
545 setOperationAction(ISD::FCOS , VT, Expand);
546 setOperationAction(ISD::FSINCOS, VT, Expand);
550 setOperationAction(ISD::FGETSIGN, MVT::i64, Custom);
551 setOperationAction(ISD::FGETSIGN, MVT::i32, Custom);
561 setOperationAction(ISD::FABS , MVT::f32, Custom);
564 setOperationAction(ISD::FNEG , MVT::f32, Custom);
567 setOperationAction(ISD::UNDEF, MVT::f64, Expand);
571 setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
572 setOperationAction(ISD::FCOPYSIGN, MVT::f32, Custom);
575 setOperationAction(ISD::FSIN , MVT::f32, Expand);
576 setOperationAction(ISD::FCOS , MVT::f32, Expand);
577 setOperationAction(ISD::FSINCOS, MVT::f32, Expand);
581 setOperationAction(ISD::FSIN, MVT::f64, Expand);
582 setOperationAction(ISD::FCOS, MVT::f64, Expand);
583 setOperationAction(ISD::FSINCOS, MVT::f64, Expand);
592 setOperationAction(ISD::UNDEF, VT, Expand);
593 setOperationAction(ISD::FCOPYSIGN, VT, Expand);
596 setOperationAction(ISD::FSIN , VT, Expand);
597 setOperationAction(ISD::FCOS , VT, Expand);
598 setOperationAction(ISD::FSINCOS, VT, Expand);
624 setOperationAction(ISD::FMA, MVT::f64, Expand);
625 setOperationAction(ISD::FMA, MVT::f32, Expand);
630 setOperationAction(ISD::UNDEF, MVT::f80, Expand);
631 setOperationAction(ISD::FCOPYSIGN, MVT::f80, Expand);
648 setOperationAction(ISD::FSIN , MVT::f80, Expand);
649 setOperationAction(ISD::FCOS , MVT::f80, Expand);
650 setOperationAction(ISD::FSINCOS, MVT::f80, Expand);
652 setOperationAction(ISD::FFLOOR, MVT::f80, Expand);
653 setOperationAction(ISD::FCEIL, MVT::f80, Expand);
654 setOperationAction(ISD::FTRUNC, MVT::f80, Expand);
655 setOperationAction(ISD::FRINT, MVT::f80, Expand);
656 setOperationAction(ISD::FNEARBYINT, MVT::f80, Expand);
657 setOperationAction(ISD::FMA, MVT::f80, Expand);
658 setOperationAction(ISD::LROUND, MVT::f80, Expand);
659 setOperationAction(ISD::LLROUND, MVT::f80, Expand);
660 setOperationAction(ISD::LRINT, MVT::f80, Expand);
661 setOperationAction(ISD::LLRINT, MVT::f80, Expand);
671 setOperationAction(ISD::FADD, MVT::f128, Custom);
672 setOperationAction(ISD::FSUB, MVT::f128, Custom);
673 setOperationAction(ISD::FDIV, MVT::f128, Custom);
674 setOperationAction(ISD::FMUL, MVT::f128, Custom);
675 setOperationAction(ISD::FMA, MVT::f128, Expand);
677 setOperationAction(ISD::FABS, MVT::f128, Custom);
678 setOperationAction(ISD::FNEG, MVT::f128, Custom);
679 setOperationAction(ISD::FCOPYSIGN, MVT::f128, Custom);
681 setOperationAction(ISD::FSIN, MVT::f128, Expand);
682 setOperationAction(ISD::FCOS, MVT::f128, Expand);
683 setOperationAction(ISD::FSINCOS, MVT::f128, Expand);
684 setOperationAction(ISD::FSQRT, MVT::f128, Expand);
686 setOperationAction(ISD::FP_EXTEND, MVT::f128, Custom);
691 setOperationAction(ISD::FP_ROUND, MVT::f32, Custom);
692 setOperationAction(ISD::STRICT_FP_ROUND, MVT::f32, Custom);
695 setOperationAction(ISD::FP_ROUND, MVT::f64, Custom);
696 setOperationAction(ISD::STRICT_FP_ROUND, MVT::f64, Custom);
699 setOperationAction(ISD::FP_ROUND, MVT::f80, Custom);
700 setOperationAction(ISD::STRICT_FP_ROUND, MVT::f80, Custom);
703 setOperationAction(ISD::SETCC, MVT::f128, Custom);
714 setOperationAction(ISD::FPOW , MVT::f32 , Expand);
715 setOperationAction(ISD::FPOW , MVT::f64 , Expand);
716 setOperationAction(ISD::FPOW , MVT::f80 , Expand);
717 setOperationAction(ISD::FPOW , MVT::f128 , Expand);
719 setOperationAction(ISD::FLOG, MVT::f80, Expand);
720 setOperationAction(ISD::FLOG2, MVT::f80, Expand);
721 setOperationAction(ISD::FLOG10, MVT::f80, Expand);
722 setOperationAction(ISD::FEXP, MVT::f80, Expand);
723 setOperationAction(ISD::FEXP2, MVT::f80, Expand);
724 setOperationAction(ISD::FMINNUM, MVT::f80, Expand);
725 setOperationAction(ISD::FMAXNUM, MVT::f80, Expand);
730 setOperationAction(ISD::FSIN, VT, Expand);
731 setOperationAction(ISD::FSINCOS, VT, Expand);
732 setOperationAction(ISD::FCOS, VT, Expand);
733 setOperationAction(ISD::FREM, VT, Expand);
734 setOperationAction(ISD::FCOPYSIGN, VT, Expand);
735 setOperationAction(ISD::FPOW, VT, Expand);
736 setOperationAction(ISD::FLOG, VT, Expand);
737 setOperationAction(ISD::FLOG2, VT, Expand);
738 setOperationAction(ISD::FLOG10, VT, Expand);
739 setOperationAction(ISD::FEXP, VT, Expand);
740 setOperationAction(ISD::FEXP2, VT, Expand);
747 setOperationAction(ISD::SDIV, VT, Expand);
748 setOperationAction(ISD::UDIV, VT, Expand);
749 setOperationAction(ISD::SREM, VT, Expand);
750 setOperationAction(ISD::UREM, VT, Expand);
751 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT,Expand);
752 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Expand);
753 setOperationAction(ISD::EXTRACT_SUBVECTOR, VT,Expand);
754 setOperationAction(ISD::INSERT_SUBVECTOR, VT,Expand);
755 setOperationAction(ISD::FMA, VT, Expand);
756 setOperationAction(ISD::FFLOOR, VT, Expand);
757 setOperationAction(ISD::FCEIL, VT, Expand);
758 setOperationAction(ISD::FTRUNC, VT, Expand);
759 setOperationAction(ISD::FRINT, VT, Expand);
760 setOperationAction(ISD::FNEARBYINT, VT, Expand);
761 setOperationAction(ISD::SMUL_LOHI, VT, Expand);
762 setOperationAction(ISD::MULHS, VT, Expand);
763 setOperationAction(ISD::UMUL_LOHI, VT, Expand);
764 setOperationAction(ISD::MULHU, VT, Expand);
765 setOperationAction(ISD::SDIVREM, VT, Expand);
766 setOperationAction(ISD::UDIVREM, VT, Expand);
767 setOperationAction(ISD::CTPOP, VT, Expand);
768 setOperationAction(ISD::CTTZ, VT, Expand);
769 setOperationAction(ISD::CTLZ, VT, Expand);
770 setOperationAction(ISD::ROTL, VT, Expand);
771 setOperationAction(ISD::ROTR, VT, Expand);
772 setOperationAction(ISD::BSWAP, VT, Expand);
773 setOperationAction(ISD::SETCC, VT, Expand);
774 setOperationAction(ISD::FP_TO_UINT, VT, Expand);
775 setOperationAction(ISD::FP_TO_SINT, VT, Expand);
776 setOperationAction(ISD::UINT_TO_FP, VT, Expand);
777 setOperationAction(ISD::SINT_TO_FP, VT, Expand);
778 setOperationAction(ISD::SIGN_EXTEND_INREG, VT,Expand);
779 setOperationAction(ISD::TRUNCATE, VT, Expand);
780 setOperationAction(ISD::SIGN_EXTEND, VT, Expand);
781 setOperationAction(ISD::ZERO_EXTEND, VT, Expand);
782 setOperationAction(ISD::ANY_EXTEND, VT, Expand);
783 setOperationAction(ISD::SELECT_CC, VT, Expand);
815 setOperationAction(ISD::FNEG, MVT::v4f32, Custom);
816 setOperationAction(ISD::FABS, MVT::v4f32, Custom);
817 setOperationAction(ISD::FCOPYSIGN, MVT::v4f32, Custom);
818 setOperationAction(ISD::BUILD_VECTOR, MVT::v4f32, Custom);
819 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v4f32, Custom);
820 setOperationAction(ISD::VSELECT, MVT::v4f32, Custom);
821 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4f32, Custom);
822 setOperationAction(ISD::SELECT, MVT::v4f32, Custom);
823 setOperationAction(ISD::UINT_TO_FP, MVT::v4i32, Custom);
825 setOperationAction(ISD::LOAD, MVT::v2f32, Custom);
826 setOperationAction(ISD::STORE, MVT::v2f32, Custom);
828 setOperationAction(ISD::STRICT_FP_ROUND, MVT::v4f32, Custom);
848 setOperationAction(ISD::SDIV, VT, Custom);
849 setOperationAction(ISD::SREM, VT, Custom);
850 setOperationAction(ISD::UDIV, VT, Custom);
851 setOperationAction(ISD::UREM, VT, Custom);
854 setOperationAction(ISD::MUL, MVT::v2i8, Custom);
855 setOperationAction(ISD::MUL, MVT::v4i8, Custom);
856 setOperationAction(ISD::MUL, MVT::v8i8, Custom);
858 setOperationAction(ISD::MUL, MVT::v16i8, Custom);
859 setOperationAction(ISD::MUL, MVT::v4i32, Custom);
860 setOperationAction(ISD::MUL, MVT::v2i64, Custom);
861 setOperationAction(ISD::MULHU, MVT::v4i32, Custom);
862 setOperationAction(ISD::MULHS, MVT::v4i32, Custom);
863 setOperationAction(ISD::MULHU, MVT::v16i8, Custom);
864 setOperationAction(ISD::MULHS, MVT::v16i8, Custom);
865 setOperationAction(ISD::MULHU, MVT::v8i16, Legal);
866 setOperationAction(ISD::MULHS, MVT::v8i16, Legal);
867 setOperationAction(ISD::MUL, MVT::v8i16, Legal);
868 setOperationAction(ISD::FNEG, MVT::v2f64, Custom);
869 setOperationAction(ISD::FABS, MVT::v2f64, Custom);
870 setOperationAction(ISD::FCOPYSIGN, MVT::v2f64, Custom);
873 setOperationAction(ISD::SMAX, VT, VT == MVT::v8i16 ? Legal : Custom);
874 setOperationAction(ISD::SMIN, VT, VT == MVT::v8i16 ? Legal : Custom);
875 setOperationAction(ISD::UMAX, VT, VT == MVT::v16i8 ? Legal : Custom);
876 setOperationAction(ISD::UMIN, VT, VT == MVT::v16i8 ? Legal : Custom);
879 setOperationAction(ISD::UADDSAT, MVT::v16i8, Legal);
880 setOperationAction(ISD::SADDSAT, MVT::v16i8, Legal);
881 setOperationAction(ISD::USUBSAT, MVT::v16i8, Legal);
882 setOperationAction(ISD::SSUBSAT, MVT::v16i8, Legal);
883 setOperationAction(ISD::UADDSAT, MVT::v8i16, Legal);
884 setOperationAction(ISD::SADDSAT, MVT::v8i16, Legal);
885 setOperationAction(ISD::USUBSAT, MVT::v8i16, Legal);
886 setOperationAction(ISD::SSUBSAT, MVT::v8i16, Legal);
887 setOperationAction(ISD::UADDSAT, MVT::v4i32, Custom);
888 setOperationAction(ISD::USUBSAT, MVT::v4i32, Custom);
889 setOperationAction(ISD::UADDSAT, MVT::v2i64, Custom);
890 setOperationAction(ISD::USUBSAT, MVT::v2i64, Custom);
892 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v8i16, Custom);
893 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4i32, Custom);
894 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4f32, Custom);
897 setOperationAction(ISD::SETCC, VT, Custom);
898 setOperationAction(ISD::CTPOP, VT, Custom);
899 setOperationAction(ISD::ABS, VT, Custom);
908 setOperationAction(ISD::SCALAR_TO_VECTOR, VT, Custom);
909 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
910 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
911 setOperationAction(ISD::VSELECT, VT, Custom);
912 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
916 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
917 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
918 setOperationAction(ISD::VSELECT, VT, Custom);
923 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
924 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
928 setOperationAction(ISD::SELECT, MVT::v2f64, Custom);
929 setOperationAction(ISD::SELECT, MVT::v2i64, Custom);
930 setOperationAction(ISD::SELECT, MVT::v4i32, Custom);
931 setOperationAction(ISD::SELECT, MVT::v8i16, Custom);
932 setOperationAction(ISD::SELECT, MVT::v16i8, Custom);
934 setOperationAction(ISD::FP_TO_SINT, MVT::v4i32, Legal);
935 setOperationAction(ISD::FP_TO_SINT, MVT::v2i32, Custom);
938 setOperationAction(ISD::FP_TO_SINT, MVT::v2i8, Custom);
939 setOperationAction(ISD::FP_TO_SINT, MVT::v4i8, Custom);
940 setOperationAction(ISD::FP_TO_SINT, MVT::v8i8, Custom);
941 setOperationAction(ISD::FP_TO_SINT, MVT::v2i16, Custom);
942 setOperationAction(ISD::FP_TO_SINT, MVT::v4i16, Custom);
943 setOperationAction(ISD::FP_TO_UINT, MVT::v2i8, Custom);
944 setOperationAction(ISD::FP_TO_UINT, MVT::v4i8, Custom);
945 setOperationAction(ISD::FP_TO_UINT, MVT::v8i8, Custom);
946 setOperationAction(ISD::FP_TO_UINT, MVT::v2i16, Custom);
947 setOperationAction(ISD::FP_TO_UINT, MVT::v4i16, Custom);
955 setOperationAction(ISD::FP_TO_SINT, MVT::v8i16, Custom);
957 setOperationAction(ISD::SINT_TO_FP, MVT::v4i32, Legal);
958 setOperationAction(ISD::SINT_TO_FP, MVT::v2i32, Custom);
960 setOperationAction(ISD::UINT_TO_FP, MVT::v2i32, Custom);
963 setOperationAction(ISD::UINT_TO_FP, MVT::v2f32, Custom);
965 setOperationAction(ISD::FP_EXTEND, MVT::v2f32, Custom);
966 setOperationAction(ISD::FP_ROUND, MVT::v2f32, Custom);
971 setOperationAction(ISD::LOAD, MVT::v2i32, Custom);
972 setOperationAction(ISD::LOAD, MVT::v4i16, Custom);
973 setOperationAction(ISD::LOAD, MVT::v8i8, Custom);
974 setOperationAction(ISD::STORE, MVT::v2i32, Custom);
975 setOperationAction(ISD::STORE, MVT::v4i16, Custom);
976 setOperationAction(ISD::STORE, MVT::v8i8, Custom);
978 setOperationAction(ISD::BITCAST, MVT::v2i32, Custom);
979 setOperationAction(ISD::BITCAST, MVT::v4i16, Custom);
980 setOperationAction(ISD::BITCAST, MVT::v8i8, Custom);
982 setOperationAction(ISD::BITCAST, MVT::v16i1, Custom);
984 setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, MVT::v2i64, Custom);
985 setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, MVT::v4i32, Custom);
986 setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, MVT::v8i16, Custom);
988 setOperationAction(ISD::SIGN_EXTEND, MVT::v4i64, Custom);
990 setOperationAction(ISD::TRUNCATE, MVT::v2i8, Custom);
991 setOperationAction(ISD::TRUNCATE, MVT::v2i16, Custom);
992 setOperationAction(ISD::TRUNCATE, MVT::v2i32, Custom);
993 setOperationAction(ISD::TRUNCATE, MVT::v4i8, Custom);
994 setOperationAction(ISD::TRUNCATE, MVT::v4i16, Custom);
995 setOperationAction(ISD::TRUNCATE, MVT::v8i8, Custom);
1000 setOperationAction(ISD::SRL, VT, Custom);
1001 setOperationAction(ISD::SHL, VT, Custom);
1002 setOperationAction(ISD::SRA, VT, Custom);
1005 setOperationAction(ISD::ROTL, MVT::v4i32, Custom);
1006 setOperationAction(ISD::ROTL, MVT::v8i16, Custom);
1010 setOperationAction(ISD::ROTL, MVT::v16i8, Custom);
1014 setOperationAction(ISD::ABS, MVT::v16i8, Legal);
1015 setOperationAction(ISD::ABS, MVT::v8i16, Legal);
1016 setOperationAction(ISD::ABS, MVT::v4i32, Legal);
1017 setOperationAction(ISD::BITREVERSE, MVT::v16i8, Custom);
1018 setOperationAction(ISD::CTLZ, MVT::v16i8, Custom);
1019 setOperationAction(ISD::CTLZ, MVT::v8i16, Custom);
1020 setOperationAction(ISD::CTLZ, MVT::v4i32, Custom);
1021 setOperationAction(ISD::CTLZ, MVT::v2i64, Custom);
1024 setOperationAction(ISD::ADD, MVT::i16, Custom);
1025 setOperationAction(ISD::ADD, MVT::i32, Custom);
1026 setOperationAction(ISD::SUB, MVT::i16, Custom);
1027 setOperationAction(ISD::SUB, MVT::i32, Custom);
1032 setOperationAction(ISD::FFLOOR, RoundedTy, Legal);
1033 setOperationAction(ISD::FCEIL, RoundedTy, Legal);
1034 setOperationAction(ISD::FTRUNC, RoundedTy, Legal);
1035 setOperationAction(ISD::FRINT, RoundedTy, Legal);
1036 setOperationAction(ISD::FNEARBYINT, RoundedTy, Legal);
1039 setOperationAction(ISD::SMAX, MVT::v16i8, Legal);
1040 setOperationAction(ISD::SMAX, MVT::v4i32, Legal);
1041 setOperationAction(ISD::UMAX, MVT::v8i16, Legal);
1042 setOperationAction(ISD::UMAX, MVT::v4i32, Legal);
1043 setOperationAction(ISD::SMIN, MVT::v16i8, Legal);
1044 setOperationAction(ISD::SMIN, MVT::v4i32, Legal);
1045 setOperationAction(ISD::UMIN, MVT::v8i16, Legal);
1046 setOperationAction(ISD::UMIN, MVT::v4i32, Legal);
1049 setOperationAction(ISD::MUL, MVT::v4i32, Legal);
1053 setOperationAction(ISD::VSELECT, MVT::v16i8, Legal);
1058 setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, VT, Legal);
1059 setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, VT, Legal);
1074 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v16i8, Custom);
1080 setOperationAction(ISD::ROTL, VT, Custom);
1084 setOperationAction(ISD::BITREVERSE, VT, Custom);
1088 setOperationAction(ISD::BITREVERSE, VT, Custom);
1108 setOperationAction(ISD::FFLOOR, VT, Legal);
1109 setOperationAction(ISD::FCEIL, VT, Legal);
1110 setOperationAction(ISD::FTRUNC, VT, Legal);
1111 setOperationAction(ISD::FRINT, VT, Legal);
1112 setOperationAction(ISD::FNEARBYINT, VT, Legal);
1113 setOperationAction(ISD::FNEG, VT, Custom);
1114 setOperationAction(ISD::FABS, VT, Custom);
1115 setOperationAction(ISD::FCOPYSIGN, VT, Custom);
1122 setOperationAction(ISD::FP_TO_SINT, MVT::v8i32, Legal);
1124 setOperationAction(ISD::SINT_TO_FP, MVT::v8i32, Legal);
1126 setOperationAction(ISD::STRICT_FP_ROUND, MVT::v8f32, Custom);
1129 setOperationAction(ISD::BITCAST, MVT::v32i1, Custom);
1134 setOperationAction(ISD::SRL, VT, Custom);
1135 setOperationAction(ISD::SHL, VT, Custom);
1136 setOperationAction(ISD::SRA, VT, Custom);
1140 setOperationAction(ISD::SIGN_EXTEND, MVT::v8i64, Custom);
1141 setOperationAction(ISD::SIGN_EXTEND, MVT::v16i32, Custom);
1142 setOperationAction(ISD::ZERO_EXTEND, MVT::v8i64, Custom);
1143 setOperationAction(ISD::ZERO_EXTEND, MVT::v16i32, Custom);
1145 setOperationAction(ISD::ROTL, MVT::v8i32, Custom);
1146 setOperationAction(ISD::ROTL, MVT::v16i16, Custom);
1150 setOperationAction(ISD::ROTL, MVT::v32i8, Custom);
1152 setOperationAction(ISD::SELECT, MVT::v4f64, Custom);
1153 setOperationAction(ISD::SELECT, MVT::v4i64, Custom);
1154 setOperationAction(ISD::SELECT, MVT::v8i32, Custom);
1155 setOperationAction(ISD::SELECT, MVT::v16i16, Custom);
1156 setOperationAction(ISD::SELECT, MVT::v32i8, Custom);
1157 setOperationAction(ISD::SELECT, MVT::v8f32, Custom);
1160 setOperationAction(ISD::SIGN_EXTEND, VT, Custom);
1161 setOperationAction(ISD::ZERO_EXTEND, VT, Custom);
1162 setOperationAction(ISD::ANY_EXTEND, VT, Custom);
1165 setOperationAction(ISD::TRUNCATE, MVT::v16i8, Custom);
1166 setOperationAction(ISD::TRUNCATE, MVT::v8i16, Custom);
1167 setOperationAction(ISD::TRUNCATE, MVT::v4i32, Custom);
1168 setOperationAction(ISD::BITREVERSE, MVT::v32i8, Custom);
1171 setOperationAction(ISD::SETCC, VT, Custom);
1172 setOperationAction(ISD::CTPOP, VT, Custom);
1173 setOperationAction(ISD::CTLZ, VT, Custom);
1184 setOperationAction(ISD::FMA, VT, Legal);
1188 setOperationAction(ISD::ADD, VT, HasInt256 ? Legal : Custom);
1189 setOperationAction(ISD::SUB, VT, HasInt256 ? Legal : Custom);
1192 setOperationAction(ISD::MUL, MVT::v4i64, Custom);
1193 setOperationAction(ISD::MUL, MVT::v8i32, HasInt256 ? Legal : Custom);
1194 setOperationAction(ISD::MUL, MVT::v16i16, HasInt256 ? Legal : Custom);
1195 setOperationAction(ISD::MUL, MVT::v32i8, Custom);
1197 setOperationAction(ISD::MULHU, MVT::v8i32, Custom);
1198 setOperationAction(ISD::MULHS, MVT::v8i32, Custom);
1199 setOperationAction(ISD::MULHU, MVT::v16i16, HasInt256 ? Legal : Custom);
1200 setOperationAction(ISD::MULHS, MVT::v16i16, HasInt256 ? Legal : Custom);
1201 setOperationAction(ISD::MULHU, MVT::v32i8, Custom);
1202 setOperationAction(ISD::MULHS, MVT::v32i8, Custom);
1204 setOperationAction(ISD::ABS, MVT::v4i64, Custom);
1205 setOperationAction(ISD::SMAX, MVT::v4i64, Custom);
1206 setOperationAction(ISD::UMAX, MVT::v4i64, Custom);
1207 setOperationAction(ISD::SMIN, MVT::v4i64, Custom);
1208 setOperationAction(ISD::UMIN, MVT::v4i64, Custom);
1210 setOperationAction(ISD::UADDSAT, MVT::v32i8, HasInt256 ? Legal : Custom);
1211 setOperationAction(ISD::SADDSAT, MVT::v32i8, HasInt256 ? Legal : Custom);
1212 setOperationAction(ISD::USUBSAT, MVT::v32i8, HasInt256 ? Legal : Custom);
1213 setOperationAction(ISD::SSUBSAT, MVT::v32i8, HasInt256 ? Legal : Custom);
1214 setOperationAction(ISD::UADDSAT, MVT::v16i16, HasInt256 ? Legal : Custom);
1215 setOperationAction(ISD::SADDSAT, MVT::v16i16, HasInt256 ? Legal : Custom);
1216 setOperationAction(ISD::USUBSAT, MVT::v16i16, HasInt256 ? Legal : Custom);
1217 setOperationAction(ISD::SSUBSAT, MVT::v16i16, HasInt256 ? Legal : Custom);
1220 setOperationAction(ISD::ABS, VT, HasInt256 ? Legal : Custom);
1221 setOperationAction(ISD::SMAX, VT, HasInt256 ? Legal : Custom);
1222 setOperationAction(ISD::UMAX, VT, HasInt256 ? Legal : Custom);
1223 setOperationAction(ISD::SMIN, VT, HasInt256 ? Legal : Custom);
1224 setOperationAction(ISD::UMIN, VT, HasInt256 ? Legal : Custom);
1228 setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, VT, Custom);
1229 setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, VT, Custom);
1235 setOperationAction(ISD::UINT_TO_FP, MVT::v8i32, Custom);
1250 setOperationAction(ISD::MLOAD, VT, Subtarget.hasVLX() ? Legal : Custom);
1251 setOperationAction(ISD::MSTORE, VT, Legal);
1258 setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Legal);
1264 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
1265 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
1266 setOperationAction(ISD::VSELECT, VT, Custom);
1267 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
1268 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
1269 setOperationAction(ISD::SCALAR_TO_VECTOR, VT, Custom);
1270 setOperationAction(ISD::INSERT_SUBVECTOR, VT, Legal);
1271 setOperationAction(ISD::CONCAT_VECTORS, VT, Custom);
1272 setOperationAction(ISD::STORE, VT, Custom);
1276 setOperationAction(ISD::VSELECT, MVT::v32i8, Legal);
1279 setOperationAction(ISD::MGATHER, MVT::v2f32, Custom);
1280 setOperationAction(ISD::MGATHER, MVT::v2i32, Custom);
1284 setOperationAction(ISD::MGATHER, VT, Custom);
1298 setOperationAction(ISD::SELECT, MVT::v1i1, Custom);
1299 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v1i1, Custom);
1300 setOperationAction(ISD::BUILD_VECTOR, MVT::v1i1, Custom);
1306 setOperationAction(ISD::FP_TO_SINT, MVT::v2i1, Custom);
1307 setOperationAction(ISD::FP_TO_UINT, MVT::v2i1, Custom);
1311 setOperationAction(ISD::LOAD, MVT::v1i1, Custom);
1312 setOperationAction(ISD::LOAD, MVT::v2i1, Custom);
1313 setOperationAction(ISD::LOAD, MVT::v4i1, Custom);
1314 setOperationAction(ISD::LOAD, MVT::v8i1, Custom);
1316 setOperationAction(ISD::STORE, MVT::v1i1, Custom);
1317 setOperationAction(ISD::STORE, MVT::v2i1, Custom);
1318 setOperationAction(ISD::STORE, MVT::v4i1, Custom);
1319 setOperationAction(ISD::STORE, MVT::v8i1, Custom);
1324 setOperationAction(ISD::SIGN_EXTEND, VT, Custom);
1325 setOperationAction(ISD::ZERO_EXTEND, VT, Custom);
1326 setOperationAction(ISD::ANY_EXTEND, VT, Custom);
1330 setOperationAction(ISD::ADD, VT, Custom);
1331 setOperationAction(ISD::SUB, VT, Custom);
1332 setOperationAction(ISD::MUL, VT, Custom);
1333 setOperationAction(ISD::SETCC, VT, Custom);
1334 setOperationAction(ISD::SELECT, VT, Custom);
1335 setOperationAction(ISD::TRUNCATE, VT, Custom);
1336 setOperationAction(ISD::UADDSAT, VT, Custom);
1337 setOperationAction(ISD::SADDSAT, VT, Custom);
1338 setOperationAction(ISD::USUBSAT, VT, Custom);
1339 setOperationAction(ISD::SSUBSAT, VT, Custom);
1341 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
1342 setOperationAction(ISD::CONCAT_VECTORS, VT, Custom);
1343 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
1344 setOperationAction(ISD::INSERT_SUBVECTOR, VT, Custom);
1345 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
1346 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
1347 setOperationAction(ISD::VSELECT, VT, Expand);
1351 setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Custom);
1372 setOperationAction(ISD::FNEG, VT, Custom);
1373 setOperationAction(ISD::FABS, VT, Custom);
1374 setOperationAction(ISD::FMA, VT, Legal);
1375 setOperationAction(ISD::FCOPYSIGN, VT, Custom);
1378 setOperationAction(ISD::FP_TO_SINT, MVT::v16i32, Legal);
1382 setOperationAction(ISD::FP_TO_UINT, MVT::v16i32, Legal);
1386 setOperationAction(ISD::SINT_TO_FP, MVT::v16i32, Legal);
1387 setOperationAction(ISD::UINT_TO_FP, MVT::v16i32, Legal);
1389 setOperationAction(ISD::STRICT_FP_ROUND, MVT::v16f32, Custom);
1403 setOperationAction(ISD::MLOAD, VT, Custom);
1404 setOperationAction(ISD::MSTORE, VT, Custom);
1408 setOperationAction(ISD::TRUNCATE, MVT::v8i32, Custom);
1409 setOperationAction(ISD::TRUNCATE, MVT::v16i16, Custom);
1410 setOperationAction(ISD::ZERO_EXTEND, MVT::v16i32, Custom);
1411 setOperationAction(ISD::ZERO_EXTEND, MVT::v8i64, Custom);
1412 setOperationAction(ISD::ANY_EXTEND, MVT::v16i32, Custom);
1413 setOperationAction(ISD::ANY_EXTEND, MVT::v8i64, Custom);
1414 setOperationAction(ISD::SIGN_EXTEND, MVT::v16i32, Custom);
1415 setOperationAction(ISD::SIGN_EXTEND, MVT::v8i64, Custom);
1418 setOperationAction(ISD::ANY_EXTEND, MVT::v8i8, Custom);
1419 setOperationAction(ISD::ZERO_EXTEND, MVT::v8i8, Custom);
1420 setOperationAction(ISD::SIGN_EXTEND, MVT::v8i8, Custom);
1423 setOperationAction(ISD::FFLOOR, VT, Legal);
1424 setOperationAction(ISD::FCEIL, VT, Legal);
1425 setOperationAction(ISD::FTRUNC, VT, Legal);
1426 setOperationAction(ISD::FRINT, VT, Legal);
1427 setOperationAction(ISD::FNEARBYINT, VT, Legal);
1429 setOperationAction(ISD::SELECT, VT, Custom);
1434 setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, VT, Custom);
1435 setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, VT, Custom);
1438 setOperationAction(ISD::CONCAT_VECTORS, MVT::v8f64, Custom);
1439 setOperationAction(ISD::CONCAT_VECTORS, MVT::v8i64, Custom);
1440 setOperationAction(ISD::CONCAT_VECTORS, MVT::v16f32, Custom);
1441 setOperationAction(ISD::CONCAT_VECTORS, MVT::v16i32, Custom);
1443 setOperationAction(ISD::MUL, MVT::v8i64, Custom);
1444 setOperationAction(ISD::MUL, MVT::v16i32, Legal);
1446 setOperationAction(ISD::MULHU, MVT::v16i32, Custom);
1447 setOperationAction(ISD::MULHS, MVT::v16i32, Custom);
1450 setOperationAction(ISD::SMAX, VT, Legal);
1451 setOperationAction(ISD::UMAX, VT, Legal);
1452 setOperationAction(ISD::SMIN, VT, Legal);
1453 setOperationAction(ISD::UMIN, VT, Legal);
1454 setOperationAction(ISD::ABS, VT, Legal);
1455 setOperationAction(ISD::SRL, VT, Custom);
1456 setOperationAction(ISD::SHL, VT, Custom);
1457 setOperationAction(ISD::SRA, VT, Custom);
1458 setOperationAction(ISD::CTPOP, VT, Custom);
1459 setOperationAction(ISD::ROTL, VT, Custom);
1460 setOperationAction(ISD::ROTR, VT, Custom);
1461 setOperationAction(ISD::SETCC, VT, Custom);
1462 setOperationAction(ISD::SELECT, VT, Custom);
1471 setOperationAction(ISD::SINT_TO_FP, MVT::v8i64, Legal);
1472 setOperationAction(ISD::UINT_TO_FP, MVT::v8i64, Legal);
1473 setOperationAction(ISD::FP_TO_SINT, MVT::v8i64, Legal);
1474 setOperationAction(ISD::FP_TO_UINT, MVT::v8i64, Legal);
1476 setOperationAction(ISD::MUL, MVT::v8i64, Legal);
1482 setOperationAction(ISD::CTLZ, VT, Legal);
1488 setOperationAction(ISD::CTPOP, VT, Legal);
1496 setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Legal);
1499 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
1500 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
1501 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
1502 setOperationAction(ISD::VSELECT, VT, Custom);
1503 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
1504 setOperationAction(ISD::SCALAR_TO_VECTOR, VT, Custom);
1505 setOperationAction(ISD::INSERT_SUBVECTOR, VT, Legal);
1506 setOperationAction(ISD::MLOAD, VT, Legal);
1507 setOperationAction(ISD::MSTORE, VT, Legal);
1508 setOperationAction(ISD::MGATHER, VT, Custom);
1509 setOperationAction(ISD::MSCATTER, VT, Custom);
1513 setOperationAction(ISD::BITCAST, MVT::v32i16, Custom);
1514 setOperationAction(ISD::BITCAST, MVT::v64i8, Custom);
1517 setOperationAction(ISD::BITREVERSE, MVT::v8i64, Custom);
1518 setOperationAction(ISD::BITREVERSE, MVT::v16i32, Custom);
1523 setOperationAction(ISD::FSHL, VT, Custom);
1524 setOperationAction(ISD::FSHR, VT, Custom);
1537 setOperationAction(ISD::FP_TO_UINT, MVT::v8i32, Legal);
1538 setOperationAction(ISD::FP_TO_UINT, MVT::v4i32, Legal);
1539 setOperationAction(ISD::FP_TO_UINT, MVT::v2i32, Custom);
1540 setOperationAction(ISD::UINT_TO_FP, MVT::v8i32, Legal);
1541 setOperationAction(ISD::UINT_TO_FP, MVT::v4i32, Legal);
1544 setOperationAction(ISD::SMAX, VT, Legal);
1545 setOperationAction(ISD::UMAX, VT, Legal);
1546 setOperationAction(ISD::SMIN, VT, Legal);
1547 setOperationAction(ISD::UMIN, VT, Legal);
1548 setOperationAction(ISD::ABS, VT, Legal);
1552 setOperationAction(ISD::ROTL, VT, Custom);
1553 setOperationAction(ISD::ROTR, VT, Custom);
1557 setOperationAction(ISD::MSCATTER, MVT::v2f32, Custom);
1558 setOperationAction(ISD::MSCATTER, MVT::v2i32, Custom);
1562 setOperationAction(ISD::MSCATTER, VT, Custom);
1566 setOperationAction(ISD::SINT_TO_FP, VT, Legal);
1567 setOperationAction(ISD::UINT_TO_FP, VT, Legal);
1568 setOperationAction(ISD::FP_TO_SINT, VT, Legal);
1569 setOperationAction(ISD::FP_TO_UINT, VT, Legal);
1571 setOperationAction(ISD::MUL, VT, Legal);
1577 setOperationAction(ISD::CTLZ, VT, Legal);
1583 setOperationAction(ISD::CTPOP, VT, Legal);
1595 setOperationAction(ISD::ADD, VT, Custom);
1596 setOperationAction(ISD::SUB, VT, Custom);
1597 setOperationAction(ISD::MUL, VT, Custom);
1598 setOperationAction(ISD::VSELECT, VT, Expand);
1599 setOperationAction(ISD::UADDSAT, VT, Custom);
1600 setOperationAction(ISD::SADDSAT, VT, Custom);
1601 setOperationAction(ISD::USUBSAT, VT, Custom);
1602 setOperationAction(ISD::SSUBSAT, VT, Custom);
1604 setOperationAction(ISD::TRUNCATE, VT, Custom);
1605 setOperationAction(ISD::SETCC, VT, Custom);
1606 setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
1607 setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
1608 setOperationAction(ISD::SELECT, VT, Custom);
1609 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
1610 setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
1613 setOperationAction(ISD::CONCAT_VECTORS, MVT::v32i1, Custom);
1614 setOperationAction(ISD::CONCAT_VECTORS, MVT::v64i1, Custom);
1615 setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v32i1, Custom);
1616 setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v64i1, Custom);
1618 setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Custom);
1621 setOperationAction(ISD::SIGN_EXTEND, MVT::v32i8, Custom);
1622 setOperationAction(ISD::ZERO_EXTEND, MVT::v32i8, Custom);
1623 setOperationAction(ISD::ANY_EXTEND, MVT::v32i8, Custom);
1634 setOperationAction(ISD::SIGN_EXTEND, MVT::v64i8, Custom);
1635 setOperationAction(ISD::ZERO_EXTEND, MVT::v64i8, Custom);
1636 setOperationAction(ISD::ANY_EXTEND, MVT::v64i8, Custom);
1638 setOperationAction(ISD::MUL, MVT::v32i16, Legal);
1639 setOperationAction(ISD::MUL, MVT::v64i8, Custom);
1640 setOperationAction(ISD::MULHS, MVT::v32i16, Legal);
1641 setOperationAction(ISD::MULHU, MVT::v32i16, Legal);
1642 setOperationAction(ISD::MULHS, MVT::v64i8, Custom);
1643 setOperationAction(ISD::MULHU, MVT::v64i8, Custom);
1644 setOperationAction(ISD::CONCAT_VECTORS, MVT::v32i16, Custom);
1645 setOperationAction(ISD::CONCAT_VECTORS, MVT::v64i8, Custom);
1646 setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v32i16, Legal);
1647 setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v64i8, Legal);
1648 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v32i16, Custom);
1649 setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v64i8, Custom);
1650 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v32i16, Custom);
1651 setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v64i8, Custom);
1652 setOperationAction(ISD::SIGN_EXTEND, MVT::v32i16, Custom);
1653 setOperationAction(ISD::ZERO_EXTEND, MVT::v32i16, Custom);
1654 setOperationAction(ISD::ANY_EXTEND, MVT::v32i16, Custom);
1655 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v32i16, Custom);
1656 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v64i8, Custom);
1657 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v32i16, Custom);
1658 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v64i8, Custom);
1659 setOperationAction(ISD::TRUNCATE, MVT::v32i8, Custom);
1660 setOperationAction(ISD::BITREVERSE, MVT::v64i8, Custom);
1662 setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, MVT::v32i16, Custom);
1663 setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, MVT::v32i16, Custom);
1668 setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
1669 setOperationAction(ISD::VSELECT, VT, Custom);
1670 setOperationAction(ISD::ABS, VT, Legal);
1671 setOperationAction(ISD::SRL, VT, Custom);
1672 setOperationAction(ISD::SHL, VT, Custom);
1673 setOperationAction(ISD::SRA, VT, Custom);
1674 setOperationAction(ISD::MLOAD, VT, Legal);
1675 setOperationAction(ISD::MSTORE, VT, Legal);
1676 setOperationAction(ISD::CTPOP, VT, Custom);
1677 setOperationAction(ISD::CTLZ, VT, Custom);
1678 setOperationAction(ISD::SMAX, VT, Legal);
1679 setOperationAction(ISD::UMAX, VT, Legal);
1680 setOperationAction(ISD::SMIN, VT, Legal);
1681 setOperationAction(ISD::UMIN, VT, Legal);
1682 setOperationAction(ISD::SETCC, VT, Custom);
1683 setOperationAction(ISD::UADDSAT, VT, Legal);
1684 setOperationAction(ISD::SADDSAT, VT, Legal);
1685 setOperationAction(ISD::USUBSAT, VT, Legal);
1686 setOperationAction(ISD::SSUBSAT, VT, Legal);
1687 setOperationAction(ISD::SELECT, VT, Custom);
1701 setOperationAction(ISD::CTPOP, VT, Legal);
1705 setOperationAction(ISD::FSHL, MVT::v32i16, Custom);
1706 setOperationAction(ISD::FSHR, MVT::v32i16, Custom);
1712 setOperationAction(ISD::MLOAD, VT, Subtarget.hasVLX() ? Legal : Custom);
1713 setOperationAction(ISD::MSTORE, VT, Subtarget.hasVLX() ? Legal : Custom);
1722 setOperationAction(ISD::CTPOP, VT, Legal);
1742 setOperationAction(ISD::SINT_TO_FP, MVT::v2f32, Custom);
1746 setOperationAction(ISD::FP_TO_SINT, MVT::v2f32, Custom);
1747 setOperationAction(ISD::FP_TO_UINT, MVT::v2f32, Custom);
1759 setOperationAction(ISD::FSHL, VT, Custom);
1760 setOperationAction(ISD::FSHR, VT, Custom);
1764 setOperationAction(ISD::TRUNCATE, MVT::v16i32, Custom);
1765 setOperationAction(ISD::TRUNCATE, MVT::v8i64, Custom);
1766 setOperationAction(ISD::TRUNCATE, MVT::v16i64, Custom);
1770 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
1771 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::Other, Custom);
1772 setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
1774 setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::i64, Custom);
1787 setOperationAction(ISD::SADDO, VT, Custom);
1788 setOperationAction(ISD::UADDO, VT, Custom);
1789 setOperationAction(ISD::SSUBO, VT, Custom);
1790 setOperationAction(ISD::USUBO, VT, Custom);
1791 setOperationAction(ISD::SMULO, VT, Custom);
1792 setOperationAction(ISD::UMULO, VT, Custom);
1795 setOperationAction(ISD::ADDCARRY, VT, Custom);
1796 setOperationAction(ISD::SUBCARRY, VT, Custom);
1797 setOperationAction(ISD::SETCCCARRY, VT, Custom);
1811 setOperationAction(ISD::FSINCOS, MVT::f64, Custom);
1812 setOperationAction(ISD::FSINCOS, MVT::f32, Custom);
1816 setOperationAction(ISD::SDIV, MVT::i128, Custom);
1817 setOperationAction(ISD::UDIV, MVT::i128, Custom);
1818 setOperationAction(ISD::SREM, MVT::i128, Custom);
1819 setOperationAction(ISD::UREM, MVT::i128, Custom);
1820 setOperationAction(ISD::SDIVREM, MVT::i128, Custom);
1821 setOperationAction(ISD::UDIVREM, MVT::i128, Custom);
1834 setOperationAction(Op, MVT::f32, Promote);
lib/Target/XCore/XCoreISelLowering.cpp 91 setOperationAction(ISD::BR_CC, MVT::i32, Expand);
92 setOperationAction(ISD::SELECT_CC, MVT::i32, Expand);
95 setOperationAction(ISD::ADD, MVT::i64, Custom);
96 setOperationAction(ISD::SUB, MVT::i64, Custom);
97 setOperationAction(ISD::SMUL_LOHI, MVT::i32, Custom);
98 setOperationAction(ISD::UMUL_LOHI, MVT::i32, Custom);
99 setOperationAction(ISD::MULHS, MVT::i32, Expand);
100 setOperationAction(ISD::MULHU, MVT::i32, Expand);
101 setOperationAction(ISD::SHL_PARTS, MVT::i32, Expand);
102 setOperationAction(ISD::SRA_PARTS, MVT::i32, Expand);
103 setOperationAction(ISD::SRL_PARTS, MVT::i32, Expand);
106 setOperationAction(ISD::CTPOP, MVT::i32, Expand);
107 setOperationAction(ISD::ROTL , MVT::i32, Expand);
108 setOperationAction(ISD::ROTR , MVT::i32, Expand);
110 setOperationAction(ISD::TRAP, MVT::Other, Legal);
113 setOperationAction(ISD::BR_JT, MVT::Other, Custom);
115 setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
116 setOperationAction(ISD::BlockAddress, MVT::i32 , Custom);
119 setOperationAction(ISD::ConstantPool, MVT::i32, Custom);
132 setOperationAction(ISD::LOAD, MVT::i32, Custom);
133 setOperationAction(ISD::STORE, MVT::i32, Custom);
136 setOperationAction(ISD::VAEND, MVT::Other, Expand);
137 setOperationAction(ISD::VACOPY, MVT::Other, Expand);
138 setOperationAction(ISD::VAARG, MVT::Other, Custom);
139 setOperationAction(ISD::VASTART, MVT::Other, Custom);
142 setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
143 setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
144 setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Expand);
147 setOperationAction(ISD::EH_RETURN, MVT::Other, Custom);
148 setOperationAction(ISD::FRAME_TO_ARGS_OFFSET, MVT::i32, Custom);
153 setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Custom);
154 setOperationAction(ISD::ATOMIC_LOAD, MVT::i32, Custom);
155 setOperationAction(ISD::ATOMIC_STORE, MVT::i32, Custom);
158 setOperationAction(ISD::INIT_TRAMPOLINE, MVT::Other, Custom);
159 setOperationAction(ISD::ADJUST_TRAMPOLINE, MVT::Other, Custom);
162 setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);