diff options
author | liuhongt <hongtao.liu@intel.com> | 2020-07-20 10:13:58 +0800 |
---|---|---|
committer | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-17 15:07:52 -0300 |
commit | 03b4e861518e65400524aaaefabb7813aba5fdae (patch) | |
tree | 18d7aed4905a9d449972b6a11aee3c9bb59c480e /gcc/fortran/trans-expr.c | |
parent | 4e4cf0e8a6606a8dcba2e08d1e9ec45accf4d15c (diff) | |
download | gcc-03b4e861518e65400524aaaefabb7813aba5fdae.zip gcc-03b4e861518e65400524aaaefabb7813aba5fdae.tar.gz gcc-03b4e861518e65400524aaaefabb7813aba5fdae.tar.bz2 |
Using UNSPEC for vector compare to mask register.
For rtx like (eq:HI (V8SI 90) (V8SI 91)), cse will take it as a
boolean value and try to do some optimization. But it is not true for
vector compare, also other places in rtl passes hold the same
assumption.
2020-07-20 Hongtao Liu <hongtao.liu@intel.com>
gcc/
PR target/96243
* config/i386/i386-expand.c (ix86_expand_sse_cmp): Refine for
maskcmp.
(ix86_expand_mask_vec_cmp): Change prototype.
* config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): Change prototype.
* config/i386/i386.c (ix86_print_operand): Remove operand
modifier 'I'.
* config/i386/sse.md
(*<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): Deleted.
(*<avx512>_cmp<mode>3<mask_scalar_merge_name>): Ditto.
(*<avx512>_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
(*<avx512>_ucmp<mode>3<mask_scalar_merge_name>,
avx512f_maskcmp<mode>3): Ditto.
gcc/testsuite
* gcc.target/i386/pr92865-1.c: Adjust testcase.
Diffstat (limited to 'gcc/fortran/trans-expr.c')
0 files changed, 0 insertions, 0 deletions