[RTL, i386] Use subreg instead of UNSPEC_CAST
Richard Henderson
rth@redhat.com
Tue Mar 19 21:22:00 GMT 2013
On 03/19/2013 08:47 AM, Marc Glisse wrote:
> (define_insn_and_split "avx_<castmode><avxsizesuffix>_<castmode>"
> [(set (match_operand:AVX256MODE2P 0 "nonimmediate_operand" "=x,m")
> - (unspec:AVX256MODE2P
> - [(match_operand:<ssehalfvecmode> 1 "nonimmediate_operand" "xm,x")]
> - UNSPEC_CAST))]
> + (subreg:AVX256MODE2P
> + (match_operand:<ssehalfvecmode> 1 "nonimmediate_operand" "xm,x") 0))]
> "TARGET_AVX"
> "#"
> "&& reload_completed"
> [(const_int 0)]
I'm not fond of this, primarily because I believe the pattern should
not exist at all.
One of the following is true:
(1) reload needs working around (thus all the reload_completed nonsense)
or
(2) the entire pattern is useless and would be subsumed by mov<mode>
or
(3) the entire pattern is useless and is *already* subsumed by
mov<mode>, since mov is earlier in the md file, making this
pattern dead code.
r~
More information about the Gcc-patches
mailing list