From: Tejas Belagod Date: Wed, 13 Nov 2013 15:07:27 +0000 (+0000) Subject: aarch64-simd.md (vec_extract): New. X-Git-Tag: upstream/12.2.0~66655 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0f365c102f3ae1b5025c0893074ed4a94d3ee295;p=platform%2Fupstream%2Fgcc.git aarch64-simd.md (vec_extract): New. 2013-11-13 Tejas Belagod gcc/ * config/aarch64/aarch64-simd.md (vec_extract): New. From-SVN: r204747 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 331e61c..8f98926 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2013-11-13 Tejas Belagod + * config/aarch64/aarch64-simd.md (vec_extract): New. + +2013-11-13 Tejas Belagod + * config/aarch64/aarch64-simd.md (vec_set): Add w -> w option to the constraint. diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index df4ef95..0b16b05 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -4582,3 +4582,19 @@ (set_attr "simd_mode" "")] ) +;; Standard pattern name vec_extract. + +(define_insn "vec_extract" + [(set (match_operand: 0 "aarch64_simd_nonimmediate_operand" "=r, w, Utv") + (vec_select: + (match_operand:VALL 1 "register_operand" "w, w, w") + (parallel [(match_operand:SI 2 "immediate_operand" "i,i,i")])))] + "TARGET_SIMD" + "@ + umov\\t%0, %1.[%2] + dup\\t%0, %1.[%2] + st1\\t{%1.}[%2], %0" + [(set_attr "simd_type" "simd_movgp, simd_dup, simd_store1s") + (set_attr "type" "neon_to_gp, neon_dup, neon_store1_one_lane") + (set_attr "simd_mode" "")] +)