+2015-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+
+ PR target/63304
+ * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
+ (movtf): Delete.
+ * config/aarch64/iterators.md (GPF_TF_F16): New.
+ (GPF_F16): Delete.
+
2015-09-10 Nathan Sidwell <nathan@acm.org>
* config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
})
(define_expand "mov<mode>"
- [(set (match_operand:GPF_F16 0 "nonimmediate_operand" "")
- (match_operand:GPF_F16 1 "general_operand" ""))]
+ [(set (match_operand:GPF_TF_F16 0 "nonimmediate_operand" "")
+ (match_operand:GPF_TF_F16 1 "general_operand" ""))]
""
{
if (!TARGET_FLOAT)
f_loadd,f_stored,load1,store1,mov_reg")]
)
-(define_expand "movtf"
- [(set (match_operand:TF 0 "nonimmediate_operand" "")
- (match_operand:TF 1 "general_operand" ""))]
- ""
- {
- if (!TARGET_FLOAT)
- {
- aarch64_err_no_fpadvsimd (TFmode, "code");
- FAIL;
- }
-
- if (GET_CODE (operands[0]) == MEM
- && ! (GET_CODE (operands[1]) == CONST_DOUBLE
- && aarch64_float_const_zero_rtx_p (operands[1])))
- operands[1] = force_reg (TFmode, operands[1]);
- }
-)
-
(define_insn "*movtf_aarch64"
[(set (match_operand:TF 0
"nonimmediate_operand" "=w,?&r,w ,?r,w,?w,w,m,?r ,Ump,Ump")
;; Iterator for General Purpose Floating-point registers (32- and 64-bit modes)
(define_mode_iterator GPF [SF DF])
-;; Iterator for General Purpose Float registers, inc __fp16.
-(define_mode_iterator GPF_F16 [HF SF DF])
+;; Iterator for all scalar floating point modes (HF, SF, DF and TF)
+(define_mode_iterator GPF_TF_F16 [HF SF DF TF])
;; Double vector modes.
(define_mode_iterator VDF [V2SF V4HF])