qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v1 03/20] s390x/tcg: Implement VECTOR MULTIPLY SUM LOGICAL


From: David Hildenbrand
Subject: Re: [PATCH v1 03/20] s390x/tcg: Implement VECTOR MULTIPLY SUM LOGICAL
Date: Thu, 1 Oct 2020 19:30:44 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

On 01.10.20 17:26, Richard Henderson wrote:
> On 9/30/20 9:55 AM, David Hildenbrand wrote:
>> +    /* Multipy both even elements from v2 and v3 */
>> +    read_vec_element_i64(l1, get_field(s, v2), 0, ES_64);
>> +    read_vec_element_i64(h1, get_field(s, v3), 0, ES_64);
>> +    tcg_gen_mulu2_i64(l1, h1, l1, h1);
>> +    /* Shift result left by one bit if requested */
>> +    if (extract32(get_field(s, m6), 3, 1)) {
>> +        tcg_gen_extract2_i64(h1, l1, h1, 63);
>> +        tcg_gen_shli_i64(l1, l1, 1);
>> +    }
> 
> Not a bug, but some hosts require 3 insns for extract2 (so 4 total for this
> sequence).
> 
> This doubling can also be had via add2:
> 
>     tcg_gen_add2_i64(l1, h1, l1, h1, l1, h1);

Took me longer than it should to realize this is really just doubling
the value ... will use tcg_gen_add2_i64() and add a comment.

Thanks!


-- 
Thanks,

David / dhildenb




reply via email to

[Prev in Thread] Current Thread [Next in Thread]