re PR target/52408 (Incorrect assembler generated for zvdep_imm64)
PR target/52408 * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to unsigned HOST_WIDE_INT. (zvdep_imm64): Likewise. (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT. (vdepi_and): Likewise. Likewise for unamed 64-bit patterns. * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment. From-SVN: r184757
This commit is contained in:
parent
4462d7ae90
commit
5d9dc69aff
3 changed files with 20 additions and 9 deletions
|
@ -1,3 +1,14 @@
|
|||
2012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||
|
||||
PR target/52408
|
||||
* config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
|
||||
unsigned HOST_WIDE_INT.
|
||||
(zvdep_imm64): Likewise.
|
||||
(vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
|
||||
(vdepi_and): Likewise.
|
||||
Likewise for unamed 64-bit patterns.
|
||||
* config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
|
||||
|
||||
2012-03-01 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
PR debug/52001
|
||||
|
|
|
@ -6349,7 +6349,7 @@
|
|||
""
|
||||
"*
|
||||
{
|
||||
int x = INTVAL (operands[1]);
|
||||
unsigned HOST_WIDE_INT x = UINTVAL (operands[1]);
|
||||
operands[2] = GEN_INT (4 + exact_log2 ((x >> 4) + 1));
|
||||
operands[1] = GEN_INT ((x & 0xf) - 0x10);
|
||||
return \"{zvdepi %1,%2,%0|depwi,z %1,%%sar,%2,%0}\";
|
||||
|
@ -6367,7 +6367,7 @@
|
|||
"exact_log2 (INTVAL (operands[1]) + 1) > 0"
|
||||
"*
|
||||
{
|
||||
int x = INTVAL (operands[1]);
|
||||
HOST_WIDE_INT x = INTVAL (operands[1]);
|
||||
operands[2] = GEN_INT (exact_log2 (x + 1));
|
||||
return \"{vdepi -1,%2,%0|depwi -1,%%sar,%2,%0}\";
|
||||
}"
|
||||
|
@ -6384,7 +6384,7 @@
|
|||
"INTVAL (operands[1]) == -2"
|
||||
"*
|
||||
{
|
||||
int x = INTVAL (operands[1]);
|
||||
HOST_WIDE_INT x = INTVAL (operands[1]);
|
||||
operands[2] = GEN_INT (exact_log2 ((~x) + 1));
|
||||
return \"{vdepi 0,%2,%0|depwi 0,%%sar,%2,%0}\";
|
||||
}"
|
||||
|
@ -6448,7 +6448,7 @@
|
|||
"TARGET_64BIT"
|
||||
"*
|
||||
{
|
||||
int x = INTVAL (operands[1]);
|
||||
unsigned HOST_WIDE_INT x = UINTVAL (operands[1]);
|
||||
operands[2] = GEN_INT (4 + exact_log2 ((x >> 4) + 1));
|
||||
operands[1] = GEN_INT ((x & 0x1f) - 0x20);
|
||||
return \"depdi,z %1,%%sar,%2,%0\";
|
||||
|
@ -6466,7 +6466,7 @@
|
|||
"TARGET_64BIT && exact_log2 (INTVAL (operands[1]) + 1) > 0"
|
||||
"*
|
||||
{
|
||||
int x = INTVAL (operands[1]);
|
||||
HOST_WIDE_INT x = INTVAL (operands[1]);
|
||||
operands[2] = GEN_INT (exact_log2 (x + 1));
|
||||
return \"depdi -1,%%sar,%2,%0\";
|
||||
}"
|
||||
|
@ -6483,7 +6483,7 @@
|
|||
"TARGET_64BIT && INTVAL (operands[1]) == -2"
|
||||
"*
|
||||
{
|
||||
int x = INTVAL (operands[1]);
|
||||
HOST_WIDE_INT x = INTVAL (operands[1]);
|
||||
operands[2] = GEN_INT (exact_log2 ((~x) + 1));
|
||||
return \"depdi 0,%%sar,%2,%0\";
|
||||
}"
|
||||
|
|
|
@ -247,9 +247,9 @@
|
|||
(ior (match_operand 0 "ireg_operand")
|
||||
(match_operand 0 "int5_operand")))
|
||||
|
||||
;; True iff OP is a CONST_INT of the forms 0...0xxxx or
|
||||
;; 0...01...1xxxx. Such values can be the left hand side x in (x <<
|
||||
;; r), using the zvdepi instruction.
|
||||
;; True iff OP is a CONST_INT of the forms 0...0xxxx, 0...01...1xxxx,
|
||||
;; or 1...1xxxx. Such values can be the left hand side x in (x << r),
|
||||
;; using the zvdepi instruction.
|
||||
|
||||
(define_predicate "lhs_lshift_cint_operand"
|
||||
(match_code "const_int")
|
||||
|
|
Loading…
Add table
Reference in a new issue