i386.md: Use SWI248x instead of X87MODEI...
authorUros Bizjak <uros@gcc.gnu.org>
Tue, 31 May 2011 17:43:04 +0000 (19:43 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 31 May 2011 17:43:04 +0000 (19:43 +0200)
* config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
of X87MODEI12 and SWI48x instead of SSEMODEI24.
(SWI248x): New mode iterator, rename from X87MODEI.
(X87MODEI): Remove mode iterator.
(X87MODEI12): Ditto.
(SSEMODEI24): Ditto.

From-SVN: r174498

gcc/ChangeLog
gcc/config/i386/i386.md

index e1e32af417c4be0317b4f911adbc0dd4184c3d2d..2ddaf65493f7e1d1f3f772b075f04d123cbd4ff4 100644 (file)
@@ -1,3 +1,12 @@
+2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
+       of X87MODEI12 and SWI48x instead of SSEMODEI24.
+       (SWI248x): New mode iterator, rename from X87MODEI.
+       (X87MODEI): Remove mode iterator.
+       (X87MODEI12): Ditto.
+       (SSEMODEI24): Ditto.
+
 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
 
        * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
@@ -16,8 +25,7 @@
 
 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
 
-       * gengtype-state.c (read_state_params_structs): Initialize
-       previous.
+       * gengtype-state.c (read_state_params_structs): Initialize previous.
 
 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
 
index 204a1e60fd6479d1c88db4920de5aba1af54d06b..056d3c9686a333a27081ac554b240e9491a29962 100644 (file)
 (define_code_attr sgnprefix [(sign_extend "i") (zero_extend "")
                             (div "i") (udiv "")])
 
-;; 64bit single word integer modes.
+;; All integer modes.
 (define_mode_iterator SWI1248x [QI HI SI DI])
 
-;; 64bit single word integer modes without QImode and HImode.
-(define_mode_iterator SWI48x [SI DI])
+;; All integer modes without QImode.
+(define_mode_iterator SWI248x [HI SI DI])
 
-;; Single word integer modes.
-(define_mode_iterator SWI [QI HI SI (DI "TARGET_64BIT")])
+;; All integer modes without QImode and HImode.
+(define_mode_iterator SWI48x [SI DI])
 
-;; Single word integer modes without SImode and DImode.
+;; All integer modes without SImode and DImode.
 (define_mode_iterator SWI12 [QI HI])
 
-;; Single word integer modes without DImode.
+;; All integer modes without DImode.
 (define_mode_iterator SWI124 [QI HI SI])
 
-;; Single word integer modes without QImode and DImode.
+;; All integer modes without QImode and DImode.
 (define_mode_iterator SWI24 [HI SI])
 
+;; Single word integer modes.
+(define_mode_iterator SWI [QI HI SI (DI "TARGET_64BIT")])
+
 ;; Single word integer modes without QImode.
 (define_mode_iterator SWI248 [HI SI (DI "TARGET_64BIT")])
 
                            (HI "TARGET_HIMODE_MATH")
                            SI (DI "TARGET_64BIT")])
 
-;; Math-dependant single word integer modes without DImode.
+;; Math-dependant integer modes without DImode.
 (define_mode_iterator SWIM124 [(QI "TARGET_QIMODE_MATH")
                               (HI "TARGET_HIMODE_MATH")
                               SI])
 ;; All x87 floating point modes
 (define_mode_iterator X87MODEF [SF DF XF])
 
-;; All integer modes handled by x87 fisttp operator.
-(define_mode_iterator X87MODEI [HI SI DI])
-
-;; All integer modes handled by integer x87 operators.
-(define_mode_iterator X87MODEI12 [HI SI])
-
-;; All integer modes handled by SSE cvtts?2si* operators.
-(define_mode_iterator SSEMODEI24 [SI DI])
-
 ;; SSE instruction suffix for various modes
 (define_mode_attr ssemodesuffix
   [(SF "ss") (DF "sd")
          [(compare:CCFP
             (match_operand 1 "register_operand" "f")
             (match_operator 3 "float_operator"
-              [(match_operand:X87MODEI12 2 "memory_operand" "m")]))]
+              [(match_operand:SWI24 2 "memory_operand" "m")]))]
          UNSPEC_FNSTSW))]
   "X87_FLOAT_MODE_P (GET_MODE (operands[1]))
    && (TARGET_USE_<MODE>MODE_FIOP || optimize_function_for_size_p (cfun))
        (compare:CCFP
          (match_operand 1 "register_operand" "f")
          (match_operator 3 "float_operator"
-           [(match_operand:X87MODEI12 2 "memory_operand" "m")])))
+           [(match_operand:SWI24 2 "memory_operand" "m")])))
    (clobber (match_operand:HI 0 "register_operand" "=a"))]
   "X87_FLOAT_MODE_P (GET_MODE (operands[1]))
    && TARGET_SAHF && !TARGET_CMOVE
 (define_peephole2
   [(set (match_operand:MODEF 0 "register_operand" "")
        (match_operand:MODEF 1 "memory_operand" ""))
-   (set (match_operand:SSEMODEI24 2 "register_operand" "")
-       (fix:SSEMODEI24 (match_dup 0)))]
+   (set (match_operand:SWI48x 2 "register_operand" "")
+       (fix:SWI48x (match_dup 0)))]
   "TARGET_SHORTEN_X87_SSE
    && !(TARGET_AVOID_VECTOR_DECODE && optimize_insn_for_speed_p ())
    && peep2_reg_dead_p (2, operands[0])"
