qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 2/8] target/arm: optimize smul_dual() and neon_t


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PATCH 2/8] target/arm: optimize smul_dual() and neon_trn_u8() using extract op
Date: Thu, 11 May 2017 22:31:59 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0

Hi Richard,

On 05/10/2017 05:32 PM, Philippe Mathieu-Daudé wrote:
On 05/10/2017 05:20 PM, Richard Henderson wrote:
On 05/10/2017 01:05 PM, Philippe Mathieu-Daudé wrote:
-    tcg_gen_shri_i32(t1, t1, 8);
-    tcg_gen_andi_i32(t1, t1, 0x00ff00ff);
+    tcg_gen_extract_i32(t1, t1, 8, 0x00ff00ff);

This is very wrong.  See my previous comment.

Indeed, after correcting the script:

$ docker run -it -v `pwd`:`pwd` -w `pwd` petersenna/coccinelle --sp-file scripts/coccinelle/tcg_gen_extract.cocci --macro-file scripts/cocci-macro-file.h target/arm/translate.c --in-place
init_defs_builtins: /usr/lib64/coccinelle/standard.h
init_defs: scripts/cocci-macro-file.h
HANDLING: target/arm/translate.c
candidate at target/arm/translate.c:4703
  op_size: i32/i32 (same)
  low_bits: 8 (value: 0xff)
  len: 0xff00ff
  len_bits != low_bits
  candidate is NOT optimizable

candidate at target/arm/translate.c:342
  op_size: i32/i32 (same)
  low_bits: 8 (value: 0xff)
  len: 0xff00ff
  len_bits != low_bits
  candidate is NOT optimizable


Arghhh I see, I checked manually and though I had it...

I'll first check with the cocci script if it can handles this better
then review the serie manually before bother you again.

Thinking about it, this should be quite easy unit-testable somehow ...
Not sure if I want to start this path although.

Sorry for the noise and thank a lot for the review!

Phil.



reply via email to

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