diff options
Diffstat (limited to 'gcc/config/i386/i386.md')
-rw-r--r-- | gcc/config/i386/i386.md | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 8c7beaf..f7f790d 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -984,7 +984,7 @@ (symbol_ref "TARGET_APX_NDD && Pmode == DImode") (eq_attr "isa" "vaes_avx512vl") (symbol_ref "TARGET_VAES && TARGET_AVX512VL") - (eq_attr "isa" "avx10_2") (symbol_ref "TARGET_AVX10_2_256") + (eq_attr "isa" "avx10_2") (symbol_ref "TARGET_AVX10_2") (eq_attr "mmx_isa" "native") (symbol_ref "!TARGET_MMX_WITH_SSE") @@ -1819,7 +1819,7 @@ (pc)))] "TARGET_80387 || (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)" { - if (TARGET_AVX10_2_256 && !flag_trapping_math) + if (TARGET_AVX10_2 && !flag_trapping_math) ix86_expand_branch (GET_CODE (operands[0]), operands[1], operands[2], operands[3]); else @@ -1861,7 +1861,7 @@ "TARGET_80387 || (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)" { rtx op2 = operands[2], op3 = operands[3]; - if (!TARGET_AVX10_2_256 || flag_trapping_math) + if (!TARGET_AVX10_2 || flag_trapping_math) { op2 = ix86_expand_fast_convert_bf_to_sf (operands[2]); op3 = ix86_expand_fast_convert_bf_to_sf (operands[3]); @@ -2042,7 +2042,7 @@ (match_operand:MODEF 0 "register_operand" "v") (match_operand:MODEF 1 "nonimmediate_operand" "vm"))] UNSPEC_OPTCOMX))] - "TARGET_AVX10_2_256" + "TARGET_AVX10_2" "%v<unord>comx<MODEF:ssemodesuffix>\t{%1, %0|%0, %1}" [(set_attr "type" "ssecomi") (set_attr "prefix" "evex") @@ -2055,7 +2055,7 @@ (match_operand:HF 0 "register_operand" "v") (match_operand:HF 1 "nonimmediate_operand" "vm"))] UNSPEC_OPTCOMX))] - "TARGET_AVX10_2_256" + "TARGET_AVX10_2" "v<unord>comxsh\t{%1, %0|%0, %1}" [(set_attr "type" "ssecomi") (set_attr "prefix" "evex") @@ -2114,7 +2114,7 @@ (compare:CCFP (match_operand:BF 0 "register_operand" "v") (match_operand:BF 1 "nonimmediate_operand" "vm")))] - "TARGET_AVX10_2_256" + "TARGET_AVX10_2" "vcomisbf16\t{%1, %0|%0, %1}" [(set_attr "type" "ssecomi") (set_attr "prefix" "evex") @@ -12411,7 +12411,9 @@ (and:SWI248 (match_operand:SWI248 0 "memory_operand") (match_operand 1 "const_int_operand")) (const_int 0)))] - "!TARGET_PARTIAL_MEMORY_READ_STALL && !MEM_VOLATILE_P (operands[0])" + "!TARGET_PARTIAL_MEMORY_READ_STALL + && !MEM_VOLATILE_P (operands[0]) + && offsettable_memref_p (operands[0])" [(set (reg:CCZ FLAGS_REG) (compare:CCZ (match_dup 2) (const_int 0)))] { @@ -18168,7 +18170,8 @@ [(set (match_dup 4) (match_dup 1)) (set (match_dup 0) (any_rotate:SWI (match_dup 4) - (subreg:QI (match_dup 2) 0)))] + (subreg:QI + (and:SI (match_dup 2) (match_dup 3)) 0)))] "operands[4] = gen_reg_rtx (<MODE>mode);") (define_insn_and_split "*<insn><mode>3_mask_1" @@ -18202,7 +18205,8 @@ == GET_MODE_BITSIZE (<MODE>mode) - 1" [(set (match_dup 4) (match_dup 1)) (set (match_dup 0) - (any_rotate:SWI (match_dup 4) (match_dup 2)))] + (any_rotate:SWI (match_dup 4) + (and:QI (match_dup 2) (match_dup 3))))] "operands[4] = gen_reg_rtx (<MODE>mode);") (define_insn_and_split "*<insn><mode>3_add" |