Commit 5d9dc69a by John David Anglin Committed by John David Anglin

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
parent 4462d7ae
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> 2012-03-01 Alexandre Oliva <aoliva@redhat.com>
PR debug/52001 PR debug/52001
......
...@@ -6349,7 +6349,7 @@ ...@@ -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[2] = GEN_INT (4 + exact_log2 ((x >> 4) + 1));
operands[1] = GEN_INT ((x & 0xf) - 0x10); operands[1] = GEN_INT ((x & 0xf) - 0x10);
return \"{zvdepi %1,%2,%0|depwi,z %1,%%sar,%2,%0}\"; return \"{zvdepi %1,%2,%0|depwi,z %1,%%sar,%2,%0}\";
...@@ -6367,7 +6367,7 @@ ...@@ -6367,7 +6367,7 @@
"exact_log2 (INTVAL (operands[1]) + 1) > 0" "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)); operands[2] = GEN_INT (exact_log2 (x + 1));
return \"{vdepi -1,%2,%0|depwi -1,%%sar,%2,%0}\"; return \"{vdepi -1,%2,%0|depwi -1,%%sar,%2,%0}\";
}" }"
...@@ -6384,7 +6384,7 @@ ...@@ -6384,7 +6384,7 @@
"INTVAL (operands[1]) == -2" "INTVAL (operands[1]) == -2"
"* "*
{ {
int x = INTVAL (operands[1]); HOST_WIDE_INT x = INTVAL (operands[1]);
operands[2] = GEN_INT (exact_log2 ((~x) + 1)); operands[2] = GEN_INT (exact_log2 ((~x) + 1));
return \"{vdepi 0,%2,%0|depwi 0,%%sar,%2,%0}\"; return \"{vdepi 0,%2,%0|depwi 0,%%sar,%2,%0}\";
}" }"
...@@ -6448,7 +6448,7 @@ ...@@ -6448,7 +6448,7 @@
"TARGET_64BIT" "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[2] = GEN_INT (4 + exact_log2 ((x >> 4) + 1));
operands[1] = GEN_INT ((x & 0x1f) - 0x20); operands[1] = GEN_INT ((x & 0x1f) - 0x20);
return \"depdi,z %1,%%sar,%2,%0\"; return \"depdi,z %1,%%sar,%2,%0\";
...@@ -6466,7 +6466,7 @@ ...@@ -6466,7 +6466,7 @@
"TARGET_64BIT && exact_log2 (INTVAL (operands[1]) + 1) > 0" "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)); operands[2] = GEN_INT (exact_log2 (x + 1));
return \"depdi -1,%%sar,%2,%0\"; return \"depdi -1,%%sar,%2,%0\";
}" }"
...@@ -6483,7 +6483,7 @@ ...@@ -6483,7 +6483,7 @@
"TARGET_64BIT && INTVAL (operands[1]) == -2" "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)); operands[2] = GEN_INT (exact_log2 ((~x) + 1));
return \"depdi 0,%%sar,%2,%0\"; return \"depdi 0,%%sar,%2,%0\";
}" }"
......
...@@ -247,9 +247,9 @@ ...@@ -247,9 +247,9 @@
(ior (match_operand 0 "ireg_operand") (ior (match_operand 0 "ireg_operand")
(match_operand 0 "int5_operand"))) (match_operand 0 "int5_operand")))
;; True iff OP is a CONST_INT of the forms 0...0xxxx or ;; True iff OP is a CONST_INT of the forms 0...0xxxx, 0...01...1xxxx,
;; 0...01...1xxxx. Such values can be the left hand side x in (x << ;; or 1...1xxxx. Such values can be the left hand side x in (x << r),
;; r), using the zvdepi instruction. ;; using the zvdepi instruction.
(define_predicate "lhs_lshift_cint_operand" (define_predicate "lhs_lshift_cint_operand"
(match_code "const_int") (match_code "const_int")
......
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