-  [(set (match_dup 2) (fix:SSEMODEI24 (match_dup 1)))])
+  [(set (match_dup 2) (fix:SWI48x (match_dup 1)))])
 
 ;; Avoid vector decoded forms of the instruction.
 (define_peephole2
   [(match_scratch:DF 2 "Y2")
-   (set (match_operand:SSEMODEI24 0 "register_operand" "")
-       (fix:SSEMODEI24 (match_operand:DF 1 "memory_operand" "")))]
+   (set (match_operand:SWI48x 0 "register_operand" "")
+       (fix:SWI48x (match_operand:DF 1 "memory_operand" "")))]
   "TARGET_AVOID_VECTOR_DECODE && optimize_insn_for_speed_p ()"
   [(set (match_dup 2) (match_dup 1))
-   (set (match_dup 0) (fix:SSEMODEI24 (match_dup 2)))])
+   (set (match_dup 0) (fix:SWI48x (match_dup 2)))])
 
 (define_peephole2
   [(match_scratch:SF 2 "x")
-   (set (match_operand:SSEMODEI24 0 "register_operand" "")
-       (fix:SSEMODEI24 (match_operand:SF 1 "memory_operand" "")))]
+   (set (match_operand:SWI48x 0 "register_operand" "")
+       (fix:SWI48x (match_operand:SF 1 "memory_operand" "")))]
   "TARGET_AVOID_VECTOR_DECODE && optimize_insn_for_speed_p ()"
   [(set (match_dup 2) (match_dup 1))
-   (set (match_dup 0) (fix:SSEMODEI24 (match_dup 2)))])
+   (set (match_dup 0) (fix:SWI48x (match_dup 2)))])
 
 (define_insn_and_split "fix_trunc<mode>_fisttp_i387_1"
-  [(set (match_operand:X87MODEI 0 "nonimmediate_operand" "")
-       (fix:X87MODEI (match_operand 1 "register_operand" "")))]
+  [(set (match_operand:SWI248x 0 "nonimmediate_operand" "")
+       (fix:SWI248x (match_operand 1 "register_operand" "")))]
   "X87_FLOAT_MODE_P (GET_MODE (operands[1]))
    && TARGET_FISTTP
    && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
    (set_attr "mode" "<MODE>")])
 
 (define_insn "fix_trunc<mode>_i387_fisttp"
-  [(set (match_operand:X87MODEI 0 "memory_operand" "=m")
-       (fix:X87MODEI (match_operand 1 "register_operand" "f")))
+  [(set (match_operand:SWI248x 0 "memory_operand" "=m")
+       (fix:SWI248x (match_operand 1 "register_operand" "f")))
    (clobber (match_scratch:XF 2 "=&1f"))]
   "X87_FLOAT_MODE_P (GET_MODE (operands[1]))
    && TARGET_FISTTP
    (set_attr "mode" "<MODE>")])
 
 (define_insn "fix_trunc<mode>_i387_fisttp_with_temp"
-  [(set (match_operand:X87MODEI 0 "nonimmediate_operand" "=m,?r")
-       (fix:X87MODEI (match_operand 1 "register_operand" "f,f")))
-   (clobber (match_operand:X87MODEI 2 "memory_operand" "=X,m"))
+  [(set (match_operand:SWI248x 0 "nonimmediate_operand" "=m,?r")
+       (fix:SWI248x (match_operand 1 "register_operand" "f,f")))
+   (clobber (match_operand:SWI248x 2 "memory_operand" "=X,m"))
    (clobber (match_scratch:XF 3 "=&1f,&1f"))]
   "X87_FLOAT_MODE_P (GET_MODE (operands[1]))
    && TARGET_FISTTP
    (set_attr "mode" "<MODE>")])
 
 (define_split
-  [(set (match_operand:X87MODEI 0 "register_operand" "")
-       (fix:X87MODEI (match_operand 1 "register_operand" "")))
-   (clobber (match_operand:X87MODEI 2 "memory_operand" ""))
+  [(set (match_operand:SWI248x 0 "register_operand" "")
+       (fix:SWI248x (match_operand 1 "register_operand" "")))
+   (clobber (match_operand:SWI248x 2 "memory_operand" ""))
    (clobber (match_scratch 3 ""))]
   "reload_completed"
-  [(parallel [(set (match_dup 2) (fix:X87MODEI (match_dup 1)))
+  [(parallel [(set (match_dup 2) (fix:SWI248x (match_dup 1)))
              (clobber (match_dup 3))])
    (set (match_dup 0) (match_dup 2))])
 
 (define_split
-  [(set (match_operand:X87MODEI 0 "memory_operand" "")
-       (fix:X87MODEI (match_operand 1 "register_operand" "")))
-   (clobber (match_operand:X87MODEI 2 "memory_operand" ""))
+  [(set (match_operand:SWI248x 0 "memory_operand" "")
+       (fix:SWI248x (match_operand 1 "register_operand" "")))
+   (clobber (match_operand:SWI248x 2 "memory_operand" ""))
    (clobber (match_scratch 3 ""))]
   "reload_completed"
-  [(parallel [(set (match_dup 0) (fix:X87MODEI (match_dup 1)))
+  [(parallel [(set (match_dup 0) (fix:SWI248x (match_dup 1)))
              (clobber (match_dup 3))])])
 
 ;; See the comments in i386.h near OPTIMIZE_MODE_SWITCHING for the description
 ;; clobbering insns can be used. Look at emit_i387_cw_initialization ()
 ;; function in i386.c.
 (define_insn_and_split "*fix_trunc<mode>_i387_1"
-  [(set (match_operand:X87MODEI 0 "nonimmediate_operand" "")
-       (fix:X87MODEI (match_operand 1 "register_operand" "")))
+  [(set (match_operand:SWI248x 0 "nonimmediate_operand" "")
+       (fix:SWI248x (match_operand 1 "register_operand" "")))
    (clobber (reg:CC FLAGS_REG))]
   "X87_FLOAT_MODE_P (GET_MODE (operands[1]))
    && !TARGET_FISTTP
              (clobber (match_dup 5))])])
 
 (define_insn "fix_trunc<mode>_i387"
-  [(set (match_operand:X87MODEI12 0 "memory_operand" "=m")
-       (fix:X87MODEI12 (match_operand 1 "register_operand" "f")))
+  [(set (match_operand:SWI24 0 "memory_operand" "=m")
+       (fix:SWI24 (match_operand 1 "register_operand" "f")))
    (use (match_operand:HI 2 "memory_operand" "m"))
    (use (match_operand:HI 3 "memory_operand" "m"))]
   "X87_FLOAT_MODE_P (GET_MODE (operands[1]))
    (set_attr "mode" "<MODE>")])
 
 (define_insn "fix_trunc<mode>_i387_with_temp"
-  [(set (match_operand:X87MODEI12 0 "nonimmediate_operand" "=m,?r")
-       (fix:X87MODEI12 (match_operand 1 "register_operand" "f,f")))
+  [(set (match_operand:SWI24 0 "nonimmediate_operand" "=m,?r")
+       (fix:SWI24 (match_operand 1 "register_operand" "f,f")))
    (use (match_operand:HI 2 "memory_operand" "m,m"))
    (use (match_operand:HI 3 "memory_operand" "m,m"))
-   (clobber (match_operand:X87MODEI12 4 "memory_operand" "=X,m"))]
+   (clobber (match_operand:SWI24 4 "memory_operand" "=X,m"))]
   "X87_FLOAT_MODE_P (GET_MODE (operands[1]))
    && !TARGET_FISTTP
    && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))"
    (set_attr "mode" "<MODE>")])
 
 (define_split
-  [(set (match_operand:X87MODEI12 0 "register_operand" "")
-       (fix:X87MODEI12 (match_operand 1 "register_operand" "")))
+  [(set (match_operand:SWI24 0 "register_operand" "")
+       (fix:SWI24 (match_operand 1 "register_operand" "")))
    (use (match_operand:HI 2 "memory_operand" ""))
    (use (match_operand:HI 3 "memory_operand" ""))
-   (clobber (match_operand:X87MODEI12 4 "memory_operand" ""))]
+   (clobber (match_operand:SWI24 4 "memory_operand" ""))]
   "reload_completed"
-  [(parallel [(set (match_dup 4) (fix:X87MODEI12 (match_dup 1)))
+  [(parallel [(set (match_dup 4) (fix:SWI24 (match_dup 1)))
              (use (match_dup 2))
              (use (match_dup 3))])
    (set (match_dup 0) (match_dup 4))])
 
 (define_split
-  [(set (match_operand:X87MODEI12 0 "memory_operand" "")
-       (fix:X87MODEI12 (match_operand 1 "register_operand" "")))
+  [(set (match_operand:SWI24 0 "memory_operand" "")
+       (fix:SWI24 (match_operand 1 "register_operand" "")))
    (use (match_operand:HI 2 "memory_operand" ""))
    (use (match_operand:HI 3 "memory_operand" ""))
-   (clobber (match_operand:X87MODEI12 4 "memory_operand" ""))]
+   (clobber (match_operand:SWI24 4 "memory_operand" ""))]
   "reload_completed"
-  [(parallel [(set (match_dup 0) (fix:X87MODEI12 (match_dup 1)))
+  [(parallel [(set (match_dup 0) (fix:SWI24 (match_dup 1)))
              (use (match_dup 2))
              (use (match_dup 3))])])
 
     && reload_completed"
   [(set (match_dup 0) (float:X87MODEF (match_dup 1)))])
 
-(define_expand "float<SSEMODEI24:mode><X87MODEF:mode>2"
+(define_expand "float<SWI48x:mode><X87MODEF:mode>2"
   [(set (match_operand:X87MODEF 0 "register_operand" "")
        (float:X87MODEF
-         (match_operand:SSEMODEI24 1 "nonimmediate_operand" "")))]
+         (match_operand:SWI48x 1 "nonimmediate_operand" "")))]
   "TARGET_80387
-   || ((<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+   || ((<SWI48x:MODE>mode != DImode || TARGET_64BIT)
        && SSE_FLOAT_MODE_P (<X87MODEF:MODE>mode) && TARGET_SSE_MATH)"
 {
-  if (!((<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+  if (!((<SWI48x:MODE>mode != DImode || TARGET_64BIT)
        && SSE_FLOAT_MODE_P (<X87MODEF:MODE>mode) && TARGET_SSE_MATH)
-      && !X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, <SSEMODEI24:MODE>mode))
+      && !X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, <SWI48x:MODE>mode))
     {
       rtx reg = gen_reg_rtx (XFmode);
       rtx (*insn)(rtx, rtx);
 
-      emit_insn (gen_float<SSEMODEI24:mode>xf2 (reg, operands[1]));
+      emit_insn (gen_float<SWI48x:mode>xf2 (reg, operands[1]));
 
       if (<X87MODEF:MODE>mode == SFmode)
        insn = gen_truncxfsf2;
 })
 
 ;; Pre-reload splitter to add memory clobber to the pattern.
-(define_insn_and_split "*float<SSEMODEI24:mode><X87MODEF:mode>2_1"
+(define_insn_and_split "*float<SWI48x:mode><X87MODEF:mode>2_1"
   [(set (match_operand:X87MODEF 0 "register_operand" "")
-       (float:X87MODEF (match_operand:SSEMODEI24 1 "register_operand" "")))]
+       (float:X87MODEF (match_operand:SWI48x 1 "register_operand" "")))]
   "((TARGET_80387
-     && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, <SSEMODEI24:MODE>mode)
-     && (!((<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+     && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, <SWI48x:MODE>mode)
+     && (!((<SWI48x:MODE>mode != DImode || TARGET_64BIT)
           && SSE_FLOAT_MODE_P (<X87MODEF:MODE>mode) && TARGET_SSE_MATH)
         || TARGET_MIX_SSE_I387))
-    || ((<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+    || ((<SWI48x:MODE>mode != DImode || TARGET_64BIT)
        && SSE_FLOAT_MODE_P (<X87MODEF:MODE>mode) && TARGET_SSE_MATH
-       && ((<SSEMODEI24:MODE>mode == SImode
+       && ((<SWI48x:MODE>mode == SImode
             && TARGET_SSE2 && TARGET_USE_VECTOR_CONVERTS
             && optimize_function_for_speed_p (cfun)
             && flag_trapping_math)
   [(parallel [(set (match_dup 0) (float:X87MODEF (match_dup 1)))
              (clobber (match_dup 2))])]
 {
-  operands[2] = assign_386_stack_local (<SSEMODEI24:MODE>mode, SLOT_TEMP);
+  operands[2] = assign_386_stack_local (<SWI48x:MODE>mode, SLOT_TEMP);
 
   /* Avoid store forwarding (partial memory) stall penalty
      by passing DImode value through XMM registers.  */
-  if (<SSEMODEI24:MODE>mode == DImode && !TARGET_64BIT
+  if (<SWI48x:MODE>mode == DImode && !TARGET_64BIT
       && TARGET_80387 && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES
       && optimize_function_for_speed_p (cfun))
     {
    (set_attr "bdver1_decode" "*,direct")
    (set_attr "fp_int_src" "true")])
 
-(define_insn "*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp"
+(define_insn "*float<SWI48x:mode><MODEF:mode>2_mixed_with_temp"
   [(set (match_operand:MODEF 0 "register_operand" "=f,f,x,x")
        (float:MODEF
-         (match_operand:SSEMODEI24 1 "nonimmediate_operand" "m,?r,r,m")))
-  (clobber (match_operand:SSEMODEI24 2 "memory_operand" "=X,m,m,X"))]
-  "(<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+         (match_operand:SWI48x 1 "nonimmediate_operand" "m,?r,r,m")))
+   (clobber (match_operand:SWI48x 2 "memory_operand" "=X,m,m,X"))]
+  "(<SWI48x:MODE>mode != DImode || TARGET_64BIT)
    && SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_MIX_SSE_I387"
   "#"
   [(set_attr "type" "fmov,multi,sseicvt,sseicvt")
 
 (define_split
   [(set (match_operand:MODEF 0 "register_operand" "")
-       (float:MODEF (match_operand:SSEMODEI24 1 "register_operand" "")))
-   (clobber (match_operand:SSEMODEI24 2 "memory_operand" ""))]
-  "(<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+       (float:MODEF (match_operand:SWI48x 1 "register_operand" "")))
+   (clobber (match_operand:SWI48x 2 "memory_operand" ""))]
+  "(<SWI48x:MODE>mode != DImode || TARGET_64BIT)
    && SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_MIX_SSE_I387
    && TARGET_INTER_UNIT_CONVERSIONS
    && reload_completed
 
 (define_split
   [(set (match_operand:MODEF 0 "register_operand" "")
-       (float:MODEF (match_operand:SSEMODEI24 1 "register_operand" "")))
-   (clobber (match_operand:SSEMODEI24 2 "memory_operand" ""))]
-  "(<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+       (float:MODEF (match_operand:SWI48x 1 "register_operand" "")))
+   (clobber (match_operand:SWI48x 2 "memory_operand" ""))]
+  "(<SWI48x:MODE>mode != DImode || TARGET_64BIT)
    && SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_MIX_SSE_I387
    && !(TARGET_INTER_UNIT_CONVERSIONS || optimize_function_for_size_p (cfun))
    && reload_completed
   [(set (match_dup 2) (match_dup 1))
    (set (match_dup 0) (float:MODEF (match_dup 2)))])
 
-(define_insn "*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit"
+(define_insn "*float<SWI48x:mode><MODEF:mode>2_mixed_interunit"
   [(set (match_operand:MODEF 0 "register_operand" "=f,x,x")
        (float:MODEF
-         (match_operand:SSEMODEI24 1 "nonimmediate_operand" "m,r,m")))]
-  "(<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+         (match_operand:SWI48x 1 "nonimmediate_operand" "m,r,m")))]
+  "(<SWI48x:MODE>mode != DImode || TARGET_64BIT)
    && SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_MIX_SSE_I387
    && (TARGET_INTER_UNIT_CONVERSIONS || optimize_function_for_size_p (cfun))"
   "@
    fild%Z1\t%1
-   %vcvtsi2<MODEF:ssemodesuffix><SSEMODEI24:rex64suffix>\t{%1, %d0|%d0, %1}
-   %vcvtsi2<MODEF:ssemodesuffix><SSEMODEI24:rex64suffix>\t{%1, %d0|%d0, %1}"
+   %vcvtsi2<MODEF:ssemodesuffix><SWI48x:rex64suffix>\t{%1, %d0|%d0, %1}
+   %vcvtsi2<MODEF:ssemodesuffix><SWI48x:rex64suffix>\t{%1, %d0|%d0, %1}"
   [(set_attr "type" "fmov,sseicvt,sseicvt")
    (set_attr "prefix" "orig,maybe_vex,maybe_vex")
    (set_attr "mode" "<MODEF:MODE>")
    (set (attr "prefix_rex")
      (if_then_else
        (and (eq_attr "prefix" "maybe_vex")
-           (ne (symbol_ref "<SSEMODEI24:MODE>mode == DImode") (const_int 0)))
+           (ne (symbol_ref "<SWI48x:MODE>mode == DImode") (const_int 0)))
        (const_string "1")
        (const_string "*")))
    (set_attr "unit" "i387,*,*")
    (set_attr "bdver1_decode" "*,double,direct")
    (set_attr "fp_int_src" "true")])
 
-(define_insn "*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit"
+(define_insn "*float<SWI48x:mode><MODEF:mode>2_mixed_nointerunit"
   [(set (match_operand:MODEF 0 "register_operand" "=f,x")
        (float:MODEF
-         (match_operand:SSEMODEI24 1 "memory_operand" "m,m")))]
-  "(<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+         (match_operand:SWI48x 1 "memory_operand" "m,m")))]
+  "(<SWI48x:MODE>mode != DImode || TARGET_64BIT)
    && SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_MIX_SSE_I387
    && !(TARGET_INTER_UNIT_CONVERSIONS || optimize_function_for_size_p (cfun))"
   "@
    fild%Z1\t%1
-   %vcvtsi2<MODEF:ssemodesuffix><SSEMODEI24:rex64suffix>\t{%1, %d0|%d0, %1}"
+   %vcvtsi2<MODEF:ssemodesuffix><SWI48x:rex64suffix>\t{%1, %d0|%d0, %1}"
   [(set_attr "type" "fmov,sseicvt")
    (set_attr "prefix" "orig,maybe_vex")
    (set_attr "mode" "<MODEF:MODE>")
    (set (attr "prefix_rex")
      (if_then_else
        (and (eq_attr "prefix" "maybe_vex")
-           (ne (symbol_ref "<SSEMODEI24:MODE>mode == DImode") (const_int 0)))
+           (ne (symbol_ref "<SWI48x:MODE>mode == DImode") (const_int 0)))
        (const_string "1")
        (const_string "*")))
    (set_attr "athlon_decode" "*,direct")
   DONE;
 })
 
-(define_insn "*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp"
+(define_insn "*float<SWI48x:mode><MODEF:mode>2_sse_with_temp"
   [(set (match_operand:MODEF 0 "register_operand" "=x,x")
        (float:MODEF
-         (match_operand:SSEMODEI24 1 "nonimmediate_operand" "r,m")))
-  (clobber (match_operand:SSEMODEI24 2 "memory_operand" "=m,X"))]
-  "(<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+         (match_operand:SWI48x 1 "nonimmediate_operand" "r,m")))
+  (clobber (match_operand:SWI48x 2 "memory_operand" "=m,X"))]
+  "(<SWI48x:MODE>mode != DImode || TARGET_64BIT)
    && SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH"
   "#"
   [(set_attr "type" "sseicvt")
    (set_attr "bdver1_decode" "double,direct")
    (set_attr "fp_int_src" "true")])
 
-(define_insn "*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit"
+(define_insn "*float<SWI48x:mode><MODEF:mode>2_sse_interunit"
   [(set (match_operand:MODEF 0 "register_operand" "=x,x")
        (float:MODEF
-         (match_operand:SSEMODEI24 1 "nonimmediate_operand" "r,m")))]
-  "(<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+         (match_operand:SWI48x 1 "nonimmediate_operand" "r,m")))]
+  "(<SWI48x:MODE>mode != DImode || TARGET_64BIT)
    && SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH
    && (TARGET_INTER_UNIT_CONVERSIONS || optimize_function_for_size_p (cfun))"
-  "%vcvtsi2<MODEF:ssemodesuffix><SSEMODEI24:rex64suffix>\t{%1, %d0|%d0, %1}"
+  "%vcvtsi2<MODEF:ssemodesuffix><SWI48x:rex64suffix>\t{%1, %d0|%d0, %1}"
   [(set_attr "type" "sseicvt")
    (set_attr "prefix" "maybe_vex")
    (set_attr "mode" "<MODEF:MODE>")
    (set (attr "prefix_rex")
      (if_then_else
        (and (eq_attr "prefix" "maybe_vex")
-           (ne (symbol_ref "<SSEMODEI24:MODE>mode == DImode") (const_int 0)))
+           (ne (symbol_ref "<SWI48x:MODE>mode == DImode") (const_int 0)))
        (const_string "1")
        (const_string "*")))
    (set_attr "athlon_decode" "double,direct")
 
 (define_split
   [(set (match_operand:MODEF 0 "register_operand" "")
-       (float:MODEF (match_operand:SSEMODEI24 1 "nonimmediate_operand" "")))
-   (clobber (match_operand:SSEMODEI24 2 "memory_operand" ""))]
-  "(<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+       (float:MODEF (match_operand:SWI48x 1 "nonimmediate_operand" "")))
+   (clobber (match_operand:SWI48x 2 "memory_operand" ""))]
+  "(<SWI48x:MODE>mode != DImode || TARGET_64BIT)
    && SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH
    && (TARGET_INTER_UNIT_CONVERSIONS || optimize_function_for_size_p (cfun))
    && reload_completed
           && SSE_REG_P (operands[0])))"
   [(set (match_dup 0) (float:MODEF (match_dup 1)))])
 
-(define_insn "*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit"
+(define_insn "*float<SWI48x:mode><MODEF:mode>2_sse_nointerunit"
   [(set (match_operand:MODEF 0 "register_operand" "=x")
        (float:MODEF
-         (match_operand:SSEMODEI24 1 "memory_operand" "m")))]
-  "(<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+         (match_operand:SWI48x 1 "memory_operand" "m")))]
+  "(<SWI48x:MODE>mode != DImode || TARGET_64BIT)
    && SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH
    && !(TARGET_INTER_UNIT_CONVERSIONS || optimize_function_for_size_p (cfun))"
-  "%vcvtsi2<MODEF:ssemodesuffix><SSEMODEI24:rex64suffix>\t{%1, %d0|%d0, %1}"
+  "%vcvtsi2<MODEF:ssemodesuffix><SWI48x:rex64suffix>\t{%1, %d0|%d0, %1}"
   [(set_attr "type" "sseicvt")
    (set_attr "prefix" "maybe_vex")
    (set_attr "mode" "<MODEF:MODE>")
    (set (attr "prefix_rex")
      (if_then_else
        (and (eq_attr "prefix" "maybe_vex")
-           (ne (symbol_ref "<SSEMODEI24:MODE>mode == DImode") (const_int 0)))
+           (ne (symbol_ref "<SWI48x:MODE>mode == DImode") (const_int 0)))
        (const_string "1")
        (const_string "*")))
    (set_attr "athlon_decode" "direct")
 
 (define_split
   [(set (match_operand:MODEF 0 "register_operand" "")
-       (float:MODEF (match_operand:SSEMODEI24 1 "register_operand" "")))
-   (clobber (match_operand:SSEMODEI24 2 "memory_operand" ""))]
-  "(<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+       (float:MODEF (match_operand:SWI48x 1 "register_operand" "")))
+   (clobber (match_operand:SWI48x 2 "memory_operand" ""))]
+  "(<SWI48x:MODE>mode != DImode || TARGET_64BIT)
    && SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH
    && !(TARGET_INTER_UNIT_CONVERSIONS || optimize_function_for_size_p (cfun))
    && reload_completed
 
 (define_split
   [(set (match_operand:MODEF 0 "register_operand" "")
-       (float:MODEF (match_operand:SSEMODEI24 1 "memory_operand" "")))
-   (clobber (match_operand:SSEMODEI24 2 "memory_operand" ""))]
-  "(<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
+       (float:MODEF (match_operand:SWI48x 1 "memory_operand" "")))
+   (clobber (match_operand:SWI48x 2 "memory_operand" ""))]
+  "(<SWI48x:MODE>mode != DImode || TARGET_64BIT)
    && SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH
    && reload_completed
    && (SSE_REG_P (operands[0])
           && SSE_REG_P (operands[0])))"
   [(set (match_dup 0) (float:MODEF (match_dup 1)))])
 
-(define_insn "*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp"
+(define_insn "*float<SWI48x:mode><X87MODEF:mode>2_i387_with_temp"
   [(set (match_operand:X87MODEF 0 "register_operand" "=f,f")
        (float:X87MODEF
-         (match_operand:SSEMODEI24 1 "nonimmediate_operand" "m,?r")))
-  (clobber (match_operand:SSEMODEI24 2 "memory_operand" "=X,m"))]
+         (match_operand:SWI48x 1 "nonimmediate_operand" "m,?r")))
+  (clobber (match_operand:SWI48x 2 "memory_operand" "=X,m"))]
   "TARGET_80387
-   && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, <SSEMODEI24:MODE>mode)"
+   && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, <SWI48x:MODE>mode)"
   "@
    fild%Z1\t%1
    #"
    (set_attr "unit" "*,i387")
    (set_attr "fp_int_src" "true")])
 
-(define_insn "*float<SSEMODEI24:mode><X87MODEF:mode>2_i387"
+(define_insn "*float<SWI48x:mode><X87MODEF:mode>2_i387"
   [(set (match_operand:X87MODEF 0 "register_operand" "=f")
        (float:X87MODEF
-         (match_operand:SSEMODEI24 1 "memory_operand" "m")))]
+         (match_operand:SWI48x 1 "memory_operand" "m")))]
   "TARGET_80387
-   && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, <SSEMODEI24:MODE>mode)"
+   && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, <SWI48x:MODE>mode)"
   "fild%Z1\t%1"
   [(set_attr "type" "fmov")
    (set_attr "mode" "<X87MODEF:MODE>")
 
 (define_split
   [(set (match_operand:X87MODEF 0 "fp_register_operand" "")
-       (float:X87MODEF (match_operand:SSEMODEI24 1 "register_operand" "")))
-   (clobber (match_operand:SSEMODEI24 2 "memory_operand" ""))]
+       (float:X87MODEF (match_operand:SWI48x 1 "register_operand" "")))
+   (clobber (match_operand:SWI48x 2 "memory_operand" ""))]
   "TARGET_80387
-   && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, <SSEMODEI24:MODE>mode)
+   && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, <SWI48x:MODE>mode)
    && reload_completed"
   [(set (match_dup 2) (match_dup 1))
    (set (match_dup 0) (float:X87MODEF (match_dup 2)))])
 
 (define_split
   [(set (match_operand:X87MODEF 0 "fp_register_operand" "")
-       (float:X87MODEF (match_operand:SSEMODEI24 1 "memory_operand" "")))
-   (clobber (match_operand:SSEMODEI24 2 "memory_operand" ""))]
+       (float:X87MODEF (match_operand:SWI48x 1 "memory_operand" "")))
+   (clobber (match_operand:SWI48x 2 "memory_operand" ""))]
   "TARGET_80387
-   && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, <SSEMODEI24:MODE>mode)
+   && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, <SWI48x:MODE>mode)
    && reload_completed"
   [(set (match_dup 0) (float:X87MODEF (match_dup 1)))])
 
        (if_then_else
          (match_operator 0 "ix86_swapped_fp_comparison_operator"
            [(match_operator 1 "float_operator"
-             [(match_operand:X87MODEI12 2 "nonimmediate_operand" "m,?r")])
+             [(match_operand:SWI24 2 "nonimmediate_operand" "m,?r")])
             (match_operand 3 "register_operand" "f,f")])
          (label_ref (match_operand 4 "" ""))
          (pc)))
        (if_then_else
          (match_operator 0 "ix86_swapped_fp_comparison_operator"
            [(match_operator 1 "float_operator"
-             [(match_operand:X87MODEI12 2 "memory_operand" "")])
+             [(match_operand:SWI24 2 "memory_operand" "")])
             (match_operand 3 "register_operand" "")])
          (match_operand 4 "" "")
          (match_operand 5 "" "")))
        (if_then_else
          (match_operator 0 "ix86_swapped_fp_comparison_operator"
            [(match_operator 1 "float_operator"
-             [(match_operand:X87MODEI12 2 "register_operand" "")])
+             [(match_operand:SWI24 2 "register_operand" "")])
             (match_operand 3 "register_operand" "")])
          (match_operand 4 "" "")
          (match_operand 5 "" "")))
   [(set (match_operand:MODEF 0 "register_operand" "=f,f")
        (match_operator:MODEF 3 "binary_fp_operator"
          [(float:MODEF
-            (match_operand:X87MODEI12 1 "nonimmediate_operand" "m,?r"))
+            (match_operand:SWI24 1 "nonimmediate_operand" "m,?r"))
           (match_operand:MODEF 2 "register_operand" "0,0")]))]
