aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.cc
diff options
context:
space:
mode:
authorHu, Lin1 <lin1.hu@intel.com>2024-03-20 16:01:45 +0800
committerHu, Lin1 <lin1.hu@intel.com>2024-06-18 09:09:39 +0800
commit7c6f79eea9febce3b21c5783bac9b0a36e08f003 (patch)
tree0deee4462c88369433cdf46fdaf89a9b1f37d2d7 /gcc/expr.cc
parent31e275d7d763d3fd3f3dd0a20c54e46dd1c9254d (diff)
downloadgcc-7c6f79eea9febce3b21c5783bac9b0a36e08f003.zip
gcc-7c6f79eea9febce3b21c5783bac9b0a36e08f003.tar.gz
gcc-7c6f79eea9febce3b21c5783bac9b0a36e08f003.tar.bz2
i386: Handle target of __builtin_ia32_cmp[p|s][s|d] from avx into sse/sse2/avx
gcc/ChangeLog: * config/i386/avxintrin.h: Move cmp[p|s][s|d] to [e|x]mmintrin.h, and move macros to xmmintrin.h * config/i386/emmintrin.h: Add cmp[p|s]s intrins. * config/i386/i386-builtin.def: Modify __builtin_ia32_cmp[p|s][s|d]. * config/i386/i386-expand.cc (ix86_expand_args_builtin): Raise error when imm is in range of [8, 32] without avx. * config/i386/predicates.md (cmpps_imm_operand): New predicate. * config/i386/sse.md (avx_cmp<mode>3): Modefy define_insn. (avx_vmcmp<mode>3): Ditto. * config/i386/xmmintrin.h (_CMP_EQ_OQ): New macro for sse/sse2. (_CMP_LT_OS): Ditto (_CMP_LE_OS): Ditto (_CMP_UNORD_Q): Ditto (_CMP_NEQ_UQ): Ditto (_CMP_NLT_US): Ditto (_CMP_NLE_US): Ditto (_CMP_ORD_Q): Ditto (_mm_cmp_ps): Move intrin from avxintrin.h to xmmintrin.h (_mm_cmp_ss): Ditto. gcc/testsuite/ChangeLog: * gcc.target/i386/sse-cmp-1.c: New test. * gcc.target/i386/sse-cmp-2.c: Ditto. * gcc.target/i386/sse-cmp-error.c: Ditto.
Diffstat (limited to 'gcc/expr.cc')
0 files changed, 0 insertions, 0 deletions