Delete A step Itanium support.
authorJim Wilson <wilson@redhat.com>
Tue, 16 Jan 2001 21:37:08 +0000 (21:37 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Tue, 16 Jan 2001 21:37:08 +0000 (13:37 -0800)
* config/ia64/ia64.c (ia64_print_operand_address): Delete 'B' support.
(fixup_errata): Delete TARGET_A_STEP use.
* config/ia64/ia64.h (MASK_A_STEP, TARGET_A_STEP): Delete.
(TARGET_SWITCHES): Delete -ma-step option.
* config/ia64/ia64.md (all FP patterns): Delete %B0.
(movqicc_astep, movqi_internal_astep, movhicc_astep,
movhi_internal_astep, movsicc_astep, movsi_internal_astep, movdi+1,
movdi_internal_astep, movsfcc_astep, movsf_internal_astep,
movdfcc_astep, movdf_internal_astep, movtfcc_astep,
movtf_internal_astep, cmovdi_internal_astep, cmovsi_internal_astep):
Delete.
(movqi_internal, movhi_internal, movsi_internal, movdi_internal,
movsf_internal, movdf_internal, movtf_internal, cmovdi_internal,
cmovsi_internal): Delete ! TARGET_A_STEP check.

From-SVN: r39075

gcc/ChangeLog
gcc/config/ia64/ia64.c
gcc/config/ia64/ia64.h
gcc/config/ia64/ia64.md

index 315a16ff65635f4ceb572768e839a42f25c69743..93b6c91dc38db7a9c57383a7265e019b95d91294 100644 (file)
@@ -1,3 +1,20 @@
+2001-01-16  Jim Wilson  <wilson@redhat.com>
+
+       * config/ia64/ia64.c (ia64_print_operand_address): Delete 'B' support.
+       (fixup_errata): Delete TARGET_A_STEP use.
+       * config/ia64/ia64.h (MASK_A_STEP, TARGET_A_STEP): Delete.
+       (TARGET_SWITCHES): Delete -ma-step option.
+       * config/ia64/ia64.md (all FP patterns): Delete %B0.
+       (movqicc_astep, movqi_internal_astep, movhicc_astep,
+       movhi_internal_astep, movsicc_astep, movsi_internal_astep, movdi+1,
+       movdi_internal_astep, movsfcc_astep, movsf_internal_astep,
+       movdfcc_astep, movdf_internal_astep, movtfcc_astep,
+       movtf_internal_astep, cmovdi_internal_astep, cmovsi_internal_astep):
+       Delete.
+       (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
+       movsf_internal, movdf_internal, movtf_internal, cmovdi_internal,
+       cmovsi_internal): Delete ! TARGET_A_STEP check.
+       
 2001-01-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
 
        * gcc.texi (Bug Lists): Do not mention newsgroups nor the
index 54888699b69f3c25e836fa87e5872f3000d53909..ca1bc41f01fd299b3bf3318673b29b48e204af10 100644 (file)
@@ -3133,7 +3133,6 @@ ia64_print_operand_address (stream, address)
 }
 
 /* Print an operand to a assembler instruction.
-   B    Work arounds for hardware bugs.
    C   Swap and print a comparison operator.
    D   Print an FP comparison operator.
    E    Print 32 - constant, for SImode shifts as extract.
@@ -3167,11 +3166,6 @@ ia64_print_operand (file, x, code)
       /* Handled below.  */
       break;
 
-    case 'B':
-      if (TARGET_A_STEP)
-       fputs (" ;; nop 0 ;; nop 0 ;;", file);
-      return;
-
     case 'C':
       {
        enum rtx_code c = swap_condition (GET_CODE (x));
@@ -4684,7 +4678,7 @@ fixup_errata ()
          group_idx = (group_idx + 1) % 3;
          memset (last_group + group_idx, 0, sizeof last_group[group_idx]);
        }
-      if ((TARGET_B_STEP || TARGET_A_STEP) && INSN_P (insn))
+      if (TARGET_B_STEP && INSN_P (insn))
        errata_emit_nops (insn);
     }
 }
index d959c70cda30d81474d7dddb7e17ae4b3c7c36e4..fabdd4f070ca9f32f09a32d3b94e89c1d4c933c7 100644 (file)
@@ -53,7 +53,7 @@ extern int target_flags;
 
 #define MASK_VOL_ASM_STOP 0x00000010   /* Emit stop bits for vol ext asm.  */
 
-#define MASK_A_STEP    0x00000020      /* Emit code for Itanium A step.  */
+/* 0x00000020 is available.  */
 
 #define MASK_B_STEP    0x00000040      /* Emit code for Itanium B step.  */
 
@@ -81,8 +81,6 @@ extern int target_flags;
 
 #define TARGET_VOL_ASM_STOP    (target_flags & MASK_VOL_ASM_STOP)
 
-#define TARGET_A_STEP          (target_flags & MASK_A_STEP)
-
 #define TARGET_B_STEP          (target_flags & MASK_B_STEP)
 
 #define TARGET_REG_NAMES       (target_flags & MASK_REG_NAMES)
@@ -126,8 +124,6 @@ extern int target_flags;
       N_("Emit stop bits before and after volatile extended asms") },  \
   { "no-volatile-asm-stop", -MASK_VOL_ASM_STOP,                                \
       N_("Don't emit stop bits before and after volatile extended asms") }, \
-  { "a-step",          MASK_A_STEP,                                    \
-      N_("Emit code for Itanium (TM) processor A step")},              \
   { "b-step",          MASK_B_STEP,                                    \
       N_("Emit code for Itanium (TM) processor B step")},              \
   { "register-names",  MASK_REG_NAMES,                                 \
index fab94903ca840cea578fb05628238f9d7bf3cb33..dddfd4b931ce369b22c8f835ccb56a0965e87734 100644 (file)
     operands[1] = force_reg (QImode, operands[1]);
 }")
 
