re PR target/82580 (Optimize comparisons for __int128 on x86-64)
authorUros Bizjak <uros@gcc.gnu.org>
Wed, 18 Oct 2017 20:19:05 +0000 (22:19 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 18 Oct 2017 20:19:05 +0000 (22:19 +0200)
commitfe94440235cfaa57ee1c18abfde29c20fa3ff863
tree71539ec766a5bfb60fbce3e1155fdd91d1dc7dfc
parente61a4f52126624a6fdd0c63e9f39b53095190a77
re PR target/82580 (Optimize comparisons for __int128 on x86-64)

PR target/82580
* config/i386/i386-modes.def (CCGZ): New CC mode.
* config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
* config/i386/predicates.md (ix86_comparison_operator):
Handle CCGZmode.
* config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
with double-word subtraction.
(put_condition_code): Handle CCGZmode.

testsuite/ChangeLog:

PR target/82580
* gcc.target/i386/pr82580.c: New test.

From-SVN: r253867
gcc/ChangeLog
gcc/config/i386/i386-modes.def
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/config/i386/predicates.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr82580.c [new file with mode: 0644]