-
- Downloads
RISC-V: Introduce -mvector-strict-align.
this patch disables movmisalign by default and introduces the -mno-vector-strict-align option to override it and re-enable movmisalign. For now, generic-ooo is the only uarch that supports misaligned vector access. The patch also adds a check_effective_target_riscv_v_misalign_ok to the testsuite which enables or disables the vector misalignment tests depending on whether the target under test can execute a misaligned vle32. Changes from v3: - Adressed Kito's comments. - Made -mscalar-strict-align a real alias. gcc/ChangeLog: * config/riscv/riscv-opts.h (TARGET_VECTOR_MISALIGN_SUPPORTED): Move from here... * config/riscv/riscv.h (TARGET_VECTOR_MISALIGN_SUPPORTED): ...to here and map to riscv_vector_unaligned_access_p. * config/riscv/riscv.opt: Add -mvector-strict-align. * config/riscv/riscv.cc (struct riscv_tune_param): Add vector_unaligned_access. (riscv_override_options_internal): Set riscv_vector_unaligned_access_p. * doc/invoke.texi: Document -mvector-strict-align. gcc/testsuite/ChangeLog: * lib/target-supports.exp: Add check_effective_target_riscv_v_misalign_ok. * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-7.c: Add -mno-vector-strict-align. * gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-10.c: Ditto. * gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-11.c: Ditto. * gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-12.c: Ditto. * gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-8.c: Ditto. * gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-9.c: Ditto. * gcc.target/riscv/rvv/autovec/vls/misalign-1.c: Ditto.
Showing
- gcc/config/riscv/riscv-opts.h 0 additions, 3 deletionsgcc/config/riscv/riscv-opts.h
- gcc/config/riscv/riscv.cc 19 additions, 0 deletionsgcc/config/riscv/riscv.cc
- gcc/config/riscv/riscv.h 5 additions, 0 deletionsgcc/config/riscv/riscv.h
- gcc/config/riscv/riscv.opt 8 additions, 0 deletionsgcc/config/riscv/riscv.opt
- gcc/doc/invoke.texi 17 additions, 0 deletionsgcc/doc/invoke.texi
- gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-7.c 1 addition, 1 deletion...stsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-7.c
- gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-10.c 1 addition, 1 deletion...testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-10.c
- gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-11.c 1 addition, 1 deletion...testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-11.c
- gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-12.c 1 addition, 1 deletion...testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-12.c
- gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-8.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-8.c
- gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-9.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-9.c
- gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/misalign-1.c 1 addition, 1 deletiongcc/testsuite/gcc.target/riscv/rvv/autovec/vls/misalign-1.c
- gcc/testsuite/lib/target-supports.exp 33 additions, 2 deletionsgcc/testsuite/lib/target-supports.exp
Loading
Please register or sign in to comment