Commit 27d2e612 by Richard Earnshaw Committed by Richard Earnshaw

re PR target/57431 (ICE in simplify_const_unary_operation vld1_dup_s64/vst1_s64)

	PR target/57431
	* arm/neon.md (neon_vld1_dupdi): New expand pattern.
	(neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.

From-SVN: r201599
parent 5efc661c
2013-08-08 Richard Earnshaw <rearnsha@arm.com> 2013-08-08 Richard Earnshaw <rearnsha@arm.com>
PR target/57431
* arm/neon.md (neon_vld1_dupdi): New expand pattern.
(neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
2013-08-08 Richard Earnshaw <rearnsha@arm.com>
PR target/56979 PR target/56979
* arm.c (aapcs_vfp_allocate): Decompose the argument if the * arm.c (aapcs_vfp_allocate): Decompose the argument if the
suggested mode for the assignment isn't compatible with the suggested mode for the assignment isn't compatible with the
......
...@@ -4593,19 +4593,20 @@ ...@@ -4593,19 +4593,20 @@
) )
(define_insn "neon_vld1_dup<mode>" (define_insn "neon_vld1_dup<mode>"
[(set (match_operand:VDX 0 "s_register_operand" "=w") [(set (match_operand:VD 0 "s_register_operand" "=w")
(vec_duplicate:VDX (match_operand:<V_elem> 1 "neon_struct_operand" "Um")))] (vec_duplicate:VD (match_operand:<V_elem> 1 "neon_struct_operand" "Um")))]
"TARGET_NEON" "TARGET_NEON"
{ "vld1.<V_sz_elem>\t{%P0[]}, %A1"
if (GET_MODE_NUNITS (<MODE>mode) > 1) [(set_attr "neon_type" "neon_vld2_2_regs_vld1_vld2_all_lanes")]
return "vld1.<V_sz_elem>\t{%P0[]}, %A1"; )
else
return "vld1.<V_sz_elem>\t%h0, %A1"; ;; Special case for DImode. Treat it exactly like a simple load.
} (define_expand "neon_vld1_dupdi"
[(set (attr "neon_type") [(set (match_operand:DI 0 "s_register_operand" "")
(if_then_else (gt (const_string "<V_mode_nunits>") (const_string "1")) (unspec:DI [(match_operand:DI 1 "neon_struct_operand" "")]
(const_string "neon_vld2_2_regs_vld1_vld2_all_lanes") UNSPEC_VLD1))]
(const_string "neon_vld1_1_2_regs")))] "TARGET_NEON"
""
) )
(define_insn "neon_vld1_dup<mode>" (define_insn "neon_vld1_dup<mode>"
......
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