aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.cc
diff options
context:
space:
mode:
authorLevy Hsu <admin@levyhsu.com>2024-06-13 15:20:04 +0930
committerLevy Hsu <admin@levyhsu.com>2024-06-17 06:57:17 +0000
commit6d0b7b69d143025f271d0041cfa29cf26e6c343b (patch)
tree1573a73cca19a0ca7080a987e248b3df4466a60f /gcc/expr.cc
parente86d4e4ac7d7438f2f1b2437508cfd394a0a34d9 (diff)
downloadgcc-6d0b7b69d143025f271d0041cfa29cf26e6c343b.zip
gcc-6d0b7b69d143025f271d0041cfa29cf26e6c343b.tar.gz
gcc-6d0b7b69d143025f271d0041cfa29cf26e6c343b.tar.bz2
x86: Emit cvtne2ps2bf16 for odd increasing perm in __builtin_shufflevector
This patch updates the GCC x86 backend to efficiently handle odd, incrementally increasing permutations of BF16 vectors using the cvtne2ps2bf16 instruction. It modifies ix86_vectorize_vec_perm_const to support these operations and adds a specific predicate to ensure proper sequence handling. gcc/ChangeLog: * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Convert BF to HI using subreg. * config/i386/predicates.md (vcvtne2ps2bf_parallel): New define_insn_and_split. * config/i386/sse.md (vpermt2_sepcial_bf16_shuffle_<mode>): New predicates matches odd increasing perm. gcc/testsuite/ChangeLog: * gcc.target/i386/vpermt2-special-bf16-shufflue.c: New test.
Diffstat (limited to 'gcc/expr.cc')
0 files changed, 0 insertions, 0 deletions