-  "TARGET_80387 && X87_ENABLE_FLOAT (<MODEF:MODE>mode, <X87MODEI12:MODE>mode)
+  "TARGET_80387 && X87_ENABLE_FLOAT (<MODEF:MODE>mode, <SWI24:MODE>mode)
    && !(SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH)
-   && (TARGET_USE_<X87MODEI12:MODE>MODE_FIOP || optimize_function_for_size_p (cfun))"
+   && (TARGET_USE_<SWI24:MODE>MODE_FIOP || optimize_function_for_size_p (cfun))"
   "* return which_alternative ? \"#\" : output_387_binary_op (insn, operands);"
   [(set (attr "type")
         (cond [(match_operand:MODEF 3 "mult_operator" "")
               ]
               (const_string "fop")))
    (set_attr "fp_int_src" "true")
-   (set_attr "mode" "<X87MODEI12:MODE>")])
+   (set_attr "mode" "<SWI24:MODE>")])
 
 (define_insn "*fop_<MODEF:mode>_3_i387"
   [(set (match_operand:MODEF 0 "register_operand" "=f,f")
        (match_operator:MODEF 3 "binary_fp_operator"
          [(match_operand:MODEF 1 "register_operand" "0,0")
           (float:MODEF
-            (match_operand:X87MODEI12 2 "nonimmediate_operand" "m,?r"))]))]
-  "TARGET_80387 && X87_ENABLE_FLOAT (<MODEF:MODE>mode, <X87MODEI12:MODE>mode)
+            (match_operand:SWI24 2 "nonimmediate_operand" "m,?r"))]))]
+  "TARGET_80387 && X87_ENABLE_FLOAT (<MODEF:MODE>mode, <SWI24:MODE>mode)
    && !(SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH)
