On 11/09/12 16:04, Christophe Lyon wrote:
> On 11 September 2012 12:52, Richard Earnshaw wrote:
>> Try something like:
>>
>> short foo(int);
>>
>> short swaps (short x, int y)
>> {
>> int z = x;
>> if (y)
>> z = __builtin_bswap16(x);
>> return foo (z);
>> }
>>
>> If that's not enough
On 11 September 2012 12:52, Richard Earnshaw wrote:
> Try something like:
>
> short foo(int);
>
> short swaps (short x, int y)
> {
> int z = x;
> if (y)
> z = __builtin_bswap16(x);
> return foo (z);
> }
>
> If that's not enough, try adding 1 to z before calling foo.
>
Thanks, it wor
On 11/09/12 11:25, Christophe Lyon wrote:
> On 10 September 2012 19:30, Richard Earnshaw wrote:
>> On 10/09/12 16:40, Christophe Lyon wrote:
>>> Why do we have to keep room for the predicate here? (%?) Doesn't this
>>> pattern match only in unconditional cases?
>>>
>>
>> Because the ARM back-end h
On 10 September 2012 19:30, Richard Earnshaw wrote:
> On 10/09/12 16:40, Christophe Lyon wrote:
>> Why do we have to keep room for the predicate here? (%?) Doesn't this
>> pattern match only in unconditional cases?
>>
>
> Because the ARM back-end has a very late conditionalizer pass that can
> als
On 10/09/12 16:40, Christophe Lyon wrote:
> On 7 September 2012 17:28, Richard Earnshaw wrote:
>>
>> Ah, sigh! I'd forgotten about the cond-exec issue. That makes things
>> a little awkward, since we also have to deal with the fact that thumb1
>> does not support predication. The solution, unfo
On 7 September 2012 17:28, Richard Earnshaw wrote:
>
> Ah, sigh! I'd forgotten about the cond-exec issue. That makes things
> a little awkward, since we also have to deal with the fact that thumb1
> does not support predication. The solution, unfortunately, is thus a
> bit more involved.
>
Sorr
On 07/09/12 12:45, Christophe Lyon wrote:
> On 6 September 2012 18:42, Richard Earnshaw wrote:
>> On 06/09/12 17:07, Christophe Lyon wrote:
>>>
>>> But why are the thumb1_XXX patterns still necessary?
>>> I tried removing them, but compiling the testcase with -march=armv6
>>> -mthumb makes the com
On 6 September 2012 18:42, Richard Earnshaw wrote:
> On 06/09/12 17:07, Christophe Lyon wrote:
>>
>> But why are the thumb1_XXX patterns still necessary?
>> I tried removing them, but compiling the testcase with -march=armv6
>> -mthumb makes the compiler fail (internal compiler error:
>> output_op
On 06/09/12 17:07, Christophe Lyon wrote:
> On 6 September 2012 10:48, Richard Earnshaw wrote:
>> On 05/09/12 17:01, Christophe Lyon wrote:
>>
>> +(define_insn "*arm_revsh"
>> + [(set (match_operand:SI 0 "s_register_operand" "=r")
>> + (sign_extend:SI (bswap:HI (match_operand:HI 1 "s_regist
On 6 September 2012 10:48, Richard Earnshaw wrote:
> On 05/09/12 17:01, Christophe Lyon wrote:
>
> +(define_insn "*arm_revsh"
> + [(set (match_operand:SI 0 "s_register_operand" "=r")
> + (sign_extend:SI (bswap:HI (match_operand:HI 1 "s_register_operand"
> "r"]
> + "TARGET_32BIT && arm
On 05/09/12 17:01, Christophe Lyon wrote:
> Hi,
>
> This patch implements __builtin_bswap16() on ARM (v6 and above) using
> revsh with a signed input and rev16 with an unsigned input.
>
> It is pretty much equal to the patch posted some time ago
> http://gcc.gnu.org/ml/gcc-patches/2012-04/msg0096
Hi,
This patch implements __builtin_bswap16() on ARM (v6 and above) using
revsh with a signed input and rev16 with an unsigned input.
It is pretty much equal to the patch posted some time ago
http://gcc.gnu.org/ml/gcc-patches/2012-04/msg00962.html, but it's hard
to write such patterns differently
12 matches
Mail list logo