[AARCH32][ACLE][NEON] Implement vcvt*_s32_f32 and vcvt*_u32_f32 NEON intrinsics.

2016-01-13 Thread Bilyan Borisov
none-linux-gnueabihf, armeb-none-eabi. --- gcc/ 2015-XX-XX Bilyan Borisov * config/arm/arm-builtins.c (arm_unopus_qualifiers): New qualifier. * config/aarch64/arm_neon.h (vcvta_s32_f32): New intrinsic. (vcvta_u32_f32): Likewise. (vcvta

[AARCH64][ACLE][NEON] Implement vcvt*_s64_f64 and vcvt*_u64_f64 NEON intrinsics.

2016-01-13 Thread Bilyan Borisov
ments. New test cases, covering all the intrinsics were also added. Cross tested on aarch64-none-elf and aarch64-none-linux-gnu. Bootstrapped and tested on aarch64-none-linux-gnu. --- gcc/ 2015-XX-XX Bilyan Borisov * config/aarch64/arm_neon.h (vcvt_s64_f64): New

[AARCH64][ACLE] Implement __ARM_FP_FENV_ROUNDING in aarch64 backend.

2016-01-11 Thread Bilyan Borisov
round(). Cross tested on aarch64-none-elf and aarch64-none-linux-gnu. Bootstrapped and tested on aarch64-none-linux-gnu. --- gcc/ 2015-XX-XX Bilyan Borisov * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): New macro definition. gcc/testsuite/ 2015-XX-XX Bilyan Bo

[AArch32][NEON] Implementing vmaxnmQ_ST and vminnmQ_ST intrinsics.

2016-01-08 Thread Bilyan Borisov
ne-linux-gnueabi, and arm-none-linux-gnueabihf. Bootstrapped and tested on arm-none-linux-gnueabihf. --- gcc/ 2015-XX-XX Bilyan Borisov * config/arm/arm-c.c (arm_cpu_builtins): New macro definition. * config/arm/arm_neon.h (vmaxnm_f32): New intrinsinc. (vmaxnmq_f32):

[AArch32][NEON] Implementing vmaxnmQ_ST and vminnmQ_ST intrinsincs.

2015-12-21 Thread Bilyan Borisov
gcc/testsuite/ 2015-XX-XX Bilyan Borisov * gcc.target/arm/simd/vmaxnm_f32_1.c: New. * gcc.target/arm/simd/vmaxnmq_f32_1.c: Likewise. * gcc.target/arm/simd/vminnm_f32_1.c: Likewise. * gcc.target/arm/simd/vminnmq_f32_1.c: Likewise. diff --git a/gcc/config/arm/arm-c.c b/

[PATCH][AARCH64][NEON] Enabling V*HFmode simd immediate loads.

2015-12-17 Thread Bilyan Borisov
aarch64-none-elf, aarch64_be-none-elf, bootstrapped on aarch64-none-linux-gnu. --- gcc/ 2015-XX-XX Bilyan Borisov * config/aarch64/aarch64.c (aarch64_simd_container_mode): Added HFmode cases. (aarch64_vect_float_const_representable_p): Updated comment

Re: [AARCH64][PATCH 3/3] Adding tests to check proper error reporting of out of bounds accesses to vmulx_lane* NEON intrinsics

2015-11-24 Thread Bilyan Borisov
ately from the previous patch in order to reduce its size. gcc/testsuite/ 2015-XX-XX Bilyan Borisov * gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f32_indices_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f64_indices_1.c: New. * gcc.

[AARCH64] Adding constant folding for __builtin_fmulx* with scalar 32 and 64 bit arguments

2015-11-09 Thread Bilyan Borisov
. --- gcc/ 2015-XX-XX Bilyan Borisov * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin): Added constant folding. gcc/testsuite/ 2015-XX-XX Bilyan Borisov * gcc.target/aarch64/simd/vmulx.x: New. * gcc.target/aarch64/simd/vmulx_f64_2.c: Likewise

Re: [AARCH64][PATCH 2/3] Implementing vmulx_lane NEON intrinsic variants + Changelog

2015-11-09 Thread Bilyan Borisov
On 09/11/15 11:03, Bilyan Borisov wrote: On 03/11/15 11:16, James Greenhalgh wrote: On Fri, Oct 30, 2015 at 09:31:08AM +, Bilyan Borisov wrote: In this patch from the series, all vmulx_lane variants have been implemented as a vdup followed by a vmulx. Existing implementations of

Re: [AARCH64][PATCH 2/3] Implementing vmulx_lane NEON intrinsic variants

2015-11-09 Thread Bilyan Borisov
On 03/11/15 11:16, James Greenhalgh wrote: On Fri, Oct 30, 2015 at 09:31:08AM +, Bilyan Borisov wrote: In this patch from the series, all vmulx_lane variants have been implemented as a vdup followed by a vmulx. Existing implementations of intrinsics were refactored to use this new

[AARCH64][PATCH 3/3] Adding tests to check proper error reporting of out of bounds accesses to vmulx_lane* NEON intrinsics

2015-10-30 Thread Bilyan Borisov
tests that check for the proper error reporting of out of bounds accesses to all the vmulx_lane NEON intrinsics variants. The tests were added separately from the previous patch in order to reduce its size. gcc/testsuite/ 2015-XX-XX Bilyan Borisov * gcc.target/aarch64/advsimd-intrinsics

[AARCH64][PATCH 2/3] Implementing vmulx_lane NEON intrinsic variants

2015-10-30 Thread Bilyan Borisov
fmulx[lane] instruction. In addition, test cases for all new intrinsics were added. Tested on targets aarch64-none-elf and aarch64_be-none-elf. gcc/ 2015-XX-XX Bilyan Borisov * config/aarch64/arm_neon.h (vmulx_lane_f32): New. (vmulx_lane_f64): New. (vmulxq_lane_f32

[AARCH64][PATCH 1/3] Implementing the variants of the vmulx_ NEON intrinsic

2015-10-30 Thread Bilyan Borisov
-none-elf. gcc/ 2015-XX-XX Bilyan Borisov * config/aarch64/aarch64-simd-builtins.def: BUILTIN declaration for fmulx... * config/aarch64/aarch64-simd.md: And its corresponding md pattern. * config/aarch64/arm_neon.h (vmulx_f32): Refactored to call fmulx

[PATCH] [ARM] Replacing variable swaps that use a temporary variable with a call to std::swap in gcc/config/arm/arm.c

2015-09-21 Thread Bilyan Borisov
Replacing variable swaps that use a temporary variable with a call to std::swap. Tested against arm-none-eabi target including a variant with neon enabled. 2015-XX-XX Bilyan Borisov * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced operands[4] operands[5] swap