These patches are a series of improved patches to the __builtin_convertvector for x86-64-v4 and x86-64-v3.
I modified the first patch according to Richard's suggestion and send them out together to show my complete modification of the function. They are bootstrapped and regtested on x86_64-pc-linux-gnu. BRs, Lin Hu, Lin1 (3): vect: generate suitable convert insn for int -> int, float -> float and int <-> float. vect: Support v4hi -> v4qi. vect: support direct conversion under x86-64-v3. gcc/config/i386/i386-expand.cc | 47 +++- gcc/config/i386/i386-protos.h | 3 + gcc/config/i386/mmx.md | 10 + gcc/config/i386/sse.md | 87 ++++++-- gcc/testsuite/gcc.target/i386/pr107432-1.c | 244 +++++++++++++++++++++ gcc/testsuite/gcc.target/i386/pr107432-2.c | 105 +++++++++ gcc/testsuite/gcc.target/i386/pr107432-3.c | 55 +++++ gcc/testsuite/gcc.target/i386/pr107432-4.c | 56 +++++ gcc/testsuite/gcc.target/i386/pr107432-5.c | 72 ++++++ gcc/testsuite/gcc.target/i386/pr107432-6.c | 152 +++++++++++++ gcc/testsuite/gcc.target/i386/pr107432-7.c | 156 +++++++++++++ gcc/testsuite/gcc.target/i386/pr107432-8.c | 73 ++++++ gcc/testsuite/gcc.target/i386/pr107432-9.c | 121 ++++++++++ gcc/testsuite/gcc.target/i386/pr92645-4.c | 2 - gcc/tree-vect-generic.cc | 157 ++++++++++++- 15 files changed, 1305 insertions(+), 35 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr107432-1.c create mode 100644 gcc/testsuite/gcc.target/i386/pr107432-2.c create mode 100644 gcc/testsuite/gcc.target/i386/pr107432-3.c create mode 100644 gcc/testsuite/gcc.target/i386/pr107432-4.c create mode 100644 gcc/testsuite/gcc.target/i386/pr107432-5.c create mode 100644 gcc/testsuite/gcc.target/i386/pr107432-6.c create mode 100644 gcc/testsuite/gcc.target/i386/pr107432-7.c create mode 100644 gcc/testsuite/gcc.target/i386/pr107432-8.c create mode 100644 gcc/testsuite/gcc.target/i386/pr107432-9.c -- 2.31.1