* config/mips/mips.md (*clear_upper32): New combiner pattern.

From-SVN: r110250
This commit is contained in:
Adam Nemet 2006-01-26 10:16:13 +00:00 committed by Adam Nemet
parent 0a484e3e5e
commit 5e922d66a7
2 changed files with 29 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2006-01-26 Adam Nemet <anemet@caviumnetworks.com>
* config/mips/mips.md (*clear_upper32): New combiner pattern.
2006-01-26 Richard Earnshaw <richard.earnshaw@arm.com>
* arm.md (smaxsi3, sminsi3): Convert to define_expand.

View File

@ -2332,6 +2332,31 @@
(set_attr "mode" "DI")
(set_attr "length" "8,*")])
;; Combine is not allowed to convert this insn into a zero_extendsidi2
;; because of TRULY_NOOP_TRUNCATION.
(define_insn_and_split "*clear_upper32"
[(set (match_operand:DI 0 "register_operand" "=d,d")
(and:DI (match_operand:DI 1 "nonimmediate_operand" "d,o")
(const_int 4294967295)))]
"TARGET_64BIT"
{
if (which_alternative == 0)
return "#";
operands[1] = gen_lowpart (SImode, operands[1]);
return "lwu\t%0,%1";
}
"&& reload_completed && REG_P (operands[1])"
[(set (match_dup 0)
(ashift:DI (match_dup 1) (const_int 32)))
(set (match_dup 0)
(lshiftrt:DI (match_dup 0) (const_int 32)))]
""
[(set_attr "type" "multi,load")
(set_attr "mode" "DI")
(set_attr "length" "8,*")])
(define_expand "zero_extend<SHORT:mode><GPR:mode>2"
[(set (match_operand:GPR 0 "register_operand")
(zero_extend:GPR (match_operand:SHORT 1 "nonimmediate_operand")))]