-;; Errata 72 implies that we cannot use predicated loads and stores
-;; on affected systems.  Reuse TARGET_A_STEP for convenience.
-
-;; ??? It would be convenient at this point if the cond_exec pattern
-;; expander understood non-constant conditions on attributes.  Failing
-;; that we have to replicate patterns.
-
-(define_insn "*movqicc_astep"
-  [(cond_exec
-     (match_operator 2 "predicate_operator"
-       [(match_operand:BI 3 "register_operand" "c,c,c,c,c")
-        (const_int 0)])
-     (set (match_operand:QI 0 "register_operand"  "=r,r, r,*f,*f")
-         (match_operand:QI 1 "nonmemory_operand" "rO,J,*f,rO,*f")))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "@
-   (%J2) mov %0 = %r1
-   (%J2) addl %0 = %1, r0
-   (%J2) getf.sig %0 = %1
-   (%J2) setf.sig %0 = %r1
-   (%J2) mov %0 = %1"
-  [(set_attr "itanium_class" "ialu,ialu,frfr,tofr,fmisc")
-   (set_attr "predicable" "no")])
-
-(define_insn "*movqi_internal_astep"
-  [(set (match_operand:QI 0 "destination_operand" "=r,r,r, m, r,*f,*f")
-       (match_operand:QI 1 "move_operand"        "rO,J,m,rO,*f,rO,*f"))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "@
-   mov %0 = %r1
-   addl %0 = %1, r0
-   ld1%O1 %0 = %1%P1
-   st1%Q0 %0 = %r1%P0
-   getf.sig %0 = %1
-   setf.sig %0 = %r1
-   mov %0 = %1"
-  [(set_attr "itanium_class" "ialu,ialu,ld,st,frfr,tofr,fmisc")
-   (set_attr "predicable" "no")])
-
 (define_insn "*movqi_internal"
   [(set (match_operand:QI 0 "destination_operand" "=r,r,r, m, r,*f,*f")
        (match_operand:QI 1 "move_operand"        "rO,J,m,rO,*f,rO,*f"))]
-  "! TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
+  "ia64_move_ok (operands[0], operands[1])"
   "@
    mov %0 = %r1
    addl %0 = %1, r0
     operands[1] = force_reg (HImode, operands[1]);
 }")
 
-;; Errata 72 workaround.
-(define_insn "*movhicc_astep"
-  [(cond_exec
-     (match_operator 2 "predicate_operator"
-       [(match_operand:BI 3 "register_operand" "c,c,c,c,c")
-        (const_int 0)])
-     (set (match_operand:HI 0 "register_operand"  "=r,r, r,*f,*f")
-         (match_operand:HI 1 "nonmemory_operand" "rO,J,*f,rO,*f")))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "@
-   (%J2) mov %0 = %r1
-   (%J2) addl %0 = %1, r0
-   (%J2) getf.sig %0 = %1
-   (%J2) setf.sig %0 = %r1
-   (%J2) mov %0 = %1"
-  [(set_attr "itanium_class" "ialu,ialu,frfr,tofr,fmisc")
-   (set_attr "predicable" "no")])
-
-(define_insn "*movhi_internal_astep"
-  [(set (match_operand:HI 0 "destination_operand" "=r,r,r, m, r,*f,*f")
-       (match_operand:HI 1 "move_operand"        "rO,J,m,rO,*f,rO,*f"))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "@
-   mov %0 = %r1
-   addl %0 = %1, r0
-   ld2%O1 %0 = %1%P1
-   st2%Q0 %0 = %r1%P0
-   getf.sig %0 = %1
-   setf.sig %0 = %r1
-   mov %0 = %1"
-  [(set_attr "itanium_class" "ialu,ialu,ld,st,frfr,tofr,fmisc")
-   (set_attr "predicable" "no")])
-
 (define_insn "*movhi_internal"
   [(set (match_operand:HI 0 "destination_operand" "=r,r,r, m, r,*f,*f")
        (match_operand:HI 1 "move_operand"        "rO,J,m,rO,*f,rO,*f"))]
-  "! TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
+  "ia64_move_ok (operands[0], operands[1])"
   "@
    mov %0 = %r1
    addl %0 = %1, r0
     operands[1] = force_reg (SImode, operands[1]);
 }")
 
-;; Errata 72 workaround.
-(define_insn "*movsicc_astep"
-  [(cond_exec
-     (match_operator 2 "predicate_operator"
-       [(match_operand:BI 3 "register_operand" "c,c,c,c,c,c,c,c")
-        (const_int 0)])
-     (set (match_operand:SI 0 "register_operand"  "=r,r,r, r,*f,*f, r,*d")
-         (match_operand:SI 1 "nonmemory_operand" "rO,J,i,*f,rO,*f,*d,rK")))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "@
-   (%J2) mov %0 = %r1
-   (%J2) addl %0 = %1, r0
-   (%J2) movl %0 = %1
-   (%J2) getf.sig %0 = %1
-   (%J2) setf.sig %0 = %r1
-   (%J2) mov %0 = %1
-   (%J2) mov %0 = %1
-   (%J2) mov %0 = %r1"
-;; frar_m, toar_m ??? why not frar_i and toar_i
-  [(set_attr "itanium_class" "ialu,ialu,long_i,frfr,tofr,fmisc,frar_m,toar_m")
-   (set_attr "predicable" "no")])
-
-(define_insn "*movsi_internal_astep"
-  [(set (match_operand:SI 0 "destination_operand" "=r,r,r,r, m, r,*f,*f, r,*d")
-       (match_operand:SI 1 "move_operand"        "rO,J,i,m,rO,*f,rO,*f,*d,rK"))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "@
-  mov %0 = %r1
-  addl %0 = %1, r0
-  movl %0 = %1
-  ld4%O1 %0 = %1%P1
-  st4%Q0 %0 = %r1%P0
-  getf.sig %0 = %1
-  setf.sig %0 = %r1
-  mov %0 = %1
-  mov %0 = %1
-  mov %0 = %r1"
-;; frar_m, toar_m ??? why not frar_i and toar_i
-  [(set_attr "itanium_class" "ialu,ialu,long_i,ld,st,frfr,tofr,fmisc,frar_m,toar_m")
-   (set_attr "predicable" "no")])
-
 (define_insn "*movsi_internal"
   [(set (match_operand:SI 0 "destination_operand" "=r,r,r,r, m, r,*f,*f, r,*d")
        (match_operand:SI 1 "move_operand"        "rO,J,i,m,rO,*f,rO,*f,*d,rK"))]
-  "! TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
+  "ia64_move_ok (operands[0], operands[1])"
   "@
   mov %0 = %r1
   addl %0 = %1, r0
     }
 }")
 
-;; Errata 72 workaround.
-(define_insn ""
-  [(cond_exec
-     (match_operator 2 "predicate_operator"
-       [(match_operand:BI 3 "register_operand" "c,c,c,c,c,c,c,c,c,c,c,c")
-        (const_int 0)])
-     (set (match_operand:DI 0 "register_operand"
-                             "=r,r,r, r,*f,*f, r,*b, r,*e, r,*d")
-         (match_operand:DI 1 "nonmemory_operand"
-                             "rO,J,i,*f,rO,*f,*b,rO,*e,rK,*d,rK")))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "*
-{
-  static const char * const alt[] = {
-    \"(%J2) mov %0 = %r1\",
-    \"(%J2) addl %0 = %1, r0\",
-    \"(%J2) movl %0 = %1\",
-    \"(%J2) getf.sig %0 = %1\",
-    \"(%J2) setf.sig %0 = %r1\",
-    \"(%J2) mov %0 = %1\",
-    \"(%J2) mov %0 = %1\",
-    \"(%J2) mov %0 = %r1\",
-    \"(%J2) mov %0 = %1\",
-    \"(%J2) mov %0 = %1\",
-    \"(%J2) mov %0 = %1\",
-    \"(%J2) mov %0 = %1\"
-  };
-
-  /* We use 'i' for alternative 2 despite possible PIC problems.
-
-     If we define LEGITIMATE_CONSTANT_P such that symbols are not
-     allowed, then the compiler dumps the data into constant memory
-     instead of letting us read the values from the GOT.  Similarly
-     if we use 'n' instead of 'i'.
-
-     Instead, we allow such insns through reload and then split them
-     afterward (even without optimization).  Therefore, we should
-     never get so far with a symbolic operand.  */
-
-  if (which_alternative == 2 && ! TARGET_NO_PIC
-      && symbolic_operand (operands[1], VOIDmode))
-    abort ();
-
-  return alt[which_alternative];
-}"
-  [(set_attr "itanium_class" "ialu,ialu,long_i,frfr,tofr,fmisc,frbr,tobr,frar_i,toar_i,frar_m,toar_m")
-   (set_attr "predicable" "no")])
-
 ;; This is used during early compilation to delay the decision on
 ;; how to refer to a variable as long as possible.  This is especially
 ;; important between initial rtl generation and optimization for
   [(const_int 0)]
   "ia64_expand_load_address (operands[0], operands[1], operands[2]); DONE;")
 
-(define_insn "*movdi_internal_astep"
-  [(set (match_operand:DI 0 "destination_operand"
-                   "=r,r,r,r, m, r,*f,*f,*f, Q, r,*b, r,*e, r,*d, r,*c")
-       (match_operand:DI 1 "move_operand"
-                   "rO,J,i,m,rO,*f,rO,*f, Q,*f,*b,rO,*e,rK,*d,rK,*c,rO"))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "*
-{
-  static const char * const alt[] = {
-    \"mov %0 = %r1\",
-    \"addl %0 = %1, r0\",
-    \"movl %0 = %1\",
-    \"ld8%O1 %0 = %1%P1\",
-    \"st8%Q0 %0 = %r1%P0\",
-    \"getf.sig %0 = %1\",
-    \"setf.sig %0 = %r1\",
-    \"mov %0 = %1\",
-    \"ldf8 %0 = %1%P1\",
-    \"stf8 %0 = %1%P0\",
-    \"mov %0 = %1\",
-    \"mov %0 = %r1\",
-    \"mov %0 = %1\",
-    \"mov %0 = %1\",
-    \"mov %0 = %1\",
-    \"mov %0 = %1\",
-    \"mov %0 = pr\",
-    \"mov pr = %1, -1\"
-  };
-
-  if (which_alternative == 2 && ! TARGET_NO_PIC
-      && symbolic_operand (operands[1], VOIDmode))
-    abort ();
-
-  return alt[which_alternative];
-}"
-  [(set_attr "itanium_class" "ialu,ialu,long_i,ld,st,frfr,tofr,fmisc,fld,stf,frbr,tobr,frar_i,toar_i,frar_m,toar_m,frpr,topr")
-   (set_attr "predicable" "no")])
-
 (define_insn "*movdi_internal"
   [(set (match_operand:DI 0 "destination_operand"
                    "=r,r,r,r, m, r,*f,*f,*f, Q, r,*b, r,*e, r,*d, r,*c")
        (match_operand:DI 1 "move_operand"
                    "rO,J,i,m,rO,*f,rO,*f, Q,*f,*b,rO,*e,rK,*d,rK,*c,rO"))]
-  "! TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
+  "ia64_move_ok (operands[0], operands[1])"
   "*
 {
   static const char * const alt[] = {
     operands[1] = force_reg (SFmode, operands[1]);
 }")
 
-;; Errata 72 workaround.
-(define_insn "*movsfcc_astep"
-  [(cond_exec
-     (match_operator 2 "predicate_operator"
-       [(match_operand:BI 3 "register_operand" "c,c,c,c")
-        (const_int 0)])
-     (set (match_operand:SF 0 "register_operand"  "=f,*r, f,*r")
-         (match_operand:SF 1 "nonmemory_operand" "fG,fG,*r,*r")))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "@
-  (%J2) mov %0 = %F1
-  (%J2) getf.s %0 = %F1
-  (%J2) setf.s %0 = %1
-  (%J2) mov %0 = %1"
-  [(set_attr "itanium_class" "fmisc,frfr,tofr,ialu")
-   (set_attr "predicable" "no")])
-
-(define_insn "*movsf_internal_astep"
-  [(set (match_operand:SF 0 "destination_operand" "=f,f, Q,*r, f,*r,*r, m")
-       (match_operand:SF 1 "general_operand"     "fG,Q,fG,fG,*r,*r, m,*r"))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "@
-  mov %0 = %F1
-  ldfs %0 = %1%P1
-  stfs %0 = %F1%P0
-  getf.s %0 = %F1
-  setf.s %0 = %1
-  mov %0 = %1
-  ld4%O1 %0 = %1%P1
-  st4%Q0 %0 = %1%P0"
-  [(set_attr "itanium_class" "fmisc,fld,stf,frfr,tofr,ialu,ld,st")
-   (set_attr "predicable" "no")])
-
 (define_insn "*movsf_internal"
   [(set (match_operand:SF 0 "destination_operand" "=f,f, Q,*r, f,*r,*r, m")
        (match_operand:SF 1 "general_operand"     "fG,Q,fG,fG,*r,*r, m,*r"))]
-  "! TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
+  "ia64_move_ok (operands[0], operands[1])"
   "@
   mov %0 = %F1
   ldfs %0 = %1%P1
     operands[1] = force_reg (DFmode, operands[1]);
 }")
 
-;; Errata 72 workaround.
-(define_insn "*movdfcc_astep"
-  [(cond_exec
-     (match_operator 2 "predicate_operator"
-       [(match_operand:BI 3 "register_operand" "c,c,c,c")
-        (const_int 0)])
-     (set (match_operand:DF 0 "register_operand"  "=f,*r, f,*r")
-         (match_operand:DF 1 "nonmemory_operand" "fG,fG,*r,*r")))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "@
-  (%J2) mov %0 = %F1
-  (%J2) getf.d %0 = %F1
-  (%J2) setf.d %0 = %1
-  (%J2) mov %0 = %1"
-  [(set_attr "itanium_class" "fmisc,frfr,tofr,ialu")
-   (set_attr "predicable" "no")])
-
-(define_insn "*movdf_internal_astep"
-  [(set (match_operand:DF 0 "destination_operand" "=f,f, Q,*r, f,*r,*r, m")
-       (match_operand:DF 1 "general_operand"     "fG,Q,fG,fG,*r,*r, m,*r"))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "@
-  mov %0 = %F1
-  ldfd %0 = %1%P1
-  stfd %0 = %F1%P0
-  getf.d %0 = %F1
-  setf.d %0 = %1
-  mov %0 = %1
-  ld8%O1 %0 = %1%P1
-  st8%Q0 %0 = %1%P0"
-  [(set_attr "itanium_class" "fmisc,fld,stf,frfr,tofr,ialu,ld,st")
-   (set_attr "predicable" "no")])
-
 (define_insn "*movdf_internal"
   [(set (match_operand:DF 0 "destination_operand" "=f,f, Q,*r, f,*r,*r, m")
        (match_operand:DF 1 "general_operand"     "fG,Q,fG,fG,*r,*r, m,*r"))]
-  "! TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
+  "ia64_move_ok (operands[0], operands[1])"
   "@
   mov %0 = %F1
   ldfd %0 = %1%P1
 
 ;; ??? There's no easy way to mind volatile acquire/release semantics.
 
-;; Errata 72 workaround.
-(define_insn "*movtfcc_astep"
-  [(cond_exec
-     (match_operator 2 "predicate_operator"
-       [(match_operand:BI 3 "register_operand" "c")
-        (const_int 0)])
-     (set (match_operand:TF 0 "register_operand"  "=f")
-         (match_operand:TF 1 "nonmemory_operand" "fG")))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "(%J2) mov %0 = %F1"
-  [(set_attr "itanium_class" "fmisc")
-   (set_attr "predicable" "no")])
-
-(define_insn "*movtf_internal_astep"
-  [(set (match_operand:TF 0 "destination_tfmode_operand" "=f,f, m")
-       (match_operand:TF 1 "general_tfmode_operand"     "fG,m,fG"))]
-  "TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
-  "@
-  mov %0 = %F1
-  ldfe %0 = %1%P1
-  stfe %0 = %F1%P0"
-  [(set_attr "itanium_class" "fmisc,fld,stf")
-   (set_attr "predicable" "no")])
-
 (define_insn "*movtf_internal"
   [(set (match_operand:TF 0 "destination_tfmode_operand" "=f,f, m")
        (match_operand:TF 1 "general_tfmode_operand"     "fG,m,fG"))]
-  "! TARGET_A_STEP && ia64_move_ok (operands[0], operands[1])"
+  "ia64_move_ok (operands[0], operands[1])"
   "@
   mov %0 = %F1
   ldfe %0 = %1%P1
   ""
   "@
    sxt4 %0 = %1
-   fsxt.r %0 = %1, %1%B0"
+   fsxt.r %0 = %1, %1"
   [(set_attr "itanium_class" "xtd,fmisc")])
 
 ;; Unsigned conversions from a smaller integer to a larger integer
   "@
    zxt4 %0 = %1
    ld4%O1 %0 = %1%P1
-   fmix.r %0 = f0, %1%B0"
+   fmix.r %0 = f0, %1"
   [(set_attr "itanium_class" "xtd,ld,fmisc")])
 
 ;; Convert between floating point types of different sizes.
   [(set (match_operand:SF 0 "fr_register_operand" "=f")
        (float_truncate:SF (match_operand:DF 1 "fr_register_operand" "f")))]
   ""
-  "fnorm.s %0 = %1%B0"
+  "fnorm.s %0 = %1"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "trunctfsf2"
   [(set (match_operand:SF 0 "fr_register_operand" "=f")
        (float_truncate:SF (match_operand:TF 1 "fr_register_operand" "f")))]
   ""
-  "fnorm.s %0 = %1%B0"
+  "fnorm.s %0 = %1"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "trunctfdf2"
   [(set (match_operand:DF 0 "fr_register_operand" "=f")
        (float_truncate:DF (match_operand:TF 1 "fr_register_operand" "f")))]
   ""
-  "fnorm.d %0 = %1%B0"
+  "fnorm.d %0 = %1"
   [(set_attr "itanium_class" "fmac")])
 
 ;; Convert between signed integer types and floating point.
   [(set (match_operand:DI 0 "fr_register_operand" "=f")
        (fix:DI (match_operand:SF 1 "fr_register_operand" "f")))]
   ""
-  "fcvt.fx.trunc %0 = %1%B0"
+  "fcvt.fx.trunc %0 = %1"
   [(set_attr "itanium_class" "fcvtfx")])
 
 (define_insn "fix_truncdfdi2"
   [(set (match_operand:DI 0 "fr_register_operand" "=f")
        (fix:DI (match_operand:DF 1 "fr_register_operand" "f")))]
   ""
-  "fcvt.fx.trunc %0 = %1%B0"
+  "fcvt.fx.trunc %0 = %1"
   [(set_attr "itanium_class" "fcvtfx")])
 
 (define_insn "fix_trunctfdi2"
   [(set (match_operand:DI 0 "fr_register_operand" "=f")
        (fix:DI (match_operand:TF 1 "fr_register_operand" "f")))]
   ""
-  "fcvt.fx.trunc %0 = %1%B0"
+  "fcvt.fx.trunc %0 = %1"
   [(set_attr "itanium_class" "fcvtfx")])
 
 (define_insn "fix_trunctfdi2_alts"
        (fix:DI (match_operand:TF 1 "fr_register_operand" "f")))
    (use (match_operand:SI 2 "const_int_operand" ""))]
   ""
-  "fcvt.fx.trunc.s%2 %0 = %1%B0"
+  "fcvt.fx.trunc.s%2 %0 = %1"
   [(set_attr "itanium_class" "fcvtfx")])
 
 ;; Convert between unsigned integer types and floating point.
   [(set (match_operand:SF 0 "fr_register_operand" "=f")
        (unsigned_float:SF (match_operand:DI 1 "fr_register_operand" "f")))]
   ""
-  "fcvt.xuf.s %0 = %1%B0"
+  "fcvt.xuf.s %0 = %1"
   [(set_attr "itanium_class" "fcvtfx")])
 
 (define_insn "floatunsdidf2"
   [(set (match_operand:DF 0 "fr_register_operand" "=f")
        (unsigned_float:DF (match_operand:DI 1 "fr_register_operand" "f")))]
   ""
-  "fcvt.xuf.d %0 = %1%B0"
+  "fcvt.xuf.d %0 = %1"
   [(set_attr "itanium_class" "fcvtfx")])
 
 (define_insn "floatunsditf2"
   [(set (match_operand:TF 0 "fr_register_operand" "=f")
        (unsigned_float:TF (match_operand:DI 1 "fr_register_operand" "f")))]
   ""
-  "fcvt.xuf %0 = %1%B0"
+  "fcvt.xuf %0 = %1"
   [(set_attr "itanium_class" "fcvtfx")])
 
 (define_insn "fixuns_truncsfdi2"
   [(set (match_operand:DI 0 "fr_register_operand" "=f")
        (unsigned_fix:DI (match_operand:SF 1 "fr_register_operand" "f")))]
   ""
-  "fcvt.fxu.trunc %0 = %1%B0"
+  "fcvt.fxu.trunc %0 = %1"
   [(set_attr "itanium_class" "fcvtfx")])
 
 (define_insn "fixuns_truncdfdi2"
   [(set (match_operand:DI 0 "fr_register_operand" "=f")
        (unsigned_fix:DI (match_operand:DF 1 "fr_register_operand" "f")))]
   ""
-  "fcvt.fxu.trunc %0 = %1%B0"
+  "fcvt.fxu.trunc %0 = %1"
   [(set_attr "itanium_class" "fcvtfx")])
 
 (define_insn "fixuns_trunctfdi2"
   [(set (match_operand:DI 0 "fr_register_operand" "=f")
        (unsigned_fix:DI (match_operand:TF 1 "fr_register_operand" "f")))]
   ""
-  "fcvt.fxu.trunc %0 = %1%B0"
+  "fcvt.fxu.trunc %0 = %1"
   [(set_attr "itanium_class" "fcvtfx")])
 
 (define_insn "fixuns_trunctfdi2_alts"
        (unsigned_fix:DI (match_operand:TF 1 "fr_register_operand" "f")))
    (use (match_operand:SI 2 "const_int_operand" ""))]
   ""
-  "fcvt.fxu.trunc.s%2 %0 = %1%B0"
+  "fcvt.fxu.trunc.s%2 %0 = %1"
   [(set_attr "itanium_class" "fcvtfx")])
 \f
 ;; ::::::::::::::::::::
        (mult:SI (match_operand:SI 1 "grfr_register_operand" "f")
                 (match_operand:SI 2 "grfr_register_operand" "f")))]
   ""
-  "xmpy.l %0 = %1, %2%B0"
+  "xmpy.l %0 = %1, %2"
   [(set_attr "itanium_class" "xmpy")])
 
 (define_insn "maddsi4"
                          (match_operand:SI 2 "grfr_register_operand" "f"))
                 (match_operand:SI 3 "grfr_register_operand" "f")))]
   ""
