diff mbox

[i386] New testcase (was: [rtl, patch] combine concat+shuffle)

Message ID alpine.DEB.2.02.1205102157400.3211@laptop-mg.saclay.inria.fr
State New
Headers show

Commit Message

Marc Glisse May 10, 2012, 8:15 p.m. UTC
Hello,

could an i386 maintainer take a look at the following testcase?

gcc/testsuite/ChangeLog
2012-05-08  Marc Glisse  <marc.glisse@inria.fr>

 	* gcc.target/i386/shuf-concat.c: New test.




The conversation on this patch started at 
http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00504.html


On Tue, 8 May 2012, Marc Glisse wrote:

> On Tue, 8 May 2012, Richard Sandiford wrote:
>
>> Marc Glisse <marc.glisse@inria.fr> writes:
>>> Here is a new version.
>>> 
>>> gcc/ChangeLog
>>> 2012-05-08  Marc Glisse  <marc.glisse@inria.fr>
>>>
>>>  	* simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle
>>>  	of concatenations.
>> 
>> OK, thanks.  I'll leave an x86 maintainer to review the testcase,
>> but it looks like it'll need some markup to ensure an SSE target.
>
> Oups, I'd thought about that, then completely forgot. For 64 bits, it always 
> works. For 32 bits, it requires -msse2 -mfpmath=sse (without -mfpmath=sse we 
> can still test for shufpd, but apparently not unpcklpd, I could remove that 
> second test if people prefer, as it isn't important). Since this is a 
> compile-only test, I think this would be enough:
>
> /* { dg-options "-O -msse2 -mfpmath=sse" } */
>
>>> Note to self: if you want to grep for "shuf" in the asm, don't put "shuf"
>>> in the name of the file...
>> 
>> Yeah :-)  For MIPS tests I tend to add "\t" to the beginning of the regexp.
>> (And to the end if possible.)
>
> Good idea. I was trying to make the check as wide as possible, but that's not 
> so useful. Attached a new version of the testcase.

Comments

Marc Glisse May 28, 2012, 1:37 p.m. UTC | #1
Ping? The rest of the patch has been approved already.


On Thu, 10 May 2012, Marc Glisse wrote:

