Commit 9b982888 by Kyrylo Tkachov Committed by Kyrylo Tkachov

[ARM] PR 67439: Allow matching of *arm32_movhf when -mrestrict-it is on

	PR target/67439
	* config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
	predicate.  Set predicable_short_it attr to "no".

	* gcc.target/arm/pr67439_1.c: New test.

From-SVN: r227630
parent fc4d140a
2015-09-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/67439
* config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
predicate. Set predicable_short_it attr to "no".
2015-09-10 Jiong Wang <jiong.wang@arm.com> 2015-09-10 Jiong Wang <jiong.wang@arm.com>
PR rtl-optimization/67421 PR rtl-optimization/67421
......
...@@ -6620,7 +6620,7 @@ ...@@ -6620,7 +6620,7 @@
(define_insn "*arm32_movhf" (define_insn "*arm32_movhf"
[(set (match_operand:HF 0 "nonimmediate_operand" "=r,m,r,r") [(set (match_operand:HF 0 "nonimmediate_operand" "=r,m,r,r")
(match_operand:HF 1 "general_operand" " m,r,r,F"))] (match_operand:HF 1 "general_operand" " m,r,r,F"))]
"TARGET_32BIT && !(TARGET_HARD_FLOAT && TARGET_FP16) && !arm_restrict_it "TARGET_32BIT && !(TARGET_HARD_FLOAT && TARGET_FP16)
&& ( s_register_operand (operands[0], HFmode) && ( s_register_operand (operands[0], HFmode)
|| s_register_operand (operands[1], HFmode))" || s_register_operand (operands[1], HFmode))"
"* "*
...@@ -6658,7 +6658,8 @@ ...@@ -6658,7 +6658,8 @@
[(set_attr "conds" "unconditional") [(set_attr "conds" "unconditional")
(set_attr "type" "load1,store1,mov_reg,multiple") (set_attr "type" "load1,store1,mov_reg,multiple")
(set_attr "length" "4,4,4,8") (set_attr "length" "4,4,4,8")
(set_attr "predicable" "yes")] (set_attr "predicable" "yes")
(set_attr "predicable_short_it" "no")]
) )
(define_expand "movsf" (define_expand "movsf"
......
2015-09-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/67439
* gcc.target/arm/pr67439_1.c: New test.
2015-09-10 Jiong Wang <jiong.wang@arm.com> 2015-09-10 Jiong Wang <jiong.wang@arm.com>
* gcc.target/aarch64/pic-small.c (dg-skip-if): Skip tiny and large code * gcc.target/aarch64/pic-small.c (dg-skip-if): Skip tiny and large code
......
/* { dg-do compile } */
/* { dg-require-effective-target arm_thumb2_ok } */
/* { dg-options "-O1 -mfp16-format=ieee -march=armv7-a -mfpu=neon -mthumb -mrestrict-it" } */
__fp16 h0 = -1.0;
void
f (__fp16 *p)
{
h0 = 1.0;
}
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