Commit db57bbc9 by Kyrylo Tkachov Committed by Kyrylo Tkachov

re PR target/55426 (gcc.target/arm/neon-vld1_dupQ.c ICEs on armeb)

	PR target/55426
	* config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
	conversions.

From-SVN: r208116
parent 43b3f52f
2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/55426
* config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
conversions.
2014-02-25 Ilya Tocar <ilya.tocar@intel.com> 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
* common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET), * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
......
...@@ -1257,9 +1257,13 @@ enum reg_class ...@@ -1257,9 +1257,13 @@ enum reg_class
VFPv2. VFPv2.
In big-endian mode, modes greater than word size (i.e. DFmode) are stored in In big-endian mode, modes greater than word size (i.e. DFmode) are stored in
VFP registers in little-endian order. We can't describe that accurately to VFP registers in little-endian order. We can't describe that accurately to
GCC, so avoid taking subregs of such values. */ GCC, so avoid taking subregs of such values.
The only exception is going from a 128-bit to a 64-bit type. In that case
the data layout happens to be consistent for big-endian, so we explicitly allow
that case. */
#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \ #define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
(TARGET_VFP && TARGET_BIG_END \ (TARGET_VFP && TARGET_BIG_END \
&& !(GET_MODE_SIZE (FROM) == 16 && GET_MODE_SIZE (TO) == 8) \
&& (GET_MODE_SIZE (FROM) > UNITS_PER_WORD \ && (GET_MODE_SIZE (FROM) > UNITS_PER_WORD \
|| GET_MODE_SIZE (TO) > UNITS_PER_WORD) \ || GET_MODE_SIZE (TO) > UNITS_PER_WORD) \
&& reg_classes_intersect_p (VFP_REGS, (CLASS))) && reg_classes_intersect_p (VFP_REGS, (CLASS)))
......
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