https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115836

--- Comment #8 from Uroš Bizjak <ubizjak at gmail dot com> ---
Some more explanation:

Later in emit_store_flag_1 we have:

     if (icode != CODE_FOR_nothing)
        {
          do_pending_stack_adjust ();
          rtx tem = emit_cstore (target, icode, code, mode, compare_mode,
                                 unsignedp, op0, op1, normalizep, target_mode);
          if (tem)
            return tem;

          if (GET_MODE_CLASS (mode) == MODE_FLOAT)
            {
              tem = emit_cstore (target, icode, scode, mode, compare_mode,
                                 unsignedp, op1, op0, normalizep, target_mode);
              if (tem)
                return tem;
            }
          break;
        }

and in our concrete case when the compiler enters emit_store_flag_1 with:

op0=(subreg:SF (reg:SI 424 [ _676 ]) 0)
op1=(reg:SF 1308)

and

code=GT,

the compiler enters the above part with 

op0=(reg:SF 1308)
op1=(subreg:SF (reg:SI 424 [ _676 ]) 0)

and "code" and "scode" equal to LT.

Reply via email to