[PATCH AArch64 1/2] Improve codegen of vector compares inc. tst instruction

Christophe Lyon christophe.lyon@linaro.org
Mon Sep 8 12:52:00 GMT 2014


Hi Alan,

In my cross-testing I've noticed that your new test:
gcc.target/aarch64/simd/int_comparisons_1.c scan-assembler-not not
is PASS for targets aarch64-none-elf and aarch64_be-none-elf, but
FAIL for aarch64-none-linux-gnu.

It seems this is not what you saw in your own validations?

Christophe.



On 2 September 2014 17:17, Marcus Shawcroft <marcus.shawcroft@gmail.com> wrote:
> On 19 August 2014 11:44, Alan Lawrence <alan.lawrence@arm.com> wrote:
>
>> gcc/ChangeLog:
>>
>>         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
>>         TYPES_TST): Define.
>>         (aarch64_fold_builtin): Update pattern for cmtst.
>>
>>         * config/aarch64/aarch64-protos.h
>> (aarch64_const_vec_all_same_int_p):
>>         Declare.
>>
>>         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update
>> qualifiers.
>>
>>         * config/aarch64/aarch64-simd.md
>> (aarch64_vcond_internal<mode><mode>):
>>         Switch operands, separate out more cases, refactor.
>>
>>         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
>>
>>         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
>>         argument; rename old version to...
>>         (aarch64_const_vec_all_same_in_range_p): ...this.
>>         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
>>
>>         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
>>
>> gcc/testsuite/ChangeLog:
>>
>>         * gcc.target/aarch64/simd/int_comparisons.x: New file.
>>         * gcc.target/aarch64/simd/int_comparisons_1.c: New test.
>>         * gcc.target/aarch64/simd/int_comparisons_2.c: Ditto.
>
> OK /Marcus



More information about the Gcc-patches mailing list