-   && (TARGET_USE_<X87MODEI12:MODE>MODE_FIOP || optimize_function_for_size_p (cfun))"
+   && (TARGET_USE_<SWI24:MODE>MODE_FIOP || optimize_function_for_size_p (cfun))"
   "* return which_alternative ? \"#\" : output_387_binary_op (insn, operands);"
   [(set (attr "type")
         (cond [(match_operand:MODEF 3 "mult_operator" "")
   [(set (match_operand:XF 0 "register_operand" "=f,f")
        (match_operator:XF 3 "binary_fp_operator"
          [(float:XF
-            (match_operand:X87MODEI12 1 "nonimmediate_operand" "m,?r"))
+            (match_operand:SWI24 1 "nonimmediate_operand" "m,?r"))
           (match_operand:XF 2 "register_operand" "0,0")]))]
   "TARGET_80387 && (TARGET_USE_<MODE>MODE_FIOP || optimize_function_for_size_p (cfun))"
   "* return which_alternative ? \"#\" : output_387_binary_op (insn, operands);"
        (match_operator:XF 3 "binary_fp_operator"
          [(match_operand:XF 1 "register_operand" "0,0")
           (float:XF
-            (match_operand:X87MODEI12 2 "nonimmediate_operand" "m,?r"))]))]
+            (match_operand:SWI24 2 "nonimmediate_operand" "m,?r"))]))]
   "TARGET_80387 && (TARGET_USE_<MODE>MODE_FIOP || optimize_function_for_size_p (cfun))"
   "* return which_alternative ? \"#\" : output_387_binary_op (insn, operands);"
   [(set (attr "type")
 (define_split
   [(set (match_operand 0 "register_operand" "")
        (match_operator 3 "binary_fp_operator"
-          [(float (match_operand:X87MODEI12 1 "register_operand" ""))
+          [(float (match_operand:SWI24 1 "register_operand" ""))
            (match_operand 2 "register_operand" "")]))]
   "reload_completed
    && X87_FLOAT_MODE_P (GET_MODE (operands[0]))
   [(set (match_operand 0 "register_operand" "")
        (match_operator 3 "binary_fp_operator"
           [(match_operand 1 "register_operand" "")
-           (float (match_operand:X87MODEI12 2 "register_operand" ""))]))]
+           (float (match_operand:SWI24 2 "register_operand" ""))]))]
   "reload_completed
    && X87_FLOAT_MODE_P (GET_MODE (operands[0]))
    && X87_ENABLE_FLOAT (GET_MODE (operands[0]), GET_MODE (operands[2]))"
              (clobber (match_dup 3))])])
 
 (define_insn_and_split "*fist<mode>2_1"
-  [(set (match_operand:X87MODEI12 0 "register_operand" "")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "")]
-                          UNSPEC_FIST))]
+  [(set (match_operand:SWI24 0 "register_operand" "")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "")]
+                     UNSPEC_FIST))]
   "TARGET_USE_FANCY_MATH_387
    && can_create_pseudo_p ()"
   "#"
    (set_attr "mode" "<MODE>")])
 
 (define_insn "fist<mode>2"
-  [(set (match_operand:X87MODEI12 0 "memory_operand" "=m")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "f")]
-                          UNSPEC_FIST))]
+  [(set (match_operand:SWI24 0 "memory_operand" "=m")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "f")]
+                     UNSPEC_FIST))]
   "TARGET_USE_FANCY_MATH_387"
   "* return output_fix_trunc (insn, operands, false);"
   [(set_attr "type" "fpspc")
    (set_attr "mode" "<MODE>")])
 
 (define_insn "fist<mode>2_with_temp"
-  [(set (match_operand:X87MODEI12 0 "register_operand" "=r")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "f")]
-                          UNSPEC_FIST))
-   (clobber (match_operand:X87MODEI12 2 "memory_operand" "=m"))]
+  [(set (match_operand:SWI24 0 "register_operand" "=r")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "f")]
+                     UNSPEC_FIST))
+   (clobber (match_operand:SWI24 2 "memory_operand" "=m"))]
   "TARGET_USE_FANCY_MATH_387"
   "#"
   [(set_attr "type" "fpspc")
    (set_attr "mode" "<MODE>")])
 
 (define_split
-  [(set (match_operand:X87MODEI12 0 "register_operand" "")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "")]
-                          UNSPEC_FIST))
-   (clobber (match_operand:X87MODEI12 2 "memory_operand" ""))]
+  [(set (match_operand:SWI24 0 "register_operand" "")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "")]
+                     UNSPEC_FIST))
+   (clobber (match_operand:SWI24 2 "memory_operand" ""))]
   "reload_completed"
