Lines Matching refs:Opcode
13 Function, LibCall, Opcode, SigRef, Signature, StackSlot, UserExternalName, UserFuncName, Value,
33 opcode: Opcode, in insert_opcode() argument
77 call_opcode: Opcode, in insert_call_to_function() argument
89 Opcode::Call => builder.ins().call(func_ref, &actuals), in insert_call_to_function()
90 Opcode::ReturnCall => builder.ins().return_call(func_ref, &actuals), in insert_call_to_function()
91 Opcode::CallIndirect => { in insert_call_to_function()
95 Opcode::ReturnCallIndirect => { in insert_call_to_function()
116 opcode: Opcode, in insert_call() argument
120 assert!(matches!(opcode, Opcode::Call | Opcode::CallIndirect)); in insert_call()
128 _opcode: Opcode, in insert_stack_load() argument
154 _opcode: Opcode, in insert_stack_store() argument
181 opcode: Opcode, in insert_cmp() argument
191 let res = if opcode == Opcode::Fcmp { in insert_cmp()
236 _opcode: Opcode, in insert_const() argument
275 opcode: Opcode, in insert_load_store() argument
279 if opcode == Opcode::Bitcast { in insert_load_store()
286 let is_atomic = [Opcode::AtomicLoad, Opcode::AtomicStore].contains(&opcode); in insert_load_store()
333 _: Opcode, in insert_atomic_rmw() argument
363 _: Opcode, in insert_atomic_cas() argument
393 opcode: Opcode, in insert_shuffle() argument
414 assert_eq!(opcode, Opcode::Shuffle); in insert_shuffle()
426 opcode: Opcode, in insert_ins_ext_lane() argument
438 Opcode::Insertlane => { in insert_ins_ext_lane()
442 Opcode::Extractlane => builder.ins().extractlane(lhs, lane), in insert_ins_ext_lane()
455 Opcode,
474 fn valid_for_target(triple: &Triple, op: Opcode, args: &[Type], rets: &[Type]) -> bool { in valid_for_target() argument
478 Opcode::FcvtToUintSat | Opcode::FcvtToSintSat => { in valid_for_target()
504 Opcode::Bitcast => { in valid_for_target()
520 Opcode::StackSwitch => return false, in valid_for_target()
531 (Opcode::UmulOverflow | Opcode::SmulOverflow, &[I128, I128]), in valid_for_target()
532 (Opcode::Imul, &[I8X16, I8X16]), in valid_for_target()
534 (Opcode::Udiv | Opcode::Sdiv, &[I128, I128]), in valid_for_target()
536 (Opcode::Urem | Opcode::Srem, &[I128, I128]), in valid_for_target()
539 Opcode::Smin | Opcode::Umin | Opcode::Smax | Opcode::Umax, in valid_for_target()
543 (Opcode::Cls, &[I8], &[I8]), in valid_for_target()
544 (Opcode::Cls, &[I16], &[I16]), in valid_for_target()
545 (Opcode::Cls, &[I32], &[I32]), in valid_for_target()
546 (Opcode::Cls, &[I64], &[I64]), in valid_for_target()
547 (Opcode::Cls, &[I128], &[I128]), in valid_for_target()
549 (Opcode::Bitselect, &[_, _, _], &[F32 | F64]), in valid_for_target()
553 Opcode::FcvtToUint in valid_for_target()
554 | Opcode::FcvtToUintSat in valid_for_target()
555 | Opcode::FcvtToSint in valid_for_target()
556 | Opcode::FcvtToSintSat, in valid_for_target()
560 (Opcode::FcvtToUint | Opcode::FcvtToSint, &[F32X4], &[I32X4]), in valid_for_target()
562 Opcode::FcvtToUint in valid_for_target()
563 | Opcode::FcvtToUintSat in valid_for_target()
564 | Opcode::FcvtToSint in valid_for_target()
565 | Opcode::FcvtToSintSat, in valid_for_target()
570 (Opcode::FcvtFromUint, &[I128], &[F32 | F64]), in valid_for_target()
572 (Opcode::FcvtFromUint, &[I64X2], &[F64X2]), in valid_for_target()
574 (Opcode::FcvtFromSint, &[I128], &[F32 | F64]), in valid_for_target()
575 (Opcode::FcvtFromSint, &[I64X2], &[F64X2]), in valid_for_target()
577 Opcode::Umulhi | Opcode::Smulhi, in valid_for_target()
581 Opcode::UaddSat | Opcode::SaddSat | Opcode::UsubSat | Opcode::SsubSat, in valid_for_target()
584 (Opcode::Fcopysign, &([F32X4, F32X4] | [F64X2, F64X2])), in valid_for_target()
585 (Opcode::Popcnt, &([I8X16] | [I16X8] | [I32X4] | [I64X2])), in valid_for_target()
587 Opcode::Umax | Opcode::Smax | Opcode::Umin | Opcode::Smin, in valid_for_target()
591 (Opcode::Bitcast, &[I128], &[_]), in valid_for_target()
592 (Opcode::Bitcast, &[_], &[I128]), in valid_for_target()
593 (Opcode::Uunarrow), in valid_for_target()
594 (Opcode::Snarrow | Opcode::Unarrow, &[I64X2, I64X2]), in valid_for_target()
595 (Opcode::SqmulRoundSat, &[I32X4, I32X4]), in valid_for_target()
597 (Opcode::Icmp, &[I64X2, I64X2]), in valid_for_target()
599 (Opcode::IaddPairwise), in valid_for_target()
602 (Opcode::Select, &[_, I128, I128]), in valid_for_target()
606 Opcode::StackStore, in valid_for_target()
610 Opcode::StackLoad, in valid_for_target()
616 Opcode::Sshr | Opcode::Ushr | Opcode::Ishl, in valid_for_target()
620 Opcode::Rotr | Opcode::Rotl, in valid_for_target()
631 (Opcode::UmulOverflow | Opcode::SmulOverflow, &[I128, I128]), in valid_for_target()
633 (Opcode::Udiv | Opcode::Sdiv, &[I128, I128]), in valid_for_target()
635 (Opcode::Urem | Opcode::Srem, &[I128, I128]), in valid_for_target()
638 Opcode::Smin | Opcode::Umin | Opcode::Smax | Opcode::Umax, in valid_for_target()
642 (Opcode::Bnot, &[F32 | F64]), in valid_for_target()
644 Opcode::Band in valid_for_target()
645 | Opcode::Bor in valid_for_target()
646 | Opcode::Bxor in valid_for_target()
647 | Opcode::BandNot in valid_for_target()
648 | Opcode::BorNot in valid_for_target()
649 | Opcode::BxorNot, in valid_for_target()
653 (Opcode::Bitselect, &[I128, I128, I128]), in valid_for_target()
656 Opcode::FcvtToUint in valid_for_target()
657 | Opcode::FcvtToUintSat in valid_for_target()
658 | Opcode::FcvtToSint in valid_for_target()
659 | Opcode::FcvtToSintSat, in valid_for_target()
665 Opcode::FcvtFromUint | Opcode::FcvtFromSint, in valid_for_target()
670 Opcode::Umulhi | Opcode::Smulhi, in valid_for_target()
673 (Opcode::Popcnt, &[I16X8 | I32X4 | I64X2]), in valid_for_target()
676 (Opcode::Select, &[I8, I128, I128]), in valid_for_target()
678 (Opcode::Bitcast, &[I128], &[_]), in valid_for_target()
679 (Opcode::Bitcast, &[_], &[I128]), in valid_for_target()
682 Opcode::Sshr | Opcode::Ushr | Opcode::Ishl, in valid_for_target()
686 Opcode::Rotr | Opcode::Rotl, in valid_for_target()
690 (Opcode::Bitselect, &[_, _, _], &[F32 | F64]), in valid_for_target()
691 (Opcode::VhighBits, &[F32X4 | F64X2]), in valid_for_target()
700 (Opcode::UaddOverflow | Opcode::SaddOverflow), in valid_for_target()
701 (Opcode::UsubOverflow | Opcode::SsubOverflow), in valid_for_target()
702 (Opcode::UmulOverflow | Opcode::SmulOverflow), in valid_for_target()
704 Opcode::Udiv | Opcode::Sdiv | Opcode::Urem | Opcode::Srem, in valid_for_target()
707 (Opcode::Bnot, &[F32 | F64]), in valid_for_target()
709 Opcode::Band in valid_for_target()
710 | Opcode::Bor in valid_for_target()
711 | Opcode::Bxor in valid_for_target()
712 | Opcode::BandNot in valid_for_target()
713 | Opcode::BorNot in valid_for_target()
714 | Opcode::BxorNot, in valid_for_target()
718 Opcode::FcvtToUint in valid_for_target()
719 | Opcode::FcvtToUintSat in valid_for_target()
720 | Opcode::FcvtToSint in valid_for_target()
721 | Opcode::FcvtToSintSat, in valid_for_target()
726 Opcode::FcvtFromUint | Opcode::FcvtFromSint, in valid_for_target()
730 (Opcode::SsubSat | Opcode::SaddSat, &[I64X2, I64X2]), in valid_for_target()
732 (Opcode::Bitcast, &[I128], &[_]), in valid_for_target()
733 (Opcode::Bitcast, &[_], &[I128]), in valid_for_target()
735 (Opcode::Bitselect, &[_, _, _], &[F32 | F64]), in valid_for_target()
745 (Opcode::UaddOverflow | Opcode::SaddOverflow), in valid_for_target()
746 (Opcode::UsubOverflow | Opcode::SsubOverflow), in valid_for_target()
747 (Opcode::UmulOverflow | Opcode::SmulOverflow), in valid_for_target()
750 Opcode::Udiv | Opcode::Sdiv | Opcode::Urem | Opcode::Srem, in valid_for_target()
754 (Opcode::Iabs, &[I128]), in valid_for_target()
756 (Opcode::Bitselect, &[I128, I128, I128]), in valid_for_target()
759 Opcode::FcvtToUint | Opcode::FcvtToSint, in valid_for_target()
764 Opcode::FcvtToUintSat | Opcode::FcvtToSintSat, in valid_for_target()
770 Opcode::FcvtFromUint | Opcode::FcvtFromSint, in valid_for_target()
776 Opcode::SelectSpectreGuard, in valid_for_target()
781 (Opcode::Bitselect, &[_, _, _], &[F32 | F64]), in valid_for_target()
783 Opcode::Rotr | Opcode::Rotl, in valid_for_target()
793 type OpcodeSignature = (Opcode, Vec<Type>, Vec<Type>);
810 .map(|s| Opcode::from_str(s).expect("Unrecoginzed opcode"))
814 Opcode::all()
819 Opcode::BrTable
820 | Opcode::Brif
821 | Opcode::Jump
822 | Opcode::Return
823 | Opcode::ReturnCall
824 | Opcode::ReturnCallIndirect
825 | Opcode::TryCall
826 | Opcode::TryCallIndirect => false,
829 Opcode::Iconst => false,
833 Opcode::ExtractVector => false,
897 (Opcode::Debugtrap),
898 (Opcode::Trap),
899 (Opcode::Trapz),
900 (Opcode::Trapnz),
901 (Opcode::CallIndirect, &[I32]),
902 (Opcode::FuncAddr),
903 (Opcode::X86Pshufb),
904 (Opcode::AvgRound),
905 (Opcode::Uload8x8),
906 (Opcode::Sload8x8),
907 (Opcode::Uload16x4),
908 (Opcode::Sload16x4),
909 (Opcode::Uload32x2),
910 (Opcode::Sload32x2),
911 (Opcode::StackAddr),
912 (Opcode::DynamicStackLoad),
913 (Opcode::DynamicStackStore),
914 (Opcode::DynamicStackAddr),
915 (Opcode::GlobalValue),
916 (Opcode::SymbolValue),
917 (Opcode::TlsValue),
918 (Opcode::GetPinnedReg),
919 (Opcode::SetPinnedReg),
920 (Opcode::GetFramePointer),
921 (Opcode::GetStackPointer),
922 (Opcode::GetReturnAddress),
923 (Opcode::Blendv),
924 (Opcode::IcmpImm),
925 (Opcode::X86Pmulhrsw),
926 (Opcode::IaddImm),
927 (Opcode::ImulImm),
928 (Opcode::UdivImm),
929 (Opcode::SdivImm),
930 (Opcode::UremImm),
931 (Opcode::SremImm),
932 (Opcode::IrsubImm),
933 (Opcode::UaddOverflowCin),
934 (Opcode::SaddOverflowCin),
935 (Opcode::UaddOverflowTrap),
936 (Opcode::UsubOverflowBin),
937 (Opcode::SsubOverflowBin),
938 (Opcode::BandImm),
939 (Opcode::BorImm),
940 (Opcode::BxorImm),
941 (Opcode::RotlImm),
942 (Opcode::RotrImm),
943 (Opcode::IshlImm),
944 (Opcode::UshrImm),
945 (Opcode::SshrImm),
946 (Opcode::ScalarToVector),
947 (Opcode::X86Pmaddubsw),
948 (Opcode::X86Cvtt2dq),
949 (Opcode::Umulhi, &[I128, I128], &[I128]),
950 (Opcode::Smulhi, &[I128, I128], &[I128]),
952 (Opcode::Iconcat, &[I32, I32], &[I64]),
953 (Opcode::Iconcat, &[I16, I16], &[I32]),
954 (Opcode::Iconcat, &[I8, I8], &[I16]),
956 (Opcode::Isplit, &[I64], &[I32, I32]),
957 (Opcode::Isplit, &[I32], &[I16, I16]),
958 (Opcode::Isplit, &[I16], &[I8, I8]),
959 (Opcode::Fmin, &[F32X4, F32X4], &[F32X4]),
960 (Opcode::Fmin, &[F64X2, F64X2], &[F64X2]),
961 (Opcode::Fmax, &[F32X4, F32X4], &[F32X4]),
962 (Opcode::Fmax, &[F64X2, F64X2], &[F64X2]),
963 (Opcode::FcvtToUintSat, &[F32X4], &[I8]),
964 (Opcode::FcvtToUintSat, &[F64X2], &[I8]),
965 (Opcode::FcvtToUintSat, &[F32X4], &[I16]),
966 (Opcode::FcvtToUintSat, &[F64X2], &[I16]),
967 (Opcode::FcvtToUintSat, &[F32X4], &[I32]),
968 (Opcode::FcvtToUintSat, &[F64X2], &[I32]),
969 (Opcode::FcvtToUintSat, &[F32X4], &[I64]),
970 (Opcode::FcvtToUintSat, &[F64X2], &[I64]),
971 (Opcode::FcvtToUintSat, &[F32X4], &[I128]),
972 (Opcode::FcvtToUintSat, &[F64X2], &[I128]),
973 (Opcode::FcvtToUintSat, &[F32], &[I8X16]),
974 (Opcode::FcvtToUintSat, &[F64], &[I8X16]),
975 (Opcode::FcvtToUintSat, &[F32X4], &[I8X16]),
976 (Opcode::FcvtToUintSat, &[F64X2], &[I8X16]),
977 (Opcode::FcvtToUintSat, &[F32], &[I16X8]),
978 (Opcode::FcvtToUintSat, &[F64], &[I16X8]),
979 (Opcode::FcvtToUintSat, &[F32X4], &[I16X8]),
980 (Opcode::FcvtToUintSat, &[F64X2], &[I16X8]),
981 (Opcode::FcvtToUintSat, &[F32], &[I32X4]),
982 (Opcode::FcvtToUintSat, &[F64], &[I32X4]),
983 (Opcode::FcvtToUintSat, &[F64X2], &[I32X4]),
984 (Opcode::FcvtToUintSat, &[F32], &[I64X2]),
985 (Opcode::FcvtToUintSat, &[F64], &[I64X2]),
986 (Opcode::FcvtToUintSat, &[F32X4], &[I64X2]),
987 (Opcode::FcvtToSintSat, &[F32X4], &[I8]),
988 (Opcode::FcvtToSintSat, &[F64X2], &[I8]),
989 (Opcode::FcvtToSintSat, &[F32X4], &[I16]),
990 (Opcode::FcvtToSintSat, &[F64X2], &[I16]),
991 (Opcode::FcvtToSintSat, &[F32X4], &[I32]),
992 (Opcode::FcvtToSintSat, &[F64X2], &[I32]),
993 (Opcode::FcvtToSintSat, &[F32X4], &[I64]),
994 (Opcode::FcvtToSintSat, &[F64X2], &[I64]),
995 (Opcode::FcvtToSintSat, &[F32X4], &[I128]),
996 (Opcode::FcvtToSintSat, &[F64X2], &[I128]),
997 (Opcode::FcvtToSintSat, &[F32], &[I8X16]),
998 (Opcode::FcvtToSintSat, &[F64], &[I8X16]),
999 (Opcode::FcvtToSintSat, &[F32X4], &[I8X16]),
1000 (Opcode::FcvtToSintSat, &[F64X2], &[I8X16]),
1001 (Opcode::FcvtToSintSat, &[F32], &[I16X8]),
1002 (Opcode::FcvtToSintSat, &[F64], &[I16X8]),
1003 (Opcode::FcvtToSintSat, &[F32X4], &[I16X8]),
1004 (Opcode::FcvtToSintSat, &[F64X2], &[I16X8]),
1005 (Opcode::FcvtToSintSat, &[F32], &[I32X4]),
1006 (Opcode::FcvtToSintSat, &[F64], &[I32X4]),
1007 (Opcode::FcvtToSintSat, &[F64X2], &[I32X4]),
1008 (Opcode::FcvtToSintSat, &[F32], &[I64X2]),
1009 (Opcode::FcvtToSintSat, &[F64], &[I64X2]),
1010 (Opcode::FcvtToSintSat, &[F32X4], &[I64X2]),
1011 (Opcode::FcvtFromUint, &[I8X16], &[F32]),
1012 (Opcode::FcvtFromUint, &[I16X8], &[F32]),
1013 (Opcode::FcvtFromUint, &[I32X4], &[F32]),
1014 (Opcode::FcvtFromUint, &[I64X2], &[F32]),
1015 (Opcode::FcvtFromUint, &[I8X16], &[F64]),
1016 (Opcode::FcvtFromUint, &[I16X8], &[F64]),
1017 (Opcode::FcvtFromUint, &[I32X4], &[F64]),
1018 (Opcode::FcvtFromUint, &[I64X2], &[F64]),
1019 (Opcode::FcvtFromUint, &[I8], &[F32X4]),
1020 (Opcode::FcvtFromUint, &[I16], &[F32X4]),
1021 (Opcode::FcvtFromUint, &[I32], &[F32X4]),
1022 (Opcode::FcvtFromUint, &[I64], &[F32X4]),
1023 (Opcode::FcvtFromUint, &[I128], &[F32X4]),
1024 (Opcode::FcvtFromUint, &[I8X16], &[F32X4]),
1025 (Opcode::FcvtFromUint, &[I16X8], &[F32X4]),
1026 (Opcode::FcvtFromUint, &[I64X2], &[F32X4]),
1027 (Opcode::FcvtFromUint, &[I8], &[F64X2]),
1028 (Opcode::FcvtFromUint, &[I16], &[F64X2]),
1029 (Opcode::FcvtFromUint, &[I32], &[F64X2]),
1030 (Opcode::FcvtFromUint, &[I64], &[F64X2]),
1031 (Opcode::FcvtFromUint, &[I128], &[F64X2]),
1032 (Opcode::FcvtFromUint, &[I8X16], &[F64X2]),
1033 (Opcode::FcvtFromUint, &[I16X8], &[F64X2]),
1034 (Opcode::FcvtFromUint, &[I32X4], &[F64X2]),
1035 (Opcode::FcvtFromSint, &[I8X16], &[F32]),
1036 (Opcode::FcvtFromSint, &[I16X8], &[F32]),
1037 (Opcode::FcvtFromSint, &[I32X4], &[F32]),
1038 (Opcode::FcvtFromSint, &[I64X2], &[F32]),
1039 (Opcode::FcvtFromSint, &[I8X16], &[F64]),
1040 (Opcode::FcvtFromSint, &[I16X8], &[F64]),
1041 (Opcode::FcvtFromSint, &[I32X4], &[F64]),
1042 (Opcode::FcvtFromSint, &[I64X2], &[F64]),
1043 (Opcode::FcvtFromSint, &[I8], &[F32X4]),
1044 (Opcode::FcvtFromSint, &[I16], &[F32X4]),
1045 (Opcode::FcvtFromSint, &[I32], &[F32X4]),
1046 (Opcode::FcvtFromSint, &[I64], &[F32X4]),
1047 (Opcode::FcvtFromSint, &[I128], &[F32X4]),
1048 (Opcode::FcvtFromSint, &[I8X16], &[F32X4]),
1049 (Opcode::FcvtFromSint, &[I16X8], &[F32X4]),
1050 (Opcode::FcvtFromSint, &[I64X2], &[F32X4]),
1051 (Opcode::FcvtFromSint, &[I8], &[F64X2]),
1052 (Opcode::FcvtFromSint, &[I16], &[F64X2]),
1053 (Opcode::FcvtFromSint, &[I32], &[F64X2]),
1054 (Opcode::FcvtFromSint, &[I64], &[F64X2]),
1055 (Opcode::FcvtFromSint, &[I128], &[F64X2]),
1056 (Opcode::FcvtFromSint, &[I8X16], &[F64X2]),
1057 (Opcode::FcvtFromSint, &[I16X8], &[F64X2]),
1058 (Opcode::FcvtFromSint, &[I32X4], &[F64X2]),
1061 (Opcode::AtomicRmw, _, &[I128]),
1062 (Opcode::AtomicCas, _, &[I128]),
1063 (Opcode::AtomicLoad, _, &[I128]),
1064 (Opcode::AtomicStore, &[I128, _], _),
1065 (Opcode::SequencePoint),
1553 BlockTerminator::TailCall(_) => Opcode::ReturnCall, in insert_terminator()
1554 BlockTerminator::TailCallIndirect(_) => Opcode::ReturnCallIndirect, in insert_terminator()