This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RE: [Patch, microblaze]: Add optimized lshrsi3
- From: Nagaraju Mekala <nagaraju dot mekala at xilinx dot com>
- To: Michael Eager <eager at eagerm dot com>, David Holsgrove <dholsgrove at xilinx dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Cc: Edgar Iglesias <edgari at xilinx dot com>, John Williams <jwilliams at xilinx dot com>, Vidhumouli Hunsigida <vidhum at xilinx dot com>, Ajit Kumar Agarwal <ajitkum at xilinx dot com>
- Date: Tue, 8 Jul 2014 07:38:09 +0000
- Subject: RE: [Patch, microblaze]: Add optimized lshrsi3
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=pass (sender IP is 149.199.60.83) smtp dot mailfrom=nagaraju dot mekala at xilinx dot com;
- References: <CAM=EW8bKgu972SVoVf6Dig7fT0gvyV+_PzPNfbX8pc0K3wvXGg at mail dot gmail dot com> <52F661FB dot 20001 at eagerm dot com> <363f5602-65e7-4ac8-ab63-2ecdfb86c791 at TX2EHSMHS038 dot ehs dot local> <53B24A1A dot 4030409 at eagerm dot com>
Hi Michael,
-----Original Message-----
From: Michael Eager [mailto:eager@eagerm.com]
Sent: Tuesday, July 01, 2014 11:12 AM
To: David Holsgrove; gcc-patches@gcc.gnu.org
Cc: Edgar Iglesias; John Williams; Vidhumouli Hunsigida; Nagaraju Mekala; Ajit Kumar Agarwal
Subject: Re: [Patch, microblaze]: Add optimized lshrsi3
On 02/13/14 21:48, David Holsgrove wrote:
> Hi Michael,
>
>> -----Original Message-----
>> From: Michael Eager [mailto:eager@eagerm.com]
>> Sent: Sunday, 9 February 2014 2:58 am
>> To: David Holsgrove; gcc-patches@gcc.gnu.org
>> Cc: Edgar Iglesias; John Williams; Vidhumouli Hunsigida; Nagaraju
>> Mekala
>> Subject: Re: [Patch, microblaze]: Add optimized lshrsi3
>>
>> On 11/25/13 23:53, David Holsgrove wrote:
>>> Add optimized lshrsi3 instruction, to be used when optimizing for
>>> size with immediate values over 5
>>>
>>> Changelog
>>>
>>> 2013-11-26 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
>>>
>>> * gcc/config/microblaze/microblaze.md: Add size optimized lshrsi3 insn.
>>
>> David --
>>
>> Please put the description of the patch in the text of the email,
>> rather than hiding it within an attached patch.
>>
>> The patch describes a very specific situation where this patch will
>> have an effect. Please provide a test case.
>
> Updated version of patch attached with testcase. New Changelog entries
> are;
>
> Changelog
>
> 2013-11-26 David Holsgrove <david.holsgrove@xilinx.com>
>
> * gcc/config/microblaze/microblaze.md: Add size optimized lshrsi3
> insn
>
> ChangeLog/testsuite
>
> 2014-02-12 David Holsgrove <david.holsgrove@xilinx.com>
>
> * gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c: New test.
>
Sorry about the delay in reviewing this patch.
I see number of failures in the new lshrsi_Os_1.c test case:
PASS: gcc.target/microblaze/others/lshrsi_Os_1.c -O0 (test for excess errors)
PASS: gcc.target/microblaze/others/lshrsi_Os_1.c -O0 scan-assembler-not srli
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O0 scan-assembler ori\tr18,r0
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O0 scan-assembler
addk\tr([0-9]|[1-2][0-9]|3[0-1]),r([0-9]|[1-2][0-9]|3[0-1]),r0
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O0 scan-assembler addik\tr18,r18,-1
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O0 scan-assembler bneid\tr18,.-4
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O0 scan-assembler
srl\tr([0-9]|[1-2][0-9]|3[0-1]),r([0-9]|[1-2][0-9]|3[0-1])
PASS: gcc.target/microblaze/others/lshrsi_Os_1.c -O1 (test for excess errors)
PASS: gcc.target/microblaze/others/lshrsi_Os_1.c -O1 scan-assembler-not srli
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O1 scan-assembler ori\tr18,r0
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O1 scan-assembler
addk\tr([0-9]|[1-2][0-9]|3[0-1]),r([0-9]|[1-2][0-9]|3[0-1]),r0
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O1 scan-assembler addik\tr18,r18,-1
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O1 scan-assembler bneid\tr18,.-4
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O1 scan-assembler
srl\tr([0-9]|[1-2][0-9]|3[0-1]),r([0-9]|[1-2][0-9]|3[0-1])
PASS: gcc.target/microblaze/others/lshrsi_Os_1.c -O2 (test for excess errors)
PASS: gcc.target/microblaze/others/lshrsi_Os_1.c -O2 scan-assembler-not srli
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O2 scan-assembler ori\tr18,r0
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O2 scan-assembler
addk\tr([0-9]|[1-2][0-9]|3[0-1]),r([0-9]|[1-2][0-9]|3[0-1]),r0
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O2 scan-assembler addik\tr18,r18,-1
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O2 scan-assembler bneid\tr18,.-4
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O2 scan-assembler
srl\tr([0-9]|[1-2][0-9]|3[0-1]),r([0-9]|[1-2][0-9]|3[0-1])
PASS: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -fomit-frame-pointer (test for excess errors)
PASS: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -fomit-frame-pointer scan-assembler-not srli
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -fomit-frame-pointer scan-assembler ori\tr18,r0
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -fomit-frame-pointer scan-assembler
addk\tr([0-9]|[1-2][0-9]|3[0-1]),r([0-9]|[1-2][0-9]|3[0-1]),r0
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -fomit-frame-pointer scan-assembler
addik\tr18,r18,-1
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -fomit-frame-pointer scan-assembler
bneid\tr18,.-4
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -fomit-frame-pointer scan-assembler
srl\tr([0-9]|[1-2][0-9]|3[0-1]),r([0-9]|[1-2][0-9]|3[0-1])
PASS: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -g (test for excess errors)
PASS: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -g scan-assembler-not srli
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -g scan-assembler ori\tr18,r0
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -g scan-assembler
addk\tr([0-9]|[1-2][0-9]|3[0-1]),r([0-9]|[1-2][0-9]|3[0-1]),r0
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -g scan-assembler addik\tr18,r18,-1
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -g scan-assembler bneid\tr18,.-4
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -O3 -g scan-assembler
srl\tr([0-9]|[1-2][0-9]|3[0-1]),r([0-9]|[1-2][0-9]|3[0-1])
PASS: gcc.target/microblaze/others/lshrsi_Os_1.c -Os (test for excess errors)
PASS: gcc.target/microblaze/others/lshrsi_Os_1.c -Os scan-assembler-not srli
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -Os scan-assembler ori\tr18,r0
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -Os scan-assembler
addk\tr([0-9]|[1-2][0-9]|3[0-1]),r([0-9]|[1-2][0-9]|3[0-1]),r0
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -Os scan-assembler addik\tr18,r18,-1
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -Os scan-assembler bneid\tr18,.-4
FAIL: gcc.target/microblaze/others/lshrsi_Os_1.c -Os scan-assembler
srl\tr([0-9]|[1-2][0-9]|3[0-1]),r([0-9]|[1-2][0-9]|3[0-1])
This testcase should only run with -Os and -mno-xl-barrel-shift flags.
Testcase and Patch description are commented accordingly.
/* { dg-options "-Os -mno-xl-barrel-shift" } */
Please let us know if you still face any issues after compiling with above flags.
Thanks,
Nagaraju
--
Michael Eager eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077