-  [(set (match_dup 2) (unspec:X87MODEI12 [(match_dup 1)] UNSPEC_FIST))
+  [(set (match_dup 2) (unspec:SWI24 [(match_dup 1)] UNSPEC_FIST))
    (set (match_dup 0) (match_dup 2))])
 
 (define_split
-  [(set (match_operand:X87MODEI12 0 "memory_operand" "")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "")]
-                          UNSPEC_FIST))
-   (clobber (match_operand:X87MODEI12 2 "memory_operand" ""))]
+  [(set (match_operand:SWI24 0 "memory_operand" "")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "")]
+                     UNSPEC_FIST))
+   (clobber (match_operand:SWI24 2 "memory_operand" ""))]
   "reload_completed"
-  [(set (match_dup 0) (unspec:X87MODEI12 [(match_dup 1)] UNSPEC_FIST))])
+  [(set (match_dup 0) (unspec:SWI24 [(match_dup 1)] UNSPEC_FIST))])
 
 (define_expand "lrintxf<mode>2"
-  [(set (match_operand:X87MODEI 0 "nonimmediate_operand" "")
-     (unspec:X87MODEI [(match_operand:XF 1 "register_operand" "")]
-                     UNSPEC_FIST))]
+  [(set (match_operand:SWI248x 0 "nonimmediate_operand" "")
+     (unspec:SWI248x [(match_operand:XF 1 "register_operand" "")]
+                    UNSPEC_FIST))]
   "TARGET_USE_FANCY_MATH_387")
 
-(define_expand "lrint<MODEF:mode><SSEMODEI24:mode>2"
-  [(set (match_operand:SSEMODEI24 0 "nonimmediate_operand" "")
-     (unspec:SSEMODEI24 [(match_operand:MODEF 1 "register_operand" "")]
+(define_expand "lrint<MODEF:mode><SWI48x:mode>2"
+  [(set (match_operand:SWI48x 0 "nonimmediate_operand" "")
+     (unspec:SWI48x [(match_operand:MODEF 1 "register_operand" "")]
                        UNSPEC_FIX_NOTRUNC))]
   "SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH
-   && ((<SSEMODEI24:MODE>mode != DImode) || TARGET_64BIT)")
+   && ((<SWI48x:MODE>mode != DImode) || TARGET_64BIT)")
 
-(define_expand "lround<MODEF:mode><SSEMODEI24:mode>2"
-  [(match_operand:SSEMODEI24 0 "nonimmediate_operand" "")
+(define_expand "lround<MODEF:mode><SWI48x:mode>2"
+  [(match_operand:SWI48x 0 "nonimmediate_operand" "")
    (match_operand:MODEF 1 "register_operand" "")]
   "SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH
-   && ((<SSEMODEI24:MODE>mode != DImode) || TARGET_64BIT)
+   && ((<SWI48x:MODE>mode != DImode) || TARGET_64BIT)
    && !flag_trapping_math && !flag_rounding_math"
 {
   if (optimize_insn_for_size_p ())
 })
 
 (define_insn_and_split "*fist<mode>2_floor_1"
-  [(set (match_operand:X87MODEI 0 "nonimmediate_operand" "")
-       (unspec:X87MODEI [(match_operand:XF 1 "register_operand" "")]
-        UNSPEC_FIST_FLOOR))
+  [(set (match_operand:SWI248x 0 "nonimmediate_operand" "")
+       (unspec:SWI248x [(match_operand:XF 1 "register_operand" "")]
+                       UNSPEC_FIST_FLOOR))
    (clobber (reg:CC FLAGS_REG))]
   "TARGET_USE_FANCY_MATH_387
    && flag_unsafe_math_optimizations
 (define_insn "fistdi2_floor"
   [(set (match_operand:DI 0 "memory_operand" "=m")
        (unspec:DI [(match_operand:XF 1 "register_operand" "f")]
-        UNSPEC_FIST_FLOOR))
+                  UNSPEC_FIST_FLOOR))
    (use (match_operand:HI 2 "memory_operand" "m"))
    (use (match_operand:HI 3 "memory_operand" "m"))
    (clobber (match_scratch:XF 4 "=&1f"))]
 (define_insn "fistdi2_floor_with_temp"
   [(set (match_operand:DI 0 "nonimmediate_operand" "=m,?r")
        (unspec:DI [(match_operand:XF 1 "register_operand" "f,f")]
-        UNSPEC_FIST_FLOOR))
+                  UNSPEC_FIST_FLOOR))
    (use (match_operand:HI 2 "memory_operand" "m,m"))
    (use (match_operand:HI 3 "memory_operand" "m,m"))
    (clobber (match_operand:DI 4 "memory_operand" "=X,m"))
 (define_split
   [(set (match_operand:DI 0 "register_operand" "")
        (unspec:DI [(match_operand:XF 1 "register_operand" "")]
-        UNSPEC_FIST_FLOOR))
+                  UNSPEC_FIST_FLOOR))
    (use (match_operand:HI 2 "memory_operand" ""))
    (use (match_operand:HI 3 "memory_operand" ""))
    (clobber (match_operand:DI 4 "memory_operand" ""))
    (clobber (match_scratch 5 ""))]
   "reload_completed"
-  [(parallel [(set (match_dup 4) (unspec:DI [(match_dup 1)] UNSPEC_FIST_FLOOR))
+  [(parallel [(set (match_dup 4)
+                  (unspec:DI [(match_dup 1)] UNSPEC_FIST_FLOOR))
              (use (match_dup 2))
              (use (match_dup 3))
              (clobber (match_dup 5))])
 (define_split
   [(set (match_operand:DI 0 "memory_operand" "")
        (unspec:DI [(match_operand:XF 1 "register_operand" "")]
-        UNSPEC_FIST_FLOOR))
+                  UNSPEC_FIST_FLOOR))
    (use (match_operand:HI 2 "memory_operand" ""))
    (use (match_operand:HI 3 "memory_operand" ""))
    (clobber (match_operand:DI 4 "memory_operand" ""))
    (clobber (match_scratch 5 ""))]
   "reload_completed"
-  [(parallel [(set (match_dup 0) (unspec:DI [(match_dup 1)] UNSPEC_FIST_FLOOR))
+  [(parallel [(set (match_dup 0)
+                  (unspec:DI [(match_dup 1)] UNSPEC_FIST_FLOOR))
              (use (match_dup 2))
              (use (match_dup 3))
              (clobber (match_dup 5))])])
 
 (define_insn "fist<mode>2_floor"
-  [(set (match_operand:X87MODEI12 0 "memory_operand" "=m")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "f")]
-        UNSPEC_FIST_FLOOR))
+  [(set (match_operand:SWI24 0 "memory_operand" "=m")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "f")]
+                     UNSPEC_FIST_FLOOR))
    (use (match_operand:HI 2 "memory_operand" "m"))
    (use (match_operand:HI 3 "memory_operand" "m"))]
   "TARGET_USE_FANCY_MATH_387
    (set_attr "mode" "<MODE>")])
 
 (define_insn "fist<mode>2_floor_with_temp"
-  [(set (match_operand:X87MODEI12 0 "nonimmediate_operand" "=m,?r")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "f,f")]
-        UNSPEC_FIST_FLOOR))
+  [(set (match_operand:SWI24 0 "nonimmediate_operand" "=m,?r")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "f,f")]
+                     UNSPEC_FIST_FLOOR))
    (use (match_operand:HI 2 "memory_operand" "m,m"))
    (use (match_operand:HI 3 "memory_operand" "m,m"))
-   (clobber (match_operand:X87MODEI12 4 "memory_operand" "=X,m"))]
+   (clobber (match_operand:SWI24 4 "memory_operand" "=X,m"))]
   "TARGET_USE_FANCY_MATH_387
    && flag_unsafe_math_optimizations"
   "#"
    (set_attr "mode" "<MODE>")])
 
 (define_split
-  [(set (match_operand:X87MODEI12 0 "register_operand" "")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "")]
-        UNSPEC_FIST_FLOOR))
+  [(set (match_operand:SWI24 0 "register_operand" "")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "")]
+                     UNSPEC_FIST_FLOOR))
    (use (match_operand:HI 2 "memory_operand" ""))
    (use (match_operand:HI 3 "memory_operand" ""))