-  "xma.l %0 = %1, %2, %3%B0"
+  "xma.l %0 = %1, %2, %3"
   [(set_attr "itanium_class" "xmpy")])
 
 (define_insn "negsi2"
        (mult:DI (match_operand:DI 1 "grfr_register_operand" "f")
                 (match_operand:DI 2 "grfr_register_operand" "f")))]
   ""
-  "xmpy.l %0 = %1, %2%B0"
+  "xmpy.l %0 = %1, %2"
   [(set_attr "itanium_class" "xmpy")])
 
 ;; ??? If operand 3 is an eliminable reg, then register elimination causes the
                 (match_operand:DI 3 "grfr_register_operand" "f")))
    (clobber (match_scratch:DI 4 "=X"))]
   ""
-  "xma.l %0 = %1, %2, %3%B0"
+  "xma.l %0 = %1, %2, %3"
   [(set_attr "itanium_class" "xmpy")])
 
 ;; This can be created by register elimination if operand3 of shladd is an
                     (match_operand:DI 2 "fr_register_operand" "f")))
          (const_int 64))))]
   ""
-  "xmpy.h %0 = %1, %2%B0"
+  "xmpy.h %0 = %1, %2"
   [(set_attr "itanium_class" "xmpy")])
 
 (define_insn "umuldi3_highpart"
                     (match_operand:DI 2 "fr_register_operand" "f")))
          (const_int 64))))]
   ""
-  "xmpy.hu %0 = %1, %2%B0"
+  "xmpy.hu %0 = %1, %2"
   [(set_attr "itanium_class" "xmpy")])
 
 (define_insn "negdi2"
        (plus:SF (match_operand:SF 1 "fr_register_operand" "%f")
                 (match_operand:SF 2 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fadd.s %0 = %1, %F2%B0"
+  "fadd.s %0 = %1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "subsf3"
        (minus:SF (match_operand:SF 1 "fr_reg_or_fp01_operand" "fG")
                  (match_operand:SF 2 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fsub.s %0 = %F1, %F2%B0"
+  "fsub.s %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "mulsf3"
        (mult:SF (match_operand:SF 1 "fr_register_operand" "%f")
                 (match_operand:SF 2 "fr_register_operand" "f")))]
   ""
-  "fmpy.s %0 = %1, %2%B0"
+  "fmpy.s %0 = %1, %2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "abssf2"
   [(set (match_operand:SF 0 "fr_register_operand" "=f")
        (abs:SF (match_operand:SF 1 "fr_register_operand" "f")))]
   ""
-  "fabs %0 = %1%B0"
+  "fabs %0 = %1"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "negsf2"
   [(set (match_operand:SF 0 "fr_register_operand" "=f")
        (neg:SF (match_operand:SF 1 "fr_register_operand" "f")))]
   ""
-  "fneg %0 = %1%B0"
+  "fneg %0 = %1"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "*nabssf2"
   [(set (match_operand:SF 0 "fr_register_operand" "=f")
        (neg:SF (abs:SF (match_operand:SF 1 "fr_register_operand" "f"))))]
   ""
-  "fnegabs %0 = %1%B0"
+  "fnegabs %0 = %1"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "minsf3"
        (smin:SF (match_operand:SF 1 "fr_register_operand" "f")
                 (match_operand:SF 2 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fmin %0 = %1, %F2%B0"
+  "fmin %0 = %1, %F2"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "maxsf3"
        (smax:SF (match_operand:SF 1 "fr_register_operand" "f")
                 (match_operand:SF 2 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fmax %0 = %1, %F2%B0"
+  "fmax %0 = %1, %F2"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "*maddsf4"
                          (match_operand:SF 2 "fr_register_operand" "f"))
                 (match_operand:SF 3 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fma.s %0 = %1, %2, %F3%B0"
+  "fma.s %0 = %1, %2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*msubsf4"
                           (match_operand:SF 2 "fr_register_operand" "f"))
                  (match_operand:SF 3 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fms.s %0 = %1, %2, %F3%B0"
+  "fms.s %0 = %1, %2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*nmulsf3"
        (neg:SF (mult:SF (match_operand:SF 1 "fr_register_operand" "f")
                         (match_operand:SF 2 "fr_register_operand" "f"))))]
   ""
-  "fnmpy.s %0 = %1, %2%B0"
+  "fnmpy.s %0 = %1, %2"
   [(set_attr "itanium_class" "fmac")])
 
 ;; ??? Is it possible to canonicalize this as (minus (reg) (mult))?
                           (match_operand:SF 2 "fr_register_operand" "f")))
                 (match_operand:SF 3 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fnma.s %0 = %1, %2, %F3%B0"
+  "fnma.s %0 = %1, %2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_expand "divsf3"
        (plus:DF (match_operand:DF 1 "fr_register_operand" "%f")
                 (match_operand:DF 2 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fadd.d %0 = %1, %F2%B0"
+  "fadd.d %0 = %1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*adddf3_trunc"
          (plus:DF (match_operand:DF 1 "fr_register_operand" "%f")
                   (match_operand:DF 2 "fr_reg_or_fp01_operand" "fG"))))]
   ""
-  "fadd.s %0 = %1, %F2%B0"
+  "fadd.s %0 = %1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "subdf3"
        (minus:DF (match_operand:DF 1 "fr_reg_or_fp01_operand" "fG")
                  (match_operand:DF 2 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fsub.d %0 = %F1, %F2%B0"
+  "fsub.d %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*subdf3_trunc"
          (minus:DF (match_operand:DF 1 "fr_reg_or_fp01_operand" "fG")
                    (match_operand:DF 2 "fr_reg_or_fp01_operand" "fG"))))]
   ""
-  "fsub.s %0 = %F1, %F2%B0"
+  "fsub.s %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "muldf3"
        (mult:DF (match_operand:DF 1 "fr_register_operand" "f")
                 (match_operand:DF 2 "fr_register_operand" "f")))]
   ""
