Commit f0a8f6bc by Steve Ellcey Committed by Steve Ellcey

re PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)

2018-04-11  Steve Ellcey  <sellcey@marvell.com>

	PR rtl-optimization/87763
	* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
	New Instruction.

From-SVN: r270288
parent cd7ffd8a
2018-04-11 Steve Ellcey <sellcey@marvell.com>
PR rtl-optimization/87763
* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
New Instruction.
2019-04-11 Tom de Vries <tdevries@suse.de> 2019-04-11 Tom de Vries <tdevries@suse.de>
* doc/extend.texi (@node Statement Exprs): Note variable shadowing at * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
......
...@@ -5565,7 +5565,8 @@ ...@@ -5565,7 +5565,8 @@
) )
;; Like *aarch64_bfi<GPI:mode>5_shift but with no shifting, we are just ;; Like *aarch64_bfi<GPI:mode>5_shift but with no shifting, we are just
;; copying the least significant bits of OP3 to OP0. ;; copying the least significant bits of OP3 to OP0. We need two versions
;; of the instruction to handle different checks on the constant values.
(define_insn "*aarch64_bfi<GPI:mode>4_noshift" (define_insn "*aarch64_bfi<GPI:mode>4_noshift"
[(set (match_operand:GPI 0 "register_operand" "=r") [(set (match_operand:GPI 0 "register_operand" "=r")
...@@ -5579,6 +5580,18 @@ ...@@ -5579,6 +5580,18 @@
[(set_attr "type" "bfm")] [(set_attr "type" "bfm")]
) )
(define_insn "*aarch64_bfi<GPI:mode>4_noshift_alt"
[(set (match_operand:GPI 0 "register_operand" "=r")
(ior:GPI (and:GPI (match_operand:GPI 3 "register_operand" "r")
(match_operand:GPI 4 "const_int_operand" "n"))
(and:GPI (match_operand:GPI 1 "register_operand" "0")
(match_operand:GPI 2 "const_int_operand" "n"))))]
"aarch64_masks_and_shift_for_bfi_p (<MODE>mode, UINTVAL (operands[2]), 0,
UINTVAL (operands[4]))"
"bfi\t%<GPI:w>0, %<GPI:w>3, 0, %P4"
[(set_attr "type" "bfm")]
)
(define_insn "*extr_insv_lower_reg<mode>" (define_insn "*extr_insv_lower_reg<mode>"
[(set (zero_extract:GPI (match_operand:GPI 0 "register_operand" "+r") [(set (zero_extract:GPI (match_operand:GPI 0 "register_operand" "+r")
(match_operand 1 "const_int_operand" "n") (match_operand 1 "const_int_operand" "n")
......
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