Re: [PATCH][ARM] Fix PR target/69403: Bug in thumb2_ior_scc_strict_it pattern

2016-01-22 Thread Ramana Radhakrishnan
On Fri, Jan 22, 2016 at 9:32 AM, Kyrill Tkachov wrote: > Hi Han, > > On 21/01/16 22:57, Han Shen wrote: >> >> Hi Kyrill, the patched gcc generates correct asm for me for the test >> case. (I'll then build the whole system to see if other it-block >> related bugs are gone too.) >> >> One short que

Re: [PATCH][ARM] Fix PR target/69403: Bug in thumb2_ior_scc_strict_it pattern

2016-01-22 Thread Kyrill Tkachov
Hi Han, On 21/01/16 22:57, Han Shen wrote: Hi Kyrill, the patched gcc generates correct asm for me for the test case. (I'll then build the whole system to see if other it-block related bugs are gone too.) One short question, the newly generated RTL for x = x |(a) will be orr %0,

Re: [PATCH][ARM] Fix PR target/69403: Bug in thumb2_ior_scc_strict_it pattern

2016-01-21 Thread Han Shen
Hi Kyrill, the patched gcc generates correct asm for me for the test case. (I'll then build the whole system to see if other it-block related bugs are gone too.) One short question, the newly generated RTL for x = x |(a) will be orr %0, %1, #1; it ; mov%D2\\t%0, %1 (b) The cond in (a

[PATCH][ARM] Fix PR target/69403: Bug in thumb2_ior_scc_strict_it pattern

2016-01-21 Thread Kyrill Tkachov
Hi all, In this wrong-code PR the pattern for performing x = x | for -mrestrict-it is buggy and ends up writing 1 to the result register rather than orring it. The offending pattern is *thumb2_ior_scc_strict_it. My proposed solution is to rewrite it as a splitter, remove the alternative for the