aarch64: Add masked-load else operands.
This adds zero else operands to masked loads and their intrinsics. I needed to adjust more than initially thought because we rely on combine for several instructions and a change in a "base" pattern needs to propagate to all those. gcc/ChangeLog: * config/aarch64/aarch64-sve-builtins-base.cc: Add else handling. * config/aarch64/aarch64-sve-builtins.cc (function_expander::use_contiguous_load_insn): Ditto. * config/aarch64/aarch64-sve-builtins.h: Add else operand to contiguous load. * config/aarch64/aarch64-sve.md (@aarch64_load<SVE_PRED_LOAD:pred_load> _<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Split and add else operand. (@aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Ditto. (*aarch64_load_<ANY_EXTEND:optab>_mov<SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Ditto. * config/aarch64/aarch64-sve2.md: Ditto. * config/aarch64/iterators.md: Remove unused iterators. * config/aarch64/predicates.md (aarch64_maskload_else_operand): Add zero else operand.
Showing
- gcc/config/aarch64/aarch64-sve-builtins-base.cc 15 additions, 9 deletionsgcc/config/aarch64/aarch64-sve-builtins-base.cc
- gcc/config/aarch64/aarch64-sve-builtins.cc 10 additions, 2 deletionsgcc/config/aarch64/aarch64-sve-builtins.cc
- gcc/config/aarch64/aarch64-sve-builtins.h 1 addition, 1 deletiongcc/config/aarch64/aarch64-sve-builtins.h
- gcc/config/aarch64/aarch64-sve.md 45 additions, 7 deletionsgcc/config/aarch64/aarch64-sve.md
- gcc/config/aarch64/aarch64-sve2.md 2 additions, 1 deletiongcc/config/aarch64/aarch64-sve2.md
- gcc/config/aarch64/iterators.md 0 additions, 4 deletionsgcc/config/aarch64/iterators.md
- gcc/config/aarch64/predicates.md 4 additions, 0 deletionsgcc/config/aarch64/predicates.md
Loading
Please register or sign in to comment