Commit e4fb6f09 by Segher Boessenkool Committed by Segher Boessenkool

htm.md (tabort, [...]): Use xor instead of minus.

2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
	tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
	instead of minus.
	* config/rs6000/vector.md (cr6_test_for_zero_reverse,
	cr6_test_for_lt_reverse): Ditto.

From-SVN: r215187
parent 450bfd7d
2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
instead of minus.
* config/rs6000/vector.md (cr6_test_for_zero_reverse,
cr6_test_for_lt_reverse): Ditto.
2014-09-11 Paolo Carlini <paolo.carlini@oracle.com> 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/61489 PR c++/61489
...@@ -55,7 +55,8 @@ ...@@ -55,7 +55,8 @@
(eq:SI (match_dup 2) (eq:SI (match_dup 2)
(const_int 0))) (const_int 0)))
(set (match_operand:SI 0 "int_reg_operand" "") (set (match_operand:SI 0 "int_reg_operand" "")
(minus:SI (const_int 1) (match_dup 3)))] (xor:SI (match_dup 3)
(const_int 1)))]
"TARGET_HTM" "TARGET_HTM"
{ {
operands[2] = gen_rtx_REG (CCmode, CR0_REGNO); operands[2] = gen_rtx_REG (CCmode, CR0_REGNO);
...@@ -81,7 +82,8 @@ ...@@ -81,7 +82,8 @@
(eq:SI (match_dup 4) (eq:SI (match_dup 4)
(const_int 0))) (const_int 0)))
(set (match_operand:SI 0 "int_reg_operand" "") (set (match_operand:SI 0 "int_reg_operand" "")
(minus:SI (const_int 1) (match_dup 5)))] (xor:SI (match_dup 5)
(const_int 1)))]
"TARGET_HTM" "TARGET_HTM"
{ {
operands[4] = gen_rtx_REG (CCmode, CR0_REGNO); operands[4] = gen_rtx_REG (CCmode, CR0_REGNO);
...@@ -109,7 +111,8 @@ ...@@ -109,7 +111,8 @@
(eq:SI (match_dup 4) (eq:SI (match_dup 4)
(const_int 0))) (const_int 0)))
(set (match_operand:SI 0 "int_reg_operand" "") (set (match_operand:SI 0 "int_reg_operand" "")
(minus:SI (const_int 1) (match_dup 5)))] (xor:SI (match_dup 5)
(const_int 1)))]
"TARGET_HTM" "TARGET_HTM"
{ {
operands[4] = gen_rtx_REG (CCmode, CR0_REGNO); operands[4] = gen_rtx_REG (CCmode, CR0_REGNO);
...@@ -137,7 +140,8 @@ ...@@ -137,7 +140,8 @@
(eq:SI (match_dup 4) (eq:SI (match_dup 4)
(const_int 0))) (const_int 0)))
(set (match_operand:SI 0 "int_reg_operand" "") (set (match_operand:SI 0 "int_reg_operand" "")
(minus:SI (const_int 1) (match_dup 5)))] (xor:SI (match_dup 5)
(const_int 1)))]
"TARGET_HTM" "TARGET_HTM"
{ {
operands[4] = gen_rtx_REG (CCmode, CR0_REGNO); operands[4] = gen_rtx_REG (CCmode, CR0_REGNO);
...@@ -165,7 +169,8 @@ ...@@ -165,7 +169,8 @@
(eq:SI (match_dup 4) (eq:SI (match_dup 4)
(const_int 0))) (const_int 0)))
(set (match_operand:SI 0 "int_reg_operand" "") (set (match_operand:SI 0 "int_reg_operand" "")
(minus:SI (const_int 1) (match_dup 5)))] (xor:SI (match_dup 5)
(const_int 1)))]
"TARGET_HTM" "TARGET_HTM"
{ {
operands[4] = gen_rtx_REG (CCmode, CR0_REGNO); operands[4] = gen_rtx_REG (CCmode, CR0_REGNO);
...@@ -209,7 +214,8 @@ ...@@ -209,7 +214,8 @@
(eq:SI (match_dup 2) (eq:SI (match_dup 2)
(const_int 0))) (const_int 0)))
(set (match_operand:SI 0 "int_reg_operand" "") (set (match_operand:SI 0 "int_reg_operand" "")
(minus:SI (const_int 1) (match_dup 3)))] (xor:SI (match_dup 3)
(const_int 1)))]
"TARGET_HTM" "TARGET_HTM"
{ {
operands[2] = gen_rtx_REG (CCmode, CR0_REGNO); operands[2] = gen_rtx_REG (CCmode, CR0_REGNO);
...@@ -233,7 +239,8 @@ ...@@ -233,7 +239,8 @@
(eq:SI (match_dup 2) (eq:SI (match_dup 2)
(const_int 0))) (const_int 0)))
(set (match_operand:SI 0 "int_reg_operand" "") (set (match_operand:SI 0 "int_reg_operand" "")
(minus:SI (const_int 1) (match_dup 3)))] (xor:SI (match_dup 3)
(const_int 1)))]
"TARGET_HTM" "TARGET_HTM"
{ {
operands[2] = gen_rtx_REG (CCmode, CR0_REGNO); operands[2] = gen_rtx_REG (CCmode, CR0_REGNO);
...@@ -257,7 +264,8 @@ ...@@ -257,7 +264,8 @@
(eq:SI (match_dup 2) (eq:SI (match_dup 2)
(const_int 0))) (const_int 0)))
(set (match_operand:SI 0 "int_reg_operand" "") (set (match_operand:SI 0 "int_reg_operand" "")
(minus:SI (const_int 1) (match_dup 3)))] (xor:SI (match_dup 3)
(const_int 1)))]
"TARGET_HTM" "TARGET_HTM"
{ {
operands[2] = gen_rtx_REG (CCmode, CR0_REGNO); operands[2] = gen_rtx_REG (CCmode, CR0_REGNO);
...@@ -281,7 +289,8 @@ ...@@ -281,7 +289,8 @@
(eq:SI (match_dup 1) (eq:SI (match_dup 1)
(const_int 0))) (const_int 0)))
(set (match_operand:SI 0 "int_reg_operand" "") (set (match_operand:SI 0 "int_reg_operand" "")
(minus:SI (const_int 1) (match_dup 2)))] (xor:SI (match_dup 2)
(const_int 1)))]
"TARGET_HTM" "TARGET_HTM"
{ {
operands[1] = gen_rtx_REG (CCmode, CR0_REGNO); operands[1] = gen_rtx_REG (CCmode, CR0_REGNO);
...@@ -305,7 +314,8 @@ ...@@ -305,7 +314,8 @@
(eq:SI (match_dup 2) (eq:SI (match_dup 2)
(const_int 0))) (const_int 0)))
(set (match_operand:SI 0 "int_reg_operand" "") (set (match_operand:SI 0 "int_reg_operand" "")
(minus:SI (const_int 1) (match_dup 3)))] (xor:SI (match_dup 3)
(const_int 1)))]
"TARGET_HTM" "TARGET_HTM"
{ {
operands[2] = gen_rtx_REG (CCmode, CR0_REGNO); operands[2] = gen_rtx_REG (CCmode, CR0_REGNO);
...@@ -329,7 +339,8 @@ ...@@ -329,7 +339,8 @@
(eq:SI (match_dup 2) (eq:SI (match_dup 2)
(const_int 0))) (const_int 0)))
(set (match_operand:SI 0 "int_reg_operand" "") (set (match_operand:SI 0 "int_reg_operand" "")
(minus:SI (const_int 1) (match_dup 3)))] (xor:SI (match_dup 3)
(const_int 1)))]
"TARGET_HTM" "TARGET_HTM"
{ {
operands[2] = gen_rtx_REG (CCmode, CR0_REGNO); operands[2] = gen_rtx_REG (CCmode, CR0_REGNO);
......
...@@ -686,7 +686,9 @@ ...@@ -686,7 +686,9 @@
[(set (match_operand:SI 0 "register_operand" "=r") [(set (match_operand:SI 0 "register_operand" "=r")
(eq:SI (reg:CC 74) (eq:SI (reg:CC 74)
(const_int 0))) (const_int 0)))
(set (match_dup 0) (minus:SI (const_int 1) (match_dup 0)))] (set (match_dup 0)
(xor:SI (match_dup 0)
(const_int 1)))]
"TARGET_ALTIVEC || TARGET_VSX" "TARGET_ALTIVEC || TARGET_VSX"
"") "")
...@@ -701,7 +703,9 @@ ...@@ -701,7 +703,9 @@
[(set (match_operand:SI 0 "register_operand" "=r") [(set (match_operand:SI 0 "register_operand" "=r")
(lt:SI (reg:CC 74) (lt:SI (reg:CC 74)
(const_int 0))) (const_int 0)))
(set (match_dup 0) (minus:SI (const_int 1) (match_dup 0)))] (set (match_dup 0)
(xor:SI (match_dup 0)
(const_int 1)))]
"TARGET_ALTIVEC || TARGET_VSX" "TARGET_ALTIVEC || TARGET_VSX"
"") "")
......
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