> Hello,
>
> could an i386 maintainer take a look at the following testcase?
>
> gcc/testsuite/ChangeLog
> 2012-05-08  Marc Glisse  <marc.glisse@inria.fr>
>
> 	* gcc.target/i386/shuf-concat.c: New test.
>
>
> --- gcc.target/i386/shuf-concat.c	(revision 0)
> +++ gcc.target/i386/shuf-concat.c	(revision 0)
> @@ -0,0 +1,13 @@
> +/* { dg-do compile } */
> +/* { dg-options "-O -msse2 -mfpmath=sse" } */
> +
> +typedef double v2df __attribute__ ((__vector_size__ (16)));
> +
> +v2df f(double d,double e){
> +  v2df x={-d,d};
> +  v2df y={-e,e};
> +  return __builtin_ia32_shufpd(x,y,1);
> +}
> +
> +/* { dg-final { scan-assembler-not "\tv?shufpd\t" } } */
> +/* { dg-final { scan-assembler-times "\tv?unpcklpd\t" 1 } } */
>
>
> The conversation on this patch started at 
> http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00504.html
>
>
> On Tue, 8 May 2012, Marc Glisse wrote:
>
>> On Tue, 8 May 2012, Richard Sandiford wrote:
>> 
>>> Marc Glisse <marc.glisse@inria.fr> writes:
>>>> Here is a new version.
>>>> 
>>>> gcc/ChangeLog
>>>> 2012-05-08  Marc Glisse  <marc.glisse@inria.fr>
>>>>
>>>>  	* simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle
>>>>  	of concatenations.
>>> 
>>> OK, thanks.  I'll leave an x86 maintainer to review the testcase,
>>> but it looks like it'll need some markup to ensure an SSE target.
>> 
>> Oups, I'd thought about that, then completely forgot. For 64 bits, it 
>> always works. For 32 bits, it requires -msse2 -mfpmath=sse (without 
>> -mfpmath=sse we can still test for shufpd, but apparently not unpcklpd, I 
>> could remove that second test if people prefer, as it isn't important). 
>> Since this is a compile-only test, I think this would be enough:
>> 
>> /* { dg-options "-O -msse2 -mfpmath=sse" } */
>> 
>>>> Note to self: if you want to grep for "shuf" in the asm, don't put "shuf"
>>>> in the name of the file...
>>> 
>>> Yeah :-)  For MIPS tests I tend to add "\t" to the beginning of the 
>>> regexp.
>>> (And to the end if possible.)
>> 
>> Good idea. I was trying to make the check as wide as possible, but that's 
>> not so useful. Attached a new version of the testcase.
Uros Bizjak May 28, 2012, 3:48 p.m. UTC | #2
On Mon, May 28, 2012 at 3:37 PM, Marc Glisse <marc.glisse@inria.fr> wrote:
>
> Ping? The rest of the patch has been approved already.
>
>
> On Thu, 10 May 2012, Marc Glisse wrote:
>
>> Hello,
>>
>> could an i386 maintainer take a look at the following testcase?
>>
>> gcc/testsuite/ChangeLog
>> 2012-05-08  Marc Glisse  <marc.glisse@inria.fr>
>>
>>        * gcc.target/i386/shuf-concat.c: New test.
>>
>>
>> --- gcc.target/i386/shuf-concat.c       (revision 0)
>> +++ gcc.target/i386/shuf-concat.c       (revision 0)
>> @@ -0,0 +1,13 @@
>> +/* { dg-do compile } */
>> +/* { dg-options "-O -msse2 -mfpmath=sse" } */
>> +
>> +typedef double v2df __attribute__ ((__vector_size__ (16)));
>> +
>> +v2df f(double d,double e){
>> +  v2df x={-d,d};
>> +  v2df y={-e,e};
>> +  return __builtin_ia32_shufpd(x,y,1);
>> +}
>> +
>> +/* { dg-final { scan-assembler-not "\tv?shufpd\t" } } */
>> +/* { dg-final { scan-assembler-times "\tv?unpcklpd\t" 1 } } */
>>
>>
>> The conversation on this patch started at
>> http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00504.html
>>
>>
>> On Tue, 8 May 2012, Marc Glisse wrote:
>>
>>> On Tue, 8 May 2012, Richard Sandiford wrote:
>>>
>>>> Marc Glisse <marc.glisse@inria.fr> writes:
>>>>>
>>>>> Here is a new version.
>>>>>
>>>>> gcc/ChangeLog
>>>>> 2012-05-08  Marc Glisse  <marc.glisse@inria.fr>
>>>>>
>>>>>        * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle
>>>>>        of concatenations.
>>>>
>>>>
>>>> OK, thanks.  I'll leave an x86 maintainer to review the testcase,
>>>> but it looks like it'll need some markup to ensure an SSE target.
>>>
>>>
>>> Oups, I'd thought about that, then completely forgot. For 64 bits, it
>>> always works. For 32 bits, it requires -msse2 -mfpmath=sse (without
>>> -mfpmath=sse we can still test for shufpd, but apparently not unpcklpd, I
>>> could remove that second test if people prefer, as it isn't important).
>>> Since this is a compile-only test, I think this would be enough:
>>>
>>> /* { dg-options "-O -msse2 -mfpmath=sse" } */
>>>
>>>>> Note to self: if you want to grep for "shuf" in the asm, don't put
>>>>> "shuf"
>>>>> in the name of the file...
>>>>
>>>>
>>>> Yeah :-)  For MIPS tests I tend to add "\t" to the beginning of the
>>>> regexp.
>>>> (And to the end if possible.)
>>>
>>>
>>> Good idea. I was trying to make the check as wide as possible, but that's
>>> not so useful. Attached a new version of the testcase.

Please add "\[ \t\]" at the end of add string instead of only "\t".

OK with that change.

Thanks,
Uros.
diff mbox

Patch

--- gcc.target/i386/shuf-concat.c	(revision 0)
+++ gcc.target/i386/shuf-concat.c	(revision 0)
@@ -0,0 +1,13 @@ 
+/* { dg-do compile } */
+/* { dg-options "-O -msse2 -mfpmath=sse" } */
+
+typedef double v2df __attribute__ ((__vector_size__ (16)));
+
+v2df f(double d,double e){
+  v2df x={-d,d};
+  v2df y={-e,e};
+  return __builtin_ia32_shufpd(x,y,1);
+}
+
+/* { dg-final { scan-assembler-not "\tv?shufpd\t" } } */
+/* { dg-final { scan-assembler-times "\tv?unpcklpd\t" 1 } } */