This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Validity of SUBREG+AND-imm transformations
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: Kyrill Tkachov <kyrylo dot tkachov at foss dot arm dot com>
- Cc: Jeff Law <law at redhat dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Fri, 4 Mar 2016 05:59:46 -0600
- Subject: Re: Validity of SUBREG+AND-imm transformations
- Authentication-results: sourceware.org; auth=none
- References: <56D055C6 dot 6040800 at foss dot arm dot com> <56D0C2A1 dot 1070501 at redhat dot com> <56D422AC dot 2000703 at foss dot arm dot com>
On Mon, Feb 29, 2016 at 10:51:24AM +0000, Kyrill Tkachov wrote:
> So I'm trying to create a define_insn to match something like:
> [(set (match_operand:SI 0 "register_operand" "=r")
> (ashift:SI
> (match_operand:SI 1 "register_operand" "r")
> (and:QI
> (match_operand:QI 2 "register_operand" "r")
> (match_operand:QI 3 "const_int_operand" "n"))))]
>
>
> where operands[3] is 31 for SImode. The 'and' expression has to be in
> QImode because our shift expanders
> expand the shift amount to QImode.
Is there any reason for that? Why not SImode?
Segher