Re: [AArch64/GCC] PR64304, miscompilation with -mgeneral-regs-only

2015-05-07 Thread Richard Earnshaw
On 14/01/15 15:31, Jiong Wang wrote: > as discussed here https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00563.html > > the problem is aarch64 hardware only support left shift truncation for SI/DI, > while SHIFT_COUNT_TRUNCATED is enabled for all mode including QI/HI, which is > inconsistent with ha

Re: [AArch64/GCC] PR64304, miscompilation with -mgeneral-regs-only

2015-01-19 Thread Marcus Shawcroft
On 16 January 2015 at 11:17, Jiong Wang wrote: > exactly, thanks, we should use FAIL although DONE and FAIL work the same in > this scenario. > > I checked their definition, FAIL always return the initial value of _val > which is NULL, > while DONE stop and return generated insns which for this p

Re: [AArch64/GCC] PR64304, miscompilation with -mgeneral-regs-only

2015-01-16 Thread Jiong Wang
On 16/01/15 10:50, Marcus Shawcroft wrote: On 14 January 2015 at 15:31, Jiong Wang wrote: 2015-01-15 Jiong. Wang (jiong.w...@arm.com) gcc/ PR64304 * config/aarch64/aarch64.md (define_insn "*ashl3_insn"): Deleted. (ashl3): Don't expand if operands[2] is not constant. gcc/testsuite/ *

Re: [AArch64/GCC] PR64304, miscompilation with -mgeneral-regs-only

2015-01-16 Thread Marcus Shawcroft
On 14 January 2015 at 15:31, Jiong Wang wrote: > 2015-01-15 Jiong. Wang (jiong.w...@arm.com) > gcc/ > PR64304 > * config/aarch64/aarch64.md (define_insn "*ashl3_insn"): Deleted. > (ashl3): Don't expand if operands[2] is not constant. > > gcc/testsuite/ > * gcc.target/aarch64/pr64304.c: New

[AArch64/GCC] PR64304, miscompilation with -mgeneral-regs-only

2015-01-14 Thread Jiong Wang
as discussed here https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00563.html the problem is aarch64 hardware only support left shift truncation for SI/DI, while SHIFT_COUNT_TRUNCATED is enabled for all mode including QI/HI, which is inconsistent with hardware feature. there are two patterns define