[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] target/s390x: Use tcg_gen_gvec_bitsel
From: |
David Hildenbrand |
Subject: |
Re: [Qemu-devel] [PATCH] target/s390x: Use tcg_gen_gvec_bitsel |
Date: |
Tue, 4 Jun 2019 09:44:23 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 |
On 03.06.19 23:59, Richard Henderson wrote:
> On 6/3/19 2:41 PM, David Hildenbrand wrote:
>>> -static void gen_sel_vec(unsigned vece, TCGv_vec d, TCGv_vec a, TCGv_vec b,
>>> - TCGv_vec c)
>>> -{
>>> - TCGv_vec t = tcg_temp_new_vec_matching(d);
>>> -
>>> - tcg_gen_andc_vec(vece, t, b, c);
>>> - tcg_gen_and_vec(vece, d, a, c);
>>> - tcg_gen_or_vec(vece, d, d, t);
>>> - tcg_temp_free_vec(t);
>>> -}
>>> -
>>
>> Comparing against tcg_gen_bitsel_i64()
>>
>> 1. a and c are switched
>> 2. b is _not_ switched (and() and andc() are switched)
>
> Not quite. {a,b,c} from your s390 implementation becomes {c,a,b} for tcg.
>
> Running tests would show for sure; I guess you have those later in your vx
> patch set?
I only have a small selection of tests for now
84fa6254e4 tests/tcg: target/s390x: Test VECTOR ADD *
9e9a9e5246 tests/tcg: target/s390x: Test VECTOR UNPACK *
9d2b7184c6 tests/tcg: target/s390x: Test VECTOR PACK *
4872c1b6bd tests/tcg: target/s390x: Test VECTOR MERGE (HIGH|LOW)
914502d1d1 tests/tcg: target/s390x: Test VECTOR LOAD AND REPLICATE
7d01bbca17 tests/tcg: target/s390x: Test VECTOR GENERATE MASK
dc107ebdf7 tests/tcg: target/s390x: Test VECTOR GENERATE BYTE MASK
17212a732d tests/tcg: target/s390x: Test VECTOR LOAD GR FROM VR ELEMENT
f120e93c15 tests/tcg: target/s390x: Test VECTOR GATHER ELEMENT
But I just added a simple
6c43fe6a8c tests/tcg: target/s390x: Test VECTOR SELECT
That test confirmed that your implementation works correctly. :)
>
>> Should I send this patch with the next s390x/tcg pull request?
>
> Yes please.
I'll change the subject to "s390x/tcg: Use tcg_gen_gvec_bitsel for
VECTOR SELECT" if you don't object. Thanks!
>
>
> r~
>
--
Thanks,
David / dhildenb