Lines Matching refs:ctrl_ty

67     let ctrl_ty = inst_context.controlling_type().unwrap();  in step()  localVariable
71 if ctrl_ty.is_invalid() { in step()
107 match (ctrl_ty.bytes(), opcode) { in step()
169 DataValue::convert(imm(), ValueConversionKind::Exact(ctrl_ty)) in step()
232 let ctrl_ty = inst_context.controlling_type().unwrap(); in step() localVariable
233 let res = unary_arith(arg, ctrl_ty, op)?; in step()
243 let ctrl_ty = inst_context.controlling_type().unwrap(); in step() localVariable
244 let res = binary_arith(left, right, ctrl_ty, op)?; in step()
253 let ctrl_ty = inst_context.controlling_type().unwrap(); in step() localVariable
254 let res = binary_arith(left, right, ctrl_ty, op); in step()
482 let ctrl_ty = inst_context.controlling_type().unwrap(); in step() localVariable
484 Opcode::Load => (ctrl_ty, None), in step()
485 Opcode::Uload8 => (types::I8, Some(ValueConversionKind::ZeroExtend(ctrl_ty))), in step()
486 Opcode::Sload8 => (types::I8, Some(ValueConversionKind::SignExtend(ctrl_ty))), in step()
487 Opcode::Uload16 => (types::I16, Some(ValueConversionKind::ZeroExtend(ctrl_ty))), in step()
488 Opcode::Sload16 => (types::I16, Some(ValueConversionKind::SignExtend(ctrl_ty))), in step()
489 Opcode::Uload32 => (types::I32, Some(ValueConversionKind::ZeroExtend(ctrl_ty))), in step()
490 Opcode::Sload32 => (types::I32, Some(ValueConversionKind::SignExtend(ctrl_ty))), in step()
587 Opcode::Iconst => assign(DataValueExt::int(imm().into_int_signed()?, ctrl_ty)?), in step()
596 Opcode::Icmp => assign(icmp(ctrl_ty, inst.cond_code().unwrap(), &arg(0), &arg(1))?), in step()
598 ctrl_ty, in step()
604 if ctrl_ty.is_vector() { in step()
605 let icmp = icmp(ctrl_ty, IntCC::SignedGreaterThan, &arg(1), &arg(0))?; in step()
612 if ctrl_ty.is_vector() { in step()
613 let icmp = icmp(ctrl_ty, IntCC::UnsignedGreaterThan, &arg(1), &arg(0))?; in step()
620 if ctrl_ty.is_vector() { in step()
621 let icmp = icmp(ctrl_ty, IntCC::SignedGreaterThan, &arg(0), &arg(1))?; in step()
628 if ctrl_ty.is_vector() { in step()
629 let icmp = icmp(ctrl_ty, IntCC::UnsignedGreaterThan, &arg(0), &arg(1))?; in step()
646 ctrl_ty, in step()
652 ctrl_ty, in step()
659 ctrl_ty, in step()
665 ctrl_ty, in step()
668 Opcode::Ineg => binary(DataValueExt::sub, DataValueExt::int(0, ctrl_ty)?, arg(0))?, in step()
670 let (min_val, _) = ctrl_ty.lane_type().bounds(true); in step()
671 let min_val: DataValue = DataValueExt::int(min_val as i128, ctrl_ty.lane_type())?; in step()
672 let arg0 = extractlanes(&arg(0), ctrl_ty)?; in step()
679 DataValueExt::int(lane.into_int_signed()?.abs(), ctrl_ty.lane_type()) in step()
683 assign(vectorizelanes(&new_vec, ctrl_ty)?) in step()
687 let double_length = match ctrl_ty.lane_bits() { in step()
692 _ => unimplemented!("Unsupported integer length {}", ctrl_ty.bits()), in step()
699 let arg0 = extractlanes(&arg(0), ctrl_ty)?; in step()
700 let arg1 = extractlanes(&arg(1), ctrl_ty)?; in step()
710 .convert(ValueConversionKind::ExtractUpper(ctrl_ty.lane_type()))?) in step()
714 assign(vectorizelanes(&res, ctrl_ty)?) in step()
755 let (sum2, carry2) = sum.sadd_overflow(DataValueExt::int(1, ctrl_ty)?)?; in step()
766 let (sum2, carry2) = sum.uadd_overflow(DataValueExt::int(1, ctrl_ty)?)?; in step()
784 let (sub2, carry2) = sub.ssub_overflow(DataValueExt::int(1, ctrl_ty)?)?; in step()
795 let (sub2, carry2) = sub.usub_overflow(DataValueExt::int(1, ctrl_ty)?)?; in step()
812 Opcode::Rotl => binary(DataValueExt::rotl, arg(0), shift_amt(ctrl_ty, arg(1))?)?, in step()
813 Opcode::Rotr => binary(DataValueExt::rotr, arg(0), shift_amt(ctrl_ty, arg(1))?)?, in step()
814 Opcode::RotlImm => binary(DataValueExt::rotl, arg(0), shift_amt(ctrl_ty, imm())?)?, in step()
815 Opcode::RotrImm => binary(DataValueExt::rotr, arg(0), shift_amt(ctrl_ty, imm())?)?, in step()
816 Opcode::Ishl => binary(DataValueExt::shl, arg(0), shift_amt(ctrl_ty, arg(1))?)?, in step()
817 Opcode::Ushr => binary(DataValueExt::ushr, arg(0), shift_amt(ctrl_ty, arg(1))?)?, in step()
818 Opcode::Sshr => binary(DataValueExt::sshr, arg(0), shift_amt(ctrl_ty, arg(1))?)?, in step()
819 Opcode::IshlImm => binary(DataValueExt::shl, arg(0), shift_amt(ctrl_ty, imm())?)?, in step()
820 Opcode::UshrImm => binary(DataValueExt::ushr, arg(0), shift_amt(ctrl_ty, imm())?)?, in step()
821 Opcode::SshrImm => binary(DataValueExt::sshr, arg(0), shift_amt(ctrl_ty, imm())?)?, in step()
826 let count = if arg(0) < DataValueExt::int(0, ctrl_ty)? { in step()
831 assign(DataValueExt::sub(count, DataValueExt::int(1, ctrl_ty)?)?) in step()
838 let lanes = extractlanes(&arg(0), ctrl_ty)? in step()
842 vectorizelanes(&lanes, ctrl_ty)? in step()
848 let arg0 = extractlanes(&arg(0), ctrl_ty)?; in step()
849 let arg1 = extractlanes(&arg(1), ctrl_ty)?; in step()
858 ctrl_ty.is_vector(), in step()
859 ctrl_ty.lane_type().as_truthy(), in step()
863 ctrl_ty, in step()
872 let arg0 = extractlanes(&arg(0), ctrl_ty)?; in step()
873 let arg1 = extractlanes(&arg(1), ctrl_ty)?; in step()
874 let arg2 = extractlanes(&arg(2), ctrl_ty)?; in step()
883 ctrl_ty, in step()
900 if ctrl_ty.is_vector() { in step()
901 let arg0 = extractlanes(&arg(0), ctrl_ty)?; in step()
902 let arg1 = extractlanes(&arg(1), ctrl_ty)?; in step()
910 ctrl_ty, in step()
927 if ctrl_ty.is_vector() { in step()
928 let arg0 = extractlanes(&arg(0), ctrl_ty)?; in step()
929 let arg1 = extractlanes(&arg(1), ctrl_ty)?; in step()
937 ctrl_ty, in step()
957 extractlanes(&arg(0), ctrl_ty)? in step()
961 .map(|x| DataValue::convert(x, ValueConversionKind::Exact(ctrl_ty.lane_type()))) in step()
965 Opcode::Bitcast => vectorizelanes(lanes, ctrl_ty)?, in step()
966 Opcode::ScalarToVector => vectorizelanes_all(lanes, ctrl_ty)?, in step()
972 ValueConversionKind::Truncate(ctrl_ty), in step()
975 let arg0 = extractlanes(&arg(0), ctrl_ty)?; in step()
976 let arg1 = extractlanes(&arg(1), ctrl_ty)?; in step()
977 let new_type = ctrl_ty.split_lanes().unwrap(); in step()
979 let min: DataValue = DataValueExt::int(min as i128, ctrl_ty.lane_type())?; in step()
980 let max: DataValue = DataValueExt::int(max as i128, ctrl_ty.lane_type())?; in step()
1001 let bool_ty = ctrl_ty.as_truthy_pedantic(); in step()
1004 .map(|lane| lane.convert(ValueConversionKind::Mask(ctrl_ty.lane_type()))) in step()
1006 vectorizelanes(&lanes, ctrl_ty)? in step()
1010 ValueConversionKind::SignExtend(ctrl_ty), in step()
1014 ValueConversionKind::ZeroExtend(ctrl_ty), in step()
1018 ValueConversionKind::Exact(ctrl_ty), in step()
1022 ValueConversionKind::RoundNearestEven(ctrl_ty), in step()
1049 Opcode::Splat => assign(splat(ctrl_ty, arg(0))?), in step()
1052 let mut vector = extractlanes(&arg(0), ctrl_ty)?; in step()
1054 assign(vectorizelanes(&vector, ctrl_ty)?) in step()
1058 let lanes = extractlanes(&arg(0), ctrl_ty)?; in step()
1074 assign(DataValueExt::int(result as i128, ctrl_ty)?) in step()
1077 let simd_ty = ctrl_ty.as_int(); in step()
1085 .iter_lanes(ctrl_ty.as_int())? in step()
1093 let new_type = ctrl_ty.merge_lanes().unwrap(); in step()
1103 let vec_iter = extractlanes(&arg(0), ctrl_ty)?.into_iter(); in step()
1126 let (min, max) = ctrl_ty.bounds(is_signed); in step()
1139 assign(DataValueExt::int(x, ctrl_ty)?) in step()
1146 DataValue::int(0, ctrl_ty.lane_type()) in step()
1149 let (min, max) = ctrl_ty.bounds(is_signed); in step()
1161 DataValue::int(x, ctrl_ty.lane_type()) in step()
1171 ctrl_ty, in step()
1180 Ok(match ctrl_ty.lane_type() { in step()
1193 _ => unimplemented!("unexpected conversion to {:?}", ctrl_ty.lane_type()), in step()
1198 .map(|x| DataValue::float(bits(x)?, ctrl_ty.lane_type())) in step()
1200 ctrl_ty, in step()
1249 .and_then(|addr| state.checked_load(addr, ctrl_ty, mem_flags)); in step()
1276 .and_then(|addr| state.checked_load(addr, ctrl_ty, mem_flags)); in step()
1317 let lane_type = ctrl_ty.lane_type(); in step()
1318 let double_width = ctrl_ty.double_width().unwrap().lane_type(); in step()
1319 let arg0 = extractlanes(&arg(0), ctrl_ty)?; in step()
1320 let arg1 = extractlanes(&arg(1), ctrl_ty)?; in step()
1342 assign(vectorizelanes(&new_vec, ctrl_ty)?) in step()
1345 assign(binary_pairwise(arg(0), arg(1), ctrl_ty, DataValueExt::add)?) in step()
1423 ctrl_ty: types::Type, in icmp()
1454 ctrl_ty.is_vector(), in icmp()
1459 let dst_ty = ctrl_ty.as_truthy(); in icmp()
1460 let left = extractlanes(left, ctrl_ty)?; in icmp()
1461 let right = extractlanes(right, ctrl_ty)?; in icmp()