]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386.md (splitters for int-float conversion): Use SUBREG_REG on SUBREGs in splitter...
authorUros Bizjak <ubizjak@gmail.com>
Tue, 1 Nov 2011 22:59:36 +0000 (23:59 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 1 Nov 2011 22:59:36 +0000 (23:59 +0100)
* config/i386/i386.md (splitters for int-float conversion): Use
SUBREG_REG on SUBREGs in splitter constraints.

From-SVN: r180749

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

index a06f0e31b85793a9c8e1a1ffe01b57fd30cdb354..9d13db9862e3d5f581440ec6b4ef62f494b59572 100644 (file)
@@ -1,7 +1,11 @@
+2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (splitters for int-float conversion): Use
+       SUBREG_REG on SUBREGs in splitter constraints.
+
 2011-11-01  Julian Brown  <julian@codesourcery.com>
 
        PR rtl-optimization/47918
-
        * reload1.c (set_initial_label_offsets): Use initial offsets
        for labels on the nonlocal_goto_handler_labels chain.
 
index 7d2c561e4e2a051153ea201e13f386f0069db3d9..cfacea4d93d24b8fbbb8c1742ad14418f7ee9499 100644 (file)
    && reload_completed
    && (SSE_REG_P (operands[0])
        || (GET_CODE (operands[0]) == SUBREG
-          && SSE_REG_P (operands[0])))"
+          && SSE_REG_P (SUBREG_REG (operands[0]))))"
   [(set (match_dup 0) (float:MODEF (match_dup 1)))])
 
 (define_split
    && reload_completed
    && (SSE_REG_P (operands[0])
        || (GET_CODE (operands[0]) == SUBREG
-          && SSE_REG_P (operands[0])))"
+          && SSE_REG_P (SUBREG_REG (operands[0]))))"
   [(set (match_dup 2) (match_dup 1))
    (set (match_dup 0) (float:MODEF (match_dup 2)))])
 
    && reload_completed
    && (SSE_REG_P (operands[0])
        || (GET_CODE (operands[0]) == SUBREG
-          && SSE_REG_P (operands[0])))"
+          && SSE_REG_P (SUBREG_REG (operands[0]))))"
   [(const_int 0)]
 {
   rtx op1 = operands[1];
    && reload_completed
    && (SSE_REG_P (operands[0])
        || (GET_CODE (operands[0]) == SUBREG
-          && SSE_REG_P (operands[0])))"
+          && SSE_REG_P (SUBREG_REG (operands[0]))))"
   [(const_int 0)]
 {
   operands[3] = simplify_gen_subreg (<ssevecmode>mode, operands[0],
    && reload_completed
    && (SSE_REG_P (operands[0])
        || (GET_CODE (operands[0]) == SUBREG
-          && SSE_REG_P (operands[0])))"
+          && SSE_REG_P (SUBREG_REG (operands[0]))))"
   [(const_int 0)]
 {
   rtx op1 = operands[1];
    && reload_completed
    && (SSE_REG_P (operands[0])
        || (GET_CODE (operands[0]) == SUBREG
-          && SSE_REG_P (operands[0])))"
+          && SSE_REG_P (SUBREG_REG (operands[0]))))"
   [(const_int 0)]
 {
   operands[3] = simplify_gen_subreg (<ssevecmode>mode, operands[0],
    && reload_completed
    && (SSE_REG_P (operands[0])
        || (GET_CODE (operands[0]) == SUBREG
-          && SSE_REG_P (operands[0])))"
+          && SSE_REG_P (SUBREG_REG (operands[0]))))"
   [(set (match_dup 0) (float:MODEF (match_dup 1)))])
 
 (define_insn "*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit"
    && reload_completed
    && (SSE_REG_P (operands[0])
        || (GET_CODE (operands[0]) == SUBREG
-          && SSE_REG_P (operands[0])))"
+          && SSE_REG_P (SUBREG_REG (operands[0]))))"
   [(set (match_dup 2) (match_dup 1))
    (set (match_dup 0) (float:MODEF (match_dup 2)))])
 
    && reload_completed
    && (SSE_REG_P (operands[0])
        || (GET_CODE (operands[0]) == SUBREG
-          && SSE_REG_P (operands[0])))"
+          && SSE_REG_P (SUBREG_REG (operands[0]))))"
   [(set (match_dup 0) (float:MODEF (match_dup 1)))])
 
 (define_insn "*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp"