Lines Matching refs:outermode

4229 simplify_immed_subreg (enum machine_mode outermode, rtx op, 
4252 if (GET_MODE_CLASS (outermode) == MODE_CC && GET_CODE (op) == CONST_INT)
4256 if (COMPLEX_MODE_P (outermode))
4370 if (GET_MODE_SIZE (innermode) >= GET_MODE_SIZE (outermode))
4372 unsigned ibyte = (GET_MODE_SIZE (innermode) - GET_MODE_SIZE (outermode)
4389 if (VECTOR_MODE_P (outermode))
4391 num_elem = GET_MODE_NUNITS (outermode);
4394 outer_submode = GET_MODE_INNER (outermode);
4400 outer_submode = outermode;
4483 if (VECTOR_MODE_P (outermode))
4484 return gen_rtx_CONST_VECTOR (outermode, result_v);
4492 simplify_subreg (enum machine_mode outermode, rtx op,
4497 gcc_assert (outermode != VOIDmode);
4499 gcc_assert (outermode != BLKmode);
4504 gcc_assert ((byte % GET_MODE_SIZE (outermode)) == 0);
4507 if (outermode == innermode && !byte)
4513 return simplify_immed_subreg (outermode, op, innermode, byte);
4523 if (outermode == innermostmode
4531 if (byte == 0 && GET_MODE_SIZE (innermode) < GET_MODE_SIZE (outermode))
4533 int difference = (GET_MODE_SIZE (innermode) - GET_MODE_SIZE (outermode));
4550 if (GET_MODE_SIZE (innermostmode) > GET_MODE_SIZE (outermode))
4556 if (final_offset % GET_MODE_SIZE (outermode)
4563 int difference = (GET_MODE_SIZE (innermostmode) - GET_MODE_SIZE (outermode));
4578 newx = simplify_subreg (outermode, SUBREG_REG (op), innermostmode,
4582 if (validate_subreg (outermode, innermostmode,
4584 return gen_rtx_SUBREG (outermode, SUBREG_REG (op), final_offset);
4591 && GET_MODE_SIZE (outermode) < GET_MODE_SIZE (innermode)
4592 && subreg_lowpart_offset (outermode, innermode) == byte)
4593 return simplify_gen_unary (TRUNCATE, outermode, XEXP (op, 0),
4604 && ! (REG_CANNOT_CHANGE_MODE_P (REGNO (op), innermode, outermode)
4619 byte, outermode))
4623 = regno + subreg_regno_offset (regno, innermode, byte, outermode);
4628 if (HARD_REGNO_MODE_OK (final_regno, outermode)
4636 && GET_MODE_SIZE (innermode) < GET_MODE_SIZE (outermode))
4639 - GET_MODE_SIZE (outermode));
4646 x = gen_rtx_REG_offset (op, outermode, final_regno, final_offset);
4653 if (subreg_lowpart_offset (outermode, innermode) == byte)
4670 && GET_MODE_SIZE (outermode) <= GET_MODE_SIZE (GET_MODE (op)))
4671 return adjust_address_nv (op, outermode, byte);
4683 if (final_offset + GET_MODE_SIZE (outermode) > inner_size)
4686 res = simplify_subreg (outermode, part, GET_MODE (part), final_offset);
4689 if (validate_subreg (outermode, GET_MODE (part), part, final_offset))
4690 return gen_rtx_SUBREG (outermode, part, final_offset);
4697 && GET_MODE_BITSIZE (outermode) < GET_MODE_BITSIZE (innermode))
4699 unsigned int bitpos = subreg_lsb_1 (outermode, innermode, byte);
4702 there are three possibilities. If the outermode is the same
4704 If the outermode is not larger than the origmode, we can apply
4705 the truncation without the extension. Finally, if the outermode
4711 if (outermode == origmode)
4713 if (GET_MODE_BITSIZE (outermode) <= GET_MODE_BITSIZE (origmode))
4714 return simplify_gen_subreg (outermode, XEXP (op, 0), origmode,
4715 subreg_lowpart_offset (outermode,
4717 if (SCALAR_INT_MODE_P (outermode))
4718 return simplify_gen_unary (GET_CODE (op), outermode,
4726 return CONST0_RTX (outermode);
4734 && SCALAR_INT_MODE_P (outermode)
4739 && (2 * GET_MODE_BITSIZE (outermode)) <= GET_MODE_BITSIZE (innermode)
4742 && GET_MODE (XEXP (XEXP (op, 0), 0)) == outermode
4743 && INTVAL (XEXP (op, 1)) < GET_MODE_BITSIZE (outermode)
4744 && subreg_lsb_1 (outermode, innermode, byte) == 0)
4745 return simplify_gen_binary (ASHIFTRT, outermode,
4753 && SCALAR_INT_MODE_P (outermode)
4754 && GET_MODE_BITSIZE (outermode) < GET_MODE_BITSIZE (innermode)
4757 && GET_MODE (XEXP (XEXP (op, 0), 0)) == outermode
4758 && INTVAL (XEXP (op, 1)) < GET_MODE_BITSIZE (outermode)
4759 && subreg_lsb_1 (outermode, innermode, byte) == 0)
4760 return simplify_gen_binary (LSHIFTRT, outermode,
4767 && SCALAR_INT_MODE_P (outermode)
4768 && GET_MODE_BITSIZE (outermode) < GET_MODE_BITSIZE (innermode)
4772 && GET_MODE (XEXP (XEXP (op, 0), 0)) == outermode
4773 && INTVAL (XEXP (op, 1)) < GET_MODE_BITSIZE (outermode)
4774 && subreg_lsb_1 (outermode, innermode, byte) == 0)
4775 return simplify_gen_binary (ASHIFT, outermode,
4784 simplify_gen_subreg (enum machine_mode outermode, rtx op,
4789 newx = simplify_subreg (outermode, op, innermode, byte);
4798 if (validate_subreg (outermode, innermode, op, byte))
4799 return gen_rtx_SUBREG (outermode, op, byte);