From b1ea0ebd97fab1323d3208e710212b4e423c2156 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Tue, 5 May 2020 18:01:06 +0200 Subject: [PATCH] i386: Use "clobber (scratch)" in expanders Use "clobber (scratch:M)" instad of "clobber (match_scratch:M N)" in expanders. * config/i386/i386.md (fixuns_truncsi2): Use "clobber (scratch:M)" instad of "clobber (match_scratch:M N)". (addqi3_cconly_overflow): Ditto. (umulv4): Ditto. (mul3_highpart): Ditto. (tls_global_dynamic_32): Ditto. (tls_local_dynamic_base_32): Ditto. (atanxf2): Ditto. (asinxf2): Ditto. (acosxf2): Ditto. (logxf2): Ditto. (log10xf2): Ditto. (log2xf2): Ditto. (*adddi_4): Remove "m" constraint from scratch operand. (*add_4): Ditto. --- gcc/ChangeLog | 20 +++++++++++++++++++- gcc/config/i386/i386.md | 38 +++++++++++++++++++------------------- 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b1c0759ca28..92fdacff545 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,21 @@ +2020-05-05 Uroš Bizjak + + * config/i386/i386.md (fixuns_truncsi2): Use + "clobber (scratch:M)" instad of "clobber (match_scratch:M N)". + (addqi3_cconly_overflow): Ditto. + (umulv4): Ditto. + (mul3_highpart): Ditto. + (tls_global_dynamic_32): Ditto. + (tls_local_dynamic_base_32): Ditto. + (atanxf2): Ditto. + (asinxf2): Ditto. + (acosxf2): Ditto. + (logxf2): Ditto. + (log10xf2): Ditto. + (log2xf2): Ditto. + (*adddi_4): Remove "m" constraint from scratch operand. + (*add_4): Ditto. + 2020-05-05 Jakub Jelinek PR rtl-optimization/94516 @@ -208,7 +226,7 @@ 2020-05-03 Uroš Bizjak - * config/i386/i386-expand.c (ix86_expand_int_movcc): + * config/i386/i386-expand.c (ix86_expand_int_movcc): Use plus_constant instead of gen_rtx_PLUS with GEN_INT. (emit_memmov): Ditto. (emit_memset): Ditto. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 5cad481fd9f..898bb946a2d 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -4591,8 +4591,8 @@ (unsigned_fix:SI (match_operand:MODEF 1 "nonimmediate_operand"))) (use (match_dup 2)) - (clobber (match_scratch: 3)) - (clobber (match_scratch: 4))])] + (clobber (scratch:)) + (clobber (scratch:))])] "(!TARGET_64BIT || TARGET_AVX512F) && TARGET_SSE2 && TARGET_SSE_MATH" { machine_mode mode = mode; @@ -5660,7 +5660,7 @@ (compare (match_operand:DI 1 "nonimmediate_operand" "0") (match_operand:DI 2 "x86_64_immediate_operand" "e"))) - (clobber (match_scratch:DI 0 "=rm"))] + (clobber (match_scratch:DI 0 "=r"))] "TARGET_64BIT && ix86_match_ccmode (insn, CCGCmode)" { @@ -5705,7 +5705,7 @@ (compare (match_operand:SWI124 1 "nonimmediate_operand" "0") (match_operand:SWI124 2 "const_int_operand" "n"))) - (clobber (match_scratch:SWI124 0 "=m"))] + (clobber (match_scratch:SWI124 0 "="))] "ix86_match_ccmode (insn, CCGCmode)" { switch (get_attr_type (insn)) @@ -6955,7 +6955,7 @@ (match_operand:QI 0 "nonimmediate_operand") (match_operand:QI 1 "general_operand")) (match_dup 0))) - (clobber (match_scratch:QI 2))])] + (clobber (scratch:QI))])] "!(MEM_P (operands[0]) && MEM_P (operands[1]))") (define_insn "*add3_cconly_overflow_1" @@ -7591,7 +7591,7 @@ (mult:SWI248 (match_dup 1) (match_dup 2))))) (set (match_operand:SWI248 0 "register_operand") (mult:SWI248 (match_dup 1) (match_dup 2))) - (clobber (match_scratch:SWI248 4))]) + (clobber (scratch:SWI248))]) (set (pc) (if_then_else (eq (reg:CCO FLAGS_REG) (const_int 0)) (label_ref (match_operand 3)) @@ -7810,7 +7810,7 @@ (any_extend: (match_operand:DWIH 2 "register_operand"))) (match_dup 3)))) - (clobber (match_scratch:DWIH 4)) + (clobber (scratch:DWIH)) (clobber (reg:CC FLAGS_REG))])] "" "operands[3] = GEN_INT (GET_MODE_BITSIZE (mode));") @@ -14825,8 +14825,8 @@ (match_operand 3 "constant_call_address_operand") (reg:SI SP_REG)] UNSPEC_TLS_GD)) - (clobber (match_scratch:SI 4)) - (clobber (match_scratch:SI 5)) + (clobber (scratch:SI)) + (clobber (scratch:SI)) (clobber (reg:CC FLAGS_REG))])] "" "ix86_tls_descriptor_calls_expanded_in_cfun = true;") @@ -14942,8 +14942,8 @@ (match_operand 2 "constant_call_address_operand") (reg:SI SP_REG)] UNSPEC_TLS_LD_BASE)) - (clobber (match_scratch:SI 3)) - (clobber (match_scratch:SI 4)) + (clobber (scratch:SI)) + (clobber (scratch:SI)) (clobber (reg:CC FLAGS_REG))])] "" "ix86_tls_descriptor_calls_expanded_in_cfun = true;") @@ -15979,7 +15979,7 @@ (unspec:XF [(match_dup 2) (match_operand:XF 1 "register_operand")] UNSPEC_FPATAN)) - (clobber (match_scratch:XF 3))])] + (clobber (scratch:XF))])] "TARGET_USE_FANCY_MATH_387 && flag_unsafe_math_optimizations" "operands[2] = force_reg (XFmode, CONST1_RTX (XFmode));") @@ -16008,9 +16008,9 @@ (set (match_dup 4) (minus:XF (match_dup 3) (match_dup 2))) (set (match_dup 5) (sqrt:XF (match_dup 4))) (parallel [(set (match_operand:XF 0 "register_operand") - (unspec:XF [(match_dup 5) (match_dup 1)] + (unspec:XF [(match_dup 5) (match_dup 1)] UNSPEC_FPATAN)) - (clobber (match_scratch:XF 6))])] + (clobber (scratch:XF))])] "TARGET_USE_FANCY_MATH_387 && flag_unsafe_math_optimizations" { @@ -16046,9 +16046,9 @@ (set (match_dup 4) (minus:XF (match_dup 3) (match_dup 2))) (set (match_dup 5) (sqrt:XF (match_dup 4))) (parallel [(set (match_operand:XF 0 "register_operand") - (unspec:XF [(match_dup 1) (match_dup 5)] + (unspec:XF [(match_dup 1) (match_dup 5)] UNSPEC_FPATAN)) - (clobber (match_scratch:XF 6))])] + (clobber (scratch:XF))])] "TARGET_USE_FANCY_MATH_387 && flag_unsafe_math_optimizations" { @@ -16260,7 +16260,7 @@ [(parallel [(set (match_operand:XF 0 "register_operand") (unspec:XF [(match_operand:XF 1 "register_operand") (match_dup 2)] UNSPEC_FYL2X)) - (clobber (match_scratch:XF 3))])] + (clobber (scratch:XF))])] "TARGET_USE_FANCY_MATH_387 && flag_unsafe_math_optimizations" { @@ -16289,7 +16289,7 @@ [(parallel [(set (match_operand:XF 0 "register_operand") (unspec:XF [(match_operand:XF 1 "register_operand") (match_dup 2)] UNSPEC_FYL2X)) - (clobber (match_scratch:XF 3))])] + (clobber (scratch:XF))])] "TARGET_USE_FANCY_MATH_387 && flag_unsafe_math_optimizations" { @@ -16318,7 +16318,7 @@ [(parallel [(set (match_operand:XF 0 "register_operand") (unspec:XF [(match_operand:XF 1 "register_operand") (match_dup 2)] UNSPEC_FYL2X)) - (clobber (match_scratch:XF 3))])] + (clobber (scratch:XF))])] "TARGET_USE_FANCY_MATH_387 && flag_unsafe_math_optimizations" "operands[2] = force_reg (XFmode, CONST1_RTX (XFmode));") -- 2.30.2