Commit 3565ffed by Wei Guozhi Committed by Wei Guozhi

arm.md (andsi3): Change to zero extension if possible.

	* config/arm/arm.md (andsi3): Change to zero extension if possible.

	* config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.

	* gcc.target/arm/pr44999.c: New testcase.

From-SVN: r163184
parent 835e6734
2010-08-12 Wei Guozhi <carrot@google.com>
PR target/44999
* config/arm/arm.md (andsi3): Change to zero extension if possible.
* config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
2010-08-11 Vladimir Makarov <vmakarov@redhat.com> 2010-08-11 Vladimir Makarov <vmakarov@redhat.com>
* ira-int.h (ira_remove_allocno_copy_from_list): Remove. * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
......
...@@ -1937,9 +1937,17 @@ ...@@ -1937,9 +1937,17 @@
{ {
if (GET_CODE (operands[2]) == CONST_INT) if (GET_CODE (operands[2]) == CONST_INT)
{ {
arm_split_constant (AND, SImode, NULL_RTX, if (INTVAL (operands[2]) == 255 && arm_arch6)
INTVAL (operands[2]), operands[0], {
operands[1], optimize && can_create_pseudo_p ()); operands[1] = convert_to_mode (QImode, operands[1], 1);
emit_insn (gen_thumb2_zero_extendqisi2_v6 (operands[0],
operands[1]));
}
else
arm_split_constant (AND, SImode, NULL_RTX,
INTVAL (operands[2]), operands[0],
operands[1],
optimize && can_create_pseudo_p ());
DONE; DONE;
} }
......
...@@ -907,7 +907,7 @@ ...@@ -907,7 +907,7 @@
(set_attr "neg_pool_range" "*,250")] (set_attr "neg_pool_range" "*,250")]
) )
(define_insn "*thumb2_zero_extendqisi2_v6" (define_insn "thumb2_zero_extendqisi2_v6"
[(set (match_operand:SI 0 "s_register_operand" "=r,r") [(set (match_operand:SI 0 "s_register_operand" "=r,r")
(zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "r,m")))] (zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "r,m")))]
"TARGET_THUMB2 && arm_arch6" "TARGET_THUMB2 && arm_arch6"
......
2010-08-12 Wei Guozhi <carrot@google.com>
PR target/44999
* gcc.target/arm/pr44999.c: New testcase.
2010-08-12 Jie Zhang <jie@codesourcery.com> 2010-08-12 Jie Zhang <jie@codesourcery.com>
* gcc.dg/graphite/interchange-9.c (M): Define to be 111. * gcc.dg/graphite/interchange-9.c (M): Define to be 111.
......
/* Use UXTB to extract the lowest byte. */
/* { dg-options "-mthumb -Os" } */
/* { dg-require-effective-target arm_thumb2_ok } */
/* { dg-final { scan-assembler "uxtb" } } */
int tp(int x, int y)
{
return (x & 0xff) - (y & 0xffff);
}
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