This series prepares for a future architecture. Pushed. Stefan Schulze Frielinghaus (18): s390: Stay scalar for TOINTVEC/tointvec s390: Sort definitions in vecintrin.h s390: arch15: Prepare for a future architecture s390: Bump __VEC__ and add 128-bit integer zvector types s390: arch15: Prepare for future builtins s390: arch15: New instruction variants supporting 128-bit integer s390: arch15: Load indexed address s390: arch15: Bit deposit and extract s390: arch15: Vector blend s390: arch15: Vector eval s390: arch15: Vector generate element masks s390: arch15: Count leading/trailing zeros s390: arch15: Vector devide/remainder s390: arch15: Vector compare: Add 128-bit integer support s390: arch15: Vector load positive: Add 128-bit integer support s390: arch15: Vector maximum/minimum: Add 128-bit integer support s390: Vector shift: Add 128-bit integer support s390: Update vec_(load,store)_len(,_r)
gcc/common/config/s390/s390-common.cc | 6 +- gcc/config.gcc | 2 +- gcc/config/s390/driver-native.cc | 2 +- gcc/config/s390/s390-builtin-types.def | 123 +++- gcc/config/s390/s390-builtins.def | 568 ++++++++++++++---- gcc/config/s390/s390-c.cc | 37 +- gcc/config/s390/s390-opts.h | 1 + gcc/config/s390/s390.cc | 16 +- gcc/config/s390/s390.h | 22 +- gcc/config/s390/s390.md | 212 ++++++- gcc/config/s390/s390.opt | 3 + gcc/config/s390/vecintrin.h | 250 ++++---- gcc/config/s390/vector.md | 359 ++++++++--- gcc/config/s390/vx-builtins.md | 329 +++++----- gcc/testsuite/gcc.target/s390/llxa-1.c | 34 ++ gcc/testsuite/gcc.target/s390/llxa-2.c | 34 ++ gcc/testsuite/gcc.target/s390/llxa-3.c | 41 ++ gcc/testsuite/gcc.target/s390/lxa-1.c | 34 ++ gcc/testsuite/gcc.target/s390/lxa-2.c | 34 ++ gcc/testsuite/gcc.target/s390/lxa-3.c | 34 ++ gcc/testsuite/gcc.target/s390/lxa-4.c | 42 ++ gcc/testsuite/gcc.target/s390/s390.exp | 3 + .../gcc.target/s390/vector/vec-abs-emu.c | 46 ++ .../gcc.target/s390/vector/vec-max-emu.c | 57 ++ .../gcc.target/s390/vector/vec-min-emu.c | 57 ++ .../gcc.target/s390/vector/vec-shift-10.c | 54 ++ .../gcc.target/s390/vector/vec-shift-11.c | 39 ++ .../gcc.target/s390/vector/vec-shift-12.c | 39 ++ .../gcc.target/s390/vector/vec-shift-3.c | 34 ++ .../gcc.target/s390/vector/vec-shift-4.c | 29 + .../gcc.target/s390/vector/vec-shift-5.c | 34 ++ .../gcc.target/s390/vector/vec-shift-6.c | 29 + .../gcc.target/s390/vector/vec-shift-7.c | 34 ++ .../gcc.target/s390/vector/vec-shift-8.c | 29 + .../gcc.target/s390/vector/vec-shift-9.c | 54 ++ gcc/testsuite/gcc.target/s390/vxe3/vd-1.c | 27 + gcc/testsuite/gcc.target/s390/vxe3/vd-2.c | 21 + gcc/testsuite/gcc.target/s390/vxe3/vdl-1.c | 27 + gcc/testsuite/gcc.target/s390/vxe3/vdl-2.c | 21 + gcc/testsuite/gcc.target/s390/vxe3/veval-1.c | 9 + gcc/testsuite/gcc.target/s390/vxe3/veval-2.c | 9 + gcc/testsuite/gcc.target/s390/vxe3/veval-3.c | 9 + gcc/testsuite/gcc.target/s390/vxe3/veval-4.c | 9 + gcc/testsuite/gcc.target/s390/vxe3/veval-5.c | 9 + gcc/testsuite/gcc.target/s390/vxe3/veval-6.c | 9 + gcc/testsuite/gcc.target/s390/vxe3/veval-7.c | 9 + gcc/testsuite/gcc.target/s390/vxe3/veval-8.c | 9 + gcc/testsuite/gcc.target/s390/vxe3/veval-9.c | 9 + gcc/testsuite/gcc.target/s390/vxe3/vr-1.c | 27 + gcc/testsuite/gcc.target/s390/vxe3/vr-2.c | 21 + gcc/testsuite/gcc.target/s390/vxe3/vrl-1.c | 27 + gcc/testsuite/gcc.target/s390/vxe3/vrl-2.c | 21 + gcc/testsuite/lib/target-supports.exp | 16 + 53 files changed, 2526 insertions(+), 484 deletions(-) create mode 100644 gcc/testsuite/gcc.target/s390/llxa-1.c create mode 100644 gcc/testsuite/gcc.target/s390/llxa-2.c create mode 100644 gcc/testsuite/gcc.target/s390/llxa-3.c create mode 100644 gcc/testsuite/gcc.target/s390/lxa-1.c create mode 100644 gcc/testsuite/gcc.target/s390/lxa-2.c create mode 100644 gcc/testsuite/gcc.target/s390/lxa-3.c create mode 100644 gcc/testsuite/gcc.target/s390/lxa-4.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-abs-emu.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-max-emu.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-min-emu.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-shift-10.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-shift-11.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-shift-12.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-shift-3.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-shift-4.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-shift-5.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-shift-6.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-shift-7.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-shift-8.c create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-shift-9.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/vd-1.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/vd-2.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/vdl-1.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/vdl-2.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/veval-1.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/veval-2.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/veval-3.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/veval-4.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/veval-5.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/veval-6.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/veval-7.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/veval-8.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/veval-9.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/vr-1.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/vr-2.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/vrl-1.c create mode 100644 gcc/testsuite/gcc.target/s390/vxe3/vrl-2.c -- 2.47.0