[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>
|
||||
|
||||
* config/aarch64/aarch64-simd.md
|
||||
|
|
|
@ -3400,6 +3400,23 @@
|
|||
(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
|
||||
|
||||
(define_insn "aarch64_addp<mode>"
|
||||
|
|
|
@ -553,6 +553,9 @@
|
|||
;; Unsigned comparison operators.
|
||||
(define_code_iterator UCOMPARISONS [ltu leu geu gtu])
|
||||
|
||||
;; Unsigned comparison operators.
|
||||
(define_code_iterator FAC_COMPARISONS [lt le ge gt])
|
||||
|
||||
;; -------------------------------------------------------------------
|
||||
;; Code Attributes
|
||||
;; -------------------------------------------------------------------
|
||||
|
|
Loading…
Add table
Reference in a new issue