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
This commit is contained in:
parent
835e673451
commit
3565ffedc8
|
@ -1,3 +1,9 @@
|
|||
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>
|
||||
|
||||
* ira-int.h (ira_remove_allocno_copy_from_list): Remove.
|
||||
|
|
|
@ -1937,9 +1937,17 @@
|
|||
{
|
||||
if (GET_CODE (operands[2]) == CONST_INT)
|
||||
{
|
||||
arm_split_constant (AND, SImode, NULL_RTX,
|
||||
INTVAL (operands[2]), operands[0],
|
||||
operands[1], optimize && can_create_pseudo_p ());
|
||||
if (INTVAL (operands[2]) == 255 && arm_arch6)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -907,7 +907,7 @@
|
|||
(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")
|
||||
(zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "r,m")))]
|
||||
"TARGET_THUMB2 && arm_arch6"
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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>
|
||||
|
||||
* gcc.dg/graphite/interchange-9.c (M): Define to be 111.
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
/* 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);
|
||||
}
|
Loading…
Reference in New Issue