This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH v3,rs6000] Add built-in function support for Power9 byte instructions
Thanks for your quick feedback.
I'll update the comments regarding possible future enhancement to
support QImode for operands[1] as well.
Regarding the two test cases that are missing the scan-assembler
directive (byte-in-set-1.c and byte-in-set-2.c), those tests are both
expected to fail. They are checking that the compiler rejects those
programs with appropriate error messages.
On 12/13/2016 03:14 PM, Segher Boessenkool wrote:
> Hi Kelvin,
>
> On Mon, Dec 12, 2016 at 05:40:05PM -0700, Kelvin Nilsen wrote:
>> The patch has been bootstrapped and tested on
>> powerpc64le-unknown-linux and powerpc-unknown-linux (big-endian, with
>> both -m32 and -m64 target options) with no regressions.
>>
>> Is this ok for the trunk?
>
> Yes it is, much better, thanks! Two comments below, please fix the testcase
> one before commit if it is indeed a problem:
>
>> +;; Though the instructions to which this expansion maps operate on
>> +;; 64-bit registers, the current implementation only operates on
>> +;; SI-mode operands as the high-order bits provide no information
>> +;; that is not already available in the low-order bits. To avoid the
>> +;; costs of data widening operations, a future enhancement might add
>> +;; support for DI-mode operands.
>
> And operands[1] could be QImode.
>
>> +(define_expand "cmprb"
>> + [(set (match_dup 3)
>> + (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
>> + (match_operand:SI 2 "gpc_reg_operand" "r")]
>> + UNSPEC_CMPRB))
>
>
>> --- gcc/testsuite/gcc.target/powerpc/byte-in-set-1.c (revision 0)
>> +++ gcc/testsuite/gcc.target/powerpc/byte-in-set-1.c (working copy)
>
> Did you forget the scan-assembler here and in the next one, or do you only
> want to test it does indeed compile?
>
>
> Segher
>
>
--
Kelvin Nilsen, Ph.D. kdnilsen@linux.vnet.ibm.com
home office: 801-756-4821, cell: 520-991-6727
IBM Linux Technology Center - PPC Toolchain