PR target/30485
* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
support for UNLE, UNLT, UNGE, and UNGT.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120902
138bc75d-0d04-0410-961f-
82ee72b054a4
+2007-01-18 Josh Conner <jconner@apple.com>
+
+ PR target/30485
+ * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
+ support for UNLE, UNLT, UNGE, and UNGT.
+
2007-01-18 Jan Hubicka <jh@suse.cz>
* tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
try_again = true;
break;
case NE:
- /* Treat A != B as ~(A==B). */
+ case UNLE:
+ case UNLT:
+ case UNGE:
+ case UNGT:
+ /* Invert condition and try again.
+ e.g., A != B becomes ~(A==B). */
{
+ enum rtx_code rev_code;
enum insn_code nor_code;
- rtx eq_rtx = rs6000_emit_vector_compare (EQ, op0, op1,
+
+ rev_code = reverse_condition_maybe_unordered (rcode);
+ rtx eq_rtx = rs6000_emit_vector_compare (rev_code, op0, op1,
dest_mode);
nor_code = one_cmpl_optab->handlers[(int)dest_mode].insn_code;