-
- Downloads
Fold blendv builtins into gimple.
Fold __builtin_ia32_pblendvb128 (a, b, c) as VEC_COND_EXPR (c < 0, b, a), similar for float version but with mask operand VIEW_CONVERT_EXPR to same sized integer vectype. gcc/ChangeLog: * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256, IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS, IX86_BUILTIN_PBLENDVB128): Replace icode with CODE_FOR_nothing. * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv builtins. * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not): New pre_reload splitter. gcc/testsuite/ChangeLog: * gcc.target/i386/funcspec-8.c: Replace __builtin_ia32_blendvpd with __builtin_ia32_roundps_az. * gcc.target/i386/blendv-1.c: New test. * gcc.target/i386/blendv-2.c: New test.
Showing
- gcc/config/i386/i386-builtin.def 6 additions, 6 deletionsgcc/config/i386/i386-builtin.def
- gcc/config/i386/i386.c 37 additions, 0 deletionsgcc/config/i386/i386.c
- gcc/config/i386/sse.md 22 additions, 0 deletionsgcc/config/i386/sse.md
- gcc/testsuite/gcc.target/i386/blendv-1.c 51 additions, 0 deletionsgcc/testsuite/gcc.target/i386/blendv-1.c
- gcc/testsuite/gcc.target/i386/blendv-2.c 41 additions, 0 deletionsgcc/testsuite/gcc.target/i386/blendv-2.c
- gcc/testsuite/gcc.target/i386/funcspec-8.c 8 additions, 8 deletionsgcc/testsuite/gcc.target/i386/funcspec-8.c
Loading
Please register or sign in to comment