diff options
author | Hu, Lin1 <lin1.hu@intel.com> | 2024-03-20 16:01:45 +0800 |
---|---|---|
committer | Hu, Lin1 <lin1.hu@intel.com> | 2024-06-18 09:09:39 +0800 |
commit | 7c6f79eea9febce3b21c5783bac9b0a36e08f003 (patch) | |
tree | 0deee4462c88369433cdf46fdaf89a9b1f37d2d7 /gcc/expr.cc | |
parent | 31e275d7d763d3fd3f3dd0a20c54e46dd1c9254d (diff) | |
download | gcc-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