Annotation of gcc/config/ns32k/ns32k.md, revision 1.1

1.1     ! root        1: ; BUGS:
        !             2: ;; Insert no-op between an insn with memory read-write operands
        !             3: ;;   following by a scale-indexing operation.
        !             4: ;; The Sequent assembler does not allow addresses to be used
        !             5: ;;   except in insns which explicitly compute an effective address.
        !             6: ;;   I.e., one cannot say "cmpd _p,@_x"
        !             7: ;; Implement unsigned multiplication??
        !             8: 
        !             9: ;;- Machine description for GNU compiler
        !            10: ;;- ns32000 Version
        !            11: ;;   Copyright (C) 1988 Free Software Foundation, Inc.
        !            12: ;;   Contributed by Michael Tiemann ([email protected])
        !            13: 
        !            14: ;; This file is part of GNU CC.
        !            15: 
        !            16: ;; GNU CC is free software; you can redistribute it and/or modify
        !            17: ;; it under the terms of the GNU General Public License as published by
        !            18: ;; the Free Software Foundation; either version 2, or (at your option)
        !            19: ;; any later version.
        !            20: 
        !            21: ;; GNU CC is distributed in the hope that it will be useful,
        !            22: ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            23: ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            24: ;; GNU General Public License for more details.
        !            25: 
        !            26: ;; You should have received a copy of the GNU General Public License
        !            27: ;; along with GNU CC; see the file COPYING.  If not, write to
        !            28: ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
        !            29: 
        !            30: 
        !            31: ;;- Instruction patterns.  When multiple patterns apply,
        !            32: ;;- the first one in the file is chosen.
        !            33: ;;-
        !            34: ;;- See file "rtl.def" for documentation on define_insn, match_*, et. al.
        !            35: ;;-
        !            36: ;;- cpp macro #define NOTICE_UPDATE_CC in file tm.h handles condition code
        !            37: ;;- updates for most instructions.
        !            38: 
        !            39: ;; We don't want to allow a constant operand for test insns because
        !            40: ;; (set (cc0) (const_int foo)) has no mode information.  Such insns will
        !            41: ;; be folded while optimizing anyway.
        !            42: 
        !            43: (define_insn "tstsi"
        !            44:   [(set (cc0)
        !            45:        (match_operand:SI 0 "nonimmediate_operand" "rm"))]
        !            46:   ""
        !            47:   "*
        !            48: { cc_status.flags |= CC_REVERSED;
        !            49:   operands[1] = const0_rtx;
        !            50:   return \"cmpqd %1,%0\"; }")
        !            51: 
        !            52: (define_insn "tsthi"
        !            53:   [(set (cc0)
        !            54:        (match_operand:HI 0 "nonimmediate_operand" "g"))]
        !            55:   ""
        !            56:   "*
        !            57: { cc_status.flags |= CC_REVERSED;
        !            58:   operands[1] = const0_rtx;
        !            59:   return \"cmpqw %1,%0\"; }")
        !            60: 
        !            61: (define_insn "tstqi"
        !            62:   [(set (cc0)
        !            63:        (match_operand:QI 0 "nonimmediate_operand" "g"))]
        !            64:   ""
        !            65:   "*
        !            66: { cc_status.flags |= CC_REVERSED;
        !            67:   operands[1] = const0_rtx;
        !            68:   return \"cmpqb %1,%0\"; }")
        !            69: 
        !            70: (define_insn "tstdf"
        !            71:   [(set (cc0)
        !            72:        (match_operand:DF 0 "general_operand" "fmF"))]
        !            73:   "TARGET_32081"
        !            74:   "*
        !            75: { cc_status.flags |= CC_REVERSED;
        !            76:   operands[1] = CONST0_RTX (DFmode);
        !            77:   return \"cmpl %1,%0\"; }")
        !            78: 
        !            79: (define_insn "tstsf"
        !            80:   [(set (cc0)
        !            81:        (match_operand:SF 0 "general_operand" "fmF"))]
        !            82:   "TARGET_32081"
        !            83:   "*
        !            84: { cc_status.flags |= CC_REVERSED;
        !            85:   operands[1] = CONST0_RTX (SFmode);
        !            86:   return \"cmpf %1,%0\"; }")
        !            87: 
        !            88: (define_insn "cmpsi"
        !            89:   [(set (cc0)
        !            90:        (compare (match_operand:SI 0 "nonimmediate_operand" "rmn")
        !            91:                 (match_operand:SI 1 "general_operand" "rmn")))]
        !            92:   ""
        !            93:   "*
        !            94: {
        !            95:   if (GET_CODE (operands[1]) == CONST_INT)
        !            96:     {
        !            97:       int i = INTVAL (operands[1]);
        !            98:       if (i <= 7 && i >= -8)
        !            99:        {
        !           100:          cc_status.flags |= CC_REVERSED;
        !           101:          return \"cmpqd %1,%0\";
        !           102:        }
        !           103:     }
        !           104:   cc_status.flags &= ~CC_REVERSED;
        !           105:   if (GET_CODE (operands[0]) == CONST_INT)
        !           106:     {
        !           107:       int i = INTVAL (operands[0]);
        !           108:       if (i <= 7 && i >= -8)
        !           109:        return \"cmpqd %0,%1\";
        !           110:     }
        !           111:   return \"cmpd %0,%1\";
        !           112: }")
        !           113: 
        !           114: (define_insn "cmphi"
        !           115:   [(set (cc0)
        !           116:        (compare (match_operand:HI 0 "nonimmediate_operand" "g")
        !           117:                 (match_operand:HI 1 "general_operand" "g")))]
        !           118:   ""
        !           119:   "*
        !           120: {
        !           121:   if (GET_CODE (operands[1]) == CONST_INT)
        !           122:     {
        !           123:       short i = INTVAL (operands[1]);
        !           124:     if (i <= 7 && i >= -8)
        !           125:       {
        !           126:        cc_status.flags |= CC_REVERSED;
        !           127:        if (INTVAL (operands[1]) > 7)
        !           128:          operands[1] = gen_rtx(CONST_INT, VOIDmode, i);
        !           129:        return \"cmpqw %1,%0\";
        !           130:       }
        !           131:     }
        !           132:   cc_status.flags &= ~CC_REVERSED;
        !           133:   if (GET_CODE (operands[0]) == CONST_INT)
        !           134:     {
        !           135:       short i = INTVAL (operands[0]);
        !           136:       if (i <= 7 && i >= -8)
        !           137:        {
        !           138:          if (INTVAL (operands[0]) > 7)
        !           139:            operands[0] = gen_rtx(CONST_INT, VOIDmode, i);
        !           140:          return \"cmpqw %0,%1\";
        !           141:        }
        !           142:     }
        !           143:   return \"cmpw %0,%1\";
        !           144: }")
        !           145: 
        !           146: (define_insn "cmpqi"
        !           147:   [(set (cc0)
        !           148:        (compare (match_operand:QI 0 "nonimmediate_operand" "g")
        !           149:                 (match_operand:QI 1 "general_operand" "g")))]
        !           150:   ""
        !           151:   "*
        !           152: {
        !           153:   if (GET_CODE (operands[1]) == CONST_INT)
        !           154:     {
        !           155:       char i = INTVAL (operands[1]);
        !           156:       if (i <= 7 && i >= -8)
        !           157:        {
        !           158:          cc_status.flags |= CC_REVERSED;
        !           159:          if (INTVAL (operands[1]) > 7)
        !           160:            operands[1] = gen_rtx(CONST_INT, VOIDmode, i);
        !           161:          return \"cmpqb %1,%0\";
        !           162:        }
        !           163:     }
        !           164:   cc_status.flags &= ~CC_REVERSED;
        !           165:   if (GET_CODE (operands[0]) == CONST_INT)
        !           166:     {
        !           167:       char i = INTVAL (operands[0]);
        !           168:       if (i <= 7 && i >= -8)
        !           169:        {
        !           170:          if (INTVAL (operands[0]) > 7)
        !           171:            operands[0] = gen_rtx(CONST_INT, VOIDmode, i);
        !           172:          return \"cmpqb %0,%1\";
        !           173:        }
        !           174:     }
        !           175:   return \"cmpb %0,%1\";
        !           176: }")
        !           177: 
        !           178: (define_insn "cmpdf"
        !           179:   [(set (cc0)
        !           180:        (compare (match_operand:DF 0 "general_operand" "fmF")
        !           181:                 (match_operand:DF 1 "general_operand" "fmF")))]
        !           182:   "TARGET_32081"
        !           183:   "cmpl %0,%1")
        !           184: 
        !           185: (define_insn "cmpsf"
        !           186:   [(set (cc0)
        !           187:        (compare (match_operand:SF 0 "general_operand" "fmF")
        !           188:                 (match_operand:SF 1 "general_operand" "fmF")))]
        !           189:   "TARGET_32081"
        !           190:   "cmpf %0,%1")
        !           191: 
        !           192: (define_insn "movdf"
        !           193:   [(set (match_operand:DF 0 "general_operand" "=&fg<")
        !           194:        (match_operand:DF 1 "general_operand" "fFg"))]
        !           195:   ""
        !           196:   "*
        !           197: {
        !           198:   if (FP_REG_P (operands[0]))
        !           199:     {
        !           200:       if (FP_REG_P (operands[1]) || GET_CODE (operands[1]) == CONST_DOUBLE)
        !           201:        return \"movl %1,%0\";
        !           202:       if (REG_P (operands[1]))
        !           203:        {
        !           204:          rtx xoperands[2];
        !           205:          xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
        !           206:          output_asm_insn (\"movd %1,tos\", xoperands);
        !           207:          output_asm_insn (\"movd %1,tos\", operands);
        !           208:          return \"movl tos,%0\";
        !           209:        }
        !           210:       return \"movl %1,%0\";
        !           211:     }
        !           212:   else if (FP_REG_P (operands[1]))
        !           213:     {
        !           214:       if (REG_P (operands[0]))
        !           215:        {
        !           216:          output_asm_insn (\"movl %1,tos\;movd tos,%0\", operands);
        !           217:          operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
        !           218:          return \"movd tos,%0\";
        !           219:        }
        !           220:       else
        !           221:         return \"movl %1,%0\";
        !           222:     }
        !           223:   return output_move_double (operands);
        !           224: }")
        !           225: 
        !           226: (define_insn "movsf"
        !           227:   [(set (match_operand:SF 0 "general_operand" "=fg<")
        !           228:        (match_operand:SF 1 "general_operand" "fFg"))]
        !           229:   ""
        !           230:   "*
        !           231: {
        !           232:   if (FP_REG_P (operands[0]))
        !           233:     {
        !           234:       if (GET_CODE (operands[1]) == REG && REGNO (operands[1]) < 8)
        !           235:        return \"movd %1,tos\;movf tos,%0\";
        !           236:       else
        !           237:        return \"movf %1,%0\";
        !           238:     }
        !           239:   else if (FP_REG_P (operands[1]))
        !           240:     {
        !           241:       if (REG_P (operands[0]))
        !           242:        return \"movf %1,tos\;movd tos,%0\";
        !           243:       return \"movf %1,%0\";
        !           244:     }
        !           245: #if 0 /* Someone suggested this for the Sequent.  Is it needed?  */
        !           246:   else if (GET_CODE (operands[1]) == CONST_DOUBLE)
        !           247:     return \"movf %1,%0\";
        !           248: #endif
        !           249: /* There was a #if 0 around this, but that was erroneous
        !           250:    for many machines -- rms.  */
        !           251: #ifndef MOVD_FLOAT_OK
        !           252:   /* GAS understands floating constants in ordinary movd instructions
        !           253:      but other assemblers might object.  */
        !           254:   else if (GET_CODE (operands[1]) == CONST_DOUBLE)
        !           255:     {
        !           256:       union {int i[2]; float f; double d;} convrt;
        !           257:       convrt.i[0] = CONST_DOUBLE_LOW (operands[1]);
        !           258:       convrt.i[1] = CONST_DOUBLE_HIGH (operands[1]);
        !           259:       convrt.f = convrt.d;
        !           260: 
        !           261:       /* Is there a better machine-independent way to to this?  */
        !           262:       operands[1] = gen_rtx (CONST_INT, VOIDmode, convrt.i[0]);
        !           263:       return \"movd %1,%0\";
        !           264:     }
        !           265: #endif
        !           266:   else return \"movd %1,%0\";
        !           267: }")
        !           268: 
        !           269: (define_insn ""
        !           270:   [(set (match_operand:TI 0 "memory_operand" "=m")
        !           271:        (match_operand:TI 1 "memory_operand" "m"))]
        !           272:   ""
        !           273:   "movmd %1,%0,4")
        !           274: 
        !           275: (define_insn "movdi"
        !           276:   [(set (match_operand:DI 0 "general_operand" "=&g<,*f,g")
        !           277:        (match_operand:DI 1 "general_operand" "gF,g,*f"))]
        !           278:   ""
        !           279:   "*
        !           280: {
        !           281:   if (FP_REG_P (operands[0]))
        !           282:     {
        !           283:       if (FP_REG_P (operands[1]) || GET_CODE (operands[1]) == CONST_DOUBLE)
        !           284:        return \"movl %1,%0\";
        !           285:       if (REG_P (operands[1]))
        !           286:        {
        !           287:          rtx xoperands[2];
        !           288:          xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
        !           289:          output_asm_insn (\"movd %1,tos\", xoperands);
        !           290:          output_asm_insn (\"movd %1,tos\", operands);
        !           291:          return \"movl tos,%0\";
        !           292:        }
        !           293:       return \"movl %1,%0\";
        !           294:     }
        !           295:   else if (FP_REG_P (operands[1]))
        !           296:     {
        !           297:       if (REG_P (operands[0]))
        !           298:        {
        !           299:          output_asm_insn (\"movl %1,tos\;movd tos,%0\", operands);
        !           300:          operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
        !           301:          return \"movd tos,%0\";
        !           302:        }
        !           303:       else
        !           304:         return \"movl %1,%0\";
        !           305:     }
        !           306:   return output_move_double (operands);
        !           307: }")
        !           308: 
        !           309: ;; This special case must precede movsi.
        !           310: (define_insn ""
        !           311:   [(set (reg:SI 17)
        !           312:        (match_operand:SI 0 "general_operand" "rmn"))]
        !           313:   ""
        !           314:   "lprd sp,%0")
        !           315: 
        !           316: (define_insn "movsi"
        !           317:   [(set (match_operand:SI 0 "general_operand" "=g<,g<,*f,g")
        !           318:        (match_operand:SI 1 "general_operand" "g,?xy,g,*f"))]
        !           319:   ""
        !           320:   "*
        !           321: {
        !           322:   if (FP_REG_P (operands[0]))
        !           323:     {
        !           324:       if (GET_CODE (operands[1]) == REG && REGNO (operands[1]) < 8)
        !           325:        return \"movd %1,tos\;movf tos,%0\";
        !           326:       else
        !           327:        return \"movf %1,%0\";
        !           328:     }
        !           329:   else if (FP_REG_P (operands[1]))
        !           330:     {
        !           331:       if (REG_P (operands[0]))
        !           332:        return \"movf %1,tos\;movd tos,%0\";
        !           333:       return \"movf %1,%0\";
        !           334:     }
        !           335:   if (GET_CODE (operands[1]) == CONST_INT)
        !           336:     {
        !           337:       int i = INTVAL (operands[1]);
        !           338:       if (i <= 7 && i >= -8)
        !           339:        return \"movqd %1,%0\";
        !           340:       if (i < 0x4000 && i >= -0x4000 && ! TARGET_32532)
        !           341: #if defined (GNX_V3) || defined (UTEK_ASM)
        !           342:        return \"addr %c1,%0\";
        !           343: #else
        !           344:        return \"addr @%c1,%0\";
        !           345: #endif
        !           346:       return \"movd %1,%0\";
        !           347:     }
        !           348:   else if (GET_CODE (operands[1]) == REG)
        !           349:     {
        !           350:       if (REGNO (operands[1]) < 16)
        !           351:         return \"movd %1,%0\";
        !           352:       else if (REGNO (operands[1]) == FRAME_POINTER_REGNUM)
        !           353:        {
        !           354:          if (GET_CODE(operands[0]) == REG)
        !           355:            return \"sprd fp,%0\";
        !           356:          else
        !           357:            return \"addr 0(fp),%0\" ;
        !           358:        }
        !           359:       else if (REGNO (operands[1]) == STACK_POINTER_REGNUM)
        !           360:        {
        !           361:          if (GET_CODE(operands[0]) == REG)
        !           362:            return \"sprd sp,%0\";
        !           363:          else
        !           364:            return \"addr 0(sp),%0\" ;
        !           365:        }
        !           366:       else abort ();
        !           367:     }
        !           368:   else if (GET_CODE (operands[1]) == MEM)
        !           369:     return \"movd %1,%0\";
        !           370:   /* Check if this effective address can be
        !           371:      calculated faster by pulling it apart.  */
        !           372:   if (REG_P (operands[0])
        !           373:       && GET_CODE (operands[1]) == MULT
        !           374:       && GET_CODE (XEXP (operands[1], 1)) == CONST_INT
        !           375:       && (INTVAL (XEXP (operands[1], 1)) == 2
        !           376:          || INTVAL (XEXP (operands[1], 1)) == 4))
        !           377:     {
        !           378:       rtx xoperands[3];
        !           379:       xoperands[0] = operands[0];
        !           380:       xoperands[1] = XEXP (operands[1], 0);
        !           381:       xoperands[2] = gen_rtx (CONST_INT, VOIDmode, INTVAL (XEXP (operands[1], 1)) >> 1);
        !           382:       return output_shift_insn (xoperands);
        !           383:     }
        !           384:   return \"addr %a1,%0\";
        !           385: }")
        !           386: 
        !           387: (define_insn "movhi"
        !           388:   [(set (match_operand:HI 0 "general_operand" "=g<,*f,g")
        !           389:        (match_operand:HI 1 "general_operand" "g,g,*f"))]
        !           390:   ""
        !           391:   "*
        !           392: {
        !           393:   if (GET_CODE (operands[1]) == CONST_INT)
        !           394:     {
        !           395:       short i = INTVAL (operands[1]);
        !           396:       if (i <= 7 && i >= -8)
        !           397:        {
        !           398:          if (INTVAL (operands[1]) > 7)
        !           399:            operands[1] =
        !           400:              gen_rtx (CONST_INT, VOIDmode, i);
        !           401:          return \"movqw %1,%0\";
        !           402:        }
        !           403:        return \"movw %1,%0\";
        !           404:     }
        !           405:   else if (FP_REG_P (operands[0]))
        !           406:     {
        !           407:       if (GET_CODE (operands[1]) == REG && REGNO (operands[1]) < 8)
        !           408:        return \"movwf %1,tos\;movf tos,%0\";
        !           409:       else
        !           410:        return \"movwf %1,%0\";
        !           411:     }
        !           412:   else if (FP_REG_P (operands[1]))
        !           413:     {
        !           414:       if (REG_P (operands[0]))
        !           415:        return \"movf %1,tos\;movd tos,%0\";
        !           416:       return \"movf %1,%0\";
        !           417:     }
        !           418:   else
        !           419:      return \"movw %1,%0\";
        !           420: }")
        !           421: 
        !           422: (define_insn "movstricthi"
        !           423:   [(set (strict_low_part (match_operand:HI 0 "general_operand" "+r"))
        !           424:        (match_operand:HI 1 "general_operand" "g"))]
        !           425:   ""
        !           426:   "*
        !           427: {
        !           428:   if (GET_CODE (operands[1]) == CONST_INT
        !           429:       && INTVAL(operands[1]) <= 7 && INTVAL(operands[1]) >= -8)
        !           430:     return \"movqw %1,%0\";
        !           431:   return \"movw %1,%0\";
        !           432: }")
        !           433: 
        !           434: (define_insn "movqi"
        !           435:   [(set (match_operand:QI 0 "general_operand" "=g<,*f,g")
        !           436:        (match_operand:QI 1 "general_operand" "g,g,*f"))]
        !           437:   ""
        !           438:   "*
        !           439: { if (GET_CODE (operands[1]) == CONST_INT)
        !           440:     {
        !           441:       char char_val = (char)INTVAL (operands[1]);
        !           442:       if (char_val <= 7 && char_val >= -8)
        !           443:        {
        !           444:          if (INTVAL (operands[1]) > 7)
        !           445:            operands[1] =
        !           446:              gen_rtx (CONST_INT, VOIDmode, char_val);
        !           447:          return \"movqb %1,%0\";
        !           448:        }
        !           449:        return \"movb %1,%0\";
        !           450:     }
        !           451:   else if (FP_REG_P (operands[0]))
        !           452:     {
        !           453:       if (GET_CODE (operands[1]) == REG && REGNO (operands[1]) < 8)
        !           454:        return \"movbf %1,tos\;movf tos,%0\";
        !           455:       else
        !           456:        return \"movbf %1,%0\";
        !           457:     }
        !           458:   else if (FP_REG_P (operands[1]))
        !           459:     {
        !           460:       if (REG_P (operands[0]))
        !           461:        return \"movf %1,tos\;movd tos,%0\";
        !           462:       return \"movf %1,%0\";
        !           463:     }
        !           464:   else
        !           465:      return \"movb %1,%0\";
        !           466: }")
        !           467: 
        !           468: (define_insn "movstrictqi"
        !           469:   [(set (strict_low_part (match_operand:QI 0 "general_operand" "+r"))
        !           470:        (match_operand:QI 1 "general_operand" "g"))]
        !           471:   ""
        !           472:   "*
        !           473: {
        !           474:   if (GET_CODE (operands[1]) == CONST_INT
        !           475:       && INTVAL(operands[1]) < 8 && INTVAL(operands[1]) > -9)
        !           476:     return \"movqb %1,%0\";
        !           477:   return \"movb %1,%0\";
        !           478: }")
        !           479: 
        !           480: ;; This is here to accept 4 arguments and pass the first 3 along
        !           481: ;; to the movstrsi1 pattern that really does the work.
        !           482: (define_expand "movstrsi"
        !           483:   [(set (match_operand:BLK 0 "general_operand" "=g")
        !           484:        (match_operand:BLK 1 "general_operand" "g"))
        !           485:    (use (match_operand:SI 2 "general_operand" "rmn"))
        !           486:    (match_operand 3 "" "")]
        !           487:   ""
        !           488:   "
        !           489:   emit_insn (gen_movstrsi1 (operands[0], operands[1], operands[2]));
        !           490:   DONE;
        !           491: ")
        !           492: 
        !           493: ;; The definition of this insn does not really explain what it does,
        !           494: ;; but it should suffice
        !           495: ;; that anything generated as this insn will be recognized as one
        !           496: ;; and that it won't successfully combine with anything.
        !           497: (define_insn "movstrsi1"
        !           498:   [(set (match_operand:BLK 0 "general_operand" "=g")
        !           499:        (match_operand:BLK 1 "general_operand" "g"))
        !           500:    (use (match_operand:SI 2 "general_operand" "rmn"))
        !           501:    (clobber (reg:SI 0))
        !           502:    (clobber (reg:SI 1))
        !           503:    (clobber (reg:SI 2))]
        !           504:   ""
        !           505:   "*
        !           506: {
        !           507:   if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
        !           508:     abort ();
        !           509:   operands[0] = XEXP (operands[0], 0);
        !           510:   operands[1] = XEXP (operands[1], 0);
        !           511:   if (GET_CODE (operands[0]) == MEM)
        !           512:     if (GET_CODE (operands[1]) == MEM)
        !           513:       output_asm_insn (\"movd %0,r2\;movd %1,r1\", operands);
        !           514:     else
        !           515:       output_asm_insn (\"movd %0,r2\;addr %a1,r1\", operands);
        !           516:   else if (GET_CODE (operands[1]) == MEM)
        !           517:     output_asm_insn (\"addr %a0,r2\;movd %1,r1\", operands);
        !           518:   else
        !           519:     output_asm_insn (\"addr %a0,r2\;addr %a1,r1\", operands);
        !           520: 
        !           521: #ifdef UTEK_ASM
        !           522:   if (GET_CODE (operands[2]) == CONST_INT && (INTVAL (operands[2]) & 0x3) == 0)
        !           523:     {
        !           524:       operands[2] = gen_rtx (CONST_INT, VOIDmode, INTVAL (operands[2]) >> 2);
        !           525:       if ((unsigned) INTVAL (operands[2]) <= 7)
        !           526:        return \"movqd %2,r0\;movsd $0\";
        !           527:       else 
        !           528:        return \"movd %2,r0\;movsd $0\";
        !           529:     }
        !           530:   else
        !           531:     {
        !           532:       return \"movd %2,r0\;movsb $0\";
        !           533:     }
        !           534: #else
        !           535:   if (GET_CODE (operands[2]) == CONST_INT && (INTVAL (operands[2]) & 0x3) == 0)
        !           536:     {
        !           537:       operands[2] = gen_rtx (CONST_INT, VOIDmode, INTVAL (operands[2]) >> 2);
        !           538:       if ((unsigned) INTVAL (operands[2]) <= 7)
        !           539:        return \"movqd %2,r0\;movsd\";
        !           540:       else 
        !           541:        return \"movd %2,r0\;movsd\";
        !           542:     }
        !           543:   else
        !           544:     {
        !           545:       return \"movd %2,r0\;movsb\";
        !           546:     }
        !           547: #endif
        !           548: }")
        !           549: 
        !           550: ;; Extension and truncation insns.
        !           551: ;; Those for integer source operand
        !           552: ;; are ordered widest source type first.
        !           553: 
        !           554: (define_insn "truncsiqi2"
        !           555:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !           556:        (truncate:QI (match_operand:SI 1 "nonimmediate_operand" "rmn")))]
        !           557:   ""
        !           558:   "movb %1,%0")
        !           559: 
        !           560: (define_insn "truncsihi2"
        !           561:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !           562:        (truncate:HI (match_operand:SI 1 "nonimmediate_operand" "rmn")))]
        !           563:   ""
        !           564:   "movw %1,%0")
        !           565: 
        !           566: (define_insn "trunchiqi2"
        !           567:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !           568:        (truncate:QI (match_operand:HI 1 "nonimmediate_operand" "g")))]
        !           569:   ""
        !           570:   "movb %1,%0")
        !           571: 
        !           572: (define_insn "extendhisi2"
        !           573:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !           574:        (sign_extend:SI (match_operand:HI 1 "nonimmediate_operand" "g")))]
        !           575:   ""
        !           576:   "movxwd %1,%0")
        !           577: 
        !           578: (define_insn "extendqihi2"
        !           579:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !           580:        (sign_extend:HI (match_operand:QI 1 "nonimmediate_operand" "g")))]
        !           581:   ""
        !           582:   "movxbw %1,%0")
        !           583: 
        !           584: (define_insn "extendqisi2"
        !           585:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !           586:        (sign_extend:SI (match_operand:QI 1 "nonimmediate_operand" "g")))]
        !           587:   ""
        !           588:   "movxbd %1,%0")
        !           589: 
        !           590: (define_insn "extendsfdf2"
        !           591:   [(set (match_operand:DF 0 "general_operand" "=fm<")
        !           592:        (float_extend:DF (match_operand:SF 1 "general_operand" "fmF")))]
        !           593:   "TARGET_32081"
        !           594:   "movfl %1,%0")
        !           595: 
        !           596: (define_insn "truncdfsf2"
        !           597:   [(set (match_operand:SF 0 "general_operand" "=fm<")
        !           598:        (float_truncate:SF (match_operand:DF 1 "general_operand" "fmF")))]
        !           599:   "TARGET_32081"
        !           600:   "movlf %1,%0")
        !           601: 
        !           602: (define_insn "zero_extendhisi2"
        !           603:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !           604:        (zero_extend:SI (match_operand:HI 1 "nonimmediate_operand" "g")))]
        !           605:   ""
        !           606:   "movzwd %1,%0")
        !           607: 
        !           608: (define_insn "zero_extendqihi2"
        !           609:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !           610:        (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "g")))]
        !           611:   ""
        !           612:   "movzbw %1,%0")
        !           613: 
        !           614: (define_insn "zero_extendqisi2"
        !           615:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !           616:        (zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "g")))]
        !           617:   ""
        !           618:   "movzbd %1,%0")
        !           619: 
        !           620: ;; Fix-to-float conversion insns.
        !           621: ;; Note that the ones that start with SImode come first.
        !           622: ;; That is so that an operand that is a CONST_INT
        !           623: ;; (and therefore lacks a specific machine mode).
        !           624: ;; will be recognized as SImode (which is always valid)
        !           625: ;; rather than as QImode or HImode.
        !           626: 
        !           627: ;; Rumor has it that the National part does not correctly convert
        !           628: ;; constant ints to floats.  This conversion is therefore disabled.
        !           629: ;; A register must be used to perform the conversion.
        !           630: 
        !           631: (define_insn "floatsisf2"
        !           632:   [(set (match_operand:SF 0 "general_operand" "=fm<")
        !           633:        (float:SF (match_operand:SI 1 "general_operand" "rm")))]
        !           634:   "TARGET_32081"
        !           635:   "movdf %1,%0")
        !           636: 
        !           637: (define_insn "floatsidf2"
        !           638:   [(set (match_operand:DF 0 "general_operand" "=fm<")
        !           639:        (float:DF (match_operand:SI 1 "general_operand" "rm")))]
        !           640:   "TARGET_32081"
        !           641:   "movdl %1,%0")
        !           642: 
        !           643: (define_insn "floathisf2"
        !           644:   [(set (match_operand:SF 0 "general_operand" "=fm<")
        !           645:        (float:SF (match_operand:HI 1 "general_operand" "rm")))]
        !           646:   "TARGET_32081"
        !           647:   "movwf %1,%0")
        !           648: 
        !           649: (define_insn "floathidf2"
        !           650:   [(set (match_operand:DF 0 "general_operand" "=fm<")
        !           651:        (float:DF (match_operand:HI 1 "general_operand" "rm")))]
        !           652:   "TARGET_32081"
        !           653:   "movwl %1,%0")
        !           654: 
        !           655: (define_insn "floatqisf2"
        !           656:   [(set (match_operand:SF 0 "general_operand" "=fm<")
        !           657:        (float:SF (match_operand:QI 1 "general_operand" "rm")))]
        !           658:   "TARGET_32081"
        !           659:   "movbf %1,%0")
        !           660: 
        !           661: ; Some assemblers warn that this insn doesn't work.
        !           662: ; Maybe they know something we don't.
        !           663: ;(define_insn "floatqidf2"
        !           664: ;  [(set (match_operand:DF 0 "general_operand" "=fm<")
        !           665: ;      (float:DF (match_operand:QI 1 "general_operand" "rm")))]
        !           666: ;  "TARGET_32081"
        !           667: ;  "movbl %1,%0")
        !           668: 
        !           669: ;; Float-to-fix conversion insns.
        !           670: ;; The sequent compiler always generates "trunc" insns.
        !           671: 
        !           672: (define_insn "fixsfqi2"
        !           673:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !           674:        (fix:QI (fix:SF (match_operand:SF 1 "general_operand" "fm"))))]
        !           675:   "TARGET_32081"
        !           676:   "truncfb %1,%0")
        !           677: 
        !           678: (define_insn "fixsfhi2"
        !           679:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !           680:        (fix:HI (fix:SF (match_operand:SF 1 "general_operand" "fm"))))]
        !           681:   "TARGET_32081"
        !           682:   "truncfw %1,%0")
        !           683: 
        !           684: (define_insn "fixsfsi2"
        !           685:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !           686:        (fix:SI (fix:SF (match_operand:SF 1 "general_operand" "fm"))))]
        !           687:   "TARGET_32081"
        !           688:   "truncfd %1,%0")
        !           689: 
        !           690: (define_insn "fixdfqi2"
        !           691:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !           692:        (fix:QI (fix:DF (match_operand:DF 1 "general_operand" "fm"))))]
        !           693:   "TARGET_32081"
        !           694:   "trunclb %1,%0")
        !           695: 
        !           696: (define_insn "fixdfhi2"
        !           697:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !           698:        (fix:HI (fix:DF (match_operand:DF 1 "general_operand" "fm"))))]
        !           699:   "TARGET_32081"
        !           700:   "trunclw %1,%0")
        !           701: 
        !           702: (define_insn "fixdfsi2"
        !           703:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !           704:        (fix:SI (fix:DF (match_operand:DF 1 "general_operand" "fm"))))]
        !           705:   "TARGET_32081"
        !           706:   "truncld %1,%0")
        !           707: 
        !           708: ;; Unsigned
        !           709: 
        !           710: (define_insn "fixunssfqi2"
        !           711:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !           712:        (unsigned_fix:QI (fix:SF (match_operand:SF 1 "general_operand" "fm"))))]
        !           713:   "TARGET_32081"
        !           714:   "truncfb %1,%0")
        !           715: 
        !           716: (define_insn "fixunssfhi2"
        !           717:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !           718:        (unsigned_fix:HI (fix:SF (match_operand:SF 1 "general_operand" "fm"))))]
        !           719:   "TARGET_32081"
        !           720:   "truncfw %1,%0")
        !           721: 
        !           722: (define_insn "fixunssfsi2"
        !           723:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !           724:        (unsigned_fix:SI (fix:SF (match_operand:SF 1 "general_operand" "fm"))))]
        !           725:   "TARGET_32081"
        !           726:   "truncfd %1,%0")
        !           727: 
        !           728: (define_insn "fixunsdfqi2"
        !           729:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !           730:        (unsigned_fix:QI (fix:DF (match_operand:DF 1 "general_operand" "fm"))))]
        !           731:   "TARGET_32081"
        !           732:   "trunclb %1,%0")
        !           733: 
        !           734: (define_insn "fixunsdfhi2"
        !           735:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !           736:        (unsigned_fix:HI (fix:DF (match_operand:DF 1 "general_operand" "fm"))))]
        !           737:   "TARGET_32081"
        !           738:   "trunclw %1,%0")
        !           739: 
        !           740: (define_insn "fixunsdfsi2"
        !           741:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !           742:        (unsigned_fix:SI (fix:DF (match_operand:DF 1 "general_operand" "fm"))))]
        !           743:   "TARGET_32081"
        !           744:   "truncld %1,%0")
        !           745: 
        !           746: ;;; These are not yet used by GCC
        !           747: (define_insn "fix_truncsfqi2"
        !           748:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !           749:        (fix:QI (match_operand:SF 1 "general_operand" "fm")))]
        !           750:   "TARGET_32081"
        !           751:   "truncfb %1,%0")
        !           752: 
        !           753: (define_insn "fix_truncsfhi2"
        !           754:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !           755:        (fix:HI (match_operand:SF 1 "general_operand" "fm")))]
        !           756:   "TARGET_32081"
        !           757:   "truncfw %1,%0")
        !           758: 
        !           759: (define_insn "fix_truncsfsi2"
        !           760:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !           761:        (fix:SI (match_operand:SF 1 "general_operand" "fm")))]
        !           762:   "TARGET_32081"
        !           763:   "truncfd %1,%0")
        !           764: 
        !           765: (define_insn "fix_truncdfqi2"
        !           766:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !           767:        (fix:QI (match_operand:DF 1 "general_operand" "fm")))]
        !           768:   "TARGET_32081"
        !           769:   "trunclb %1,%0")
        !           770: 
        !           771: (define_insn "fix_truncdfhi2"
        !           772:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !           773:        (fix:HI (match_operand:DF 1 "general_operand" "fm")))]
        !           774:   "TARGET_32081"
        !           775:   "trunclw %1,%0")
        !           776: 
        !           777: (define_insn "fix_truncdfsi2"
        !           778:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !           779:        (fix:SI (match_operand:DF 1 "general_operand" "fm")))]
        !           780:   "TARGET_32081"
        !           781:   "truncld %1,%0")
        !           782: 
        !           783: ;;- All kinds of add instructions.
        !           784: 
        !           785: (define_insn "adddf3"
        !           786:   [(set (match_operand:DF 0 "general_operand" "=fm")
        !           787:        (plus:DF (match_operand:DF 1 "general_operand" "%0")
        !           788:                 (match_operand:DF 2 "general_operand" "fmF")))]
        !           789:   "TARGET_32081"
        !           790:   "addl %2,%0")
        !           791: 
        !           792: 
        !           793: (define_insn "addsf3"
        !           794:   [(set (match_operand:SF 0 "general_operand" "=fm")
        !           795:        (plus:SF (match_operand:SF 1 "general_operand" "%0")
        !           796:                 (match_operand:SF 2 "general_operand" "fmF")))]
        !           797:   "TARGET_32081"
        !           798:   "addf %2,%0")
        !           799: 
        !           800: (define_insn ""
        !           801:   [(set (reg:SI 17)
        !           802:        (plus:SI (reg:SI 17)
        !           803:                 (match_operand:SI 0 "immediate_operand" "i")))]
        !           804:   "GET_CODE (operands[0]) == CONST_INT"
        !           805:   "*
        !           806: {
        !           807: #ifndef SEQUENT_ADJUST_STACK
        !           808:   if (TARGET_32532)
        !           809:     if (INTVAL (operands[0]) == 8)
        !           810:       return \"cmpd tos,tos\";
        !           811:   if (TARGET_32532 || TARGET_32332)
        !           812:     if (INTVAL (operands[0]) == 4)
        !           813:       return \"cmpqd %$0,tos\";
        !           814: #endif
        !           815:   if (! TARGET_32532)
        !           816:     {
        !           817:       if (INTVAL (operands[0]) < 64 && INTVAL (operands[0]) > -64)
        !           818:         return \"adjspb %$%n0\";
        !           819:       else if (INTVAL (operands[0]) < 8192 && INTVAL (operands[0]) >= -8192)
        !           820:         return \"adjspw %$%n0\";
        !           821:     }
        !           822:   return \"adjspd %$%n0\";
        !           823: }")
        !           824: 
        !           825: (define_insn ""
        !           826:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !           827:        (plus:SI (reg:SI 16)
        !           828:                 (match_operand:SI 1 "immediate_operand" "i")))]
        !           829:   "GET_CODE (operands[1]) == CONST_INT"
        !           830:   "addr %c1(fp),%0")
        !           831: 
        !           832: (define_insn ""
        !           833:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !           834:        (plus:SI (reg:SI 17)
        !           835:                 (match_operand:SI 1 "immediate_operand" "i")))]
        !           836:   "GET_CODE (operands[1]) == CONST_INT"
        !           837:   "addr %c1(sp),%0")
        !           838: 
        !           839: (define_insn "addsi3"
        !           840:   [(set (match_operand:SI 0 "general_operand" "=g,=g&<")
        !           841:        (plus:SI (match_operand:SI 1 "general_operand" "%0,r")
        !           842:                 (match_operand:SI 2 "general_operand" "rmn,n")))]
        !           843:   ""
        !           844:   "*
        !           845: {
        !           846:   if (which_alternative == 1)
        !           847:     {
        !           848:       int i = INTVAL (operands[2]);
        !           849:       if (NS32K_DISPLACEMENT_P (i))
        !           850:        return \"addr %c2(%1),%0\";
        !           851:       else
        !           852:        return \"movd %1,%0\;addd %2,%0\";
        !           853:     }
        !           854:   if (GET_CODE (operands[2]) == CONST_INT)
        !           855:     {
        !           856:       int i = INTVAL (operands[2]);
        !           857: 
        !           858:       if (i <= 7 && i >= -8)
        !           859:        return \"addqd %2,%0\";
        !           860:       else if (GET_CODE (operands[0]) == REG
        !           861:               && i < 0x4000 && i >= -0x4000 && ! TARGET_32532)
        !           862:        return \"addr %c2(%0),%0\";
        !           863:     }
        !           864:   return \"addd %2,%0\";
        !           865: }")
        !           866: 
        !           867: (define_insn "addhi3"
        !           868:   [(set (match_operand:HI 0 "general_operand" "=g")
        !           869:        (plus:HI (match_operand:HI 1 "general_operand" "%0")
        !           870:                 (match_operand:HI 2 "general_operand" "g")))]
        !           871:   ""
        !           872:   "*
        !           873: { if (GET_CODE (operands[2]) == CONST_INT)
        !           874:     {
        !           875:       int i = INTVAL (operands[2]);
        !           876:       if (i <= 7 && i >= -8)
        !           877:        return \"addqw %2,%0\";
        !           878:     }
        !           879:   return \"addw %2,%0\";
        !           880: }")
        !           881: 
        !           882: (define_insn ""
        !           883:   [(set (strict_low_part (match_operand:HI 0 "general_operand" "=r"))
        !           884:        (plus:HI (match_operand:HI 1 "general_operand" "0")
        !           885:                 (match_operand:HI 2 "general_operand" "g")))]
        !           886:   ""
        !           887:   "*
        !           888: {
        !           889:   if (GET_CODE (operands[1]) == CONST_INT
        !           890:       && INTVAL (operands[1]) >-9 && INTVAL(operands[1]) < 8)
        !           891:     return \"addqw %1,%0\";
        !           892:   return \"addw %1,%0\";
        !           893: }")
        !           894: 
        !           895: (define_insn "addqi3"
        !           896:   [(set (match_operand:QI 0 "general_operand" "=g")
        !           897:        (plus:QI (match_operand:QI 1 "general_operand" "%0")
        !           898:                 (match_operand:QI 2 "general_operand" "g")))]
        !           899:   ""
        !           900:   "*
        !           901: { if (GET_CODE (operands[2]) == CONST_INT)
        !           902:     {
        !           903:       int i = INTVAL (operands[2]);
        !           904:       if (i <= 7 && i >= -8)
        !           905:        return \"addqb %2,%0\";
        !           906:     }
        !           907:   return \"addb %2,%0\";
        !           908: }")
        !           909: 
        !           910: (define_insn ""
        !           911:   [(set (strict_low_part (match_operand:QI 0 "general_operand" "=r"))
        !           912:        (plus:QI (match_operand:QI 1 "general_operand" "0")
        !           913:                 (match_operand:QI 2 "general_operand" "g")))]
        !           914:   ""
        !           915:   "*
        !           916: {
        !           917:   if (GET_CODE (operands[1]) == CONST_INT
        !           918:       && INTVAL (operands[1]) >-9 && INTVAL(operands[1]) < 8)
        !           919:     return \"addqb %1,%0\";
        !           920:   return \"addb %1,%0\";
        !           921: }")
        !           922: 
        !           923: ;;- All kinds of subtract instructions.
        !           924: 
        !           925: (define_insn "subdf3"
        !           926:   [(set (match_operand:DF 0 "general_operand" "=fm")
        !           927:        (minus:DF (match_operand:DF 1 "general_operand" "0")
        !           928:                  (match_operand:DF 2 "general_operand" "fmF")))]
        !           929:   "TARGET_32081"
        !           930:   "subl %2,%0")
        !           931: 
        !           932: (define_insn "subsf3"
        !           933:   [(set (match_operand:SF 0 "general_operand" "=fm")
        !           934:        (minus:SF (match_operand:SF 1 "general_operand" "0")
        !           935:                  (match_operand:SF 2 "general_operand" "fmF")))]
        !           936:   "TARGET_32081"
        !           937:   "subf %2,%0")
        !           938: 
        !           939: (define_insn ""
        !           940:   [(set (reg:SI 17)
        !           941:        (minus:SI (reg:SI 17)
        !           942:                  (match_operand:SI 0 "immediate_operand" "i")))]
        !           943:   "GET_CODE (operands[0]) == CONST_INT"
        !           944:   "*
        !           945: {
        !           946:   if (GET_CODE(operands[0]) == CONST_INT && INTVAL(operands[0]) < 64
        !           947:       && INTVAL(operands[0]) > -64 && ! TARGET_32532)
        !           948:     return \"adjspb %0\";
        !           949:   return \"adjspd %0\";
        !           950: }")
        !           951: 
        !           952: (define_insn "subsi3"
        !           953:   [(set (match_operand:SI 0 "general_operand" "=g")
        !           954:        (minus:SI (match_operand:SI 1 "general_operand" "0")
        !           955:                  (match_operand:SI 2 "general_operand" "rmn")))]
        !           956:   ""
        !           957:   "*
        !           958: { if (GET_CODE (operands[2]) == CONST_INT)
        !           959:     {
        !           960:       int i = INTVAL (operands[2]);
        !           961: 
        !           962:       if (i <= 8 && i >= -7)
        !           963:         return \"addqd %$%n2,%0\";
        !           964:     }
        !           965:   return \"subd %2,%0\";
        !           966: }")
        !           967: 
        !           968: (define_insn "subhi3"
        !           969:   [(set (match_operand:HI 0 "general_operand" "=g")
        !           970:        (minus:HI (match_operand:HI 1 "general_operand" "0")
        !           971:                  (match_operand:HI 2 "general_operand" "g")))]
        !           972:   ""
        !           973:   "*
        !           974: { if (GET_CODE (operands[2]) == CONST_INT)
        !           975:     {
        !           976:       int i = INTVAL (operands[2]);
        !           977: 
        !           978:       if (i <= 8 && i >= -7)
        !           979:         return \"addqw %$%n2,%0\";
        !           980:     }
        !           981:   return \"subw %2,%0\";
        !           982: }")
        !           983: 
        !           984: (define_insn ""
        !           985:   [(set (strict_low_part (match_operand:HI 0 "general_operand" "=r"))
        !           986:        (minus:HI (match_operand:HI 1 "general_operand" "0")
        !           987:                  (match_operand:HI 2 "general_operand" "g")))]
        !           988:   ""
        !           989:   "*
        !           990: {
        !           991:   if (GET_CODE (operands[1]) == CONST_INT
        !           992:       && INTVAL (operands[1]) >-8 && INTVAL(operands[1]) < 9)
        !           993:     return \"addqw %$%n1,%0\";
        !           994:   return \"subw %1,%0\";
        !           995: }")
        !           996: 
        !           997: (define_insn "subqi3"
        !           998:   [(set (match_operand:QI 0 "general_operand" "=g")
        !           999:        (minus:QI (match_operand:QI 1 "general_operand" "0")
        !          1000:                  (match_operand:QI 2 "general_operand" "g")))]
        !          1001:   ""
        !          1002:   "*
        !          1003: { if (GET_CODE (operands[2]) == CONST_INT)
        !          1004:     {
        !          1005:       int i = INTVAL (operands[2]);
        !          1006: 
        !          1007:       if (i <= 8 && i >= -7)
        !          1008:        return \"addqb %$%n2,%0\";
        !          1009:     }
        !          1010:   return \"subb %2,%0\";
        !          1011: }")
        !          1012: 
        !          1013: (define_insn ""
        !          1014:   [(set (strict_low_part (match_operand:QI 0 "general_operand" "=r"))
        !          1015:        (minus:QI (match_operand:QI 1 "general_operand" "0")
        !          1016:                  (match_operand:QI 2 "general_operand" "g")))]
        !          1017:   ""
        !          1018:   "*
        !          1019: {
        !          1020:   if (GET_CODE (operands[1]) == CONST_INT
        !          1021:       && INTVAL (operands[1]) >-8 && INTVAL(operands[1]) < 9)
        !          1022:     return \"addqb %$%n1,%0\";
        !          1023:   return \"subb %1,%0\";
        !          1024: }")
        !          1025: 
        !          1026: ;;- Multiply instructions.
        !          1027: 
        !          1028: (define_insn "muldf3"
        !          1029:   [(set (match_operand:DF 0 "general_operand" "=fm")
        !          1030:        (mult:DF (match_operand:DF 1 "general_operand" "%0")
        !          1031:                 (match_operand:DF 2 "general_operand" "fmF")))]
        !          1032:   "TARGET_32081"
        !          1033:   "mull %2,%0")
        !          1034: 
        !          1035: (define_insn "mulsf3"
        !          1036:   [(set (match_operand:SF 0 "general_operand" "=fm")
        !          1037:        (mult:SF (match_operand:SF 1 "general_operand" "%0")
        !          1038:                 (match_operand:SF 2 "general_operand" "fmF")))]
        !          1039:   "TARGET_32081"
        !          1040:   "mulf %2,%0")
        !          1041: 
        !          1042: (define_insn "mulsi3"
        !          1043:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1044:        (mult:SI (match_operand:SI 1 "general_operand" "%0")
        !          1045:                 (match_operand:SI 2 "general_operand" "rmn")))]
        !          1046:   ""
        !          1047:   "muld %2,%0")
        !          1048: 
        !          1049: (define_insn "mulhi3"
        !          1050:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1051:        (mult:HI (match_operand:HI 1 "general_operand" "%0")
        !          1052:                 (match_operand:HI 2 "general_operand" "g")))]
        !          1053:   ""
        !          1054:   "mulw %2,%0")
        !          1055: 
        !          1056: (define_insn "mulqi3"
        !          1057:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1058:        (mult:QI (match_operand:QI 1 "general_operand" "%0")
        !          1059:                 (match_operand:QI 2 "general_operand" "g")))]
        !          1060:   ""
        !          1061:   "mulb %2,%0")
        !          1062: 
        !          1063: (define_insn "umulsidi3"
        !          1064:   [(set (match_operand:DI 0 "general_operand" "=g")
        !          1065:        (mult:DI (zero_extend:DI
        !          1066:                  (match_operand:SI 1 "nonimmediate_operand" "0"))
        !          1067:                 (zero_extend:DI
        !          1068:                  (match_operand:SI 2 "nonimmediate_operand" "rmn"))))]
        !          1069:   ""
        !          1070:   "meid %2,%0")
        !          1071: 
        !          1072: ;;- Divide instructions.
        !          1073: 
        !          1074: (define_insn "divdf3"
        !          1075:   [(set (match_operand:DF 0 "general_operand" "=fm")
        !          1076:        (div:DF (match_operand:DF 1 "general_operand" "0")
        !          1077:                (match_operand:DF 2 "general_operand" "fmF")))]
        !          1078:   "TARGET_32081"
        !          1079:   "divl %2,%0")
        !          1080: 
        !          1081: (define_insn "divsf3"
        !          1082:   [(set (match_operand:SF 0 "general_operand" "=fm")
        !          1083:        (div:SF (match_operand:SF 1 "general_operand" "0")
        !          1084:                (match_operand:SF 2 "general_operand" "fmF")))]
        !          1085:   "TARGET_32081"
        !          1086:   "divf %2,%0")
        !          1087: 
        !          1088: (define_insn "divsi3"
        !          1089:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1090:        (div:SI (match_operand:SI 1 "general_operand" "0")
        !          1091:                (match_operand:SI 2 "general_operand" "rmn")))]
        !          1092:   ""
        !          1093:   "quod %2,%0")
        !          1094: 
        !          1095: (define_insn "divhi3"
        !          1096:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1097:        (div:HI (match_operand:HI 1 "general_operand" "0")
        !          1098:                (match_operand:HI 2 "general_operand" "g")))]
        !          1099:   ""
        !          1100:   "quow %2,%0")
        !          1101: 
        !          1102: (define_insn "divqi3"
        !          1103:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1104:        (div:QI (match_operand:QI 1 "general_operand" "0")
        !          1105:                (match_operand:QI 2 "general_operand" "g")))]
        !          1106:   ""
        !          1107:   "quob %2,%0")
        !          1108: 
        !          1109: (define_insn "udivsi3"
        !          1110:   [(set (match_operand:SI 0 "register_operand" "=r")
        !          1111:        (udiv:SI (subreg:SI (match_operand:DI 1 "reg_or_mem_operand" "0") 0)
        !          1112:                 (match_operand:SI 2 "general_operand" "rmn")))]
        !          1113:   ""
        !          1114:   "*
        !          1115: {
        !          1116:   operands[1] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
        !          1117:   return \"deid %2,%0\;movd %1,%0\";
        !          1118: }")
        !          1119: 
        !          1120: (define_insn "udivhi3"
        !          1121:   [(set (match_operand:HI 0 "register_operand" "=r")
        !          1122:        (udiv:HI (subreg:HI (match_operand:DI 1 "reg_or_mem_operand" "0") 0)
        !          1123:                 (match_operand:HI 2 "general_operand" "g")))]
        !          1124:   ""
        !          1125:   "*
        !          1126: {
        !          1127:   operands[1] = gen_rtx (REG, HImode, REGNO (operands[0]) + 1);
        !          1128:   return \"deiw %2,%0\;movw %1,%0\";
        !          1129: }")
        !          1130: 
        !          1131: (define_insn "udivqi3"
        !          1132:   [(set (match_operand:QI 0 "register_operand" "=r")
        !          1133:        (udiv:QI (subreg:QI (match_operand:DI 1 "reg_or_mem_operand" "0") 0)
        !          1134:                 (match_operand:QI 2 "general_operand" "g")))]
        !          1135:   ""
        !          1136:   "*
        !          1137: {
        !          1138:   operands[1] = gen_rtx (REG, QImode, REGNO (operands[0]) + 1);
        !          1139:   return \"deib %2,%0\;movb %1,%0\";
        !          1140: }")
        !          1141: 
        !          1142: ;; Remainder instructions.
        !          1143: 
        !          1144: (define_insn "modsi3"
        !          1145:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1146:        (mod:SI (match_operand:SI 1 "general_operand" "0")
        !          1147:                (match_operand:SI 2 "general_operand" "rmn")))]
        !          1148:   ""
        !          1149:   "remd %2,%0")
        !          1150: 
        !          1151: (define_insn "modhi3"
        !          1152:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1153:        (mod:HI (match_operand:HI 1 "general_operand" "0")
        !          1154:                (match_operand:HI 2 "general_operand" "g")))]
        !          1155:   ""
        !          1156:   "remw %2,%0")
        !          1157: 
        !          1158: (define_insn "modqi3"
        !          1159:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1160:        (mod:QI (match_operand:QI 1 "general_operand" "0")
        !          1161:                (match_operand:QI 2 "general_operand" "g")))]
        !          1162:   ""
        !          1163:   "remb %2,%0")
        !          1164: 
        !          1165: (define_insn "umodsi3"
        !          1166:   [(set (match_operand:SI 0 "register_operand" "=r")
        !          1167:        (umod:SI (subreg:SI (match_operand:DI 1 "reg_or_mem_operand" "0") 0)
        !          1168:                 (match_operand:SI 2 "general_operand" "rmn")))]
        !          1169:   ""
        !          1170:   "deid %2,%0")
        !          1171: 
        !          1172: (define_insn "umodhi3"
        !          1173:   [(set (match_operand:HI 0 "register_operand" "=r")
        !          1174:        (umod:HI (subreg:HI (match_operand:DI 1 "reg_or_mem_operand" "0") 0)
        !          1175:                 (match_operand:HI 2 "general_operand" "g")))]
        !          1176:   ""
        !          1177:   "deiw %2,%0")
        !          1178: 
        !          1179: (define_insn "umodqi3"
        !          1180:   [(set (match_operand:QI 0 "register_operand" "=r")
        !          1181:        (umod:QI (subreg:QI (match_operand:DI 1 "reg_or_mem_operand" "0") 0)
        !          1182:                 (match_operand:QI 2 "general_operand" "g")))]
        !          1183:   ""
        !          1184:   "deib %2,%0")
        !          1185: 
        !          1186: ; This isn't be usable in its current form.
        !          1187: ;(define_insn "udivmoddisi4"
        !          1188: ;  [(set (subreg:SI (match_operand:DI 0 "general_operand" "=r") 1)
        !          1189: ;      (udiv:SI (match_operand:DI 1 "general_operand" "0")
        !          1190: ;               (match_operand:SI 2 "general_operand" "rmn")))
        !          1191: ;   (set (subreg:SI (match_dup 0) 0)
        !          1192: ;      (umod:SI (match_dup 1) (match_dup 2)))]
        !          1193: ;  ""
        !          1194: ;  "deid %2,%0")
        !          1195: 
        !          1196: ;;- Logical Instructions: AND
        !          1197: 
        !          1198: (define_insn "andsi3"
        !          1199:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1200:        (and:SI (match_operand:SI 1 "general_operand" "%0")
        !          1201:                (match_operand:SI 2 "general_operand" "rmn")))]
        !          1202:   ""
        !          1203:   "*
        !          1204: {
        !          1205:   if (GET_CODE (operands[2]) == CONST_INT)
        !          1206:     {
        !          1207:       if ((INTVAL (operands[2]) | 0xff) == 0xffffffff)
        !          1208:        {
        !          1209:          if (INTVAL (operands[2]) == 0xffffff00)
        !          1210:            return \"movqb %$0,%0\";
        !          1211:          else
        !          1212:            {
        !          1213:              operands[2] = gen_rtx (CONST_INT, VOIDmode,
        !          1214:                                     INTVAL (operands[2]) & 0xff);
        !          1215:              return \"andb %2,%0\";
        !          1216:            }
        !          1217:        }
        !          1218:       if ((INTVAL (operands[2]) | 0xffff) == 0xffffffff)
        !          1219:         {
        !          1220:          if (INTVAL (operands[2]) == 0xffff0000)
        !          1221:            return \"movqw %$0,%0\";
        !          1222:          else
        !          1223:            {
        !          1224:              operands[2] = gen_rtx (CONST_INT, VOIDmode,
        !          1225:                                     INTVAL (operands[2]) & 0xffff);
        !          1226:              return \"andw %2,%0\";
        !          1227:            }
        !          1228:        }
        !          1229:     }
        !          1230:   return \"andd %2,%0\";
        !          1231: }")
        !          1232: 
        !          1233: (define_insn "andhi3"
        !          1234:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1235:        (and:HI (match_operand:HI 1 "general_operand" "%0")
        !          1236:                (match_operand:HI 2 "general_operand" "g")))]
        !          1237:   ""
        !          1238:   "*
        !          1239: {
        !          1240:   if (GET_CODE (operands[2]) == CONST_INT
        !          1241:       && (INTVAL (operands[2]) | 0xff) == 0xffffffff)
        !          1242:     {
        !          1243:       if (INTVAL (operands[2]) == 0xffffff00)
        !          1244:        return \"movqb %$0,%0\";
        !          1245:       else
        !          1246:        {
        !          1247:          operands[2] = gen_rtx (CONST_INT, VOIDmode,
        !          1248:                                 INTVAL (operands[2]) & 0xff);
        !          1249:          return \"andb %2,%0\";
        !          1250:        }
        !          1251:     }
        !          1252:   return \"andw %2,%0\";
        !          1253: }")
        !          1254: 
        !          1255: (define_insn "andqi3"
        !          1256:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1257:        (and:QI (match_operand:QI 1 "general_operand" "%0")
        !          1258:                (match_operand:QI 2 "general_operand" "g")))]
        !          1259:   ""
        !          1260:   "andb %2,%0")
        !          1261: 
        !          1262: (define_insn ""
        !          1263:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1264:        (and:SI (not:SI (match_operand:SI 1 "general_operand" "rmn"))
        !          1265:                (match_operand:SI 2 "general_operand" "0")))]
        !          1266:   ""
        !          1267:   "bicd %1,%0")
        !          1268: 
        !          1269: (define_insn ""
        !          1270:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1271:        (and:HI (not:HI (match_operand:HI 1 "general_operand" "g"))
        !          1272:                (match_operand:HI 2 "general_operand" "0")))]
        !          1273:   ""
        !          1274:   "bicw %1,%0")
        !          1275: 
        !          1276: (define_insn ""
        !          1277:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1278:        (and:QI (not:QI (match_operand:QI 1 "general_operand" "g"))
        !          1279:                (match_operand:QI 2 "general_operand" "0")))]
        !          1280:   ""
        !          1281:   "bicb %1,%0")
        !          1282: 
        !          1283: ;;- Bit set instructions.
        !          1284: 
        !          1285: (define_insn "iorsi3"
        !          1286:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1287:        (ior:SI (match_operand:SI 1 "general_operand" "%0")
        !          1288:                (match_operand:SI 2 "general_operand" "rmn")))]
        !          1289:   ""
        !          1290:   "*
        !          1291: {
        !          1292:   if (GET_CODE (operands[2]) == CONST_INT) {
        !          1293:     if ((INTVAL (operands[2]) & 0xffffff00) == 0)
        !          1294:       return \"orb %2,%0\";
        !          1295:     if ((INTVAL (operands[2]) & 0xffff0000) == 0)
        !          1296:       return \"orw %2,%0\";
        !          1297:   }
        !          1298:   return \"ord %2,%0\";
        !          1299: }")
        !          1300: 
        !          1301: (define_insn "iorhi3"
        !          1302:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1303:        (ior:HI (match_operand:HI 1 "general_operand" "%0")
        !          1304:                (match_operand:HI 2 "general_operand" "g")))]
        !          1305:   ""
        !          1306:   "*
        !          1307: {
        !          1308:   if (GET_CODE(operands[2]) == CONST_INT &&
        !          1309:       (INTVAL(operands[2]) & 0xffffff00) == 0)
        !          1310:     return \"orb %2,%0\";
        !          1311:   return \"orw %2,%0\";
        !          1312: }")
        !          1313: 
        !          1314: (define_insn "iorqi3"
        !          1315:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1316:        (ior:QI (match_operand:QI 1 "general_operand" "%0")
        !          1317:                (match_operand:QI 2 "general_operand" "g")))]
        !          1318:   ""
        !          1319:   "orb %2,%0")
        !          1320: 
        !          1321: ;;- xor instructions.
        !          1322: 
        !          1323: (define_insn "xorsi3"
        !          1324:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1325:        (xor:SI (match_operand:SI 1 "general_operand" "%0")
        !          1326:                (match_operand:SI 2 "general_operand" "rmn")))]
        !          1327:   ""
        !          1328:   "*
        !          1329: {
        !          1330:   if (GET_CODE (operands[2]) == CONST_INT) {
        !          1331:     if ((INTVAL (operands[2]) & 0xffffff00) == 0)
        !          1332:       return \"xorb %2,%0\";
        !          1333:     if ((INTVAL (operands[2]) & 0xffff0000) == 0)
        !          1334:       return \"xorw %2,%0\";
        !          1335:   }
        !          1336:   return \"xord %2,%0\";
        !          1337: }")
        !          1338: 
        !          1339: (define_insn "xorhi3"
        !          1340:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1341:        (xor:HI (match_operand:HI 1 "general_operand" "%0")
        !          1342:                (match_operand:HI 2 "general_operand" "g")))]
        !          1343:   ""
        !          1344:   "*
        !          1345: {
        !          1346:   if (GET_CODE(operands[2]) == CONST_INT &&
        !          1347:       (INTVAL(operands[2]) & 0xffffff00) == 0)
        !          1348:     return \"xorb %2,%0\";
        !          1349:   return \"xorw %2,%0\";
        !          1350: }")
        !          1351: 
        !          1352: (define_insn "xorqi3"
        !          1353:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1354:        (xor:QI (match_operand:QI 1 "general_operand" "%0")
        !          1355:                (match_operand:QI 2 "general_operand" "g")))]
        !          1356:   ""
        !          1357:   "xorb %2,%0")
        !          1358: 
        !          1359: (define_insn "negdf2"
        !          1360:   [(set (match_operand:DF 0 "general_operand" "=fm<")
        !          1361:        (neg:DF (match_operand:DF 1 "general_operand" "fmF")))]
        !          1362:   "TARGET_32081"
        !          1363:   "negl %1,%0")
        !          1364: 
        !          1365: (define_insn "negsf2"
        !          1366:   [(set (match_operand:SF 0 "general_operand" "=fm<")
        !          1367:        (neg:SF (match_operand:SF 1 "general_operand" "fmF")))]
        !          1368:   "TARGET_32081"
        !          1369:   "negf %1,%0")
        !          1370: 
        !          1371: (define_insn "negsi2"
        !          1372:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          1373:        (neg:SI (match_operand:SI 1 "general_operand" "rmn")))]
        !          1374:   ""
        !          1375:   "negd %1,%0")
        !          1376: 
        !          1377: (define_insn "neghi2"
        !          1378:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          1379:        (neg:HI (match_operand:HI 1 "general_operand" "g")))]
        !          1380:   ""
        !          1381:   "negw %1,%0")
        !          1382: 
        !          1383: (define_insn "negqi2"
        !          1384:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          1385:        (neg:QI (match_operand:QI 1 "general_operand" "g")))]
        !          1386:   ""
        !          1387:   "negb %1,%0")
        !          1388: 
        !          1389: (define_insn "one_cmplsi2"
        !          1390:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          1391:        (not:SI (match_operand:SI 1 "general_operand" "rmn")))]
        !          1392:   ""
        !          1393:   "comd %1,%0")
        !          1394: 
        !          1395: (define_insn "one_cmplhi2"
        !          1396:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          1397:        (not:HI (match_operand:HI 1 "general_operand" "g")))]
        !          1398:   ""
        !          1399:   "comw %1,%0")
        !          1400: 
        !          1401: (define_insn "one_cmplqi2"
        !          1402:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          1403:        (not:QI (match_operand:QI 1 "general_operand" "g")))]
        !          1404:   ""
        !          1405:   "comb %1,%0")
        !          1406: 
        !          1407: ;; arithmetic left and right shift operations
        !          1408: ;; on the 32532 we will always use lshd for arithmetic left shifts,
        !          1409: ;; because it is three times faster.  Broken programs which
        !          1410: ;; use negative shift counts are probably broken differently
        !          1411: ;; than elsewhere.
        !          1412: 
        !          1413: ;; alternative 0 never matches on the 32532
        !          1414: (define_insn "ashlsi3"
        !          1415:   [(set (match_operand:SI 0 "general_operand" "=g,g")
        !          1416:        (ashift:SI (match_operand:SI 1 "general_operand" "r,0")
        !          1417:                   (match_operand:SI 2 "general_operand" "I,rmn")))]
        !          1418:   ""
        !          1419:   "*
        !          1420: { if (TARGET_32532)
        !          1421:     return \"lshd %2,%0\";
        !          1422:   else
        !          1423:     return output_shift_insn (operands);
        !          1424: }")
        !          1425: 
        !          1426: (define_insn "ashlhi3"
        !          1427:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1428:        (ashift:HI (match_operand:HI 1 "general_operand" "0")
        !          1429:                   (match_operand:SI 2 "general_operand" "rmn")))]
        !          1430:   ""
        !          1431:   "*
        !          1432: { if (GET_CODE (operands[2]) == CONST_INT)
        !          1433:     {
        !          1434:       if (INTVAL (operands[2]) == 1)
        !          1435:        return \"addw %0,%0\";
        !          1436:       else if (INTVAL (operands[2]) == 2 && !TARGET_32532)
        !          1437:        return \"addw %0,%0\;addw %0,%0\";
        !          1438:     }
        !          1439:   if (TARGET_32532)
        !          1440:     return \"lshw %2,%0\";
        !          1441:   else
        !          1442:     return \"ashw %2,%0\";
        !          1443: }")
        !          1444: 
        !          1445: (define_insn "ashlqi3"
        !          1446:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1447:        (ashift:QI (match_operand:QI 1 "general_operand" "0")
        !          1448:                   (match_operand:SI 2 "general_operand" "rmn")))]
        !          1449:   ""
        !          1450:   "*
        !          1451: { if (GET_CODE (operands[2]) == CONST_INT)
        !          1452:     {
        !          1453:       if (INTVAL (operands[2]) == 1)
        !          1454:        return \"addb %0,%0\";
        !          1455:       else if (INTVAL (operands[2]) == 2 && !TARGET_32532)
        !          1456:        return \"addb %0,%0\;addb %0,%0\";
        !          1457:     }
        !          1458:   if (TARGET_32532)
        !          1459:     return \"lshb %2,%0\";
        !          1460:   else
        !          1461:     return \"ashb %2,%0\";
        !          1462: }")
        !          1463: 
        !          1464: ;; Arithmetic right shift on the 32k works by negating the shift count.
        !          1465: (define_expand "ashrsi3"
        !          1466:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1467:        (ashiftrt:SI (match_operand:SI 1 "general_operand" "g")
        !          1468:                     (match_operand:SI 2 "general_operand" "g")))]
        !          1469:   ""
        !          1470:   "
        !          1471: {
        !          1472:   if (GET_CODE (operands[2]) != CONST_INT)
        !          1473:     operands[2] = gen_rtx (NEG, SImode, negate_rtx (SImode, operands[2]));
        !          1474: }")
        !          1475: 
        !          1476: (define_insn ""
        !          1477:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1478:        (ashiftrt:SI (match_operand:SI 1 "general_operand" "0")
        !          1479:                     (match_operand:SI 2 "immediate_operand" "i")))]
        !          1480:   ""
        !          1481:   "ashd %$%n2,%0")
        !          1482: 
        !          1483: (define_insn ""
        !          1484:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1485:        (ashiftrt:SI (match_operand:SI 1 "general_operand" "0")
        !          1486:                     (neg:SI (match_operand:SI 2 "general_operand" "r"))))]
        !          1487:   ""
        !          1488:   "ashd %2,%0")
        !          1489: 
        !          1490: (define_expand "ashrhi3"
        !          1491:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1492:        (ashiftrt:HI (match_operand:HI 1 "general_operand" "g")
        !          1493:                     (match_operand:SI 2 "general_operand" "g")))]
        !          1494:   ""
        !          1495:   "
        !          1496: {
        !          1497:   if (GET_CODE (operands[2]) != CONST_INT)
        !          1498:     operands[2] = gen_rtx (NEG, SImode, negate_rtx (SImode, operands[2]));
        !          1499: }")
        !          1500: 
        !          1501: (define_insn ""
        !          1502:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1503:        (ashiftrt:HI (match_operand:HI 1 "general_operand" "0")
        !          1504:                     (match_operand:SI 2 "immediate_operand" "i")))]
        !          1505:   ""
        !          1506:   "ashw %$%n2,%0")
        !          1507: 
        !          1508: (define_insn ""
        !          1509:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1510:        (ashiftrt:HI (match_operand:HI 1 "general_operand" "0")
        !          1511:                     (neg:SI (match_operand:SI 2 "general_operand" "r"))))]
        !          1512:   ""
        !          1513:   "ashw %2,%0")
        !          1514: 
        !          1515: (define_expand "ashrqi3"
        !          1516:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1517:        (ashiftrt:QI (match_operand:QI 1 "general_operand" "g")
        !          1518:                     (match_operand:SI 2 "general_operand" "g")))]
        !          1519:   ""
        !          1520:   "
        !          1521: {
        !          1522:   if (GET_CODE (operands[2]) != CONST_INT)
        !          1523:     operands[2] = gen_rtx (NEG, SImode, negate_rtx (SImode, operands[2]));
        !          1524: }")
        !          1525: 
        !          1526: (define_insn ""
        !          1527:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1528:        (ashiftrt:QI (match_operand:QI 1 "general_operand" "0")
        !          1529:                     (match_operand:SI 2 "immediate_operand" "i")))]
        !          1530:   ""
        !          1531:   "ashb %$%n2,%0")
        !          1532: 
        !          1533: (define_insn ""
        !          1534:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1535:        (ashiftrt:QI (match_operand:QI 1 "general_operand" "0")
        !          1536:                     (neg:SI (match_operand:SI 2 "general_operand" "r"))))]
        !          1537:   ""
        !          1538:   "ashb %2,%0")
        !          1539: 
        !          1540: ;; logical shift instructions
        !          1541: 
        !          1542: (define_insn "lshlsi3"
        !          1543:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1544:        (lshift:SI (match_operand:SI 1 "general_operand" "0")
        !          1545:                   (match_operand:SI 2 "general_operand" "rmn")))]
        !          1546:   ""
        !          1547:   "lshd %2,%0")
        !          1548: 
        !          1549: (define_insn "lshlhi3"
        !          1550:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1551:        (lshift:HI (match_operand:HI 1 "general_operand" "0")
        !          1552:                   (match_operand:SI 2 "general_operand" "rmn")))]
        !          1553:   ""
        !          1554:   "lshw %2,%0")
        !          1555: 
        !          1556: (define_insn "lshlqi3"
        !          1557:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1558:        (lshift:QI (match_operand:QI 1 "general_operand" "0")
        !          1559:                   (match_operand:SI 2 "general_operand" "rmn")))]
        !          1560:   ""
        !          1561:   "lshb %2,%0")
        !          1562: 
        !          1563: ;; Logical right shift on the 32k works by negating the shift count.
        !          1564: (define_expand "lshrsi3"
        !          1565:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1566:        (lshiftrt:SI (match_operand:SI 1 "general_operand" "g")
        !          1567:                     (match_operand:SI 2 "general_operand" "g")))]
        !          1568:   ""
        !          1569:   "
        !          1570: {
        !          1571:   if (GET_CODE (operands[2]) != CONST_INT)
        !          1572:     operands[2] = gen_rtx (NEG, SImode, negate_rtx (SImode, operands[2]));
        !          1573: }")
        !          1574: 
        !          1575: (define_insn ""
        !          1576:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1577:        (lshiftrt:SI (match_operand:SI 1 "general_operand" "0")
        !          1578:                     (match_operand:SI 2 "immediate_operand" "i")))]
        !          1579:   ""
        !          1580:   "lshd %$%n2,%0")
        !          1581: 
        !          1582: (define_insn ""
        !          1583:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1584:        (lshiftrt:SI (match_operand:SI 1 "general_operand" "0")
        !          1585:                     (neg:SI (match_operand:SI 2 "general_operand" "r"))))]
        !          1586:   ""
        !          1587:   "lshd %2,%0")
        !          1588: 
        !          1589: (define_expand "lshrhi3"
        !          1590:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1591:        (lshiftrt:HI (match_operand:HI 1 "general_operand" "g")
        !          1592:                     (match_operand:SI 2 "general_operand" "g")))]
        !          1593:   ""
        !          1594:   "
        !          1595: {
        !          1596:   if (GET_CODE (operands[2]) != CONST_INT)
        !          1597:     operands[2] = gen_rtx (NEG, SImode, negate_rtx (SImode, operands[2]));
        !          1598: }")
        !          1599: 
        !          1600: (define_insn ""
        !          1601:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1602:        (lshiftrt:HI (match_operand:HI 1 "general_operand" "0")
        !          1603:                     (match_operand:SI 2 "immediate_operand" "i")))]
        !          1604:   ""
        !          1605:   "lshw %$%n2,%0")
        !          1606: 
        !          1607: (define_insn ""
        !          1608:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1609:        (lshiftrt:HI (match_operand:HI 1 "general_operand" "0")
        !          1610:                     (neg:SI (match_operand:SI 2 "general_operand" "r"))))]
        !          1611:   ""
        !          1612:   "lshw %2,%0")
        !          1613: 
        !          1614: (define_expand "lshrqi3"
        !          1615:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1616:        (lshiftrt:QI (match_operand:QI 1 "general_operand" "g")
        !          1617:                     (match_operand:SI 2 "general_operand" "g")))]
        !          1618:   ""
        !          1619:   "
        !          1620: {
        !          1621:   if (GET_CODE (operands[2]) != CONST_INT)
        !          1622:     operands[2] = gen_rtx (NEG, SImode, negate_rtx (SImode, operands[2]));
        !          1623: }")
        !          1624: 
        !          1625: (define_insn ""
        !          1626:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1627:        (lshiftrt:QI (match_operand:QI 1 "general_operand" "0")
        !          1628:                     (match_operand:SI 2 "immediate_operand" "i")))]
        !          1629:   ""
        !          1630:   "lshb %$%n2,%0")
        !          1631: 
        !          1632: (define_insn ""
        !          1633:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1634:        (lshiftrt:QI (match_operand:QI 1 "general_operand" "0")
        !          1635:                     (neg:SI (match_operand:SI 2 "general_operand" "r"))))]
        !          1636:   ""
        !          1637:   "lshb %2,%0")
        !          1638: 
        !          1639: ;; Rotate instructions
        !          1640: 
        !          1641: (define_insn "rotlsi3"
        !          1642:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1643:        (rotate:SI (match_operand:SI 1 "general_operand" "0")
        !          1644:                   (match_operand:SI 2 "general_operand" "rmn")))]
        !          1645:   ""
        !          1646:   "rotd %2,%0")
        !          1647: 
        !          1648: (define_insn "rotlhi3"
        !          1649:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1650:        (rotate:HI (match_operand:HI 1 "general_operand" "0")
        !          1651:                   (match_operand:SI 2 "general_operand" "rmn")))]
        !          1652:   ""
        !          1653:   "rotw %2,%0")
        !          1654: 
        !          1655: (define_insn "rotlqi3"
        !          1656:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1657:        (rotate:QI (match_operand:QI 1 "general_operand" "0")
        !          1658:                   (match_operand:SI 2 "general_operand" "rmn")))]
        !          1659:   ""
        !          1660:   "rotb %2,%0")
        !          1661: 
        !          1662: ;; Right rotate on the 32k works by negating the shift count.
        !          1663: (define_expand "rotrsi3"
        !          1664:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1665:        (rotatert:SI (match_operand:SI 1 "general_operand" "g")
        !          1666:                     (match_operand:SI 2 "general_operand" "g")))]
        !          1667:   ""
        !          1668:   "
        !          1669: {
        !          1670:   if (GET_CODE (operands[2]) != CONST_INT)
        !          1671:     operands[2] = gen_rtx (NEG, SImode, negate_rtx (SImode, operands[2]));
        !          1672: }")
        !          1673: 
        !          1674: (define_insn ""
        !          1675:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1676:        (rotatert:SI (match_operand:SI 1 "general_operand" "0")
        !          1677:                     (match_operand:SI 2 "immediate_operand" "i")))]
        !          1678:   ""
        !          1679:   "rotd %$%n2,%0")
        !          1680: 
        !          1681: (define_insn ""
        !          1682:   [(set (match_operand:SI 0 "general_operand" "=g")
        !          1683:        (rotatert:SI (match_operand:SI 1 "general_operand" "0")
        !          1684:                     (neg:SI (match_operand:SI 2 "general_operand" "r"))))]
        !          1685:   ""
        !          1686:   "rotd %2,%0")
        !          1687: 
        !          1688: (define_expand "rotrhi3"
        !          1689:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1690:        (rotatert:HI (match_operand:HI 1 "general_operand" "g")
        !          1691:                     (match_operand:SI 2 "general_operand" "g")))]
        !          1692:   ""
        !          1693:   "
        !          1694: {
        !          1695:   if (GET_CODE (operands[2]) != CONST_INT)
        !          1696:     operands[2] = gen_rtx (NEG, SImode, negate_rtx (SImode, operands[2]));
        !          1697: }")
        !          1698: 
        !          1699: (define_insn ""
        !          1700:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1701:        (rotatert:HI (match_operand:HI 1 "general_operand" "0")
        !          1702:                     (match_operand:SI 2 "immediate_operand" "i")))]
        !          1703:   ""
        !          1704:   "rotw %$%n2,%0")
        !          1705: 
        !          1706: (define_insn ""
        !          1707:   [(set (match_operand:HI 0 "general_operand" "=g")
        !          1708:        (rotatert:HI (match_operand:HI 1 "general_operand" "0")
        !          1709:                     (neg:SI (match_operand:SI 2 "general_operand" "r"))))]
        !          1710:   ""
        !          1711:   "rotw %2,%0")
        !          1712: 
        !          1713: (define_expand "rotrqi3"
        !          1714:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1715:        (rotatert:QI (match_operand:QI 1 "general_operand" "g")
        !          1716:                     (match_operand:SI 2 "general_operand" "g")))]
        !          1717:   ""
        !          1718:   "
        !          1719: {
        !          1720:   if (GET_CODE (operands[2]) != CONST_INT)
        !          1721:     operands[2] = gen_rtx (NEG, SImode, negate_rtx (SImode, operands[2]));
        !          1722: }")
        !          1723: 
        !          1724: (define_insn ""
        !          1725:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1726:        (rotatert:QI (match_operand:QI 1 "general_operand" "0")
        !          1727:                     (match_operand:SI 2 "immediate_operand" "i")))]
        !          1728:   ""
        !          1729:   "rotb %$%n2,%0")
        !          1730: 
        !          1731: (define_insn ""
        !          1732:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1733:        (rotatert:QI (match_operand:QI 1 "general_operand" "0")
        !          1734:                     (neg:SI (match_operand:SI 2 "general_operand" "r"))))]
        !          1735:   ""
        !          1736:   "rotb %2,%0")
        !          1737: 
        !          1738: ;;- load or push effective address 
        !          1739: ;; These come after the move, add, and multiply patterns
        !          1740: ;; because we don't want pushl $1 turned into pushad 1.
        !          1741: 
        !          1742: (define_insn ""
        !          1743:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          1744:        (match_operand:QI 1 "address_operand" "p"))]
        !          1745:   ""
        !          1746:   "*
        !          1747: {
        !          1748:   if (REG_P (operands[0])
        !          1749:       && GET_CODE (operands[1]) == MULT
        !          1750:       && GET_CODE (XEXP (operands[1], 1)) == CONST_INT
        !          1751:       && (INTVAL (XEXP (operands[1], 1)) == 2
        !          1752:          || INTVAL (XEXP (operands[1], 1)) == 4))
        !          1753:     {
        !          1754:       rtx xoperands[3];
        !          1755:       xoperands[0] = operands[0];
        !          1756:       xoperands[1] = XEXP (operands[1], 0);
        !          1757:       xoperands[2] = gen_rtx (CONST_INT, VOIDmode, INTVAL (XEXP (operands[1], 1)) >> 1);
        !          1758:       return output_shift_insn (xoperands);
        !          1759:     }
        !          1760:   return \"addr %a1,%0\";
        !          1761: }")
        !          1762: 
        !          1763: ;;; Index insns.  These are about the same speed as multiply-add counterparts.
        !          1764: ;;; but slower then using power-of-2 shifts if we can use them
        !          1765: ;
        !          1766: ;(define_insn ""
        !          1767: ;  [(set (match_operand:SI 0 "register_operand" "=r")
        !          1768: ;      (plus:SI (match_operand:SI 1 "general_operand" "rmn")
        !          1769: ;               (mult:SI (match_operand:SI 2 "register_operand" "0")
        !          1770: ;                        (plus:SI (match_operand:SI 3 "general_operand" "rmn") (const_int 1)))))]
        !          1771: ;  "GET_CODE (operands[3]) != CONST_INT || INTVAL (operands[3]) > 8"
        !          1772: ;  "indexd %0,%3,%1")
        !          1773: ;
        !          1774: ;(define_insn ""
        !          1775: ;  [(set (match_operand:SI 0 "register_operand" "=r")
        !          1776: ;      (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "0")
        !          1777: ;                        (plus:SI (match_operand:SI 2 "general_operand" "rmn") (const_int 1)))
        !          1778: ;               (match_operand:SI 3 "general_operand" "rmn")))]
        !          1779: ;  "GET_CODE (operands[2]) != CONST_INT || INTVAL (operands[2]) > 8"
        !          1780: ;  "indexd %0,%2,%3")
        !          1781: 
        !          1782: ;; Set, Clear, and Invert bit
        !          1783: 
        !          1784: (define_insn ""
        !          1785:   [(set (zero_extract:SI (match_operand:SI 0 "general_operand" "+g")
        !          1786:                         (const_int 1)
        !          1787:                         (match_operand:SI 1 "general_operand" "rmn"))
        !          1788:        (const_int 1))]
        !          1789:   ""
        !          1790:   "sbitd %1,%0")
        !          1791: 
        !          1792: (define_insn ""
        !          1793:   [(set (zero_extract:SI (match_operand:SI 0 "general_operand" "+g")
        !          1794:                         (const_int 1)
        !          1795:                         (match_operand:SI 1 "general_operand" "rmn"))
        !          1796:        (const_int 0))]
        !          1797:   ""
        !          1798:   "cbitd %1,%0")
        !          1799: 
        !          1800: (define_insn ""
        !          1801:   [(set (match_operand:SI 0 "general_operand" "+g")
        !          1802:        (xor:SI (ashift:SI (const_int 1)
        !          1803:                           (match_operand:SI 1 "general_operand" "rmn"))
        !          1804:                (match_dup 0)))]
        !          1805:   ""
        !          1806:   "ibitd %1,%0")
        !          1807: 
        !          1808: (define_insn ""
        !          1809:   [(set (match_operand:QI 0 "general_operand" "=g")
        !          1810:        (xor:QI (subreg:QI
        !          1811:                 (ashift:SI (const_int 1)
        !          1812:                            (match_operand:QI 1 "general_operand" "rmn")) 0)
        !          1813:                (match_dup 0)))]
        !          1814:   ""
        !          1815:   "ibitb %1,%0")
        !          1816: 
        !          1817: ;; Recognize jbs and jbc instructions.
        !          1818: 
        !          1819: (define_insn ""
        !          1820:   [(set (cc0)
        !          1821:        (zero_extract (match_operand:SI 0 "general_operand" "rm")
        !          1822:                      (const_int 1)
        !          1823:                      (match_operand:SI 1 "general_operand" "g")))]
        !          1824:   ""
        !          1825:   "*
        !          1826: { cc_status.flags = CC_Z_IN_F;
        !          1827:   return \"tbitd %1,%0\";
        !          1828: }")
        !          1829: 
        !          1830: ;; extract(base, width, offset)
        !          1831: ;; Signed bitfield extraction is not supported in hardware on the
        !          1832: ;; NS 32032.  It is therefore better to let GCC figure out a
        !          1833: ;; good strategy for generating the proper instruction sequence
        !          1834: ;; and represent it as rtl.
        !          1835: 
        !          1836: ;; Optimize the case of extracting a byte or word from a register.
        !          1837: ;; Otherwise we must load a register with the offset of the
        !          1838: ;; chunk we want, and perform an extract insn (each of which
        !          1839: ;; is very expensive).  Since we use the stack to do our bit-twiddling
        !          1840: ;; we cannot use it for a destination.  Perhaps things are fast
        !          1841: ;; enough on the 32532 that such hacks are not needed.
        !          1842: 
        !          1843: (define_insn ""
        !          1844:   [(set (match_operand:SI 0 "general_operand" "=ro")
        !          1845:        (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
        !          1846:                         (match_operand:SI 2 "const_int_operand" "i")
        !          1847:                         (match_operand:SI 3 "const_int_operand" "i")))]
        !          1848:   "(INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16)
        !          1849:    && (INTVAL (operands[3]) == 8 || INTVAL (operands[3]) == 16 || INTVAL (operands[3]) == 24)"
        !          1850:   "*
        !          1851: {
        !          1852:   output_asm_insn (\"movd %1,tos\", operands);
        !          1853:   if (INTVAL (operands[2]) == 16)
        !          1854:     {
        !          1855:       if (INTVAL (operands[3]) == 8)
        !          1856:        output_asm_insn (\"movzwd 1(sp),%0\", operands);
        !          1857:       else
        !          1858:        output_asm_insn (\"movzwd 2(sp),%0\", operands);
        !          1859:     }
        !          1860:   else
        !          1861:     {
        !          1862:       if (INTVAL (operands[3]) == 8)
        !          1863:        output_asm_insn (\"movzbd 1(sp),%0\", operands);
        !          1864:       else if (INTVAL (operands[3]) == 16)
        !          1865:        output_asm_insn (\"movzbd 2(sp),%0\", operands);
        !          1866:       else
        !          1867:        output_asm_insn (\"movzbd 3(sp),%0\", operands);
        !          1868:     }
        !          1869:   if (TARGET_32532 || TARGET_32332)
        !          1870:     return \"cmpqd %$0,tos\";
        !          1871:   else
        !          1872:     return \"adjspb %$-4\";
        !          1873: }")
        !          1874: 
        !          1875: (define_insn ""
        !          1876:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          1877:        (zero_extract:SI (match_operand:SI 1 "register_operand" "g")
        !          1878:                         (match_operand:SI 2 "const_int_operand" "i")
        !          1879:                         (match_operand:SI 3 "general_operand" "rK")))]
        !          1880:   ""
        !          1881:   "*
        !          1882: { if (GET_CODE (operands[3]) == CONST_INT)
        !          1883:     return \"extsd %1,%0,%3,%2\";
        !          1884:   else return \"extd %3,%1,%0,%2\";
        !          1885: }")
        !          1886: 
        !          1887: (define_insn "extzv"
        !          1888:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          1889:        (zero_extract:SI (match_operand:QI 1 "general_operand" "g")
        !          1890:                         (match_operand:SI 2 "const_int_operand" "i")
        !          1891:                         (match_operand:SI 3 "general_operand" "rK")))]
        !          1892:   ""
        !          1893:   "*
        !          1894: { if (GET_CODE (operands[3]) == CONST_INT)
        !          1895:     return \"extsd %1,%0,%3,%2\";
        !          1896:   else return \"extd %3,%1,%0,%2\";
        !          1897: }")
        !          1898: 
        !          1899: (define_insn ""
        !          1900:   [(set (zero_extract:SI (match_operand:SI 0 "memory_operand" "+o")
        !          1901:                         (match_operand:SI 1 "const_int_operand" "i")
        !          1902:                         (match_operand:SI 2 "general_operand" "rn"))
        !          1903:        (match_operand:SI 3 "general_operand" "rm"))]
        !          1904:   ""
        !          1905:   "*
        !          1906: { if (GET_CODE (operands[2]) == CONST_INT)
        !          1907:     {
        !          1908:       if (INTVAL (operands[2]) >= 8)
        !          1909:        {
        !          1910:          operands[0] = adj_offsettable_operand (operands[0],
        !          1911:                                                INTVAL (operands[2]) / 8);
        !          1912:           operands[2] = gen_rtx (CONST_INT, VOIDmode, INTVAL (operands[2]) % 8);
        !          1913:        }
        !          1914:       if (INTVAL (operands[1]) <= 8)
        !          1915:         return \"inssb %3,%0,%2,%1\";
        !          1916:       else if (INTVAL (operands[1]) <= 16)
        !          1917:        return \"inssw %3,%0,%2,%1\";
        !          1918:       else
        !          1919:        return \"inssd %3,%0,%2,%1\";
        !          1920:     }
        !          1921:   return \"insd %2,%3,%0,%1\";
        !          1922: }")
        !          1923: 
        !          1924: (define_insn ""
        !          1925:   [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r")
        !          1926:                         (match_operand:SI 1 "const_int_operand" "i")
        !          1927:                         (match_operand:SI 2 "general_operand" "rK"))
        !          1928:        (match_operand:SI 3 "general_operand" "rm"))]
        !          1929:   ""
        !          1930:   "*
        !          1931: { if (GET_CODE (operands[2]) == CONST_INT)
        !          1932:     if (INTVAL (operands[1]) <= 8)
        !          1933:       return \"inssb %3,%0,%2,%1\";
        !          1934:     else if (INTVAL (operands[1]) <= 16)
        !          1935:       return \"inssw %3,%0,%2,%1\";
        !          1936:     else
        !          1937:       return \"inssd %3,%0,%2,%1\";
        !          1938:   return \"insd %2,%3,%0,%1\";
        !          1939: }")
        !          1940: 
        !          1941: (define_insn "insv"
        !          1942:   [(set (zero_extract:SI (match_operand:QI 0 "general_operand" "+g")
        !          1943:                         (match_operand:SI 1 "const_int_operand" "i")
        !          1944:                         (match_operand:SI 2 "general_operand" "rK"))
        !          1945:        (match_operand:SI 3 "general_operand" "rm"))]
        !          1946:   ""
        !          1947:   "*
        !          1948: { if (GET_CODE (operands[2]) == CONST_INT)
        !          1949:     if (INTVAL (operands[1]) <= 8)
        !          1950:       return \"inssb %3,%0,%2,%1\";
        !          1951:     else if (INTVAL (operands[1]) <= 16)
        !          1952:       return \"inssw %3,%0,%2,%1\";
        !          1953:     else
        !          1954:       return \"inssd %3,%0,%2,%1\";
        !          1955:   return \"insd %2,%3,%0,%1\";
        !          1956: }")
        !          1957: 
        !          1958: 
        !          1959: (define_insn "jump"
        !          1960:   [(set (pc)
        !          1961:        (label_ref (match_operand 0 "" "")))]
        !          1962:   ""
        !          1963:   "br %l0")
        !          1964: 
        !          1965: (define_insn "beq"
        !          1966:   [(set (pc)
        !          1967:        (if_then_else (eq (cc0)
        !          1968:                          (const_int 0))
        !          1969:                      (label_ref (match_operand 0 "" ""))
        !          1970:                      (pc)))]
        !          1971:   ""
        !          1972:   "*
        !          1973: { if (cc_prev_status.flags & CC_Z_IN_F)
        !          1974:     return \"bfc %l0\";
        !          1975:   else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
        !          1976:     return \"bfs %l0\";
        !          1977:   else return \"beq %l0\";
        !          1978: }")
        !          1979: 
        !          1980: (define_insn "bne"
        !          1981:   [(set (pc)
        !          1982:        (if_then_else (ne (cc0)
        !          1983:                          (const_int 0))
        !          1984:                      (label_ref (match_operand 0 "" ""))
        !          1985:                      (pc)))]
        !          1986:   ""
        !          1987:   "*
        !          1988: { if (cc_prev_status.flags & CC_Z_IN_F)
        !          1989:     return \"bfs %l0\";
        !          1990:   else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
        !          1991:     return \"bfc %l0\";
        !          1992:   else return \"bne %l0\";
        !          1993: }")
        !          1994: 
        !          1995: (define_insn "bgt"
        !          1996:   [(set (pc)
        !          1997:        (if_then_else (gt (cc0)
        !          1998:                          (const_int 0))
        !          1999:                      (label_ref (match_operand 0 "" ""))
        !          2000:                      (pc)))]
        !          2001:   ""
        !          2002:   "bgt %l0")
        !          2003: 
        !          2004: (define_insn "bgtu"
        !          2005:   [(set (pc)
        !          2006:        (if_then_else (gtu (cc0)
        !          2007:                           (const_int 0))
        !          2008:                      (label_ref (match_operand 0 "" ""))
        !          2009:                      (pc)))]
        !          2010:   ""
        !          2011:   "bhi %l0")
        !          2012: 
        !          2013: (define_insn "blt"
        !          2014:   [(set (pc)
        !          2015:        (if_then_else (lt (cc0)
        !          2016:                          (const_int 0))
        !          2017:                      (label_ref (match_operand 0 "" ""))
        !          2018:                      (pc)))]
        !          2019:   ""
        !          2020:   "blt %l0")
        !          2021: 
        !          2022: (define_insn "bltu"
        !          2023:   [(set (pc)
        !          2024:        (if_then_else (ltu (cc0)
        !          2025:                           (const_int 0))
        !          2026:                      (label_ref (match_operand 0 "" ""))
        !          2027:                      (pc)))]
        !          2028:   ""
        !          2029:   "blo %l0")
        !          2030: 
        !          2031: (define_insn "bge"
        !          2032:   [(set (pc)
        !          2033:        (if_then_else (ge (cc0)
        !          2034:                          (const_int 0))
        !          2035:                      (label_ref (match_operand 0 "" ""))
        !          2036:                      (pc)))]
        !          2037:   ""
        !          2038:   "bge %l0")
        !          2039: 
        !          2040: (define_insn "bgeu"
        !          2041:   [(set (pc)
        !          2042:        (if_then_else (geu (cc0)
        !          2043:                           (const_int 0))
        !          2044:                      (label_ref (match_operand 0 "" ""))
        !          2045:                      (pc)))]
        !          2046:   ""
        !          2047:   "bhs %l0")
        !          2048: 
        !          2049: (define_insn "ble"
        !          2050:   [(set (pc)
        !          2051:        (if_then_else (le (cc0)
        !          2052:                          (const_int 0))
        !          2053:                      (label_ref (match_operand 0 "" ""))
        !          2054:                      (pc)))]
        !          2055:   ""
        !          2056:   "ble %l0")
        !          2057: 
        !          2058: (define_insn "bleu"
        !          2059:   [(set (pc)
        !          2060:        (if_then_else (leu (cc0)
        !          2061:                           (const_int 0))
        !          2062:                      (label_ref (match_operand 0 "" ""))
        !          2063:                      (pc)))]
        !          2064:   ""
        !          2065:   "bls %l0")
        !          2066: 
        !          2067: (define_insn ""
        !          2068:   [(set (pc)
        !          2069:        (if_then_else (eq (cc0)
        !          2070:                          (const_int 0))
        !          2071:                      (pc)
        !          2072:                      (label_ref (match_operand 0 "" ""))))]
        !          2073:   ""
        !          2074:   "*
        !          2075: { if (cc_prev_status.flags & CC_Z_IN_F)
        !          2076:     return \"bfs %l0\";
        !          2077:   else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
        !          2078:     return \"bfc %l0\";
        !          2079:   else return \"bne %l0\";
        !          2080: }")
        !          2081: 
        !          2082: (define_insn ""
        !          2083:   [(set (pc)
        !          2084:        (if_then_else (ne (cc0)
        !          2085:                          (const_int 0))
        !          2086:                      (pc)
        !          2087:                      (label_ref (match_operand 0 "" ""))))]
        !          2088:   ""
        !          2089:   "*
        !          2090: { if (cc_prev_status.flags & CC_Z_IN_F)
        !          2091:     return \"bfc %l0\";
        !          2092:   else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
        !          2093:     return \"bfs %l0\";
        !          2094:   else return \"beq %l0\";
        !          2095: }")
        !          2096: 
        !          2097: (define_insn ""
        !          2098:   [(set (pc)
        !          2099:        (if_then_else (gt (cc0)
        !          2100:                          (const_int 0))
        !          2101:                      (pc)
        !          2102:                      (label_ref (match_operand 0 "" ""))))]
        !          2103:   ""
        !          2104:   "ble %l0")
        !          2105: 
        !          2106: (define_insn ""
        !          2107:   [(set (pc)
        !          2108:        (if_then_else (gtu (cc0)
        !          2109:                           (const_int 0))
        !          2110:                      (pc)
        !          2111:                      (label_ref (match_operand 0 "" ""))))]
        !          2112:   ""
        !          2113:   "bls %l0")
        !          2114: 
        !          2115: (define_insn ""
        !          2116:   [(set (pc)
        !          2117:        (if_then_else (lt (cc0)
        !          2118:                          (const_int 0))
        !          2119:                      (pc)
        !          2120:                      (label_ref (match_operand 0 "" ""))))]
        !          2121:   ""
        !          2122:   "bge %l0")
        !          2123: 
        !          2124: (define_insn ""
        !          2125:   [(set (pc)
        !          2126:        (if_then_else (ltu (cc0)
        !          2127:                           (const_int 0))
        !          2128:                      (pc)
        !          2129:                      (label_ref (match_operand 0 "" ""))))]
        !          2130:   ""
        !          2131:   "bhs %l0")
        !          2132: 
        !          2133: (define_insn ""
        !          2134:   [(set (pc)
        !          2135:        (if_then_else (ge (cc0)
        !          2136:                          (const_int 0))
        !          2137:                      (pc)
        !          2138:                      (label_ref (match_operand 0 "" ""))))]
        !          2139:   ""
        !          2140:   "blt %l0")
        !          2141: 
        !          2142: (define_insn ""
        !          2143:   [(set (pc)
        !          2144:        (if_then_else (geu (cc0)
        !          2145:                           (const_int 0))
        !          2146:                      (pc)
        !          2147:                      (label_ref (match_operand 0 "" ""))))]
        !          2148:   ""
        !          2149:   "blo %l0")
        !          2150: 
        !          2151: (define_insn ""
        !          2152:   [(set (pc)
        !          2153:        (if_then_else (le (cc0)
        !          2154:                          (const_int 0))
        !          2155:                      (pc)
        !          2156:                      (label_ref (match_operand 0 "" ""))))]
        !          2157:   ""
        !          2158:   "bgt %l0")
        !          2159: 
        !          2160: (define_insn ""
        !          2161:   [(set (pc)
        !          2162:        (if_then_else (leu (cc0)
        !          2163:                           (const_int 0))
        !          2164:                      (pc)
        !          2165:                      (label_ref (match_operand 0 "" ""))))]
        !          2166:   ""
        !          2167:   "bhi %l0")
        !          2168: 
        !          2169: ;; Subtract-and-jump and Add-and-jump insns.
        !          2170: ;; These can actually be used for adding numbers in the range -8 to 7
        !          2171: 
        !          2172: (define_insn ""
        !          2173:   [(set (pc)
        !          2174:        (if_then_else
        !          2175:         (ne (match_operand:SI 0 "general_operand" "+g")
        !          2176:             (match_operand:SI 1 "const_int_operand" "i"))
        !          2177:         (label_ref (match_operand 2 "" ""))
        !          2178:         (pc)))
        !          2179:   (set (match_dup 0)
        !          2180:        (minus:SI (match_dup 0)
        !          2181:                 (match_dup 1)))]
        !          2182:   "INTVAL (operands[1]) > -8 && INTVAL (operands[1]) <= 8"
        !          2183:   "acbd %$%n1,%0,%l2")
        !          2184: 
        !          2185: (define_insn ""
        !          2186:   [(set (pc)
        !          2187:        (if_then_else
        !          2188:         (ne (match_operand:SI 0 "general_operand" "+g")
        !          2189:             (match_operand:SI 1 "const_int_operand" "i"))
        !          2190:         (label_ref (match_operand 2 "" ""))
        !          2191:         (pc)))
        !          2192:   (set (match_dup 0)
        !          2193:        (plus:SI (match_dup 0)
        !          2194:                (match_operand:SI 3 "const_int_operand" "i")))]
        !          2195:   "INTVAL (operands[1]) == - INTVAL (operands[3])
        !          2196:    && INTVAL (operands[3]) >= -8 && INTVAL (operands[3]) < 8"
        !          2197:   "acbd %3,%0,%l2")
        !          2198: 
        !          2199: (define_insn "call"
        !          2200:   [(call (match_operand:QI 0 "memory_operand" "m")
        !          2201:         (match_operand:QI 1 "general_operand" "g"))]
        !          2202:   ""
        !          2203:   "*
        !          2204: {
        !          2205: #ifndef JSR_ALWAYS
        !          2206:   if (GET_CODE (operands[0]) == MEM)
        !          2207:     {
        !          2208:       rtx temp = XEXP (operands[0], 0);
        !          2209:       if (CONSTANT_ADDRESS_P (temp))
        !          2210:        {
        !          2211: #ifdef ENCORE_ASM
        !          2212:          return \"bsr %?%0\";
        !          2213: #else
        !          2214: #ifdef CALL_MEMREF_IMPLICIT
        !          2215:          operands[0] = temp;
        !          2216:          return \"bsr %0\";
        !          2217: #else
        !          2218: #ifdef GNX_V3
        !          2219:          return \"bsr %0\";
        !          2220: #else
        !          2221:          return \"bsr %?%a0\";
        !          2222: #endif
        !          2223: #endif
        !          2224: #endif
        !          2225:        }
        !          2226:       if (GET_CODE (XEXP (operands[0], 0)) == REG)
        !          2227: #if defined (GNX_V3) || defined (CALL_MEMREF_IMPLICIT)
        !          2228:        return \"jsr %0\";
        !          2229: #else
        !          2230:         return \"jsr %a0\";
        !          2231: #endif
        !          2232:     }
        !          2233: #endif /* not JSR_ALWAYS */
        !          2234:   return \"jsr %0\";
        !          2235: }")
        !          2236: 
        !          2237: (define_insn "call_value"
        !          2238:   [(set (match_operand 0 "" "=rf")
        !          2239:        (call (match_operand:QI 1 "memory_operand" "m")
        !          2240:              (match_operand:QI 2 "general_operand" "g")))]
        !          2241:   ""
        !          2242:   "*
        !          2243: {
        !          2244: #ifndef JSR_ALWAYS
        !          2245:   if (GET_CODE (operands[1]) == MEM)
        !          2246:     {
        !          2247:       rtx temp = XEXP (operands[1], 0);
        !          2248:       if (CONSTANT_ADDRESS_P (temp))
        !          2249:        {
        !          2250: #ifdef ENCORE_ASM
        !          2251:          return \"bsr %?%1\";
        !          2252: #else
        !          2253: #ifdef CALL_MEMREF_IMPLICIT
        !          2254:          operands[1] = temp;
        !          2255:          return \"bsr %1\";
        !          2256: #else
        !          2257: #ifdef GNX_V3
        !          2258:          return \"bsr %1\";
        !          2259: #else
        !          2260:          return \"bsr %?%a1\";
        !          2261: #endif
        !          2262: #endif
        !          2263: #endif
        !          2264:        }
        !          2265:       if (GET_CODE (XEXP (operands[1], 0)) == REG)
        !          2266: #if defined (GNX_V3) || defined (CALL_MEMREF_IMPLICIT)
        !          2267:        return \"jsr %1\";
        !          2268: #else
        !          2269:         return \"jsr %a1\";
        !          2270: #endif
        !          2271:     }
        !          2272: #endif /* not JSR_ALWAYS */
        !          2273:   return \"jsr %1\";
        !          2274: }")
        !          2275: 
        !          2276: ;; Call subroutine returning any type.
        !          2277: 
        !          2278: (define_expand "untyped_call"
        !          2279:   [(parallel [(call (match_operand 0 "" "")
        !          2280:                    (const_int 0))
        !          2281:              (match_operand 1 "" "")
        !          2282:              (match_operand 2 "" "")])]
        !          2283:   ""
        !          2284:   "
        !          2285: {
        !          2286:   int i;
        !          2287: 
        !          2288:   emit_call_insn (gen_call (operands[0], const0_rtx, NULL, const0_rtx));
        !          2289: 
        !          2290:   for (i = 0; i < XVECLEN (operands[2], 0); i++)
        !          2291:     {
        !          2292:       rtx set = XVECEXP (operands[2], 0, i);
        !          2293:       emit_move_insn (SET_DEST (set), SET_SRC (set));
        !          2294:     }
        !          2295: 
        !          2296:   /* The optimizer does not know that the call sets the function value
        !          2297:      registers we stored in the result block.  We avoid problems by
        !          2298:      claiming that all hard registers are used and clobbered at this
        !          2299:      point.  */
        !          2300:   emit_insn (gen_blockage ());
        !          2301: 
        !          2302:   DONE;
        !          2303: }")
        !          2304: 
        !          2305: ;; UNSPEC_VOLATILE is considered to use and clobber all hard registers and
        !          2306: ;; all of memory.  This blocks insns from being moved across this point.
        !          2307: 
        !          2308: (define_insn "blockage"
        !          2309:   [(unspec_volatile [(const_int 0)] 0)]
        !          2310:   ""
        !          2311:   "")
        !          2312: 
        !          2313: (define_insn "return"
        !          2314:   [(return)]
        !          2315:   "0"
        !          2316:   "ret 0")
        !          2317: 
        !          2318: (define_insn "abssf2"
        !          2319:   [(set (match_operand:SF 0 "general_operand" "=fm<")
        !          2320:        (abs:SF (match_operand:SF 1 "general_operand" "fmF")))]
        !          2321:   "TARGET_32081"
        !          2322:   "absf %1,%0")
        !          2323: 
        !          2324: (define_insn "absdf2"
        !          2325:   [(set (match_operand:DF 0 "general_operand" "=fm<")
        !          2326:        (abs:DF (match_operand:DF 1 "general_operand" "fmF")))]
        !          2327:   "TARGET_32081"
        !          2328:   "absl %1,%0")
        !          2329: 
        !          2330: (define_insn "abssi2"
        !          2331:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          2332:        (abs:SI (match_operand:SI 1 "general_operand" "rmn")))]
        !          2333:   ""
        !          2334:   "absd %1,%0")
        !          2335: 
        !          2336: (define_insn "abshi2"
        !          2337:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          2338:        (abs:HI (match_operand:HI 1 "general_operand" "g")))]
        !          2339:   ""
        !          2340:   "absw %1,%0")
        !          2341: 
        !          2342: (define_insn "absqi2"
        !          2343:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          2344:        (abs:QI (match_operand:QI 1 "general_operand" "g")))]
        !          2345:   ""
        !          2346:   "absb %1,%0")
        !          2347: 
        !          2348: (define_insn "nop"
        !          2349:   [(const_int 0)]
        !          2350:   ""
        !          2351:   "nop")
        !          2352: 
        !          2353: (define_insn "indirect_jump"
        !          2354:   [(set (pc) (match_operand:SI 0 "register_operand" "r"))]
        !          2355:   ""
        !          2356:   "jump %0")
        !          2357: 
        !          2358: ;;(define_insn "tablejump"
        !          2359: ;;  [(set (pc)
        !          2360: ;;     (plus:SI (match_operand:SI 0 "general_operand" "g")
        !          2361: ;;              (pc)))]
        !          2362: ;;  ""
        !          2363: ;;  "cased %0")
        !          2364: 
        !          2365: (define_insn "tablejump"
        !          2366:   [(set (pc)
        !          2367:        (plus:SI (pc) (match_operand:HI 0 "general_operand" "g")))
        !          2368:    (use (label_ref (match_operand 1 "" "")))]
        !          2369:   ""
        !          2370:   "*
        !          2371: {
        !          2372:   ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LI\",
        !          2373:                             CODE_LABEL_NUMBER (operands[1]));
        !          2374:   return \"casew %0\";
        !          2375: }")
        !          2376: 
        !          2377: ;;(define_insn ""
        !          2378: ;;  [(set (pc)
        !          2379: ;;     (plus:SI (match_operand:QI 0 "general_operand" "g")
        !          2380: ;;              (pc)))]
        !          2381: ;;  ""
        !          2382: ;;  "caseb %0")
        !          2383: 
        !          2384: ;; Scondi instructions
        !          2385: (define_insn "seq"
        !          2386:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          2387:        (eq:SI (cc0) (const_int 0)))]
        !          2388:   ""
        !          2389:   "*
        !          2390: { if (cc_prev_status.flags & CC_Z_IN_F)
        !          2391:     return \"sfcd %0\";
        !          2392:   else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
        !          2393:     return \"sfsd %0\";
        !          2394:   else return \"seqd %0\";
        !          2395: }")
        !          2396: 
        !          2397: (define_insn ""
        !          2398:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          2399:        (eq:HI (cc0) (const_int 0)))]
        !          2400:   ""
        !          2401:   "*
        !          2402: { if (cc_prev_status.flags & CC_Z_IN_F)
        !          2403:     return \"sfcw %0\";
        !          2404:   else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
        !          2405:     return \"sfsw %0\";
        !          2406:   else return \"seqw %0\";
        !          2407: }")
        !          2408: 
        !          2409: (define_insn ""
        !          2410:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          2411:        (eq:QI (cc0) (const_int 0)))]
        !          2412:   ""
        !          2413:   "*
        !          2414: { if (cc_prev_status.flags & CC_Z_IN_F)
        !          2415:     return \"sfcb %0\";
        !          2416:   else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
        !          2417:     return \"sfsb %0\";
        !          2418:   else return \"seqb %0\";
        !          2419: }")
        !          2420: 
        !          2421: (define_insn "sne"
        !          2422:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          2423:        (ne:SI (cc0) (const_int 0)))]
        !          2424:   ""
        !          2425:   "*
        !          2426: { if (cc_prev_status.flags & CC_Z_IN_F)
        !          2427:     return \"sfsd %0\";
        !          2428:   else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
        !          2429:     return \"sfcd %0\";
        !          2430:   else return \"sned %0\";
        !          2431: }")
        !          2432: 
        !          2433: (define_insn ""
        !          2434:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          2435:        (ne:HI (cc0) (const_int 0)))]
        !          2436:   ""
        !          2437:   "*
        !          2438: { if (cc_prev_status.flags & CC_Z_IN_F)
        !          2439:     return \"sfsw %0\";
        !          2440:   else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
        !          2441:     return \"sfcw %0\";
        !          2442:   else return \"snew %0\";
        !          2443: }")
        !          2444: 
        !          2445: (define_insn ""
        !          2446:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          2447:        (ne:QI (cc0) (const_int 0)))]
        !          2448:   ""
        !          2449:   "*
        !          2450: { if (cc_prev_status.flags & CC_Z_IN_F)
        !          2451:     return \"sfsb %0\";
        !          2452:   else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
        !          2453:     return \"sfcb %0\";
        !          2454:   else return \"sneb %0\";
        !          2455: }")
        !          2456: 
        !          2457: (define_insn "sgt"
        !          2458:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          2459:        (gt:SI (cc0) (const_int 0)))]
        !          2460:   ""
        !          2461:   "sgtd %0")
        !          2462: 
        !          2463: (define_insn ""
        !          2464:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          2465:        (gt:HI (cc0) (const_int 0)))]
        !          2466:   ""
        !          2467:   "sgtw %0")
        !          2468: 
        !          2469: (define_insn ""
        !          2470:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          2471:        (gt:QI (cc0) (const_int 0)))]
        !          2472:   ""
        !          2473:   "sgtb %0")
        !          2474: 
        !          2475: (define_insn "sgtu"
        !          2476:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          2477:        (gtu:SI (cc0) (const_int 0)))]
        !          2478:   ""
        !          2479:   "shid %0")
        !          2480: 
        !          2481: (define_insn ""
        !          2482:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          2483:        (gtu:HI (cc0) (const_int 0)))]
        !          2484:   ""
        !          2485:   "shiw %0")
        !          2486: 
        !          2487: (define_insn ""
        !          2488:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          2489:        (gtu:QI (cc0) (const_int 0)))]
        !          2490:   ""
        !          2491:   "shib %0")
        !          2492: 
        !          2493: (define_insn "slt"
        !          2494:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          2495:        (lt:SI (cc0) (const_int 0)))]
        !          2496:   ""
        !          2497:   "sltd %0")
        !          2498: 
        !          2499: (define_insn ""
        !          2500:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          2501:        (lt:HI (cc0) (const_int 0)))]
        !          2502:   ""
        !          2503:   "sltw %0")
        !          2504: 
        !          2505: (define_insn ""
        !          2506:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          2507:        (lt:QI (cc0) (const_int 0)))]
        !          2508:   ""
        !          2509:   "sltb %0")
        !          2510: 
        !          2511: (define_insn "sltu"
        !          2512:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          2513:        (ltu:SI (cc0) (const_int 0)))]
        !          2514:   ""
        !          2515:   "slod %0")
        !          2516: 
        !          2517: (define_insn ""
        !          2518:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          2519:        (ltu:HI (cc0) (const_int 0)))]
        !          2520:   ""
        !          2521:   "slow %0")
        !          2522: 
        !          2523: (define_insn ""
        !          2524:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          2525:        (ltu:QI (cc0) (const_int 0)))]
        !          2526:   ""
        !          2527:   "slob %0")
        !          2528: 
        !          2529: (define_insn "sge"
        !          2530:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          2531:        (ge:SI (cc0) (const_int 0)))]
        !          2532:   ""
        !          2533:   "sged %0")
        !          2534: 
        !          2535: (define_insn ""
        !          2536:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          2537:        (ge:HI (cc0) (const_int 0)))]
        !          2538:   ""
        !          2539:   "sgew %0")
        !          2540: 
        !          2541: (define_insn ""
        !          2542:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          2543:        (ge:QI (cc0) (const_int 0)))]
        !          2544:   ""
        !          2545:   "sgeb %0")
        !          2546: 
        !          2547: (define_insn "sgeu"
        !          2548:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          2549:        (geu:SI (cc0) (const_int 0)))]
        !          2550:   ""
        !          2551:   "shsd %0")  
        !          2552: 
        !          2553: (define_insn ""
        !          2554:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          2555:        (geu:HI (cc0) (const_int 0)))]
        !          2556:   ""
        !          2557:   "shsw %0")  
        !          2558: 
        !          2559: (define_insn ""
        !          2560:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          2561:        (geu:QI (cc0) (const_int 0)))]
        !          2562:   ""
        !          2563:   "shsb %0")  
        !          2564: 
        !          2565: (define_insn "sle"
        !          2566:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          2567:        (le:SI (cc0) (const_int 0)))]
        !          2568:   ""
        !          2569:   "sled %0")
        !          2570: 
        !          2571: (define_insn ""
        !          2572:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          2573:        (le:HI (cc0) (const_int 0)))]
        !          2574:   ""
        !          2575:   "slew %0")
        !          2576: 
        !          2577: (define_insn ""
        !          2578:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          2579:        (le:QI (cc0) (const_int 0)))]
        !          2580:   ""
        !          2581:   "sleb %0")
        !          2582: 
        !          2583: (define_insn "sleu"
        !          2584:   [(set (match_operand:SI 0 "general_operand" "=g<")
        !          2585:        (leu:SI (cc0) (const_int 0)))]
        !          2586:   ""
        !          2587:   "slsd %0")
        !          2588: 
        !          2589: (define_insn ""
        !          2590:   [(set (match_operand:HI 0 "general_operand" "=g<")
        !          2591:        (leu:HI (cc0) (const_int 0)))]
        !          2592:   ""
        !          2593:   "slsw %0")
        !          2594: 
        !          2595: (define_insn ""
        !          2596:   [(set (match_operand:QI 0 "general_operand" "=g<")
        !          2597:        (leu:QI (cc0) (const_int 0)))]
        !          2598:   ""
        !          2599:   "slsb %0")

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.