[AArch64] Add combiner patterns for FAC instructions
gcc/ * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New. * config/aarch64/iterators.md (FAC_COMPARISONS): New. From-SVN: r198494
This commit is contained in:
parent
ad755ff16d
commit
75dd5aceb2
3 changed files with 25 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
|
||||||
|
|
||||||
|
* config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
|
||||||
|
* config/aarch64/iterators.md (FAC_COMPARISONS): New.
|
||||||
|
|
||||||
2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
|
2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
|
||||||
|
|
||||||
* config/aarch64/aarch64-simd.md
|
* config/aarch64/aarch64-simd.md
|
||||||
|
|
|
@ -3400,6 +3400,23 @@
|
||||||
(set_attr "simd_mode" "<MODE>")]
|
(set_attr "simd_mode" "<MODE>")]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
;; fac(ge|gt)
|
||||||
|
;; Note we can also handle what would be fac(le|lt) by
|
||||||
|
;; generating fac(ge|gt).
|
||||||
|
|
||||||
|
(define_insn "*aarch64_fac<optab><mode>"
|
||||||
|
[(set (match_operand:<V_cmp_result> 0 "register_operand" "=w")
|
||||||
|
(neg:<V_cmp_result>
|
||||||
|
(FAC_COMPARISONS:<V_cmp_result>
|
||||||
|
(abs:VALLF (match_operand:VALLF 1 "register_operand" "w"))
|
||||||
|
(abs:VALLF (match_operand:VALLF 2 "register_operand" "w"))
|
||||||
|
)))]
|
||||||
|
"TARGET_SIMD"
|
||||||
|
"fac<n_optab>\t%<v>0<Vmtype>, %<v><cmp_1><Vmtype>, %<v><cmp_2><Vmtype>"
|
||||||
|
[(set_attr "simd_type" "simd_fcmp")
|
||||||
|
(set_attr "simd_mode" "<MODE>")]
|
||||||
|
)
|
||||||
|
|
||||||
;; addp
|
;; addp
|
||||||
|
|
||||||
(define_insn "aarch64_addp<mode>"
|
(define_insn "aarch64_addp<mode>"
|
||||||
|
|
|
@ -553,6 +553,9 @@
|
||||||
;; Unsigned comparison operators.
|
;; Unsigned comparison operators.
|
||||||
(define_code_iterator UCOMPARISONS [ltu leu geu gtu])
|
(define_code_iterator UCOMPARISONS [ltu leu geu gtu])
|
||||||
|
|
||||||
|
;; Unsigned comparison operators.
|
||||||
|
(define_code_iterator FAC_COMPARISONS [lt le ge gt])
|
||||||
|
|
||||||
;; -------------------------------------------------------------------
|
;; -------------------------------------------------------------------
|
||||||
;; Code Attributes
|
;; Code Attributes
|
||||||
;; -------------------------------------------------------------------
|
;; -------------------------------------------------------------------
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue