Hi Kugan,
On 05/06/15 09:01, Kugan wrote:
Hi All,
After my patch for cprop is committed
(https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=224048),
neon-reload-class.c is failing in arm mode. But this is kind of expected
behaviour so I looked at the original patch related to
neon-reload-class.c, which is:
https://gcc.gnu.org/ml/gcc-patches/2011-04/msg01968.html
As I understand, it was added to make sure that these constants are not
created as constant pool. from that point of view it looks like we
should remove the check for movw/movt.
I also checked the asm generated before the constant split for arm
(https://gcc.gnu.org/viewcvs?rev=223235&root=gcc&view=rev) just to be
sure that this is not due to the earlier patch. Reason for this is that
the constant generation has changed compared to what was shown in
https://gcc.gnu.org/ml/gcc-patches/2011-04/msg01968.html.
I am also attaching the three versions of the neon-reload-class.s.
1. neon-reload-class_before_arm_split.s - before r223235
2. neon-reload-class_before_cprop.s - before r224048
3. neon-reload-class_new.s - after 224048
Is this OK for trunk?
I see that the new code is better and it is indeed still not
loading the immediates from memory, which is what the test tests for.
So as long as scanning for \\.d?word is enough to catch the presence
of a constant pool this should be ok.
Kyrill
Thanks,
Kugan
gcc/testsuite/ChangeLog:
2015-06-05 Kugan Vivekanandarajah <kug...@linaro.org>
* gcc.target/arm/neon-reload-class.c: Remove movw and movt.