-  "fmpy.d %0 = %1, %2%B0"
+  "fmpy.d %0 = %1, %2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*muldf3_trunc"
          (mult:DF (match_operand:DF 1 "fr_register_operand" "f")
                   (match_operand:DF 2 "fr_register_operand" "f"))))]
   ""
-  "fmpy.s %0 = %1, %2%B0"
+  "fmpy.s %0 = %1, %2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "absdf2"
   [(set (match_operand:DF 0 "fr_register_operand" "=f")
        (abs:DF (match_operand:DF 1 "fr_register_operand" "f")))]
   ""
-  "fabs %0 = %1%B0"
+  "fabs %0 = %1"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "negdf2"
   [(set (match_operand:DF 0 "fr_register_operand" "=f")
        (neg:DF (match_operand:DF 1 "fr_register_operand" "f")))]
   ""
-  "fneg %0 = %1%B0"
+  "fneg %0 = %1"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "*nabsdf2"
   [(set (match_operand:DF 0 "fr_register_operand" "=f")
        (neg:DF (abs:DF (match_operand:DF 1 "fr_register_operand" "f"))))]
   ""
-  "fnegabs %0 = %1%B0"
+  "fnegabs %0 = %1"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "mindf3"
        (smin:DF (match_operand:DF 1 "fr_register_operand" "f")
                 (match_operand:DF 2 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fmin %0 = %1, %F2%B0"
+  "fmin %0 = %1, %F2"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "maxdf3"
        (smax:DF (match_operand:DF 1 "fr_register_operand" "f")
                 (match_operand:DF 2 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fmax %0 = %1, %F2%B0"
+  "fmax %0 = %1, %F2"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "*madddf4"
                          (match_operand:DF 2 "fr_register_operand" "f"))
                 (match_operand:DF 3 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fma.d %0 = %1, %2, %F3%B0"
+  "fma.d %0 = %1, %2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*madddf4_trunc"
                            (match_operand:DF 2 "fr_register_operand" "f"))
                   (match_operand:DF 3 "fr_reg_or_fp01_operand" "fG"))))]
   ""
-  "fma.s %0 = %1, %2, %F3%B0"
+  "fma.s %0 = %1, %2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*msubdf4"
                           (match_operand:DF 2 "fr_register_operand" "f"))
                  (match_operand:DF 3 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fms.d %0 = %1, %2, %F3%B0"
+  "fms.d %0 = %1, %2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*msubdf4_trunc"
                             (match_operand:DF 2 "fr_register_operand" "f"))
                    (match_operand:DF 3 "fr_reg_or_fp01_operand" "fG"))))]
   ""
-  "fms.s %0 = %1, %2, %F3%B0"
+  "fms.s %0 = %1, %2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*nmuldf3"
        (neg:DF (mult:DF (match_operand:DF 1 "fr_register_operand" "f")
                         (match_operand:DF 2 "fr_register_operand" "f"))))]
   ""
-  "fnmpy.d %0 = %1, %2%B0"
+  "fnmpy.d %0 = %1, %2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*nmuldf3_trunc"
          (neg:DF (mult:DF (match_operand:DF 1 "fr_register_operand" "f")
                           (match_operand:DF 2 "fr_register_operand" "f")))))]
   ""
-  "fnmpy.s %0 = %1, %2%B0"
+  "fnmpy.s %0 = %1, %2"
   [(set_attr "itanium_class" "fmac")])
 
 ;; ??? Is it possible to canonicalize this as (minus (reg) (mult))?
                           (match_operand:DF 2 "fr_register_operand" "f")))
                 (match_operand:DF 3 "fr_reg_or_fp01_operand" "fG")))]
   ""
-  "fnma.d %0 = %1, %2, %F3%B0"
+  "fnma.d %0 = %1, %2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*nmadddf4_alts"
                 (match_operand:DF 3 "fr_reg_or_fp01_operand" "fG")))
    (use (match_operand:SI 4 "const_int_operand" ""))]
   ""
-  "fnma.d.s%4 %0 = %1, %2, %F3%B0"
+  "fnma.d.s%4 %0 = %1, %2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*nmadddf4_trunc"
                             (match_operand:DF 2 "fr_register_operand" "f")))
                   (match_operand:DF 3 "fr_reg_or_fp01_operand" "fG"))))]
   ""
-  "fnma.s %0 = %1, %2, %F3%B0"
+  "fnma.s %0 = %1, %2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_expand "divdf3"
        (plus:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                 (match_operand:TF 2 "tfreg_or_fp01_operand" "fG")))]
   ""
-  "fadd %0 = %F1, %F2%B0"
+  "fadd %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*addtf3_truncsf"
          (plus:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                   (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fadd.s %0 = %F1, %F2%B0"
+  "fadd.s %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*addtf3_truncdf"
          (plus:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                   (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fadd.d %0 = %F1, %F2%B0"
+  "fadd.d %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "subtf3"
        (minus:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                  (match_operand:TF 2 "tfreg_or_fp01_operand" "fG")))]
   ""
-  "fsub %0 = %F1, %F2%B0"
+  "fsub %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*subtf3_truncsf"
          (minus:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                    (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fsub.s %0 = %F1, %F2%B0"
+  "fsub.s %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*subtf3_truncdf"
          (minus:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                    (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fsub.d %0 = %F1, %F2%B0"
+  "fsub.d %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "multf3"
        (mult:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                 (match_operand:TF 2 "tfreg_or_fp01_operand" "fG")))]
   ""
-  "fmpy %0 = %F1, %F2%B0"
+  "fmpy %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*multf3_truncsf"
          (mult:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                   (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fmpy.s %0 = %F1, %F2%B0"
+  "fmpy.s %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*multf3_truncdf"
          (mult:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                   (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fmpy.d %0 = %F1, %F2%B0"
+  "fmpy.d %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*multf3_alts"
                 (match_operand:TF 2 "tfreg_or_fp01_operand" "fG")))
    (use (match_operand:SI 3 "const_int_operand" ""))]
   ""
-  "fmpy.s%3 %0 = %F1, %F2%B0"
+  "fmpy.s%3 %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*multf3_truncsf_alts"
                   (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))))
    (use (match_operand:SI 3 "const_int_operand" ""))]
   ""
-  "fmpy.s.s%3 %0 = %F1, %F2%B0"
+  "fmpy.s.s%3 %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*multf3_truncdf_alts"
                   (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))))
    (use (match_operand:SI 3 "const_int_operand" ""))]
   ""
-  "fmpy.d.s%3 %0 = %F1, %F2%B0"
+  "fmpy.d.s%3 %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "abstf2"
   [(set (match_operand:TF 0 "fr_register_operand" "=f")
        (abs:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")))]
   ""
-  "fabs %0 = %F1%B0"
+  "fabs %0 = %F1"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "negtf2"
   [(set (match_operand:TF 0 "fr_register_operand" "=f")
        (neg:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")))]
   ""
-  "fneg %0 = %F1%B0"
+  "fneg %0 = %F1"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "*nabstf2"
   [(set (match_operand:TF 0 "fr_register_operand" "=f")
        (neg:TF (abs:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fnegabs %0 = %F1%B0"
+  "fnegabs %0 = %F1"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "mintf3"
        (smin:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                 (match_operand:TF 2 "tfreg_or_fp01_operand" "fG")))]
   ""
-  "fmin %0 = %F1, %F2%B0"
+  "fmin %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "maxtf3"
        (smax:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                 (match_operand:TF 2 "tfreg_or_fp01_operand" "fG")))]
   ""
-  "fmax %0 = %F1, %F2%B0"
+  "fmax %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmisc")])
 
 (define_insn "*maddtf4"
                          (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))
                 (match_operand:TF 3 "tfreg_or_fp01_operand" "fG")))]
   ""
-  "fma %0 = %F1, %F2, %F3%B0"
+  "fma %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*maddtf4_truncsf"
                            (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))
                   (match_operand:TF 3 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fma.s %0 = %F1, %F2, %F3%B0"
+  "fma.s %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*maddtf4_truncdf"
                            (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))
                   (match_operand:TF 3 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fma.d %0 = %F1, %F2, %F3%B0"
+  "fma.d %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*maddtf4_alts"
                 (match_operand:TF 3 "tfreg_or_fp01_operand" "fG")))
    (use (match_operand:SI 4 "const_int_operand" ""))]
   ""
-  "fma.s%4 %0 = %F1, %F2, %F3%B0"
+  "fma.s%4 %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*maddtf4_alts_truncdf"
                   (match_operand:TF 3 "tfreg_or_fp01_operand" "fG"))))
    (use (match_operand:SI 4 "const_int_operand" ""))]
   ""
-  "fma.d.s%4 %0 = %F1, %F2, %F3%B0"
+  "fma.d.s%4 %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*msubtf4"
                           (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))
                  (match_operand:TF 3 "tfreg_or_fp01_operand" "fG")))]
   ""
-  "fms %0 = %F1, %F2, %F3%B0"
+  "fms %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*msubtf4_truncsf"
                             (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))
                    (match_operand:TF 3 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fms.s %0 = %F1, %F2, %F3%B0"
+  "fms.s %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*msubtf4_truncdf"
                             (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))
                    (match_operand:TF 3 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fms.d %0 = %F1, %F2, %F3%B0"
+  "fms.d %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*nmultf3"
        (neg:TF (mult:TF (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                         (match_operand:TF 2 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fnmpy %0 = %F1, %F2%B0"
+  "fnmpy %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*nmultf3_truncsf"
                    (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                    (match_operand:TF 2 "tfreg_or_fp01_operand" "fG")))))]
   ""
-  "fnmpy.s %0 = %F1, %F2%B0"
+  "fnmpy.s %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*nmultf3_truncdf"
                    (match_operand:TF 1 "tfreg_or_fp01_operand" "fG")
                    (match_operand:TF 2 "tfreg_or_fp01_operand" "fG")))))]
   ""
-  "fnmpy.d %0 = %F1, %F2%B0"
+  "fnmpy.d %0 = %F1, %F2"
   [(set_attr "itanium_class" "fmac")])
 
 ;; ??? Is it possible to canonicalize this as (minus (reg) (mult))?
                          (match_operand:TF 2 "tfreg_or_fp01_operand" "fG")))
                 (match_operand:TF 3 "tfreg_or_fp01_operand" "fG")))]
   ""
-  "fnma %0 = %F1, %F2, %F3%B0"
+  "fnma %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*nmaddtf4_truncsf"
                            (match_operand:TF 2 "tfreg_or_fp01_operand" "fG")))
                   (match_operand:TF 3 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fnma.s %0 = %F1, %F2, %F3%B0"
+  "fnma.s %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*nmaddtf4_truncdf"
                            (match_operand:TF 2 "tfreg_or_fp01_operand" "fG")))
                   (match_operand:TF 3 "tfreg_or_fp01_operand" "fG"))))]
   ""
-  "fnma.d %0 = %F1, %F2, %F3%B0"
+  "fnma.d %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*nmaddtf4_alts"
                 (match_operand:TF 3 "tfreg_or_fp01_operand" "fG")))
    (use (match_operand:SI 4 "const_int_operand" ""))]
   ""
-  "fnma.s%4 %0 = %F1, %F2, %F3%B0"
+  "fnma.s%4 %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_insn "*nmaddtf4_truncdf_alts"
                 (match_operand:TF 3 "tfreg_or_fp01_operand" "fG"))))
    (use (match_operand:SI 4 "const_int_operand" ""))]
   ""
-  "fnma.d.s%4 %0 = %F1, %F2, %F3%B0"
+  "fnma.d.s%4 %0 = %F1, %F2, %F3"
   [(set_attr "itanium_class" "fmac")])
 
 (define_expand "divtf3"
   ""
   "@
    and %0 = %2, %1
-   fand %0 = %2, %1%B0"
+   fand %0 = %2, %1"
   [(set_attr "itanium_class" "ilog,fmisc")])
 
 (define_insn "*andnot"
   ""
   "@
    andcm %0 = %2, %1
-   fandcm %0 = %2, %1%B0"
+   fandcm %0 = %2, %1"
   [(set_attr "itanium_class" "ilog,fmisc")])
 
 (define_insn "iordi3"
   ""
   "@
    or %0 = %2, %1
-   for %0 = %2, %1%B0"
+   for %0 = %2, %1"
   [(set_attr "itanium_class" "ilog,fmisc")])
 
 (define_insn "xordi3"
   ""
   "@
    xor %0 = %2, %1
-   fxor %0 = %2, %1%B0"
+   fxor %0 = %2, %1"
   [(set_attr "itanium_class" "ilog,fmisc")])
 
 (define_insn "one_cmpldi2"
 ;; DImode if_then_else patterns.
 ;;
 
-;; Errata 72 workaround.
-(define_insn "*cmovdi_internal_astep"
-  [(set (match_operand:DI 0 "register_operand"
-               "=r, r, r,   r, r, r,   r, r, r,   r,*f,*b,*d*e")
-       (if_then_else:DI
-         (match_operator 4 "predicate_operator"
-           [(match_operand:BI 1 "register_operand"
-               " c, c, c,   c, c, c,   c, c, c,   c, c, c,   c")
-            (const_int 0)])
-         (match_operand:DI 2 "move_operand"
-               "ri,*f,*b,*d*e,ri,ri,  ri,*f,*b,*d*e,rO,rO,  rK")
-         (match_operand:DI 3 "move_operand"
-               "ri,ri,ri,  ri,*f,*b,*d*e,*f,*b,*d*e,rO,rO,  rK")))]
-  "TARGET_A_STEP
-   && ia64_move_ok (operands[0], operands[2])
-   && ia64_move_ok (operands[0], operands[3])"
-  "* abort ();"
-  [(set_attr "predicable" "no")])
-
 (define_insn "*cmovdi_internal"
   [(set (match_operand:DI 0 "destination_operand"
           "= r,  r,  r,   r,  r,  r,   r, r, r,   r, m, Q, *f,*b,*d*e")
           "rim, *f, *b,*d*e,rim,rim, rim,*f,*b,*d*e,rO,*f,rOQ,rO,  rK")
          (match_operand:DI 3 "move_operand"
           "rim,rim,rim, rim, *f, *b,*d*e,*f,*b,*d*e,rO,*f,rOQ,rO,  rK")))]
-  "! TARGET_A_STEP
-   && ia64_move_ok (operands[0], operands[2])
+  "ia64_move_ok (operands[0], operands[2])
    && ia64_move_ok (operands[0], operands[3])"
   "* abort ();"
   [(set_attr "predicable" "no")])
 ;; SImode if_then_else patterns.
 ;;
 
-(define_insn "*cmovsi_internal_astep"
-  [(set (match_operand:SI 0 "register_operand" "=r,*f,r,*f,r,*f")
-       (if_then_else:SI
-         (match_operator 4 "predicate_operator"
-           [(match_operand:BI 1 "register_operand" "c,c,c,c,c,c")
-            (const_int 0)])
-         (match_operand:SI 2 "move_operand" "0,0,ri*f,rO,ri*f,rO")
-         (match_operand:SI 3 "move_operand" "ri*f,rO,0,0,ri*f,rO")))]
-  "TARGET_A_STEP
-   && ia64_move_ok (operands[0], operands[2])
-   && ia64_move_ok (operands[0], operands[3])"
-  "* abort ();"
-  [(set_attr "predicable" "no")])
-
 (define_insn "*cmovsi_internal"
   [(set (match_operand:SI 0 "destination_operand" "=r,m,*f,r,m,*f,r,m,*f")
        (if_then_else:SI
                    "0,0,0,rim*f,rO,rO,rim*f,rO,rO")
          (match_operand:SI 3 "move_operand"
                    "rim*f,rO,rO,0,0,0,rim*f,rO,rO")))]
-  "! TARGET_A_STEP
-   && ia64_move_ok (operands[0], operands[2])
+  "ia64_move_ok (operands[0], operands[2])
    && ia64_move_ok (operands[0], operands[3])"
   "* abort ();"
   [(set_attr "predicable" "no")])