From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <gcc-patches-return-52334-listarch-gcc-patches=gcc.gnu.org@gcc.gnu.org> Received: (qmail 15564 invoked by alias); 4 Feb 2002 00:57:15 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: <http://gcc.gnu.org/ml/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-help@gcc.gnu.org> Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 15471 invoked from network); 4 Feb 2002 00:57:14 -0000 Received: from unknown (HELO igw3.watson.ibm.com) (198.81.209.18) by sources.redhat.com with SMTP; 4 Feb 2002 00:57:14 -0000 Received: from sp1n293en1.watson.ibm.com (sp1n293en1.watson.ibm.com [9.2.112.57]) by igw3.watson.ibm.com (8.11.4/8.11.4) with ESMTP id g140v7i17946; Sun, 3 Feb 2002 19:57:07 -0500 Received: from makai.watson.ibm.com (makai.watson.ibm.com [9.2.216.144]) by sp1n293en1.watson.ibm.com (8.11.4/8.11.4) with ESMTP id g140v7O29618; Sun, 3 Feb 2002 19:57:07 -0500 Received: from watson.ibm.com (localhost [127.0.0.1]) by makai.watson.ibm.com (AIX4.3/8.9.3/8.9.3/01-10-2000) with ESMTP id TAA21984; Sun, 3 Feb 2002 19:57:07 -0500 Message-Id: <200202040057.TAA21984@makai.watson.ibm.com> To: Geoff Keating <geoffk@redhat.com> cc: gcc-patches@gcc.gnu.org Subject: [PATCH] PowerPC fsel PR5217 Date: Sun, 03 Feb 2002 19:14:00 -0000 From: David Edelsohn <dje@watson.ibm.com> X-SW-Source: 2002-02/txt/msg00200.txt.bz2 This problem seems to be a mismatch between the mode of the if_then_else in the generated RTL versus the machine description. I think this mixed mode pattern only can be generated by GCC internally, not any machine description pattern, so we might as well follow the canonical modes that GCC chooses. Does this seem correct to you, Geoff? Or should the if_then_else be the other mode? David Index: rs6000.md =================================================================== RCS file: /cvs/gcc/egcs/gcc/config/rs6000/rs6000.md,v retrieving revision 1.162 diff -c -p -r1.162 rs6000.md *** rs6000.md 2002/01/29 22:49:55 1.162 --- rs6000.md 2002/02/04 00:46:26 *************** *** 5084,5090 **** (define_insn "*fseldfsf4" [(set (match_operand:SF 0 "gpc_reg_operand" "=f") ! (if_then_else:SF (ge (match_operand:DF 1 "gpc_reg_operand" "f") (match_operand:DF 4 "zero_fp_constant" "F")) (match_operand:SF 2 "gpc_reg_operand" "f") (match_operand:SF 3 "gpc_reg_operand" "f")))] --- 5084,5090 ---- (define_insn "*fseldfsf4" [(set (match_operand:SF 0 "gpc_reg_operand" "=f") ! (if_then_else:DF (ge (match_operand:DF 1 "gpc_reg_operand" "f") (match_operand:DF 4 "zero_fp_constant" "F")) (match_operand:SF 2 "gpc_reg_operand" "f") (match_operand:SF 3 "gpc_reg_operand" "f")))] *************** *** 5248,5254 **** (define_insn "*fselsfdf4" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") ! (if_then_else:DF (ge (match_operand:SF 1 "gpc_reg_operand" "f") (match_operand:SF 4 "zero_fp_constant" "F")) (match_operand:DF 2 "gpc_reg_operand" "f") (match_operand:DF 3 "gpc_reg_operand" "f")))] --- 5248,5254 ---- (define_insn "*fselsfdf4" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") ! (if_then_else:SF (ge (match_operand:SF 1 "gpc_reg_operand" "f") (match_operand:SF 4 "zero_fp_constant" "F")) (match_operand:DF 2 "gpc_reg_operand" "f") (match_operand:DF 3 "gpc_reg_operand" "f")))]