aboutsummaryrefslogtreecommitdiff
path: root/libcpp/line-map.cc
diff options
context:
space:
mode:
authorTamar Christina <tamar.christina@arm.com>2023-11-09 14:02:21 +0000
committerTamar Christina <tamar.christina@arm.com>2023-11-09 14:06:07 +0000
commit2ea13fb9c0b56e9b8c0425d101cf81437a5200cf (patch)
treeb08b0df01641cb0d615d36171aac5f07f800d70c /libcpp/line-map.cc
parentf30ecd8050444fb902ab66b4600c590908861fdf (diff)
downloadgcc-2ea13fb9c0b56e9b8c0425d101cf81437a5200cf.zip
gcc-2ea13fb9c0b56e9b8c0425d101cf81437a5200cf.tar.gz
gcc-2ea13fb9c0b56e9b8c0425d101cf81437a5200cf.tar.bz2
AArch64: Add special patterns for creating DI scalar and vector constant 1 << 63 [PR109154]
This adds a way to generate special sequences for creation of constants for which we don't have single instructions sequences which would have normally lead to a GP -> FP transfer or a literal load. The patch starts out by adding support for creating 1 << 63 using fneg (mov 0). gcc/ChangeLog: PR tree-optimization/109154 * config/aarch64/aarch64-protos.h (aarch64_simd_special_constant_p, aarch64_maybe_generate_simd_constant): New. * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VQMOV:mode>, *aarch64_simd_mov<VDMOV:mode>): Add new coden for special constants. * config/aarch64/aarch64.cc (aarch64_extract_vec_duplicate_wide_int): Take optional mode. (aarch64_simd_special_constant_p, aarch64_maybe_generate_simd_constant): New. * config/aarch64/aarch64.md (*movdi_aarch64): Add new codegen for special constants. * config/aarch64/constraints.md (Dx): new. gcc/testsuite/ChangeLog: PR tree-optimization/109154 * gcc.target/aarch64/fneg-abs_1.c: Updated. * gcc.target/aarch64/fneg-abs_2.c: Updated. * gcc.target/aarch64/fneg-abs_4.c: Updated. * gcc.target/aarch64/dbl_mov_immediate_1.c: Updated.
Diffstat (limited to 'libcpp/line-map.cc')
0 files changed, 0 insertions, 0 deletions