+2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/arm/constraints.md (Df): New constraint.
+ * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
+ Correct length attribute for last two alternatives.
+
2013-06-07 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
(define_insn_and_split "*iordi3_insn"
[(set (match_operand:DI 0 "s_register_operand" "=w,w ,&r,&r,&r,&r,?w,?w")
(ior:DI (match_operand:DI 1 "s_register_operand" "%w,0 ,0 ,r ,0 ,r ,w ,0")
- (match_operand:DI 2 "arm_iordi_operand_neon" "w ,Dl,r ,r ,De,De,w ,Dl")))]
+ (match_operand:DI 2 "arm_iordi_operand_neon" "w ,Dl,r ,r ,Df,Df,w ,Dl")))]
"TARGET_32BIT && !TARGET_IWMMXT"
{
switch (which_alternative)
}"
[(set_attr "neon_type" "neon_int_1,neon_int_1,*,*,*,*,neon_int_1,neon_int_1")
- (set_attr "length" "*,*,8,8,8,8,8,8")
+ (set_attr "length" "*,*,8,8,8,8,*,*")
(set_attr "arch" "neon_for_64bits,neon_for_64bits,*,*,*,*,avoid_neon_for_64bits,avoid_neon_for_64bits")]
)
(and (match_code "const_int")
(match_test "TARGET_32BIT && const_ok_for_dimode_op (ival, AND)")))
+(define_constraint "Df"
+ "@internal
+ In ARM/Thumb-2 state a const_int that can be used by insn iordi."
+ (and (match_code "const_int")
+ (match_test "TARGET_32BIT && const_ok_for_dimode_op (ival, IOR)")))
+
(define_constraint "Di"
"@internal
In ARM/Thumb-2 state a const_int or const_double where both the high