Lines Matching refs:src1

755               struct mi_value src0, struct mi_value src1,
762 dw[1] = _mi_math_load_src(b, MI_ALU_SRCB, &src1);
768 mi_value_unref(b, src1);
795 mi_iadd(struct mi_builder *b, struct mi_value src0, struct mi_value src1)
797 if (src0.type == MI_VALUE_TYPE_IMM && src1.type == MI_VALUE_TYPE_IMM)
798 return mi_imm(mi_value_to_u64(src0) + mi_value_to_u64(src1));
800 return mi_math_binop(b, MI_ALU_ADD, src0, src1,
815 mi_isub(struct mi_builder *b, struct mi_value src0, struct mi_value src1)
817 if (src0.type == MI_VALUE_TYPE_IMM && src1.type == MI_VALUE_TYPE_IMM)
818 return mi_imm(mi_value_to_u64(src0) - mi_value_to_u64(src1));
820 return mi_math_binop(b, MI_ALU_SUB, src0, src1,
825 mi_ieq(struct mi_builder *b, struct mi_value src0, struct mi_value src1)
827 if (src0.type == MI_VALUE_TYPE_IMM && src1.type == MI_VALUE_TYPE_IMM)
828 return mi_imm(mi_value_to_u64(src0) == mi_value_to_u64(src1) ? ~0ull : 0);
831 return mi_math_binop(b, MI_ALU_SUB, src0, src1,
836 mi_ine(struct mi_builder *b, struct mi_value src0, struct mi_value src1)
838 if (src0.type == MI_VALUE_TYPE_IMM && src1.type == MI_VALUE_TYPE_IMM)
839 return mi_imm(mi_value_to_u64(src0) != mi_value_to_u64(src1) ? ~0ull : 0);
842 return mi_math_binop(b, MI_ALU_SUB, src0, src1,
847 mi_ult(struct mi_builder *b, struct mi_value src0, struct mi_value src1)
849 if (src0.type == MI_VALUE_TYPE_IMM && src1.type == MI_VALUE_TYPE_IMM)
850 return mi_imm(mi_value_to_u64(src0) < mi_value_to_u64(src1) ? ~0ull : 0);
853 return mi_math_binop(b, MI_ALU_SUB, src0, src1,
858 mi_uge(struct mi_builder *b, struct mi_value src0, struct mi_value src1)
860 if (src0.type == MI_VALUE_TYPE_IMM && src1.type == MI_VALUE_TYPE_IMM)
861 return mi_imm(mi_value_to_u64(src0) >= mi_value_to_u64(src1) ? ~0ull : 0);
864 return mi_math_binop(b, MI_ALU_SUB, src0, src1,
869 mi_iand(struct mi_builder *b, struct mi_value src0, struct mi_value src1)
871 if (src0.type == MI_VALUE_TYPE_IMM && src1.type == MI_VALUE_TYPE_IMM)
872 return mi_imm(mi_value_to_u64(src0) & mi_value_to_u64(src1));
874 return mi_math_binop(b, MI_ALU_AND, src0, src1,
900 struct mi_value src0, struct mi_value src1)
902 if (src0.type == MI_VALUE_TYPE_IMM && src1.type == MI_VALUE_TYPE_IMM)
903 return mi_imm(mi_value_to_u64(src0) | mi_value_to_u64(src1));
905 return mi_math_binop(b, MI_ALU_OR, src0, src1,
911 mi_ishl(struct mi_builder *b, struct mi_value src0, struct mi_value src1)
913 if (src1.type == MI_VALUE_TYPE_IMM) {
914 assert(util_is_power_of_two_or_zero(mi_value_to_u64(src1)));
915 assert(mi_value_to_u64(src1) <= 32);
918 if (src0.type == MI_VALUE_TYPE_IMM && src1.type == MI_VALUE_TYPE_IMM)
919 return mi_imm(mi_value_to_u64(src0) << mi_value_to_u64(src1));
921 return mi_math_binop(b, MI_ALU_SHL, src0, src1,
926 mi_ushr(struct mi_builder *b, struct mi_value src0, struct mi_value src1)
928 if (src1.type == MI_VALUE_TYPE_IMM) {
929 assert(util_is_power_of_two_or_zero(mi_value_to_u64(src1)));
930 assert(mi_value_to_u64(src1) <= 32);
933 if (src0.type == MI_VALUE_TYPE_IMM && src1.type == MI_VALUE_TYPE_IMM)
934 return mi_imm(mi_value_to_u64(src0) >> mi_value_to_u64(src1));
936 return mi_math_binop(b, MI_ALU_SHR, src0, src1,
965 mi_ishr(struct mi_builder *b, struct mi_value src0, struct mi_value src1)
967 if (src1.type == MI_VALUE_TYPE_IMM) {
968 assert(util_is_power_of_two_or_zero(mi_value_to_u64(src1)));
969 assert(mi_value_to_u64(src1) <= 32);
972 if (src0.type == MI_VALUE_TYPE_IMM && src1.type == MI_VALUE_TYPE_IMM)
973 return mi_imm((int64_t)mi_value_to_u64(src0) >> mi_value_to_u64(src1));
975 return mi_math_binop(b, MI_ALU_SAR, src0, src1,