This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
ifcvt question
- From: Eric Botcazou <ebotcazou at libertysurf dot fr>
- To: gcc at gcc dot gnu dot org
- Date: Fri, 21 Mar 2003 12:50:46 +0100
- Subject: ifcvt question
Hi,
This is related to PR target/10072, a high-priority PR on the 3.3 branch and
mainline for Sparc.
The ifcvt pass generates the following insn:
(insn 72 71 53 0 0x40184140 (set (reg:SF 141)
(if_then_else:SF (eq:CC (reg:CC 100 %icc)
(const_int 0 [0x0]))
(reg:SF 146)
(reg:SF 141))) -1 (nil)
(nil))
Now, according to the docs:
"The mode of the comparison operation is independent of the mode of the data
being compared. If the comparison operation is being tested (e.g., the
first operand of an `if_then_else'), the mode must be `VOIDmode'. If the
comparison operation is producing data to be stored in some variable, the
mode must be in class `MODE_INT'. All comparison operations producing data
must use the same mode, which is machine-specific."
So the (eq:CC) comparison operation doesn't follow the documentation. Which
one must be corrected?
--
Eric Botcazou