-   (clobber (match_operand:X87MODEI12 4 "memory_operand" ""))]
+   (clobber (match_operand:SWI24 4 "memory_operand" ""))]
   "reload_completed"
-  [(parallel [(set (match_dup 4) (unspec:X87MODEI12 [(match_dup 1)]
-                                 UNSPEC_FIST_FLOOR))
+  [(parallel [(set (match_dup 4)
+                  (unspec:SWI24 [(match_dup 1)] UNSPEC_FIST_FLOOR))
              (use (match_dup 2))
              (use (match_dup 3))])
    (set (match_dup 0) (match_dup 4))])
 
 (define_split
-  [(set (match_operand:X87MODEI12 0 "memory_operand" "")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "")]
-        UNSPEC_FIST_FLOOR))
+  [(set (match_operand:SWI24 0 "memory_operand" "")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "")]
+                     UNSPEC_FIST_FLOOR))
    (use (match_operand:HI 2 "memory_operand" ""))
    (use (match_operand:HI 3 "memory_operand" ""))
-   (clobber (match_operand:X87MODEI12 4 "memory_operand" ""))]
+   (clobber (match_operand:SWI24 4 "memory_operand" ""))]
   "reload_completed"
-  [(parallel [(set (match_dup 0) (unspec:X87MODEI12 [(match_dup 1)]
-                                 UNSPEC_FIST_FLOOR))
+  [(parallel [(set (match_dup 0)
+                  (unspec:SWI24 [(match_dup 1)] UNSPEC_FIST_FLOOR))
              (use (match_dup 2))
              (use (match_dup 3))])])
 
 (define_expand "lfloorxf<mode>2"
-  [(parallel [(set (match_operand:X87MODEI 0 "nonimmediate_operand" "")
-                  (unspec:X87MODEI [(match_operand:XF 1 "register_operand" "")]
-                   UNSPEC_FIST_FLOOR))
+  [(parallel [(set (match_operand:SWI248x 0 "nonimmediate_operand" "")
+                  (unspec:SWI248x [(match_operand:XF 1 "register_operand" "")]
+                                  UNSPEC_FIST_FLOOR))
              (clobber (reg:CC FLAGS_REG))])]
   "TARGET_USE_FANCY_MATH_387
    && (!TARGET_SSE_MATH || TARGET_MIX_SSE_I387)
 })
 
 (define_insn_and_split "*fist<mode>2_ceil_1"
-  [(set (match_operand:X87MODEI 0 "nonimmediate_operand" "")
-       (unspec:X87MODEI [(match_operand:XF 1 "register_operand" "")]
-        UNSPEC_FIST_CEIL))
+  [(set (match_operand:SWI248x 0 "nonimmediate_operand" "")
+       (unspec:SWI248x [(match_operand:XF 1 "register_operand" "")]
+                       UNSPEC_FIST_CEIL))
    (clobber (reg:CC FLAGS_REG))]
   "TARGET_USE_FANCY_MATH_387
    && flag_unsafe_math_optimizations
 (define_insn "fistdi2_ceil"
   [(set (match_operand:DI 0 "memory_operand" "=m")
        (unspec:DI [(match_operand:XF 1 "register_operand" "f")]
-        UNSPEC_FIST_CEIL))
+                  UNSPEC_FIST_CEIL))
    (use (match_operand:HI 2 "memory_operand" "m"))
    (use (match_operand:HI 3 "memory_operand" "m"))
    (clobber (match_scratch:XF 4 "=&1f"))]
 (define_insn "fistdi2_ceil_with_temp"
   [(set (match_operand:DI 0 "nonimmediate_operand" "=m,?r")
        (unspec:DI [(match_operand:XF 1 "register_operand" "f,f")]
-        UNSPEC_FIST_CEIL))
+                  UNSPEC_FIST_CEIL))
    (use (match_operand:HI 2 "memory_operand" "m,m"))
    (use (match_operand:HI 3 "memory_operand" "m,m"))
    (clobber (match_operand:DI 4 "memory_operand" "=X,m"))
 (define_split
   [(set (match_operand:DI 0 "register_operand" "")
        (unspec:DI [(match_operand:XF 1 "register_operand" "")]
-        UNSPEC_FIST_CEIL))
+                  UNSPEC_FIST_CEIL))
    (use (match_operand:HI 2 "memory_operand" ""))
    (use (match_operand:HI 3 "memory_operand" ""))
    (clobber (match_operand:DI 4 "memory_operand" ""))
    (clobber (match_scratch 5 ""))]
   "reload_completed"
-  [(parallel [(set (match_dup 4) (unspec:DI [(match_dup 1)] UNSPEC_FIST_CEIL))
+  [(parallel [(set (match_dup 4)
+                  (unspec:DI [(match_dup 1)] UNSPEC_FIST_CEIL))
              (use (match_dup 2))
              (use (match_dup 3))
              (clobber (match_dup 5))])
 (define_split
   [(set (match_operand:DI 0 "memory_operand" "")
        (unspec:DI [(match_operand:XF 1 "register_operand" "")]
-        UNSPEC_FIST_CEIL))
+                  UNSPEC_FIST_CEIL))
    (use (match_operand:HI 2 "memory_operand" ""))
    (use (match_operand:HI 3 "memory_operand" ""))
    (clobber (match_operand:DI 4 "memory_operand" ""))
    (clobber (match_scratch 5 ""))]
   "reload_completed"
-  [(parallel [(set (match_dup 0) (unspec:DI [(match_dup 1)] UNSPEC_FIST_CEIL))
+  [(parallel [(set (match_dup 0)
+                  (unspec:DI [(match_dup 1)] UNSPEC_FIST_CEIL))
              (use (match_dup 2))
              (use (match_dup 3))
              (clobber (match_dup 5))])])
 
 (define_insn "fist<mode>2_ceil"
-  [(set (match_operand:X87MODEI12 0 "memory_operand" "=m")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "f")]
-        UNSPEC_FIST_CEIL))
+  [(set (match_operand:SWI24 0 "memory_operand" "=m")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "f")]
+                     UNSPEC_FIST_CEIL))
    (use (match_operand:HI 2 "memory_operand" "m"))
    (use (match_operand:HI 3 "memory_operand" "m"))]
   "TARGET_USE_FANCY_MATH_387
    (set_attr "mode" "<MODE>")])
 
 (define_insn "fist<mode>2_ceil_with_temp"
-  [(set (match_operand:X87MODEI12 0 "nonimmediate_operand" "=m,?r")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "f,f")]
-        UNSPEC_FIST_CEIL))
+  [(set (match_operand:SWI24 0 "nonimmediate_operand" "=m,?r")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "f,f")]
+                     UNSPEC_FIST_CEIL))
    (use (match_operand:HI 2 "memory_operand" "m,m"))
    (use (match_operand:HI 3 "memory_operand" "m,m"))
-   (clobber (match_operand:X87MODEI12 4 "memory_operand" "=X,m"))]
+   (clobber (match_operand:SWI24 4 "memory_operand" "=X,m"))]
   "TARGET_USE_FANCY_MATH_387
    && flag_unsafe_math_optimizations"
   "#"
    (set_attr "mode" "<MODE>")])
 
 (define_split
-  [(set (match_operand:X87MODEI12 0 "register_operand" "")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "")]
-        UNSPEC_FIST_CEIL))
+  [(set (match_operand:SWI24 0 "register_operand" "")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "")]
+                     UNSPEC_FIST_CEIL))
    (use (match_operand:HI 2 "memory_operand" ""))
    (use (match_operand:HI 3 "memory_operand" ""))
-   (clobber (match_operand:X87MODEI12 4 "memory_operand" ""))]
+   (clobber (match_operand:SWI24 4 "memory_operand" ""))]
   "reload_completed"
-  [(parallel [(set (match_dup 4) (unspec:X87MODEI12 [(match_dup 1)]
-                                 UNSPEC_FIST_CEIL))
+  [(parallel [(set (match_dup 4)
+                  (unspec:SWI24 [(match_dup 1)] UNSPEC_FIST_CEIL))
              (use (match_dup 2))
              (use (match_dup 3))])
    (set (match_dup 0) (match_dup 4))])
 
 (define_split
-  [(set (match_operand:X87MODEI12 0 "memory_operand" "")
-       (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "")]
-        UNSPEC_FIST_CEIL))
+  [(set (match_operand:SWI24 0 "memory_operand" "")
+       (unspec:SWI24 [(match_operand:XF 1 "register_operand" "")]
+                     UNSPEC_FIST_CEIL))
    (use (match_operand:HI 2 "memory_operand" ""))
    (use (match_operand:HI 3 "memory_operand" ""))
-   (clobber (match_operand:X87MODEI12 4 "memory_operand" ""))]
+   (clobber (match_operand:SWI24 4 "memory_operand" ""))]
   "reload_completed"
-  [(parallel [(set (match_dup 0) (unspec:X87MODEI12 [(match_dup 1)]
-                                 UNSPEC_FIST_CEIL))
+  [(parallel [(set (match_dup 0)
+                  (unspec:SWI24 [(match_dup 1)] UNSPEC_FIST_CEIL))
              (use (match_dup 2))
              (use (match_dup 3))])])
 
 (define_expand "lceilxf<mode>2"
-  [(parallel [(set (match_operand:X87MODEI 0 "nonimmediate_operand" "")
-                  (unspec:X87MODEI [(match_operand:XF 1 "register_operand" "")]
-                   UNSPEC_FIST_CEIL))
+  [(parallel [(set (match_operand:SWI248x 0 "nonimmediate_operand" "")
+                  (unspec:SWI248x [(match_operand:XF 1 "register_operand" "")]
+                                  UNSPEC_FIST_CEIL))
              (clobber (reg:CC FLAGS_REG))])]
   "TARGET_USE_FANCY_MATH_387
    && (!TARGET_SSE_MATH || TARGET_MIX_SSE_I387)