Commit c1d40097 by Jakub Jelinek Committed by Jakub Jelinek

re PR target/53110 (GCC-4.7 generates stupid x86_64 asm)

	PR target/53110
	* config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
	instead expand it as zero extension.

From-SVN: r186839
parent ff5f00c3
2012-04-25 Jakub Jelinek <jakub@redhat.com>
PR target/53110
* config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
instead expand it as zero extension.
2012-04-25 H.J. Lu <hongjiu.lu@intel.com> 2012-04-25 H.J. Lu <hongjiu.lu@intel.com>
PR debug/52857 PR debug/52857
......
...@@ -7694,7 +7694,17 @@ ...@@ -7694,7 +7694,17 @@
(and:SWIM (match_operand:SWIM 1 "nonimmediate_operand") (and:SWIM (match_operand:SWIM 1 "nonimmediate_operand")
(match_operand:SWIM 2 "<general_szext_operand>")))] (match_operand:SWIM 2 "<general_szext_operand>")))]
"" ""
"ix86_expand_binary_operator (AND, <MODE>mode, operands); DONE;") {
if (<MODE>mode == DImode
&& GET_CODE (operands[2]) == CONST_INT
&& INTVAL (operands[2]) == (HOST_WIDE_INT) 0xffffffff
&& REG_P (operands[1]))
emit_insn (gen_zero_extendsidi2 (operands[0],
gen_lowpart (SImode, operands[1])));
else
ix86_expand_binary_operator (AND, <MODE>mode, operands);
DONE;
})
(define_insn "*anddi_1" (define_insn "*anddi_1"
[(set (match_operand:DI 0 "nonimmediate_operand" "=r,rm,r,r") [(set (match_operand:DI 0 "nonimmediate_operand" "=r,rm,r,r")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment