aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorHu, Lin1 <lin1.hu@intel.com>2024-09-02 10:24:31 +0800
committerHaochen Jiang <haochen.jiang@intel.com>2024-09-02 10:24:31 +0800
commit86f5031c804220274a9bbebd26b8ebf47a2207ac (patch)
treea4318ed7c083e733ef8c69f3ffa0c7dcc6e1681e /gcc/tree-vectorizer.h
parentb1f9fbb6da1a3ced57c3668cecc9f9449e1b237e (diff)
downloadgcc-86f5031c804220274a9bbebd26b8ebf47a2207ac.zip
gcc-86f5031c804220274a9bbebd26b8ebf47a2207ac.tar.gz
gcc-86f5031c804220274a9bbebd26b8ebf47a2207ac.tar.bz2
i386: Optimize ordered and nonequal
Currently, when we input !__builtin_isunordered (a, b) && (a != b), gcc will emit ucomiss %xmm1, %xmm0 movl $1, %ecx setp %dl setnp %al cmovne %ecx, %edx andl %edx, %eax movzbl %al, %eax In fact, xorl %eax, %eax ucomiss %xmm1, %xmm0 setne %al is better. gcc/ChangeLog: * match.pd: Optimize (and ordered non-equal) to (not (or unordered equal)) gcc/testsuite/ChangeLog: * gcc.target/i386/optimize_one.c: New test.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions